]> diplodocus.org Git - nmh/blobdiff - sbr/client.c
Fixed file descriptor leak in mhfixmsg when run on multiple input files.
[nmh] / sbr / client.c
index 2bed9052b953502d5eb7822dae01228352e7698a..8d390a816510b54a7ee6c1c89209ec07378ebbbf 100644 (file)
@@ -79,7 +79,7 @@ client (char *server, char *service, char *response, int len_response,
            flags = fcntl(sd, F_GETFD, 0);
 
            if (flags != -1)
-               fcntl(sd, F_SETFD, flags | FD_CLOEXEC);
+               fcntl(sd, F_SETFD, flags | FD_CLOEXEC);
 
            return sd;
        }
@@ -102,10 +102,19 @@ client (char *server, char *service, char *response, int len_response,
 
     if (res->ai_next)
        snprintf(response, len_response, "no servers available (use -snoop "
-                "for details");
-    else
-       snprintf(response, len_response, "Connection to \"%s\" failed: %s",
-                server, strerror(errno));
+                "for details)");
+    else {
+       char port[NI_MAXSERV];
+
+       if (getnameinfo(res->ai_addr, res->ai_addrlen, NULL, 0, port,
+                       sizeof port, NI_NUMERICSERV)) {
+           strncpy(port, "unknown", sizeof port);
+           port[sizeof(port) - 1] = '\0';
+       }
+
+       snprintf(response, len_response, "Connection to \"%s:%s\" failed: %s",
+                server, port, strerror(errno));
+    }
 
     freeaddrinfo(res);