diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2023-02-13 17:42:52 +0100 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2023-02-22 15:01:53 +0100 |
commit | 0a00b2a95ae351c3666040d8309574b250fb8285 (patch) | |
tree | 5fc665b0e8f4b242c037f2c753b3e1c0635f5604 | |
parent | 51e3dd447d57e88ca32c734a76767fbffa7db751 (diff) |
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)
(cherry picked from commit 41cd94f46af5a965ed3c84f09748194b5b7f3517)
-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); |