X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;ds=sidebyside;f=networking%2Fnc.c;h=1419609e08c752d94f62944bfec4882e6c8f13a4;hb=d1a302b52f11563240db5313344a1331613e1538;hp=a940d8a5d3cd352e8523d4b2815b0e7108cdee57;hpb=d0e70af9d1065400a3ed478393dcd3873d1cb7d8;p=oweals%2Fbusybox.git diff --git a/networking/nc.c b/networking/nc.c index a940d8a5d..1419609e0 100644 --- a/networking/nc.c +++ b/networking/nc.c @@ -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; } }