Implement suggestion from Adam Slattery, (don't default to killing closing bug #1190.
[oweals/busybox.git] / nc.c
diff --git a/nc.c b/nc.c
index 72439dd85d72c9daa1947824adcc7477861b2810..5335872e5a7ca50b4e3fa5b410fbffb333d459b9 100644 (file)
--- a/nc.c
+++ b/nc.c
@@ -80,17 +80,18 @@ int nc_main(int argc, char **argv)
        }
 
        if (do_listen) {
+               socklen_t addrlen = sizeof(address);
+
                if (listen(sfd, 1) < 0)
                        perror_msg_and_die("listen");
 
-               if ((tmpfd = accept(sfd, (struct sockaddr *) &address, &opt)) < 0)
+               if ((tmpfd = accept(sfd, (struct sockaddr *) &address, &addrlen)) < 0)
                        perror_msg_and_die("accept");
 
                close(sfd);
                sfd = tmpfd;
        } else {
-               if ((hostinfo = gethostbyname(argv[optind])) == NULL)
-                       error_msg_and_die("cannot resolve %s\n", argv[optind]);
+               hostinfo = xgethostbyname(argv[optind]);
 
                address.sin_addr = *(struct in_addr *) *hostinfo->h_addr_list;
                address.sin_port = htons(atoi(argv[optind+1]));