From d0974cacd525abd571d44130985d0bca73383b43 Mon Sep 17 00:00:00 2001 From: jcmichelou Date: Fri, 23 Jun 2017 16:06:04 +0200 Subject: [PATCH] A TLS fatal alert shall always disconnect the session. --- src/coap_tinydtls.c | 2 +- src/net.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coap_tinydtls.c b/src/coap_tinydtls.c index 13bcc3f9..5589f465 100644 --- a/src/coap_tinydtls.c +++ b/src/coap_tinydtls.c @@ -112,7 +112,7 @@ dtls_event(struct dtls_context_t *dtls_context, if (event == COAP_EVENT_DTLS_CONNECTED) coap_session_connected(coap_session); - else if (event == DTLS_ALERT_CLOSE_NOTIFY) + else if (event == DTLS_ALERT_CLOSE_NOTIFY || COAP_EVENT_DTLS_ERROR) coap_session_disconnected(coap_session); return 0; diff --git a/src/net.c b/src/net.c index e4f3d7d0..a3b4cbdc 100644 --- a/src/net.c +++ b/src/net.c @@ -930,7 +930,7 @@ coap_handle_message_for_proto(coap_context_t *ctx, coap_session_t *session, coap if (session->proto == COAP_PROTO_DTLS) { if (session->type == COAP_SESSION_TYPE_HELLO) result = coap_dtls_hello(session, data, data_len); - else + else if (session->tls) result = coap_dtls_receive(session, data, data_len); } else if (session->proto == COAP_PROTO_UDP) { result = coap_handle_message(ctx, session, data, data_len);