mirror of https://gerrit.osmocom.org/libosmocore
socket: Introduce defines OSMO_SOCK_MULTIADDR_{PEER_STR,NAME}_MAXLEN
These values end up being used by API users of osmo_sock_multiaddr_get_name_buf() and osmo_multiaddr_ip_and_port_snprintf(). Change-Id: I18a0e1a652a3e8ef3e97154355eb1d07a14ef0bd
This commit is contained in:
parent
d8070f57d7
commit
a37921aed1
|
@ -16,9 +16,20 @@
|
|||
|
||||
#include <osmocom/core/defs.h>
|
||||
|
||||
/*! maximum number of local or remote addresses supported by an osmo_sock instance */
|
||||
#define OSMO_SOCK_MAX_ADDRS 32
|
||||
|
||||
/*! 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)
|
||||
|
||||
/*! maximum length of a multi-address socket peer (endpoint) name: (5.6.7.8|::9):987
|
||||
* char '(' + OSMO_STREAM_MAX_ADDRS - 1 addr separators + chars "):" + port buffer + char '\0'
|
||||
*/
|
||||
#define OSMO_SOCK_MULTIADDR_PEER_STR_MAXLEN (INET6_ADDRSTRLEN * OSMO_SOCK_MAX_ADDRS + INET6_ADDRSTRLEN + 2 + 6 + 1)
|
||||
/*! maximum length of a multia-address socket name ("r=(::2|1.2.3.4):123<->l=(5.6.7.8|::9):987") */
|
||||
#define OSMO_SOCK_MULTIADDR_NAME_MAXLEN (OSMO_SOCK_MULTIADDR_PEER_STR_MAXLEN + 7)
|
||||
|
||||
|
||||
struct sockaddr_in;
|
||||
struct sockaddr;
|
||||
struct osmo_fd;
|
||||
|
@ -108,9 +119,6 @@ char *osmo_sockaddr_to_str_c(void *ctx, const struct osmo_sockaddr *sockaddr);
|
|||
#define GET_OSMO_SOCK_F_PRIO(f) (((f) >> 16) & 0xff)
|
||||
|
||||
|
||||
/*! maximum number of local or remote addresses supported by an osmo_sock instance */
|
||||
#define OSMO_SOCK_MAX_ADDRS 32
|
||||
|
||||
int osmo_sock_init(uint16_t family, uint16_t type, uint8_t proto,
|
||||
const char *host, uint16_t port, unsigned int flags);
|
||||
|
||||
|
|
|
@ -2020,14 +2020,14 @@ char *osmo_sock_get_name(const void *ctx, int fd)
|
|||
|
||||
/*! Format multiple IP addresses and/or port number into a combined string buffer
|
||||
* \param[out] str Destination string buffer.
|
||||
* \param[in] str_len sizeof(str).
|
||||
* \param[in] str_len sizeof(str), usually OSMO_SOCK_MULTIADDR_PEER_STR_MAXLEN.
|
||||
* \param[out] ip Pointer to memory holding ip_cnt consecutive buffers of size ip_len.
|
||||
* \param[out] ip_cnt length ip array pointer. on return it contains the number of addresses found.
|
||||
* \param[in] ip_len length of each of the string buffer in the the ip array.
|
||||
* \param[out] port number (will be printed in when not NULL).
|
||||
* \return String length as returned by snprintf(), or negative on error.
|
||||
*
|
||||
* This API expectes an ip array as the one filled in by
|
||||
* This API expects an ip array as the one filled in by
|
||||
* osmo_sock_multiaddr_get_ip_and_port(), and hence it's a good companion for
|
||||
* that API.
|
||||
*/
|
||||
|
@ -2065,7 +2065,7 @@ int osmo_multiaddr_ip_and_port_snprintf(char *str, size_t str_len,
|
|||
/*! Get address/port information on socket in provided string buffer, like "r=1.2.3.4:5<->l=6.7.8.9:10".
|
||||
* This does not include braces like osmo_sock_get_name().
|
||||
* \param[out] str Destination string buffer.
|
||||
* \param[in] str_len sizeof(str).
|
||||
* \param[in] str_len sizeof(str), usually OSMO_SOCK_MULTIADDR_NAME_MAXLEN.
|
||||
* \param[in] fd File descriptor of socket.
|
||||
* \param[in] fd IPPROTO of the socket, eg: IPPROTO_SCTP.
|
||||
* \return String length as returned by snprintf(), or negative on error.
|
||||
|
|
Loading…
Reference in New Issue