libcoap 4.3.5rc2-develop-f409463


#include <coap3/coap.h>

void coap_clear_event_handler(coap_context_t *context);

unsigned int coap_context_get_csm_timeout(const coap_context_t *context);

void coap_context_set_csm_timeout(coap_context_t *context, unsigned int csm_timeout);

int coap_context_set_psk(coap_context_t *context, const char *hint, const uint8_t *key, size_t key_len);

int coap_encode_var_bytes(uint8_t *buffer, unsigned int value);

coap_session_t *coap_new_client_session_psk(coap_context_t *context, const coap_address_t *local_if, const coap_address_t *server, coap_proto_t proto, const char *identity, const uint8_t *key, unsigned key_len);

int coap_option_clrb(coap_opt_filter_t *filter, uint16_t type);

int coap_option_getb(coap_opt_filter_t *filter, uint16_t type);

int coap_option_setb(coap_opt_filter_t *filter, uint16_t type);

void coap_read(coap_context_t *context, coap_tick_t now);

void coap_register_handler(coap_resource_t *resource, coap_request_t method, coap_method_handler_t handler);

int coap_resource_set_dirty(coap_resource_t *resource, const coap_string_t *query);

int coap_run_once(coap_context_t *context, uint32_t timeout_ms);

void coap_set_event_handler(coap_context_t *context, coap_event_handler_t handler);

unsigned int coap_write(coap_context_t *context, coap_socket_t *sockets[], unsigned int max_sockets, unsigned int *num_sockets, coap_tick_t now);

void coap_set_app_data(coap_context_t *context, void *app_data);

void *coap_get_app_data(const coap_context_t *context);

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.


Several of the existing CoAP API functions have been deprecated. These are listed here, along with the functions that should now be used instead.


Function: coap_clear_event_handler()

The coap_clear_event_handler() function is replaced by coap_register_event_handler(3), using NULL for handler.

Function: coap_context_get_csm_timeout()

The coap_context_get_csm_timeout() function is replaced by coap_context_get_csm_timeout_ms(3) returning milli-secs instead of seconds.

Function: coap_context_set_csm_timeout()

The coap_context_set_csm_timeout() function is replaced by coap_context_set_csm_timeout_ms(3) by defining milli-secs instead of seconds.

Function: coap_context_set_psk()

The coap_context_set_psk() function is replaced by coap_context_set_psk2(3) which gives additional PSK configuration capability by the use of the coap_dtls_spsk_t structure.

Function: coap_encode_var_bytes()

The coap_encode_var_bytes() function is replaced by coap_encode_var_safe(3).

Function: coap_new_client_session_psk()

The coap_new_client_session_psk() function is replaced by coap_new_client_session_psk2(3) which gives additional PSK configuration capability by the use of the coap_dtls_cpsk_t structure.

Function: coap_option_clrb()

The coap_option_clrb() function is replaced by coap_option_filter_unset(3).

Function: coap_option_getb()

The coap_option_getb() function is replaced by coap_option_filter_get(3).

Function: coap_option_setb()

The coap_option_setb() function is replaced by coap_option_filter_set(3).

Function: coap_read()

The coap_read() function is replaced by coap_io_do_io(3).

Function: coap_register_handler()

The coap_register_handler() function is replaced by coap_register_request_handler(3).

Function: coap_resource_set_dirty()

The coap_resource_set_dirty() function is replaced by coap_resource_notify_observers(3).

Function: coap_run_once()

The coap_run_once() function is replaced by coap_io_process(3).

Function: coap_set_event_handler()

The coap_set_event_handler() function is replaced by coap_register_event_handler(3).

Function: coap_clear_event_handler()

The coap_write() function is replaced by coap_io_prepare_io(3).

Function: coap_set_app_data()

The coap_set_app_data() function is replaced by coap_context_set_app_data(3).

Function: coap_get_app_data()

The coap_get_app_data() function is replaced by coap_context_get_app_data(3).


coap_context_get_csm_timeout() returns the seconds to wait for a (TCP) CSM negotiation response from the peer.

coap_context_set_psk() returns 1 if success, 0 on failure.

coap_encode_var_bytes() returns either the length of bytes encoded (which can be 0 when encoding 0) or 0 on failure.

coap_new_client_session_psk() returns a new session if success, NULL on failure.

coap_option_clrb() returns 1 if bit was set, -1 otherwise.

coap_option_getb() returns 1 if bit was set, 0 if not.

coap_option_setb() returns 1 if bit was set, -1 otherwise.

coap_resource_set_dirty() returns 1 if success, 0 on failure.

coap_run_once() returns number of milliseconds spent in function or -1 if there was an error.

coap_write() returns the number of milli-seconds that need to be waited before the function should next be called.

coap_get_app_data() returns a previously defined pointer.



"RFC7252: The Constrained Application Protocol (CoAP)"

for further information.


Please raise an issue on GitHub at to report any bugs.

Please raise a Pull Request at for any fixes.


The libcoap project <>