coap_init, coap_startup, coap_cleanup − Work with CoAP initialization
#include <coap3/coap.h>
void coap_startup(void);
void coap_cleanup(void);
For specific (D)TLS library support, link with −lcoap−3−notls, −lcoap−3−gnutls, −lcoap−3−openssl, −lcoap−3−mbedtls, −lcoap−3−wolfssl or −lcoap−3−tinydtls. Otherwise, link with −lcoap−3 to get the default (D)TLS library support.
The CoAP libcoap logic needs to be initialized before there is any use of the libcoap public API. This is done by calling coap_startup().
Function: coap_startup()
The coap_startup() function must be called before any other coap_*() functions are called. It is used to initialize things like mutexes, random number gererators, clocks, TLS libraries etc.
NOTE: This should be called after any other lower layer is initialized. For example, for LwIP, lwip_init() must be called before coap_startup().
NOTE: After the inital call to coap_startup(), subsequent calls are ignored until coap_cleanup() is called.
Function: coap_cleanup()
The coap_cleanup() function is used to cleanup / free any information set up by the coap_startup() function and should be the last coap_*() function called. The only safe function that can be called after coap_cleanup() is coap_startup() to re−initialize the libcoap logic.
NOTE: Calling coap_cleanup() in one thread while continuing to use other coap_*() function calls in a different thread is not supported − even if they are using a different coap_context_t.
NOTE: All other libcoap cleanups should called prior to coap_cleanup(), e.g. coap_free_context(3).
See
"RFC7252: The Constrained Application Protocol (CoAP)"
for further information.
Please raise an issue on GitHub at https://github.com/obgm/libcoap/issues to report any bugs.
Please raise a Pull Request at https://github.com/obgm/libcoap/pulls for any fixes.
The libcoap project <libcoap−[email protected]>