summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2014-10-09 18:15:01 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2014-10-09 18:16:45 +0200
commitd254d2f3595b1a5798283e96c9818fe61c22f2ce (patch)
tree1f632262b5ec1d6003e076e883c5ff3e0da0020d
parentffaef4df2a0ef93fb0a96615ff436b06da46ff1e (diff)
downloadgnutls-d254d2f3595b1a5798283e96c9818fe61c22f2ce.tar.gz
added internal variable to track handshake status
Conflicts: lib/gnutls_handshake.c
-rw-r--r--lib/gnutls_handshake.c2
-rw-r--r--lib/gnutls_int.h2
-rw-r--r--lib/gnutls_state.c1
3 files changed, 5 insertions, 0 deletions
diff --git a/lib/gnutls_handshake.c b/lib/gnutls_handshake.c
index 301641e808..40d399c167 100644
--- a/lib/gnutls_handshake.c
+++ b/lib/gnutls_handshake.c
@@ -2525,6 +2525,8 @@ int gnutls_handshake(gnutls_session_t session)
if (session->internals.priorities.protocol.algorithms == 0)
return gnutls_assert_val(GNUTLS_E_NO_PRIORITIES_WERE_SET);
+ session->internals.handshake_in_progress = 1;
+
gettime(&session->internals.dtls.handshake_start_time);
if (session->internals.handshake_timeout_ms &&
session->internals.handshake_endtime == 0)
diff --git a/lib/gnutls_int.h b/lib/gnutls_int.h
index deca5fe772..d9804caf8f 100644
--- a/lib/gnutls_int.h
+++ b/lib/gnutls_int.h
@@ -964,6 +964,8 @@ typedef struct {
/* In case of clients that don't handle GNUTLS_E_LARGE_PACKET, don't
* force them into an infinite loop */
unsigned handshake_large_loops;
+ /* should be non-zero when a handshake is in progress */
+ bool handshake_in_progress;
/* if set it means that the master key was set using
* gnutls_session_set_master() rather than being negotiated. */
diff --git a/lib/gnutls_state.c b/lib/gnutls_state.c
index 61655312f1..ef2a5bebc4 100644
--- a/lib/gnutls_state.c
+++ b/lib/gnutls_state.c
@@ -275,6 +275,7 @@ void _gnutls_handshake_internal_state_clear(gnutls_session_t session)
_gnutls_epoch_gc(session);
session->internals.handshake_endtime = 0;
+ session->internals.handshake_in_progress = 0;
}
/**