libcoap 4.3.5-develop-c63c8f7
Loading...
Searching...
No Matches
coap_net.h
Go to the documentation of this file.
1/*
2 * coap_net.h -- CoAP context interface
3 *
4 * Copyright (C) 2010-2026 Olaf Bergmann <bergmann@tzi.org>
5 *
6 * SPDX-License-Identifier: BSD-2-Clause
7 *
8 * This file is part of the CoAP library libcoap. Please see README for terms
9 * of use.
10 */
11
16
17#ifndef COAP_NET_H_
18#define COAP_NET_H_
19
20#if !defined(WITH_LWIP) && !defined(WITH_CONTIKI) && !defined(RIOT_VERSION) && !defined(_WIN32)
21#include <sys/select.h>
22#endif /* ! WITH_LWIP && ! WITH_CONTIKI && ! RIOT_VERSION && ! _WIN32 */
23
24#ifdef WITH_LWIP
25#include <lwip/ip_addr.h>
26#endif
27
28#if defined(__ZEPHYR__) && !defined(__unix__) && !defined(__linux__)
29#include <zephyr/net/socket_select.h>
30#define fd_set zsock_fd_set
31#endif
32
33#include "coap_io.h"
34#include "coap_dtls.h"
35#include "coap_event.h"
36#include "coap_pdu.h"
37#include "coap_session.h"
38#include "coap_debug.h"
39
40#ifdef __cplusplus
41extern "C" {
42#endif
43
50
55
68 const coap_pdu_t *sent,
69 const coap_pdu_t *received,
70 const coap_mid_t mid);
71
80typedef void (*coap_nack_handler_t)(coap_session_t *session,
81 const coap_pdu_t *sent,
82 const coap_nack_reason_t reason,
83 const coap_mid_t mid);
84
92typedef void (*coap_ping_handler_t)(coap_session_t *session,
93 const coap_pdu_t *received,
94 const coap_mid_t mid);
95
103typedef void (*coap_pong_handler_t)(coap_session_t *session,
104 const coap_pdu_t *received,
105 const coap_mid_t mid);
106
115typedef coap_resource_t *(*coap_resource_dynamic_create_t)(coap_session_t *session,
116 const coap_pdu_t *request);
117
134 coap_pdu_t *pdu,
135 coap_resource_t *resource,
136 coap_binary_t **body_data,
137 size_t length,
138 const uint8_t *data,
139 size_t offset,
140 size_t total);
141
151
162 coap_nack_handler_t handler);
163
172 coap_ping_handler_t handler);
173
182 coap_pong_handler_t handler);
183
199 coap_resource_dynamic_create_t create_handler,
200 uint32_t dynamic_max);
201
215
228 coap_option_num_t number);
229
234
249COAP_API int coap_context_set_psk(coap_context_t *context, const char *hint,
250 const uint8_t *key, size_t key_len);
251
262 coap_dtls_spsk_t *setup_data);
263
274 const coap_dtls_pki_t *setup_data);
275
288 const char *ca_file,
289 const char *ca_dir);
290
299
316void coap_context_set_keepalive(coap_context_t *context, unsigned int seconds);
317
326int coap_context_set_cid_tuple_change(coap_context_t *context, uint8_t every);
327
335 uint64_t rate_limit_ppm);
336
344 size_t max_body_size);
345
354 size_t max_bodies_ram);
355
364 size_t max_token_size);
365
374int coap_context_get_coap_fd(const coap_context_t *context);
375
386 unsigned int max_idle_sessions);
387
395unsigned int coap_context_get_max_idle_sessions(const coap_context_t *context);
396
406 unsigned int session_timeout);
407
425 unsigned int reconnect_time);
426
449 unsigned int reconnect_time,
450 uint8_t retry_count);
458unsigned int coap_context_get_session_timeout(const coap_context_t *context);
459
460/*
461 * Stop sending out observe subscriptons when calling coap_free_context().
462 *
463 * If this is not called, then 5.03 messages are sent out for every observe
464 * subscription when the context is freed off.
465 *
466 * @param context The coap_context_t object.
467 */
469
481 unsigned int csm_timeout);
482
493
504 unsigned int csm_timeout_ms);
505
513unsigned int coap_context_get_csm_timeout_ms(const coap_context_t *context);
514
522 uint32_t csm_max_message_size);
523
532
543 unsigned int max_handshake_sessions);
544
553
564
574
586COAP_DEPRECATED void coap_set_app_data(coap_context_t *context, void *data);
587
600
619 coap_pdu_code_t code,
620 coap_opt_filter_t *opts);
621
638 const coap_pdu_t *request,
639 coap_pdu_code_t code,
640 coap_opt_filter_t *opts);
641
654 coap_pdu_type_t type);
655
668
681
694
695#define coap_send_large(session, pdu) coap_send(session, pdu)
696
697/*
698 * Send a request PDU and wait for the response PDU.
699 *
700 * @param session The CoAP session.
701 * @param request_pdu The requesting PDU. If this PDU contains the Observe
702 * option, the unsolocited responses will get handled by the
703 * defined response handler. This PDU must be freed off by the
704 * caller after processing.
705 * @param response_pdu If there is a response, the response PDU is put here.
706 * This PDU must be freed off by the caller after processing.
707 * @param timeout_ms Positive maximum number of milliseconds to wait for response
708 * packet following the request. If there is a large block transfer
709 * this timeout is for between each request and response.
710 *
711 * @return 0 or +ve Time in function in ms after successful transfer (which can be
712 * bigger than timeout_ms).
713 * -1 Invalid timeout parameter
714 * -2 Failed to transmit PDU
715 * -3 Nack or Event handler invoked, cancelling request
716 * -4 coap_io_process returned error (fail to re-lock or select())
717 * -5 Response not received in the given time
718 * -6 Terminated by user
719 * -7 Client mode code not enabled
720 */
721COAP_API int coap_send_recv(coap_session_t *session, coap_pdu_t *request_pdu,
722 coap_pdu_t **response_pdu, uint32_t timeout_ms);
723
727void coap_send_recv_terminate(void);
728
740 coap_event_t event,
741 coap_session_t *session);
753
758void coap_ticks(coap_tick_t *);
759
771COAP_API int coap_join_mcast_group_intf(coap_context_t *ctx, const char *groupname,
772 const char *ifname);
773
774#define coap_join_mcast_group(ctx, groupname) \
775 (coap_join_mcast_group_intf(ctx, groupname, NULL))
776
790 const char *groupname,
791 const char *ifname);
792
804int coap_mcast_set_hops(coap_session_t *session, size_t hops);
805
814
825 void *data);
826
843COAP_API void *coap_context_set_app_data2(coap_context_t *context, void *data,
845
855void *coap_context_get_app_data(const coap_context_t *context);
856
858
865
866#define COAP_IO_WAIT 0
867#define COAP_IO_NO_WAIT ((uint32_t)-1)
868
897COAP_API int coap_io_process(coap_context_t *ctx, uint32_t timeout_ms);
898
899#if !defined(WITH_LWIP) && !defined(RIOT_VERSION) && !defined(WITH_CONTIKI)
927COAP_API int coap_io_process_with_fds(coap_context_t *ctx, uint32_t timeout_ms,
928 int nfds, fd_set *readfds, fd_set *writefds,
929 fd_set *exceptfds);
930#endif /* ! WITH_LWIP && ! RIOT_VERSION && ! WITH_CONTIKI */
931
945
980 coap_socket_t *sockets[],
981 unsigned int max_sockets,
982 unsigned int *num_sockets,
983 coap_tick_t now
984 );
985
1000
1021
1022struct epoll_event;
1023
1037COAP_API void coap_io_do_epoll(coap_context_t *ctx, struct epoll_event *events,
1038 size_t nevents);
1039
1048typedef void (*coap_io_process_thread_t)(void *arg);
1049
1074 coap_io_process_thread_t main_loop_code,
1075 void *main_loop_code_arg, uint32_t timeout_ms,
1076 uint32_t thread_count);
1077
1086
1098 uint32_t thread_count);
1099
1106
1118
1119/*
1120 * Get the current libcoap usage of file descriptors that are in a read or write pending state.
1121 *
1122 * @param context The current CoAP context.
1123 * @param read_fds Array to populate with file descriptors in the read pending state.
1124 * @param have_read_fds Updated with the number of fds found in read pending state.
1125 * @param max_read_fds Maximum size of read_fds[] array.
1126 * @param write_fds Array to populate with file descriptors in the write pending state.
1127 * @param have_write_fds Updated with the number of fds found in write pending state.
1128 * @param max_write_fds Maximum size of write_fds[] array.
1129 * @param rem_timeout_ms Remaining timeout time to next libcoap activity in milli-secs.
1130 *
1131 * @return @c 1 if successful, else @c 0 if error.
1132 */
1133COAP_API unsigned int coap_io_get_fds(coap_context_t *context, coap_fd_t read_fds[],
1134 unsigned int *have_read_fds,
1135 unsigned int max_read_fds,
1136 coap_fd_t write_fds[],
1137 unsigned int *have_write_fds,
1138 unsigned int max_write_fds,
1139 unsigned int *rem_timeout_ms);
1140
1151
1161
1163
1164#if defined(WITH_LWIP) || defined(WITH_LWIP_MAN_CHECK) || defined(__DOXYGEN__)
1171
1182
1194typedef int (*coap_lwip_input_wait_handler_t)(void *arg, uint32_t milli_secs);
1195
1207 void *input_arg);
1208
1210#endif /* WITH_LWIP || WITH_LWIP_MAN_CHECK || defined(__DOXYGEN__) */
1211
1231#define coap_run_once(ctx, timeout_ms) coap_io_process(ctx, timeout_ms)
1232
1251#define coap_write(ctx, sockets, max_sockets, num_sockets, now) \
1252 coap_io_prepare_io(ctx, sockets, max_sockets, num_sockets, now)
1253
1264#define coap_read(ctx, now) coap_io_do_io(ctx, now)
1265
1266/* Old definitions which may be hanging around in old code - be helpful! */
1267#define COAP_RUN_NONBLOCK COAP_RUN_NONBLOCK_deprecated_use_COAP_IO_NO_WAIT
1268#define COAP_RUN_BLOCK COAP_RUN_BLOCK_deprecated_use_COAP_IO_WAIT
1269
1270#ifdef __cplusplus
1271}
1272#endif
1273
1274#endif /* COAP_NET_H_ */
CoAP Logging support.
CoAP DTLS support.
Event handling.
struct coap_endpoint_t coap_endpoint_t
struct coap_resource_t coap_resource_t
Default network I/O functions.
uint16_t coap_socket_flags_t
Definition coap_io.h:55
coap_nack_reason_t
Definition coap_io.h:64
int coap_fd_t
Definition coap_io.h:49
#define COAP_API
uint16_t coap_option_num_t
Definition coap_option.h:37
Pre-defined constants that reflect defaults for CoAP.
Defines the application visible session information.
COAP_API int coap_io_process(coap_context_t *ctx, uint32_t timeout_ms)
The main I/O processing function.
COAP_API int coap_io_pending(coap_context_t *context)
Check to see if there is any i/o pending for the context.
Definition coap_io.c:893
int coap_io_process_configure_threads(coap_context_t *context, uint32_t thread_count)
Configure a defined number of threads to do the alternate coap_io_process() work with traffic load ba...
void coap_io_process_terminate_loop(void)
Terminate all the additional threads created by coap_io_process_loop() and break out of the main thre...
COAP_API int coap_io_process_loop(coap_context_t *context, coap_io_process_thread_t main_loop_code, void *main_loop_code_arg, uint32_t timeout_ms, uint32_t thread_count)
Do the coap_io_process() across thread_count threads.
COAP_API void coap_io_process_remove_threads(coap_context_t *context)
Release the coap_io_process() worker threads.
COAP_API unsigned int coap_io_get_fds(coap_context_t *context, coap_fd_t read_fds[], unsigned int *have_read_fds, unsigned int max_read_fds, coap_fd_t write_fds[], unsigned int *have_write_fds, unsigned int max_write_fds, unsigned int *rem_timeout_ms)
Definition coap_io.c:756
COAP_API unsigned int coap_io_prepare_io(coap_context_t *ctx, coap_socket_t *sockets[], unsigned int max_sockets, unsigned int *num_sockets, coap_tick_t now)
Iterates through all the coap_socket_t structures embedded in endpoints or sessions associated with t...
Definition coap_io.c:270
COAP_API void coap_socket_set_flags(coap_socket_t *socket, coap_socket_flags_t flags)
Set the libcoap internal flags for a socket.
Definition coap_io.c:979
COAP_API unsigned int coap_io_prepare_epoll(coap_context_t *ctx, coap_tick_t now)
Any now timed out delayed packet is transmitted, along with any packets associated with requested obs...
Definition coap_io.c:209
COAP_API coap_fd_t coap_socket_get_fd(coap_socket_t *socket)
Get the libcoap internal file descriptor for a socket.
Definition coap_io.c:964
COAP_API int coap_io_process_with_fds(coap_context_t *ctx, uint32_t timeout_ms, int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
The main message processing loop with additional fds for internal select.
void(* coap_io_process_thread_t)(void *arg)
Main thread coap_io_process_loop activity.
Definition coap_net.h:1048
COAP_API void coap_io_do_epoll(coap_context_t *ctx, struct epoll_event *events, size_t nevents)
Process all the epoll events.
Definition coap_net.c:3001
COAP_API void coap_io_do_io(coap_context_t *ctx, coap_tick_t now)
Processes any outstanding read, write, accept or connect I/O as indicated in the coap_socket_t struct...
Definition coap_net.c:2935
COAP_API coap_socket_flags_t coap_socket_get_flags(coap_socket_t *socket)
Get the libcoap internal flags for a socket.
Definition coap_io.c:974
uint64_t coap_tick_t
This data type represents internal timer ticks with COAP_TICKS_PER_SECOND resolution.
Definition coap_time.h:149
void coap_context_set_session_timeout(coap_context_t *context, unsigned int session_timeout)
Set the session timeout value.
Definition coap_net.c:589
unsigned int coap_context_get_max_handshake_sessions(const coap_context_t *context)
Get the session timeout value.
Definition coap_net.c:536
COAP_API int coap_join_mcast_group_intf(coap_context_t *ctx, const char *groupname, const char *ifname)
Function interface for joining a multicast group for listening for the currently defined endpoints th...
void(* coap_pong_handler_t)(coap_session_t *session, const coap_pdu_t *received, const coap_mid_t mid)
Received Pong handler that is used as callback in coap_context_t.
Definition coap_net.h:103
unsigned int coap_context_get_max_idle_sessions(const coap_context_t *context)
Get the maximum idle sessions count.
Definition coap_net.c:525
COAP_API int coap_send_recv(coap_session_t *session, coap_pdu_t *request_pdu, coap_pdu_t **response_pdu, uint32_t timeout_ms)
Definition coap_net.c:2325
coap_context_t * coap_new_context(const coap_address_t *listen_addr)
Creates a new coap_context_t object that will hold the CoAP stack status.
Definition coap_net.c:737
COAP_API coap_mid_t coap_send(coap_session_t *session, coap_pdu_t *pdu)
Sends a CoAP message to given peer.
Definition coap_net.c:1619
COAP_API int coap_context_set_pki(coap_context_t *context, const coap_dtls_pki_t *setup_data)
Set the context's default PKI information for a server.
void coap_mcast_per_resource(coap_context_t *context)
Function interface to enable processing mcast requests on a per resource basis.
coap_response_t(* coap_response_handler_t)(coap_session_t *session, const coap_pdu_t *sent, const coap_pdu_t *received, const coap_mid_t mid)
Response handler that is used as callback in coap_context_t.
Definition coap_net.h:67
COAP_API coap_mid_t coap_send_error(coap_session_t *session, const coap_pdu_t *request, coap_pdu_code_t code, coap_opt_filter_t *opts)
Sends an error response with code code for request request to dst.
Definition coap_net.c:1306
void coap_context_set_max_bodies_ram(coap_context_t *context, size_t max_bodies_ram)
Set the maximum supported total pending bodies that are being received.
Definition coap_net.c:491
void coap_context_rate_limit_ppm(coap_context_t *context, uint64_t rate_limit_ppm)
Set the ratelimit for packets per minute.
Definition coap_net.c:472
void coap_context_set_csm_max_message_size(coap_context_t *context, uint32_t csm_max_message_size)
Set the CSM max session size value.
Definition coap_net.c:571
COAP_DEPRECATED void coap_context_set_csm_timeout(coap_context_t *context, unsigned int csm_timeout)
Set the CSM timeout value.
Definition coap_net.c:543
void coap_send_recv_terminate(void)
Terminate any active coap_send_recv() sessions.
Definition coap_net.c:2320
coap_resource_t *(* coap_resource_dynamic_create_t)(coap_session_t *session, const coap_pdu_t *request)
Definition of resource dynamic creation handler function.
Definition coap_net.h:115
void coap_register_response_handler(coap_context_t *context, coap_response_handler_t handler)
Registers a new message handler that is called whenever a response is received.
Definition coap_net.c:5653
COAP_API void * coap_context_set_app_data2(coap_context_t *context, void *data, coap_app_data_free_callback_t callback)
Stores data with the given context, returning the previously stored value or NULL.
Definition coap_net.c:716
coap_pdu_t * coap_new_error_response(const coap_pdu_t *request, coap_pdu_code_t code, coap_opt_filter_t *opts)
Creates a new ACK PDU with specified error code.
Definition coap_net.c:3417
void coap_register_block_data_handler(coap_context_t *context, coap_block_data_handler_t handler)
Sets up a handler that is called for each received block during a block-wise transfer when COAP_BLOCK...
void coap_context_set_max_handshake_sessions(coap_context_t *context, unsigned int max_handshake_sessions)
Set the maximum number of sessions in (D)TLS handshake value.
Definition coap_net.c:530
int coap_context_get_coap_fd(const coap_context_t *context)
Get the libcoap internal file descriptor for using in an application's select() or returned as an eve...
Definition coap_net.c:629
void coap_register_dynamic_resource_handler(coap_context_t *context, coap_resource_dynamic_create_t create_handler, uint32_t dynamic_max)
Sets up a handler for calling when an unknown resource is requested.
Definition coap_net.c:5693
COAP_DEPRECATED void coap_set_app_data(coap_context_t *context, void *data)
Definition coap_net.c:833
int coap_mcast_set_hops(coap_session_t *session, size_t hops)
Function interface for defining the hop count (ttl) for sending multicast traffic.
coap_response_t
Definition coap_net.h:51
void(* coap_ping_handler_t)(coap_session_t *session, const coap_pdu_t *received, const coap_mid_t mid)
Received Ping handler that is used as callback in coap_context_t.
Definition coap_net.h:92
coap_response_t(* coap_block_data_handler_t)(coap_session_t *session, coap_pdu_t *pdu, coap_resource_t *resource, coap_binary_t **body_data, size_t length, const uint8_t *data, size_t offset, size_t total)
Definition of the block data handler function.
Definition coap_net.h:133
void coap_ticks(coap_tick_t *)
Returns the current value of an internal tick counter.
Definition coap_time.c:90
COAP_API void coap_free_context(coap_context_t *context)
CoAP stack context must be released with coap_free_context().
Definition coap_net.c:847
void(* coap_nack_handler_t)(coap_session_t *session, const coap_pdu_t *sent, const coap_nack_reason_t reason, const coap_mid_t mid)
Negative Acknowledge handler that is used as callback in coap_context_t.
Definition coap_net.h:80
void coap_context_set_shutdown_no_observe(coap_context_t *context)
Definition coap_net.c:620
void * coap_context_get_app_data(const coap_context_t *context)
Returns any application-specific data that has been stored with context using the function coap_conte...
Definition coap_net.c:710
COAP_API int coap_context_set_pki_root_cas(coap_context_t *context, const char *ca_file, const char *ca_dir)
Set the context's default Root CA information for a client or server.
Definition coap_net.c:415
COAP_DEPRECATED void coap_context_set_app_data(coap_context_t *context, void *data)
Stores data with the given context.
Definition coap_net.c:702
uint32_t coap_context_get_csm_max_message_size(const coap_context_t *context)
Get the CSM max session size value.
Definition coap_net.c:584
unsigned int coap_context_get_session_timeout(const coap_context_t *context)
Get the session timeout value.
Definition coap_net.c:615
COAP_API int coap_endpoint_join_mcast_group_intf(coap_endpoint_t *endpoint, const char *groupname, const char *ifname)
Function interface for joining a multicast group for listening on a single UDP endpoint.
COAP_API int coap_context_set_psk(coap_context_t *context, const char *hint, const uint8_t *key, size_t key_len)
Set the context's default PSK hint and/or key for a server.
COAP_API coap_mid_t coap_send_ack(coap_session_t *session, const coap_pdu_t *request)
Sends an ACK message with code 0 for the specified request to dst.
Definition coap_net.c:1229
unsigned int coap_context_get_csm_timeout_ms(const coap_context_t *context)
Get the CSM timeout value.
Definition coap_net.c:566
COAP_API uint16_t coap_new_message_id(coap_session_t *session)
Returns a new message id and updates session->tx_mid accordingly.
void coap_register_ping_handler(coap_context_t *context, coap_ping_handler_t handler)
Registers a new message handler that is called whenever a CoAP Ping message is received.
Definition coap_net.c:5681
COAP_API int coap_context_set_psk2(coap_context_t *context, coap_dtls_spsk_t *setup_data)
Set the context's default PSK hint and/or key for a server.
COAP_DEPRECATED void * coap_get_app_data(const coap_context_t *context)
Definition coap_net.c:841
int coap_context_set_cid_tuple_change(coap_context_t *context, uint8_t every)
Set the Connection ID client tuple frequency change for testing CIDs.
Definition coap_net.c:461
void coap_context_set_max_idle_sessions(coap_context_t *context, unsigned int max_idle_sessions)
Set the maximum idle sessions count.
Definition coap_net.c:519
COAP_API coap_mid_t coap_send_message_type(coap_session_t *session, const coap_pdu_t *request, coap_pdu_type_t type)
Helper function to create and send a message with type (usually ACK or RST).
Definition coap_net.c:1337
COAP_API coap_mid_t coap_send_rst(coap_session_t *session, const coap_pdu_t *request)
Sends an RST message with code 0 for the specified request to dst.
Definition coap_net.c:1212
void coap_context_set_session_reconnect_time2(coap_context_t *context, unsigned int reconnect_time, uint8_t retry_count)
Set the session reconnect delay time after a working client session has failed.
Definition coap_net.c:601
void coap_context_set_keepalive(coap_context_t *context, unsigned int seconds)
Set the context keepalive timer for sessions.
Definition coap_net.c:456
COAP_API int coap_can_exit(coap_context_t *context)
Returns 1 if there are no messages to send or to dispatch in the context's queues.
Definition coap_net.c:5477
COAP_API void coap_register_option(coap_context_t *context, coap_option_num_t number)
Registers the option number number with the given context object context.
Definition coap_net.c:5702
COAP_DEPRECATED unsigned int coap_context_get_csm_timeout(const coap_context_t *context)
Get the CSM timeout value.
Definition coap_net.c:550
COAP_API int coap_context_load_pki_trust_store(coap_context_t *context)
Load the hosts's default trusted CAs for a client or server.
Definition coap_net.c:437
void coap_context_set_session_reconnect_time(coap_context_t *context, unsigned int reconnect_time)
Set the session reconnect delay time after a working client session has failed.
Definition coap_net.c:595
void coap_register_pong_handler(coap_context_t *context, coap_pong_handler_t handler)
Registers a new message handler that is called whenever a CoAP Pong message is received.
Definition coap_net.c:5687
void coap_context_set_max_token_size(coap_context_t *context, size_t max_token_size)
Set the maximum token size (RFC8974).
Definition coap_net.c:508
void coap_context_set_max_body_size(coap_context_t *context, size_t max_body_size)
Set the maximum supported body size.
Definition coap_net.c:482
COAP_API int coap_handle_event(coap_context_t *context, coap_event_t event, coap_session_t *session)
Invokes the event handler of context for the given event and data.
Definition coap_net.c:5385
void coap_register_nack_handler(coap_context_t *context, coap_nack_handler_t handler)
Registers a new message handler that is called whenever a confirmable message (request or response) i...
Definition coap_net.c:5675
void coap_context_set_csm_timeout_ms(coap_context_t *context, unsigned int csm_timeout_ms)
Set the CSM timeout value.
Definition coap_net.c:556
@ COAP_RESPONSE_FAIL
Response not liked - send CoAP RST packet.
Definition coap_net.h:52
@ COAP_RESPONSE_OK
Response is fine.
Definition coap_net.h:53
coap_event_t
Scalar type to represent different events, e.g.
Definition coap_event.h:36
coap_log_t
Logging type.
Definition coap_debug.h:56
void coap_lwip_set_input_wait_handler(coap_context_t *context, coap_lwip_input_wait_handler_t handler, void *input_arg)
Set up a wait / timeout callback handler for use when the application calls coap_io_process().
int(* coap_lwip_input_wait_handler_t)(void *arg, uint32_t milli_secs)
LwIP callback handler that can be used to wait / timeout for the next input packet.
Definition coap_net.h:1194
void coap_lwip_dump_memory_pools(coap_log_t log_level)
Dump the current state of the LwIP memory pools.
int coap_mid_t
coap_mid_t is used to store the CoAP Message ID of a CoAP PDU.
Definition coap_pdu.h:184
coap_pdu_code_t
Set of codes available for a PDU.
Definition coap_pdu.h:248
coap_pdu_type_t
CoAP PDU message type definitions.
Definition coap_pdu.h:70
void(* coap_app_data_free_callback_t)(void *data)
Callback to free off the app data when the entry is being deleted / freed off.
#define COAP_DEPRECATED
Definition libcoap.h:66
Multi-purpose address abstraction.
CoAP binary data definition.
Definition coap_str.h:57
The CoAP stack's global state is stored in a coap_context_t object.
The structure used for defining the PKI setup data to be used.
Definition coap_dtls.h:317
The structure used for defining the Server PSK setup data to be used.
Definition coap_dtls.h:509
structure for CoAP PDUs
Abstraction of virtual session that can be attached to coap_context_t (client) or coap_endpoint_t (se...