socket-util: modernize socknameinfo_pretty() a bit
This commit is contained in:
committed by
Yu Watanabe
parent
8759bc9541
commit
fc1f05ebab
+18
-13
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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_;
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user