diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2014-10-09 18:15:01 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2014-10-09 18:15:01 +0200 |
commit | 04c1a1ebdec16bb8af315a0dc3712d69b30e9880 (patch) | |
tree | 91168284431a99dcfdcea1cc9fc9abcea05d24d4 | |
parent | 33f2eee26ad6d3d7818edc1b70680ddb5f3052be (diff) | |
download | gnutls-04c1a1ebdec16bb8af315a0dc3712d69b30e9880.tar.gz |
added internal variable to track handshake status
-rw-r--r-- | lib/gnutls_handshake.c | 1 | ||||
-rw-r--r-- | lib/gnutls_int.h | 2 | ||||
-rw-r--r-- | lib/gnutls_state.c | 1 |
3 files changed, 4 insertions, 0 deletions
diff --git a/lib/gnutls_handshake.c b/lib/gnutls_handshake.c index 9ddcfbce3e..0d8b31225b 100644 --- a/lib/gnutls_handshake.c +++ b/lib/gnutls_handshake.c @@ -2535,6 +2535,7 @@ int gnutls_handshake(gnutls_session_t session) session->internals.handshake_timeout_ms = 0; } + 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 c6e541fe1e..d92be1aba0 100644 --- a/lib/gnutls_int.h +++ b/lib/gnutls_int.h @@ -967,6 +967,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 ee2cccbc7c..80b757e475 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; } /** |