sock utility function
More...
sock utility function
|
file | util.h |
| sock utility function definitions
|
|
|
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...
|
|
◆ sock_tcp_ep_equal()
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] | a | Endpoint A |
[in] | b | Endpoint 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] | endpoint | endpoint to format |
[out] | addr_str | where to write address as string |
[out] | port | where 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_out | endpoint structure to fill |
[in] | str | string to read from |
- Returns
- 0 on success
-
<0 otherwise
Definition at line 131 of file util.h.
◆ sock_tl_ep_equal()
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] | a | Endpoint A |
[in] | b | Endpoint 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] | endpoint | endpoint to format |
[out] | addr_str | where to write address as string |
[out] | port | where 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_out | endpoint structure to fill |
[in] | str | string to read from |
- Returns
- 0 on success
-
<0 otherwise
◆ sock_udp_ep_equal()
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] | a | Endpoint A |
[in] | b | Endpoint 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] | endpoint | endpoint to format |
[out] | addr_str | where to write address as string |
[out] | port | where 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_out | endpoint structure to fill |
[in] | str | string 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] | url | URL to split. Must not be NULL. |
[out] | hostport | where to write host:port. Can be NULL. |
[out] | urlpath | where to write url path. Can be NULL. |
- Returns
- 0 on success
-
<0 otherwise