libcoap 4.3.5-develop-19cef11
|
Internal network I/O functions. More...
#include "coap_internal.h"
#include "coap_layers_internal.h"
#include <sys/types.h>
#include "coap_address.h"
Go to the source code of this file.
Data Structures | |
struct | coap_socket_t |
struct | coap_packet_t |
Macros | |
#define | COAP_SOCKET_EMPTY 0x0000 |
coap_socket_flags_t values More... | |
#define | COAP_SOCKET_NOT_EMPTY 0x0001 |
the socket is not empty More... | |
#define | COAP_SOCKET_BOUND 0x0002 |
the socket is bound More... | |
#define | COAP_SOCKET_CONNECTED 0x0004 |
the socket is connected More... | |
#define | COAP_SOCKET_WANT_READ 0x0010 |
non blocking socket is waiting for reading More... | |
#define | COAP_SOCKET_WANT_WRITE 0x0020 |
non blocking socket is waiting for writing More... | |
#define | COAP_SOCKET_WANT_ACCEPT 0x0040 |
non blocking server socket is waiting for accept More... | |
#define | COAP_SOCKET_WANT_CONNECT 0x0080 |
non blocking client socket is waiting for connect More... | |
#define | COAP_SOCKET_CAN_READ 0x0100 |
non blocking socket can now read without blocking More... | |
#define | COAP_SOCKET_CAN_WRITE 0x0200 |
non blocking socket can now write without blocking More... | |
#define | COAP_SOCKET_CAN_ACCEPT 0x0400 |
non blocking server socket can now accept without blocking More... | |
#define | COAP_SOCKET_CAN_CONNECT 0x0800 |
non blocking client socket can now connect without blocking More... | |
#define | COAP_SOCKET_MULTICAST 0x1000 |
socket is used for multicast communication More... | |
Functions | |
coap_endpoint_t * | coap_malloc_endpoint (void) |
void | coap_mfree_endpoint (coap_endpoint_t *ep) |
const char * | coap_socket_format_errno (int error) |
int | coap_socket_connect_udp (coap_socket_t *sock, const coap_address_t *local_if, const coap_address_t *server, int default_port, coap_address_t *local_addr, coap_address_t *remote_addr) |
int | coap_socket_bind_udp (coap_socket_t *sock, const coap_address_t *listen_addr, coap_address_t *bound_addr) |
void | coap_socket_close (coap_socket_t *sock) |
Function interface to close off a socket. 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... | |
void | coap_epoll_ctl_add (coap_socket_t *sock, uint32_t events, const char *func) |
Epoll specific function to add the state of events that epoll is to track for the appropriate file descriptor. More... | |
void | coap_epoll_ctl_mod (coap_socket_t *sock, uint32_t events, const char *func) |
Epoll specific function to modify the state of events that epoll is tracking on the appropriate file descriptor. 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_send (coap_socket_t *sock, coap_session_t *session, const uint8_t *data, size_t datalen) |
Function interface for data transmission. More... | |
ssize_t | coap_socket_recv (coap_socket_t *sock, coap_packet_t *packet) |
Function interface for reading data. 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... | |
Internal network I/O functions.
Definition in file coap_io_internal.h.
#define COAP_SOCKET_BOUND 0x0002 |
the socket is bound
Definition at line 76 of file coap_io_internal.h.
#define COAP_SOCKET_CAN_ACCEPT 0x0400 |
non blocking server socket can now accept without blocking
Definition at line 84 of file coap_io_internal.h.
#define COAP_SOCKET_CAN_CONNECT 0x0800 |
non blocking client socket can now connect without blocking
Definition at line 85 of file coap_io_internal.h.
#define COAP_SOCKET_CAN_READ 0x0100 |
non blocking socket can now read without blocking
Definition at line 82 of file coap_io_internal.h.
#define COAP_SOCKET_CAN_WRITE 0x0200 |
non blocking socket can now write without blocking
Definition at line 83 of file coap_io_internal.h.
#define COAP_SOCKET_CONNECTED 0x0004 |
the socket is connected
Definition at line 77 of file coap_io_internal.h.
#define COAP_SOCKET_EMPTY 0x0000 |
#define COAP_SOCKET_MULTICAST 0x1000 |
socket is used for multicast communication
Definition at line 86 of file coap_io_internal.h.
#define COAP_SOCKET_NOT_EMPTY 0x0001 |
the socket is not empty
Definition at line 75 of file coap_io_internal.h.
#define COAP_SOCKET_WANT_ACCEPT 0x0040 |
non blocking server socket is waiting for accept
Definition at line 80 of file coap_io_internal.h.
#define COAP_SOCKET_WANT_CONNECT 0x0080 |
non blocking client socket is waiting for connect
Definition at line 81 of file coap_io_internal.h.
#define COAP_SOCKET_WANT_READ 0x0010 |
non blocking socket is waiting for reading
Definition at line 78 of file coap_io_internal.h.
#define COAP_SOCKET_WANT_WRITE 0x0020 |
non blocking socket is waiting for writing
Definition at line 79 of file coap_io_internal.h.
void coap_epoll_ctl_add | ( | coap_socket_t * | sock, |
uint32_t | events, | ||
const char * | func | ||
) |
Epoll specific function to add the state of events that epoll is to track for the appropriate file descriptor.
sock | Socket information. |
events | The Epoll events to update |
func | Function that this function was called from. |
void coap_epoll_ctl_mod | ( | coap_socket_t * | sock, |
uint32_t | events, | ||
const char * | func | ||
) |
Epoll specific function to modify the state of events that epoll is tracking on the appropriate file descriptor.
sock | Socket information. |
events | The Epoll events to update |
func | Function that this function was called from. |
coap_endpoint_t * coap_malloc_endpoint | ( | void | ) |
void coap_mfree_endpoint | ( | coap_endpoint_t * | ep | ) |
void coap_packet_get_memmapped | ( | coap_packet_t * | packet, |
unsigned char ** | address, | ||
size_t * | length | ||
) |
int coap_socket_bind_udp | ( | coap_socket_t * | sock, |
const coap_address_t * | listen_addr, | ||
coap_address_t * | bound_addr | ||
) |
void coap_socket_close | ( | coap_socket_t * | sock | ) |
int coap_socket_connect_udp | ( | coap_socket_t * | sock, |
const coap_address_t * | local_if, | ||
const coap_address_t * | server, | ||
int | default_port, | ||
coap_address_t * | local_addr, | ||
coap_address_t * | remote_addr | ||
) |
const char * coap_socket_format_errno | ( | int | error | ) |
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.
sock | Socket to receive data on. |
data | The data to receive. |
data_len | The maximum length of data . |
Definition at line 677 of file coap_io.c.
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.
sock | Socket to read data from. |
packet | Received packet metadata and payload. src and dst should be preset. |
Definition at line 1021 of file coap_io.c.
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.
sock | Socket to send data over. |
session | Addressing information for unconnected sockets, or NULL |
data | The data to send. |
datalen | The actual length of data . |
Definition at line 824 of file coap_io.c.
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.
sock | Socket to send data over. |
data | The data to send. |
data_len | The length of data . |
Definition at line 618 of file coap_io.c.
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.
context | The CoAP context. |
delay | The time to delay before continuing with I/O processing. |
Definition at line 504 of file coap_io.c.