Hi,
is there better example how to use ustream with ssl?
I don't understand how to send messages to the server via ustream?
After the example_connect_ssl()
call, the struct ustream_ssl ssl
has been attached as I/O backend to struct ustream_fd stream
.
You can from then on perform ustream read/write operations like ustream_write()
, ustream_printf()
, ustream_read()
on &stream.stream
.
If you're in an uloop
callback you can obtain a handle to the stream using something like this:
static void uloop_read_cb(struct uloop_fd *ufd, unsigned int events)
{
struct ustream_fd *usfd = container_of(ufd, struct uloop_fd, fd);
struct ustream *us = &usfd->stream;
size_t len;
char buf[1024];
len = ustream_read(us, buf, sizeof(buf));
printf("Read %ld bytes from SSL connection: %s\n", len, buf);
}
As an alternative to the container_of()
solution you can place a reference to the stream in a global variable, like the example code did with static struct ustream_fd stream;
To write an SSL encoded message to the just connected socket, do something like this after example_connect_ssl()
in line 107:
const char *msg = "This is a test";
ustream_write(&stream.stream, msg, strlen(msg), false);
You're also supposed to re-register &stream.fd
with uloop_fd_add(...)
at this point to receive future read/write notifcations for handling with your own callbacks.
Thanks!
I will immediately try this. xD
How can I allow self signed certificates?