src/coap_gnutls.s: If a DTLS server session setup fails (invalid / missing certificate etc.) and the client has sent some more of the DTLS setup exchange packets before receiving the TLS alert packet closing things down, any subsequent new DTLS sessions will fail. Caused by the g_env environment getting partially polluted with information with the subsequent DTLS setup exchange packets. The primary fix is for coap_dtls_hello() is to clear out g_env if there is a ClientHello packet failure (error return from do_gnutls_handshake()) as well as if the packet is not of the form of a ClientHello, then it is simply ignored. (This may be what is being seen in #300)
libcoap: A C implementation of the Constrained Application Protocol (RFC 7252)
Copyright (C) 2010--2018 by Olaf Bergmann bergmann@tzi.org and others
ABOUT LIBCOAP
libcoap is a C implementation of a lightweight application-protocol for devices that are constrained their resources such as computing power, RF range, memory, bandwidth, or network packet sizes. This protocol, CoAP, is standardized by the IETF as RFC 7252. For further information related to CoAP, see http://coap.technology.
You might want to check out libcoap-minimal for usage examples.
PACKAGE CONTENTS
This directory contains a protocol parser and basic networking functions for platform with support for malloc() and BSD-style sockets. The examples directory contains a client and a server to demonstrate the use of this library.
LICENSE INFORMATION
This library is published as open-source software without any warranty of any kind. Use is permitted under the terms of the simplified BSD license. It includes public domain software. libcoap binaries may also include open-source software with their respective licensing terms. Please refer to LICENSE for further details.