add mbedtls variant
[project/ustream-ssl.git] / ustream-example-client.c
index c3d0018..6527362 100644 (file)
@@ -46,6 +46,11 @@ static void client_ssl_notify_read(struct ustream *s, int bytes)
        ustream_consume(s, len);
 }
 
        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);
 static void client_notify_connected(struct ustream_ssl *ssl)
 {
        fprintf(stderr, "SSL connection established (CN verified: %d)\n", ssl->valid_cn);
@@ -81,6 +86,7 @@ static void example_connect_ssl(int fd)
        ssl.notify_verify_error = client_notify_verify_error;
        ssl.notify_connected = client_notify_connected;
        ssl.stream.notify_read = client_ssl_notify_read;
        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);
        ssl.stream.notify_state = client_notify_state;
 
        ustream_fd_init(&stream, fd);
@@ -110,12 +116,17 @@ static void connect_client(void)
 
 static int usage(const char *progname)
 {
 
 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)
 {
        return 1;
 }
 
 int main(int argc, char **argv)
 {
+       const char *progname = argv[0];
        int ch;
 
        ctx = ustream_ssl_context_new(false);
        int ch;
 
        ctx = ustream_ssl_context_new(false);
@@ -125,6 +136,8 @@ int main(int argc, char **argv)
                case 'c':
                        ustream_ssl_context_add_ca_crt_file(ctx, optarg);
                        break;
                case 'c':
                        ustream_ssl_context_add_ca_crt_file(ctx, optarg);
                        break;
+               default:
+                       return usage(progname);
                }
        }
 
                }
        }
 
@@ -132,7 +145,7 @@ int main(int argc, char **argv)
        argc -= optind;
 
        if (argc != 2)
        argc -= optind;
 
        if (argc != 2)
-               return usage(argv[0]);
+               return usage(progname);
 
        uloop_init();
        host = argv[0];
 
        uloop_init();
        host = argv[0];