]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
Improved ALPN support in gnutls-cli
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Sun, 5 May 2013 10:26:58 +0000 (13:26 +0300)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Sun, 5 May 2013 10:26:58 +0000 (13:26 +0300)
src/cli-args.c
src/cli-args.def
src/cli-args.h
src/cli.c
src/common.c

index 7ea5e55e1db4ad819640c7dfaff730bedfe2199d..6e4c3f7607cdadba9147bb99135a0be99e2ecfab 100644 (file)
@@ -2,7 +2,7 @@
  *
  *  DO NOT EDIT THIS FILE   (cli-args.c)
  *
- *  It has been AutoGen-ed  May  5, 2013 at 12:48:27 PM by AutoGen 5.17.3
+ *  It has been AutoGen-ed  May  5, 2013 at 01:00:26 PM by AutoGen 5.17.3
  *  From the definitions    cli-args.def
  *  and the template file   options
  *
@@ -63,7 +63,7 @@ extern FILE * option_usage_fp;
 /**
  *  static const strings for gnutls-cli options
  */
-static char const gnutls_cli_opt_strs[3935] =
+static char const gnutls_cli_opt_strs[3934] =
 /*     0 */ "gnutls-cli @VERSION@\n"
             "Copyright (C) 2000-2012 Free Software Foundation, all rights reserved.\n"
             "This is free software. It is licensed for use, modification and\n"
@@ -104,133 +104,133 @@ static char const gnutls_cli_opt_strs[3935] =
 /*  1259 */ "Establish a session and resume\0"
 /*  1290 */ "RESUME\0"
 /*  1297 */ "resume\0"
-/*  1304 */ "Activate heartbeat support\0"
-/*  1331 */ "HEARTBEAT\0"
-/*  1341 */ "heartbeat\0"
-/*  1351 */ "Establish a session and rehandshake\0"
-/*  1387 */ "REHANDSHAKE\0"
-/*  1399 */ "rehandshake\0"
-/*  1411 */ "Don't accept session tickets\0"
-/*  1440 */ "NOTICKET\0"
-/*  1449 */ "noticket\0"
-/*  1458 */ "Connect, establish a plain session and start TLS.\0"
-/*  1508 */ "STARTTLS\0"
-/*  1517 */ "starttls\0"
-/*  1526 */ "Use DTLS (datagram TLS) over UDP\0"
-/*  1559 */ "UDP\0"
-/*  1563 */ "udp\0"
-/*  1567 */ "Set MTU for datagram TLS\0"
-/*  1592 */ "MTU\0"
-/*  1596 */ "mtu\0"
-/*  1600 */ "Offer SRTP profiles\0"
-/*  1620 */ "SRTP_PROFILES\0"
-/*  1634 */ "srtp-profiles\0"
-/*  1648 */ "Send CR LF instead of LF\0"
-/*  1673 */ "CRLF\0"
-/*  1678 */ "crlf\0"
-/*  1683 */ "Use DER format for certificates to read from\0"
-/*  1728 */ "X509FMTDER\0"
-/*  1739 */ "x509fmtder\0"
-/*  1750 */ "Send the openpgp fingerprint, instead of the key\0"
-/*  1799 */ "FINGERPRINT\0"
-/*  1811 */ "fingerprint\0"
-/*  1823 */ "Disable all the TLS extensions\0"
-/*  1854 */ "DISABLE_EXTENSIONS\0"
-/*  1873 */ "disable-extensions\0"
-/*  1892 */ "Print peer's certificate in PEM format\0"
-/*  1931 */ "PRINT_CERT\0"
-/*  1942 */ "print-cert\0"
-/*  1953 */ "The maximum record size to advertize\0"
-/*  1990 */ "RECORDSIZE\0"
-/*  2001 */ "recordsize\0"
-/*  2012 */ "The minimum number of bits allowed for DH\0"
-/*  2054 */ "DH_BITS\0"
-/*  2062 */ "dh-bits\0"
-/*  2070 */ "Priorities string\0"
-/*  2088 */ "PRIORITY\0"
-/*  2097 */ "priority\0"
-/*  2106 */ "Certificate file or PKCS #11 URL to use\0"
-/*  2146 */ "X509CAFILE\0"
-/*  2157 */ "x509cafile\0"
-/*  2168 */ "CRL file to use\0"
-/*  2184 */ "X509CRLFILE\0"
-/*  2196 */ "x509crlfile\0"
-/*  2208 */ "PGP Key file to use\0"
-/*  2228 */ "PGPKEYFILE\0"
-/*  2239 */ "pgpkeyfile\0"
-/*  2250 */ "PGP Key ring file to use\0"
-/*  2275 */ "PGPKEYRING\0"
-/*  2286 */ "pgpkeyring\0"
-/*  2297 */ "PGP Public Key (certificate) file to use\0"
-/*  2338 */ "PGPCERTFILE\0"
-/*  2350 */ "pgpcertfile\0"
-/*  2362 */ "X.509 key file or PKCS #11 URL to use\0"
-/*  2400 */ "X509KEYFILE\0"
-/*  2412 */ "x509keyfile\0"
-/*  2424 */ "X.509 Certificate file or PKCS #11 URL to use\0"
-/*  2470 */ "X509CERTFILE\0"
-/*  2483 */ "x509certfile\0"
-/*  2496 */ "PGP subkey to use (hex or auto)\0"
-/*  2528 */ "PGPSUBKEY\0"
-/*  2538 */ "pgpsubkey\0"
-/*  2548 */ "SRP username to use\0"
-/*  2568 */ "SRPUSERNAME\0"
-/*  2580 */ "srpusername\0"
-/*  2592 */ "SRP password to use\0"
-/*  2612 */ "SRPPASSWD\0"
-/*  2622 */ "srppasswd\0"
-/*  2632 */ "PSK username to use\0"
-/*  2652 */ "PSKUSERNAME\0"
-/*  2664 */ "pskusername\0"
-/*  2676 */ "PSK key (in hex) to use\0"
-/*  2700 */ "PSKKEY\0"
-/*  2707 */ "pskkey\0"
-/*  2714 */ "Application layer protocol\0"
-/*  2741 */ "ALPN\0"
-/*  2746 */ "alpn\0"
-/*  2751 */ "The port or service to connect to\0"
-/*  2785 */ "PORT\0"
-/*  2790 */ "port\0"
-/*  2795 */ "Don't abort program if server certificate can't be validated\0"
-/*  2856 */ "INSECURE\0"
-/*  2865 */ "insecure\0"
-/*  2874 */ "Use length-hiding padding to prevent traffic analysis\0"
-/*  2928 */ "RANGES\0"
-/*  2935 */ "ranges\0"
-/*  2942 */ "Benchmark individual ciphers\0"
-/*  2971 */ "BENCHMARK_CIPHERS\0"
-/*  2989 */ "benchmark-ciphers\0"
-/*  3007 */ "Benchmark individual software ciphers (no hw acceleration)\0"
-/*  3066 */ "BENCHMARK_SOFT_CIPHERS\0"
-/*  3089 */ "benchmark-soft-ciphers\0"
-/*  3112 */ "Benchmark TLS key exchange methods\0"
-/*  3147 */ "BENCHMARK_TLS_KX\0"
-/*  3164 */ "benchmark-tls-kx\0"
-/*  3181 */ "Benchmark TLS ciphers\0"
-/*  3203 */ "BENCHMARK_TLS_CIPHERS\0"
-/*  3225 */ "benchmark-tls-ciphers\0"
-/*  3247 */ "Print a list of the supported algorithms and modes\0"
-/*  3298 */ "LIST\0"
-/*  3303 */ "list\0"
-/*  3308 */ "Do not send a Server Name Indication (SNI)\0"
-/*  3351 */ "DISABLE_SNI\0"
-/*  3363 */ "disable-sni\0"
-/*  3375 */ "display extended usage information and exit\0"
-/*  3419 */ "help\0"
-/*  3424 */ "extended usage information passed thru pager\0"
-/*  3469 */ "more-help\0"
-/*  3479 */ "output version information and exit\0"
-/*  3515 */ "version\0"
-/*  3523 */ "GNUTLS_CLI\0"
-/*  3534 */ "gnutls-cli - GnuTLS client\n"
+/*  1304 */ "Establish a session and rehandshake\0"
+/*  1340 */ "REHANDSHAKE\0"
+/*  1352 */ "rehandshake\0"
+/*  1364 */ "Connect, establish a plain session and start TLS.\0"
+/*  1414 */ "STARTTLS\0"
+/*  1423 */ "starttls\0"
+/*  1432 */ "Use DTLS (datagram TLS) over UDP\0"
+/*  1465 */ "UDP\0"
+/*  1469 */ "udp\0"
+/*  1473 */ "Set MTU for datagram TLS\0"
+/*  1498 */ "MTU\0"
+/*  1502 */ "mtu\0"
+/*  1506 */ "Send CR LF instead of LF\0"
+/*  1531 */ "CRLF\0"
+/*  1536 */ "crlf\0"
+/*  1541 */ "Use DER format for certificates to read from\0"
+/*  1586 */ "X509FMTDER\0"
+/*  1597 */ "x509fmtder\0"
+/*  1608 */ "Send the openpgp fingerprint, instead of the key\0"
+/*  1657 */ "FINGERPRINT\0"
+/*  1669 */ "fingerprint\0"
+/*  1681 */ "Print peer's certificate in PEM format\0"
+/*  1720 */ "PRINT_CERT\0"
+/*  1731 */ "print-cert\0"
+/*  1742 */ "The minimum number of bits allowed for DH\0"
+/*  1784 */ "DH_BITS\0"
+/*  1792 */ "dh-bits\0"
+/*  1800 */ "Priorities string\0"
+/*  1818 */ "PRIORITY\0"
+/*  1827 */ "priority\0"
+/*  1836 */ "Certificate file or PKCS #11 URL to use\0"
+/*  1876 */ "X509CAFILE\0"
+/*  1887 */ "x509cafile\0"
+/*  1898 */ "CRL file to use\0"
+/*  1914 */ "X509CRLFILE\0"
+/*  1926 */ "x509crlfile\0"
+/*  1938 */ "PGP Key file to use\0"
+/*  1958 */ "PGPKEYFILE\0"
+/*  1969 */ "pgpkeyfile\0"
+/*  1980 */ "PGP Key ring file to use\0"
+/*  2005 */ "PGPKEYRING\0"
+/*  2016 */ "pgpkeyring\0"
+/*  2027 */ "PGP Public Key (certificate) file to use\0"
+/*  2068 */ "PGPCERTFILE\0"
+/*  2080 */ "pgpcertfile\0"
+/*  2092 */ "X.509 key file or PKCS #11 URL to use\0"
+/*  2130 */ "X509KEYFILE\0"
+/*  2142 */ "x509keyfile\0"
+/*  2154 */ "X.509 Certificate file or PKCS #11 URL to use\0"
+/*  2200 */ "X509CERTFILE\0"
+/*  2213 */ "x509certfile\0"
+/*  2226 */ "PGP subkey to use (hex or auto)\0"
+/*  2258 */ "PGPSUBKEY\0"
+/*  2268 */ "pgpsubkey\0"
+/*  2278 */ "SRP username to use\0"
+/*  2298 */ "SRPUSERNAME\0"
+/*  2310 */ "srpusername\0"
+/*  2322 */ "SRP password to use\0"
+/*  2342 */ "SRPPASSWD\0"
+/*  2352 */ "srppasswd\0"
+/*  2362 */ "PSK username to use\0"
+/*  2382 */ "PSKUSERNAME\0"
+/*  2394 */ "pskusername\0"
+/*  2406 */ "PSK key (in hex) to use\0"
+/*  2430 */ "PSKKEY\0"
+/*  2437 */ "pskkey\0"
+/*  2444 */ "The port or service to connect to\0"
+/*  2478 */ "PORT\0"
+/*  2483 */ "port\0"
+/*  2488 */ "Don't abort program if server certificate can't be validated\0"
+/*  2549 */ "INSECURE\0"
+/*  2558 */ "insecure\0"
+/*  2567 */ "Use length-hiding padding to prevent traffic analysis\0"
+/*  2621 */ "RANGES\0"
+/*  2628 */ "ranges\0"
+/*  2635 */ "Benchmark individual ciphers\0"
+/*  2664 */ "BENCHMARK_CIPHERS\0"
+/*  2682 */ "benchmark-ciphers\0"
+/*  2700 */ "Benchmark individual software ciphers (no hw acceleration)\0"
+/*  2759 */ "BENCHMARK_SOFT_CIPHERS\0"
+/*  2782 */ "benchmark-soft-ciphers\0"
+/*  2805 */ "Benchmark TLS key exchange methods\0"
+/*  2840 */ "BENCHMARK_TLS_KX\0"
+/*  2857 */ "benchmark-tls-kx\0"
+/*  2874 */ "Benchmark TLS ciphers\0"
+/*  2896 */ "BENCHMARK_TLS_CIPHERS\0"
+/*  2918 */ "benchmark-tls-ciphers\0"
+/*  2940 */ "Print a list of the supported algorithms and modes\0"
+/*  2991 */ "LIST\0"
+/*  2996 */ "list\0"
+/*  3001 */ "Don't allow session tickets\0"
+/*  3029 */ "NOTICKET\0"
+/*  3038 */ "noticket\0"
+/*  3047 */ "Offer SRTP profiles\0"
+/*  3067 */ "SRTP_PROFILES\0"
+/*  3081 */ "srtp-profiles\0"
+/*  3095 */ "Application layer protocol\0"
+/*  3122 */ "ALPN\0"
+/*  3127 */ "alpn\0"
+/*  3132 */ "Activate heartbeat support\0"
+/*  3159 */ "HEARTBEAT\0"
+/*  3169 */ "heartbeat\0"
+/*  3179 */ "The maximum record size to advertize\0"
+/*  3216 */ "RECORDSIZE\0"
+/*  3227 */ "recordsize\0"
+/*  3238 */ "Do not send a Server Name Indication (SNI)\0"
+/*  3281 */ "DISABLE_SNI\0"
+/*  3293 */ "disable-sni\0"
+/*  3305 */ "Disable all the TLS extensions\0"
+/*  3336 */ "DISABLE_EXTENSIONS\0"
+/*  3355 */ "disable-extensions\0"
+/*  3374 */ "display extended usage information and exit\0"
+/*  3418 */ "help\0"
+/*  3423 */ "extended usage information passed thru pager\0"
+/*  3468 */ "more-help\0"
+/*  3478 */ "output version information and exit\0"
+/*  3514 */ "version\0"
+/*  3522 */ "GNUTLS_CLI\0"
+/*  3533 */ "gnutls-cli - GnuTLS client\n"
             "Usage:  %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [hostname]\n\0"
