rt_names: stop allocating 5k in rwdata
[oweals/busybox.git] / networking / nc.c
index a940d8a5d3cd352e8523d4b2815b0e7108cdee57..1419609e08c752d94f62944bfec4882e6c8f13a4 100644 (file)
@@ -25,7 +25,6 @@ int nc_main(int argc, char **argv)
        SKIP_NC_EXTRA (const int execparam = 0;)
        USE_NC_EXTRA  (char **execparam = NULL;)
        struct sockaddr_in address;
-       struct hostent *hostinfo;
        fd_set readfds, testfds;
        int opt; /* must be signed (getopt returns -1) */
 
@@ -86,8 +85,7 @@ int nc_main(int argc, char **argv)
        if (!cfd) {
                sfd = xsocket(AF_INET, SOCK_STREAM, 0);
                fcntl(sfd, F_SETFD, FD_CLOEXEC);
-               opt = 1;
-               setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
+               setsockopt_reuseaddr(sfd);
                address.sin_family = AF_INET;
 
                // Set local port.
@@ -106,7 +104,7 @@ int nc_main(int argc, char **argv)
 
                        if (!lport) {
                                socklen_t len = sizeof(address);
-                               getsockname(sfd, &address, &len);
+                               getsockname(sfd, (struct sockaddr *) &address, &len);
                                fdprintf(2, "%d\n", SWAP_BE16(address.sin_port));
                        }
  repeatyness:
@@ -116,13 +114,13 @@ int nc_main(int argc, char **argv)
 
                        if (!execparam) close(sfd);
                } else {
+                       struct hostent *hostinfo;
                        hostinfo = xgethostbyname(argv[0]);
 
                        address.sin_addr = *(struct in_addr *) *hostinfo->h_addr_list;
                        address.sin_port = bb_lookup_port(argv[1], "tcp", 0);
 
-                       if (connect(sfd, (struct sockaddr *) &address, sizeof(address)) < 0)
-                               bb_perror_msg_and_die("connect");
+                       xconnect(sfd, (struct sockaddr *) &address, sizeof(address));
                        cfd = sfd;
                }
        }