Remove all free'd sessions from retransmission
authorDavid Antler <david.a.antler@intel.com>
Mon, 11 Jul 2016 23:39:45 +0000 (16:39 -0700)
committerJon A. Cruz <jon@joncruz.org>
Wed, 13 Jul 2016 19:37:29 +0000 (19:37 +0000)
Change-Id: Ibeec77ccfab5200aa3787d29e1320ad22c654568
Signed-off-by: David Antler <david.a.antler@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/9297
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Dave Thaler <dthaler@microsoft.com>
Reviewed-by: Dmitriy Zhuravlev <d.zhuravlev@samsung.com>
Reviewed-by: Jon A. Cruz <jon@joncruz.org>
extlibs/tinydtls/dtls.c

index 1017346..cb6cb8c 100644 (file)
@@ -4583,6 +4583,7 @@ dtls_handle_message(dtls_context_t *ctx,
       if (peer) {
         (void)CALL(ctx, event, &peer->session,
               DTLS_ALERT_LEVEL_FATAL, DTLS_ALERT_HANDSHAKE_FAILURE);
+        dtls_clear_retransmission(ctx, peer);
         dtls_destroy_peer(ctx, peer, 1);
       }
 
@@ -4705,6 +4706,7 @@ dtls_free_context(dtls_context_t *ctx) {
 
   if (ctx->peers) {
     HASH_ITER(hh, ctx->peers, p, tmp) {
+      dtls_clear_retransmission(ctx, p);
       dtls_destroy_peer(ctx, p, 1);
     }
   }