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-22 15:01:53 +0100
commit0a00b2a95ae351c3666040d8309574b250fb8285 (patch)
tree5fc665b0e8f4b242c037f2c753b3e1c0635f5604
parent51e3dd447d57e88ca32c734a76767fbffa7db751 (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.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);