ustream_consume(s, len);
}
+static void client_ssl_notify_write(struct ustream *s, int bytes)
+{
+ fprintf(stderr, "Wrote %d bytes, pending %d\n", bytes, s->w.data_bytes);
+}
+
static void client_notify_connected(struct ustream_ssl *ssl)
{
fprintf(stderr, "SSL connection established (CN verified: %d)\n", ssl->valid_cn);
ssl.notify_verify_error = client_notify_verify_error;
ssl.notify_connected = client_notify_connected;
ssl.stream.notify_read = client_ssl_notify_read;
+ ssl.stream.notify_write = client_ssl_notify_write;
ssl.stream.notify_state = client_notify_state;
ustream_fd_init(&stream, fd);
static int usage(const char *progname)
{
- fprintf(stderr, "Usage: %s [options] <hostname> <port>\n", progname);
+ fprintf(stderr,
+ "Usage: %s [options] <hostname> <port>\n"
+ "Options:\n"
+ " -c <cert>: Load CA certificates from file <cert>\n"
+ "\n", progname);
return 1;
}
int main(int argc, char **argv)
{
+ const char *progname = argv[0];
int ch;
ctx = ustream_ssl_context_new(false);
case 'c':
ustream_ssl_context_add_ca_crt_file(ctx, optarg);
break;
+ default:
+ return usage(progname);
}
}
argc -= optind;
if (argc != 2)
- return usage(argv[0]);
+ return usage(progname);
uloop_init();
host = argv[0];