]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
combined timeout values
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Thu, 20 Feb 2014 17:49:35 +0000 (18:49 +0100)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Thu, 20 Feb 2014 18:30:09 +0000 (19:30 +0100)
lib/gnutls_handshake.c
lib/gnutls_handshake.h

index ef45f1b6cf25ee3c0b90cbd6fdef74935160c358..49e8d8ae13aaf703cc55c36df81fe7d4f3325111 100644 (file)
@@ -2506,12 +2506,12 @@ int gnutls_handshake(gnutls_session_t session)
        if (STATE == STATE0) {
                /* first call */
                gettime(&session->internals.dtls.handshake_start_time);
+               if (session->internals.handshake_timeout_ms &&
+                   session->internals.handshake_endtime == 0)
+                           session->internals.handshake_endtime = session->internals.dtls.handshake_start_time.tv_sec +
+                               session->internals.handshake_timeout_ms / 1000;
        }
 
-       if (session->internals.handshake_timeout_ms &&
-           session->internals.handshake_endtime == 0)
-               session->internals.handshake_endtime = gnutls_time(0) +
-                   session->internals.handshake_timeout_ms / 1000;
 
        ret =
            _gnutls_epoch_get(session,
index d3555d48f51e2069c4dfe9a2123343928cab18ad..94bbf836b0dc2dbb856db6eb8899e803ed7f2714 100644 (file)
@@ -62,10 +62,12 @@ void _gnutls_handshake_hash_buffers_clear(gnutls_session_t session);
 inline static int handshake_remaining_time(gnutls_session_t session)
 {
        if (session->internals.handshake_endtime) {
-               time_t now = gnutls_time(0);
-               if (now < session->internals.handshake_endtime)
+               struct timespec now;
+               gettime(&now);
+
+               if (now.tv_sec < session->internals.handshake_endtime)
                        return (session->internals.handshake_endtime -
-                               now) * 1000;
+                               now.tv_sec) * 1000;
                else
                        return gnutls_assert_val(GNUTLS_E_TIMEDOUT);
        }