diff options
author | Elliott Hughes <enh@google.com> | 2019-07-08 16:02:56 -0700 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2019-07-11 22:02:12 -0500 |
commit | a57721d14642291696be4ffd5d8bb0915fbe861b (patch) | |
tree | 11a18894601df31ce1eb9c46c5d1faaa59e2f9e8 /toys/pending/tcpsvd.c | |
parent | 34f095fcbf0829719f9a130a359ebf2a3e223ca0 (diff) | |
download | toybox-a57721d14642291696be4ffd5d8bb0915fbe861b.tar.gz |
bind/connect cleanup.
Rename the existing xbind/xconnect to xbindany/xconnectany, to make room
for new xbind/xconnect that are more like 'x' versions of the regular
bind and connect. Move explicit bind/connect callers over to
xbind/xconnect.
Of the affected commands, only netcat is actually used by Android. It
was the most recent patch to netcat that made the lack of a more
traditional xbind/xconnect apparent.
Diffstat (limited to 'toys/pending/tcpsvd.c')
-rw-r--r-- | toys/pending/tcpsvd.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/toys/pending/tcpsvd.c b/toys/pending/tcpsvd.c index 31c27610..e5bd76b5 100644 --- a/toys/pending/tcpsvd.c +++ b/toys/pending/tcpsvd.c @@ -248,7 +248,7 @@ static int create_bind_sock(char *host, struct sockaddr *haddr) sockfd = xsocket(rp->ai_family, TT.udp ?SOCK_DGRAM :SOCK_STREAM, 0); setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &set, sizeof(set)); if (TT.udp) setsockopt(sockfd, IPPROTO_IP, IP_PKTINFO, &set, sizeof(set)); - if ((bind(sockfd, rp->ai_addr, rp->ai_addrlen)) < 0) perror_exit("Bind failed"); + xbind(sockfd, rp->ai_addr, rp->ai_addrlen); if(haddr) memcpy(haddr, rp->ai_addr, rp->ai_addrlen); freeaddrinfo(res); return sockfd; @@ -386,8 +386,7 @@ void tcpsvd_main(void) free(serv); free(clie); } - if (TT.udp && (connect(newfd, (struct sockaddr *)buf, sizeof(buf)) < 0)) - perror_exit("connect"); + if (TT.udp) xconnect(newfd, (struct sockaddr *)buf, sizeof(buf)); close(0); close(1); |