-/*  3630 */ "bug-gnutls@gnu.org\0"
-/*  3649 */ "\n\0"
-/*  3651 */ "Simple client program to set up a TLS connection to some other computer.  It\n"
+/*  3629 */ "bug-gnutls@gnu.org\0"
+/*  3648 */ "\n\0"
+/*  3650 */ "Simple client program to set up a TLS connection to some other computer.  It\n"
             "sets up a TLS connection and forwards data from the standard input to the\n"
             "secured socket and vice versa.\n\0"
-/*  3834 */ "gnutls-cli @VERSION@\0"
-/*  3855 */ "Usage: gnutls-cli [options] hostname\n"
+/*  3833 */ "gnutls-cli @VERSION@\0"
+/*  3854 */ "Usage: gnutls-cli [options] hostname\n"
             "gnutls-cli --help for usage instructions.\n";
 
 /**
@@ -350,51 +350,27 @@ static char const gnutls_cli_opt_strs[3935] =
 /** Compiled in flag settings for the resume option */
 #define RESUME_FLAGS     (OPTST_DISABLED)
 
-/**
- *  heartbeat option description:
- */
-/** Descriptive text for the heartbeat option */
-#define HEARTBEAT_DESC      (gnutls_cli_opt_strs+1304)
-/** Upper-cased name for the heartbeat option */
-#define HEARTBEAT_NAME      (gnutls_cli_opt_strs+1331)
-/** Name string for the heartbeat option */
-#define HEARTBEAT_name      (gnutls_cli_opt_strs+1341)
-/** Compiled in flag settings for the heartbeat option */
-#define HEARTBEAT_FLAGS     (OPTST_DISABLED)
-
 /**
  *  rehandshake option description:
  */
 /** Descriptive text for the rehandshake option */
-#define REHANDSHAKE_DESC      (gnutls_cli_opt_strs+1351)
+#define REHANDSHAKE_DESC      (gnutls_cli_opt_strs+1304)
 /** Upper-cased name for the rehandshake option */
-#define REHANDSHAKE_NAME      (gnutls_cli_opt_strs+1387)
+#define REHANDSHAKE_NAME      (gnutls_cli_opt_strs+1340)
 /** Name string for the rehandshake option */
-#define REHANDSHAKE_name      (gnutls_cli_opt_strs+1399)
+#define REHANDSHAKE_name      (gnutls_cli_opt_strs+1352)
 /** Compiled in flag settings for the rehandshake option */
 #define REHANDSHAKE_FLAGS     (OPTST_DISABLED)
 
-/**
- *  noticket option description:
- */
-/** Descriptive text for the noticket option */
-#define NOTICKET_DESC      (gnutls_cli_opt_strs+1411)
-/** Upper-cased name for the noticket option */
-#define NOTICKET_NAME      (gnutls_cli_opt_strs+1440)
-/** Name string for the noticket option */
-#define NOTICKET_name      (gnutls_cli_opt_strs+1449)
-/** Compiled in flag settings for the noticket option */
-#define NOTICKET_FLAGS     (OPTST_DISABLED)
-
 /**
  *  starttls option description:
  */
 /** Descriptive text for the starttls option */
-#define STARTTLS_DESC      (gnutls_cli_opt_strs+1458)
+#define STARTTLS_DESC      (gnutls_cli_opt_strs+1364)
 /** Upper-cased name for the starttls option */
-#define STARTTLS_NAME      (gnutls_cli_opt_strs+1508)
+#define STARTTLS_NAME      (gnutls_cli_opt_strs+1414)
 /** Name string for the starttls option */
-#define STARTTLS_name      (gnutls_cli_opt_strs+1517)
+#define STARTTLS_name      (gnutls_cli_opt_strs+1423)
 /** Compiled in flag settings for the starttls option */
 #define STARTTLS_FLAGS     (OPTST_DISABLED)
 
@@ -402,11 +378,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  udp option description:
  */
 /** Descriptive text for the udp option */
-#define UDP_DESC      (gnutls_cli_opt_strs+1526)
+#define UDP_DESC      (gnutls_cli_opt_strs+1432)
 /** Upper-cased name for the udp option */
-#define UDP_NAME      (gnutls_cli_opt_strs+1559)
+#define UDP_NAME      (gnutls_cli_opt_strs+1465)
 /** Name string for the udp option */
-#define UDP_name      (gnutls_cli_opt_strs+1563)
+#define UDP_name      (gnutls_cli_opt_strs+1469)
 /** Compiled in flag settings for the udp option */
 #define UDP_FLAGS     (OPTST_DISABLED)
 
@@ -414,37 +390,24 @@ static char const gnutls_cli_opt_strs[3935] =
  *  mtu option description:
  */
 /** Descriptive text for the mtu option */
-#define MTU_DESC      (gnutls_cli_opt_strs+1567)
+#define MTU_DESC      (gnutls_cli_opt_strs+1473)
 /** Upper-cased name for the mtu option */
-#define MTU_NAME      (gnutls_cli_opt_strs+1592)
+#define MTU_NAME      (gnutls_cli_opt_strs+1498)
 /** Name string for the mtu option */
-#define MTU_name      (gnutls_cli_opt_strs+1596)
+#define MTU_name      (gnutls_cli_opt_strs+1502)
 /** Compiled in flag settings for the mtu option */
 #define MTU_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
 
-/**
- *  srtp_profiles option description:
- */
-/** Descriptive text for the srtp_profiles option */
-#define SRTP_PROFILES_DESC      (gnutls_cli_opt_strs+1600)
-/** Upper-cased name for the srtp_profiles option */
-#define SRTP_PROFILES_NAME      (gnutls_cli_opt_strs+1620)
-/** Name string for the srtp_profiles option */
-#define SRTP_PROFILES_name      (gnutls_cli_opt_strs+1634)
-/** Compiled in flag settings for the srtp_profiles option */
-#define SRTP_PROFILES_FLAGS     (OPTST_DISABLED \
-        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
-
 /**
  *  crlf option description:
  */
 /** Descriptive text for the crlf option */
-#define CRLF_DESC      (gnutls_cli_opt_strs+1648)
+#define CRLF_DESC      (gnutls_cli_opt_strs+1506)
 /** Upper-cased name for the crlf option */
-#define CRLF_NAME      (gnutls_cli_opt_strs+1673)
+#define CRLF_NAME      (gnutls_cli_opt_strs+1531)
 /** Name string for the crlf option */
-#define CRLF_name      (gnutls_cli_opt_strs+1678)
+#define CRLF_name      (gnutls_cli_opt_strs+1536)
 /** Compiled in flag settings for the crlf option */
 #define CRLF_FLAGS     (OPTST_DISABLED)
 
@@ -452,11 +415,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  x509fmtder option description:
  */
 /** Descriptive text for the x509fmtder option */
-#define X509FMTDER_DESC      (gnutls_cli_opt_strs+1683)
+#define X509FMTDER_DESC      (gnutls_cli_opt_strs+1541)
 /** Upper-cased name for the x509fmtder option */
-#define X509FMTDER_NAME      (gnutls_cli_opt_strs+1728)
+#define X509FMTDER_NAME      (gnutls_cli_opt_strs+1586)
 /** Name string for the x509fmtder option */
-#define X509FMTDER_name      (gnutls_cli_opt_strs+1739)
+#define X509FMTDER_name      (gnutls_cli_opt_strs+1597)
 /** Compiled in flag settings for the x509fmtder option */
 #define X509FMTDER_FLAGS     (OPTST_DISABLED)
 
@@ -464,60 +427,35 @@ static char const gnutls_cli_opt_strs[3935] =
  *  fingerprint option description:
  */
 /** Descriptive text for the fingerprint option */
-#define FINGERPRINT_DESC      (gnutls_cli_opt_strs+1750)
+#define FINGERPRINT_DESC      (gnutls_cli_opt_strs+1608)
 /** Upper-cased name for the fingerprint option */
-#define FINGERPRINT_NAME      (gnutls_cli_opt_strs+1799)
+#define FINGERPRINT_NAME      (gnutls_cli_opt_strs+1657)
 /** Name string for the fingerprint option */
-#define FINGERPRINT_name      (gnutls_cli_opt_strs+1811)
+#define FINGERPRINT_name      (gnutls_cli_opt_strs+1669)
 /** Compiled in flag settings for the fingerprint option */
 #define FINGERPRINT_FLAGS     (OPTST_DISABLED)
 
-/**
- *  disable-extensions option description:
- */
-/** Descriptive text for the disable-extensions option */
-#define DISABLE_EXTENSIONS_DESC      (gnutls_cli_opt_strs+1823)
-/** Upper-cased name for the disable-extensions option */
-#define DISABLE_EXTENSIONS_NAME      (gnutls_cli_opt_strs+1854)
-/** Name string for the disable-extensions option */
-#define DISABLE_EXTENSIONS_name      (gnutls_cli_opt_strs+1873)
-/** Compiled in flag settings for the disable-extensions option */
-#define DISABLE_EXTENSIONS_FLAGS     (OPTST_DISABLED)
-
 /**
  *  print-cert option description:
  */
 /** Descriptive text for the print-cert option */
-#define PRINT_CERT_DESC      (gnutls_cli_opt_strs+1892)
+#define PRINT_CERT_DESC      (gnutls_cli_opt_strs+1681)
 /** Upper-cased name for the print-cert option */
-#define PRINT_CERT_NAME      (gnutls_cli_opt_strs+1931)
+#define PRINT_CERT_NAME      (gnutls_cli_opt_strs+1720)
 /** Name string for the print-cert option */
-#define PRINT_CERT_name      (gnutls_cli_opt_strs+1942)
+#define PRINT_CERT_name      (gnutls_cli_opt_strs+1731)
 /** Compiled in flag settings for the print-cert option */
 #define PRINT_CERT_FLAGS     (OPTST_DISABLED)
 
