diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2023-02-13 17:42:52 +0100 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2023-02-21 13:55:30 +0100 |
commit | 41cd94f46af5a965ed3c84f09748194b5b7f3517 (patch) | |
tree | fa8d0b26c0789f06715e3eba334b64a0686ea732 | |
parent | f1f1aee711515244322a37150de908e26cfa240f (diff) | |
download | NetworkManager-41cd94f46af5a965ed3c84f09748194b5b7f3517.tar.gz |
nm-daemon-helper: log to stderr any error from getaddrinfo()
Print errors from getaddrinfo() to stderr so that they will be logged
by NM.
(cherry picked from commit ac5325e96bb206d7e96d2349126cfdc952345222)
-rw-r--r-- | src/nm-daemon-helper/nm-daemon-helper.c | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/nm-daemon-helper/nm-daemon-helper.c b/src/nm-daemon-helper/nm-daemon-helper.c index a101bf9b4f..a447d63cfe 100644 --- a/src/nm-daemon-helper/nm-daemon-helper.c +++ b/src/nm-daemon-helper/nm-daemon-helper.c @@ -11,6 +11,7 @@ #if defined(__GLIBC__) #include <nss.h> #endif +#include <stdarg.h> enum { RETURN_SUCCESS = 0, @@ -61,6 +62,7 @@ cmd_resolve_address(void) } sockaddr; socklen_t sockaddr_size; char name[NI_MAXHOST]; + int ret; address = read_arg(); if (!address) @@ -83,15 +85,26 @@ cmd_resolve_address(void) } else return RETURN_INVALID_ARGS; - if (getnameinfo((struct sockaddr *) &sockaddr, - sockaddr_size, - name, - sizeof(name), - NULL, - 0, - NI_NAMEREQD) - != 0) + ret = getnameinfo((struct sockaddr *) &sockaddr, + sockaddr_size, + name, + sizeof(name), + NULL, + 0, + NI_NAMEREQD); + if (ret != 0) { + if (ret == EAI_SYSTEM) { + fprintf(stderr, + "getnameinfo() failed: %d (%s), system error: %d (%s)\n", + ret, + gai_strerror(ret), + errno, + strerror(errno)); + } else { + fprintf(stderr, "getnameinfo() failed: %d (%s)\n", ret, gai_strerror(ret)); + } return RETURN_ERROR; + } printf("%s", name); |