- fixes parallel builds (make -j)
[oweals/busybox.git] / libbb / xconnect.c
index 2443bb2991f18c851842f317a8926b58b42d93ef..ec99c58829db8c980a665898037fa1c2e56475b9 100644 (file)
@@ -2,7 +2,7 @@
 /*
  * Utility routines.
  *
- * Connect to host at port using address resolusion from getaddrinfo
+ * Connect to host at port using address resolution from getaddrinfo
  *
  */
 
@@ -62,9 +62,10 @@ void bb_lookup_host(struct sockaddr_in *s_in, const char *host)
 int xconnect(struct sockaddr_in *s_addr)
 {
        int s = socket(AF_INET, SOCK_STREAM, 0);
-       if (connect(s, (struct sockaddr_in *)s_addr, sizeof(struct sockaddr_in)) < 0)
+       if (connect(s, (struct sockaddr *)s_addr, sizeof(struct sockaddr_in)) < 0)
        {
-               bb_perror_msg_and_die("Unable to connect to remote host (%s)", 
+               if (ENABLE_FEATURE_CLEAN_UP) close(s);
+               bb_perror_msg_and_die("Unable to connect to remote host (%s)",
                                inet_ntoa(s_addr->sin_addr));
        }
        return s;