-/**
- *  recordsize option description:
- */
-/** Descriptive text for the recordsize option */
-#define RECORDSIZE_DESC      (gnutls_cli_opt_strs+1953)
-/** Upper-cased name for the recordsize option */
-#define RECORDSIZE_NAME      (gnutls_cli_opt_strs+1990)
-/** Name string for the recordsize option */
-#define RECORDSIZE_name      (gnutls_cli_opt_strs+2001)
-/** Compiled in flag settings for the recordsize option */
-#define RECORDSIZE_FLAGS     (OPTST_DISABLED \
-        | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
-
 /**
  *  dh-bits option description:
  */
 /** Descriptive text for the dh-bits option */
-#define DH_BITS_DESC      (gnutls_cli_opt_strs+2012)
+#define DH_BITS_DESC      (gnutls_cli_opt_strs+1742)
 /** Upper-cased name for the dh-bits option */
-#define DH_BITS_NAME      (gnutls_cli_opt_strs+2054)
+#define DH_BITS_NAME      (gnutls_cli_opt_strs+1784)
 /** Name string for the dh-bits option */
-#define DH_BITS_name      (gnutls_cli_opt_strs+2062)
+#define DH_BITS_name      (gnutls_cli_opt_strs+1792)
 /** Compiled in flag settings for the dh-bits option */
 #define DH_BITS_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -526,11 +464,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  priority option description:
  */
 /** Descriptive text for the priority option */
-#define PRIORITY_DESC      (gnutls_cli_opt_strs+2070)
+#define PRIORITY_DESC      (gnutls_cli_opt_strs+1800)
 /** Upper-cased name for the priority option */
-#define PRIORITY_NAME      (gnutls_cli_opt_strs+2088)
+#define PRIORITY_NAME      (gnutls_cli_opt_strs+1818)
 /** Name string for the priority option */
-#define PRIORITY_name      (gnutls_cli_opt_strs+2097)
+#define PRIORITY_name      (gnutls_cli_opt_strs+1827)
 /** Compiled in flag settings for the priority option */
 #define PRIORITY_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -539,11 +477,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  x509cafile option description:
  */
 /** Descriptive text for the x509cafile option */
-#define X509CAFILE_DESC      (gnutls_cli_opt_strs+2106)
+#define X509CAFILE_DESC      (gnutls_cli_opt_strs+1836)
 /** Upper-cased name for the x509cafile option */
-#define X509CAFILE_NAME      (gnutls_cli_opt_strs+2146)
+#define X509CAFILE_NAME      (gnutls_cli_opt_strs+1876)
 /** Name string for the x509cafile option */
-#define X509CAFILE_name      (gnutls_cli_opt_strs+2157)
+#define X509CAFILE_name      (gnutls_cli_opt_strs+1887)
 /** Compiled in flag settings for the x509cafile option */
 #define X509CAFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -552,11 +490,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  x509crlfile option description:
  */
 /** Descriptive text for the x509crlfile option */
-#define X509CRLFILE_DESC      (gnutls_cli_opt_strs+2168)
+#define X509CRLFILE_DESC      (gnutls_cli_opt_strs+1898)
 /** Upper-cased name for the x509crlfile option */
-#define X509CRLFILE_NAME      (gnutls_cli_opt_strs+2184)
+#define X509CRLFILE_NAME      (gnutls_cli_opt_strs+1914)
 /** Name string for the x509crlfile option */
-#define X509CRLFILE_name      (gnutls_cli_opt_strs+2196)
+#define X509CRLFILE_name      (gnutls_cli_opt_strs+1926)
 /** Compiled in flag settings for the x509crlfile option */
 #define X509CRLFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
@@ -565,11 +503,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  pgpkeyfile option description:
  */
 /** Descriptive text for the pgpkeyfile option */
-#define PGPKEYFILE_DESC      (gnutls_cli_opt_strs+2208)
+#define PGPKEYFILE_DESC      (gnutls_cli_opt_strs+1938)
 /** Upper-cased name for the pgpkeyfile option */
-#define PGPKEYFILE_NAME      (gnutls_cli_opt_strs+2228)
+#define PGPKEYFILE_NAME      (gnutls_cli_opt_strs+1958)
 /** Name string for the pgpkeyfile option */
-#define PGPKEYFILE_name      (gnutls_cli_opt_strs+2239)
+#define PGPKEYFILE_name      (gnutls_cli_opt_strs+1969)
 /** Compiled in flag settings for the pgpkeyfile option */
 #define PGPKEYFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
@@ -578,11 +516,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  pgpkeyring option description:
  */
 /** Descriptive text for the pgpkeyring option */
-#define PGPKEYRING_DESC      (gnutls_cli_opt_strs+2250)
+#define PGPKEYRING_DESC      (gnutls_cli_opt_strs+1980)
 /** Upper-cased name for the pgpkeyring option */
-#define PGPKEYRING_NAME      (gnutls_cli_opt_strs+2275)
+#define PGPKEYRING_NAME      (gnutls_cli_opt_strs+2005)
 /** Name string for the pgpkeyring option */
-#define PGPKEYRING_name      (gnutls_cli_opt_strs+2286)
+#define PGPKEYRING_name      (gnutls_cli_opt_strs+2016)
 /** Compiled in flag settings for the pgpkeyring option */
 #define PGPKEYRING_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
@@ -591,11 +529,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  pgpcertfile option description:
  */
 /** Descriptive text for the pgpcertfile option */
-#define PGPCERTFILE_DESC      (gnutls_cli_opt_strs+2297)
+#define PGPCERTFILE_DESC      (gnutls_cli_opt_strs+2027)
 /** Upper-cased name for the pgpcertfile option */
-#define PGPCERTFILE_NAME      (gnutls_cli_opt_strs+2338)
+#define PGPCERTFILE_NAME      (gnutls_cli_opt_strs+2068)
 /** Name string for the pgpcertfile option */
-#define PGPCERTFILE_name      (gnutls_cli_opt_strs+2350)
+#define PGPCERTFILE_name      (gnutls_cli_opt_strs+2080)
 /** Compiled in flag settings for the pgpcertfile option */
 #define PGPCERTFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
@@ -604,11 +542,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  x509keyfile option description:
  */
 /** Descriptive text for the x509keyfile option */
-#define X509KEYFILE_DESC      (gnutls_cli_opt_strs+2362)
+#define X509KEYFILE_DESC      (gnutls_cli_opt_strs+2092)
 /** Upper-cased name for the x509keyfile option */
-#define X509KEYFILE_NAME      (gnutls_cli_opt_strs+2400)
+#define X509KEYFILE_NAME      (gnutls_cli_opt_strs+2130)
 /** Name string for the x509keyfile option */
-#define X509KEYFILE_name      (gnutls_cli_opt_strs+2412)
+#define X509KEYFILE_name      (gnutls_cli_opt_strs+2142)
 /** Compiled in flag settings for the x509keyfile option */
 #define X509KEYFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -617,11 +555,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  x509certfile option description:
  */
 /** Descriptive text for the x509certfile option */
-#define X509CERTFILE_DESC      (gnutls_cli_opt_strs+2424)
+#define X509CERTFILE_DESC      (gnutls_cli_opt_strs+2154)
 /** Upper-cased name for the x509certfile option */
-#define X509CERTFILE_NAME      (gnutls_cli_opt_strs+2470)
+#define X509CERTFILE_NAME      (gnutls_cli_opt_strs+2200)
 /** Name string for the x509certfile option */
-#define X509CERTFILE_name      (gnutls_cli_opt_strs+2483)
+#define X509CERTFILE_name      (gnutls_cli_opt_strs+2213)
 /** Compiled in flag settings for the x509certfile option */
 #define X509CERTFILE_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -630,11 +568,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  pgpsubkey option description:
  */
 /** Descriptive text for the pgpsubkey option */
-#define PGPSUBKEY_DESC      (gnutls_cli_opt_strs+2496)
+#define PGPSUBKEY_DESC      (gnutls_cli_opt_strs+2226)
 /** Upper-cased name for the pgpsubkey option */
-#define PGPSUBKEY_NAME      (gnutls_cli_opt_strs+2528)
+#define PGPSUBKEY_NAME      (gnutls_cli_opt_strs+2258)
 /** Name string for the pgpsubkey option */
-#define PGPSUBKEY_name      (gnutls_cli_opt_strs+2538)
+#define PGPSUBKEY_name      (gnutls_cli_opt_strs+2268)
 /** Compiled in flag settings for the pgpsubkey option */
 #define PGPSUBKEY_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -643,11 +581,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  srpusername option description:
  */
 /** Descriptive text for the srpusername option */
-#define SRPUSERNAME_DESC      (gnutls_cli_opt_strs+2548)
+#define SRPUSERNAME_DESC      (gnutls_cli_opt_strs+2278)
 /** Upper-cased name for the srpusername option */
-#define SRPUSERNAME_NAME      (gnutls_cli_opt_strs+2568)
+#define SRPUSERNAME_NAME      (gnutls_cli_opt_strs+2298)
 /** Name string for the srpusername option */
-#define SRPUSERNAME_name      (gnutls_cli_opt_strs+2580)
+#define SRPUSERNAME_name      (gnutls_cli_opt_strs+2310)
 /** Compiled in flag settings for the srpusername option */
 #define SRPUSERNAME_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -656,11 +594,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  srppasswd option description:
  */
 /** Descriptive text for the srppasswd option */
-#define SRPPASSWD_DESC      (gnutls_cli_opt_strs+2592)
+#define SRPPASSWD_DESC      (gnutls_cli_opt_strs+2322)
 /** Upper-cased name for the srppasswd option */
-#define SRPPASSWD_NAME      (gnutls_cli_opt_strs+2612)
+#define SRPPASSWD_NAME      (gnutls_cli_opt_strs+2342)
 /** Name string for the srppasswd option */
-#define SRPPASSWD_name      (gnutls_cli_opt_strs+2622)
+#define SRPPASSWD_name      (gnutls_cli_opt_strs+2352)
 /** Compiled in flag settings for the srppasswd option */
 #define SRPPASSWD_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -669,11 +607,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  pskusername option description:
  */
 /** Descriptive text for the pskusername option */
-#define PSKUSERNAME_DESC      (gnutls_cli_opt_strs+2632)
+#define PSKUSERNAME_DESC      (gnutls_cli_opt_strs+2362)
 /** Upper-cased name for the pskusername option */
-#define PSKUSERNAME_NAME      (gnutls_cli_opt_strs+2652)
+#define PSKUSERNAME_NAME      (gnutls_cli_opt_strs+2382)
 /** Name string for the pskusername option */
-#define PSKUSERNAME_name      (gnutls_cli_opt_strs+2664)
+#define PSKUSERNAME_name      (gnutls_cli_opt_strs+2394)
 /** Compiled in flag settings for the pskusername option */
 #define PSKUSERNAME_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -682,37 +620,24 @@ static char const gnutls_cli_opt_strs[3935] =
  *  pskkey option description:
  */
 /** Descriptive text for the pskkey option */
-#define PSKKEY_DESC      (gnutls_cli_opt_strs+2676)
+#define PSKKEY_DESC      (gnutls_cli_opt_strs+2406)
 /** Upper-cased name for the pskkey option */
-#define PSKKEY_NAME      (gnutls_cli_opt_strs+2700)
+#define PSKKEY_NAME      (gnutls_cli_opt_strs+2430)
 /** Name string for the pskkey option */
-#define PSKKEY_name      (gnutls_cli_opt_strs+2707)
+#define PSKKEY_name      (gnutls_cli_opt_strs+2437)
 /** Compiled in flag settings for the pskkey option */
 #define PSKKEY_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
 
-/**
- *  alpn option description:
- */
-/** Descriptive text for the alpn option */
-#define ALPN_DESC      (gnutls_cli_opt_strs+2714)
-/** Upper-cased name for the alpn option */
-#define ALPN_NAME      (gnutls_cli_opt_strs+2741)
-/** Name string for the alpn option */
-#define ALPN_name      (gnutls_cli_opt_strs+2746)
-/** Compiled in flag settings for the alpn option */
-#define ALPN_FLAGS     (OPTST_DISABLED \
-        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
-
 /**
  *  port option description:
  */
 /** Descriptive text for the port option */
