]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
dtls: combined the total timeouts of DTLS and TLS handshake
authorNikos Mavrogiannopoulos <nmav@redhat.com>
Tue, 5 May 2015 12:35:45 +0000 (14:35 +0200)
committerNikos Mavrogiannopoulos <nmav@redhat.com>
Tue, 5 May 2015 12:41:00 +0000 (14:41 +0200)
That also makes the waits for packets more robust against blocking.

lib/gnutls_dtls.c
lib/gnutls_dtls.h
lib/gnutls_int.h
lib/gnutls_state.c

index 06ae8f67cfbb5ef4fcb69849ae5058974c6450ef..30eb6ac170a66d4eaeb79d17b6811f6b828ecae3 100644 (file)
@@ -290,7 +290,7 @@ int _dtls_transmit(gnutls_session_t session)
                    timespec_sub_ms(&now,
                                    &session->internals.dtls.
                                    handshake_start_time);
-               if (diff >= session->internals.dtls.total_timeout_ms) {
+               if (diff >= session->internals.handshake_timeout_ms) {
                        _gnutls_dtls_log("Session timeout: %u ms\n", diff);
                        ret = gnutls_assert_val(GNUTLS_E_TIMEDOUT);
                        goto end_flight;
@@ -559,7 +559,7 @@ void gnutls_dtls_set_timeouts(gnutls_session_t session,
                              unsigned int total_timeout)
 {
        session->internals.dtls.retrans_timeout_ms = retrans_timeout;
-       session->internals.dtls.total_timeout_ms = total_timeout;
+       session->internals.handshake_timeout_ms = total_timeout;
 }
 
 /**
index 244732822da1541cfcd2b243a0a56208aaeff859..ed8c09285916bc8b372ce0c8e8c8ac95e963319b 100644 (file)
@@ -42,7 +42,7 @@ void _dtls_reset_hsk_state(gnutls_session_t session);
   gettime(&_now); \
    \
   _diff = timespec_sub_ms(&_now, &session->internals.dtls.handshake_start_time); \
-  if (_diff > session->internals.dtls.total_timeout_ms) \
+  if (_diff > session->internals.handshake_timeout_ms) \
     { \
       _gnutls_dtls_log("Session timeout: %u ms\n", _diff); \
       return gnutls_assert_val(GNUTLS_E_TIMEDOUT); \
index 3e242b156d0732fe4dc90acb97def69ed2827c73..cdd0ee7c45a67097a097109385981113b06a1fa4 100644 (file)
@@ -727,8 +727,6 @@ typedef struct {
 
        /* the retransmission timeout in milliseconds */
        unsigned int retrans_timeout_ms;
-       /* the connection timeout in milliseconds */
-       unsigned int total_timeout_ms;
 
        unsigned int hsk_hello_verify_requests;
 
index dffa9832d6f9ac06bfcf3b9dfd6c9faae38a0f77..e3463d9b074ebc620e6963f178294de7fcbcf227 100644 (file)
@@ -392,8 +392,7 @@ int gnutls_init(gnutls_session_t * session, unsigned int flags)
                (*session)->internals.dtls.mtu = DTLS_DEFAULT_MTU;
                (*session)->internals.transport = GNUTLS_DGRAM;
 
-               (*session)->internals.dtls.retrans_timeout_ms = DTLS_RETRANS_TIMEOUT;
-               (*session)->internals.dtls.total_timeout_ms = 60000;
+               gnutls_dtls_set_timeouts(*session, DTLS_RETRANS_TIMEOUT, 60000);
        } else {
                (*session)->internals.transport = GNUTLS_STREAM;
        }