diff options
| author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-09-02 16:13:36 +0000 |
|---|---|---|
| committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-09-02 16:13:36 +0000 |
| commit | cb6874cc66df69fe49c65338a67fec1206d02c4b (patch) | |
| tree | 456f9bab87457df640ee305716b000f87ed6285c | |
| parent | d53dd3e627d158953c124107dae1c7ca48ca0a55 (diff) | |
| download | busybox-w32-cb6874cc66df69fe49c65338a67fec1206d02c4b.tar.gz busybox-w32-cb6874cc66df69fe49c65338a67fec1206d02c4b.tar.bz2 busybox-w32-cb6874cc66df69fe49c65338a67fec1206d02c4b.zip | |
Sync ping and ping6 a bit, fix style and indentation.
| -rw-r--r-- | networking/ping.c | 19 | ||||
| -rw-r--r-- | networking/ping6.c | 48 |
2 files changed, 32 insertions, 35 deletions
diff --git a/networking/ping.c b/networking/ping.c index 5cd6f4a1a..8ccb7e0bf 100644 --- a/networking/ping.c +++ b/networking/ping.c | |||
| @@ -31,7 +31,6 @@ | |||
| 31 | #include <stdlib.h> | 31 | #include <stdlib.h> |
| 32 | #include "busybox.h" | 32 | #include "busybox.h" |
| 33 | 33 | ||
| 34 | |||
| 35 | enum { | 34 | enum { |
| 36 | DEFDATALEN = 56, | 35 | DEFDATALEN = 56, |
| 37 | MAXIPLEN = 60, | 36 | MAXIPLEN = 60, |
| @@ -78,7 +77,8 @@ static int in_cksum(unsigned short *buf, int sz) | |||
| 78 | 77 | ||
| 79 | /* simple version */ | 78 | /* simple version */ |
| 80 | #ifndef CONFIG_FEATURE_FANCY_PING | 79 | #ifndef CONFIG_FEATURE_FANCY_PING |
| 81 | static char *hostname = NULL; | 80 | static char *hostname; |
| 81 | |||
| 82 | static void noresp(int ign) | 82 | static void noresp(int ign) |
| 83 | { | 83 | { |
| 84 | printf("No response from %s\n", hostname); | 84 | printf("No response from %s\n", hostname); |
| @@ -163,10 +163,7 @@ static int myid, options; | |||
| 163 | static unsigned long tmin = ULONG_MAX, tmax, tsum; | 163 | static unsigned long tmin = ULONG_MAX, tmax, tsum; |
| 164 | static char rcvd_tbl[MAX_DUP_CHK / 8]; | 164 | static char rcvd_tbl[MAX_DUP_CHK / 8]; |
| 165 | 165 | ||
| 166 | #ifndef CONFIG_FEATURE_FANCY_PING6 | 166 | static struct hostent *hostent; |
| 167 | static | ||
| 168 | #endif | ||
| 169 | struct hostent *hostent; | ||
| 170 | 167 | ||
| 171 | static void sendping(int); | 168 | static void sendping(int); |
| 172 | static void pingstats(int); | 169 | static void pingstats(int); |
| @@ -278,11 +275,11 @@ static void unpack(char *buf, int sz, struct sockaddr_in *from) | |||
| 278 | icmppkt = (struct icmp *) (buf + hlen); | 275 | icmppkt = (struct icmp *) (buf + hlen); |
| 279 | 276 | ||
| 280 | if (icmppkt->icmp_id != myid) | 277 | if (icmppkt->icmp_id != myid) |
| 281 | return; /* not our ping */ | 278 | return; /* not our ping */ |
| 282 | 279 | ||
| 283 | if (icmppkt->icmp_type == ICMP_ECHOREPLY) { | 280 | if (icmppkt->icmp_type == ICMP_ECHOREPLY) { |
| 284 | u_int16_t recv_seq = ntohs(icmppkt->icmp_seq); | 281 | u_int16_t recv_seq = ntohs(icmppkt->icmp_seq); |
| 285 | ++nreceived; | 282 | ++nreceived; |
| 286 | tp = (struct timeval *) icmppkt->icmp_data; | 283 | tp = (struct timeval *) icmppkt->icmp_data; |
| 287 | 284 | ||
| 288 | if ((tv.tv_usec -= tp->tv_usec) < 0) { | 285 | if ((tv.tv_usec -= tp->tv_usec) < 0) { |
| @@ -352,7 +349,7 @@ static void ping(const char *host) | |||
| 352 | sizeof(sockopt)); | 349 | sizeof(sockopt)); |
| 353 | 350 | ||
| 354 | printf("PING %s (%s): %d data bytes\n", | 351 | printf("PING %s (%s): %d data bytes\n", |
| 355 | hostent->h_name, | 352 | hostent->h_name, |
| 356 | inet_ntoa(*(struct in_addr *) &pingaddr.sin_addr.s_addr), | 353 | inet_ntoa(*(struct in_addr *) &pingaddr.sin_addr.s_addr), |
| 357 | datalen); | 354 | datalen); |
| 358 | 355 | ||
| @@ -400,13 +397,13 @@ int ping_main(int argc, char **argv) | |||
| 400 | break; | 397 | break; |
| 401 | case 'c': | 398 | case 'c': |
| 402 | if (--argc <= 0) | 399 | if (--argc <= 0) |
| 403 | bb_show_usage(); | 400 | bb_show_usage(); |
| 404 | argv++; | 401 | argv++; |
| 405 | pingcount = atoi(*argv); | 402 | pingcount = atoi(*argv); |
| 406 | break; | 403 | break; |
| 407 | case 's': | 404 | case 's': |
| 408 | if (--argc <= 0) | 405 | if (--argc <= 0) |
| 409 | bb_show_usage(); | 406 | bb_show_usage(); |
| 410 | argv++; | 407 | argv++; |
| 411 | datalen = atoi(*argv); | 408 | datalen = atoi(*argv); |
| 412 | break; | 409 | break; |
diff --git a/networking/ping6.c b/networking/ping6.c index fd695f1fc..fdcd4ec46 100644 --- a/networking/ping6.c +++ b/networking/ping6.c | |||
| @@ -68,7 +68,7 @@ static void ping(const char *host); | |||
| 68 | #ifndef CONFIG_FEATURE_FANCY_PING6 | 68 | #ifndef CONFIG_FEATURE_FANCY_PING6 |
| 69 | static struct hostent *h; | 69 | static struct hostent *h; |
| 70 | 70 | ||
| 71 | void noresp(int ign) | 71 | static void noresp(int ign) |
| 72 | { | 72 | { |
| 73 | printf("No response from %s\n", h->h_name); | 73 | printf("No response from %s\n", h->h_name); |
| 74 | exit(EXIT_FAILURE); | 74 | exit(EXIT_FAILURE); |
| @@ -101,8 +101,10 @@ static void ping(const char *host) | |||
| 101 | c = sendto(pingsock, packet, DEFDATALEN + sizeof (struct icmp6_hdr), 0, | 101 | c = sendto(pingsock, packet, DEFDATALEN + sizeof (struct icmp6_hdr), 0, |
| 102 | (struct sockaddr *) &pingaddr, sizeof(struct sockaddr_in6)); | 102 | (struct sockaddr *) &pingaddr, sizeof(struct sockaddr_in6)); |
| 103 | 103 | ||
| 104 | if (c < 0 || c != sizeof(packet)) | 104 | if (c < 0 || c != sizeof(packet)) { |
| 105 | if (ENABLE_FEATURE_CLEAN_UP) close(pingsock); | ||
| 105 | bb_perror_msg_and_die("sendto"); | 106 | bb_perror_msg_and_die("sendto"); |
| 107 | } | ||
| 106 | 108 | ||
| 107 | signal(SIGALRM, noresp); | 109 | signal(SIGALRM, noresp); |
| 108 | alarm(5); /* give the host 5000ms to respond */ | 110 | alarm(5); /* give the host 5000ms to respond */ |
| @@ -124,6 +126,7 @@ static void ping(const char *host) | |||
| 124 | break; | 126 | break; |
| 125 | } | 127 | } |
| 126 | } | 128 | } |
| 129 | if (ENABLE_FEATURE_CLEAN_UP) close(pingsock); | ||
| 127 | printf("%s is alive!\n", h->h_name); | 130 | printf("%s is alive!\n", h->h_name); |
| 128 | return; | 131 | return; |
| 129 | } | 132 | } |
| @@ -150,10 +153,7 @@ static int myid, options; | |||
| 150 | static unsigned long tmin = ULONG_MAX, tmax, tsum; | 153 | static unsigned long tmin = ULONG_MAX, tmax, tsum; |
| 151 | static char rcvd_tbl[MAX_DUP_CHK / 8]; | 154 | static char rcvd_tbl[MAX_DUP_CHK / 8]; |
| 152 | 155 | ||
| 153 | # ifdef CONFIG_FEATURE_FANCY_PING | 156 | static struct hostent *hostent; |
| 154 | extern | ||
| 155 | # endif | ||
| 156 | struct hostent *hostent; | ||
| 157 | 157 | ||
| 158 | static void sendping(int); | 158 | static void sendping(int); |
| 159 | static void pingstats(int); | 159 | static void pingstats(int); |
| @@ -267,10 +267,10 @@ static void unpack(char *packet, int sz, struct sockaddr_in6 *from, int hoplimit | |||
| 267 | icmppkt = (struct icmp6_hdr *) packet; | 267 | icmppkt = (struct icmp6_hdr *) packet; |
| 268 | 268 | ||
| 269 | if (icmppkt->icmp6_id != myid) | 269 | if (icmppkt->icmp6_id != myid) |
| 270 | return; /* not our ping */ | 270 | return; /* not our ping */ |
| 271 | 271 | ||
| 272 | if (icmppkt->icmp6_type == ICMP6_ECHO_REPLY) { | 272 | if (icmppkt->icmp6_type == ICMP6_ECHO_REPLY) { |
| 273 | ++nreceived; | 273 | ++nreceived; |
| 274 | tp = (struct timeval *) &icmppkt->icmp6_data8[4]; | 274 | tp = (struct timeval *) &icmppkt->icmp6_data8[4]; |
| 275 | 275 | ||
| 276 | if ((tv.tv_usec -= tp->tv_usec) < 0) { | 276 | if ((tv.tv_usec -= tp->tv_usec) < 0) { |
| @@ -339,7 +339,7 @@ static void ping(const char *host) | |||
| 339 | struct icmp6_filter filt; | 339 | struct icmp6_filter filt; |
| 340 | if (!(options & O_VERBOSE)) { | 340 | if (!(options & O_VERBOSE)) { |
| 341 | ICMP6_FILTER_SETBLOCKALL(&filt); | 341 | ICMP6_FILTER_SETBLOCKALL(&filt); |
| 342 | ICMP6_FILTER_SETPASS(ICMP6_ECHO_REPLY, &filt); | 342 | ICMP6_FILTER_SETPASS(ICMP6_ECHO_REPLY, &filt); |
| 343 | } else { | 343 | } else { |
| 344 | ICMP6_FILTER_SETPASSALL(&filt); | 344 | ICMP6_FILTER_SETPASSALL(&filt); |
| 345 | } | 345 | } |
| @@ -374,8 +374,8 @@ static void ping(const char *host) | |||
| 374 | 374 | ||
| 375 | printf("PING %s (%s): %d data bytes\n", | 375 | printf("PING %s (%s): %d data bytes\n", |
| 376 | hostent->h_name, | 376 | hostent->h_name, |
| 377 | inet_ntop(AF_INET6, &pingaddr.sin6_addr, | 377 | inet_ntop(AF_INET6, &pingaddr.sin6_addr, |
| 378 | buf, sizeof(buf)), | 378 | buf, sizeof(buf)), |
| 379 | datalen); | 379 | datalen); |
| 380 | 380 | ||
| 381 | signal(SIGINT, pingstats); | 381 | signal(SIGINT, pingstats); |
| @@ -384,18 +384,18 @@ static void ping(const char *host) | |||
| 384 | sendping(0); | 384 | sendping(0); |
| 385 | 385 | ||
| 386 | /* listen for replies */ | 386 | /* listen for replies */ |
| 387 | msg.msg_name=&from; | 387 | msg.msg_name = &from; |
| 388 | msg.msg_namelen=sizeof(from); | 388 | msg.msg_namelen = sizeof(from); |
| 389 | msg.msg_iov=&iov; | 389 | msg.msg_iov = &iov; |
| 390 | msg.msg_iovlen=1; | 390 | msg.msg_iovlen = 1; |
| 391 | msg.msg_control=control_buf; | 391 | msg.msg_control = control_buf; |
| 392 | iov.iov_base=packet; | 392 | iov.iov_base = packet; |
| 393 | iov.iov_len=sizeof(packet); | 393 | iov.iov_len = sizeof(packet); |
| 394 | while (1) { | 394 | while (1) { |
| 395 | int c; | 395 | int c; |
| 396 | struct cmsghdr *cmsgptr = NULL; | 396 | struct cmsghdr *cmsgptr = NULL; |
| 397 | int hoplimit=-1; | 397 | int hoplimit = -1; |
| 398 | msg.msg_controllen=sizeof(control_buf); | 398 | msg.msg_controllen = sizeof(control_buf); |
| 399 | 399 | ||
| 400 | if ((c = recvmsg(pingsock, &msg, 0)) < 0) { | 400 | if ((c = recvmsg(pingsock, &msg, 0)) < 0) { |
| 401 | if (errno == EINTR) | 401 | if (errno == EINTR) |
| @@ -407,7 +407,7 @@ static void ping(const char *host) | |||
| 407 | cmsgptr = CMSG_NXTHDR(&msg, cmsgptr)) { | 407 | cmsgptr = CMSG_NXTHDR(&msg, cmsgptr)) { |
| 408 | if (cmsgptr->cmsg_level == SOL_IPV6 && | 408 | if (cmsgptr->cmsg_level == SOL_IPV6 && |
| 409 | cmsgptr->cmsg_type == IPV6_HOPLIMIT ) { | 409 | cmsgptr->cmsg_type == IPV6_HOPLIMIT ) { |
| 410 | hoplimit=*(int*)CMSG_DATA(cmsgptr); | 410 | hoplimit = *(int*)CMSG_DATA(cmsgptr); |
| 411 | } | 411 | } |
| 412 | } | 412 | } |
| 413 | unpack(packet, c, &from, hoplimit); | 413 | unpack(packet, c, &from, hoplimit); |
| @@ -441,19 +441,19 @@ int ping6_main(int argc, char **argv) | |||
| 441 | break; | 441 | break; |
| 442 | case 'c': | 442 | case 'c': |
| 443 | if (--argc <= 0) | 443 | if (--argc <= 0) |
| 444 | bb_show_usage(); | 444 | bb_show_usage(); |
| 445 | argv++; | 445 | argv++; |
| 446 | pingcount = atoi(*argv); | 446 | pingcount = atoi(*argv); |
| 447 | break; | 447 | break; |
| 448 | case 's': | 448 | case 's': |
| 449 | if (--argc <= 0) | 449 | if (--argc <= 0) |
| 450 | bb_show_usage(); | 450 | bb_show_usage(); |
| 451 | argv++; | 451 | argv++; |
| 452 | datalen = atoi(*argv); | 452 | datalen = atoi(*argv); |
| 453 | break; | 453 | break; |
| 454 | case 'I': | 454 | case 'I': |
| 455 | if (--argc <= 0) | 455 | if (--argc <= 0) |
| 456 | bb_show_usage(); | 456 | bb_show_usage(); |
| 457 | argv++; | 457 | argv++; |
| 458 | ifname = *argv; | 458 | ifname = *argv; |
| 459 | break; | 459 | break; |
