sock utility functions

sock utility function More...

Detailed Description

sock utility function

Modules

 SOCK utility functions compile configurations
 

Files

file  util.h
 sock utility function definitions
 

Functions

int sock_tl_ep_fmt (const struct _sock_tl_ep *endpoint, char *addr_str, uint16_t *port)
 Format common IP-based transport layer endpoint to string and port. More...
 
static int sock_tcp_ep_fmt (const sock_tcp_ep_t *endpoint, char *addr_str, uint16_t *port)
 Format TCP endpoint to string and port. More...
 
static int sock_udp_ep_fmt (const sock_udp_ep_t *endpoint, char *addr_str, uint16_t *port)
 Format UDP endpoint to string and port. More...
 
int sock_urlsplit (const char *url, char *hostport, char *urlpath)
 Split url to host:port and url path. More...
 
int sock_tl_str2ep (struct _sock_tl_ep *ep_out, const char *str)
 Convert string to common IP-based transport layer endpoint. More...
 
static int sock_tcp_str2ep (sock_tcp_ep_t *ep_out, const char *str)
 Convert string to TCP endpoint. More...
 
static int sock_udp_str2ep (sock_udp_ep_t *ep_out, const char *str)
 Convert string to UDP endpoint. More...
 
bool sock_tl_ep_equal (const struct _sock_tl_ep *a, const struct _sock_tl_ep *b)
 Compare the two given common IP-based transport layer endpoints. More...
 
static bool sock_tcp_ep_equal (const sock_tcp_ep_t *a, const sock_tcp_ep_t *b)
 Compare the two given TCP endpoints. More...
 
static bool sock_udp_ep_equal (const sock_udp_ep_t *a, const sock_udp_ep_t *b)
 Compare the two given UDP endpoints. More...
 

Function Documentation

◆ sock_tcp_ep_equal()

static bool sock_tcp_ep_equal ( const sock_tcp_ep_t a,
const sock_tcp_ep_t b 
)
inlinestatic

Compare the two given TCP endpoints.

The given endpoint identifiers are compared by checking their address family, their addresses, and their port value.

Parameters
[in]aEndpoint A
[in]bEndpoint B
Returns
true if given endpoint identifiers point to the same destination
false if given endpoint identifiers do not point to the same destination, or if the address family is unknown

Definition at line 182 of file util.h.

◆ sock_tcp_ep_fmt()

static int sock_tcp_ep_fmt ( const sock_tcp_ep_t endpoint,
char *  addr_str,
uint16_t *  port 
)
inlinestatic

Format TCP endpoint to string and port.

Parameters
[in]endpointendpoint to format
[out]addr_strwhere to write address as string
[out]portwhere to write port number as uint16_t
Returns
number of bytes written to addr_str on success
<0 otherwise

Definition at line 61 of file util.h.

◆ sock_tcp_str2ep()

static int sock_tcp_str2ep ( sock_tcp_ep_t ep_out,
const char *  str 
)
inlinestatic

Convert string to TCP endpoint.

Takes eg., "[2001:db8::1]:1234" and converts it into the corresponding UDP endpoint structure.

Parameters
[out]ep_outendpoint structure to fill
[in]strstring to read from
Returns
0 on success
<0 otherwise

Definition at line 131 of file util.h.

◆ sock_tl_ep_equal()

bool sock_tl_ep_equal ( const struct _sock_tl_ep a,
const struct _sock_tl_ep b 
)

Compare the two given common IP-based transport layer endpoints.

The given endpoint identifiers are compared by checking their address family, their addresses, and their port value.

Parameters
[in]aEndpoint A
[in]bEndpoint B
Returns
true if given endpoint identifiers point to the same destination
false if given endpoint identifiers do not point to the same destination, or if the address family is unknown

◆ sock_tl_ep_fmt()

int sock_tl_ep_fmt ( const struct _sock_tl_ep endpoint,
char *  addr_str,
uint16_t *  port 
)

Format common IP-based transport layer endpoint to string and port.

Parameters
[in]endpointendpoint to format
[out]addr_strwhere to write address as string
[out]portwhere to write port number as uint16_t
Returns
number of bytes written to addr_str on success
<0 otherwise

◆ sock_tl_str2ep()

int sock_tl_str2ep ( struct _sock_tl_ep ep_out,
const char *  str 
)

Convert string to common IP-based transport layer endpoint.

Takes eg., "[2001:db8::1]:1234" and converts it into the corresponding UDP endpoint structure.

Parameters
[out]ep_outendpoint structure to fill
[in]strstring to read from
Returns
0 on success
<0 otherwise

◆ sock_udp_ep_equal()

static bool sock_udp_ep_equal ( const sock_udp_ep_t a,
const sock_udp_ep_t b 
)
inlinestatic

Compare the two given UDP endpoints.

The given endpoint identifiers are compared by checking their address family, their addresses, and their port value.

Parameters
[in]aEndpoint A
[in]bEndpoint B
Returns
true if given endpoint identifiers point to the same destination
false if given endpoint identifiers do not point to the same destination, or if the address family is unknown

Definition at line 201 of file util.h.

◆ sock_udp_ep_fmt()

static int sock_udp_ep_fmt ( const sock_udp_ep_t endpoint,
char *  addr_str,
uint16_t *  port 
)
inlinestatic

Format UDP endpoint to string and port.

Parameters
[in]endpointendpoint to format
[out]addr_strwhere to write address as string
[out]portwhere to write port number as uint16_t
Returns
number of bytes written to addr_str on success
<0 otherwise

Definition at line 77 of file util.h.

◆ sock_udp_str2ep()

static int sock_udp_str2ep ( sock_udp_ep_t ep_out,
const char *  str 
)
inlinestatic

Convert string to UDP endpoint.

Takes eg., "[2001:db8::1]:1234" and converts it into the corresponding UDP endpoint structure.

Parameters
[out]ep_outendpoint structure to fill
[in]strstring to read from
Returns
0 on success
<0 otherwise

Definition at line 148 of file util.h.

◆ sock_urlsplit()

int sock_urlsplit ( const char *  url,
char *  hostport,
char *  urlpath 
)

Split url to host:port and url path.

Will split e.g., "https://host.name:1234/url/path" into "host.name:1234" and "/url/path".

Note
Caller has to make sure hostport and urlpath can hold the results! Make sure to provide space for CONFIG_SOCK_HOSTPORT_MAXLEN respectively CONFIG_SOCK_URLPATH_MAXLEN bytes, if pointers are not NULL. Scheme part of the URL is limited to CONFIG_SOCK_SCHEME_MAXLEN length.
Precondition
url != NULL
Parameters
[in]urlURL to split. Must not be NULL.
[out]hostportwhere to write host:port. Can be NULL.
[out]urlpathwhere to write url path. Can be NULL.
Returns
0 on success
<0 otherwise