- apply hunk that fixes an issue with (wrong?) dependencies. Initial notes were:
[oweals/busybox.git] / networking / ping.c
index bbe2c9f76cd7f9a3bb3a1224d7330c323c515e5e..e413bec701abbc677fb1a0d1e3fb1b22b66009eb 100644 (file)
@@ -101,15 +101,9 @@ static void ping4(len_and_sockaddr *lsa)
        pkt->icmp_type = ICMP_ECHO;
        pkt->icmp_cksum = in_cksum((unsigned short *) pkt, sizeof(packet));
 
-       c = sendto(pingsock, packet, DEFDATALEN + ICMP_MINLEN, 0,
+       c = xsendto(pingsock, packet, DEFDATALEN + ICMP_MINLEN,
                           (struct sockaddr *) &pingaddr, sizeof(pingaddr));
 
-       if (c < 0) {
-               if (ENABLE_FEATURE_CLEAN_UP)
-                       close(pingsock);
-               bb_perror_msg_and_die("sendto");
-       }
-
        /* listen for replies */
        while (1) {
                struct sockaddr_in from;
@@ -153,15 +147,9 @@ static void ping6(len_and_sockaddr *lsa)
        sockopt = offsetof(struct icmp6_hdr, icmp6_cksum);
        setsockopt(pingsock, SOL_RAW, IPV6_CHECKSUM, &sockopt, sizeof(sockopt));
 
-       c = sendto(pingsock, packet, DEFDATALEN + sizeof (struct icmp6_hdr), 0,
+       c = xsendto(pingsock, packet, DEFDATALEN + sizeof (struct icmp6_hdr),
                           (struct sockaddr *) &pingaddr, sizeof(pingaddr));
 
-       if (c < 0) {
-               if (ENABLE_FEATURE_CLEAN_UP)
-                       close(pingsock);
-               bb_perror_msg_and_die("sendto");
-       }
-
        /* listen for replies */
        while (1) {
                struct sockaddr_in6 from;
@@ -306,15 +294,12 @@ static void sendping_tail(void (*sp)(int), const void *pkt, int size_pkt)
 
        /* sizeof(pingaddr) can be larger than real sa size, but I think
         * it doesn't matter */
-       sz = sendto(pingsock, pkt, size_pkt, 0, &pingaddr.sa, sizeof(pingaddr));
-       if (sz < 0)
-               bb_perror_msg_and_die("sendto");
+       sz = xsendto(pingsock, pkt, size_pkt, &pingaddr.sa, sizeof(pingaddr));
        if (sz != size_pkt)
-               bb_error_msg_and_die("ping wrote %d chars; %d expected", sz,
-                       size_pkt);
+               bb_error_msg_and_die(bb_msg_write_error);
 
        signal(SIGALRM, sp);
-       if (pingcount == 0 || ntransmitted < pingcount) {       /* schedule next in 1s */
+       if (pingcount == 0 || ntransmitted < pingcount) { /* schedule next in 1s */
                alarm(PINGINTERVAL);
        } else { /* done, wait for the last ping to come back */
                /* todo, don't necessarily need to wait so long... */