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);
}
int cb_flag = 0;
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':
if (cb_flag) {
cb.name = "sasl-sample";
+ cb.critical = cb_flag > 1;
cb.data = "this is a test of channel binding";
cb.len = strlen(cb.data);