Skip to content

Commit 16e647c

Browse files
committed
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.
1 parent 0b27ea6 commit 16e647c

File tree

3 files changed

+9
-13
lines changed

3 files changed

+9
-13
lines changed

src/hd-rum-translator/hd-rum-translator.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -888,11 +888,9 @@ class Participant_manager{
888888
log_msg(LOG_LEVEL_NOTICE, "Removing participant\n");
889889
std::string msg = "delete-port ";
890890
auto addr = reinterpret_cast<struct sockaddr *>(&it->addr);
891-
char addr_str[128];
892-
get_sockaddr_addr_str(addr, addr_str, sizeof(addr_str));
893-
char *replica_name = get_replica_mod_name(addr_str, get_sockaddr_addr_port(addr));
894-
msg += replica_name;
895-
free(replica_name);
891+
char replica_name[ADDR_STR_BUF_LEN];
892+
msg += get_sockaddr_str(addr, replica_name,
893+
sizeof replica_name);
896894

897895
std::swap(*it, participants.back());
898896
participants.pop_back();

src/utils/net.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,9 @@ bool is_ipv6_supported(void)
411411
return true;
412412
}
413413

414-
unsigned get_sockaddr_addr_port(const struct sockaddr *sa){
414+
static unsigned
415+
get_sockaddr_addr_port(const struct sockaddr *sa)
416+
{
415417
unsigned port = 0;
416418
if (sa->sa_family == AF_INET6) {
417419
port = ntohs(((const struct sockaddr_in6 *) (const void *) sa)
@@ -426,13 +428,9 @@ unsigned get_sockaddr_addr_port(const struct sockaddr *sa){
426428
return port;
427429
}
428430

429-
/**
430-
* @returns the input buffer (buf)
431-
*/
432-
char *
431+
static char *
433432
get_sockaddr_addr_str(const struct sockaddr *sa, char *buf, size_t n)
434433
{
435-
assert(n >= IN6_MAX_ASCII_LEN + 3 /* []: */ + 1 /* \0 */);
436434
const void *src = NULL;
437435
if (sa->sa_family == AF_INET6) {
438436
snprintf(buf, n, "[");
@@ -458,11 +456,13 @@ get_sockaddr_addr_str(const struct sockaddr *sa, char *buf, size_t n)
458456
}
459457

460458
/**
459+
* @param n size of buf; must be at least ADDR_STR_BUF_LEN
461460
* @returns the input buffer (buf)
462461
*/
463462
char *
464463
get_sockaddr_str(const struct sockaddr *sa, char *buf, size_t n)
465464
{
465+
assert(n >= ADDR_STR_BUF_LEN);
466466
get_sockaddr_addr_str(sa, buf, n);
467467

468468
unsigned port = get_sockaddr_addr_port(sa);

src/utils/net.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,6 @@ bool is_host_private(const char *hostname);
7070
uint16_t socket_get_recv_port(int fd);
7171
bool get_local_addresses(struct sockaddr_storage *addrs, size_t *len, int ip_version);
7272
bool is_ipv6_supported(void);
73-
char *get_sockaddr_addr_str(const struct sockaddr *sa, char *buf, size_t n);
74-
unsigned get_sockaddr_addr_port(const struct sockaddr *sa);
7573
char *get_sockaddr_str(const struct sockaddr *sa, char *buf, size_t n);
7674
const char *ug_gai_strerror(int errcode);
7775

0 commit comments

Comments
 (0)