summaryrefslogtreecommitdiff
path: root/networking/ping6.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-01-22 14:12:08 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-01-22 14:12:08 +0000
commit703e20235aa0624d3ff4335c1e86edaa6e21efe2 (patch)
tree49e8451efad93b75c0be74ee553d3b3f8c04a25d /networking/ping6.c
parent6cd2d2bcba37a13d0d73326dd7bca64bbccce4f8 (diff)
downloadbusybox-w32-703e20235aa0624d3ff4335c1e86edaa6e21efe2.tar.gz
busybox-w32-703e20235aa0624d3ff4335c1e86edaa6e21efe2.tar.bz2
busybox-w32-703e20235aa0624d3ff4335c1e86edaa6e21efe2.zip
cleanups: unnecessary casts, unified const_1, eliminate cross-.c file
prototypes (heresy!), add spaces in places like "flags&NETSTAT_CONNECTED", removed unused #defines, #ifdef -> #if, use uint32_t for ipv4 addrs.
Diffstat (limited to 'networking/ping6.c')
-rw-r--r--networking/ping6.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/networking/ping6.c b/networking/ping6.c
index dec3b426a..a92387e79 100644
--- a/networking/ping6.c
+++ b/networking/ping6.c
@@ -77,8 +77,7 @@ static void ping(const char *host)
77 pkt->icmp6_type = ICMP6_ECHO_REQUEST; 77 pkt->icmp6_type = ICMP6_ECHO_REQUEST;
78 78
79 sockopt = offsetof(struct icmp6_hdr, icmp6_cksum); 79 sockopt = offsetof(struct icmp6_hdr, icmp6_cksum);
80 setsockopt(pingsock, SOL_RAW, IPV6_CHECKSUM, (char *) &sockopt, 80 setsockopt(pingsock, SOL_RAW, IPV6_CHECKSUM, &sockopt, sizeof(sockopt));
81 sizeof(sockopt));
82 81
83 c = sendto(pingsock, packet, DEFDATALEN + sizeof (struct icmp6_hdr), 0, 82 c = sendto(pingsock, packet, DEFDATALEN + sizeof (struct icmp6_hdr), 0,
84 (struct sockaddr *) &pingaddr, sizeof(struct sockaddr_in6)); 83 (struct sockaddr *) &pingaddr, sizeof(struct sockaddr_in6));
@@ -312,6 +311,7 @@ static void unpack(char *packet, int sz, struct sockaddr_in6 *from, int hoplimit
312 fflush(stdout); 311 fflush(stdout);
313} 312}
314 313
314extern int BUG_bad_offsetof_icmp6_cksum(void);
315static void ping(const char *host) 315static void ping(const char *host)
316{ 316{
317 char packet[datalen + MAXIPLEN + MAXICMPLEN]; 317 char packet[datalen + MAXIPLEN + MAXICMPLEN];
@@ -353,18 +353,15 @@ static void ping(const char *host)
353 353
354 /* set recv buf for broadcast pings */ 354 /* set recv buf for broadcast pings */
355 sockopt = 48 * 1024; /* explain why 48k? */ 355 sockopt = 48 * 1024; /* explain why 48k? */
356 setsockopt(pingsock, SOL_SOCKET, SO_RCVBUF, (char *) &sockopt, 356 setsockopt(pingsock, SOL_SOCKET, SO_RCVBUF, &sockopt, sizeof(sockopt));
357 sizeof(sockopt));
358 357
359 sockopt = 2; /* iputils-ss020927 does this */
360 sockopt = offsetof(struct icmp6_hdr, icmp6_cksum); 358 sockopt = offsetof(struct icmp6_hdr, icmp6_cksum);
361 setsockopt(pingsock, SOL_RAW, IPV6_CHECKSUM, (char *) &sockopt, 359 if (offsetof(struct icmp6_hdr, icmp6_cksum) != 2)
362 sizeof(sockopt)); 360 BUG_bad_offsetof_icmp6_cksum();
361 setsockopt(pingsock, SOL_RAW, IPV6_CHECKSUM, &sockopt, sizeof(sockopt));
363 362
364 /* request ttl info to be returned in ancillary data */ 363 /* request ttl info to be returned in ancillary data */
365 sockopt = 1; 364 setsockopt(pingsock, SOL_IPV6, IPV6_HOPLIMIT, &const_int_1, sizeof(const_int_1));
366 setsockopt(pingsock, SOL_IPV6, IPV6_HOPLIMIT, (char *) &sockopt,
367 sizeof(sockopt));
368 365
369 if (if_index) 366 if (if_index)
370 pingaddr.sin6_scope_id = if_index; 367 pingaddr.sin6_scope_id = if_index;