summaryrefslogtreecommitdiff
path: root/lib/gnutls_constate.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2011-02-19 16:57:44 +0100
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2011-02-19 19:08:35 +0100
commit089391da55d232908b9cdbba7f27b0ccfea26cca (patch)
treedbbdf207f712fb4c3b8975944ccea36c4f08bc35 /lib/gnutls_constate.c
parentb5c0c987913d93e0bb8414c4f48242ee8f350382 (diff)
downloadgnutls-089391da55d232908b9cdbba7f27b0ccfea26cca.tar.gz
Changes to allow DTLS server side to operate. Added a simple UDP server on gnutls-serv.
Server other cleanups.
Diffstat (limited to 'lib/gnutls_constate.c')
-rw-r--r--lib/gnutls_constate.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/gnutls_constate.c b/lib/gnutls_constate.c
index aadb110d66..9e25d32fde 100644
--- a/lib/gnutls_constate.c
+++ b/lib/gnutls_constate.c
@@ -677,6 +677,7 @@ epoch_get_slot (gnutls_session_t session, uint16_t epoch)
if (epoch_index >= MAX_EPOCH_INDEX)
{
+ _gnutls_dtls_log("Epoch %d out of range (idx: %d, max: %d)\n", (int)epoch, (int)epoch_index, MAX_EPOCH_INDEX);
gnutls_assert ();
return NULL;
}
@@ -746,9 +747,19 @@ epoch_alive (gnutls_session_t session, record_parameters_st * params)
const security_parameters_st *sp = &session->security_parameters;
/* DTLS will, in addition, need to check the epoch timeout value. */
- return (params->epoch == sp->epoch_read
- || params->epoch == sp->epoch_write
- || params->epoch == sp->epoch_next);
+ if (params->usage_cnt > 0)
+ return 1;
+
+ if (params->epoch == sp->epoch_read)
+ return 1;
+
+ if (params->epoch == sp->epoch_write)
+ return 1;
+
+ if (params->epoch == sp->epoch_next)
+ return 1;
+
+ return 0;
}
void