-#define PORT_DESC      (gnutls_cli_opt_strs+2751)
+#define PORT_DESC      (gnutls_cli_opt_strs+2444)
 /** Upper-cased name for the port option */
-#define PORT_NAME      (gnutls_cli_opt_strs+2785)
+#define PORT_NAME      (gnutls_cli_opt_strs+2478)
 /** Name string for the port option */
-#define PORT_name      (gnutls_cli_opt_strs+2790)
+#define PORT_name      (gnutls_cli_opt_strs+2483)
 /** Compiled in flag settings for the port option */
 #define PORT_FLAGS     (OPTST_DISABLED \
         | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -721,11 +646,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  insecure option description:
  */
 /** Descriptive text for the insecure option */
-#define INSECURE_DESC      (gnutls_cli_opt_strs+2795)
+#define INSECURE_DESC      (gnutls_cli_opt_strs+2488)
 /** Upper-cased name for the insecure option */
-#define INSECURE_NAME      (gnutls_cli_opt_strs+2856)
+#define INSECURE_NAME      (gnutls_cli_opt_strs+2549)
 /** Name string for the insecure option */
-#define INSECURE_name      (gnutls_cli_opt_strs+2865)
+#define INSECURE_name      (gnutls_cli_opt_strs+2558)
 /** Compiled in flag settings for the insecure option */
 #define INSECURE_FLAGS     (OPTST_DISABLED)
 
@@ -733,11 +658,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  ranges option description:
  */
 /** Descriptive text for the ranges option */
-#define RANGES_DESC      (gnutls_cli_opt_strs+2874)
+#define RANGES_DESC      (gnutls_cli_opt_strs+2567)
 /** Upper-cased name for the ranges option */
-#define RANGES_NAME      (gnutls_cli_opt_strs+2928)
+#define RANGES_NAME      (gnutls_cli_opt_strs+2621)
 /** Name string for the ranges option */
-#define RANGES_name      (gnutls_cli_opt_strs+2935)
+#define RANGES_name      (gnutls_cli_opt_strs+2628)
 /** Compiled in flag settings for the ranges option */
 #define RANGES_FLAGS     (OPTST_DISABLED)
 
@@ -745,11 +670,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  benchmark-ciphers option description:
  */
 /** Descriptive text for the benchmark-ciphers option */
-#define BENCHMARK_CIPHERS_DESC      (gnutls_cli_opt_strs+2942)
+#define BENCHMARK_CIPHERS_DESC      (gnutls_cli_opt_strs+2635)
 /** Upper-cased name for the benchmark-ciphers option */
-#define BENCHMARK_CIPHERS_NAME      (gnutls_cli_opt_strs+2971)
+#define BENCHMARK_CIPHERS_NAME      (gnutls_cli_opt_strs+2664)
 /** Name string for the benchmark-ciphers option */
-#define BENCHMARK_CIPHERS_name      (gnutls_cli_opt_strs+2989)
+#define BENCHMARK_CIPHERS_name      (gnutls_cli_opt_strs+2682)
 /** Compiled in flag settings for the benchmark-ciphers option */
 #define BENCHMARK_CIPHERS_FLAGS     (OPTST_DISABLED)
 
@@ -757,11 +682,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  benchmark-soft-ciphers option description:
  */
 /** Descriptive text for the benchmark-soft-ciphers option */
-#define BENCHMARK_SOFT_CIPHERS_DESC      (gnutls_cli_opt_strs+3007)
+#define BENCHMARK_SOFT_CIPHERS_DESC      (gnutls_cli_opt_strs+2700)
 /** Upper-cased name for the benchmark-soft-ciphers option */
-#define BENCHMARK_SOFT_CIPHERS_NAME      (gnutls_cli_opt_strs+3066)
+#define BENCHMARK_SOFT_CIPHERS_NAME      (gnutls_cli_opt_strs+2759)
 /** Name string for the benchmark-soft-ciphers option */
-#define BENCHMARK_SOFT_CIPHERS_name      (gnutls_cli_opt_strs+3089)
+#define BENCHMARK_SOFT_CIPHERS_name      (gnutls_cli_opt_strs+2782)
 /** Compiled in flag settings for the benchmark-soft-ciphers option */
 #define BENCHMARK_SOFT_CIPHERS_FLAGS     (OPTST_DISABLED)
 
@@ -769,11 +694,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  benchmark-tls-kx option description:
  */
 /** Descriptive text for the benchmark-tls-kx option */
-#define BENCHMARK_TLS_KX_DESC      (gnutls_cli_opt_strs+3112)
+#define BENCHMARK_TLS_KX_DESC      (gnutls_cli_opt_strs+2805)
 /** Upper-cased name for the benchmark-tls-kx option */
-#define BENCHMARK_TLS_KX_NAME      (gnutls_cli_opt_strs+3147)
+#define BENCHMARK_TLS_KX_NAME      (gnutls_cli_opt_strs+2840)
 /** Name string for the benchmark-tls-kx option */
-#define BENCHMARK_TLS_KX_name      (gnutls_cli_opt_strs+3164)
+#define BENCHMARK_TLS_KX_name      (gnutls_cli_opt_strs+2857)
 /** Compiled in flag settings for the benchmark-tls-kx option */
 #define BENCHMARK_TLS_KX_FLAGS     (OPTST_DISABLED)
 
@@ -781,11 +706,11 @@ static char const gnutls_cli_opt_strs[3935] =
  *  benchmark-tls-ciphers option description:
  */
 /** Descriptive text for the benchmark-tls-ciphers option */
-#define BENCHMARK_TLS_CIPHERS_DESC      (gnutls_cli_opt_strs+3181)
+#define BENCHMARK_TLS_CIPHERS_DESC      (gnutls_cli_opt_strs+2874)
 /** Upper-cased name for the benchmark-tls-ciphers option */
-#define BENCHMARK_TLS_CIPHERS_NAME      (gnutls_cli_opt_strs+3203)
+#define BENCHMARK_TLS_CIPHERS_NAME      (gnutls_cli_opt_strs+2896)
 /** Name string for the benchmark-tls-ciphers option */
-#define BENCHMARK_TLS_CIPHERS_name      (gnutls_cli_opt_strs+3225)
+#define BENCHMARK_TLS_CIPHERS_name      (gnutls_cli_opt_strs+2918)
 /** Compiled in flag settings for the benchmark-tls-ciphers option */
 #define BENCHMARK_TLS_CIPHERS_FLAGS     (OPTST_DISABLED)
 
@@ -793,34 +718,109 @@ static char const gnutls_cli_opt_strs[3935] =
  *  list option description:
  */
 /** Descriptive text for the list option */
-#define LIST_DESC      (gnutls_cli_opt_strs+3247)
+#define LIST_DESC      (gnutls_cli_opt_strs+2940)
 /** Upper-cased name for the list option */
-#define LIST_NAME      (gnutls_cli_opt_strs+3298)
+#define LIST_NAME      (gnutls_cli_opt_strs+2991)
 /** Name string for the list option */
-#define LIST_name      (gnutls_cli_opt_strs+3303)
+#define LIST_name      (gnutls_cli_opt_strs+2996)
 /** Compiled in flag settings for the list option */
 #define LIST_FLAGS     (OPTST_DISABLED)
 
+/**
+ *  noticket option description:
+ */
+/** Descriptive text for the noticket option */
+#define NOTICKET_DESC      (gnutls_cli_opt_strs+3001)
+/** Upper-cased name for the noticket option */
+#define NOTICKET_NAME      (gnutls_cli_opt_strs+3029)
+/** Name string for the noticket option */
+#define NOTICKET_name      (gnutls_cli_opt_strs+3038)
+/** Compiled in flag settings for the noticket option */
+#define NOTICKET_FLAGS     (OPTST_DISABLED)
+
+/**
+ *  srtp_profiles option description:
+ */
+/** Descriptive text for the srtp_profiles option */
+#define SRTP_PROFILES_DESC      (gnutls_cli_opt_strs+3047)
+/** Upper-cased name for the srtp_profiles option */
+#define SRTP_PROFILES_NAME      (gnutls_cli_opt_strs+3067)
+/** Name string for the srtp_profiles option */
+#define SRTP_PROFILES_name      (gnutls_cli_opt_strs+3081)
+/** Compiled in flag settings for the srtp_profiles option */
+#define SRTP_PROFILES_FLAGS     (OPTST_DISABLED \
+        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/**
+ *  alpn option description:
+ */
+/** Descriptive text for the alpn option */
+#define ALPN_DESC      (gnutls_cli_opt_strs+3095)
+/** Upper-cased name for the alpn option */
+#define ALPN_NAME      (gnutls_cli_opt_strs+3122)
+/** Name string for the alpn option */
+#define ALPN_name      (gnutls_cli_opt_strs+3127)
+/** Compiled in flag settings for the alpn option */
+#define ALPN_FLAGS     (OPTST_DISABLED | OPTST_STACKED \
+        | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
+
+/**
+ *  heartbeat option description:
+ */
+/** Descriptive text for the heartbeat option */
+#define HEARTBEAT_DESC      (gnutls_cli_opt_strs+3132)
+/** Upper-cased name for the heartbeat option */
+#define HEARTBEAT_NAME      (gnutls_cli_opt_strs+3159)
+/** Name string for the heartbeat option */
+#define HEARTBEAT_name      (gnutls_cli_opt_strs+3169)
+/** Compiled in flag settings for the heartbeat option */
+#define HEARTBEAT_FLAGS     (OPTST_DISABLED)
+
+/**
+ *  recordsize option description:
+ */
+/** Descriptive text for the recordsize option */
+#define RECORDSIZE_DESC      (gnutls_cli_opt_strs+3179)
+/** Upper-cased name for the recordsize option */
+#define RECORDSIZE_NAME      (gnutls_cli_opt_strs+3216)
+/** Name string for the recordsize option */
+#define RECORDSIZE_name      (gnutls_cli_opt_strs+3227)
+/** Compiled in flag settings for the recordsize option */
+#define RECORDSIZE_FLAGS     (OPTST_DISABLED \
+        | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
+
 /**
  *  disable-sni option description:
  */
 /** Descriptive text for the disable-sni option */
-#define DISABLE_SNI_DESC      (gnutls_cli_opt_strs+3308)
+#define DISABLE_SNI_DESC      (gnutls_cli_opt_strs+3238)
 /** Upper-cased name for the disable-sni option */
-#define DISABLE_SNI_NAME      (gnutls_cli_opt_strs+3351)
+#define DISABLE_SNI_NAME      (gnutls_cli_opt_strs+3281)
 /** Name string for the disable-sni option */
-#define DISABLE_SNI_name      (gnutls_cli_opt_strs+3363)
+#define DISABLE_SNI_name      (gnutls_cli_opt_strs+3293)
 /** Compiled in flag settings for the disable-sni option */
 #define DISABLE_SNI_FLAGS     (OPTST_DISABLED)
 
+/**
+ *  disable-extensions option description:
+ */
+/** Descriptive text for the disable-extensions option */
+#define DISABLE_EXTENSIONS_DESC      (gnutls_cli_opt_strs+3305)
+/** Upper-cased name for the disable-extensions option */
+#define DISABLE_EXTENSIONS_NAME      (gnutls_cli_opt_strs+3336)
+/** Name string for the disable-extensions option */
+#define DISABLE_EXTENSIONS_name      (gnutls_cli_opt_strs+3355)
+/** Compiled in flag settings for the disable-extensions option */
+#define DISABLE_EXTENSIONS_FLAGS     (OPTST_DISABLED)
+
 /*
  *  Help/More_Help/Version option descriptions:
  */
-#define HELP_DESC       (gnutls_cli_opt_strs+3375)
-#define HELP_name       (gnutls_cli_opt_strs+3419)
+#define HELP_DESC       (gnutls_cli_opt_strs+3374)
+#define HELP_name       (gnutls_cli_opt_strs+3418)
 #ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC  (gnutls_cli_opt_strs+3424)
-#define MORE_HELP_name  (gnutls_cli_opt_strs+3469)
+#define MORE_HELP_DESC  (gnutls_cli_opt_strs+3423)
+#define MORE_HELP_name  (gnutls_cli_opt_strs+3468)
 #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
 #else
 #define MORE_HELP_DESC  NULL
