diff options
author | Daiki Ueno <dueno@redhat.com> | 2018-10-12 13:33:00 +0200 |
---|---|---|
committer | Daiki Ueno <dueno@redhat.com> | 2018-11-12 13:26:43 +0100 |
commit | 0676e51e8c621add86b1a9ba90b142dd1c3c7060 (patch) | |
tree | fe50ce7d46b867047bb71598af3044d82ff805af | |
parent | 6cf6b8f7205adbff41f38320433fb70ea4546720 (diff) | |
download | gnutls-0676e51e8c621add86b1a9ba90b142dd1c3c7060.tar.gz |
serv: add --earlydata option
Signed-off-by: Daiki Ueno <dueno@redhat.com>
-rw-r--r-- | src/serv-args.c.bak | 612 | ||||
-rw-r--r-- | src/serv-args.def | 6 | ||||
-rw-r--r-- | src/serv-args.h.bak | 130 | ||||
-rw-r--r-- | src/serv.c | 39 |
4 files changed, 424 insertions, 363 deletions
diff --git a/src/serv-args.c.bak b/src/serv-args.c.bak index 27e8e91353..2cd2173e8a 100644 --- a/src/serv-args.c.bak +++ b/src/serv-args.c.bak @@ -63,7 +63,7 @@ extern FILE * option_usage_fp; /** * static const strings for gnutls-serv options */ -static char const gnutls_serv_opt_strs[3428] = +static char const gnutls_serv_opt_strs[3466] = /* 0 */ "gnutls-serv 3.6.4\n" "Copyright (C) 2000-2018 Free Software Foundation, and others, all rights reserved.\n" "This is free software. It is licensed for use, modification and\n" @@ -97,116 +97,119 @@ static char const gnutls_serv_opt_strs[3428] = /* 1201 */ "Don't accept session tickets\0" /* 1230 */ "NOTICKET\0" /* 1239 */ "noticket\0" -/* 1248 */ "Don't require cookie on DTLS sessions\0" -/* 1286 */ "NOCOOKIE\0" -/* 1295 */ "nocookie\0" -/* 1304 */ "Generate Diffie-Hellman parameters\0" -/* 1339 */ "GENERATE\0" -/* 1348 */ "generate\0" -/* 1357 */ "Suppress some messages\0" -/* 1380 */ "QUIET\0" -/* 1386 */ "quiet\0" -/* 1392 */ "Do not use a resumption database\0" -/* 1425 */ "NODB\0" -/* 1430 */ "nodb\0" -/* 1435 */ "Act as an HTTP server\0" -/* 1457 */ "HTTP\0" -/* 1462 */ "http\0" -/* 1467 */ "Act as an Echo server\0" -/* 1489 */ "ECHO\0" -/* 1494 */ "echo\0" -/* 1499 */ "Use DTLS (datagram TLS) over UDP\0" -/* 1532 */ "UDP\0" -/* 1536 */ "udp\0" -/* 1540 */ "Set MTU for datagram TLS\0" -/* 1565 */ "MTU\0" -/* 1569 */ "mtu\0" -/* 1573 */ "Offer SRTP profiles\0" -/* 1593 */ "SRTP_PROFILES\0" -/* 1607 */ "srtp-profiles\0" -/* 1621 */ "Do not request a client certificate\0" -/* 1657 */ "DISABLE_CLIENT_CERT\0" -/* 1677 */ "disable-client-cert\0" -/* 1697 */ "Require a client certificate\0" -/* 1726 */ "REQUIRE_CLIENT_CERT\0" -/* 1746 */ "require-client-cert\0" -/* 1766 */ "If a client certificate is sent then verify it.\0" -/* 1814 */ "VERIFY_CLIENT_CERT\0" -/* 1833 */ "verify-client-cert\0" -/* 1852 */ "Activate heartbeat support\0" -/* 1879 */ "HEARTBEAT\0" -/* 1889 */ "heartbeat\0" -/* 1899 */ "Use DER format for certificates to read from\0" -/* 1944 */ "X509FMTDER\0" -/* 1955 */ "x509fmtder\0" -/* 1966 */ "Priorities string\0" -/* 1984 */ "PRIORITY\0" -/* 1993 */ "priority\0" -/* 2002 */ "DH params file to use\0" -/* 2024 */ "DHPARAMS\0" -/* 2033 */ "dhparams\0" -/* 2042 */ "Certificate file or PKCS #11 URL to use\0" -/* 2082 */ "X509CAFILE\0" -/* 2093 */ "x509cafile\0" -/* 2104 */ "CRL file to use\0" -/* 2120 */ "X509CRLFILE\0" -/* 2132 */ "x509crlfile\0" -/* 2144 */ "PGP Key file to use (deprecated)\0" -/* 2177 */ "PGPKEYFILE\0" -/* 2188 */ "pgpkeyfile\0" -/* 2199 */ "X.509 key file or PKCS #11 URL to use\0" -/* 2237 */ "X509KEYFILE\0" -/* 2249 */ "x509keyfile\0" -/* 2261 */ "X.509 Certificate file or PKCS #11 URL to use\0" -/* 2307 */ "X509CERTFILE\0" -/* 2320 */ "x509certfile\0" -/* 2333 */ "an alias for the 'x509keyfile' option (deprecated)\0" -/* 2384 */ "x509dsakeyfile\0" -/* 2399 */ "an alias for the 'x509certfile' option (deprecated)\0" -/* 2451 */ "x509dsacertfile\0" -/* 2467 */ "x509ecckeyfile\0" -/* 2482 */ "x509ecccertfile\0" -/* 2498 */ "SRP password file to use\0" -/* 2523 */ "SRPPASSWD\0" -/* 2533 */ "srppasswd\0" -/* 2543 */ "SRP password configuration file to use\0" -/* 2582 */ "SRPPASSWDCONF\0" -/* 2596 */ "srppasswdconf\0" -/* 2610 */ "PSK password file to use\0" -/* 2635 */ "PSKPASSWD\0" -/* 2645 */ "pskpasswd\0" -/* 2655 */ "PSK identity hint to use\0" -/* 2680 */ "PSKHINT\0" -/* 2688 */ "pskhint\0" -/* 2696 */ "The OCSP response to send to client\0" -/* 2732 */ "OCSP_RESPONSE\0" -/* 2746 */ "ocsp-response\0" -/* 2760 */ "Ignore any errors when setting the OCSP response\0" -/* 2809 */ "IGNORE_OCSP_RESPONSE_ERRORS\0" -/* 2837 */ "ignore-ocsp-response-errors\0" -/* 2865 */ "The port to connect to\0" -/* 2888 */ "PORT\0" -/* 2893 */ "port\0" -/* 2898 */ "Print a list of the supported algorithms and modes\0" -/* 2949 */ "LIST\0" -/* 2954 */ "list\0" -/* 2959 */ "Specify the PKCS #11 provider library\0" -/* 2997 */ "PROVIDER\0" -/* 3006 */ "provider\0" -/* 3015 */ "display extended usage information and exit\0" -/* 3059 */ "help\0" -/* 3064 */ "extended usage information passed thru pager\0" -/* 3109 */ "more-help\0" -/* 3119 */ "output version information and exit\0" -/* 3155 */ "version\0" -/* 3163 */ "GNUTLS_SERV\0" -/* 3175 */ "gnutls-serv - GnuTLS server\n" +/* 1248 */ "Accept early data\0" +/* 1266 */ "EARLYDATA\0" +/* 1276 */ "earlydata\0" +/* 1286 */ "Don't require cookie on DTLS sessions\0" +/* 1324 */ "NOCOOKIE\0" +/* 1333 */ "nocookie\0" +/* 1342 */ "Generate Diffie-Hellman parameters\0" +/* 1377 */ "GENERATE\0" +/* 1386 */ "generate\0" +/* 1395 */ "Suppress some messages\0" +/* 1418 */ "QUIET\0" +/* 1424 */ "quiet\0" +/* 1430 */ "Do not use a resumption database\0" +/* 1463 */ "NODB\0" +/* 1468 */ "nodb\0" +/* 1473 */ "Act as an HTTP server\0" +/* 1495 */ "HTTP\0" +/* 1500 */ "http\0" +/* 1505 */ "Act as an Echo server\0" +/* 1527 */ "ECHO\0" +/* 1532 */ "echo\0" +/* 1537 */ "Use DTLS (datagram TLS) over UDP\0" +/* 1570 */ "UDP\0" +/* 1574 */ "udp\0" +/* 1578 */ "Set MTU for datagram TLS\0" +/* 1603 */ "MTU\0" +/* 1607 */ "mtu\0" +/* 1611 */ "Offer SRTP profiles\0" +/* 1631 */ "SRTP_PROFILES\0" +/* 1645 */ "srtp-profiles\0" +/* 1659 */ "Do not request a client certificate\0" +/* 1695 */ "DISABLE_CLIENT_CERT\0" +/* 1715 */ "disable-client-cert\0" +/* 1735 */ "Require a client certificate\0" +/* 1764 */ "REQUIRE_CLIENT_CERT\0" +/* 1784 */ "require-client-cert\0" +/* 1804 */ "If a client certificate is sent then verify it.\0" +/* 1852 */ "VERIFY_CLIENT_CERT\0" +/* 1871 */ "verify-client-cert\0" +/* 1890 */ "Activate heartbeat support\0" +/* 1917 */ "HEARTBEAT\0" +/* 1927 */ "heartbeat\0" +/* 1937 */ "Use DER format for certificates to read from\0" +/* 1982 */ "X509FMTDER\0" +/* 1993 */ "x509fmtder\0" +/* 2004 */ "Priorities string\0" +/* 2022 */ "PRIORITY\0" +/* 2031 */ "priority\0" +/* 2040 */ "DH params file to use\0" +/* 2062 */ "DHPARAMS\0" +/* 2071 */ "dhparams\0" +/* 2080 */ "Certificate file or PKCS #11 URL to use\0" +/* 2120 */ "X509CAFILE\0" +/* 2131 */ "x509cafile\0" +/* 2142 */ "CRL file to use\0" +/* 2158 */ "X509CRLFILE\0" +/* 2170 */ "x509crlfile\0" +/* 2182 */ "PGP Key file to use (deprecated)\0" +/* 2215 */ "PGPKEYFILE\0" +/* 2226 */ "pgpkeyfile\0" +/* 2237 */ "X.509 key file or PKCS #11 URL to use\0" +/* 2275 */ "X509KEYFILE\0" +/* 2287 */ "x509keyfile\0" +/* 2299 */ "X.509 Certificate file or PKCS #11 URL to use\0" +/* 2345 */ "X509CERTFILE\0" +/* 2358 */ "x509certfile\0" +/* 2371 */ "an alias for the 'x509keyfile' option (deprecated)\0" +/* 2422 */ "x509dsakeyfile\0" +/* 2437 */ "an alias for the 'x509certfile' option (deprecated)\0" +/* 2489 */ "x509dsacertfile\0" +/* 2505 */ "x509ecckeyfile\0" +/* 2520 */ "x509ecccertfile\0" +/* 2536 */ "SRP password file to use\0" +/* 2561 */ "SRPPASSWD\0" +/* 2571 */ "srppasswd\0" +/* 2581 */ "SRP password configuration file to use\0" +/* 2620 */ "SRPPASSWDCONF\0" +/* 2634 */ "srppasswdconf\0" +/* 2648 */ "PSK password file to use\0" +/* 2673 */ "PSKPASSWD\0" +/* 2683 */ "pskpasswd\0" +/* 2693 */ "PSK identity hint to use\0" +/* 2718 */ "PSKHINT\0" +/* 2726 */ "pskhint\0" +/* 2734 */ "The OCSP response to send to client\0" +/* 2770 */ "OCSP_RESPONSE\0" +/* 2784 */ "ocsp-response\0" +/* 2798 */ "Ignore any errors when setting the OCSP response\0" +/* 2847 */ "IGNORE_OCSP_RESPONSE_ERRORS\0" +/* 2875 */ "ignore-ocsp-response-errors\0" +/* 2903 */ "The port to connect to\0" +/* 2926 */ "PORT\0" +/* 2931 */ "port\0" +/* 2936 */ "Print a list of the supported algorithms and modes\0" +/* 2987 */ "LIST\0" +/* 2992 */ "list\0" +/* 2997 */ "Specify the PKCS #11 provider library\0" +/* 3035 */ "PROVIDER\0" +/* 3044 */ "provider\0" +/* 3053 */ "display extended usage information and exit\0" +/* 3097 */ "help\0" +/* 3102 */ "extended usage information passed thru pager\0" +/* 3147 */ "more-help\0" +/* 3157 */ "output version information and exit\0" +/* 3193 */ "version\0" +/* 3201 */ "GNUTLS_SERV\0" +/* 3213 */ "gnutls-serv - GnuTLS server\n" "Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0" -/* 3261 */ "bugs@gnutls.org\0" -/* 3277 */ "\n\0" -/* 3279 */ "Server program that listens to incoming TLS connections.\n\0" -/* 3337 */ "gnutls-serv 3.6.4\0" -/* 3355 */ "Usage: gnutls-serv [options]\n" +/* 3299 */ "bugs@gnutls.org\0" +/* 3315 */ "\n\0" +/* 3317 */ "Server program that listens to incoming TLS connections.\n\0" +/* 3375 */ "gnutls-serv 3.6.4\0" +/* 3393 */ "Usage: gnutls-serv [options]\n" "gnutls-serv --help for usage instructions.\n"; /** @@ -285,14 +288,26 @@ static char const gnutls_serv_opt_strs[3428] = #define NOTICKET_FLAGS (OPTST_DISABLED) /** + * earlydata option description: + */ +/** Descriptive text for the earlydata option */ +#define EARLYDATA_DESC (gnutls_serv_opt_strs+1248) +/** Upper-cased name for the earlydata option */ +#define EARLYDATA_NAME (gnutls_serv_opt_strs+1266) +/** Name string for the earlydata option */ +#define EARLYDATA_name (gnutls_serv_opt_strs+1276) +/** Compiled in flag settings for the earlydata option */ +#define EARLYDATA_FLAGS (OPTST_DISABLED) + +/** * nocookie option description: */ /** Descriptive text for the nocookie option */ -#define NOCOOKIE_DESC (gnutls_serv_opt_strs+1248) +#define NOCOOKIE_DESC (gnutls_serv_opt_strs+1286) /** Upper-cased name for the nocookie option */ -#define NOCOOKIE_NAME (gnutls_serv_opt_strs+1286) +#define NOCOOKIE_NAME (gnutls_serv_opt_strs+1324) /** Name string for the nocookie option */ -#define NOCOOKIE_name (gnutls_serv_opt_strs+1295) +#define NOCOOKIE_name (gnutls_serv_opt_strs+1333) /** Compiled in flag settings for the nocookie option */ #define NOCOOKIE_FLAGS (OPTST_DISABLED) @@ -300,11 +315,11 @@ static char const gnutls_serv_opt_strs[3428] = * generate option description: */ /** Descriptive text for the generate option */ -#define GENERATE_DESC (gnutls_serv_opt_strs+1304) +#define GENERATE_DESC (gnutls_serv_opt_strs+1342) /** Upper-cased name for the generate option */ -#define GENERATE_NAME (gnutls_serv_opt_strs+1339) +#define GENERATE_NAME (gnutls_serv_opt_strs+1377) /** Name string for the generate option */ -#define GENERATE_name (gnutls_serv_opt_strs+1348) +#define GENERATE_name (gnutls_serv_opt_strs+1386) /** Compiled in flag settings for the generate option */ #define GENERATE_FLAGS (OPTST_DISABLED) @@ -312,11 +327,11 @@ static char const gnutls_serv_opt_strs[3428] = * quiet option description: */ /** Descriptive text for the quiet option */ -#define QUIET_DESC (gnutls_serv_opt_strs+1357) +#define QUIET_DESC (gnutls_serv_opt_strs+1395) /** Upper-cased name for the quiet option */ -#define QUIET_NAME (gnutls_serv_opt_strs+1380) +#define QUIET_NAME (gnutls_serv_opt_strs+1418) /** Name string for the quiet option */ -#define QUIET_name (gnutls_serv_opt_strs+1386) +#define QUIET_name (gnutls_serv_opt_strs+1424) /** Compiled in flag settings for the quiet option */ #define QUIET_FLAGS (OPTST_DISABLED) @@ -324,11 +339,11 @@ static char const gnutls_serv_opt_strs[3428] = * nodb option description: */ /** Descriptive text for the nodb option */ -#define NODB_DESC (gnutls_serv_opt_strs+1392) +#define NODB_DESC (gnutls_serv_opt_strs+1430) /** Upper-cased name for the nodb option */ -#define NODB_NAME (gnutls_serv_opt_strs+1425) +#define NODB_NAME (gnutls_serv_opt_strs+1463) /** Name string for the nodb option */ -#define NODB_name (gnutls_serv_opt_strs+1430) +#define NODB_name (gnutls_serv_opt_strs+1468) /** Compiled in flag settings for the nodb option */ #define NODB_FLAGS (OPTST_DISABLED) @@ -336,11 +351,11 @@ static char const gnutls_serv_opt_strs[3428] = * http option description: */ /** Descriptive text for the http option */ -#define HTTP_DESC (gnutls_serv_opt_strs+1435) +#define HTTP_DESC (gnutls_serv_opt_strs+1473) /** Upper-cased name for the http option */ -#define HTTP_NAME (gnutls_serv_opt_strs+1457) +#define HTTP_NAME (gnutls_serv_opt_strs+1495) /** Name string for the http option */ -#define HTTP_name (gnutls_serv_opt_strs+1462) +#define HTTP_name (gnutls_serv_opt_strs+1500) /** Compiled in flag settings for the http option */ #define HTTP_FLAGS (OPTST_DISABLED) @@ -348,11 +363,11 @@ static char const gnutls_serv_opt_strs[3428] = * echo option description: */ /** Descriptive text for the echo option */ -#define ECHO_DESC (gnutls_serv_opt_strs+1467) +#define ECHO_DESC (gnutls_serv_opt_strs+1505) /** Upper-cased name for the echo option */ -#define ECHO_NAME (gnutls_serv_opt_strs+1489) +#define ECHO_NAME (gnutls_serv_opt_strs+1527) /** Name string for the echo option */ -#define ECHO_name (gnutls_serv_opt_strs+1494) +#define ECHO_name (gnutls_serv_opt_strs+1532) /** Compiled in flag settings for the echo option */ #define ECHO_FLAGS (OPTST_DISABLED) @@ -360,11 +375,11 @@ static char const gnutls_serv_opt_strs[3428] = * udp option description: */ /** Descriptive text for the udp option */ -#define UDP_DESC (gnutls_serv_opt_strs+1499) +#define UDP_DESC (gnutls_serv_opt_strs+1537) /** Upper-cased name for the udp option */ -#define UDP_NAME (gnutls_serv_opt_strs+1532) +#define UDP_NAME (gnutls_serv_opt_strs+1570) /** Name string for the udp option */ -#define UDP_name (gnutls_serv_opt_strs+1536) +#define UDP_name (gnutls_serv_opt_strs+1574) /** Compiled in flag settings for the udp option */ #define UDP_FLAGS (OPTST_DISABLED) @@ -372,11 +387,11 @@ static char const gnutls_serv_opt_strs[3428] = * mtu option description: */ /** Descriptive text for the mtu option */ -#define MTU_DESC (gnutls_serv_opt_strs+1540) +#define MTU_DESC (gnutls_serv_opt_strs+1578) /** Upper-cased name for the mtu option */ -#define MTU_NAME (gnutls_serv_opt_strs+1565) +#define MTU_NAME (gnutls_serv_opt_strs+1603) /** Name string for the mtu option */ -#define MTU_name (gnutls_serv_opt_strs+1569) +#define MTU_name (gnutls_serv_opt_strs+1607) /** Compiled in flag settings for the mtu option */ #define MTU_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC)) @@ -385,11 +400,11 @@ static char const gnutls_serv_opt_strs[3428] = * srtp_profiles option description: */ /** Descriptive text for the srtp_profiles option */ -#define SRTP_PROFILES_DESC (gnutls_serv_opt_strs+1573) +#define SRTP_PROFILES_DESC (gnutls_serv_opt_strs+1611) /** Upper-cased name for the srtp_profiles option */ -#define SRTP_PROFILES_NAME (gnutls_serv_opt_strs+1593) +#define SRTP_PROFILES_NAME (gnutls_serv_opt_strs+1631) /** Name string for the srtp_profiles option */ -#define SRTP_PROFILES_name (gnutls_serv_opt_strs+1607) +#define SRTP_PROFILES_name (gnutls_serv_opt_strs+1645) /** Compiled in flag settings for the srtp_profiles option */ #define SRTP_PROFILES_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -399,11 +414,11 @@ static char const gnutls_serv_opt_strs[3428] = * "Must also have options" and "Incompatible options": */ /** Descriptive text for the disable-client-cert option */ -#define DISABLE_CLIENT_CERT_DESC (gnutls_serv_opt_strs+1621) +#define DISABLE_CLIENT_CERT_DESC (gnutls_serv_opt_strs+1659) /** Upper-cased name for the disable-client-cert option */ -#define DISABLE_CLIENT_CERT_NAME (gnutls_serv_opt_strs+1657) +#define DISABLE_CLIENT_CERT_NAME (gnutls_serv_opt_strs+1695) /** Name string for the disable-client-cert option */ -#define DISABLE_CLIENT_CERT_name (gnutls_serv_opt_strs+1677) +#define DISABLE_CLIENT_CERT_name (gnutls_serv_opt_strs+1715) /** Other options that appear in conjunction with the disable-client-cert option */ static int const aDisable_Client_CertCantList[] = { INDEX_OPT_REQUIRE_CLIENT_CERT, NO_EQUIVALENT }; @@ -414,11 +429,11 @@ static int const aDisable_Client_CertCantList[] = { * require-client-cert option description: */ /** Descriptive text for the require-client-cert option */ -#define REQUIRE_CLIENT_CERT_DESC (gnutls_serv_opt_strs+1697) +#define REQUIRE_CLIENT_CERT_DESC (gnutls_serv_opt_strs+1735) /** Upper-cased name for the require-client-cert option */ -#define REQUIRE_CLIENT_CERT_NAME (gnutls_serv_opt_strs+1726) +#define REQUIRE_CLIENT_CERT_NAME (gnutls_serv_opt_strs+1764) /** Name string for the require-client-cert option */ -#define REQUIRE_CLIENT_CERT_name (gnutls_serv_opt_strs+1746) +#define REQUIRE_CLIENT_CERT_name (gnutls_serv_opt_strs+1784) /** Compiled in flag settings for the require-client-cert option */ #define REQUIRE_CLIENT_CERT_FLAGS (OPTST_DISABLED) @@ -426,11 +441,11 @@ static int const aDisable_Client_CertCantList[] = { * verify-client-cert option description: */ /** Descriptive text for the verify-client-cert option */ -#define VERIFY_CLIENT_CERT_DESC (gnutls_serv_opt_strs+1766) +#define VERIFY_CLIENT_CERT_DESC (gnutls_serv_opt_strs+1804) /** Upper-cased name for the verify-client-cert option */ -#define VERIFY_CLIENT_CERT_NAME (gnutls_serv_opt_strs+1814) +#define VERIFY_CLIENT_CERT_NAME (gnutls_serv_opt_strs+1852) /** Name string for the verify-client-cert option */ -#define VERIFY_CLIENT_CERT_name (gnutls_serv_opt_strs+1833) +#define VERIFY_CLIENT_CERT_name (gnutls_serv_opt_strs+1871) /** Compiled in flag settings for the verify-client-cert option */ #define VERIFY_CLIENT_CERT_FLAGS (OPTST_DISABLED) @@ -438,11 +453,11 @@ static int const aDisable_Client_CertCantList[] = { * heartbeat option description: */ /** Descriptive text for the heartbeat option */ -#define HEARTBEAT_DESC (gnutls_serv_opt_strs+1852) +#define HEARTBEAT_DESC (gnutls_serv_opt_strs+1890) /** Upper-cased name for the heartbeat option */ -#define HEARTBEAT_NAME (gnutls_serv_opt_strs+1879) +#define HEARTBEAT_NAME (gnutls_serv_opt_strs+1917) /** Name string for the heartbeat option */ -#define HEARTBEAT_name (gnutls_serv_opt_strs+1889) +#define HEARTBEAT_name (gnutls_serv_opt_strs+1927) /** Compiled in flag settings for the heartbeat option */ #define HEARTBEAT_FLAGS (OPTST_DISABLED) @@ -450,11 +465,11 @@ static int const aDisable_Client_CertCantList[] = { * x509fmtder option description: */ /** Descriptive text for the x509fmtder option */ -#define X509FMTDER_DESC (gnutls_serv_opt_strs+1899) +#define X509FMTDER_DESC (gnutls_serv_opt_strs+1937) /** Upper-cased name for the x509fmtder option */ -#define X509FMTDER_NAME (gnutls_serv_opt_strs+1944) +#define X509FMTDER_NAME (gnutls_serv_opt_strs+1982) /** Name string for the x509fmtder option */ -#define X509FMTDER_name (gnutls_serv_opt_strs+1955) +#define X509FMTDER_name (gnutls_serv_opt_strs+1993) /** Compiled in flag settings for the x509fmtder option */ #define X509FMTDER_FLAGS (OPTST_DISABLED) @@ -462,11 +477,11 @@ static int const aDisable_Client_CertCantList[] = { * priority option description: */ /** Descriptive text for the priority option */ -#define PRIORITY_DESC (gnutls_serv_opt_strs+1966) +#define PRIORITY_DESC (gnutls_serv_opt_strs+2004) /** Upper-cased name for the priority option */ -#define PRIORITY_NAME (gnutls_serv_opt_strs+1984) +#define PRIORITY_NAME (gnutls_serv_opt_strs+2022) /** Name string for the priority option */ -#define PRIORITY_name (gnutls_serv_opt_strs+1993) +#define PRIORITY_name (gnutls_serv_opt_strs+2031) /** Compiled in flag settings for the priority option */ #define PRIORITY_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -475,11 +490,11 @@ static int const aDisable_Client_CertCantList[] = { * dhparams option description: */ /** Descriptive text for the dhparams option */ -#define DHPARAMS_DESC (gnutls_serv_opt_strs+2002) +#define DHPARAMS_DESC (gnutls_serv_opt_strs+2040) /** Upper-cased name for the dhparams option */ -#define DHPARAMS_NAME (gnutls_serv_opt_strs+2024) +#define DHPARAMS_NAME (gnutls_serv_opt_strs+2062) /** Name string for the dhparams option */ -#define DHPARAMS_name (gnutls_serv_opt_strs+2033) +#define DHPARAMS_name (gnutls_serv_opt_strs+2071) /** Compiled in flag settings for the dhparams option */ #define DHPARAMS_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) @@ -488,11 +503,11 @@ static int const aDisable_Client_CertCantList[] = { * x509cafile option description: */ /** Descriptive text for the x509cafile option */ -#define X509CAFILE_DESC (gnutls_serv_opt_strs+2042) +#define X509CAFILE_DESC (gnutls_serv_opt_strs+2080) /** Upper-cased name for the x509cafile option */ -#define X509CAFILE_NAME (gnutls_serv_opt_strs+2082) +#define X509CAFILE_NAME (gnutls_serv_opt_strs+2120) /** Name string for the x509cafile option */ -#define X509CAFILE_name (gnutls_serv_opt_strs+2093) +#define X509CAFILE_name (gnutls_serv_opt_strs+2131) /** Compiled in flag settings for the x509cafile option */ #define X509CAFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -501,11 +516,11 @@ static int const aDisable_Client_CertCantList[] = { * x509crlfile option description: */ /** Descriptive text for the x509crlfile option */ -#define X509CRLFILE_DESC (gnutls_serv_opt_strs+2104) +#define X509CRLFILE_DESC (gnutls_serv_opt_strs+2142) /** Upper-cased name for the x509crlfile option */ -#define X509CRLFILE_NAME (gnutls_serv_opt_strs+2120) +#define X509CRLFILE_NAME (gnutls_serv_opt_strs+2158) /** Name string for the x509crlfile option */ -#define X509CRLFILE_name (gnutls_serv_opt_strs+2132) +#define X509CRLFILE_name (gnutls_serv_opt_strs+2170) /** Compiled in flag settings for the x509crlfile option */ #define X509CRLFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) @@ -514,11 +529,11 @@ static int const aDisable_Client_CertCantList[] = { * pgpkeyfile option description: */ /** Descriptive text for the pgpkeyfile option */ -#define PGPKEYFILE_DESC (gnutls_serv_opt_strs+2144) +#define PGPKEYFILE_DESC (gnutls_serv_opt_strs+2182) /** Upper-cased name for the pgpkeyfile option */ -#define PGPKEYFILE_NAME (gnutls_serv_opt_strs+2177) +#define PGPKEYFILE_NAME (gnutls_serv_opt_strs+2215) /** Name string for the pgpkeyfile option */ -#define PGPKEYFILE_name (gnutls_serv_opt_strs+2188) +#define PGPKEYFILE_name (gnutls_serv_opt_strs+2226) /** Compiled in flag settings for the pgpkeyfile option */ #define PGPKEYFILE_FLAGS (OPTST_DISABLED | OPTST_DEPRECATED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) @@ -527,11 +542,11 @@ static int const aDisable_Client_CertCantList[] = { * x509keyfile option description: */ /** Descriptive text for the x509keyfile option */ -#define X509KEYFILE_DESC (gnutls_serv_opt_strs+2199) +#define X509KEYFILE_DESC (gnutls_serv_opt_strs+2237) /** Upper-cased name for the x509keyfile option */ -#define X509KEYFILE_NAME (gnutls_serv_opt_strs+2237) +#define X509KEYFILE_NAME (gnutls_serv_opt_strs+2275) /** Name string for the x509keyfile option */ -#define X509KEYFILE_name (gnutls_serv_opt_strs+2249) +#define X509KEYFILE_name (gnutls_serv_opt_strs+2287) /** Compiled in flag settings for the x509keyfile option */ #define X509KEYFILE_FLAGS (OPTST_DISABLED | OPTST_STACKED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -540,11 +555,11 @@ static int const aDisable_Client_CertCantList[] = { * x509certfile option description: */ /** Descriptive text for the x509certfile option */ -#define X509CERTFILE_DESC (gnutls_serv_opt_strs+2261) +#define X509CERTFILE_DESC (gnutls_serv_opt_strs+2299) /** Upper-cased name for the x509certfile option */ -#define X509CERTFILE_NAME (gnutls_serv_opt_strs+2307) +#define X509CERTFILE_NAME (gnutls_serv_opt_strs+2345) /** Name string for the x509certfile option */ -#define X509CERTFILE_name (gnutls_serv_opt_strs+2320) +#define X509CERTFILE_name (gnutls_serv_opt_strs+2358) /** Compiled in flag settings for the x509certfile option */ #define X509CERTFILE_FLAGS (OPTST_DISABLED | OPTST_STACKED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -553,10 +568,10 @@ static int const aDisable_Client_CertCantList[] = { * x509dsakeyfile option description: */ /** Descriptive text for the x509dsakeyfile option */ -#define X509DSAKEYFILE_DESC (gnutls_serv_opt_strs+2333) +#define X509DSAKEYFILE_DESC (gnutls_serv_opt_strs+2371) #define X509DSAKEYFILE_NAME NULL /** Unmodified name string for the x509dsakeyfile option */ -#define X509DSAKEYFILE_name (gnutls_serv_opt_strs+2384) +#define X509DSAKEYFILE_name (gnutls_serv_opt_strs+2422) /** Compiled in flag settings for the x509dsakeyfile option */ #define X509DSAKEYFILE_FLAGS (X509KEYFILE_FLAGS | OPTST_ALIAS | OPTST_DEPRECATED) @@ -564,10 +579,10 @@ static int const aDisable_Client_CertCantList[] = { * x509dsacertfile option description: */ /** Descriptive text for the x509dsacertfile option */ -#define X509DSACERTFILE_DESC (gnutls_serv_opt_strs+2399) +#define X509DSACERTFILE_DESC (gnutls_serv_opt_strs+2437) #define X509DSACERTFILE_NAME NULL /** Unmodified name string for the x509dsacertfile option */ -#define X509DSACERTFILE_name (gnutls_serv_opt_strs+2451) +#define X509DSACERTFILE_name (gnutls_serv_opt_strs+2489) /** Compiled in flag settings for the x509dsacertfile option */ #define X509DSACERTFILE_FLAGS (X509CERTFILE_FLAGS | OPTST_ALIAS | OPTST_DEPRECATED) @@ -575,10 +590,10 @@ static int const aDisable_Client_CertCantList[] = { * x509ecckeyfile option description: */ /** Descriptive text for the x509ecckeyfile option */ -#define X509ECCKEYFILE_DESC (gnutls_serv_opt_strs+2333) +#define X509ECCKEYFILE_DESC (gnutls_serv_opt_strs+2371) #define X509ECCKEYFILE_NAME NULL /** Unmodified name string for the x509ecckeyfile option */ -#define X509ECCKEYFILE_name (gnutls_serv_opt_strs+2467) +#define X509ECCKEYFILE_name (gnutls_serv_opt_strs+2505) /** Compiled in flag settings for the x509ecckeyfile option */ #define X509ECCKEYFILE_FLAGS (X509KEYFILE_FLAGS | OPTST_ALIAS | OPTST_DEPRECATED) @@ -586,10 +601,10 @@ static int const aDisable_Client_CertCantList[] = { * x509ecccertfile option description: */ /** Descriptive text for the x509ecccertfile option */ -#define X509ECCCERTFILE_DESC (gnutls_serv_opt_strs+2399) +#define X509ECCCERTFILE_DESC (gnutls_serv_opt_strs+2437) #define X509ECCCERTFILE_NAME NULL /** Unmodified name string for the x509ecccertfile option */ -#define X509ECCCERTFILE_name (gnutls_serv_opt_strs+2482) +#define X509ECCCERTFILE_name (gnutls_serv_opt_strs+2520) /** Compiled in flag settings for the x509ecccertfile option */ #define X509ECCCERTFILE_FLAGS (X509CERTFILE_FLAGS | OPTST_ALIAS | OPTST_DEPRECATED) @@ -597,11 +612,11 @@ static int const aDisable_Client_CertCantList[] = { * srppasswd option description: */ /** Descriptive text for the srppasswd option */ -#define SRPPASSWD_DESC (gnutls_serv_opt_strs+2498) +#define SRPPASSWD_DESC (gnutls_serv_opt_strs+2536) /** Upper-cased name for the srppasswd option */ -#define SRPPASSWD_NAME (gnutls_serv_opt_strs+2523) +#define SRPPASSWD_NAME (gnutls_serv_opt_strs+2561) /** Name string for the srppasswd option */ -#define SRPPASSWD_name (gnutls_serv_opt_strs+2533) +#define SRPPASSWD_name (gnutls_serv_opt_strs+2571) /** Compiled in flag settings for the srppasswd option */ #define SRPPASSWD_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) @@ -610,11 +625,11 @@ static int const aDisable_Client_CertCantList[] = { * srppasswdconf option description: */ /** Descriptive text for the srppasswdconf option */ -#define SRPPASSWDCONF_DESC (gnutls_serv_opt_strs+2543) +#define SRPPASSWDCONF_DESC (gnutls_serv_opt_strs+2581) /** Upper-cased name for the srppasswdconf option */ -#define SRPPASSWDCONF_NAME (gnutls_serv_opt_strs+2582) +#define SRPPASSWDCONF_NAME (gnutls_serv_opt_strs+2620) /** Name string for the srppasswdconf option */ -#define SRPPASSWDCONF_name (gnutls_serv_opt_strs+2596) +#define SRPPASSWDCONF_name (gnutls_serv_opt_strs+2634) /** Compiled in flag settings for the srppasswdconf option */ #define SRPPASSWDCONF_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) @@ -623,11 +638,11 @@ static int const aDisable_Client_CertCantList[] = { * pskpasswd option description: */ /** Descriptive text for the pskpasswd option */ -#define PSKPASSWD_DESC (gnutls_serv_opt_strs+2610) +#define PSKPASSWD_DESC (gnutls_serv_opt_strs+2648) /** Upper-cased name for the pskpasswd option */ -#define PSKPASSWD_NAME (gnutls_serv_opt_strs+2635) +#define PSKPASSWD_NAME (gnutls_serv_opt_strs+2673) /** Name string for the pskpasswd option */ -#define PSKPASSWD_name (gnutls_serv_opt_strs+2645) +#define PSKPASSWD_name (gnutls_serv_opt_strs+2683) /** Compiled in flag settings for the pskpasswd option */ #define PSKPASSWD_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) @@ -636,11 +651,11 @@ static int const aDisable_Client_CertCantList[] = { * pskhint option description: */ /** Descriptive text for the pskhint option */ -#define PSKHINT_DESC (gnutls_serv_opt_strs+2655) +#define PSKHINT_DESC (gnutls_serv_opt_strs+2693) /** Upper-cased name for the pskhint option */ -#define PSKHINT_NAME (gnutls_serv_opt_strs+2680) +#define PSKHINT_NAME (gnutls_serv_opt_strs+2718) /** Name string for the pskhint option */ -#define PSKHINT_name (gnutls_serv_opt_strs+2688) +#define PSKHINT_name (gnutls_serv_opt_strs+2726) /** Compiled in flag settings for the pskhint option */ #define PSKHINT_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -649,11 +664,11 @@ static int const aDisable_Client_CertCantList[] = { * ocsp-response option description: */ /** Descriptive text for the ocsp-response option */ -#define OCSP_RESPONSE_DESC (gnutls_serv_opt_strs+2696) +#define OCSP_RESPONSE_DESC (gnutls_serv_opt_strs+2734) /** Upper-cased name for the ocsp-response option */ -#define OCSP_RESPONSE_NAME (gnutls_serv_opt_strs+2732) +#define OCSP_RESPONSE_NAME (gnutls_serv_opt_strs+2770) /** Name string for the ocsp-response option */ -#define OCSP_RESPONSE_name (gnutls_serv_opt_strs+2746) +#define OCSP_RESPONSE_name (gnutls_serv_opt_strs+2784) /** Compiled in flag settings for the ocsp-response option */ #define OCSP_RESPONSE_FLAGS (OPTST_DISABLED | OPTST_STACKED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) @@ -662,11 +677,11 @@ static int const aDisable_Client_CertCantList[] = { * ignore-ocsp-response-errors option description: */ /** Descriptive text for the ignore-ocsp-response-errors option */ -#define IGNORE_OCSP_RESPONSE_ERRORS_DESC (gnutls_serv_opt_strs+2760) +#define IGNORE_OCSP_RESPONSE_ERRORS_DESC (gnutls_serv_opt_strs+2798) /** Upper-cased name for the ignore-ocsp-response-errors option */ -#define IGNORE_OCSP_RESPONSE_ERRORS_NAME (gnutls_serv_opt_strs+2809) +#define IGNORE_OCSP_RESPONSE_ERRORS_NAME (gnutls_serv_opt_strs+2847) /** Name string for the ignore-ocsp-response-errors option */ -#define IGNORE_OCSP_RESPONSE_ERRORS_name (gnutls_serv_opt_strs+2837) +#define IGNORE_OCSP_RESPONSE_ERRORS_name (gnutls_serv_opt_strs+2875) /** Compiled in flag settings for the ignore-ocsp-response-errors option */ #define IGNORE_OCSP_RESPONSE_ERRORS_FLAGS (OPTST_DISABLED) @@ -674,11 +689,11 @@ static int const aDisable_Client_CertCantList[] = { * port option description: */ /** Descriptive text for the port option */ -#define PORT_DESC (gnutls_serv_opt_strs+2865) +#define PORT_DESC (gnutls_serv_opt_strs+2903) /** Upper-cased name for the port option */ -#define PORT_NAME (gnutls_serv_opt_strs+2888) +#define PORT_NAME (gnutls_serv_opt_strs+2926) /** Name string for the port option */ -#define PORT_name (gnutls_serv_opt_strs+2893) +#define PORT_name (gnutls_serv_opt_strs+2931) /** Compiled in flag settings for the port option */ #define PORT_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC)) @@ -687,11 +702,11 @@ static int const aDisable_Client_CertCantList[] = { * list option description: */ /** Descriptive text for the list option */ -#define LIST_DESC (gnutls_serv_opt_strs+2898) +#define LIST_DESC (gnutls_serv_opt_strs+2936) /** Upper-cased name for the list option */ -#define LIST_NAME (gnutls_serv_opt_strs+2949) +#define LIST_NAME (gnutls_serv_opt_strs+2987) /** Name string for the list option */ -#define LIST_name (gnutls_serv_opt_strs+2954) +#define LIST_name (gnutls_serv_opt_strs+2992) /** Compiled in flag settings for the list option */ #define LIST_FLAGS (OPTST_DISABLED) @@ -699,11 +714,11 @@ static int const aDisable_Client_CertCantList[] = { * provider option description: */ /** Descriptive text for the provider option */ -#define PROVIDER_DESC (gnutls_serv_opt_strs+2959) +#define PROVIDER_DESC (gnutls_serv_opt_strs+2997) /** Upper-cased name for the provider option */ -#define PROVIDER_NAME (gnutls_serv_opt_strs+2997) +#define PROVIDER_NAME (gnutls_serv_opt_strs+3035) /** Name string for the provider option */ -#define PROVIDER_name (gnutls_serv_opt_strs+3006) +#define PROVIDER_name (gnutls_serv_opt_strs+3044) /** Compiled in flag settings for the provider option */ #define PROVIDER_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) @@ -711,11 +726,11 @@ static int const aDisable_Client_CertCantList[] = { /* * Help/More_Help/Version option descriptions: */ -#define HELP_DESC (gnutls_serv_opt_strs+3015) -#define HELP_name (gnutls_serv_opt_strs+3059) +#define HELP_DESC (gnutls_serv_opt_strs+3053) +#define HELP_name (gnutls_serv_opt_strs+3097) #ifdef HAVE_WORKING_FORK -#define MORE_HELP_DESC (gnutls_serv_opt_strs+3064) -#define MORE_HELP_name (gnutls_serv_opt_strs+3109) +#define MORE_HELP_DESC (gnutls_serv_opt_strs+3102) +#define MORE_HELP_name (gnutls_serv_opt_strs+3147) #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT) #else #define MORE_HELP_DESC HELP_DESC @@ -728,8 +743,8 @@ static int const aDisable_Client_CertCantList[] = { # define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \ OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT) #endif -#define VER_DESC (gnutls_serv_opt_strs+3119) -#define VER_name (gnutls_serv_opt_strs+3155) +#define VER_DESC (gnutls_serv_opt_strs+3157) +#define VER_name (gnutls_serv_opt_strs+3193) /** * Declare option callback procedures */ @@ -825,8 +840,20 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ NOTICKET_DESC, NOTICKET_NAME, NOTICKET_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 6, VALUE_OPT_NOCOOKIE, - /* equiv idx, value */ 6, VALUE_OPT_NOCOOKIE, + { /* entry idx, value */ 6, VALUE_OPT_EARLYDATA, + /* equiv idx, value */ 6, VALUE_OPT_EARLYDATA, + /* equivalenced to */ NO_EQUIVALENT, + /* min, max, act ct */ 0, 1, 0, + /* opt state flags */ EARLYDATA_FLAGS, 0, + /* last opt argumnt */ { NULL }, /* --earlydata */ + /* arg list/cookie */ NULL, + /* must/cannot opts */ NULL, NULL, + /* option proc */ NULL, + /* desc, NAME, name */ EARLYDATA_DESC, EARLYDATA_NAME, EARLYDATA_name, + /* disablement strs */ NULL, NULL }, + + { /* entry idx, value */ 7, VALUE_OPT_NOCOOKIE, + /* equiv idx, value */ 7, VALUE_OPT_NOCOOKIE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ NOCOOKIE_FLAGS, 0, @@ -837,8 +864,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ NOCOOKIE_DESC, NOCOOKIE_NAME, NOCOOKIE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 7, VALUE_OPT_GENERATE, - /* equiv idx, value */ 7, VALUE_OPT_GENERATE, + { /* entry idx, value */ 8, VALUE_OPT_GENERATE, + /* equiv idx, value */ 8, VALUE_OPT_GENERATE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ GENERATE_FLAGS, 0, @@ -849,8 +876,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ GENERATE_DESC, GENERATE_NAME, GENERATE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 8, VALUE_OPT_QUIET, - /* equiv idx, value */ 8, VALUE_OPT_QUIET, + { /* entry idx, value */ 9, VALUE_OPT_QUIET, + /* equiv idx, value */ 9, VALUE_OPT_QUIET, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ QUIET_FLAGS, 0, @@ -861,8 +888,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ QUIET_DESC, QUIET_NAME, QUIET_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 9, VALUE_OPT_NODB, - /* equiv idx, value */ 9, VALUE_OPT_NODB, + { /* entry idx, value */ 10, VALUE_OPT_NODB, + /* equiv idx, value */ 10, VALUE_OPT_NODB, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ NODB_FLAGS, 0, @@ -873,8 +900,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ NODB_DESC, NODB_NAME, NODB_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 10, VALUE_OPT_HTTP, - /* equiv idx, value */ 10, VALUE_OPT_HTTP, + { /* entry idx, value */ 11, VALUE_OPT_HTTP, + /* equiv idx, value */ 11, VALUE_OPT_HTTP, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ HTTP_FLAGS, 0, @@ -885,8 +912,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ HTTP_DESC, HTTP_NAME, HTTP_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 11, VALUE_OPT_ECHO, - /* equiv idx, value */ 11, VALUE_OPT_ECHO, + { /* entry idx, value */ 12, VALUE_OPT_ECHO, + /* equiv idx, value */ 12, VALUE_OPT_ECHO, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ ECHO_FLAGS, 0, @@ -897,8 +924,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ ECHO_DESC, ECHO_NAME, ECHO_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 12, VALUE_OPT_UDP, - /* equiv idx, value */ 12, VALUE_OPT_UDP, + { /* entry idx, value */ 13, VALUE_OPT_UDP, + /* equiv idx, value */ 13, VALUE_OPT_UDP, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ UDP_FLAGS, 0, @@ -909,8 +936,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 */ 14, VALUE_OPT_MTU, + /* equiv idx, value */ 14, VALUE_OPT_MTU, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ MTU_FLAGS, 0, @@ -921,8 +948,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, + { /* entry idx, value */ 15, VALUE_OPT_SRTP_PROFILES, + /* equiv idx, value */ 15, VALUE_OPT_SRTP_PROFILES, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ SRTP_PROFILES_FLAGS, 0, @@ -933,8 +960,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ SRTP_PROFILES_DESC, SRTP_PROFILES_NAME, SRTP_PROFILES_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 15, VALUE_OPT_DISABLE_CLIENT_CERT, - /* equiv idx, value */ 15, VALUE_OPT_DISABLE_CLIENT_CERT, + { /* entry idx, value */ 16, VALUE_OPT_DISABLE_CLIENT_CERT, + /* equiv idx, value */ 16, VALUE_OPT_DISABLE_CLIENT_CERT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ DISABLE_CLIENT_CERT_FLAGS, 0, @@ -945,8 +972,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ DISABLE_CLIENT_CERT_DESC, DISABLE_CLIENT_CERT_NAME, DISABLE_CLIENT_CERT_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 16, VALUE_OPT_REQUIRE_CLIENT_CERT, - /* equiv idx, value */ 16, VALUE_OPT_REQUIRE_CLIENT_CERT, + { /* entry idx, value */ 17, VALUE_OPT_REQUIRE_CLIENT_CERT, + /* equiv idx, value */ 17, VALUE_OPT_REQUIRE_CLIENT_CERT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ REQUIRE_CLIENT_CERT_FLAGS, 0, @@ -957,8 +984,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ REQUIRE_CLIENT_CERT_DESC, REQUIRE_CLIENT_CERT_NAME, REQUIRE_CLIENT_CERT_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 17, VALUE_OPT_VERIFY_CLIENT_CERT, - /* equiv idx, value */ 17, VALUE_OPT_VERIFY_CLIENT_CERT, + { /* entry idx, value */ 18, VALUE_OPT_VERIFY_CLIENT_CERT, + /* equiv idx, value */ 18, VALUE_OPT_VERIFY_CLIENT_CERT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ VERIFY_CLIENT_CERT_FLAGS, 0, @@ -969,8 +996,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ VERIFY_CLIENT_CERT_DESC, VERIFY_CLIENT_CERT_NAME, VERIFY_CLIENT_CERT_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 18, VALUE_OPT_HEARTBEAT, - /* equiv idx, value */ 18, VALUE_OPT_HEARTBEAT, + { /* entry idx, value */ 19, VALUE_OPT_HEARTBEAT, + /* equiv idx, value */ 19, VALUE_OPT_HEARTBEAT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ HEARTBEAT_FLAGS, 0, @@ -981,8 +1008,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ HEARTBEAT_DESC, HEARTBEAT_NAME, HEARTBEAT_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 19, VALUE_OPT_X509FMTDER, - /* equiv idx, value */ 19, VALUE_OPT_X509FMTDER, + { /* entry idx, value */ 20, VALUE_OPT_X509FMTDER, + /* equiv idx, value */ 20, VALUE_OPT_X509FMTDER, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509FMTDER_FLAGS, 0, @@ -993,8 +1020,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509FMTDER_DESC, X509FMTDER_NAME, X509FMTDER_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 20, VALUE_OPT_PRIORITY, - /* equiv idx, value */ 20, VALUE_OPT_PRIORITY, + { /* entry idx, value */ 21, VALUE_OPT_PRIORITY, + /* equiv idx, value */ 21, VALUE_OPT_PRIORITY, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PRIORITY_FLAGS, 0, @@ -1005,8 +1032,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PRIORITY_DESC, PRIORITY_NAME, PRIORITY_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 21, VALUE_OPT_DHPARAMS, - /* equiv idx, value */ 21, VALUE_OPT_DHPARAMS, + { /* entry idx, value */ 22, VALUE_OPT_DHPARAMS, + /* equiv idx, value */ 22, VALUE_OPT_DHPARAMS, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ DHPARAMS_FLAGS, 0, @@ -1017,8 +1044,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ DHPARAMS_DESC, DHPARAMS_NAME, DHPARAMS_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 22, VALUE_OPT_X509CAFILE, - /* equiv idx, value */ 22, VALUE_OPT_X509CAFILE, + { /* entry idx, value */ 23, VALUE_OPT_X509CAFILE, + /* equiv idx, value */ 23, VALUE_OPT_X509CAFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509CAFILE_FLAGS, 0, @@ -1029,8 +1056,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509CAFILE_DESC, X509CAFILE_NAME, X509CAFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 23, VALUE_OPT_X509CRLFILE, - /* equiv idx, value */ 23, VALUE_OPT_X509CRLFILE, + { /* entry idx, value */ 24, VALUE_OPT_X509CRLFILE, + /* equiv idx, value */ 24, VALUE_OPT_X509CRLFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509CRLFILE_FLAGS, 0, @@ -1041,8 +1068,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509CRLFILE_DESC, X509CRLFILE_NAME, X509CRLFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 24, VALUE_OPT_PGPKEYFILE, - /* equiv idx, value */ 24, VALUE_OPT_PGPKEYFILE, + { /* entry idx, value */ 25, VALUE_OPT_PGPKEYFILE, + /* equiv idx, value */ 25, VALUE_OPT_PGPKEYFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PGPKEYFILE_FLAGS, 0, @@ -1053,8 +1080,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PGPKEYFILE_DESC, PGPKEYFILE_NAME, PGPKEYFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 25, VALUE_OPT_X509KEYFILE, - /* equiv idx, value */ 25, VALUE_OPT_X509KEYFILE, + { /* entry idx, value */ 26, VALUE_OPT_X509KEYFILE, + /* equiv idx, value */ 26, VALUE_OPT_X509KEYFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, NOLIMIT, 0, /* opt state flags */ X509KEYFILE_FLAGS, 0, @@ -1065,8 +1092,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509KEYFILE_DESC, X509KEYFILE_NAME, X509KEYFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 26, VALUE_OPT_X509CERTFILE, - /* equiv idx, value */ 26, VALUE_OPT_X509CERTFILE, + { /* entry idx, value */ 27, VALUE_OPT_X509CERTFILE, + /* equiv idx, value */ 27, VALUE_OPT_X509CERTFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, NOLIMIT, 0, /* opt state flags */ X509CERTFILE_FLAGS, 0, @@ -1077,8 +1104,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509CERTFILE_DESC, X509CERTFILE_NAME, X509CERTFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 27, VALUE_OPT_X509DSAKEYFILE, - /* equiv idx, value */ 27, VALUE_OPT_X509DSAKEYFILE, + { /* entry idx, value */ 28, VALUE_OPT_X509DSAKEYFILE, + /* equiv idx, value */ 28, VALUE_OPT_X509DSAKEYFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509DSAKEYFILE_FLAGS, 0, @@ -1089,8 +1116,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509DSAKEYFILE_DESC, X509DSAKEYFILE_NAME, X509DSAKEYFILE_name, /* disablement strs */ 0, 0 }, - { /* entry idx, value */ 28, VALUE_OPT_X509DSACERTFILE, - /* equiv idx, value */ 28, VALUE_OPT_X509DSACERTFILE, + { /* entry idx, value */ 29, VALUE_OPT_X509DSACERTFILE, + /* equiv idx, value */ 29, VALUE_OPT_X509DSACERTFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509DSACERTFILE_FLAGS, 0, @@ -1101,8 +1128,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509DSACERTFILE_DESC, X509DSACERTFILE_NAME, X509DSACERTFILE_name, /* disablement strs */ 0, 0 }, - { /* entry idx, value */ 29, VALUE_OPT_X509ECCKEYFILE, - /* equiv idx, value */ 29, VALUE_OPT_X509ECCKEYFILE, + { /* entry idx, value */ 30, VALUE_OPT_X509ECCKEYFILE, + /* equiv idx, value */ 30, VALUE_OPT_X509ECCKEYFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509ECCKEYFILE_FLAGS, 0, @@ -1113,8 +1140,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509ECCKEYFILE_DESC, X509ECCKEYFILE_NAME, X509ECCKEYFILE_name, /* disablement strs */ 0, 0 }, - { /* entry idx, value */ 30, VALUE_OPT_X509ECCCERTFILE, - /* equiv idx, value */ 30, VALUE_OPT_X509ECCCERTFILE, + { /* entry idx, value */ 31, VALUE_OPT_X509ECCCERTFILE, + /* equiv idx, value */ 31, VALUE_OPT_X509ECCCERTFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509ECCCERTFILE_FLAGS, 0, @@ -1125,8 +1152,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509ECCCERTFILE_DESC, X509ECCCERTFILE_NAME, X509ECCCERTFILE_name, /* disablement strs */ 0, 0 }, - { /* entry idx, value */ 31, VALUE_OPT_SRPPASSWD, - /* equiv idx, value */ 31, VALUE_OPT_SRPPASSWD, + { /* entry idx, value */ 32, VALUE_OPT_SRPPASSWD, + /* equiv idx, value */ 32, VALUE_OPT_SRPPASSWD, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ SRPPASSWD_FLAGS, 0, @@ -1137,8 +1164,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ SRPPASSWD_DESC, SRPPASSWD_NAME, SRPPASSWD_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 32, VALUE_OPT_SRPPASSWDCONF, - /* equiv idx, value */ 32, VALUE_OPT_SRPPASSWDCONF, + { /* entry idx, value */ 33, VALUE_OPT_SRPPASSWDCONF, + /* equiv idx, value */ 33, VALUE_OPT_SRPPASSWDCONF, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ SRPPASSWDCONF_FLAGS, 0, @@ -1149,8 +1176,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ SRPPASSWDCONF_DESC, SRPPASSWDCONF_NAME, SRPPASSWDCONF_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 33, VALUE_OPT_PSKPASSWD, - /* equiv idx, value */ 33, VALUE_OPT_PSKPASSWD, + { /* entry idx, value */ 34, VALUE_OPT_PSKPASSWD, + /* equiv idx, value */ 34, VALUE_OPT_PSKPASSWD, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PSKPASSWD_FLAGS, 0, @@ -1161,8 +1188,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PSKPASSWD_DESC, PSKPASSWD_NAME, PSKPASSWD_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 34, VALUE_OPT_PSKHINT, - /* equiv idx, value */ 34, VALUE_OPT_PSKHINT, + { /* entry idx, value */ 35, VALUE_OPT_PSKHINT, + /* equiv idx, value */ 35, VALUE_OPT_PSKHINT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PSKHINT_FLAGS, 0, @@ -1173,8 +1200,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PSKHINT_DESC, PSKHINT_NAME, PSKHINT_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 35, VALUE_OPT_OCSP_RESPONSE, - /* equiv idx, value */ 35, VALUE_OPT_OCSP_RESPONSE, + { /* entry idx, value */ 36, VALUE_OPT_OCSP_RESPONSE, + /* equiv idx, value */ 36, VALUE_OPT_OCSP_RESPONSE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, NOLIMIT, 0, /* opt state flags */ OCSP_RESPONSE_FLAGS, 0, @@ -1185,8 +1212,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ OCSP_RESPONSE_DESC, OCSP_RESPONSE_NAME, OCSP_RESPONSE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 36, VALUE_OPT_IGNORE_OCSP_RESPONSE_ERRORS, - /* equiv idx, value */ 36, VALUE_OPT_IGNORE_OCSP_RESPONSE_ERRORS, + { /* entry idx, value */ 37, VALUE_OPT_IGNORE_OCSP_RESPONSE_ERRORS, + /* equiv idx, value */ 37, VALUE_OPT_IGNORE_OCSP_RESPONSE_ERRORS, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ IGNORE_OCSP_RESPONSE_ERRORS_FLAGS, 0, @@ -1197,8 +1224,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ IGNORE_OCSP_RESPONSE_ERRORS_DESC, IGNORE_OCSP_RESPONSE_ERRORS_NAME, IGNORE_OCSP_RESPONSE_ERRORS_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 37, VALUE_OPT_PORT, - /* equiv idx, value */ 37, VALUE_OPT_PORT, + { /* entry idx, value */ 38, VALUE_OPT_PORT, + /* equiv idx, value */ 38, VALUE_OPT_PORT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PORT_FLAGS, 0, @@ -1209,8 +1236,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PORT_DESC, PORT_NAME, PORT_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 38, VALUE_OPT_LIST, - /* equiv idx, value */ 38, VALUE_OPT_LIST, + { /* entry idx, value */ 39, VALUE_OPT_LIST, + /* equiv idx, value */ 39, VALUE_OPT_LIST, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ LIST_FLAGS, 0, @@ -1221,8 +1248,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ LIST_DESC, LIST_NAME, LIST_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 39, VALUE_OPT_PROVIDER, - /* equiv idx, value */ 39, VALUE_OPT_PROVIDER, + { /* entry idx, value */ 40, VALUE_OPT_PROVIDER, + /* equiv idx, value */ 40, VALUE_OPT_PROVIDER, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PROVIDER_FLAGS, 0, @@ -1275,21 +1302,21 @@ static tOptDesc optDesc[OPTION_CT] = { /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /** Reference to the upper cased version of gnutls-serv. */ -#define zPROGNAME (gnutls_serv_opt_strs+3163) +#define zPROGNAME (gnutls_serv_opt_strs+3201) /** Reference to the title line for gnutls-serv usage. */ -#define zUsageTitle (gnutls_serv_opt_strs+3175) +#define zUsageTitle (gnutls_serv_opt_strs+3213) /** There is no gnutls-serv configuration file. */ #define zRcName NULL /** There are no directories to search for gnutls-serv config files. */ #define apzHomeList NULL /** The gnutls-serv program bug email address. */ -#define zBugsAddr (gnutls_serv_opt_strs+3261) +#define zBugsAddr (gnutls_serv_opt_strs+3299) /** Clarification/explanation of what gnutls-serv does. */ -#define zExplain (gnutls_serv_opt_strs+3277) +#define zExplain (gnutls_serv_opt_strs+3315) /** Extra detail explaining what gnutls-serv does. */ -#define zDetail (gnutls_serv_opt_strs+3279) +#define zDetail (gnutls_serv_opt_strs+3317) /** The full version string for gnutls-serv. */ -#define zFullVersion (gnutls_serv_opt_strs+3337) +#define zFullVersion (gnutls_serv_opt_strs+3375) /* extracted from optcode.tlib near line 364 */ #if defined(ENABLE_NLS) @@ -1301,7 +1328,7 @@ static tOptDesc optDesc[OPTION_CT] = { #endif /* ENABLE_NLS */ #define gnutls_serv_full_usage (NULL) -#define gnutls_serv_short_usage (gnutls_serv_opt_strs+3355) +#define gnutls_serv_short_usage (gnutls_serv_opt_strs+3393) #endif /* not defined __doxygen__ */ @@ -1692,7 +1719,7 @@ tOptions gnutls_servOptions = { NO_EQUIVALENT, /* '-#' option index */ NO_EQUIVALENT /* index of default opt */ }, - 43 /* full option count */, 40 /* user option count */, + 44 /* full option count */, 41 /* user option count */, gnutls_serv_full_usage, gnutls_serv_short_usage, NULL, NULL, PKGDATADIR, gnutls_serv_packager_info @@ -1864,6 +1891,9 @@ with this program. If not, see <http://www.gnu.org/licenses/>.\n")); puts(_("Don't accept session tickets")); /* referenced via gnutls_servOptions.pOptDesc->pzText */ + puts(_("Accept early data")); + + /* referenced via gnutls_servOptions.pOptDesc->pzText */ puts(_("Don't require cookie on DTLS sessions")); /* referenced via gnutls_servOptions.pOptDesc->pzText */ @@ -2011,7 +2041,7 @@ gnutls-serv --help for usage instructions.\n")); puts(_("\tThis is less than the minimum library version: ")); #line 121 "../version.c" puts(_("Automated Options version %s\n" - "\tCopyright (C) 1999-2014 by Bruce Korb - all rights reserved\n")); + "\tCopyright (C) 1999-2017 by Bruce Korb - all rights reserved\n")); #line 87 "../makeshell.c" puts(_("(AutoOpts bug): %s.\n")); #line 90 "../reset.c" diff --git a/src/serv-args.def b/src/serv-args.def index e7bb574d2e..6c17998da0 100644 --- a/src/serv-args.def +++ b/src/serv-args.def @@ -43,6 +43,12 @@ flag = { }; flag = { + name = earlydata; + descrip = "Accept early data"; + doc = ""; +}; + +flag = { name = nocookie; descrip = "Don't require cookie on DTLS sessions"; doc = ""; diff --git a/src/serv-args.h.bak b/src/serv-args.h.bak index a2244c351c..2a8d7d0c89 100644 --- a/src/serv-args.h.bak +++ b/src/serv-args.h.bak @@ -72,46 +72,47 @@ typedef enum { INDEX_OPT_ALPN = 3, INDEX_OPT_ALPN_FATAL = 4, INDEX_OPT_NOTICKET = 5, - INDEX_OPT_NOCOOKIE = 6, - INDEX_OPT_GENERATE = 7, - INDEX_OPT_QUIET = 8, - INDEX_OPT_NODB = 9, - INDEX_OPT_HTTP = 10, - INDEX_OPT_ECHO = 11, - INDEX_OPT_UDP = 12, - INDEX_OPT_MTU = 13, - INDEX_OPT_SRTP_PROFILES = 14, - INDEX_OPT_DISABLE_CLIENT_CERT = 15, - INDEX_OPT_REQUIRE_CLIENT_CERT = 16, - INDEX_OPT_VERIFY_CLIENT_CERT = 17, - INDEX_OPT_HEARTBEAT = 18, - INDEX_OPT_X509FMTDER = 19, - INDEX_OPT_PRIORITY = 20, - INDEX_OPT_DHPARAMS = 21, - INDEX_OPT_X509CAFILE = 22, - INDEX_OPT_X509CRLFILE = 23, - INDEX_OPT_PGPKEYFILE = 24, - INDEX_OPT_X509KEYFILE = 25, - INDEX_OPT_X509CERTFILE = 26, - INDEX_OPT_X509DSAKEYFILE = 27, - INDEX_OPT_X509DSACERTFILE = 28, - INDEX_OPT_X509ECCKEYFILE = 29, - INDEX_OPT_X509ECCCERTFILE = 30, - INDEX_OPT_SRPPASSWD = 31, - INDEX_OPT_SRPPASSWDCONF = 32, - INDEX_OPT_PSKPASSWD = 33, - INDEX_OPT_PSKHINT = 34, - INDEX_OPT_OCSP_RESPONSE = 35, - INDEX_OPT_IGNORE_OCSP_RESPONSE_ERRORS = 36, - INDEX_OPT_PORT = 37, - INDEX_OPT_LIST = 38, - INDEX_OPT_PROVIDER = 39, - INDEX_OPT_VERSION = 40, - INDEX_OPT_HELP = 41, - INDEX_OPT_MORE_HELP = 42 + INDEX_OPT_EARLYDATA = 6, + INDEX_OPT_NOCOOKIE = 7, + INDEX_OPT_GENERATE = 8, + INDEX_OPT_QUIET = 9, + INDEX_OPT_NODB = 10, + INDEX_OPT_HTTP = 11, + INDEX_OPT_ECHO = 12, + INDEX_OPT_UDP = 13, + INDEX_OPT_MTU = 14, + INDEX_OPT_SRTP_PROFILES = 15, + INDEX_OPT_DISABLE_CLIENT_CERT = 16, + INDEX_OPT_REQUIRE_CLIENT_CERT = 17, + INDEX_OPT_VERIFY_CLIENT_CERT = 18, + INDEX_OPT_HEARTBEAT = 19, + INDEX_OPT_X509FMTDER = 20, + INDEX_OPT_PRIORITY = 21, + INDEX_OPT_DHPARAMS = 22, + INDEX_OPT_X509CAFILE = 23, + INDEX_OPT_X509CRLFILE = 24, + INDEX_OPT_PGPKEYFILE = 25, + INDEX_OPT_X509KEYFILE = 26, + INDEX_OPT_X509CERTFILE = 27, + INDEX_OPT_X509DSAKEYFILE = 28, + INDEX_OPT_X509DSACERTFILE = 29, + INDEX_OPT_X509ECCKEYFILE = 30, + INDEX_OPT_X509ECCCERTFILE = 31, + INDEX_OPT_SRPPASSWD = 32, + INDEX_OPT_SRPPASSWDCONF = 33, + INDEX_OPT_PSKPASSWD = 34, + INDEX_OPT_PSKHINT = 35, + INDEX_OPT_OCSP_RESPONSE = 36, + INDEX_OPT_IGNORE_OCSP_RESPONSE_ERRORS = 37, + INDEX_OPT_PORT = 38, + INDEX_OPT_LIST = 39, + INDEX_OPT_PROVIDER = 40, + INDEX_OPT_VERSION = 41, + INDEX_OPT_HELP = 42, + INDEX_OPT_MORE_HELP = 43 } teOptIndex; /** count of all options for gnutls-serv */ -#define OPTION_CT 43 +#define OPTION_CT 44 /** gnutls-serv version */ #define GNUTLS_SERV_VERSION "3.6.4" /** Full gnutls-serv version text */ @@ -174,44 +175,45 @@ typedef enum { #define VALUE_OPT_ALPN 0x1003 #define VALUE_OPT_ALPN_FATAL 0x1004 #define VALUE_OPT_NOTICKET 0x1005 -#define VALUE_OPT_NOCOOKIE 0x1006 +#define VALUE_OPT_EARLYDATA 0x1006 +#define VALUE_OPT_NOCOOKIE 0x1007 #define VALUE_OPT_GENERATE 'g' #define VALUE_OPT_QUIET 'q' -#define VALUE_OPT_NODB 0x1007 -#define VALUE_OPT_HTTP 0x1008 -#define VALUE_OPT_ECHO 0x1009 +#define VALUE_OPT_NODB 0x1008 +#define VALUE_OPT_HTTP 0x1009 +#define VALUE_OPT_ECHO 0x100A #define VALUE_OPT_UDP 'u' -#define VALUE_OPT_MTU 0x100A +#define VALUE_OPT_MTU 0x100B #define OPT_VALUE_MTU (DESC(MTU).optArg.argInt) -#define VALUE_OPT_SRTP_PROFILES 0x100B +#define VALUE_OPT_SRTP_PROFILES 0x100C #define VALUE_OPT_DISABLE_CLIENT_CERT 'a' #define VALUE_OPT_REQUIRE_CLIENT_CERT 'r' -#define VALUE_OPT_VERIFY_CLIENT_CERT 0x100C +#define VALUE_OPT_VERIFY_CLIENT_CERT 0x100D #define VALUE_OPT_HEARTBEAT 'b' -#define VALUE_OPT_X509FMTDER 0x100D -#define VALUE_OPT_PRIORITY 0x100E -#define VALUE_OPT_DHPARAMS 0x100F -#define VALUE_OPT_X509CAFILE 0x1010 -#define VALUE_OPT_X509CRLFILE 0x1011 -#define VALUE_OPT_PGPKEYFILE 0x1012 -#define VALUE_OPT_X509KEYFILE 0x1013 -#define VALUE_OPT_X509CERTFILE 0x1014 -#define VALUE_OPT_X509DSAKEYFILE 0x1015 -#define VALUE_OPT_X509DSACERTFILE 0x1016 -#define VALUE_OPT_X509ECCKEYFILE 0x1017 -#define VALUE_OPT_X509ECCCERTFILE 0x1018 -#define VALUE_OPT_SRPPASSWD 0x1019 -#define VALUE_OPT_SRPPASSWDCONF 0x101A -#define VALUE_OPT_PSKPASSWD 0x101B -#define VALUE_OPT_PSKHINT 0x101C -#define VALUE_OPT_OCSP_RESPONSE 0x101D -#define VALUE_OPT_IGNORE_OCSP_RESPONSE_ERRORS 0x101E +#define VALUE_OPT_X509FMTDER 0x100E +#define VALUE_OPT_PRIORITY 0x100F +#define VALUE_OPT_DHPARAMS 0x1010 +#define VALUE_OPT_X509CAFILE 0x1011 +#define VALUE_OPT_X509CRLFILE 0x1012 +#define VALUE_OPT_PGPKEYFILE 0x1013 +#define VALUE_OPT_X509KEYFILE 0x1014 +#define VALUE_OPT_X509CERTFILE 0x1015 +#define VALUE_OPT_X509DSAKEYFILE 0x1016 +#define VALUE_OPT_X509DSACERTFILE 0x1017 +#define VALUE_OPT_X509ECCKEYFILE 0x1018 +#define VALUE_OPT_X509ECCCERTFILE 0x1019 +#define VALUE_OPT_SRPPASSWD 0x101A +#define VALUE_OPT_SRPPASSWDCONF 0x101B +#define VALUE_OPT_PSKPASSWD 0x101C +#define VALUE_OPT_PSKHINT 0x101D +#define VALUE_OPT_OCSP_RESPONSE 0x101E +#define VALUE_OPT_IGNORE_OCSP_RESPONSE_ERRORS 0x101F #define VALUE_OPT_PORT 'p' #define OPT_VALUE_PORT (DESC(PORT).optArg.argInt) #define VALUE_OPT_LIST 'l' -#define VALUE_OPT_PROVIDER 0x101F +#define VALUE_OPT_PROVIDER 0x1020 /** option flag (value) for help-value option */ #define VALUE_OPT_HELP 'h' /** option flag (value) for more-help-value option */ diff --git a/src/serv.c b/src/serv.c index af58edd9cb..fbe51b604a 100644 --- a/src/serv.c +++ b/src/serv.c @@ -61,6 +61,7 @@ static int debug = 0; unsigned int verbose = 1; static int nodb; static int noticket; +static int earlydata; int require_cert; int disable_client_cert; @@ -140,6 +141,7 @@ LIST_TYPE_DECLARE(listener_item, char *http_request; char *http_response; int handshake_ok; int close_ok; time_t start; + int earlydata_eof; ); static const char *safe_strerror(int value) @@ -375,11 +377,15 @@ gnutls_session_t initialize_session(int dtls) const char *err; gnutls_datum_t alpn[MAX_ALPN_PROTOCOLS]; unsigned alpn_size; + unsigned flags = GNUTLS_SERVER | GNUTLS_POST_HANDSHAKE_AUTH; if (dtls) - gnutls_init(&session, GNUTLS_SERVER | GNUTLS_DATAGRAM | GNUTLS_POST_HANDSHAKE_AUTH); - else - gnutls_init(&session, GNUTLS_SERVER | GNUTLS_POST_HANDSHAKE_AUTH); + flags |= GNUTLS_DATAGRAM; + + if (earlydata) + flags |= GNUTLS_ENABLE_EARLY_DATA; + + gnutls_init(&session, flags); /* allow the use of private ciphersuites. */ @@ -1463,11 +1469,27 @@ static void tcp_server(const char *name, int port) } if (j->handshake_ok == 1) { - r = gnutls_record_recv(j-> - tls_session, - buf, - MIN(sizeof(buf), - SMALL_READ_TEST)); + int earlydata_read = 0; + if (earlydata && !j->earlydata_eof) { + r = gnutls_record_recv_early_data(j-> + tls_session, + buf, + MIN(sizeof(buf), + SMALL_READ_TEST)); + if (r == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) { + j->earlydata_eof = 1; + } + if (r == 0) { + earlydata_read = 1; + } + } + if (!earlydata_read) { + r = gnutls_record_recv(j-> + tls_session, + buf, + MIN(sizeof(buf), + SMALL_READ_TEST)); + } if (r == GNUTLS_E_INTERRUPTED || r == GNUTLS_E_AGAIN) { /* do nothing */ } else if (r <= 0) { @@ -1659,6 +1681,7 @@ static void cmd_parser(int argc, char **argv) nodb = HAVE_OPT(NODB); noticket = HAVE_OPT(NOTICKET); + earlydata = HAVE_OPT(EARLYDATA); if (HAVE_OPT(ECHO)) http = 0; |