From: Nikos Mavrogiannopoulos Date: Thu, 30 Aug 2012 20:19:52 +0000 (+0200) Subject: Some small optimizations in heartbeat handling and regeneration of src/ args files. X-Git-Tag: gnutls_3_1_2~97 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=aa5afd19f79e4a45935e3db82ae5ffb4d4465f6c;p=thirdparty%2Fgnutls.git Some small optimizations in heartbeat handling and regeneration of src/ args files. --- diff --git a/lib/ext/heartbeat.c b/lib/ext/heartbeat.c index 558cf1a9c7..677a91dc77 100644 --- a/lib/ext/heartbeat.c +++ b/lib/ext/heartbeat.c @@ -29,162 +29,80 @@ #include /** - * gnutls_heartbeat_policy_set: - * @session: is a #gnutls_session_t structure. - * @policy: the policy to set. - * - * This function will allow you to set the policy to be followed during the - * session regarding Heartbeat messages reception. - * - * Returns: On success, %GNUTLS_E_SUCCESS (0) is returned, - * otherwise an error code is returned. - **/ -int -_gnutls_heartbeat_policy_set (gnutls_session_t session, unsigned policy) + * gnutls_heartbeat_enable: + * @session: is a #gnutls_session_t structure. + * @type: one of %GNUTLS_HB_* + * + * This function will allow heartbeat messages to be + * received. + **/ +void +gnutls_heartbeat_enable (gnutls_session_t session, unsigned int type) { extension_priv_data_t epriv; - heartbeat_policy_t pol; - _gnutls_debug_log ("HB: setting policy %s\n", _gnutls_heartbeat (policy)); - if (_gnutls_ext_get_session_data - (session, GNUTLS_EXTENSION_HEARTBEAT, &epriv) < 0) - { - _gnutls_debug_log ("HB: failed to get session data\n"); - } - else - { - pol.num = epriv.num; - } - switch (policy) - { - case PEER_ALLOWED_TO_SEND: - pol.set.local = 1; - break; - case PEER_NOT_ALLOWED_TO_SEND: - pol.set.local = 0; - break; - default: - return GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER; - } - - epriv.num = pol.num; - _gnutls_ext_set_session_data (session, GNUTLS_EXTENSION_HEARTBEAT, epriv); - session->internals.heartbeat_policy_set = 1; - _gnutls_debug_log ("HB: parameter set to %s\n", _gnutls_heartbeat (policy)); - _gnutls_debug_log ("HB: enabled at local:%d, remote:%d\n", - gnutls_heartbeat_enabled_local (session), - gnutls_heartbeat_enabled_remote (session)); - return GNUTLS_E_SUCCESS; -} - -inline int -gnutls_heartbeat_allow (gnutls_session_t session) -{ - return _gnutls_heartbeat_policy_set (session, PEER_ALLOWED_TO_SEND); -} - -inline int -gnutls_heartbeat_deny (gnutls_session_t session) -{ - return _gnutls_heartbeat_policy_set (session, PEER_NOT_ALLOWED_TO_SEND); + epriv.num = type; + _gnutls_ext_set_session_data (session, GNUTLS_EXTENSION_HEARTBEAT, + epriv); } -/** - * gnutls_heartbeat_policy_get: - * @session: is a #gnutls_session_t structure. - * - * This function will allow you to get the policy regarding Heartbeat messages. - * - * Returns: policy or error codes: - * 0 - both local and remote policies are set to false - * 1 - local == false, remote == true - * 2 - remote == false, local == true - * 3 - both local and remote policies are set to true - * 4 - policy was not set for this session - **/ -inline unsigned -_gnutls_heartbeat_policy_get (gnutls_session_t session) -{ - extension_priv_data_t epriv; - heartbeat_policy_t pol; - if (!session->internals.heartbeat_policy_set) - return 4; - if (_gnutls_ext_get_session_data - (session, GNUTLS_EXTENSION_HEARTBEAT, &epriv) < 0) - return GNUTLS_E_INTERNAL_ERROR; - pol.num = epriv.num; - - if (pol.set.local) - { - if (pol.set.remote) - return 3; - return 2; - } - else - { - if (pol.set.remote) - return 1; - return 0; - } - return GNUTLS_E_INTERNAL_ERROR; -} - -/** +/*- * Convenience helper: * * Returns: * textual policy description or NULL. - **/ -inline const char * -_gnutls_heartbeat (int policy) + -*/ +static inline const char * +_gnutls_heartbeat (unsigned policy) { - switch (policy) - { - case PEER_ALLOWED_TO_SEND: - return "PEER_ALLOWED_TO_SEND"; - case PEER_NOT_ALLOWED_TO_SEND: - return "PEER_NOT_ALLOWED_TO_SEND"; - default: - return NULL; - } + if (policy & GNUTLS_HB_PEER_ALLOWED_TO_SEND) + return "PEER ALLOWED TO SEND"; + else if (policy & GNUTLS_HB_PEER_NOT_ALLOWED_TO_SEND) + return "PEER NOT ALLOWED TO SEND"; + return "Unknown policy"; } /** - * Convenience helpers: - * - * Returns: - * local policy if @local is true, remote policy otherwise. - **/ -inline int -_gnutls_heartbeat_enabled (gnutls_session_t session, int local) + * gnutls_heartbeat_allowed: + * @session: is a #gnutls_session_t structure. + * @type: non zero is for sending, and zero for receiving + * + * This function will check whether heartbeats are allowed + * in this session. + * + * Returns: Non zero if heartbeats are allowed. + * + **/ +int +gnutls_heartbeat_allowed (gnutls_session_t session, unsigned int type) { - unsigned policy = _gnutls_heartbeat_policy_get (session); + extension_priv_data_t epriv; - if (policy == 3) - return 1; - if (local) - { - if (policy == 2) - return 1; - } - else + if (_gnutls_ext_get_session_data + (session, GNUTLS_EXTENSION_HEARTBEAT, &epriv) < 0) + return 0; /* Not enabled */ + + if (type != 0) { - if (policy == 1) + if (epriv.num & LOCAL_ALLOWED_TO_SEND) return 1; } + else if (epriv.num & GNUTLS_HB_PEER_ALLOWED_TO_SEND) + return 1; + return 0; } -int -gnutls_heartbeat_enabled_local (gnutls_session_t session) +static int +heartbeat_allow_recv (gnutls_session_t session) { - return _gnutls_heartbeat_enabled (session, 1); + return gnutls_heartbeat_allowed(session, 0); } -int -gnutls_heartbeat_enabled_remote (gnutls_session_t session) +static int +heartbeat_allow_send (gnutls_session_t session) { - return _gnutls_heartbeat_enabled (session, 0); + return gnutls_heartbeat_allowed(session, 1); } /** @@ -214,30 +132,36 @@ _gnutls_heartbeat_send_data (gnutls_session_t session, const void *data, char pr[128]; gnutls_buffer_st response; uint8_t payload[16]; - payload[0] = request ? HEARTBEAT_REQUEST : HEARTBEAT_RESPONSE; + uint8_t type = request ? HEARTBEAT_REQUEST : HEARTBEAT_RESPONSE; _gnutls_buffer_init (&response); - BUFFER_APPEND (&response, payload, 1) - BUFFER_APPEND_PFX2 (&response, data, data_size) - gnutls_rnd (GNUTLS_RND_RANDOM, payload, 16); - BUFFER_APPEND (&response, payload, 16) - ret = _gnutls_send_int (session, GNUTLS_HEARTBEAT, -1, - EPOCH_WRITE_CURRENT, response.data, - response.length, MBUFFER_FLUSH); + ret = gnutls_rnd (GNUTLS_RND_RANDOM, payload, 16); + if (ret < 0) + return gnutls_assert_val(ret); + + BUFFER_APPEND (&response, &type, 1); + BUFFER_APPEND_PFX2 (&response, data, data_size); + + BUFFER_APPEND (&response, payload, 16); + ret = _gnutls_send_int (session, GNUTLS_HEARTBEAT, -1, + EPOCH_WRITE_CURRENT, response.data, + response.length, MBUFFER_FLUSH); if (request) { if (ret >= 0) { _gnutls_record_log - ("REC[%p]: HB %zu bytes sent OK [%d in packet], saved for response verification:%s\n", - session, data_size, ret, _gnutls_bin2hex ((uint8_t *) data, - data_size, pr, - sizeof (pr), NULL)); + ("REC[%p]: HB %zu bytes sent OK [%d in packet], saved for response verification:%s\n", + session, data_size, ret, _gnutls_bin2hex ((uint8_t *) data, + data_size, pr, + sizeof (pr), + NULL)); session->internals.dtls.heartbeat_timeout = HEARTBEAT_TIMEOUT; gettime (&session->internals.dtls.heartbeat_sent); _gnutls_buffer_reset (&session->internals.heartbeat_payload); - BUFFER_APPEND (&session->internals.heartbeat_payload, data, - data_size)} + BUFFER_APPEND (&session->internals.heartbeat_payload, data, + data_size); + } } _gnutls_record_log ("REC[%p]: HB sent: %d\n", session, ret); @@ -269,13 +193,16 @@ ssize_t gnutls_heartbeat_ping (gnutls_session_t session, size_t data_size) { int ret = GNUTLS_E_HEARTBEAT_FLIGHT; + if (data_size > MAX_HEARTBEAT_LENGTH) return gnutls_assert_val (GNUTLS_E_UNEXPECTED_PACKET_LENGTH); - if (!gnutls_heartbeat_enabled_remote (session)) - return GNUTLS_E_UNIMPLEMENTED_FEATURE; + + if (!heartbeat_allow_send (session)) + return GNUTLS_E_INVALID_REQUEST; + _gnutls_record_log - ("REC[%p]: sending HB_REQUEST with length: %zu to peer %d\n", session, - data_size, gnutls_heartbeat_enabled_remote (session)); + ("REC[%p]: sending HB_REQUEST with length: %zu to peer\n", + session, data_size); if (gnutls_heartbeat_timeout (session, 1) == GNUTLS_E_ILLEGAL_PARAMETER) { @@ -286,8 +213,8 @@ gnutls_heartbeat_ping (gnutls_session_t session, size_t data_size) } else _gnutls_record_log - ("REC[%p]: HB_REQUEST with length %zu already in-flight: %d\n", session, - data_size, gnutls_heartbeat_timeout (session, 1)); + ("REC[%p]: HB_REQUEST with length %zu already in-flight: %d\n", + session, data_size, gnutls_heartbeat_timeout (session, 1)); return ret; } @@ -295,11 +222,16 @@ gnutls_heartbeat_ping (gnutls_session_t session, size_t data_size) /** * simple wrapper for ping with random length **/ -inline ssize_t +ssize_t gnutls_heartbeat_ping_rnd (gnutls_session_t session) { uint8_t rnd; - gnutls_rnd (GNUTLS_RND_NONCE, &rnd, 1); + int ret; + + ret = gnutls_rnd (GNUTLS_RND_NONCE, &rnd, 1); + if (ret < 0) + return gnutls_assert_val(ret); + return gnutls_heartbeat_ping (session, rnd + 1); } @@ -319,10 +251,13 @@ _gnutls_heartbeat_handle (gnutls_session_t session, mbuffer_st * bufel) char pr[128]; uint8_t *msg = _mbuffer_get_udata_ptr (bufel); size_t hb_len, len = _mbuffer_get_udata_size (bufel); - if (!gnutls_heartbeat_enabled_local (session)) + + if (!heartbeat_allow_recv (session)) return gnutls_assert_val (GNUTLS_E_UNEXPECTED_PACKET); + if (len < 4) return gnutls_assert_val (GNUTLS_E_UNEXPECTED_PACKET_LENGTH); + hb_len = _gnutls_read_uint16 (msg + 1); if (hb_len > len - 3) return gnutls_assert_val (GNUTLS_E_UNEXPECTED_PACKET); @@ -331,40 +266,46 @@ _gnutls_heartbeat_handle (gnutls_session_t session, mbuffer_st * bufel) { case HEARTBEAT_REQUEST: _gnutls_record_log - ("REC[%p]: received HEARTBEAT_REQUEST, responding...\n", session); + ("REC[%p]: received HEARTBEAT_REQUEST, responding...\n", + session); if (_gnutls_heartbeat_send_data (session, msg + 3, hb_len, 0) >= 0) - return GNUTLS_E_AGAIN; /* HB responded, no APP_DATA so needs to be called again*/ + return GNUTLS_E_AGAIN; /* HB responded, no APP_DATA so needs to be called again */ else - { /* immediate response failed, TBD: save received data somewhere and let upper layers handle it, loosing single ping is non-critical for HB*/ + { /* immediate response failed, TBD: save received data somewhere and let upper layers handle it, loosing single ping is non-critical for HB */ return GNUTLS_E_HEARTBEAT_PONG_FAILED; } break; case HEARTBEAT_RESPONSE: + if (session->internals.heartbeat_payload.length != hb_len) return gnutls_assert_val (GNUTLS_E_UNEXPECTED_PACKET_LENGTH); - if (0 != - memcmp (msg + 3, session->internals.heartbeat_payload.data, hb_len)) + + if (memcmp (msg + 3, session->internals.heartbeat_payload.data, + hb_len) != 0) { _gnutls_record_log ("REC[%p]: HB: %s - received\n", session, _gnutls_bin2hex (msg + 3, hb_len, pr, sizeof (pr), NULL)); _gnutls_record_log ("REC[%p]: HB: %s - expected\n", session, _gnutls_bin2hex (session->internals. - heartbeat_payload.data, hb_len, - pr, sizeof (pr), NULL)); + heartbeat_payload.data, + hb_len, pr, sizeof (pr), + NULL)); return gnutls_assert_val (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER); } _gnutls_record_log - ("REC[%p]: HB: %zu response bytes received OK (%d msec. left before timeout)\n", - session, hb_len, gnutls_heartbeat_timeout (session, 1)); + ("REC[%p]: HB: %zu response bytes received OK (%d msec. left before timeout)\n", + session, hb_len, gnutls_heartbeat_timeout (session, 1)); session->internals.dtls.heartbeat_timeout = HEARTBEAT_TIMEOUT; _gnutls_buffer_reset (&session->internals.heartbeat_payload); return GNUTLS_E_AGAIN; - break; default: + _gnutls_record_log + ("REC[%p]: HB: received unknown type %u\n", + session, msg[0]); return gnutls_assert_val (GNUTLS_E_UNEXPECTED_PACKET); } @@ -389,12 +330,12 @@ gnutls_heartbeat_timeout (gnutls_session_t session, int check_only) if (session->internals.heartbeat_payload.length) { _gnutls_debug_log - ("HB: %zu bytes are in-flight already: %u msec timeout.\n", - session->internals.heartbeat_payload.length, - (unsigned int) session->internals.dtls.heartbeat_timeout); + ("HB: %zu bytes are in-flight already: %u msec timeout.\n", + session->internals.heartbeat_payload.length, + (unsigned int) session->internals.dtls.heartbeat_timeout); gettime (&now); - ms = - _dtls_timespec_sub_ms (&now, &session->internals.dtls.heartbeat_sent); + ms = _dtls_timespec_sub_ms (&now, + &session->internals.dtls.heartbeat_sent); if (ms > session->internals.dtls.heartbeat_timeout) { if (check_only) @@ -403,8 +344,9 @@ gnutls_heartbeat_timeout (gnutls_session_t session, int check_only) if (session->internals.dtls.heartbeat_timeout * 2 > MAX_HEARTBEAT_TIMEOUT) - { /* update impossible */ - session->internals.dtls.heartbeat_timeout = HEARTBEAT_TIMEOUT; + { /* update impossible */ + session->internals.dtls.heartbeat_timeout = + HEARTBEAT_TIMEOUT; return GNUTLS_E_TIMEDOUT; } else @@ -422,132 +364,69 @@ gnutls_heartbeat_timeout (gnutls_session_t session, int check_only) return GNUTLS_E_ILLEGAL_PARAMETER; } -/** - * _gnutls_heartbeat_policy_force: - * @session: is a #gnutls_session_t structure. - * @epriv: pointer to work on - * @enforce: whether default policy should be enforced - * - * This function will try to obtain session data. - * It might try to enforce default policy. - * - * Returns: GNUTLS_E_SUCCESS or error code - **/ -inline static int -_gnutls_heartbeat_policy_force (gnutls_session_t session, - extension_priv_data_t * epriv, int enforce) -{ - if (_gnutls_ext_get_session_data - (session, GNUTLS_EXTENSION_HEARTBEAT, epriv) < 0) - { - if (enforce) - { - _gnutls_debug_log - ("HB: failed to get session data, policy forced to %s\n", - _gnutls_heartbeat (HEARTBEAT_DEFAULT_POLICY)); - _gnutls_heartbeat_policy_set (session, HEARTBEAT_DEFAULT_POLICY); - if (_gnutls_ext_get_session_data - (session, GNUTLS_EXTENSION_HEARTBEAT, epriv) < 0) - return gnutls_assert_val (GNUTLS_E_INTERNAL_ERROR); - else - { - return GNUTLS_E_SUCCESS; - } - } - else - { - return gnutls_assert_val (GNUTLS_E_INTERNAL_ERROR); - } - } - else - { - return GNUTLS_E_SUCCESS; - } -} - static int -_gnutls_heartbeat_recv_params (gnutls_session_t session, const uint8_t * data, - size_t _data_size) +_gnutls_heartbeat_recv_params (gnutls_session_t session, + const uint8_t * data, size_t _data_size) { heartbeat_policy_t pol; extension_priv_data_t epriv; - int enforce; + + if (_gnutls_ext_get_session_data + (session, GNUTLS_EXTENSION_HEARTBEAT, &epriv) < 0) + { + if (session->security_parameters.entity == GNUTLS_CLIENT) + return gnutls_assert_val (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER); + return 0; /* Not enabled */ + } if (_data_size == 0) return GNUTLS_E_UNEXPECTED_PACKET_LENGTH; - _gnutls_debug_log ("HB: received parameter %s (%zu bytes)\n", - _gnutls_heartbeat (data[0]), _data_size); - - if (session->security_parameters.entity == GNUTLS_SERVER) - enforce = 1; - else - enforce = 0; - if (GNUTLS_E_SUCCESS != - _gnutls_heartbeat_policy_force (session, &epriv, enforce)) - return gnutls_assert_val (GNUTLS_E_INTERNAL_ERROR); + _gnutls_debug_log ("HB: received parameter %u (%zu bytes)\n", + (unsigned)data[0], _data_size); - _gnutls_debug_log ("HB: enabled at local:%d, remote:%d\n", - gnutls_heartbeat_enabled_local (session), - gnutls_heartbeat_enabled_remote (session)); + pol = epriv.num; - pol.num = epriv.num; switch (data[0]) { - case PEER_ALLOWED_TO_SEND: - pol.set.remote = 1; + case 1: + pol |= LOCAL_ALLOWED_TO_SEND; break; - case PEER_NOT_ALLOWED_TO_SEND: - pol.set.remote = 0; + case 2: + pol |= LOCAL_NOT_ALLOWED_TO_SEND; break; default: - return gnutls_assert_val (GNUTLS_E_INVALID_REQUEST); + return gnutls_assert_val (GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER); } - epriv.num = pol.num; - _gnutls_ext_set_session_data (session, GNUTLS_EXTENSION_HEARTBEAT, epriv); - _gnutls_debug_log ("HB: set enabled local:%d, remote:%d\n", - gnutls_heartbeat_enabled_local (session), - gnutls_heartbeat_enabled_remote (session)); - return GNUTLS_E_SUCCESS; + epriv.num = pol; + _gnutls_ext_set_session_data (session, GNUTLS_EXTENSION_HEARTBEAT, + epriv); + + return 0; } static int _gnutls_heartbeat_send_params (gnutls_session_t session, gnutls_buffer_st * extdata) { - heartbeat_policy_t pol; extension_priv_data_t epriv; uint8_t p; - int enforce; - - if (session->internals.heartbeat_policy_set) - { - - if (session->security_parameters.entity == GNUTLS_CLIENT) - enforce = 1; - else - enforce = 0; - if (GNUTLS_E_SUCCESS != - _gnutls_heartbeat_policy_force (session, &epriv, enforce)) - return gnutls_assert_val (GNUTLS_E_INTERNAL_ERROR); + if (_gnutls_ext_get_session_data + (session, GNUTLS_EXTENSION_HEARTBEAT, &epriv) < 0) + return 0; /* nothing to send - not enabled */ - pol.num = epriv.num; - _gnutls_debug_log ("HB: local set %d\n", pol.set.local); - p = pol.set.local ? PEER_ALLOWED_TO_SEND : PEER_NOT_ALLOWED_TO_SEND; - } - else - { - p = HEARTBEAT_DEFAULT_POLICY; - _gnutls_heartbeat_policy_set (session, HEARTBEAT_DEFAULT_POLICY); - } + if (epriv.num & GNUTLS_HB_PEER_ALLOWED_TO_SEND) + p = 1; + else if (epriv.num & GNUTLS_HB_PEER_NOT_ALLOWED_TO_SEND) + p = 2; - _gnutls_debug_log ("HB: sending parameter %s\n", _gnutls_heartbeat (p)); + _gnutls_debug_log ("HB: sending parameter %u\n", (unsigned)p); if (_gnutls_buffer_append_data (extdata, &p, 1) < 0) return gnutls_assert_val (GNUTLS_E_MEMORY_ERROR); - return 1; /* number of bytes added for sending */ + return 1; /* number of bytes added for sending */ } static int diff --git a/lib/ext/heartbeat.h b/lib/ext/heartbeat.h index b1bb09e13e..7c4b2991d7 100644 --- a/lib/ext/heartbeat.h +++ b/lib/ext/heartbeat.h @@ -32,27 +32,15 @@ #define HEARTBEAT_TIMEOUT 1000 #define MAX_HEARTBEAT_TIMEOUT 60000 -#define PEER_ALLOWED_TO_SEND 1 -#define PEER_NOT_ALLOWED_TO_SEND 2 +#define LOCAL_ALLOWED_TO_SEND (1<<2) +#define LOCAL_NOT_ALLOWED_TO_SEND (1<<3) #define HEARTBEAT_DEFAULT_POLICY PEER_NOT_ALLOWED_TO_SEND extern extension_entry_st ext_mod_heartbeat; -typedef union -{ - uint32_t num; - struct - { - uint8_t local:1; - uint8_t remote:1; - } set; -} heartbeat_policy_t; +typedef uint8_t heartbeat_policy_t; -int _gnutls_heartbeat_policy_set (gnutls_session_t session, unsigned policy); -int gnutls_heartbeat_allow (gnutls_session_t session); -int gnutls_heartbeat_deny (gnutls_session_t session); -unsigned _gnutls_heartbeat_policy_get (gnutls_session_t session); int _gnutls_heartbeat_handle (gnutls_session_t session, mbuffer_st * bufel); ssize_t _gnutls_heartbeat_send_data (gnutls_session_t session, const void *data, size_t data_size, @@ -60,8 +48,5 @@ ssize_t _gnutls_heartbeat_send_data (gnutls_session_t session, ssize_t gnutls_heartbeat_ping (gnutls_session_t session, size_t data_size); ssize_t gnutls_heartbeat_ping_rnd (gnutls_session_t session); int _gnutls_heartbeat_enabled (gnutls_session_t session, int local); -int gnutls_heartbeat_enabled_local (gnutls_session_t session); -int gnutls_heartbeat_enabled_remote (gnutls_session_t session); int gnutls_heartbeat_timeout (gnutls_session_t session, int check_only); -const char * _gnutls_heartbeat (int policy); #endif diff --git a/lib/gnutls_int.h b/lib/gnutls_int.h index bf901e0e73..8e1a8113ec 100644 --- a/lib/gnutls_int.h +++ b/lib/gnutls_int.h @@ -889,7 +889,6 @@ typedef struct unsigned int handshake_timeout_ms; /* timeout in milliseconds */ gnutls_buffer_st heartbeat_payload; /* store in-flight payload for heartbeat extension*/ - int heartbeat_policy_set; /* If you add anything here, check _gnutls_handshake_internal_state_clear(). */ diff --git a/lib/gnutls_record.c b/lib/gnutls_record.c index de634dcc92..2a616338e0 100644 --- a/lib/gnutls_record.c +++ b/lib/gnutls_record.c @@ -659,7 +659,6 @@ record_add_to_buffers (gnutls_session_t session, case GNUTLS_HEARTBEAT: ret = _gnutls_heartbeat_handle (session, bufel); goto cleanup; - break; case GNUTLS_APPLICATION_DATA: if (session->internals.initial_negotiation_completed == 0) diff --git a/lib/gnutls_state.c b/lib/gnutls_state.c index 70d54c87ed..1009a8cae2 100644 --- a/lib/gnutls_state.c +++ b/lib/gnutls_state.c @@ -322,8 +322,6 @@ gnutls_init (gnutls_session_t * session, unsigned int flags) /* the default certificate type for TLS */ (*session)->security_parameters.cert_type = DEFAULT_CERT_TYPE; - (*session)->internals.heartbeat_policy_set = 0; - /* Initialize buffers */ _gnutls_buffer_init (&(*session)->internals.handshake_hash_buffer); _gnutls_buffer_init (&(*session)->internals.heartbeat_payload); diff --git a/lib/includes/gnutls/gnutls.h.in b/lib/includes/gnutls/gnutls.h.in index cb3c8ff132..53cdfa9181 100644 --- a/lib/includes/gnutls/gnutls.h.in +++ b/lib/includes/gnutls/gnutls.h.in @@ -908,11 +908,12 @@ gnutls_ecc_curve_t gnutls_ecc_curve_get(gnutls_session_t session); void *data, size_t * data_length, unsigned int *type, unsigned int indx); +#define GNUTLS_HB_PEER_ALLOWED_TO_SEND (1) +#define GNUTLS_HB_PEER_NOT_ALLOWED_TO_SEND (1<<1) + /* Heartbeat */ - int gnutls_heartbeat_allow (gnutls_session_t session); - int gnutls_heartbeat_deny (gnutls_session_t session); - int gnutls_heartbeat_enabled_local (gnutls_session_t session); - int gnutls_heartbeat_enabled_remote (gnutls_session_t session); + void gnutls_heartbeat_enable (gnutls_session_t session, unsigned int type); + int gnutls_heartbeat_allowed (gnutls_session_t session, unsigned int type); int gnutls_heartbeat_timeout (gnutls_session_t session, int check_only); /* Safe renegotiation */ diff --git a/lib/libgnutls.map b/lib/libgnutls.map index 86e3fb46bf..0bac5774f2 100644 --- a/lib/libgnutls.map +++ b/lib/libgnutls.map @@ -335,10 +335,8 @@ GNUTLS_1_4 gnutls_sign_get_id; gnutls_sign_get_name; gnutls_sign_list; - gnutls_heartbeat_allow; - gnutls_heartbeat_deny; - gnutls_heartbeat_enabled_local; - gnutls_heartbeat_enabled_remote; + gnutls_heartbeat_enable; + gnutls_heartbeat_allowed; gnutls_heartbeat_timeout; gnutls_srp_1024_group_generator; gnutls_srp_1024_group_prime; diff --git a/src/cli-args.c b/src/cli-args.c index 09e65e55b1..b4f05015da 100644 --- a/src/cli-args.c +++ b/src/cli-args.c @@ -2,7 +2,7 @@ * * DO NOT EDIT THIS FILE (cli-args.c) * - * It has been AutoGen-ed June 6, 2012 at 09:09:25 PM by AutoGen 5.16 + * It has been AutoGen-ed August 30, 2012 at 09:58:04 PM by AutoGen 5.16 * From the definitions cli-args.def * and the template file options * @@ -67,7 +67,7 @@ extern FILE * option_usage_fp; /* * gnutls-cli option static const strings */ -static char const gnutls_cli_opt_strs[3491] = +static char const gnutls_cli_opt_strs[3538] = /* 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" @@ -100,119 +100,122 @@ static char const gnutls_cli_opt_strs[3491] = /* 1063 */ "Establish a session and resume\0" /* 1094 */ "RESUME\0" /* 1101 */ "resume\0" -/* 1108 */ "Establish a session and rehandshake\0" -/* 1144 */ "REHANDSHAKE\0" -/* 1156 */ "rehandshake\0" -/* 1168 */ "Don't accept session tickets\0" -/* 1197 */ "NOTICKET\0" -/* 1206 */ "noticket\0" -/* 1215 */ "Connect, establish a plain session and start TLS.\0" -/* 1265 */ "STARTTLS\0" -/* 1274 */ "starttls\0" -/* 1283 */ "Use DTLS (datagram TLS) over UDP\0" -/* 1316 */ "UDP\0" -/* 1320 */ "udp\0" -/* 1324 */ "Set MTU for datagram TLS\0" -/* 1349 */ "MTU\0" -/* 1353 */ "mtu\0" -/* 1357 */ "Send CR LF instead of LF\0" -/* 1382 */ "CRLF\0" -/* 1387 */ "crlf\0" -/* 1392 */ "Use DER format for certificates to read from\0" -/* 1437 */ "X509FMTDER\0" -/* 1448 */ "x509fmtder\0" -/* 1459 */ "Send the openpgp fingerprint, instead of the key\0" -/* 1508 */ "FINGERPRINT\0" -/* 1520 */ "fingerprint\0" -/* 1532 */ "Disable all the TLS extensions\0" -/* 1563 */ "DISABLE_EXTENSIONS\0" -/* 1582 */ "disable-extensions\0" -/* 1601 */ "Print peer's certificate in PEM format\0" -/* 1640 */ "PRINT_CERT\0" -/* 1651 */ "print-cert\0" -/* 1662 */ "The maximum record size to advertize\0" -/* 1699 */ "RECORDSIZE\0" -/* 1710 */ "recordsize\0" -/* 1721 */ "The minimum number of bits allowed for DH\0" -/* 1763 */ "DH_BITS\0" -/* 1771 */ "dh-bits\0" -/* 1779 */ "Priorities string\0" -/* 1797 */ "PRIORITY\0" -/* 1806 */ "priority\0" -/* 1815 */ "Certificate file or PKCS #11 URL to use\0" -/* 1855 */ "X509CAFILE\0" -/* 1866 */ "x509cafile\0" -/* 1877 */ "CRL file to use\0" -/* 1893 */ "X509CRLFILE\0" -/* 1905 */ "x509crlfile\0" -/* 1917 */ "PGP Key file to use\0" -/* 1937 */ "PGPKEYFILE\0" -/* 1948 */ "pgpkeyfile\0" -/* 1959 */ "PGP Key ring file to use\0" -/* 1984 */ "PGPKEYRING\0" -/* 1995 */ "pgpkeyring\0" -/* 2006 */ "PGP Public Key (certificate) file to use\0" -/* 2047 */ "PGPCERTFILE\0" -/* 2059 */ "pgpcertfile\0" -/* 2071 */ "X.509 key file or PKCS #11 URL to use\0" -/* 2109 */ "X509KEYFILE\0" -/* 2121 */ "x509keyfile\0" -/* 2133 */ "X.509 Certificate file or PKCS #11 URL to use\0" -/* 2179 */ "X509CERTFILE\0" -/* 2192 */ "x509certfile\0" -/* 2205 */ "PGP subkey to use (hex or auto)\0" -/* 2237 */ "PGPSUBKEY\0" -/* 2247 */ "pgpsubkey\0" -/* 2257 */ "SRP username to use\0" -/* 2277 */ "SRPUSERNAME\0" -/* 2289 */ "srpusername\0" -/* 2301 */ "SRP password to use\0" -/* 2321 */ "SRPPASSWD\0" -/* 2331 */ "srppasswd\0" -/* 2341 */ "PSK username to use\0" -/* 2361 */ "PSKUSERNAME\0" -/* 2373 */ "pskusername\0" -/* 2385 */ "PSK key (in hex) to use\0" -/* 2409 */ "PSKKEY\0" -/* 2416 */ "pskkey\0" -/* 2423 */ "The port or service to connect to\0" -/* 2457 */ "PORT\0" -/* 2462 */ "port\0" -/* 2467 */ "Don't abort program if server certificate can't be validated\0" -/* 2528 */ "INSECURE\0" -/* 2537 */ "insecure\0" -/* 2546 */ "Benchmark individual ciphers\0" -/* 2575 */ "BENCHMARK_CIPHERS\0" -/* 2593 */ "benchmark-ciphers\0" -/* 2611 */ "Benchmark individual software ciphers (no hw acceleration)\0" -/* 2670 */ "BENCHMARK_SOFT_CIPHERS\0" -/* 2693 */ "benchmark-soft-ciphers\0" -/* 2716 */ "Benchmark TLS key exchange methods\0" -/* 2751 */ "BENCHMARK_TLS_KX\0" -/* 2768 */ "benchmark-tls-kx\0" -/* 2785 */ "Benchmark TLS ciphers\0" -/* 2807 */ "BENCHMARK_TLS_CIPHERS\0" -/* 2829 */ "benchmark-tls-ciphers\0" -/* 2851 */ "Print a list of the supported algorithms and modes\0" -/* 2902 */ "LIST\0" -/* 2907 */ "list\0" -/* 2912 */ "Display extended usage information and exit\0" -/* 2956 */ "help\0" -/* 2961 */ "Extended usage information passed thru pager\0" -/* 3006 */ "more-help\0" -/* 3016 */ "Output version information and exit\0" -/* 3052 */ "version\0" -/* 3060 */ "GNUTLS_CLI\0" -/* 3071 */ "gnutls-cli - GnuTLS client - Ver. @VERSION@\n" +/* 1108 */ "Activate heartbeat support\0" +/* 1135 */ "HEARTBEAT\0" +/* 1145 */ "heartbeat\0" +/* 1155 */ "Establish a session and rehandshake\0" +/* 1191 */ "REHANDSHAKE\0" +/* 1203 */ "rehandshake\0" +/* 1215 */ "Don't accept session tickets\0" +/* 1244 */ "NOTICKET\0" +/* 1253 */ "noticket\0" +/* 1262 */ "Connect, establish a plain session and start TLS.\0" +/* 1312 */ "STARTTLS\0" +/* 1321 */ "starttls\0" +/* 1330 */ "Use DTLS (datagram TLS) over UDP\0" +/* 1363 */ "UDP\0" +/* 1367 */ "udp\0" +/* 1371 */ "Set MTU for datagram TLS\0" +/* 1396 */ "MTU\0" +/* 1400 */ "mtu\0" +/* 1404 */ "Send CR LF instead of LF\0" +/* 1429 */ "CRLF\0" +/* 1434 */ "crlf\0" +/* 1439 */ "Use DER format for certificates to read from\0" +/* 1484 */ "X509FMTDER\0" +/* 1495 */ "x509fmtder\0" +/* 1506 */ "Send the openpgp fingerprint, instead of the key\0" +/* 1555 */ "FINGERPRINT\0" +/* 1567 */ "fingerprint\0" +/* 1579 */ "Disable all the TLS extensions\0" +/* 1610 */ "DISABLE_EXTENSIONS\0" +/* 1629 */ "disable-extensions\0" +/* 1648 */ "Print peer's certificate in PEM format\0" +/* 1687 */ "PRINT_CERT\0" +/* 1698 */ "print-cert\0" +/* 1709 */ "The maximum record size to advertize\0" +/* 1746 */ "RECORDSIZE\0" +/* 1757 */ "recordsize\0" +/* 1768 */ "The minimum number of bits allowed for DH\0" +/* 1810 */ "DH_BITS\0" +/* 1818 */ "dh-bits\0" +/* 1826 */ "Priorities string\0" +/* 1844 */ "PRIORITY\0" +/* 1853 */ "priority\0" +/* 1862 */ "Certificate file or PKCS #11 URL to use\0" +/* 1902 */ "X509CAFILE\0" +/* 1913 */ "x509cafile\0" +/* 1924 */ "CRL file to use\0" +/* 1940 */ "X509CRLFILE\0" +/* 1952 */ "x509crlfile\0" +/* 1964 */ "PGP Key file to use\0" +/* 1984 */ "PGPKEYFILE\0" +/* 1995 */ "pgpkeyfile\0" +/* 2006 */ "PGP Key ring file to use\0" +/* 2031 */ "PGPKEYRING\0" +/* 2042 */ "pgpkeyring\0" +/* 2053 */ "PGP Public Key (certificate) file to use\0" +/* 2094 */ "PGPCERTFILE\0" +/* 2106 */ "pgpcertfile\0" +/* 2118 */ "X.509 key file or PKCS #11 URL to use\0" +/* 2156 */ "X509KEYFILE\0" +/* 2168 */ "x509keyfile\0" +/* 2180 */ "X.509 Certificate file or PKCS #11 URL to use\0" +/* 2226 */ "X509CERTFILE\0" +/* 2239 */ "x509certfile\0" +/* 2252 */ "PGP subkey to use (hex or auto)\0" +/* 2284 */ "PGPSUBKEY\0" +/* 2294 */ "pgpsubkey\0" +/* 2304 */ "SRP username to use\0" +/* 2324 */ "SRPUSERNAME\0" +/* 2336 */ "srpusername\0" +/* 2348 */ "SRP password to use\0" +/* 2368 */ "SRPPASSWD\0" +/* 2378 */ "srppasswd\0" +/* 2388 */ "PSK username to use\0" +/* 2408 */ "PSKUSERNAME\0" +/* 2420 */ "pskusername\0" +/* 2432 */ "PSK key (in hex) to use\0" +/* 2456 */ "PSKKEY\0" +/* 2463 */ "pskkey\0" +/* 2470 */ "The port or service to connect to\0" +/* 2504 */ "PORT\0" +/* 2509 */ "port\0" +/* 2514 */ "Don't abort program if server certificate can't be validated\0" +/* 2575 */ "INSECURE\0" +/* 2584 */ "insecure\0" +/* 2593 */ "Benchmark individual ciphers\0" +/* 2622 */ "BENCHMARK_CIPHERS\0" +/* 2640 */ "benchmark-ciphers\0" +/* 2658 */ "Benchmark individual software ciphers (no hw acceleration)\0" +/* 2717 */ "BENCHMARK_SOFT_CIPHERS\0" +/* 2740 */ "benchmark-soft-ciphers\0" +/* 2763 */ "Benchmark TLS key exchange methods\0" +/* 2798 */ "BENCHMARK_TLS_KX\0" +/* 2815 */ "benchmark-tls-kx\0" +/* 2832 */ "Benchmark TLS ciphers\0" +/* 2854 */ "BENCHMARK_TLS_CIPHERS\0" +/* 2876 */ "benchmark-tls-ciphers\0" +/* 2898 */ "Print a list of the supported algorithms and modes\0" +/* 2949 */ "LIST\0" +/* 2954 */ "list\0" +/* 2959 */ "Display extended usage information and exit\0" +/* 3003 */ "help\0" +/* 3008 */ "Extended usage information passed thru pager\0" +/* 3053 */ "more-help\0" +/* 3063 */ "Output version information and exit\0" +/* 3099 */ "version\0" +/* 3107 */ "GNUTLS_CLI\0" +/* 3118 */ "gnutls-cli - GnuTLS client - Ver. @VERSION@\n" "USAGE: %s [ - [] | --[{=| }] ]... [hostname]\n\0" -/* 3184 */ "bug-gnutls@gnu.org\0" -/* 3203 */ "\n\n\0" -/* 3206 */ "\n" +/* 3231 */ "bug-gnutls@gnu.org\0" +/* 3250 */ "\n\n\0" +/* 3253 */ "\n" "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" -/* 3390 */ "gnutls-cli @VERSION@\0" -/* 3411 */ "Usage: gnutls-cli [options] hostname\n" +/* 3437 */ "gnutls-cli @VERSION@\0" +/* 3458 */ "Usage: gnutls-cli [options] hostname\n" "gnutls-cli --help for usage instructions.\n"; /* @@ -260,287 +263,295 @@ static char const gnutls_cli_opt_strs[3491] = #define RESUME_name (gnutls_cli_opt_strs+1101) #define RESUME_FLAGS (OPTST_DISABLED) +/* + * heartbeat option description: + */ +#define HEARTBEAT_DESC (gnutls_cli_opt_strs+1108) +#define HEARTBEAT_NAME (gnutls_cli_opt_strs+1135) +#define HEARTBEAT_name (gnutls_cli_opt_strs+1145) +#define HEARTBEAT_FLAGS (OPTST_DISABLED) + /* * rehandshake option description: */ -#define REHANDSHAKE_DESC (gnutls_cli_opt_strs+1108) -#define REHANDSHAKE_NAME (gnutls_cli_opt_strs+1144) -#define REHANDSHAKE_name (gnutls_cli_opt_strs+1156) +#define REHANDSHAKE_DESC (gnutls_cli_opt_strs+1155) +#define REHANDSHAKE_NAME (gnutls_cli_opt_strs+1191) +#define REHANDSHAKE_name (gnutls_cli_opt_strs+1203) #define REHANDSHAKE_FLAGS (OPTST_DISABLED) /* * noticket option description: */ -#define NOTICKET_DESC (gnutls_cli_opt_strs+1168) -#define NOTICKET_NAME (gnutls_cli_opt_strs+1197) -#define NOTICKET_name (gnutls_cli_opt_strs+1206) +#define NOTICKET_DESC (gnutls_cli_opt_strs+1215) +#define NOTICKET_NAME (gnutls_cli_opt_strs+1244) +#define NOTICKET_name (gnutls_cli_opt_strs+1253) #define NOTICKET_FLAGS (OPTST_DISABLED) /* * starttls option description: */ -#define STARTTLS_DESC (gnutls_cli_opt_strs+1215) -#define STARTTLS_NAME (gnutls_cli_opt_strs+1265) -#define STARTTLS_name (gnutls_cli_opt_strs+1274) +#define STARTTLS_DESC (gnutls_cli_opt_strs+1262) +#define STARTTLS_NAME (gnutls_cli_opt_strs+1312) +#define STARTTLS_name (gnutls_cli_opt_strs+1321) #define STARTTLS_FLAGS (OPTST_DISABLED) /* * udp option description: */ -#define UDP_DESC (gnutls_cli_opt_strs+1283) -#define UDP_NAME (gnutls_cli_opt_strs+1316) -#define UDP_name (gnutls_cli_opt_strs+1320) +#define UDP_DESC (gnutls_cli_opt_strs+1330) +#define UDP_NAME (gnutls_cli_opt_strs+1363) +#define UDP_name (gnutls_cli_opt_strs+1367) #define UDP_FLAGS (OPTST_DISABLED) /* * mtu option description: */ -#define MTU_DESC (gnutls_cli_opt_strs+1324) -#define MTU_NAME (gnutls_cli_opt_strs+1349) -#define MTU_name (gnutls_cli_opt_strs+1353) +#define MTU_DESC (gnutls_cli_opt_strs+1371) +#define MTU_NAME (gnutls_cli_opt_strs+1396) +#define MTU_name (gnutls_cli_opt_strs+1400) #define MTU_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC)) /* * crlf option description: */ -#define CRLF_DESC (gnutls_cli_opt_strs+1357) -#define CRLF_NAME (gnutls_cli_opt_strs+1382) -#define CRLF_name (gnutls_cli_opt_strs+1387) +#define CRLF_DESC (gnutls_cli_opt_strs+1404) +#define CRLF_NAME (gnutls_cli_opt_strs+1429) +#define CRLF_name (gnutls_cli_opt_strs+1434) #define CRLF_FLAGS (OPTST_DISABLED) /* * x509fmtder option description: */ -#define X509FMTDER_DESC (gnutls_cli_opt_strs+1392) -#define X509FMTDER_NAME (gnutls_cli_opt_strs+1437) -#define X509FMTDER_name (gnutls_cli_opt_strs+1448) +#define X509FMTDER_DESC (gnutls_cli_opt_strs+1439) +#define X509FMTDER_NAME (gnutls_cli_opt_strs+1484) +#define X509FMTDER_name (gnutls_cli_opt_strs+1495) #define X509FMTDER_FLAGS (OPTST_DISABLED) /* * fingerprint option description: */ -#define FINGERPRINT_DESC (gnutls_cli_opt_strs+1459) -#define FINGERPRINT_NAME (gnutls_cli_opt_strs+1508) -#define FINGERPRINT_name (gnutls_cli_opt_strs+1520) +#define FINGERPRINT_DESC (gnutls_cli_opt_strs+1506) +#define FINGERPRINT_NAME (gnutls_cli_opt_strs+1555) +#define FINGERPRINT_name (gnutls_cli_opt_strs+1567) #define FINGERPRINT_FLAGS (OPTST_DISABLED) /* * disable-extensions option description: */ -#define DISABLE_EXTENSIONS_DESC (gnutls_cli_opt_strs+1532) -#define DISABLE_EXTENSIONS_NAME (gnutls_cli_opt_strs+1563) -#define DISABLE_EXTENSIONS_name (gnutls_cli_opt_strs+1582) +#define DISABLE_EXTENSIONS_DESC (gnutls_cli_opt_strs+1579) +#define DISABLE_EXTENSIONS_NAME (gnutls_cli_opt_strs+1610) +#define DISABLE_EXTENSIONS_name (gnutls_cli_opt_strs+1629) #define DISABLE_EXTENSIONS_FLAGS (OPTST_DISABLED) /* * print-cert option description: */ -#define PRINT_CERT_DESC (gnutls_cli_opt_strs+1601) -#define PRINT_CERT_NAME (gnutls_cli_opt_strs+1640) -#define PRINT_CERT_name (gnutls_cli_opt_strs+1651) +#define PRINT_CERT_DESC (gnutls_cli_opt_strs+1648) +#define PRINT_CERT_NAME (gnutls_cli_opt_strs+1687) +#define PRINT_CERT_name (gnutls_cli_opt_strs+1698) #define PRINT_CERT_FLAGS (OPTST_DISABLED) /* * recordsize option description: */ -#define RECORDSIZE_DESC (gnutls_cli_opt_strs+1662) -#define RECORDSIZE_NAME (gnutls_cli_opt_strs+1699) -#define RECORDSIZE_name (gnutls_cli_opt_strs+1710) +#define RECORDSIZE_DESC (gnutls_cli_opt_strs+1709) +#define RECORDSIZE_NAME (gnutls_cli_opt_strs+1746) +#define RECORDSIZE_name (gnutls_cli_opt_strs+1757) #define RECORDSIZE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC)) /* * dh-bits option description: */ -#define DH_BITS_DESC (gnutls_cli_opt_strs+1721) -#define DH_BITS_NAME (gnutls_cli_opt_strs+1763) -#define DH_BITS_name (gnutls_cli_opt_strs+1771) +#define DH_BITS_DESC (gnutls_cli_opt_strs+1768) +#define DH_BITS_NAME (gnutls_cli_opt_strs+1810) +#define DH_BITS_name (gnutls_cli_opt_strs+1818) #define DH_BITS_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC)) /* * priority option description: */ -#define PRIORITY_DESC (gnutls_cli_opt_strs+1779) -#define PRIORITY_NAME (gnutls_cli_opt_strs+1797) -#define PRIORITY_name (gnutls_cli_opt_strs+1806) +#define PRIORITY_DESC (gnutls_cli_opt_strs+1826) +#define PRIORITY_NAME (gnutls_cli_opt_strs+1844) +#define PRIORITY_name (gnutls_cli_opt_strs+1853) #define PRIORITY_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * x509cafile option description: */ -#define X509CAFILE_DESC (gnutls_cli_opt_strs+1815) -#define X509CAFILE_NAME (gnutls_cli_opt_strs+1855) -#define X509CAFILE_name (gnutls_cli_opt_strs+1866) +#define X509CAFILE_DESC (gnutls_cli_opt_strs+1862) +#define X509CAFILE_NAME (gnutls_cli_opt_strs+1902) +#define X509CAFILE_name (gnutls_cli_opt_strs+1913) #define X509CAFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * x509crlfile option description: */ -#define X509CRLFILE_DESC (gnutls_cli_opt_strs+1877) -#define X509CRLFILE_NAME (gnutls_cli_opt_strs+1893) -#define X509CRLFILE_name (gnutls_cli_opt_strs+1905) +#define X509CRLFILE_DESC (gnutls_cli_opt_strs+1924) +#define X509CRLFILE_NAME (gnutls_cli_opt_strs+1940) +#define X509CRLFILE_name (gnutls_cli_opt_strs+1952) #define X509CRLFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) /* * pgpkeyfile option description: */ -#define PGPKEYFILE_DESC (gnutls_cli_opt_strs+1917) -#define PGPKEYFILE_NAME (gnutls_cli_opt_strs+1937) -#define PGPKEYFILE_name (gnutls_cli_opt_strs+1948) +#define PGPKEYFILE_DESC (gnutls_cli_opt_strs+1964) +#define PGPKEYFILE_NAME (gnutls_cli_opt_strs+1984) +#define PGPKEYFILE_name (gnutls_cli_opt_strs+1995) #define PGPKEYFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) /* * pgpkeyring option description: */ -#define PGPKEYRING_DESC (gnutls_cli_opt_strs+1959) -#define PGPKEYRING_NAME (gnutls_cli_opt_strs+1984) -#define PGPKEYRING_name (gnutls_cli_opt_strs+1995) +#define PGPKEYRING_DESC (gnutls_cli_opt_strs+2006) +#define PGPKEYRING_NAME (gnutls_cli_opt_strs+2031) +#define PGPKEYRING_name (gnutls_cli_opt_strs+2042) #define PGPKEYRING_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) /* * pgpcertfile option description: */ -#define PGPCERTFILE_DESC (gnutls_cli_opt_strs+2006) -#define PGPCERTFILE_NAME (gnutls_cli_opt_strs+2047) -#define PGPCERTFILE_name (gnutls_cli_opt_strs+2059) +#define PGPCERTFILE_DESC (gnutls_cli_opt_strs+2053) +#define PGPCERTFILE_NAME (gnutls_cli_opt_strs+2094) +#define PGPCERTFILE_name (gnutls_cli_opt_strs+2106) #define PGPCERTFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) /* * x509keyfile option description: */ -#define X509KEYFILE_DESC (gnutls_cli_opt_strs+2071) -#define X509KEYFILE_NAME (gnutls_cli_opt_strs+2109) -#define X509KEYFILE_name (gnutls_cli_opt_strs+2121) +#define X509KEYFILE_DESC (gnutls_cli_opt_strs+2118) +#define X509KEYFILE_NAME (gnutls_cli_opt_strs+2156) +#define X509KEYFILE_name (gnutls_cli_opt_strs+2168) #define X509KEYFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * x509certfile option description: */ -#define X509CERTFILE_DESC (gnutls_cli_opt_strs+2133) -#define X509CERTFILE_NAME (gnutls_cli_opt_strs+2179) -#define X509CERTFILE_name (gnutls_cli_opt_strs+2192) +#define X509CERTFILE_DESC (gnutls_cli_opt_strs+2180) +#define X509CERTFILE_NAME (gnutls_cli_opt_strs+2226) +#define X509CERTFILE_name (gnutls_cli_opt_strs+2239) #define X509CERTFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * pgpsubkey option description: */ -#define PGPSUBKEY_DESC (gnutls_cli_opt_strs+2205) -#define PGPSUBKEY_NAME (gnutls_cli_opt_strs+2237) -#define PGPSUBKEY_name (gnutls_cli_opt_strs+2247) +#define PGPSUBKEY_DESC (gnutls_cli_opt_strs+2252) +#define PGPSUBKEY_NAME (gnutls_cli_opt_strs+2284) +#define PGPSUBKEY_name (gnutls_cli_opt_strs+2294) #define PGPSUBKEY_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * srpusername option description: */ -#define SRPUSERNAME_DESC (gnutls_cli_opt_strs+2257) -#define SRPUSERNAME_NAME (gnutls_cli_opt_strs+2277) -#define SRPUSERNAME_name (gnutls_cli_opt_strs+2289) +#define SRPUSERNAME_DESC (gnutls_cli_opt_strs+2304) +#define SRPUSERNAME_NAME (gnutls_cli_opt_strs+2324) +#define SRPUSERNAME_name (gnutls_cli_opt_strs+2336) #define SRPUSERNAME_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * srppasswd option description: */ -#define SRPPASSWD_DESC (gnutls_cli_opt_strs+2301) -#define SRPPASSWD_NAME (gnutls_cli_opt_strs+2321) -#define SRPPASSWD_name (gnutls_cli_opt_strs+2331) +#define SRPPASSWD_DESC (gnutls_cli_opt_strs+2348) +#define SRPPASSWD_NAME (gnutls_cli_opt_strs+2368) +#define SRPPASSWD_name (gnutls_cli_opt_strs+2378) #define SRPPASSWD_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * pskusername option description: */ -#define PSKUSERNAME_DESC (gnutls_cli_opt_strs+2341) -#define PSKUSERNAME_NAME (gnutls_cli_opt_strs+2361) -#define PSKUSERNAME_name (gnutls_cli_opt_strs+2373) +#define PSKUSERNAME_DESC (gnutls_cli_opt_strs+2388) +#define PSKUSERNAME_NAME (gnutls_cli_opt_strs+2408) +#define PSKUSERNAME_name (gnutls_cli_opt_strs+2420) #define PSKUSERNAME_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * pskkey option description: */ -#define PSKKEY_DESC (gnutls_cli_opt_strs+2385) -#define PSKKEY_NAME (gnutls_cli_opt_strs+2409) -#define PSKKEY_name (gnutls_cli_opt_strs+2416) +#define PSKKEY_DESC (gnutls_cli_opt_strs+2432) +#define PSKKEY_NAME (gnutls_cli_opt_strs+2456) +#define PSKKEY_name (gnutls_cli_opt_strs+2463) #define PSKKEY_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * port option description: */ -#define PORT_DESC (gnutls_cli_opt_strs+2423) -#define PORT_NAME (gnutls_cli_opt_strs+2457) -#define PORT_name (gnutls_cli_opt_strs+2462) +#define PORT_DESC (gnutls_cli_opt_strs+2470) +#define PORT_NAME (gnutls_cli_opt_strs+2504) +#define PORT_name (gnutls_cli_opt_strs+2509) #define PORT_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * insecure option description: */ -#define INSECURE_DESC (gnutls_cli_opt_strs+2467) -#define INSECURE_NAME (gnutls_cli_opt_strs+2528) -#define INSECURE_name (gnutls_cli_opt_strs+2537) +#define INSECURE_DESC (gnutls_cli_opt_strs+2514) +#define INSECURE_NAME (gnutls_cli_opt_strs+2575) +#define INSECURE_name (gnutls_cli_opt_strs+2584) #define INSECURE_FLAGS (OPTST_DISABLED) /* * benchmark-ciphers option description: */ -#define BENCHMARK_CIPHERS_DESC (gnutls_cli_opt_strs+2546) -#define BENCHMARK_CIPHERS_NAME (gnutls_cli_opt_strs+2575) -#define BENCHMARK_CIPHERS_name (gnutls_cli_opt_strs+2593) +#define BENCHMARK_CIPHERS_DESC (gnutls_cli_opt_strs+2593) +#define BENCHMARK_CIPHERS_NAME (gnutls_cli_opt_strs+2622) +#define BENCHMARK_CIPHERS_name (gnutls_cli_opt_strs+2640) #define BENCHMARK_CIPHERS_FLAGS (OPTST_DISABLED) /* * benchmark-soft-ciphers option description: */ -#define BENCHMARK_SOFT_CIPHERS_DESC (gnutls_cli_opt_strs+2611) -#define BENCHMARK_SOFT_CIPHERS_NAME (gnutls_cli_opt_strs+2670) -#define BENCHMARK_SOFT_CIPHERS_name (gnutls_cli_opt_strs+2693) +#define BENCHMARK_SOFT_CIPHERS_DESC (gnutls_cli_opt_strs+2658) +#define BENCHMARK_SOFT_CIPHERS_NAME (gnutls_cli_opt_strs+2717) +#define BENCHMARK_SOFT_CIPHERS_name (gnutls_cli_opt_strs+2740) #define BENCHMARK_SOFT_CIPHERS_FLAGS (OPTST_DISABLED) /* * benchmark-tls-kx option description: */ -#define BENCHMARK_TLS_KX_DESC (gnutls_cli_opt_strs+2716) -#define BENCHMARK_TLS_KX_NAME (gnutls_cli_opt_strs+2751) -#define BENCHMARK_TLS_KX_name (gnutls_cli_opt_strs+2768) +#define BENCHMARK_TLS_KX_DESC (gnutls_cli_opt_strs+2763) +#define BENCHMARK_TLS_KX_NAME (gnutls_cli_opt_strs+2798) +#define BENCHMARK_TLS_KX_name (gnutls_cli_opt_strs+2815) #define BENCHMARK_TLS_KX_FLAGS (OPTST_DISABLED) /* * benchmark-tls-ciphers option description: */ -#define BENCHMARK_TLS_CIPHERS_DESC (gnutls_cli_opt_strs+2785) -#define BENCHMARK_TLS_CIPHERS_NAME (gnutls_cli_opt_strs+2807) -#define BENCHMARK_TLS_CIPHERS_name (gnutls_cli_opt_strs+2829) +#define BENCHMARK_TLS_CIPHERS_DESC (gnutls_cli_opt_strs+2832) +#define BENCHMARK_TLS_CIPHERS_NAME (gnutls_cli_opt_strs+2854) +#define BENCHMARK_TLS_CIPHERS_name (gnutls_cli_opt_strs+2876) #define BENCHMARK_TLS_CIPHERS_FLAGS (OPTST_DISABLED) /* * list option description: */ -#define LIST_DESC (gnutls_cli_opt_strs+2851) -#define LIST_NAME (gnutls_cli_opt_strs+2902) -#define LIST_name (gnutls_cli_opt_strs+2907) +#define LIST_DESC (gnutls_cli_opt_strs+2898) +#define LIST_NAME (gnutls_cli_opt_strs+2949) +#define LIST_name (gnutls_cli_opt_strs+2954) #define LIST_FLAGS (OPTST_DISABLED) /* * Help/More_Help/Version option descriptions: */ -#define HELP_DESC (gnutls_cli_opt_strs+2912) -#define HELP_name (gnutls_cli_opt_strs+2956) +#define HELP_DESC (gnutls_cli_opt_strs+2959) +#define HELP_name (gnutls_cli_opt_strs+3003) #ifdef HAVE_WORKING_FORK -#define MORE_HELP_DESC (gnutls_cli_opt_strs+2961) -#define MORE_HELP_name (gnutls_cli_opt_strs+3006) +#define MORE_HELP_DESC (gnutls_cli_opt_strs+3008) +#define MORE_HELP_name (gnutls_cli_opt_strs+3053) #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT) #else #define MORE_HELP_DESC NULL @@ -553,8 +564,8 @@ static char const gnutls_cli_opt_strs[3491] = # 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+3016) -#define VER_name (gnutls_cli_opt_strs+3052) +#define VER_DESC (gnutls_cli_opt_strs+3063) +#define VER_name (gnutls_cli_opt_strs+3099) /* * Declare option callback procedures */ @@ -635,8 +646,20 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ RESUME_DESC, RESUME_NAME, RESUME_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 5, VALUE_OPT_REHANDSHAKE, - /* equiv idx, value */ 5, VALUE_OPT_REHANDSHAKE, + { /* entry idx, value */ 5, VALUE_OPT_HEARTBEAT, + /* equiv idx, value */ 5, 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 */ 6, VALUE_OPT_REHANDSHAKE, + /* equiv idx, value */ 6, VALUE_OPT_REHANDSHAKE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ REHANDSHAKE_FLAGS, 0, @@ -647,8 +670,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ REHANDSHAKE_DESC, REHANDSHAKE_NAME, REHANDSHAKE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 6, VALUE_OPT_NOTICKET, - /* equiv idx, value */ 6, VALUE_OPT_NOTICKET, + { /* entry idx, value */ 7, VALUE_OPT_NOTICKET, + /* equiv idx, value */ 7, VALUE_OPT_NOTICKET, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ NOTICKET_FLAGS, 0, @@ -659,8 +682,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ NOTICKET_DESC, NOTICKET_NAME, NOTICKET_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 7, VALUE_OPT_STARTTLS, - /* equiv idx, value */ 7, VALUE_OPT_STARTTLS, + { /* entry idx, value */ 8, VALUE_OPT_STARTTLS, + /* equiv idx, value */ 8, VALUE_OPT_STARTTLS, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ STARTTLS_FLAGS, 0, @@ -671,8 +694,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ STARTTLS_DESC, STARTTLS_NAME, STARTTLS_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 8, VALUE_OPT_UDP, - /* equiv idx, value */ 8, VALUE_OPT_UDP, + { /* entry idx, value */ 9, VALUE_OPT_UDP, + /* equiv idx, value */ 9, VALUE_OPT_UDP, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ UDP_FLAGS, 0, @@ -683,8 +706,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ UDP_DESC, UDP_NAME, UDP_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 9, VALUE_OPT_MTU, - /* equiv idx, value */ 9, VALUE_OPT_MTU, + { /* entry idx, value */ 10, VALUE_OPT_MTU, + /* equiv idx, value */ 10, VALUE_OPT_MTU, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ MTU_FLAGS, 0, @@ -695,8 +718,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ MTU_DESC, MTU_NAME, MTU_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 10, VALUE_OPT_CRLF, - /* equiv idx, value */ 10, VALUE_OPT_CRLF, + { /* entry idx, value */ 11, VALUE_OPT_CRLF, + /* equiv idx, value */ 11, VALUE_OPT_CRLF, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ CRLF_FLAGS, 0, @@ -707,8 +730,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ CRLF_DESC, CRLF_NAME, CRLF_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 11, VALUE_OPT_X509FMTDER, - /* equiv idx, value */ 11, VALUE_OPT_X509FMTDER, + { /* entry idx, value */ 12, VALUE_OPT_X509FMTDER, + /* equiv idx, value */ 12, VALUE_OPT_X509FMTDER, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509FMTDER_FLAGS, 0, @@ -719,8 +742,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509FMTDER_DESC, X509FMTDER_NAME, X509FMTDER_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 12, VALUE_OPT_FINGERPRINT, - /* equiv idx, value */ 12, VALUE_OPT_FINGERPRINT, + { /* entry idx, value */ 13, VALUE_OPT_FINGERPRINT, + /* equiv idx, value */ 13, VALUE_OPT_FINGERPRINT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ FINGERPRINT_FLAGS, 0, @@ -731,8 +754,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ FINGERPRINT_DESC, FINGERPRINT_NAME, FINGERPRINT_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 13, VALUE_OPT_DISABLE_EXTENSIONS, - /* equiv idx, value */ 13, VALUE_OPT_DISABLE_EXTENSIONS, + { /* entry idx, value */ 14, VALUE_OPT_DISABLE_EXTENSIONS, + /* equiv idx, value */ 14, VALUE_OPT_DISABLE_EXTENSIONS, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ DISABLE_EXTENSIONS_FLAGS, 0, @@ -743,8 +766,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ DISABLE_EXTENSIONS_DESC, DISABLE_EXTENSIONS_NAME, DISABLE_EXTENSIONS_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 14, VALUE_OPT_PRINT_CERT, - /* equiv idx, value */ 14, 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, @@ -755,8 +778,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 */ 15, VALUE_OPT_RECORDSIZE, - /* equiv idx, value */ 15, VALUE_OPT_RECORDSIZE, + { /* entry idx, value */ 16, VALUE_OPT_RECORDSIZE, + /* equiv idx, value */ 16, VALUE_OPT_RECORDSIZE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ RECORDSIZE_FLAGS, 0, @@ -767,8 +790,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ RECORDSIZE_DESC, RECORDSIZE_NAME, RECORDSIZE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 16, VALUE_OPT_DH_BITS, - /* equiv idx, value */ 16, VALUE_OPT_DH_BITS, + { /* entry idx, value */ 17, VALUE_OPT_DH_BITS, + /* equiv idx, value */ 17, VALUE_OPT_DH_BITS, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ DH_BITS_FLAGS, 0, @@ -779,8 +802,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 */ 17, VALUE_OPT_PRIORITY, - /* equiv idx, value */ 17, VALUE_OPT_PRIORITY, + { /* entry idx, value */ 18, VALUE_OPT_PRIORITY, + /* equiv idx, value */ 18, VALUE_OPT_PRIORITY, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PRIORITY_FLAGS, 0, @@ -791,8 +814,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PRIORITY_DESC, PRIORITY_NAME, PRIORITY_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 18, VALUE_OPT_X509CAFILE, - /* equiv idx, value */ 18, VALUE_OPT_X509CAFILE, + { /* entry idx, value */ 19, VALUE_OPT_X509CAFILE, + /* equiv idx, value */ 19, VALUE_OPT_X509CAFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509CAFILE_FLAGS, 0, @@ -803,8 +826,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509CAFILE_DESC, X509CAFILE_NAME, X509CAFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 19, VALUE_OPT_X509CRLFILE, - /* equiv idx, value */ 19, VALUE_OPT_X509CRLFILE, + { /* entry idx, value */ 20, VALUE_OPT_X509CRLFILE, + /* equiv idx, value */ 20, VALUE_OPT_X509CRLFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509CRLFILE_FLAGS, 0, @@ -815,8 +838,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509CRLFILE_DESC, X509CRLFILE_NAME, X509CRLFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 20, VALUE_OPT_PGPKEYFILE, - /* equiv idx, value */ 20, VALUE_OPT_PGPKEYFILE, + { /* entry idx, value */ 21, VALUE_OPT_PGPKEYFILE, + /* equiv idx, value */ 21, VALUE_OPT_PGPKEYFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PGPKEYFILE_FLAGS, 0, @@ -827,8 +850,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PGPKEYFILE_DESC, PGPKEYFILE_NAME, PGPKEYFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 21, VALUE_OPT_PGPKEYRING, - /* equiv idx, value */ 21, VALUE_OPT_PGPKEYRING, + { /* entry idx, value */ 22, VALUE_OPT_PGPKEYRING, + /* equiv idx, value */ 22, VALUE_OPT_PGPKEYRING, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PGPKEYRING_FLAGS, 0, @@ -839,8 +862,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PGPKEYRING_DESC, PGPKEYRING_NAME, PGPKEYRING_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 22, VALUE_OPT_PGPCERTFILE, - /* equiv idx, value */ 22, VALUE_OPT_PGPCERTFILE, + { /* entry idx, value */ 23, VALUE_OPT_PGPCERTFILE, + /* equiv idx, value */ 23, VALUE_OPT_PGPCERTFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PGPCERTFILE_FLAGS, 0, @@ -851,8 +874,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PGPCERTFILE_DESC, PGPCERTFILE_NAME, PGPCERTFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 23, VALUE_OPT_X509KEYFILE, - /* equiv idx, value */ 23, VALUE_OPT_X509KEYFILE, + { /* entry idx, value */ 24, VALUE_OPT_X509KEYFILE, + /* equiv idx, value */ 24, VALUE_OPT_X509KEYFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509KEYFILE_FLAGS, 0, @@ -863,8 +886,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509KEYFILE_DESC, X509KEYFILE_NAME, X509KEYFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 24, VALUE_OPT_X509CERTFILE, - /* equiv idx, value */ 24, VALUE_OPT_X509CERTFILE, + { /* entry idx, value */ 25, VALUE_OPT_X509CERTFILE, + /* equiv idx, value */ 25, VALUE_OPT_X509CERTFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509CERTFILE_FLAGS, 0, @@ -875,8 +898,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509CERTFILE_DESC, X509CERTFILE_NAME, X509CERTFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 25, VALUE_OPT_PGPSUBKEY, - /* equiv idx, value */ 25, VALUE_OPT_PGPSUBKEY, + { /* entry idx, value */ 26, VALUE_OPT_PGPSUBKEY, + /* equiv idx, value */ 26, VALUE_OPT_PGPSUBKEY, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PGPSUBKEY_FLAGS, 0, @@ -887,8 +910,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PGPSUBKEY_DESC, PGPSUBKEY_NAME, PGPSUBKEY_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 26, VALUE_OPT_SRPUSERNAME, - /* equiv idx, value */ 26, VALUE_OPT_SRPUSERNAME, + { /* entry idx, value */ 27, VALUE_OPT_SRPUSERNAME, + /* equiv idx, value */ 27, VALUE_OPT_SRPUSERNAME, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ SRPUSERNAME_FLAGS, 0, @@ -899,8 +922,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ SRPUSERNAME_DESC, SRPUSERNAME_NAME, SRPUSERNAME_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 27, VALUE_OPT_SRPPASSWD, - /* equiv idx, value */ 27, VALUE_OPT_SRPPASSWD, + { /* entry idx, value */ 28, VALUE_OPT_SRPPASSWD, + /* equiv idx, value */ 28, VALUE_OPT_SRPPASSWD, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ SRPPASSWD_FLAGS, 0, @@ -911,8 +934,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ SRPPASSWD_DESC, SRPPASSWD_NAME, SRPPASSWD_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 28, VALUE_OPT_PSKUSERNAME, - /* equiv idx, value */ 28, VALUE_OPT_PSKUSERNAME, + { /* entry idx, value */ 29, VALUE_OPT_PSKUSERNAME, + /* equiv idx, value */ 29, VALUE_OPT_PSKUSERNAME, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PSKUSERNAME_FLAGS, 0, @@ -923,8 +946,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PSKUSERNAME_DESC, PSKUSERNAME_NAME, PSKUSERNAME_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 29, VALUE_OPT_PSKKEY, - /* equiv idx, value */ 29, VALUE_OPT_PSKKEY, + { /* entry idx, value */ 30, VALUE_OPT_PSKKEY, + /* equiv idx, value */ 30, VALUE_OPT_PSKKEY, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PSKKEY_FLAGS, 0, @@ -935,8 +958,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PSKKEY_DESC, PSKKEY_NAME, PSKKEY_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 30, VALUE_OPT_PORT, - /* equiv idx, value */ 30, VALUE_OPT_PORT, + { /* entry idx, value */ 31, VALUE_OPT_PORT, + /* equiv idx, value */ 31, VALUE_OPT_PORT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PORT_FLAGS, 0, @@ -947,8 +970,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PORT_DESC, PORT_NAME, PORT_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 31, VALUE_OPT_INSECURE, - /* equiv idx, value */ 31, VALUE_OPT_INSECURE, + { /* entry idx, value */ 32, VALUE_OPT_INSECURE, + /* equiv idx, value */ 32, VALUE_OPT_INSECURE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ INSECURE_FLAGS, 0, @@ -959,8 +982,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ INSECURE_DESC, INSECURE_NAME, INSECURE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 32, VALUE_OPT_BENCHMARK_CIPHERS, - /* equiv idx, value */ 32, 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, @@ -971,8 +994,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 */ 33, VALUE_OPT_BENCHMARK_SOFT_CIPHERS, - /* equiv idx, value */ 33, 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, @@ -983,8 +1006,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 */ 34, VALUE_OPT_BENCHMARK_TLS_KX, - /* equiv idx, value */ 34, 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, @@ -995,8 +1018,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 */ 35, VALUE_OPT_BENCHMARK_TLS_CIPHERS, - /* equiv idx, value */ 35, 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, @@ -1007,8 +1030,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 */ 36, VALUE_OPT_LIST, - /* equiv idx, value */ 36, 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, @@ -1063,14 +1086,14 @@ static tOptDesc optDesc[OPTION_CT] = { * * Define the gnutls-cli Option Environment */ -#define zPROGNAME (gnutls_cli_opt_strs+3060) -#define zUsageTitle (gnutls_cli_opt_strs+3071) +#define zPROGNAME (gnutls_cli_opt_strs+3107) +#define zUsageTitle (gnutls_cli_opt_strs+3118) #define zRcName NULL #define apzHomeList NULL -#define zBugsAddr (gnutls_cli_opt_strs+3184) -#define zExplain (gnutls_cli_opt_strs+3203) -#define zDetail (gnutls_cli_opt_strs+3206) -#define zFullVersion (gnutls_cli_opt_strs+3390) +#define zBugsAddr (gnutls_cli_opt_strs+3231) +#define zExplain (gnutls_cli_opt_strs+3250) +#define zDetail (gnutls_cli_opt_strs+3253) +#define zFullVersion (gnutls_cli_opt_strs+3437) /* extracted from optcode.tlib near line 350 */ #if defined(ENABLE_NLS) @@ -1084,7 +1107,7 @@ static tOptDesc optDesc[OPTION_CT] = { #define gnutls_cli_full_usage (NULL) -#define gnutls_cli_short_usage (gnutls_cli_opt_strs+3411) +#define gnutls_cli_short_usage (gnutls_cli_opt_strs+3458) #endif /* not defined __doxygen__ */ @@ -1362,7 +1385,7 @@ tOptions gnutls_cliOptions = { NO_EQUIVALENT, /* '-#' option index */ NO_EQUIVALENT /* index of default opt */ }, - 40 /* full option count */, 37 /* user option count */, + 41 /* full option count */, 38 /* user option count */, gnutls_cli_full_usage, gnutls_cli_short_usage, NULL, NULL, PKGDATADIR, gnutls_cli_packager_info diff --git a/src/cli-args.h b/src/cli-args.h index e8c9dacd5b..b738248b2f 100644 --- a/src/cli-args.h +++ b/src/cli-args.h @@ -2,7 +2,7 @@ * * DO NOT EDIT THIS FILE (cli-args.h) * - * It has been AutoGen-ed June 6, 2012 at 09:09:25 PM by AutoGen 5.16 + * It has been AutoGen-ed August 30, 2012 at 09:58:04 PM by AutoGen 5.16 * From the definitions cli-args.def * and the template file options * @@ -72,44 +72,45 @@ typedef enum { INDEX_OPT_TOFU = 2, INDEX_OPT_OCSP = 3, INDEX_OPT_RESUME = 4, - INDEX_OPT_REHANDSHAKE = 5, - INDEX_OPT_NOTICKET = 6, - INDEX_OPT_STARTTLS = 7, - INDEX_OPT_UDP = 8, - INDEX_OPT_MTU = 9, - INDEX_OPT_CRLF = 10, - INDEX_OPT_X509FMTDER = 11, - INDEX_OPT_FINGERPRINT = 12, - INDEX_OPT_DISABLE_EXTENSIONS = 13, - INDEX_OPT_PRINT_CERT = 14, - INDEX_OPT_RECORDSIZE = 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_BENCHMARK_CIPHERS = 32, - INDEX_OPT_BENCHMARK_SOFT_CIPHERS = 33, - INDEX_OPT_BENCHMARK_TLS_KX = 34, - INDEX_OPT_BENCHMARK_TLS_CIPHERS = 35, - INDEX_OPT_LIST = 36, - INDEX_OPT_VERSION = 37, - INDEX_OPT_HELP = 38, - INDEX_OPT_MORE_HELP = 39 + INDEX_OPT_HEARTBEAT = 5, + INDEX_OPT_REHANDSHAKE = 6, + INDEX_OPT_NOTICKET = 7, + INDEX_OPT_STARTTLS = 8, + INDEX_OPT_UDP = 9, + INDEX_OPT_MTU = 10, + INDEX_OPT_CRLF = 11, + INDEX_OPT_X509FMTDER = 12, + INDEX_OPT_FINGERPRINT = 13, + INDEX_OPT_DISABLE_EXTENSIONS = 14, + INDEX_OPT_PRINT_CERT = 15, + INDEX_OPT_RECORDSIZE = 16, + INDEX_OPT_DH_BITS = 17, + INDEX_OPT_PRIORITY = 18, + INDEX_OPT_X509CAFILE = 19, + INDEX_OPT_X509CRLFILE = 20, + INDEX_OPT_PGPKEYFILE = 21, + INDEX_OPT_PGPKEYRING = 22, + INDEX_OPT_PGPCERTFILE = 23, + INDEX_OPT_X509KEYFILE = 24, + INDEX_OPT_X509CERTFILE = 25, + INDEX_OPT_PGPSUBKEY = 26, + INDEX_OPT_SRPUSERNAME = 27, + INDEX_OPT_SRPPASSWD = 28, + INDEX_OPT_PSKUSERNAME = 29, + INDEX_OPT_PSKKEY = 30, + INDEX_OPT_PORT = 31, + INDEX_OPT_INSECURE = 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_VERSION = 38, + INDEX_OPT_HELP = 39, + INDEX_OPT_MORE_HELP = 40 } teOptIndex; -#define OPTION_CT 40 +#define OPTION_CT 41 #define GNUTLS_CLI_VERSION "@VERSION@" #define GNUTLS_CLI_FULL_VERSION "gnutls-cli @VERSION@" @@ -154,43 +155,44 @@ typedef enum { #define VALUE_OPT_TOFU 2 #define VALUE_OPT_OCSP 3 #define VALUE_OPT_RESUME 'r' +#define VALUE_OPT_HEARTBEAT 'b' #define VALUE_OPT_REHANDSHAKE 'e' -#define VALUE_OPT_NOTICKET 6 +#define VALUE_OPT_NOTICKET 7 #define VALUE_OPT_STARTTLS 's' #define VALUE_OPT_UDP 'u' -#define VALUE_OPT_MTU 9 +#define VALUE_OPT_MTU 10 #define OPT_VALUE_MTU (DESC(MTU).optArg.argInt) -#define VALUE_OPT_CRLF 10 -#define VALUE_OPT_X509FMTDER 11 +#define VALUE_OPT_CRLF 11 +#define VALUE_OPT_X509FMTDER 12 #define VALUE_OPT_FINGERPRINT 'f' -#define VALUE_OPT_DISABLE_EXTENSIONS 13 -#define VALUE_OPT_PRINT_CERT 14 -#define VALUE_OPT_RECORDSIZE 15 +#define VALUE_OPT_DISABLE_EXTENSIONS 14 +#define VALUE_OPT_PRINT_CERT 15 +#define VALUE_OPT_RECORDSIZE 16 #define OPT_VALUE_RECORDSIZE (DESC(RECORDSIZE).optArg.argInt) -#define VALUE_OPT_DH_BITS 16 +#define VALUE_OPT_DH_BITS 17 #define OPT_VALUE_DH_BITS (DESC(DH_BITS).optArg.argInt) -#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_PRIORITY 18 +#define VALUE_OPT_X509CAFILE 19 +#define VALUE_OPT_X509CRLFILE 20 +#define VALUE_OPT_PGPKEYFILE 21 +#define VALUE_OPT_PGPKEYRING 22 +#define VALUE_OPT_PGPCERTFILE 23 +#define VALUE_OPT_X509KEYFILE 24 +#define VALUE_OPT_X509CERTFILE 25 +#define VALUE_OPT_PGPSUBKEY 26 +#define VALUE_OPT_SRPUSERNAME 27 +#define VALUE_OPT_SRPPASSWD 28 +#define VALUE_OPT_PSKUSERNAME 29 +#define VALUE_OPT_PSKKEY 30 #define VALUE_OPT_PORT 'p' -#define VALUE_OPT_INSECURE 31 -#define VALUE_OPT_BENCHMARK_CIPHERS 32 -#define VALUE_OPT_BENCHMARK_SOFT_CIPHERS 129 -#define VALUE_OPT_BENCHMARK_TLS_KX 130 -#define VALUE_OPT_BENCHMARK_TLS_CIPHERS 131 +#define VALUE_OPT_INSECURE 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_HELP 'h' #define VALUE_OPT_MORE_HELP '!' diff --git a/src/cli.c b/src/cli.c index e2a1deb287..95180b7ba6 100644 --- a/src/cli.c +++ b/src/cli.c @@ -626,7 +626,7 @@ init_tls_session (const char *hostname) } if (HAVE_OPT(HEARTBEAT)) - fprintf (stderr, "Set HeartBeat policy: %d.\n", gnutls_heartbeat_allow (session)); + gnutls_heartbeat_enable (session, GNUTLS_HB_PEER_ALLOWED_TO_SEND); #ifdef ENABLE_SESSION_TICKET if (disable_extensions == 0 && !HAVE_OPT(NOTICKET)t) @@ -946,7 +946,6 @@ after_handshake: if (inp == IN_KEYBOARD) { - if (HAVE_OPT(HEARTBEAT)) fprintf (stderr, "*** HeartBeat: %zu\n", gnutls_heartbeat_ping_rnd (hd.session)); if ((bytes = read (fileno (stdin), buffer, MAX_BUF - 1)) <= 0) { if (hd.secure == 0) diff --git a/src/serv-args.c b/src/serv-args.c index 1d6bd62f39..f27ed0893b 100644 --- a/src/serv-args.c +++ b/src/serv-args.c @@ -2,7 +2,7 @@ * * DO NOT EDIT THIS FILE (serv-args.c) * - * It has been AutoGen-ed May 9, 2012 at 08:04:45 PM by AutoGen 5.16 + * It has been AutoGen-ed August 30, 2012 at 09:58:05 PM by AutoGen 5.16 * From the definitions serv-args.def * and the template file options * @@ -67,7 +67,7 @@ extern FILE * option_usage_fp; /* * gnutls-serv option static const strings */ -static char const gnutls_serv_opt_strs[2947] = +static char const gnutls_serv_opt_strs[2994] = /* 0 */ "gnutls-serv @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" @@ -117,82 +117,85 @@ static char const gnutls_serv_opt_strs[2947] = /* 1330 */ "Require a client certificate\0" /* 1359 */ "REQUIRE_CLIENT_CERT\0" /* 1379 */ "require-client-cert\0" -/* 1399 */ "Use DER format for certificates to read from\0" -/* 1444 */ "X509FMTDER\0" -/* 1455 */ "x509fmtder\0" -/* 1466 */ "Priorities string\0" -/* 1484 */ "PRIORITY\0" -/* 1493 */ "priority\0" -/* 1502 */ "DH params file to use\0" -/* 1524 */ "DHPARAMS\0" -/* 1533 */ "dhparams\0" -/* 1542 */ "Certificate file or PKCS #11 URL to use\0" -/* 1582 */ "X509CAFILE\0" -/* 1593 */ "x509cafile\0" -/* 1604 */ "CRL file to use\0" -/* 1620 */ "X509CRLFILE\0" -/* 1632 */ "x509crlfile\0" -/* 1644 */ "PGP Key file to use\0" -/* 1664 */ "PGPKEYFILE\0" -/* 1675 */ "pgpkeyfile\0" -/* 1686 */ "PGP Key ring file to use\0" -/* 1711 */ "PGPKEYRING\0" -/* 1722 */ "pgpkeyring\0" -/* 1733 */ "PGP Public Key (certificate) file to use\0" -/* 1774 */ "PGPCERTFILE\0" -/* 1786 */ "pgpcertfile\0" -/* 1798 */ "X.509 key file or PKCS #11 URL to use\0" -/* 1836 */ "X509KEYFILE\0" -/* 1848 */ "x509keyfile\0" -/* 1860 */ "X.509 Certificate file or PKCS #11 URL to use\0" -/* 1906 */ "X509CERTFILE\0" -/* 1919 */ "x509certfile\0" -/* 1932 */ "Alternative X.509 key file or PKCS #11 URL to use\0" -/* 1982 */ "X509DSAKEYFILE\0" -/* 1997 */ "x509dsakeyfile\0" -/* 2012 */ "Alternative X.509 Certificate file or PKCS #11 URL to use\0" -/* 2070 */ "X509DSACERTFILE\0" -/* 2086 */ "x509dsacertfile\0" -/* 2102 */ "X509ECCKEYFILE\0" -/* 2117 */ "x509ecckeyfile\0" -/* 2132 */ "X509ECCCERTFILE\0" -/* 2148 */ "x509ecccertfile\0" -/* 2164 */ "PGP subkey to use (hex or auto)\0" -/* 2196 */ "PGPSUBKEY\0" -/* 2206 */ "pgpsubkey\0" -/* 2216 */ "SRP password file to use\0" -/* 2241 */ "SRPPASSWD\0" -/* 2251 */ "srppasswd\0" -/* 2261 */ "SRP password configuration file to use\0" -/* 2300 */ "SRPPASSWDCONF\0" -/* 2314 */ "srppasswdconf\0" -/* 2328 */ "PSK password file to use\0" -/* 2353 */ "PSKPASSWD\0" -/* 2363 */ "pskpasswd\0" -/* 2373 */ "PSK identity hint to use\0" -/* 2398 */ "PSKHINT\0" -/* 2406 */ "pskhint\0" -/* 2414 */ "The port to connect to\0" -/* 2437 */ "PORT\0" -/* 2442 */ "port\0" -/* 2447 */ "Print a list of the supported algorithms and modes\0" -/* 2498 */ "LIST\0" -/* 2503 */ "list\0" -/* 2508 */ "Display extended usage information and exit\0" -/* 2552 */ "help\0" -/* 2557 */ "Extended usage information passed thru pager\0" -/* 2602 */ "more-help\0" -/* 2612 */ "Output version information and exit\0" -/* 2648 */ "version\0" -/* 2656 */ "GNUTLS_SERV\0" -/* 2668 */ "gnutls-serv - GnuTLS server - Ver. @VERSION@\n" +/* 1399 */ "Activate heartbeat support\0" +/* 1426 */ "HEARTBEAT\0" +/* 1436 */ "heartbeat\0" +/* 1446 */ "Use DER format for certificates to read from\0" +/* 1491 */ "X509FMTDER\0" +/* 1502 */ "x509fmtder\0" +/* 1513 */ "Priorities string\0" +/* 1531 */ "PRIORITY\0" +/* 1540 */ "priority\0" +/* 1549 */ "DH params file to use\0" +/* 1571 */ "DHPARAMS\0" +/* 1580 */ "dhparams\0" +/* 1589 */ "Certificate file or PKCS #11 URL to use\0" +/* 1629 */ "X509CAFILE\0" +/* 1640 */ "x509cafile\0" +/* 1651 */ "CRL file to use\0" +/* 1667 */ "X509CRLFILE\0" +/* 1679 */ "x509crlfile\0" +/* 1691 */ "PGP Key file to use\0" +/* 1711 */ "PGPKEYFILE\0" +/* 1722 */ "pgpkeyfile\0" +/* 1733 */ "PGP Key ring file to use\0" +/* 1758 */ "PGPKEYRING\0" +/* 1769 */ "pgpkeyring\0" +/* 1780 */ "PGP Public Key (certificate) file to use\0" +/* 1821 */ "PGPCERTFILE\0" +/* 1833 */ "pgpcertfile\0" +/* 1845 */ "X.509 key file or PKCS #11 URL to use\0" +/* 1883 */ "X509KEYFILE\0" +/* 1895 */ "x509keyfile\0" +/* 1907 */ "X.509 Certificate file or PKCS #11 URL to use\0" +/* 1953 */ "X509CERTFILE\0" +/* 1966 */ "x509certfile\0" +/* 1979 */ "Alternative X.509 key file or PKCS #11 URL to use\0" +/* 2029 */ "X509DSAKEYFILE\0" +/* 2044 */ "x509dsakeyfile\0" +/* 2059 */ "Alternative X.509 Certificate file or PKCS #11 URL to use\0" +/* 2117 */ "X509DSACERTFILE\0" +/* 2133 */ "x509dsacertfile\0" +/* 2149 */ "X509ECCKEYFILE\0" +/* 2164 */ "x509ecckeyfile\0" +/* 2179 */ "X509ECCCERTFILE\0" +/* 2195 */ "x509ecccertfile\0" +/* 2211 */ "PGP subkey to use (hex or auto)\0" +/* 2243 */ "PGPSUBKEY\0" +/* 2253 */ "pgpsubkey\0" +/* 2263 */ "SRP password file to use\0" +/* 2288 */ "SRPPASSWD\0" +/* 2298 */ "srppasswd\0" +/* 2308 */ "SRP password configuration file to use\0" +/* 2347 */ "SRPPASSWDCONF\0" +/* 2361 */ "srppasswdconf\0" +/* 2375 */ "PSK password file to use\0" +/* 2400 */ "PSKPASSWD\0" +/* 2410 */ "pskpasswd\0" +/* 2420 */ "PSK identity hint to use\0" +/* 2445 */ "PSKHINT\0" +/* 2453 */ "pskhint\0" +/* 2461 */ "The port to connect to\0" +/* 2484 */ "PORT\0" +/* 2489 */ "port\0" +/* 2494 */ "Print a list of the supported algorithms and modes\0" +/* 2545 */ "LIST\0" +/* 2550 */ "list\0" +/* 2555 */ "Display extended usage information and exit\0" +/* 2599 */ "help\0" +/* 2604 */ "Extended usage information passed thru pager\0" +/* 2649 */ "more-help\0" +/* 2659 */ "Output version information and exit\0" +/* 2695 */ "version\0" +/* 2703 */ "GNUTLS_SERV\0" +/* 2715 */ "gnutls-serv - GnuTLS server - Ver. @VERSION@\n" "USAGE: %s [ - [] | --[{=| }] ]...\n\0" -/* 2771 */ "bug-gnutls@gnu.org\0" -/* 2790 */ "\n\n\0" -/* 2793 */ "\n" +/* 2818 */ "bug-gnutls@gnu.org\0" +/* 2837 */ "\n\n\0" +/* 2840 */ "\n" "Server program that listens to incoming TLS connections.\n\0" -/* 2852 */ "gnutls-serv @VERSION@\0" -/* 2874 */ "Usage: gnutls-serv [options]\n" +/* 2899 */ "gnutls-serv @VERSION@\0" +/* 2921 */ "Usage: gnutls-serv [options]\n" "gnutls-serv --help for usage instructions.\n"; /* @@ -285,201 +288,209 @@ static char const gnutls_serv_opt_strs[2947] = #define REQUIRE_CLIENT_CERT_name (gnutls_serv_opt_strs+1379) #define REQUIRE_CLIENT_CERT_FLAGS (OPTST_DISABLED) +/* + * heartbeat option description: + */ +#define HEARTBEAT_DESC (gnutls_serv_opt_strs+1399) +#define HEARTBEAT_NAME (gnutls_serv_opt_strs+1426) +#define HEARTBEAT_name (gnutls_serv_opt_strs+1436) +#define HEARTBEAT_FLAGS (OPTST_DISABLED) + /* * x509fmtder option description: */ -#define X509FMTDER_DESC (gnutls_serv_opt_strs+1399) -#define X509FMTDER_NAME (gnutls_serv_opt_strs+1444) -#define X509FMTDER_name (gnutls_serv_opt_strs+1455) +#define X509FMTDER_DESC (gnutls_serv_opt_strs+1446) +#define X509FMTDER_NAME (gnutls_serv_opt_strs+1491) +#define X509FMTDER_name (gnutls_serv_opt_strs+1502) #define X509FMTDER_FLAGS (OPTST_DISABLED) /* * priority option description: */ -#define PRIORITY_DESC (gnutls_serv_opt_strs+1466) -#define PRIORITY_NAME (gnutls_serv_opt_strs+1484) -#define PRIORITY_name (gnutls_serv_opt_strs+1493) +#define PRIORITY_DESC (gnutls_serv_opt_strs+1513) +#define PRIORITY_NAME (gnutls_serv_opt_strs+1531) +#define PRIORITY_name (gnutls_serv_opt_strs+1540) #define PRIORITY_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * dhparams option description: */ -#define DHPARAMS_DESC (gnutls_serv_opt_strs+1502) -#define DHPARAMS_NAME (gnutls_serv_opt_strs+1524) -#define DHPARAMS_name (gnutls_serv_opt_strs+1533) +#define DHPARAMS_DESC (gnutls_serv_opt_strs+1549) +#define DHPARAMS_NAME (gnutls_serv_opt_strs+1571) +#define DHPARAMS_name (gnutls_serv_opt_strs+1580) #define DHPARAMS_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) /* * x509cafile option description: */ -#define X509CAFILE_DESC (gnutls_serv_opt_strs+1542) -#define X509CAFILE_NAME (gnutls_serv_opt_strs+1582) -#define X509CAFILE_name (gnutls_serv_opt_strs+1593) +#define X509CAFILE_DESC (gnutls_serv_opt_strs+1589) +#define X509CAFILE_NAME (gnutls_serv_opt_strs+1629) +#define X509CAFILE_name (gnutls_serv_opt_strs+1640) #define X509CAFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * x509crlfile option description: */ -#define X509CRLFILE_DESC (gnutls_serv_opt_strs+1604) -#define X509CRLFILE_NAME (gnutls_serv_opt_strs+1620) -#define X509CRLFILE_name (gnutls_serv_opt_strs+1632) +#define X509CRLFILE_DESC (gnutls_serv_opt_strs+1651) +#define X509CRLFILE_NAME (gnutls_serv_opt_strs+1667) +#define X509CRLFILE_name (gnutls_serv_opt_strs+1679) #define X509CRLFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) /* * pgpkeyfile option description: */ -#define PGPKEYFILE_DESC (gnutls_serv_opt_strs+1644) -#define PGPKEYFILE_NAME (gnutls_serv_opt_strs+1664) -#define PGPKEYFILE_name (gnutls_serv_opt_strs+1675) +#define PGPKEYFILE_DESC (gnutls_serv_opt_strs+1691) +#define PGPKEYFILE_NAME (gnutls_serv_opt_strs+1711) +#define PGPKEYFILE_name (gnutls_serv_opt_strs+1722) #define PGPKEYFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) /* * pgpkeyring option description: */ -#define PGPKEYRING_DESC (gnutls_serv_opt_strs+1686) -#define PGPKEYRING_NAME (gnutls_serv_opt_strs+1711) -#define PGPKEYRING_name (gnutls_serv_opt_strs+1722) +#define PGPKEYRING_DESC (gnutls_serv_opt_strs+1733) +#define PGPKEYRING_NAME (gnutls_serv_opt_strs+1758) +#define PGPKEYRING_name (gnutls_serv_opt_strs+1769) #define PGPKEYRING_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) /* * pgpcertfile option description: */ -#define PGPCERTFILE_DESC (gnutls_serv_opt_strs+1733) -#define PGPCERTFILE_NAME (gnutls_serv_opt_strs+1774) -#define PGPCERTFILE_name (gnutls_serv_opt_strs+1786) +#define PGPCERTFILE_DESC (gnutls_serv_opt_strs+1780) +#define PGPCERTFILE_NAME (gnutls_serv_opt_strs+1821) +#define PGPCERTFILE_name (gnutls_serv_opt_strs+1833) #define PGPCERTFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) /* * x509keyfile option description: */ -#define X509KEYFILE_DESC (gnutls_serv_opt_strs+1798) -#define X509KEYFILE_NAME (gnutls_serv_opt_strs+1836) -#define X509KEYFILE_name (gnutls_serv_opt_strs+1848) +#define X509KEYFILE_DESC (gnutls_serv_opt_strs+1845) +#define X509KEYFILE_NAME (gnutls_serv_opt_strs+1883) +#define X509KEYFILE_name (gnutls_serv_opt_strs+1895) #define X509KEYFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * x509certfile option description: */ -#define X509CERTFILE_DESC (gnutls_serv_opt_strs+1860) -#define X509CERTFILE_NAME (gnutls_serv_opt_strs+1906) -#define X509CERTFILE_name (gnutls_serv_opt_strs+1919) +#define X509CERTFILE_DESC (gnutls_serv_opt_strs+1907) +#define X509CERTFILE_NAME (gnutls_serv_opt_strs+1953) +#define X509CERTFILE_name (gnutls_serv_opt_strs+1966) #define X509CERTFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * x509dsakeyfile option description: */ -#define X509DSAKEYFILE_DESC (gnutls_serv_opt_strs+1932) -#define X509DSAKEYFILE_NAME (gnutls_serv_opt_strs+1982) -#define X509DSAKEYFILE_name (gnutls_serv_opt_strs+1997) +#define X509DSAKEYFILE_DESC (gnutls_serv_opt_strs+1979) +#define X509DSAKEYFILE_NAME (gnutls_serv_opt_strs+2029) +#define X509DSAKEYFILE_name (gnutls_serv_opt_strs+2044) #define X509DSAKEYFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * x509dsacertfile option description: */ -#define X509DSACERTFILE_DESC (gnutls_serv_opt_strs+2012) -#define X509DSACERTFILE_NAME (gnutls_serv_opt_strs+2070) -#define X509DSACERTFILE_name (gnutls_serv_opt_strs+2086) +#define X509DSACERTFILE_DESC (gnutls_serv_opt_strs+2059) +#define X509DSACERTFILE_NAME (gnutls_serv_opt_strs+2117) +#define X509DSACERTFILE_name (gnutls_serv_opt_strs+2133) #define X509DSACERTFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * x509ecckeyfile option description: */ -#define X509ECCKEYFILE_DESC (gnutls_serv_opt_strs+1932) -#define X509ECCKEYFILE_NAME (gnutls_serv_opt_strs+2102) -#define X509ECCKEYFILE_name (gnutls_serv_opt_strs+2117) +#define X509ECCKEYFILE_DESC (gnutls_serv_opt_strs+1979) +#define X509ECCKEYFILE_NAME (gnutls_serv_opt_strs+2149) +#define X509ECCKEYFILE_name (gnutls_serv_opt_strs+2164) #define X509ECCKEYFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * x509ecccertfile option description: */ -#define X509ECCCERTFILE_DESC (gnutls_serv_opt_strs+2012) -#define X509ECCCERTFILE_NAME (gnutls_serv_opt_strs+2132) -#define X509ECCCERTFILE_name (gnutls_serv_opt_strs+2148) +#define X509ECCCERTFILE_DESC (gnutls_serv_opt_strs+2059) +#define X509ECCCERTFILE_NAME (gnutls_serv_opt_strs+2179) +#define X509ECCCERTFILE_name (gnutls_serv_opt_strs+2195) #define X509ECCCERTFILE_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * pgpsubkey option description: */ -#define PGPSUBKEY_DESC (gnutls_serv_opt_strs+2164) -#define PGPSUBKEY_NAME (gnutls_serv_opt_strs+2196) -#define PGPSUBKEY_name (gnutls_serv_opt_strs+2206) +#define PGPSUBKEY_DESC (gnutls_serv_opt_strs+2211) +#define PGPSUBKEY_NAME (gnutls_serv_opt_strs+2243) +#define PGPSUBKEY_name (gnutls_serv_opt_strs+2253) #define PGPSUBKEY_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * srppasswd option description: */ -#define SRPPASSWD_DESC (gnutls_serv_opt_strs+2216) -#define SRPPASSWD_NAME (gnutls_serv_opt_strs+2241) -#define SRPPASSWD_name (gnutls_serv_opt_strs+2251) +#define SRPPASSWD_DESC (gnutls_serv_opt_strs+2263) +#define SRPPASSWD_NAME (gnutls_serv_opt_strs+2288) +#define SRPPASSWD_name (gnutls_serv_opt_strs+2298) #define SRPPASSWD_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) /* * srppasswdconf option description: */ -#define SRPPASSWDCONF_DESC (gnutls_serv_opt_strs+2261) -#define SRPPASSWDCONF_NAME (gnutls_serv_opt_strs+2300) -#define SRPPASSWDCONF_name (gnutls_serv_opt_strs+2314) +#define SRPPASSWDCONF_DESC (gnutls_serv_opt_strs+2308) +#define SRPPASSWDCONF_NAME (gnutls_serv_opt_strs+2347) +#define SRPPASSWDCONF_name (gnutls_serv_opt_strs+2361) #define SRPPASSWDCONF_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) /* * pskpasswd option description: */ -#define PSKPASSWD_DESC (gnutls_serv_opt_strs+2328) -#define PSKPASSWD_NAME (gnutls_serv_opt_strs+2353) -#define PSKPASSWD_name (gnutls_serv_opt_strs+2363) +#define PSKPASSWD_DESC (gnutls_serv_opt_strs+2375) +#define PSKPASSWD_NAME (gnutls_serv_opt_strs+2400) +#define PSKPASSWD_name (gnutls_serv_opt_strs+2410) #define PSKPASSWD_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_FILE)) /* * pskhint option description: */ -#define PSKHINT_DESC (gnutls_serv_opt_strs+2373) -#define PSKHINT_NAME (gnutls_serv_opt_strs+2398) -#define PSKHINT_name (gnutls_serv_opt_strs+2406) +#define PSKHINT_DESC (gnutls_serv_opt_strs+2420) +#define PSKHINT_NAME (gnutls_serv_opt_strs+2445) +#define PSKHINT_name (gnutls_serv_opt_strs+2453) #define PSKHINT_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)) /* * port option description: */ -#define PORT_DESC (gnutls_serv_opt_strs+2414) -#define PORT_NAME (gnutls_serv_opt_strs+2437) -#define PORT_name (gnutls_serv_opt_strs+2442) +#define PORT_DESC (gnutls_serv_opt_strs+2461) +#define PORT_NAME (gnutls_serv_opt_strs+2484) +#define PORT_name (gnutls_serv_opt_strs+2489) #define PORT_FLAGS (OPTST_DISABLED \ | OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC)) /* * list option description: */ -#define LIST_DESC (gnutls_serv_opt_strs+2447) -#define LIST_NAME (gnutls_serv_opt_strs+2498) -#define LIST_name (gnutls_serv_opt_strs+2503) +#define LIST_DESC (gnutls_serv_opt_strs+2494) +#define LIST_NAME (gnutls_serv_opt_strs+2545) +#define LIST_name (gnutls_serv_opt_strs+2550) #define LIST_FLAGS (OPTST_DISABLED) /* * Help/More_Help/Version option descriptions: */ -#define HELP_DESC (gnutls_serv_opt_strs+2508) -#define HELP_name (gnutls_serv_opt_strs+2552) +#define HELP_DESC (gnutls_serv_opt_strs+2555) +#define HELP_name (gnutls_serv_opt_strs+2599) #ifdef HAVE_WORKING_FORK -#define MORE_HELP_DESC (gnutls_serv_opt_strs+2557) -#define MORE_HELP_name (gnutls_serv_opt_strs+2602) +#define MORE_HELP_DESC (gnutls_serv_opt_strs+2604) +#define MORE_HELP_name (gnutls_serv_opt_strs+2649) #define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT) #else #define MORE_HELP_DESC NULL @@ -492,8 +503,8 @@ static char const gnutls_serv_opt_strs[2947] = # 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+2612) -#define VER_name (gnutls_serv_opt_strs+2648) +#define VER_DESC (gnutls_serv_opt_strs+2659) +#define VER_name (gnutls_serv_opt_strs+2695) /* * Declare option callback procedures */ @@ -648,8 +659,20 @@ 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 */ 11, VALUE_OPT_X509FMTDER, - /* equiv idx, value */ 11, VALUE_OPT_X509FMTDER, + { /* entry idx, value */ 11, VALUE_OPT_HEARTBEAT, + /* equiv idx, value */ 11, 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 */ 12, VALUE_OPT_X509FMTDER, + /* equiv idx, value */ 12, VALUE_OPT_X509FMTDER, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509FMTDER_FLAGS, 0, @@ -660,8 +683,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509FMTDER_DESC, X509FMTDER_NAME, X509FMTDER_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 12, VALUE_OPT_PRIORITY, - /* equiv idx, value */ 12, VALUE_OPT_PRIORITY, + { /* entry idx, value */ 13, VALUE_OPT_PRIORITY, + /* equiv idx, value */ 13, VALUE_OPT_PRIORITY, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PRIORITY_FLAGS, 0, @@ -672,8 +695,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PRIORITY_DESC, PRIORITY_NAME, PRIORITY_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 13, VALUE_OPT_DHPARAMS, - /* equiv idx, value */ 13, VALUE_OPT_DHPARAMS, + { /* entry idx, value */ 14, VALUE_OPT_DHPARAMS, + /* equiv idx, value */ 14, VALUE_OPT_DHPARAMS, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ DHPARAMS_FLAGS, 0, @@ -684,8 +707,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ DHPARAMS_DESC, DHPARAMS_NAME, DHPARAMS_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 14, VALUE_OPT_X509CAFILE, - /* equiv idx, value */ 14, VALUE_OPT_X509CAFILE, + { /* entry idx, value */ 15, VALUE_OPT_X509CAFILE, + /* equiv idx, value */ 15, VALUE_OPT_X509CAFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509CAFILE_FLAGS, 0, @@ -696,8 +719,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509CAFILE_DESC, X509CAFILE_NAME, X509CAFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 15, VALUE_OPT_X509CRLFILE, - /* equiv idx, value */ 15, VALUE_OPT_X509CRLFILE, + { /* entry idx, value */ 16, VALUE_OPT_X509CRLFILE, + /* equiv idx, value */ 16, VALUE_OPT_X509CRLFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509CRLFILE_FLAGS, 0, @@ -708,8 +731,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509CRLFILE_DESC, X509CRLFILE_NAME, X509CRLFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 16, VALUE_OPT_PGPKEYFILE, - /* equiv idx, value */ 16, VALUE_OPT_PGPKEYFILE, + { /* entry idx, value */ 17, VALUE_OPT_PGPKEYFILE, + /* equiv idx, value */ 17, VALUE_OPT_PGPKEYFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PGPKEYFILE_FLAGS, 0, @@ -720,8 +743,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PGPKEYFILE_DESC, PGPKEYFILE_NAME, PGPKEYFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 17, VALUE_OPT_PGPKEYRING, - /* equiv idx, value */ 17, VALUE_OPT_PGPKEYRING, + { /* entry idx, value */ 18, VALUE_OPT_PGPKEYRING, + /* equiv idx, value */ 18, VALUE_OPT_PGPKEYRING, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PGPKEYRING_FLAGS, 0, @@ -732,8 +755,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PGPKEYRING_DESC, PGPKEYRING_NAME, PGPKEYRING_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 18, VALUE_OPT_PGPCERTFILE, - /* equiv idx, value */ 18, VALUE_OPT_PGPCERTFILE, + { /* entry idx, value */ 19, VALUE_OPT_PGPCERTFILE, + /* equiv idx, value */ 19, VALUE_OPT_PGPCERTFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PGPCERTFILE_FLAGS, 0, @@ -744,8 +767,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PGPCERTFILE_DESC, PGPCERTFILE_NAME, PGPCERTFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 19, VALUE_OPT_X509KEYFILE, - /* equiv idx, value */ 19, VALUE_OPT_X509KEYFILE, + { /* entry idx, value */ 20, VALUE_OPT_X509KEYFILE, + /* equiv idx, value */ 20, VALUE_OPT_X509KEYFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509KEYFILE_FLAGS, 0, @@ -756,8 +779,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509KEYFILE_DESC, X509KEYFILE_NAME, X509KEYFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 20, VALUE_OPT_X509CERTFILE, - /* equiv idx, value */ 20, VALUE_OPT_X509CERTFILE, + { /* entry idx, value */ 21, VALUE_OPT_X509CERTFILE, + /* equiv idx, value */ 21, VALUE_OPT_X509CERTFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509CERTFILE_FLAGS, 0, @@ -768,8 +791,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509CERTFILE_DESC, X509CERTFILE_NAME, X509CERTFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 21, VALUE_OPT_X509DSAKEYFILE, - /* equiv idx, value */ 21, VALUE_OPT_X509DSAKEYFILE, + { /* entry idx, value */ 22, VALUE_OPT_X509DSAKEYFILE, + /* equiv idx, value */ 22, VALUE_OPT_X509DSAKEYFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509DSAKEYFILE_FLAGS, 0, @@ -780,8 +803,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509DSAKEYFILE_DESC, X509DSAKEYFILE_NAME, X509DSAKEYFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 22, VALUE_OPT_X509DSACERTFILE, - /* equiv idx, value */ 22, VALUE_OPT_X509DSACERTFILE, + { /* entry idx, value */ 23, VALUE_OPT_X509DSACERTFILE, + /* equiv idx, value */ 23, VALUE_OPT_X509DSACERTFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509DSACERTFILE_FLAGS, 0, @@ -792,8 +815,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509DSACERTFILE_DESC, X509DSACERTFILE_NAME, X509DSACERTFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 23, VALUE_OPT_X509ECCKEYFILE, - /* equiv idx, value */ 23, VALUE_OPT_X509ECCKEYFILE, + { /* entry idx, value */ 24, VALUE_OPT_X509ECCKEYFILE, + /* equiv idx, value */ 24, VALUE_OPT_X509ECCKEYFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509ECCKEYFILE_FLAGS, 0, @@ -804,8 +827,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509ECCKEYFILE_DESC, X509ECCKEYFILE_NAME, X509ECCKEYFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 24, VALUE_OPT_X509ECCCERTFILE, - /* equiv idx, value */ 24, VALUE_OPT_X509ECCCERTFILE, + { /* entry idx, value */ 25, VALUE_OPT_X509ECCCERTFILE, + /* equiv idx, value */ 25, VALUE_OPT_X509ECCCERTFILE, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ X509ECCCERTFILE_FLAGS, 0, @@ -816,8 +839,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ X509ECCCERTFILE_DESC, X509ECCCERTFILE_NAME, X509ECCCERTFILE_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 25, VALUE_OPT_PGPSUBKEY, - /* equiv idx, value */ 25, VALUE_OPT_PGPSUBKEY, + { /* entry idx, value */ 26, VALUE_OPT_PGPSUBKEY, + /* equiv idx, value */ 26, VALUE_OPT_PGPSUBKEY, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PGPSUBKEY_FLAGS, 0, @@ -828,8 +851,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PGPSUBKEY_DESC, PGPSUBKEY_NAME, PGPSUBKEY_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 26, VALUE_OPT_SRPPASSWD, - /* equiv idx, value */ 26, 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, @@ -840,8 +863,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ SRPPASSWD_DESC, SRPPASSWD_NAME, SRPPASSWD_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 27, VALUE_OPT_SRPPASSWDCONF, - /* equiv idx, value */ 27, VALUE_OPT_SRPPASSWDCONF, + { /* entry idx, value */ 28, VALUE_OPT_SRPPASSWDCONF, + /* equiv idx, value */ 28, VALUE_OPT_SRPPASSWDCONF, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ SRPPASSWDCONF_FLAGS, 0, @@ -852,8 +875,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ SRPPASSWDCONF_DESC, SRPPASSWDCONF_NAME, SRPPASSWDCONF_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 28, VALUE_OPT_PSKPASSWD, - /* equiv idx, value */ 28, VALUE_OPT_PSKPASSWD, + { /* entry idx, value */ 29, VALUE_OPT_PSKPASSWD, + /* equiv idx, value */ 29, VALUE_OPT_PSKPASSWD, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PSKPASSWD_FLAGS, 0, @@ -864,8 +887,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PSKPASSWD_DESC, PSKPASSWD_NAME, PSKPASSWD_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 29, VALUE_OPT_PSKHINT, - /* equiv idx, value */ 29, VALUE_OPT_PSKHINT, + { /* entry idx, value */ 30, VALUE_OPT_PSKHINT, + /* equiv idx, value */ 30, VALUE_OPT_PSKHINT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PSKHINT_FLAGS, 0, @@ -876,8 +899,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PSKHINT_DESC, PSKHINT_NAME, PSKHINT_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 30, VALUE_OPT_PORT, - /* equiv idx, value */ 30, VALUE_OPT_PORT, + { /* entry idx, value */ 31, VALUE_OPT_PORT, + /* equiv idx, value */ 31, VALUE_OPT_PORT, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ PORT_FLAGS, 0, @@ -888,8 +911,8 @@ static tOptDesc optDesc[OPTION_CT] = { /* desc, NAME, name */ PORT_DESC, PORT_NAME, PORT_name, /* disablement strs */ NULL, NULL }, - { /* entry idx, value */ 31, VALUE_OPT_LIST, - /* equiv idx, value */ 31, VALUE_OPT_LIST, + { /* entry idx, value */ 32, VALUE_OPT_LIST, + /* equiv idx, value */ 32, VALUE_OPT_LIST, /* equivalenced to */ NO_EQUIVALENT, /* min, max, act ct */ 0, 1, 0, /* opt state flags */ LIST_FLAGS, 0, @@ -944,14 +967,14 @@ static tOptDesc optDesc[OPTION_CT] = { * * Define the gnutls-serv Option Environment */ -#define zPROGNAME (gnutls_serv_opt_strs+2656) -#define zUsageTitle (gnutls_serv_opt_strs+2668) +#define zPROGNAME (gnutls_serv_opt_strs+2703) +#define zUsageTitle (gnutls_serv_opt_strs+2715) #define zRcName NULL #define apzHomeList NULL -#define zBugsAddr (gnutls_serv_opt_strs+2771) -#define zExplain (gnutls_serv_opt_strs+2790) -#define zDetail (gnutls_serv_opt_strs+2793) -#define zFullVersion (gnutls_serv_opt_strs+2852) +#define zBugsAddr (gnutls_serv_opt_strs+2818) +#define zExplain (gnutls_serv_opt_strs+2837) +#define zDetail (gnutls_serv_opt_strs+2840) +#define zFullVersion (gnutls_serv_opt_strs+2899) /* extracted from optcode.tlib near line 350 */ #if defined(ENABLE_NLS) @@ -965,7 +988,7 @@ static tOptDesc optDesc[OPTION_CT] = { #define gnutls_serv_full_usage (NULL) -#define gnutls_serv_short_usage (gnutls_serv_opt_strs+2874) +#define gnutls_serv_short_usage (gnutls_serv_opt_strs+2921) #endif /* not defined __doxygen__ */ @@ -1290,7 +1313,7 @@ tOptions gnutls_servOptions = { NO_EQUIVALENT, /* '-#' option index */ NO_EQUIVALENT /* index of default opt */ }, - 35 /* full option count */, 32 /* user option count */, + 36 /* full option count */, 33 /* user option count */, gnutls_serv_full_usage, gnutls_serv_short_usage, NULL, NULL, PKGDATADIR, gnutls_serv_packager_info diff --git a/src/serv-args.h b/src/serv-args.h index a9c930ed79..9c4c86e6c1 100644 --- a/src/serv-args.h +++ b/src/serv-args.h @@ -2,7 +2,7 @@ * * DO NOT EDIT THIS FILE (serv-args.h) * - * It has been AutoGen-ed May 9, 2012 at 08:04:44 PM by AutoGen 5.16 + * It has been AutoGen-ed August 30, 2012 at 09:58:05 PM by AutoGen 5.16 * From the definitions serv-args.def * and the template file options * @@ -78,33 +78,34 @@ typedef enum { INDEX_OPT_MTU = 8, INDEX_OPT_DISABLE_CLIENT_CERT = 9, INDEX_OPT_REQUIRE_CLIENT_CERT = 10, - INDEX_OPT_X509FMTDER = 11, - INDEX_OPT_PRIORITY = 12, - INDEX_OPT_DHPARAMS = 13, - INDEX_OPT_X509CAFILE = 14, - INDEX_OPT_X509CRLFILE = 15, - INDEX_OPT_PGPKEYFILE = 16, - INDEX_OPT_PGPKEYRING = 17, - INDEX_OPT_PGPCERTFILE = 18, - INDEX_OPT_X509KEYFILE = 19, - INDEX_OPT_X509CERTFILE = 20, - INDEX_OPT_X509DSAKEYFILE = 21, - INDEX_OPT_X509DSACERTFILE = 22, - INDEX_OPT_X509ECCKEYFILE = 23, - INDEX_OPT_X509ECCCERTFILE = 24, - INDEX_OPT_PGPSUBKEY = 25, - INDEX_OPT_SRPPASSWD = 26, - INDEX_OPT_SRPPASSWDCONF = 27, - INDEX_OPT_PSKPASSWD = 28, - INDEX_OPT_PSKHINT = 29, - INDEX_OPT_PORT = 30, - INDEX_OPT_LIST = 31, - INDEX_OPT_VERSION = 32, - INDEX_OPT_HELP = 33, - INDEX_OPT_MORE_HELP = 34 + INDEX_OPT_HEARTBEAT = 11, + INDEX_OPT_X509FMTDER = 12, + INDEX_OPT_PRIORITY = 13, + INDEX_OPT_DHPARAMS = 14, + INDEX_OPT_X509CAFILE = 15, + INDEX_OPT_X509CRLFILE = 16, + INDEX_OPT_PGPKEYFILE = 17, + INDEX_OPT_PGPKEYRING = 18, + INDEX_OPT_PGPCERTFILE = 19, + INDEX_OPT_X509KEYFILE = 20, + INDEX_OPT_X509CERTFILE = 21, + INDEX_OPT_X509DSAKEYFILE = 22, + INDEX_OPT_X509DSACERTFILE = 23, + INDEX_OPT_X509ECCKEYFILE = 24, + INDEX_OPT_X509ECCCERTFILE = 25, + INDEX_OPT_PGPSUBKEY = 26, + INDEX_OPT_SRPPASSWD = 27, + INDEX_OPT_SRPPASSWDCONF = 28, + INDEX_OPT_PSKPASSWD = 29, + INDEX_OPT_PSKHINT = 30, + INDEX_OPT_PORT = 31, + INDEX_OPT_LIST = 32, + INDEX_OPT_VERSION = 33, + INDEX_OPT_HELP = 34, + INDEX_OPT_MORE_HELP = 35 } teOptIndex; -#define OPTION_CT 35 +#define OPTION_CT 36 #define GNUTLS_SERV_VERSION "@VERSION@" #define GNUTLS_SERV_FULL_VERSION "gnutls-serv @VERSION@" @@ -157,25 +158,26 @@ typedef enum { #define OPT_VALUE_MTU (DESC(MTU).optArg.argInt) #define VALUE_OPT_DISABLE_CLIENT_CERT 'a' #define VALUE_OPT_REQUIRE_CLIENT_CERT 'r' -#define VALUE_OPT_X509FMTDER 11 -#define VALUE_OPT_PRIORITY 12 -#define VALUE_OPT_DHPARAMS 13 -#define VALUE_OPT_X509CAFILE 14 -#define VALUE_OPT_X509CRLFILE 15 -#define VALUE_OPT_PGPKEYFILE 16 -#define VALUE_OPT_PGPKEYRING 17 -#define VALUE_OPT_PGPCERTFILE 18 -#define VALUE_OPT_X509KEYFILE 19 -#define VALUE_OPT_X509CERTFILE 20 -#define VALUE_OPT_X509DSAKEYFILE 21 -#define VALUE_OPT_X509DSACERTFILE 22 -#define VALUE_OPT_X509ECCKEYFILE 23 -#define VALUE_OPT_X509ECCCERTFILE 24 -#define VALUE_OPT_PGPSUBKEY 25 -#define VALUE_OPT_SRPPASSWD 26 -#define VALUE_OPT_SRPPASSWDCONF 27 -#define VALUE_OPT_PSKPASSWD 28 -#define VALUE_OPT_PSKHINT 29 +#define VALUE_OPT_HEARTBEAT 'b' +#define VALUE_OPT_X509FMTDER 12 +#define VALUE_OPT_PRIORITY 13 +#define VALUE_OPT_DHPARAMS 14 +#define VALUE_OPT_X509CAFILE 15 +#define VALUE_OPT_X509CRLFILE 16 +#define VALUE_OPT_PGPKEYFILE 17 +#define VALUE_OPT_PGPKEYRING 18 +#define VALUE_OPT_PGPCERTFILE 19 +#define VALUE_OPT_X509KEYFILE 20 +#define VALUE_OPT_X509CERTFILE 21 +#define VALUE_OPT_X509DSAKEYFILE 22 +#define VALUE_OPT_X509DSACERTFILE 23 +#define VALUE_OPT_X509ECCKEYFILE 24 +#define VALUE_OPT_X509ECCCERTFILE 25 +#define VALUE_OPT_PGPSUBKEY 26 +#define VALUE_OPT_SRPPASSWD 27 +#define VALUE_OPT_SRPPASSWDCONF 28 +#define VALUE_OPT_PSKPASSWD 29 +#define VALUE_OPT_PSKHINT 30 #define VALUE_OPT_PORT 'p' #define OPT_VALUE_PORT (DESC(PORT).optArg.argInt) diff --git a/src/serv.c b/src/serv.c index 2ff60a3c5b..5b28f79a6f 100644 --- a/src/serv.c +++ b/src/serv.c @@ -387,8 +387,7 @@ initialize_session (int dtls) } if (HAVE_OPT (HEARTBEAT)) - fprintf (stderr, "Set HeartBeat policy: %d.\n", - gnutls_heartbeat_allow (session)); + gnutls_heartbeat_enable(session, GNUTLS_HB_PEER_ALLOWED_TO_SEND); return session; } diff --git a/src/tests.c b/src/tests.c index 48819ff240..aad046cf8b 100644 --- a/src/tests.c +++ b/src/tests.c @@ -961,10 +961,10 @@ test_heartbeat_extension (gnutls_session_t session) gnutls_credentials_set (session, GNUTLS_CRD_CERTIFICATE, xcred); gnutls_record_set_max_size (session, 4096); - gnutls_heartbeat_allow (session); + gnutls_heartbeat_enable (session, GNUTLS_HB_PEER_ALLOWED_TO_SEND); do_handshake (session); - switch (gnutls_heartbeat_enabled_remote (session)) { + switch (gnutls_heartbeat_allowed (session, 1)) { case 1: return TEST_SUCCEED; case 0: return TEST_FAILED; default: return TEST_UNSURE;