@@ -833,8 +833,8 @@ static char const gnutls_cli_opt_strs[3935] =
 #  define VER_FLAGS     (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
                          OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
 #endif
-#define VER_DESC        (gnutls_cli_opt_strs+3479)
-#define VER_name        (gnutls_cli_opt_strs+3515)
+#define VER_DESC        (gnutls_cli_opt_strs+3478)
+#define VER_name        (gnutls_cli_opt_strs+3514)
 /**
  *  Declare option callback procedures
  */
@@ -951,20 +951,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ RESUME_DESC, RESUME_NAME, RESUME_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 8, VALUE_OPT_HEARTBEAT,
-     /* equiv idx, value */ 8, VALUE_OPT_HEARTBEAT,
-     /* equivalenced to  */ NO_EQUIVALENT,
-     /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ HEARTBEAT_FLAGS, 0,
-     /* last opt argumnt */ { NULL }, /* --heartbeat */
-     /* arg list/cookie  */ NULL,
-     /* must/cannot opts */ NULL, NULL,
-     /* option proc      */ NULL,
-     /* desc, NAME, name */ HEARTBEAT_DESC, HEARTBEAT_NAME, HEARTBEAT_name,
-     /* disablement strs */ NULL, NULL },
-
-  {  /* entry idx, value */ 9, VALUE_OPT_REHANDSHAKE,
-     /* equiv idx, value */ 9, VALUE_OPT_REHANDSHAKE,
+  {  /* entry idx, value */ 8, VALUE_OPT_REHANDSHAKE,
+     /* equiv idx, value */ 8, VALUE_OPT_REHANDSHAKE,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ REHANDSHAKE_FLAGS, 0,
@@ -975,20 +963,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ REHANDSHAKE_DESC, REHANDSHAKE_NAME, REHANDSHAKE_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 10, VALUE_OPT_NOTICKET,
-     /* equiv idx, value */ 10, VALUE_OPT_NOTICKET,
-     /* equivalenced to  */ NO_EQUIVALENT,
-     /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ NOTICKET_FLAGS, 0,
-     /* last opt argumnt */ { NULL }, /* --noticket */
-     /* arg list/cookie  */ NULL,
-     /* must/cannot opts */ NULL, NULL,
-     /* option proc      */ NULL,
-     /* desc, NAME, name */ NOTICKET_DESC, NOTICKET_NAME, NOTICKET_name,
-     /* disablement strs */ NULL, NULL },
-
-  {  /* entry idx, value */ 11, VALUE_OPT_STARTTLS,
-     /* equiv idx, value */ 11, VALUE_OPT_STARTTLS,
+  {  /* entry idx, value */ 9, VALUE_OPT_STARTTLS,
+     /* equiv idx, value */ 9, VALUE_OPT_STARTTLS,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ STARTTLS_FLAGS, 0,
@@ -999,8 +975,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ STARTTLS_DESC, STARTTLS_NAME, STARTTLS_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 12, VALUE_OPT_UDP,
-     /* equiv idx, value */ 12, VALUE_OPT_UDP,
+  {  /* entry idx, value */ 10, VALUE_OPT_UDP,
+     /* equiv idx, value */ 10, VALUE_OPT_UDP,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ UDP_FLAGS, 0,
@@ -1011,8 +987,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ UDP_DESC, UDP_NAME, UDP_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 13, VALUE_OPT_MTU,
-     /* equiv idx, value */ 13, VALUE_OPT_MTU,
+  {  /* entry idx, value */ 11, VALUE_OPT_MTU,
+     /* equiv idx, value */ 11, VALUE_OPT_MTU,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ MTU_FLAGS, 0,
@@ -1023,20 +999,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ MTU_DESC, MTU_NAME, MTU_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 14, VALUE_OPT_SRTP_PROFILES,
-     /* equiv idx, value */ 14, VALUE_OPT_SRTP_PROFILES,
-     /* equivalenced to  */ NO_EQUIVALENT,
-     /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ SRTP_PROFILES_FLAGS, 0,
-     /* last opt argumnt */ { NULL }, /* --srtp_profiles */
-     /* arg list/cookie  */ NULL,
-     /* must/cannot opts */ NULL, NULL,
-     /* option proc      */ NULL,
-     /* desc, NAME, name */ SRTP_PROFILES_DESC, SRTP_PROFILES_NAME, SRTP_PROFILES_name,
-     /* disablement strs */ NULL, NULL },
-
-  {  /* entry idx, value */ 15, VALUE_OPT_CRLF,
-     /* equiv idx, value */ 15, VALUE_OPT_CRLF,
+  {  /* entry idx, value */ 12, VALUE_OPT_CRLF,
+     /* equiv idx, value */ 12, VALUE_OPT_CRLF,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ CRLF_FLAGS, 0,
@@ -1047,8 +1011,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ CRLF_DESC, CRLF_NAME, CRLF_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 16, VALUE_OPT_X509FMTDER,
-     /* equiv idx, value */ 16, VALUE_OPT_X509FMTDER,
+  {  /* entry idx, value */ 13, VALUE_OPT_X509FMTDER,
+     /* equiv idx, value */ 13, VALUE_OPT_X509FMTDER,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ X509FMTDER_FLAGS, 0,
@@ -1059,8 +1023,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ X509FMTDER_DESC, X509FMTDER_NAME, X509FMTDER_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 17, VALUE_OPT_FINGERPRINT,
-     /* equiv idx, value */ 17, VALUE_OPT_FINGERPRINT,
+  {  /* entry idx, value */ 14, VALUE_OPT_FINGERPRINT,
+     /* equiv idx, value */ 14, VALUE_OPT_FINGERPRINT,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ FINGERPRINT_FLAGS, 0,
@@ -1071,20 +1035,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ FINGERPRINT_DESC, FINGERPRINT_NAME, FINGERPRINT_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 18, VALUE_OPT_DISABLE_EXTENSIONS,
-     /* equiv idx, value */ 18, VALUE_OPT_DISABLE_EXTENSIONS,
-     /* equivalenced to  */ NO_EQUIVALENT,
-     /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ DISABLE_EXTENSIONS_FLAGS, 0,
-     /* last opt argumnt */ { NULL }, /* --disable-extensions */
-     /* arg list/cookie  */ NULL,
-     /* must/cannot opts */ NULL, NULL,
-     /* option proc      */ NULL,
-     /* desc, NAME, name */ DISABLE_EXTENSIONS_DESC, DISABLE_EXTENSIONS_NAME, DISABLE_EXTENSIONS_name,
-     /* disablement strs */ NULL, NULL },
-
-  {  /* entry idx, value */ 19, VALUE_OPT_PRINT_CERT,
-     /* equiv idx, value */ 19, VALUE_OPT_PRINT_CERT,
+  {  /* entry idx, value */ 15, VALUE_OPT_PRINT_CERT,
+     /* equiv idx, value */ 15, VALUE_OPT_PRINT_CERT,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ PRINT_CERT_FLAGS, 0,
@@ -1095,20 +1047,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ PRINT_CERT_DESC, PRINT_CERT_NAME, PRINT_CERT_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 20, VALUE_OPT_RECORDSIZE,
-     /* equiv idx, value */ 20, VALUE_OPT_RECORDSIZE,
-     /* equivalenced to  */ NO_EQUIVALENT,
-     /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ RECORDSIZE_FLAGS, 0,
-     /* last opt argumnt */ { NULL }, /* --recordsize */
-     /* arg list/cookie  */ NULL,
-     /* must/cannot opts */ NULL, NULL,
-     /* option proc      */ doOptRecordsize,
-     /* desc, NAME, name */ RECORDSIZE_DESC, RECORDSIZE_NAME, RECORDSIZE_name,
-     /* disablement strs */ NULL, NULL },
-
-  {  /* entry idx, value */ 21, VALUE_OPT_DH_BITS,
-     /* equiv idx, value */ 21, VALUE_OPT_DH_BITS,
+  {  /* entry idx, value */ 16, VALUE_OPT_DH_BITS,
+     /* equiv idx, value */ 16, VALUE_OPT_DH_BITS,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ DH_BITS_FLAGS, 0,
@@ -1119,8 +1059,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ DH_BITS_DESC, DH_BITS_NAME, DH_BITS_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 22, VALUE_OPT_PRIORITY,
-     /* equiv idx, value */ 22, VALUE_OPT_PRIORITY,
+  {  /* entry idx, value */ 17, VALUE_OPT_PRIORITY,
+     /* equiv idx, value */ 17, VALUE_OPT_PRIORITY,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ PRIORITY_FLAGS, 0,
@@ -1131,8 +1071,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ PRIORITY_DESC, PRIORITY_NAME, PRIORITY_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 23, VALUE_OPT_X509CAFILE,
-     /* equiv idx, value */ 23, VALUE_OPT_X509CAFILE,
+  {  /* entry idx, value */ 18, VALUE_OPT_X509CAFILE,
+     /* equiv idx, value */ 18, VALUE_OPT_X509CAFILE,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ X509CAFILE_FLAGS, 0,
@@ -1143,8 +1083,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ X509CAFILE_DESC, X509CAFILE_NAME, X509CAFILE_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 24, VALUE_OPT_X509CRLFILE,
-     /* equiv idx, value */ 24, VALUE_OPT_X509CRLFILE,
+  {  /* entry idx, value */ 19, VALUE_OPT_X509CRLFILE,
+     /* equiv idx, value */ 19, VALUE_OPT_X509CRLFILE,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ X509CRLFILE_FLAGS, 0,
@@ -1155,8 +1095,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ X509CRLFILE_DESC, X509CRLFILE_NAME, X509CRLFILE_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 25, VALUE_OPT_PGPKEYFILE,
-     /* equiv idx, value */ 25, VALUE_OPT_PGPKEYFILE,
+  {  /* entry idx, value */ 20, VALUE_OPT_PGPKEYFILE,
+     /* equiv idx, value */ 20, VALUE_OPT_PGPKEYFILE,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ PGPKEYFILE_FLAGS, 0,
@@ -1167,8 +1107,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ PGPKEYFILE_DESC, PGPKEYFILE_NAME, PGPKEYFILE_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 26, VALUE_OPT_PGPKEYRING,
-     /* equiv idx, value */ 26, VALUE_OPT_PGPKEYRING,
+  {  /* entry idx, value */ 21, VALUE_OPT_PGPKEYRING,
+     /* equiv idx, value */ 21, VALUE_OPT_PGPKEYRING,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ PGPKEYRING_FLAGS, 0,
@@ -1179,8 +1119,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ PGPKEYRING_DESC, PGPKEYRING_NAME, PGPKEYRING_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 27, VALUE_OPT_PGPCERTFILE,
-     /* equiv idx, value */ 27, VALUE_OPT_PGPCERTFILE,
+  {  /* entry idx, value */ 22, VALUE_OPT_PGPCERTFILE,
+     /* equiv idx, value */ 22, VALUE_OPT_PGPCERTFILE,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ PGPCERTFILE_FLAGS, 0,
@@ -1191,8 +1131,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ PGPCERTFILE_DESC, PGPCERTFILE_NAME, PGPCERTFILE_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 28, VALUE_OPT_X509KEYFILE,
-     /* equiv idx, value */ 28, VALUE_OPT_X509KEYFILE,
+  {  /* entry idx, value */ 23, VALUE_OPT_X509KEYFILE,
+     /* equiv idx, value */ 23, VALUE_OPT_X509KEYFILE,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ X509KEYFILE_FLAGS, 0,
@@ -1203,8 +1143,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ X509KEYFILE_DESC, X509KEYFILE_NAME, X509KEYFILE_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 29, VALUE_OPT_X509CERTFILE,
-     /* equiv idx, value */ 29, VALUE_OPT_X509CERTFILE,
+  {  /* entry idx, value */ 24, VALUE_OPT_X509CERTFILE,
+     /* equiv idx, value */ 24, VALUE_OPT_X509CERTFILE,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ X509CERTFILE_FLAGS, 0,
@@ -1215,8 +1155,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ X509CERTFILE_DESC, X509CERTFILE_NAME, X509CERTFILE_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 30, VALUE_OPT_PGPSUBKEY,
-     /* equiv idx, value */ 30, VALUE_OPT_PGPSUBKEY,
+  {  /* entry idx, value */ 25, VALUE_OPT_PGPSUBKEY,
+     /* equiv idx, value */ 25, VALUE_OPT_PGPSUBKEY,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ PGPSUBKEY_FLAGS, 0,
@@ -1227,8 +1167,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ PGPSUBKEY_DESC, PGPSUBKEY_NAME, PGPSUBKEY_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 31, VALUE_OPT_SRPUSERNAME,
-     /* equiv idx, value */ 31, VALUE_OPT_SRPUSERNAME,
+  {  /* entry idx, value */ 26, VALUE_OPT_SRPUSERNAME,
+     /* equiv idx, value */ 26, VALUE_OPT_SRPUSERNAME,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ SRPUSERNAME_FLAGS, 0,
@@ -1239,8 +1179,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ SRPUSERNAME_DESC, SRPUSERNAME_NAME, SRPUSERNAME_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 32, VALUE_OPT_SRPPASSWD,
-     /* equiv idx, value */ 32, VALUE_OPT_SRPPASSWD,
+  {  /* entry idx, value */ 27, VALUE_OPT_SRPPASSWD,
+     /* equiv idx, value */ 27, VALUE_OPT_SRPPASSWD,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ SRPPASSWD_FLAGS, 0,
@@ -1251,8 +1191,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ SRPPASSWD_DESC, SRPPASSWD_NAME, SRPPASSWD_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 33, VALUE_OPT_PSKUSERNAME,
-     /* equiv idx, value */ 33, VALUE_OPT_PSKUSERNAME,
+  {  /* entry idx, value */ 28, VALUE_OPT_PSKUSERNAME,
+     /* equiv idx, value */ 28, VALUE_OPT_PSKUSERNAME,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ PSKUSERNAME_FLAGS, 0,
@@ -1263,8 +1203,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ PSKUSERNAME_DESC, PSKUSERNAME_NAME, PSKUSERNAME_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 34, VALUE_OPT_PSKKEY,
-     /* equiv idx, value */ 34, VALUE_OPT_PSKKEY,
+  {  /* entry idx, value */ 29, VALUE_OPT_PSKKEY,
+     /* equiv idx, value */ 29, VALUE_OPT_PSKKEY,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ PSKKEY_FLAGS, 0,
@@ -1275,20 +1215,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ PSKKEY_DESC, PSKKEY_NAME, PSKKEY_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 35, VALUE_OPT_ALPN,
-     /* equiv idx, value */ 35, VALUE_OPT_ALPN,
-     /* equivalenced to  */ NO_EQUIVALENT,
-     /* min, max, act ct */ 0, 1, 0,
-     /* opt state flags  */ ALPN_FLAGS, 0,
-     /* last opt argumnt */ { NULL }, /* --alpn */
-     /* arg list/cookie  */ NULL,
-     /* must/cannot opts */ NULL, NULL,
-     /* option proc      */ NULL,
-     /* desc, NAME, name */ ALPN_DESC, ALPN_NAME, ALPN_name,
-     /* disablement strs */ NULL, NULL },
-
-  {  /* entry idx, value */ 36, VALUE_OPT_PORT,
-     /* equiv idx, value */ 36, VALUE_OPT_PORT,
+  {  /* entry idx, value */ 30, VALUE_OPT_PORT,
+     /* equiv idx, value */ 30, VALUE_OPT_PORT,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ PORT_FLAGS, 0,
@@ -1299,8 +1227,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ PORT_DESC, PORT_NAME, PORT_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 37, VALUE_OPT_INSECURE,
-     /* equiv idx, value */ 37, VALUE_OPT_INSECURE,
+  {  /* entry idx, value */ 31, VALUE_OPT_INSECURE,
+     /* equiv idx, value */ 31, VALUE_OPT_INSECURE,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ INSECURE_FLAGS, 0,
@@ -1311,8 +1239,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ INSECURE_DESC, INSECURE_NAME, INSECURE_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 38, VALUE_OPT_RANGES,
-     /* equiv idx, value */ 38, VALUE_OPT_RANGES,
+  {  /* entry idx, value */ 32, VALUE_OPT_RANGES,
+     /* equiv idx, value */ 32, VALUE_OPT_RANGES,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ RANGES_FLAGS, 0,
@@ -1323,8 +1251,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ RANGES_DESC, RANGES_NAME, RANGES_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 39, VALUE_OPT_BENCHMARK_CIPHERS,
-     /* equiv idx, value */ 39, VALUE_OPT_BENCHMARK_CIPHERS,
+  {  /* entry idx, value */ 33, VALUE_OPT_BENCHMARK_CIPHERS,
+     /* equiv idx, value */ 33, VALUE_OPT_BENCHMARK_CIPHERS,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ BENCHMARK_CIPHERS_FLAGS, 0,
@@ -1335,8 +1263,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ BENCHMARK_CIPHERS_DESC, BENCHMARK_CIPHERS_NAME, BENCHMARK_CIPHERS_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 40, VALUE_OPT_BENCHMARK_SOFT_CIPHERS,
-     /* equiv idx, value */ 40, VALUE_OPT_BENCHMARK_SOFT_CIPHERS,
+  {  /* entry idx, value */ 34, VALUE_OPT_BENCHMARK_SOFT_CIPHERS,
+     /* equiv idx, value */ 34, VALUE_OPT_BENCHMARK_SOFT_CIPHERS,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ BENCHMARK_SOFT_CIPHERS_FLAGS, 0,
@@ -1347,8 +1275,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ BENCHMARK_SOFT_CIPHERS_DESC, BENCHMARK_SOFT_CIPHERS_NAME, BENCHMARK_SOFT_CIPHERS_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 41, VALUE_OPT_BENCHMARK_TLS_KX,
-     /* equiv idx, value */ 41, VALUE_OPT_BENCHMARK_TLS_KX,
+  {  /* entry idx, value */ 35, VALUE_OPT_BENCHMARK_TLS_KX,
+     /* equiv idx, value */ 35, VALUE_OPT_BENCHMARK_TLS_KX,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ BENCHMARK_TLS_KX_FLAGS, 0,
@@ -1359,8 +1287,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ BENCHMARK_TLS_KX_DESC, BENCHMARK_TLS_KX_NAME, BENCHMARK_TLS_KX_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 42, VALUE_OPT_BENCHMARK_TLS_CIPHERS,
-     /* equiv idx, value */ 42, VALUE_OPT_BENCHMARK_TLS_CIPHERS,
+  {  /* entry idx, value */ 36, VALUE_OPT_BENCHMARK_TLS_CIPHERS,
+     /* equiv idx, value */ 36, VALUE_OPT_BENCHMARK_TLS_CIPHERS,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ BENCHMARK_TLS_CIPHERS_FLAGS, 0,
@@ -1371,8 +1299,8 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ BENCHMARK_TLS_CIPHERS_DESC, BENCHMARK_TLS_CIPHERS_NAME, BENCHMARK_TLS_CIPHERS_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 43, VALUE_OPT_LIST,
-     /* equiv idx, value */ 43, VALUE_OPT_LIST,
+  {  /* entry idx, value */ 37, VALUE_OPT_LIST,
+     /* equiv idx, value */ 37, VALUE_OPT_LIST,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ LIST_FLAGS, 0,
@@ -1383,8 +1311,68 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ LIST_DESC, LIST_NAME, LIST_name,
      /* disablement strs */ NULL, NULL },
 
-  {  /* entry idx, value */ 44, VALUE_OPT_DISABLE_SNI,
-     /* equiv idx, value */ 44, VALUE_OPT_DISABLE_SNI,
+  {  /* entry idx, value */ 38, VALUE_OPT_NOTICKET,
+     /* equiv idx, value */ 38, VALUE_OPT_NOTICKET,
+     /* equivalenced to  */ NO_EQUIVALENT,
+     /* min, max, act ct */ 0, 1, 0,
+     /* opt state flags  */ NOTICKET_FLAGS, 0,
+     /* last opt argumnt */ { NULL }, /* --noticket */
+     /* arg list/cookie  */ NULL,
+     /* must/cannot opts */ NULL, NULL,
+     /* option proc      */ NULL,
+     /* desc, NAME, name */ NOTICKET_DESC, NOTICKET_NAME, NOTICKET_name,
+     /* disablement strs */ NULL, NULL },
+
+  {  /* entry idx, value */ 39, VALUE_OPT_SRTP_PROFILES,
+     /* equiv idx, value */ 39, VALUE_OPT_SRTP_PROFILES,
+     /* equivalenced to  */ NO_EQUIVALENT,
+     /* min, max, act ct */ 0, 1, 0,
+     /* opt state flags  */ SRTP_PROFILES_FLAGS, 0,
+     /* last opt argumnt */ { NULL }, /* --srtp_profiles */
+     /* arg list/cookie  */ NULL,
+     /* must/cannot opts */ NULL, NULL,
+     /* option proc      */ NULL,
+     /* desc, NAME, name */ SRTP_PROFILES_DESC, SRTP_PROFILES_NAME, SRTP_PROFILES_name,
+     /* disablement strs */ NULL, NULL },
+
+  {  /* entry idx, value */ 40, VALUE_OPT_ALPN,
+     /* equiv idx, value */ 40, VALUE_OPT_ALPN,
+     /* equivalenced to  */ NO_EQUIVALENT,
+     /* min, max, act ct */ 0, NOLIMIT, 0,
+     /* opt state flags  */ ALPN_FLAGS, 0,
+     /* last opt argumnt */ { NULL }, /* --alpn */
+     /* arg list/cookie  */ NULL,
+     /* must/cannot opts */ NULL, NULL,
+     /* option proc      */ optionStackArg,
+     /* desc, NAME, name */ ALPN_DESC, ALPN_NAME, ALPN_name,
+     /* disablement strs */ NULL, NULL },
+
+  {  /* entry idx, value */ 41, VALUE_OPT_HEARTBEAT,
+     /* equiv idx, value */ 41, VALUE_OPT_HEARTBEAT,
+     /* equivalenced to  */ NO_EQUIVALENT,
+     /* min, max, act ct */ 0, 1, 0,
+     /* opt state flags  */ HEARTBEAT_FLAGS, 0,
+     /* last opt argumnt */ { NULL }, /* --heartbeat */
+     /* arg list/cookie  */ NULL,
+     /* must/cannot opts */ NULL, NULL,
+     /* option proc      */ NULL,
+     /* desc, NAME, name */ HEARTBEAT_DESC, HEARTBEAT_NAME, HEARTBEAT_name,
+     /* disablement strs */ NULL, NULL },
+
+  {  /* entry idx, value */ 42, VALUE_OPT_RECORDSIZE,
+     /* equiv idx, value */ 42, VALUE_OPT_RECORDSIZE,
+     /* equivalenced to  */ NO_EQUIVALENT,
+     /* min, max, act ct */ 0, 1, 0,
+     /* opt state flags  */ RECORDSIZE_FLAGS, 0,
+     /* last opt argumnt */ { NULL }, /* --recordsize */
+     /* arg list/cookie  */ NULL,
+     /* must/cannot opts */ NULL, NULL,
+     /* option proc      */ doOptRecordsize,
+     /* desc, NAME, name */ RECORDSIZE_DESC, RECORDSIZE_NAME, RECORDSIZE_name,
+     /* disablement strs */ NULL, NULL },
+
+  {  /* entry idx, value */ 43, VALUE_OPT_DISABLE_SNI,
+     /* equiv idx, value */ 43, VALUE_OPT_DISABLE_SNI,
      /* equivalenced to  */ NO_EQUIVALENT,
      /* min, max, act ct */ 0, 1, 0,
      /* opt state flags  */ DISABLE_SNI_FLAGS, 0,
@@ -1395,6 +1383,18 @@ static tOptDesc optDesc[OPTION_CT] = {
      /* desc, NAME, name */ DISABLE_SNI_DESC, DISABLE_SNI_NAME, DISABLE_SNI_name,
      /* disablement strs */ NULL, NULL },
 
+  {  /* entry idx, value */ 44, VALUE_OPT_DISABLE_EXTENSIONS,
+     /* equiv idx, value */ 44, VALUE_OPT_DISABLE_EXTENSIONS,
+     /* equivalenced to  */ NO_EQUIVALENT,
+     /* min, max, act ct */ 0, 1, 0,
+     /* opt state flags  */ DISABLE_EXTENSIONS_FLAGS, 0,
+     /* last opt argumnt */ { NULL }, /* --disable-extensions */
+     /* arg list/cookie  */ NULL,
+     /* must/cannot opts */ NULL, NULL,
+     /* option proc      */ NULL,
+     /* desc, NAME, name */ DISABLE_EXTENSIONS_DESC, DISABLE_EXTENSIONS_NAME, DISABLE_EXTENSIONS_name,
+     /* disablement strs */ NULL, NULL },
+
   {  /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
      /* equiv idx value  */ NO_EQUIVALENT, VALUE_OPT_VERSION,
      /* equivalenced to  */ NO_EQUIVALENT,
@@ -1437,21 +1437,21 @@ static tOptDesc optDesc[OPTION_CT] = {
 
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 /** Reference to the upper cased version of gnutls-cli. */
-#define zPROGNAME       (gnutls_cli_opt_strs+3523)
+#define zPROGNAME       (gnutls_cli_opt_strs+3522)
 /** Reference to the title line for gnutls-cli usage. */
-#define zUsageTitle     (gnutls_cli_opt_strs+3534)
+#define zUsageTitle     (gnutls_cli_opt_strs+3533)
 /** There is no gnutls-cli configuration file. */
 #define zRcName         NULL
 /** There are no directories to search for gnutls-cli config files. */
 #define apzHomeList     NULL
 /** The gnutls-cli program bug email address. */
-#define zBugsAddr       (gnutls_cli_opt_strs+3630)
+#define zBugsAddr       (gnutls_cli_opt_strs+3629)
 /** Clarification/explanation of what gnutls-cli does. */
-#define zExplain        (gnutls_cli_opt_strs+3649)
+#define zExplain        (gnutls_cli_opt_strs+3648)
 /** Extra detail explaining what gnutls-cli does. */
-#define zDetail         (gnutls_cli_opt_strs+3651)
+#define zDetail         (gnutls_cli_opt_strs+3650)
 /** The full version string for gnutls-cli. */
-#define zFullVersion    (gnutls_cli_opt_strs+3834)
+#define zFullVersion    (gnutls_cli_opt_strs+3833)
 /* extracted from optcode.tlib near line 371 */
 
 #if defined(ENABLE_NLS)
@@ -1463,7 +1463,7 @@ static tOptDesc optDesc[OPTION_CT] = {
 #endif /* ENABLE_NLS */
 
 #define gnutls_cli_full_usage (NULL)
-#define gnutls_cli_short_usage (gnutls_cli_opt_strs+3855)
+#define gnutls_cli_short_usage (gnutls_cli_opt_strs+3854)
 
 #endif /* not defined __doxygen__ */
 
@@ -1556,41 +1556,6 @@ doOptMtu(tOptions* pOptions, tOptDesc* pOptDesc)
     optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
 }
 
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-/**
- * Code to handle the recordsize option.
- *
- * @param[in] pOptions the gnutls-cli options data structure
- * @param[in,out] pOptDesc the option descriptor for this option.
- */
-static void
-doOptRecordsize(tOptions* pOptions, tOptDesc* pOptDesc)
-{
-    static struct {long rmin, rmax;} const rng[1] = {
-        { 0, 4096 } };
-    int  ix;
-
-    if (pOptions <= OPTPROC_EMIT_LIMIT)
-        goto emit_ranges;
-    optionNumericVal(pOptions, pOptDesc);
-
-    for (ix = 0; ix < 1; ix++) {
-        if (pOptDesc->optArg.argInt < rng[ix].rmin)
-            continue;  /* ranges need not be ordered. */
-        if (pOptDesc->optArg.argInt == rng[ix].rmin)
-            return;
-        if (rng[ix].rmax == LONG_MIN)
-            continue;
-        if (pOptDesc->optArg.argInt <= rng[ix].rmax)
-            return;
-    }
-
-    option_usage_fp = stderr;
-
- emit_ranges:
-    optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
-}
-
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 /**
  * Code to handle the x509crlfile option.
@@ -1686,6 +1651,41 @@ doOptPgpcertfile(tOptions* pOptions, tOptDesc* pOptDesc)
      */
     optionFileCheck(pOptions, pOptDesc, type, mode);
 }
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+/**
+ * Code to handle the recordsize option.
+ *
+ * @param[in] pOptions the gnutls-cli options data structure
+ * @param[in,out] pOptDesc the option descriptor for this option.
+ */
+static void
+doOptRecordsize(tOptions* pOptions, tOptDesc* pOptDesc)
+{
+    static struct {long rmin, rmax;} const rng[1] = {
+        { 0, 4096 } };
+    int  ix;
+
+    if (pOptions <= OPTPROC_EMIT_LIMIT)
+        goto emit_ranges;
+    optionNumericVal(pOptions, pOptDesc);
+
+    for (ix = 0; ix < 1; ix++) {
+        if (pOptDesc->optArg.argInt < rng[ix].rmin)
+            continue;  /* ranges need not be ordered. */
+        if (pOptDesc->optArg.argInt == rng[ix].rmin)
+            return;
+        if (rng[ix].rmax == LONG_MIN)
+            continue;
+        if (pOptDesc->optArg.argInt <= rng[ix].rmax)
+            return;
+    }
+
+    option_usage_fp = stderr;
+
+ emit_ranges:
+    optionShowRange(pOptions, pOptDesc, (void *)rng, 1);
+}
 /* extracted from optmain.tlib near line 1254 */
 
 /**
@@ -1928,15 +1928,9 @@ with this program.  If not, see <http://www.gnu.org/licenses/>.\n"));
   /* referenced via gnutls_cliOptions.pOptDesc->pzText */
   puts(_("Establish a session and resume"));
 
-  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
-  puts(_("Activate heartbeat support"));
-
   /* referenced via gnutls_cliOptions.pOptDesc->pzText */
   puts(_("Establish a session and rehandshake"));
 
-  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
-  puts(_("Don't accept session tickets"));
-
   /* referenced via gnutls_cliOptions.pOptDesc->pzText */
   puts(_("Connect, establish a plain session and start TLS."));
 
@@ -1946,9 +1940,6 @@ with this program.  If not, see <http://www.gnu.org/licenses/>.\n"));
   /* referenced via gnutls_cliOptions.pOptDesc->pzText */
   puts(_("Set MTU for datagram TLS"));
 
-  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
-  puts(_("Offer SRTP profiles"));
-
   /* referenced via gnutls_cliOptions.pOptDesc->pzText */
   puts(_("Send CR LF instead of LF"));
 
@@ -1958,15 +1949,9 @@ with this program.  If not, see <http://www.gnu.org/licenses/>.\n"));
   /* referenced via gnutls_cliOptions.pOptDesc->pzText */
   puts(_("Send the openpgp fingerprint, instead of the key"));
 
-  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
-  puts(_("Disable all the TLS extensions"));
-
   /* referenced via gnutls_cliOptions.pOptDesc->pzText */
   puts(_("Print peer's certificate in PEM format"));
 
-  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
-  puts(_("The maximum record size to advertize"));
-
   /* referenced via gnutls_cliOptions.pOptDesc->pzText */
   puts(_("The minimum number of bits allowed for DH"));
 
@@ -2009,9 +1994,6 @@ with this program.  If not, see <http://www.gnu.org/licenses/>.\n"));
   /* referenced via gnutls_cliOptions.pOptDesc->pzText */
   puts(_("PSK key (in hex) to use"));
 
-  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
-  puts(_("Application layer protocol"));
-
   /* referenced via gnutls_cliOptions.pOptDesc->pzText */
   puts(_("The port or service to connect to"));
 
@@ -2036,9 +2018,27 @@ with this program.  If not, see <http://www.gnu.org/licenses/>.\n"));
   /* referenced via gnutls_cliOptions.pOptDesc->pzText */
   puts(_("Print a list of the supported algorithms and modes"));
 
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Don't allow session tickets"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Offer SRTP profiles"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Application layer protocol"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Activate heartbeat support"));
+
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("The maximum record size to advertize"));
+
   /* referenced via gnutls_cliOptions.pOptDesc->pzText */
   puts(_("Do not send a Server Name Indication (SNI)"));
 
+  /* referenced via gnutls_cliOptions.pOptDesc->pzText */
+  puts(_("Disable all the TLS extensions"));
+
   /* referenced via gnutls_cliOptions.pOptDesc->pzText */
   puts(_("display extended usage information and exit"));
 
index c6516a7e33963721b7cb5f66c3fa3ac86bd0919a..b226e7e342b6f2f5cd88499d197be383d731625f 100644 (file)
@@ -62,13 +62,6 @@ flag = {
     doc       = "Connect, establish a session, reconnect and resume.";
 };
 
-flag = {
-    name      = heartbeat;
-    value     = b;
-    descrip   = "Activate heartbeat support";
-    doc      = "";
-};
-
 flag = {
     name      = rehandshake;
     value     = e;
@@ -76,12 +69,6 @@ flag = {
     doc       = "Connect, establish a session and rehandshake immediately.";
 };
 
-flag = {
-    name      = noticket;
-    descrip   = "Don't accept session tickets";
-    doc      = "";
-};
-
 flag = {
     name      = starttls;
     value     = s;
@@ -104,13 +91,6 @@ flag = {
     doc      = "";
 };
 
-flag = {
-    name      = srtp_profiles;
-    arg-type  = string;
-    descrip   = "Offer SRTP profiles";
-    doc       = "";
-};
-
 flag = {
     name      = crlf;
     descrip   = "Send CR LF instead of LF";
@@ -130,26 +110,12 @@ flag = {
     doc      = "";
 };
 
-flag = {
-    name      = disable-extensions;
-    descrip   = "Disable all the TLS extensions";
-    doc      = "This option disables all TLS extensions. Deprecated option. Use the priority string.";
-};
-
 flag = {
     name      = print-cert;
     descrip   = "Print peer's certificate in PEM format";
     doc      = "";
 };
 
-flag = {
-    name      = recordsize;
-    arg-type  = number;
-    arg-range = "0->4096";
-    descrip   = "The maximum record size to advertize";
-    doc      = "";
-};
-
 flag = {
     name      = dh-bits;
     arg-type  = number;
@@ -257,12 +223,6 @@ flag = {
     doc      = "";
 };
 
-flag = {
-    name      = alpn;
-    arg-type  = string;
-    descrip   = "Application layer protocol";
-    doc      = "This option will set and enable the Application Layer Protocol Negotiation  (ALPN) in the TLS protocol.";
-};
 
 flag = {
     name      = port;
@@ -315,12 +275,54 @@ flag = {
     doc      = "Print a list of the supported algorithms and modes. If a priority string is given then only the enabled ciphersuites are shown.";
 };
 
+flag = {
+    name      = noticket;
+    descrip   = "Don't allow session tickets";
+    doc      = "";
+};
+
+flag = {
+    name      = srtp_profiles;
+    arg-type  = string;
+    descrip   = "Offer SRTP profiles";
+    doc       = "";
+};
+
+flag = {
+    name      = alpn;
+    arg-type  = string;
+    descrip   = "Application layer protocol";
+    max       = NOLIMIT;  /* occurrence limit (none)     */
+    stack-arg;            /* save opt args in a stack    */
+    doc      = "This option will set and enable the Application Layer Protocol Negotiation  (ALPN) in the TLS protocol.";
+};
+
+flag = {
+    name      = heartbeat;
+    value     = b;
+    descrip   = "Activate heartbeat support";
+    doc      = "";
+};
+
+flag = {
+    name      = recordsize;
+    arg-type  = number;
+    arg-range = "0->4096";
+    descrip   = "The maximum record size to advertize";
+    doc      = "";
+};
+
 flag = {
     name      = disable-sni;
     descrip   = "Do not send a Server Name Indication (SNI)";
     doc      = "";
 };
 
+flag = {
+    name      = disable-extensions;
+    descrip   = "Disable all the TLS extensions";
+    doc      = "This option disables all TLS extensions. Deprecated option. Use the priority string.";
+};
 
 
 doc-section = {
index 1b4770e0da862be7609f7f3aa857012176a3a221..420718cd4e7f4a81135d63e187adf33004c1bdd2 100644 (file)
@@ -2,7 +2,7 @@
  *
  *  DO NOT EDIT THIS FILE   (cli-args.h)
  *
- *  It has been AutoGen-ed  May  5, 2013 at 12:48:27 PM by AutoGen 5.17.3
+ *  It has been AutoGen-ed  May  5, 2013 at 01:00:26 PM by AutoGen 5.17.3
  *  From the definitions    cli-args.def
  *  and the template file   options
  *
@@ -74,43 +74,43 @@ typedef enum {
     INDEX_OPT_CA_VERIFICATION         =  5,
     INDEX_OPT_OCSP                    =  6,
     INDEX_OPT_RESUME                  =  7,
-    INDEX_OPT_HEARTBEAT               =  8,
-    INDEX_OPT_REHANDSHAKE             =  9,
-    INDEX_OPT_NOTICKET                = 10,
-    INDEX_OPT_STARTTLS                = 11,
-    INDEX_OPT_UDP                     = 12,
-    INDEX_OPT_MTU                     = 13,
-    INDEX_OPT_SRTP_PROFILES           = 14,
-    INDEX_OPT_CRLF                    = 15,
-    INDEX_OPT_X509FMTDER              = 16,
-    INDEX_OPT_FINGERPRINT             = 17,
-    INDEX_OPT_DISABLE_EXTENSIONS      = 18,
-    INDEX_OPT_PRINT_CERT              = 19,
-    INDEX_OPT_RECORDSIZE              = 20,
-    INDEX_OPT_DH_BITS                 = 21,
-    INDEX_OPT_PRIORITY                = 22,
-    INDEX_OPT_X509CAFILE              = 23,
-    INDEX_OPT_X509CRLFILE             = 24,
-    INDEX_OPT_PGPKEYFILE              = 25,
-    INDEX_OPT_PGPKEYRING              = 26,
-    INDEX_OPT_PGPCERTFILE             = 27,
-    INDEX_OPT_X509KEYFILE             = 28,
-    INDEX_OPT_X509CERTFILE            = 29,
-    INDEX_OPT_PGPSUBKEY               = 30,
-    INDEX_OPT_SRPUSERNAME             = 31,
-    INDEX_OPT_SRPPASSWD               = 32,
-    INDEX_OPT_PSKUSERNAME             = 33,
-    INDEX_OPT_PSKKEY                  = 34,
-    INDEX_OPT_ALPN                    = 35,
-    INDEX_OPT_PORT                    = 36,
-    INDEX_OPT_INSECURE                = 37,
-    INDEX_OPT_RANGES                  = 38,
-    INDEX_OPT_BENCHMARK_CIPHERS       = 39,
-    INDEX_OPT_BENCHMARK_SOFT_CIPHERS  = 40,
-    INDEX_OPT_BENCHMARK_TLS_KX        = 41,
-    INDEX_OPT_BENCHMARK_TLS_CIPHERS   = 42,
-    INDEX_OPT_LIST                    = 43,
-    INDEX_OPT_DISABLE_SNI             = 44,
+    INDEX_OPT_REHANDSHAKE             =  8,
+    INDEX_OPT_STARTTLS                =  9,
+    INDEX_OPT_UDP                     = 10,
+    INDEX_OPT_MTU                     = 11,
+    INDEX_OPT_CRLF                    = 12,
+    INDEX_OPT_X509FMTDER              = 13,
+    INDEX_OPT_FINGERPRINT             = 14,
+    INDEX_OPT_PRINT_CERT              = 15,
+    INDEX_OPT_DH_BITS                 = 16,
+    INDEX_OPT_PRIORITY                = 17,
+    INDEX_OPT_X509CAFILE              = 18,
+    INDEX_OPT_X509CRLFILE             = 19,
+    INDEX_OPT_PGPKEYFILE              = 20,
+    INDEX_OPT_PGPKEYRING              = 21,
+    INDEX_OPT_PGPCERTFILE             = 22,
+    INDEX_OPT_X509KEYFILE             = 23,
+    INDEX_OPT_X509CERTFILE            = 24,
+    INDEX_OPT_PGPSUBKEY               = 25,
+    INDEX_OPT_SRPUSERNAME             = 26,
+    INDEX_OPT_SRPPASSWD               = 27,
+    INDEX_OPT_PSKUSERNAME             = 28,
+    INDEX_OPT_PSKKEY                  = 29,
+    INDEX_OPT_PORT                    = 30,
+    INDEX_OPT_INSECURE                = 31,
+    INDEX_OPT_RANGES                  = 32,
+    INDEX_OPT_BENCHMARK_CIPHERS       = 33,
+    INDEX_OPT_BENCHMARK_SOFT_CIPHERS  = 34,
+    INDEX_OPT_BENCHMARK_TLS_KX        = 35,
+    INDEX_OPT_BENCHMARK_TLS_CIPHERS   = 36,
+    INDEX_OPT_LIST                    = 37,
+    INDEX_OPT_NOTICKET                = 38,
+    INDEX_OPT_SRTP_PROFILES           = 39,
+    INDEX_OPT_ALPN                    = 40,
+    INDEX_OPT_HEARTBEAT               = 41,
+    INDEX_OPT_RECORDSIZE              = 42,
+    INDEX_OPT_DISABLE_SNI             = 43,
+    INDEX_OPT_DISABLE_EXTENSIONS      = 44,
     INDEX_OPT_VERSION                 = 45,
     INDEX_OPT_HELP                    = 46,
     INDEX_OPT_MORE_HELP               = 47
@@ -183,49 +183,49 @@ typedef enum {
 #define VALUE_OPT_CA_VERIFICATION 5
 #define VALUE_OPT_OCSP           6
 #define VALUE_OPT_RESUME         'r'
-#define VALUE_OPT_HEARTBEAT      'b'
 #define VALUE_OPT_REHANDSHAKE    'e'
-#define VALUE_OPT_NOTICKET       10
 #define VALUE_OPT_STARTTLS       's'
 #define VALUE_OPT_UDP            'u'
-#define VALUE_OPT_MTU            13
+#define VALUE_OPT_MTU            11
 
 #define OPT_VALUE_MTU            (DESC(MTU).optArg.argInt)
-#define VALUE_OPT_SRTP_PROFILES  14
-#define VALUE_OPT_CRLF           15
-#define VALUE_OPT_X509FMTDER     16
+#define VALUE_OPT_CRLF           12
+#define VALUE_OPT_X509FMTDER     13
 #define VALUE_OPT_FINGERPRINT    'f'
-#define VALUE_OPT_DISABLE_EXTENSIONS 18
-#define VALUE_OPT_PRINT_CERT     19
-#define VALUE_OPT_RECORDSIZE     20
-
-#define OPT_VALUE_RECORDSIZE     (DESC(RECORDSIZE).optArg.argInt)
-#define VALUE_OPT_DH_BITS        21
+#define VALUE_OPT_PRINT_CERT     15
+#define VALUE_OPT_DH_BITS        16
 
 #define OPT_VALUE_DH_BITS        (DESC(DH_BITS).optArg.argInt)
-#define VALUE_OPT_PRIORITY       22
-#define VALUE_OPT_X509CAFILE     23
-#define VALUE_OPT_X509CRLFILE    24
-#define VALUE_OPT_PGPKEYFILE     25
-#define VALUE_OPT_PGPKEYRING     26
-#define VALUE_OPT_PGPCERTFILE    27
-#define VALUE_OPT_X509KEYFILE    28
-#define VALUE_OPT_X509CERTFILE   29
-#define VALUE_OPT_PGPSUBKEY      30
-#define VALUE_OPT_SRPUSERNAME    31
-#define VALUE_OPT_SRPPASSWD      32
-#define VALUE_OPT_PSKUSERNAME    129
-#define VALUE_OPT_PSKKEY         130
-#define VALUE_OPT_ALPN           131
+#define VALUE_OPT_PRIORITY       17
+#define VALUE_OPT_X509CAFILE     18
+#define VALUE_OPT_X509CRLFILE    19
+#define VALUE_OPT_PGPKEYFILE     20
+#define VALUE_OPT_PGPKEYRING     21
+#define VALUE_OPT_PGPCERTFILE    22
+#define VALUE_OPT_X509KEYFILE    23
+#define VALUE_OPT_X509CERTFILE   24
+#define VALUE_OPT_PGPSUBKEY      25
+#define VALUE_OPT_SRPUSERNAME    26
+#define VALUE_OPT_SRPPASSWD      27
+#define VALUE_OPT_PSKUSERNAME    28
+#define VALUE_OPT_PSKKEY         29
 #define VALUE_OPT_PORT           'p'
-#define VALUE_OPT_INSECURE       133
-#define VALUE_OPT_RANGES         134
-#define VALUE_OPT_BENCHMARK_CIPHERS 135
-#define VALUE_OPT_BENCHMARK_SOFT_CIPHERS 136
-#define VALUE_OPT_BENCHMARK_TLS_KX 137
-#define VALUE_OPT_BENCHMARK_TLS_CIPHERS 138
+#define VALUE_OPT_INSECURE       31
+#define VALUE_OPT_RANGES         32
+#define VALUE_OPT_BENCHMARK_CIPHERS 129
+#define VALUE_OPT_BENCHMARK_SOFT_CIPHERS 130
+#define VALUE_OPT_BENCHMARK_TLS_KX 131
+#define VALUE_OPT_BENCHMARK_TLS_CIPHERS 132
 #define VALUE_OPT_LIST           'l'
-#define VALUE_OPT_DISABLE_SNI    140
+#define VALUE_OPT_NOTICKET       134
+#define VALUE_OPT_SRTP_PROFILES  135
+#define VALUE_OPT_ALPN           136
+#define VALUE_OPT_HEARTBEAT      'b'
+#define VALUE_OPT_RECORDSIZE     138
+
+#define OPT_VALUE_RECORDSIZE     (DESC(RECORDSIZE).optArg.argInt)
+#define VALUE_OPT_DISABLE_SNI    139
+#define VALUE_OPT_DISABLE_EXTENSIONS 140
 /** option flag (value) for " (get "val-name") " option */
 #define VALUE_OPT_HELP          'h'
 /** option flag (value) for " (get "val-name") " option */
index 5b69ce0daea00aa17d1ae77f0a56375781b29eba..5a23f9168fe2062dd24c2bb7f63c467891ec1165 100644 (file)
--- a/src/cli.c
+++ b/src/cli.c
@@ -629,6 +629,7 @@ init_tls_session (const char *hostname)
 {
   const char *err;
   int ret;
+  unsigned i;
   gnutls_session_t session;
 
   if (priorities == NULL)
@@ -665,8 +666,16 @@ init_tls_session (const char *hostname)
   
   if (HAVE_OPT(ALPN))
     {
-      gnutls_datum_t p = { OPT_ARG(ALPN), strlen(OPT_ARG(ALPN)) };
-      gnutls_alpn_set_protocols( session, &p, 1);
+      unsigned proto_n = STACKCT_OPT(ALPN);
+      char** protos  = (void*)STACKLST_OPT(ALPN);
+      gnutls_datum_t p[proto_n];
+      
+      for (i=0;i<proto_n;i++)
+        {
+          p[i].data = (void*)protos[i];
+          p[i].size = strlen(protos[i]);
+        }
+      gnutls_alpn_set_protocols( session, p, proto_n);
     }
 
   gnutls_credentials_set (session, GNUTLS_CRD_ANON, anon_cred);
index 2297d48da30c533ad21defe1c927e85938ec121a..429c93e68fb113a0ef4d9740ab3e3b00ea356664 100644 (file)
@@ -457,6 +457,7 @@ print_info (gnutls_session_t session, int verbose, int print_cert)
     unsigned char session_id[33];
     size_t session_id_size = sizeof (session_id);
     gnutls_srtp_profile_t srtp_profile;
+    gnutls_datum_t p;
     char *desc;
     int rc;
 
@@ -576,6 +577,10 @@ print_info (gnutls_session_t session, int verbose, int print_cert)
       printf ("- SRTP profile: %s\n", gnutls_srtp_get_profile_name (srtp_profile));
 #endif
 
+    rc = gnutls_alpn_get_selected_protocol (session, &p);
+    if (rc == 0)
+      printf ("- Application protocol: %.*s\n", p.size, p.data);
+
     if (verbose)
       {
           gnutls_datum_t cb;