mirror of https://gerrit.osmocom.org/libosmocore
socket: add define for socket name length
The function osmo_sock_get_name_buf() can be used to write a string representation to a user provided memory. Unfortunately the proper length for the user provided memory is not obvious. To make using osmo_sock_get_name_buf() more practical, add a define constant that defines the length of the required memory. Also use this define in socket.c. Change-Id: If8be8c2c0d4935da17ab13b2c2127b719ceefbcc
This commit is contained in:
parent
1bec3908c6
commit
64b51eb68b
|
@ -28,6 +28,8 @@ struct osmo_fd;
|
|||
#define OSMO_SOCK_F_NO_MCAST_ALL (1 << 4)
|
||||
/*! use SO_REUSEADDR on UDP ports (required for multicast) */
|
||||
#define OSMO_SOCK_F_UDP_REUSEADDR (1 << 5)
|
||||
/*! maximum length of a socket name ("r=1.2.3.4:123<->l=5.6.7.8:987") */
|
||||
#define OSMO_SOCK_NAME_MAXLEN (2 + INET6_ADDRSTRLEN + 1 + 5 + 3 + 2 + INET6_ADDRSTRLEN + 1 + 5 + 1)
|
||||
|
||||
int osmo_sock_init(uint16_t family, uint16_t type, uint8_t proto,
|
||||
const char *host, uint16_t port, unsigned int flags);
|
||||
|
|
|
@ -783,8 +783,7 @@ int osmo_sock_get_remote_ip_port(int fd, char *port, size_t len)
|
|||
*/
|
||||
char *osmo_sock_get_name(void *ctx, int fd)
|
||||
{
|
||||
/* "r=1.2.3.4:123<->l=5.6.7.8:987" */
|
||||
char str[2 + INET6_ADDRSTRLEN + 1 + 5 + 3 + 2 + INET6_ADDRSTRLEN + 1 + 5 + 1];
|
||||
char str[OSMO_SOCK_NAME_MAXLEN];
|
||||
int rc;
|
||||
rc = osmo_sock_get_name_buf(str, sizeof(str), fd);
|
||||
if (rc <= 0)
|
||||
|
@ -823,8 +822,7 @@ int osmo_sock_get_name_buf(char *str, size_t str_len, int fd)
|
|||
*/
|
||||
const char *osmo_sock_get_name2(int fd)
|
||||
{
|
||||
/* "r=1.2.3.4:123<->l=5.6.7.8:987" */
|
||||
static char str[2 + INET6_ADDRSTRLEN + 1 + 5 + 3 + 2 + INET6_ADDRSTRLEN + 1 + 5 + 1];
|
||||
static char str[OSMO_SOCK_NAME_MAXLEN];
|
||||
osmo_sock_get_name_buf(str, sizeof(str), fd);
|
||||
return str;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue