hd-rum-translator: use get_sockaddr_str()

get_sockaddr_str is used also for create-port in the "dynamic" conference
mode, so this is perhaps better because the calls are symmetric.

Also it will allow eg. to add scope ID later to both create- and
delete-port in the single call.

get_replica_mod_name() is kept for the old/static use cases when
create-port is called explicitly or from an argument on command-line. Then
the address can be also the hostname (or a IP addresss in non-canonical
form) and it is up to the user to use the same host:addr representation.
This commit is contained in:
Martin Pulec
2024-11-25 13:59:15 +01:00
parent 0b27ea6e18
commit 16e647c65a
3 changed files with 9 additions and 13 deletions

View File

@@ -888,11 +888,9 @@ public:
log_msg(LOG_LEVEL_NOTICE, "Removing participant\n");
std::string msg = "delete-port ";
auto addr = reinterpret_cast<struct sockaddr *>(&it->addr);
char addr_str[128];
get_sockaddr_addr_str(addr, addr_str, sizeof(addr_str));
char *replica_name = get_replica_mod_name(addr_str, get_sockaddr_addr_port(addr));
msg += replica_name;
free(replica_name);
char replica_name[ADDR_STR_BUF_LEN];
msg += get_sockaddr_str(addr, replica_name,
sizeof replica_name);
std::swap(*it, participants.back());
participants.pop_back();

View File

@@ -411,7 +411,9 @@ bool is_ipv6_supported(void)
return true;
}
unsigned get_sockaddr_addr_port(const struct sockaddr *sa){
static unsigned
get_sockaddr_addr_port(const struct sockaddr *sa)
{
unsigned port = 0;
if (sa->sa_family == AF_INET6) {
port = ntohs(((const struct sockaddr_in6 *) (const void *) sa)
@@ -426,13 +428,9 @@ unsigned get_sockaddr_addr_port(const struct sockaddr *sa){
return port;
}
/**
* @returns the input buffer (buf)
*/
char *
static char *
get_sockaddr_addr_str(const struct sockaddr *sa, char *buf, size_t n)
{
assert(n >= IN6_MAX_ASCII_LEN + 3 /* []: */ + 1 /* \0 */);
const void *src = NULL;
if (sa->sa_family == AF_INET6) {
snprintf(buf, n, "[");
@@ -458,11 +456,13 @@ get_sockaddr_addr_str(const struct sockaddr *sa, char *buf, size_t n)
}
/**
* @param n size of buf; must be at least ADDR_STR_BUF_LEN
* @returns the input buffer (buf)
*/
char *
get_sockaddr_str(const struct sockaddr *sa, char *buf, size_t n)
{
assert(n >= ADDR_STR_BUF_LEN);
get_sockaddr_addr_str(sa, buf, n);
unsigned port = get_sockaddr_addr_port(sa);

View File

@@ -70,8 +70,6 @@ bool is_host_private(const char *hostname);
uint16_t socket_get_recv_port(int fd);
bool get_local_addresses(struct sockaddr_storage *addrs, size_t *len, int ip_version);
bool is_ipv6_supported(void);
char *get_sockaddr_addr_str(const struct sockaddr *sa, char *buf, size_t n);
unsigned get_sockaddr_addr_port(const struct sockaddr *sa);
char *get_sockaddr_str(const struct sockaddr *sa, char *buf, size_t n);
const char *ug_gai_strerror(int errcode);