Improve info_slave error messages
authorAri Johnson <ari@theari.com>
Fri, 7 Aug 2015 15:29:47 +0000 (11:29 -0400)
committerAri Johnson <ari@theari.com>
Fri, 7 Aug 2015 15:29:47 +0000 (11:29 -0400)
src/info_slave.c

index 596cd0502d3e9ef3fd3441514cdb6fe0b7514274..4e1ed54eabdea5bc28ef692b59259feb548b730d 100644 (file)
@@ -79,6 +79,14 @@ safe_chr(char c, char *buf, char **bufp)
 }
 #endif
 
+int
+safe_integer(long i, char *buff, char **bp)
+{
+  char lbuf[128];
+  snprintf(lbuf, 128, "%ld", i);
+  return safe_str(lbuf, buff, bp);
+}
+
 int
 safe_str(const char *c, char *buff, char **bp)
 {
@@ -186,10 +194,15 @@ main(int argc, char *argv[])
     if ((gairesult = getnameinfo(&remote.addr, rlen, host, sizeof host, NULL,
                                 0, NI_NUMERICHOST | NI_NUMERICSERV)) != 0) {
       safe_str("Error: getnameinfo(remote): ", buf, &bp);
-      if (gairesult == EAI_SYSTEM)
+      if (gairesult == EAI_SYSTEM) {
+        safe_integer(errno, buf, &bp);
+        safe_chr('/', buf, &bp);
         safe_str(strerror(errno), buf, &bp);
-      else
+      } else {
+        safe_integer(gairesult, buf, &bp);
+        safe_chr('/', buf, &bp);
         safe_str(gai_strerror(gairesult), buf, &bp);
+      }
     } else {
       safe_str(host, buf, &bp);
     }
@@ -198,10 +211,15 @@ main(int argc, char *argv[])
                                 sizeof lport,
                                 NI_NUMERICHOST | NI_NUMERICSERV)) != 0) {
       safe_str("Error: getnameinfo(local): ", buf, &bp);
-      if (gairesult == EAI_SYSTEM)
+      if (gairesult == EAI_SYSTEM) {
+        safe_integer(errno, buf, &bp);
+        safe_chr('/', buf, &bp);
         safe_str(strerror(errno), buf, &bp);
-      else
+      } else {
+        safe_integer(gairesult, buf, &bp);
+        safe_chr('/', buf, &bp);
         safe_str(gai_strerror(gairesult), buf, &bp);
+      }
     } else {
       safe_str(lport, buf, &bp);
     }
@@ -222,10 +240,15 @@ main(int argc, char *argv[])
       if ((gairesult = getnameinfo(&remote.addr, rlen, host, sizeof host, NULL,
                                   0, NI_NUMERICSERV) != 0)) {
         safe_str("Error: getnameinfo(local/dns): ", buf, &bp);
-        if (gairesult == EAI_SYSTEM)
+        if (gairesult == EAI_SYSTEM) {
+          safe_integer(errno, buf, &bp);
+          safe_chr('/', buf, &bp);
           safe_str(strerror(errno), buf, &bp);
-        else
+        } else {
+          safe_integer(gairesult, buf, &bp);
+          safe_chr('/', buf, &bp);
           safe_str(gai_strerror(gairesult), buf, &bp);
+        }
       } else {
        safe_str(host, buf, &bp);
       }