libcoap 4.3.5-develop-19cef11
coap_io.c File Reference

Network I/O functions. More...

+ Include dependency graph for coap_io.c:

Go to the source code of this file.

Data Structures

struct  in6_pktinfo
 
struct  in_pktinfo
 

Macros

#define MSG_NOSIGNAL   0
 
#define SOL_IP   IPPROTO_IP
 
#define COAP_SOL_IP   SOL_IP
 
#define iov_len_t   size_t
 
#define SIN6(A)   ((struct sockaddr_in6 *)(A))
 

Functions

void coap_socket_close (coap_socket_t *sock)
 Function interface to close off a socket. More...
 
void coap_update_io_timer (coap_context_t *context, coap_tick_t delay)
 Update when to continue with I/O processing, unless packets come in in the meantime. More...
 
ssize_t coap_socket_write (coap_socket_t *sock, const uint8_t *data, size_t data_len)
 Function interface for data stream sending off a socket. More...
 
ssize_t coap_socket_read (coap_socket_t *sock, uint8_t *data, size_t data_len)
 Function interface for data stream receiving off a socket. More...
 
ssize_t coap_socket_send (coap_socket_t *sock, coap_session_t *session, const uint8_t *data, size_t datalen)
 Function interface for data transmission. More...
 
void coap_packet_get_memmapped (coap_packet_t *packet, unsigned char **address, size_t *length)
 Given a packet, set msg and msg_len to an address and length of the packet's data in memory. More...
 
ssize_t coap_socket_recv (coap_socket_t *sock, coap_packet_t *packet)
 Function interface for reading data. More...
 
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 observable response. More...
 
unsigned int coap_io_prepare_epoll_lkd (coap_context_t *ctx, coap_tick_t now)
 Any now timed out delayed packet is transmitted, along with any packets associated with requested observable response. More...
 
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 the ctx to determine which are wanting any read, write, accept or connect I/O (COAP_SOCKET_WANT_xxx is set). More...
 
unsigned int coap_io_prepare_io_lkd (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 the ctx to determine which are wanting any read, write, accept or connect I/O (COAP_SOCKET_WANT_xxx is set). More...
 
COAP_API int coap_io_process (coap_context_t *ctx, uint32_t timeout_ms)
 The main I/O processing function. More...
 
int coap_io_process_lkd (coap_context_t *ctx, uint32_t timeout_ms)
 The main I/O processing function. More...
 
COAP_API int coap_io_process_with_fds (coap_context_t *ctx, uint32_t timeout_ms, int enfds, fd_set *ereadfds, fd_set *ewritefds, fd_set *eexceptfds)
 The main message processing loop with additional fds for internal select. More...
 
int coap_io_process_with_fds_lkd (coap_context_t *ctx, uint32_t timeout_ms, int enfds, fd_set *ereadfds, fd_set *ewritefds, fd_set *eexceptfds)
 The main message processing loop with additional fds for internal select. More...
 
COAP_API int coap_io_pending (coap_context_t *context)
 Check to see if there is any i/o pending for the context. More...
 
int coap_io_pending_lkd (coap_context_t *context)
 Check to see if there is any i/o pending for the context. More...
 
const char * coap_socket_format_errno (int error)
 
const char * coap_socket_strerror (void)
 

Detailed Description

Network I/O functions.

Definition in file coap_io.c.

Macro Definition Documentation

◆ COAP_SOL_IP

#define COAP_SOL_IP   SOL_IP

Definition at line 742 of file coap_io.c.

◆ iov_len_t

#define iov_len_t   size_t

Definition at line 771 of file coap_io.c.

◆ MSG_NOSIGNAL

#define MSG_NOSIGNAL   0

◆ SIN6

#define SIN6 (   A)    ((struct sockaddr_in6 *)(A))

Definition at line 1005 of file coap_io.c.

◆ SOL_IP

#define SOL_IP   IPPROTO_IP

Definition at line 737 of file coap_io.c.

Function Documentation

◆ coap_packet_get_memmapped()

void coap_packet_get_memmapped ( coap_packet_t packet,
unsigned char **  address,
size_t *  length 
)

Given a packet, set msg and msg_len to an address and length of the packet's data in memory.

Definition at line 1008 of file coap_io.c.

+ Here is the caller graph for this function:

◆ coap_socket_close()

void coap_socket_close ( coap_socket_t sock)

Function interface to close off a socket.

Parameters
sockSocket to close.

Definition at line 375 of file coap_io.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_socket_format_errno()

const char * coap_socket_format_errno ( int  error)

Definition at line 1896 of file coap_io.c.

+ Here is the caller graph for this function:

◆ coap_socket_read()

ssize_t coap_socket_read ( coap_socket_t sock,
uint8_t *  data,
size_t  data_len 
)

Function interface for data stream receiving off a socket.

Parameters
sockSocket to receive data on.
dataThe data to receive.
data_lenThe maximum length of data.
Returns
>=0 Number of bytes read. -1 Error error in errno).

Definition at line 677 of file coap_io.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_socket_recv()

ssize_t coap_socket_recv ( coap_socket_t sock,
coap_packet_t packet 
)

Function interface for reading data.

This function returns the number of bytes that have been read, or a value less than zero on error. In case of an error, *packet is set to NULL.

Parameters
sockSocket to read data from.
packetReceived packet metadata and payload. src and dst should be preset.
Returns
The number of bytes received on success, or a value less than zero on error.

Definition at line 1021 of file coap_io.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_socket_send()

ssize_t coap_socket_send ( coap_socket_t sock,
coap_session_t session,
const uint8_t *  data,
size_t  datalen 
)

Function interface for data transmission.

This function returns the number of bytes that have been transmitted, or a value less than zero on error.

Parameters
sockSocket to send data over.
sessionAddressing information for unconnected sockets, or NULL
dataThe data to send.
datalenThe actual length of data.
Returns
The number of bytes written on success, or a value less than zero on error.

Definition at line 824 of file coap_io.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_socket_strerror()

const char * coap_socket_strerror ( void  )

Definition at line 1900 of file coap_io.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_socket_write()

ssize_t coap_socket_write ( coap_socket_t sock,
const uint8_t *  data,
size_t  data_len 
)

Function interface for data stream sending off a socket.

Parameters
sockSocket to send data over.
dataThe data to send.
data_lenThe length of data.
Returns
>=0 Number of bytes sent. -1 Error error in errno).

Definition at line 618 of file coap_io.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_update_io_timer()

void coap_update_io_timer ( coap_context_t context,
coap_tick_t  delay 
)

Update when to continue with I/O processing, unless packets come in in the meantime.

Typically, this timeout triggers retransmissions.

Parameters
contextThe CoAP context.
delayThe time to delay before continuing with I/O processing.

Definition at line 504 of file coap_io.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function: