fix comments for sasl_cbinding_disp_t
[cyrus-sasl.git] / sample / client.c
index ec0514f..00bbb41 100644 (file)
@@ -321,7 +321,7 @@ int mysasl_negotiate(FILE *in, FILE *out, sasl_conn_t *conn)
 
 void usage(void)
 {
-    fprintf(stderr, "usage: client [-c] [-p port] [-s service] [-m mech] host\n");
+    fprintf(stderr, "usage: client [-c|-C] [-p port] [-s service] [-m mech] host\n");
     exit(EX_USAGE);
 }
 
@@ -342,12 +342,16 @@ int main(int argc, char *argv[])
     int niflags, error;
     struct sockaddr_storage local_ip, remote_ip;
     int cb_flag = 0;
-    sasl_channel_binding cb;
+    sasl_channel_binding_t cb;
 
-    while ((c = getopt(argc, argv, "cp:s:m:")) != EOF) {
+    while ((c = getopt(argc, argv, "Ccp:s:m:")) != EOF) {
        switch(c) {
+       case 'C':
+           cb_flag = 2;    /* channel bindings are critical */
+           break;
+
        case 'c':
-           cb_flag = 1;
+           cb_flag = 1;    /* channel bindings are optional */
            break;
 
        case 'p':
@@ -426,7 +430,8 @@ int main(int argc, char *argv[])
     if (r != SASL_OK) saslfail(r, "allocating connection state");
 
     if (cb_flag) {
-        cb.type = "sasl-sample";
+        cb.name = "sasl-sample";
+        cb.critical = cb_flag > 1;
         cb.data = "this is a test of channel binding";
         cb.len = strlen(cb.data);