summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2023-02-13 17:42:52 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2023-02-21 13:55:30 +0100
commit41cd94f46af5a965ed3c84f09748194b5b7f3517 (patch)
treefa8d0b26c0789f06715e3eba334b64a0686ea732
parentf1f1aee711515244322a37150de908e26cfa240f (diff)
downloadNetworkManager-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.c29
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);