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...
 
const char * sock_urlpath (const char *url)
 Returns a pointer to the path component in url. More...
 
int sock_tl_str2ep (struct _sock_tl_ep *ep_out, const char *str)
 Convert string to common IP-based transport layer endpoint. More...
 
int sock_tl_name2ep (struct _sock_tl_ep *ep_out, const char *str)
 Convert string to common IP-based transport layer endpoint If the sock_dns module is used, this will do a DNS lookup if str is not an IP address. More...
 
static int sock_tcp_str2ep (sock_tcp_ep_t *ep_out, const char *str)
 Convert string to TCP endpoint. More...
 
static int sock_tcp_name2ep (sock_tcp_ep_t *ep_out, const char *str)
 Convert string to TCP endpoint If the sock_dns module is used, this will do a DNS lookup if str is not an IP address. More...
 
static int sock_udp_str2ep (sock_udp_ep_t *ep_out, const char *str)
 Convert string to UDP endpoint. More...
 
static int sock_udp_name2ep (sock_udp_ep_t *ep_out, const char *str)
 Convert string to UDP endpoint If the sock_dns module is used, this will do a DNS lookup if str is not an IP address. 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 246 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_name2ep()

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

Convert string to TCP endpoint If the sock_dns module is used, this will do a DNS lookup if str is not an IP address.

Takes eg., "exampl.com:80" or "[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 176 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 157 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_name2ep()

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

Convert string to common IP-based transport layer endpoint If the sock_dns module is used, this will do a DNS lookup if str is not an IP address.

Takes eg., "riot-os.org:1234" and converts it into the corresponding endpoint structure.

Parameters
[out]ep_outendpoint structure to fill
[in]strstring to read from
Returns
0 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 265 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_name2ep()

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

Convert string to UDP endpoint If the sock_dns module is used, this will do a DNS lookup if str is not an IP address.

Takes eg., "exampl.com:80" or "[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 212 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 193 of file util.h.

◆ sock_urlpath()

const char* sock_urlpath ( const char *  url)

Returns a pointer to the path component in url.

Parameters
[in]urlURL to examine. Must not be NULL.
Returns
pointer to the start of the path component in url
NULL if url is invalid

◆ 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