socket-util: modernize socknameinfo_pretty() a bit

This commit is contained in:
Lennart Poettering
2024-01-09 10:00:21 +09:00
committed by Yu Watanabe
parent 8759bc9541
commit fc1f05ebab
3 changed files with 20 additions and 15 deletions
+18 -13
View File
@@ -628,28 +628,33 @@ int getsockname_pretty(int fd, char **ret) {
return sockaddr_pretty(&sa.sa, salen, false, true, ret);
}
int socknameinfo_pretty(union sockaddr_union *sa, socklen_t salen, char **_ret) {
int socknameinfo_pretty(const struct sockaddr *sa, socklen_t salen, char **ret) {
char host[NI_MAXHOST];
int r;
char host[NI_MAXHOST], *ret;
assert(_ret);
assert(sa);
assert(salen > sizeof(sa_family_t));
r = getnameinfo(&sa->sa, salen, host, sizeof(host), NULL, 0, IDN_FLAGS);
r = getnameinfo(sa, salen, host, sizeof(host), /* service= */ NULL, /* service_len= */ 0, IDN_FLAGS);
if (r != 0) {
int saved_errno = errno;
if (r == EAI_MEMORY)
return log_oom_debug();
if (r == EAI_SYSTEM)
log_debug_errno(errno, "getnameinfo() failed, ignoring: %m");
else
log_debug("getnameinfo() failed, ignoring: %s", gai_strerror(r));
r = sockaddr_pretty(&sa->sa, salen, true, true, &ret);
if (r < 0)
return r;
return sockaddr_pretty(sa, salen, /* translate_ipv6= */ true, /* include_port= */ true, ret);
}
log_debug_errno(saved_errno, "getnameinfo(%s) failed: %m", ret);
} else {
ret = strdup(host);
if (!ret)
if (ret) {
char *copy = strdup(host);
if (!copy)
return -ENOMEM;
*ret = copy;
}
*_ret = ret;
return 0;
}
+1 -1
View File
@@ -113,7 +113,7 @@ int sockaddr_pretty(const struct sockaddr *_sa, socklen_t salen, bool translate_
int getpeername_pretty(int fd, bool include_port, char **ret);
int getsockname_pretty(int fd, char **ret);
int socknameinfo_pretty(union sockaddr_union *sa, socklen_t salen, char **_ret);
int socknameinfo_pretty(const struct sockaddr *sa, socklen_t salen, char **_ret);
const char* socket_address_bind_ipv6_only_to_string(SocketAddressBindIPv6Only b) _const_;
SocketAddressBindIPv6Only socket_address_bind_ipv6_only_from_string(const char *s) _pure_;
+1 -1
View File
@@ -525,7 +525,7 @@ static int accept_connection(
if (r < 0)
return log_error_errno(r, "socket_address_print(): %m");
r = socknameinfo_pretty(&addr->sockaddr, addr->size, &b);
r = socknameinfo_pretty(&addr->sockaddr.sa, addr->size, &b);
if (r < 0)
return log_error_errno(r, "Resolving hostname failed: %m");