diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2015-08-24 19:48:03 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2015-08-24 20:00:17 +0200 |
commit | c52cbea2bba6582b44facb424a15dc544b54fb28 (patch) | |
tree | b048b3f7832621a16ed9ba2441756e2fc69ee316 /networking/ping.c | |
parent | 2db782bc7be70c34a756e2bc6d4a53e8f47bab20 (diff) | |
download | busybox-w32-c52cbea2bba6582b44facb424a15dc544b54fb28.tar.gz busybox-w32-c52cbea2bba6582b44facb424a15dc544b54fb28.tar.bz2 busybox-w32-c52cbea2bba6582b44facb424a15dc544b54fb28.zip |
libbb: add setsockopt_foo helpers
function old new delta
setsockopt_int - 23 +23
do_load 918 934 +16
setsockopt_SOL_SOCKET_int - 14 +14
setsockopt_keepalive - 10 +10
setsockopt_SOL_SOCKET_1 - 10 +10
buffer_fill_and_print 169 178 +9
setsockopt_1 - 8 +8
nfsmount 3560 3566 +6
redirect 1277 1282 +5
tcpudpsvd_main 1782 1786 +4
d6_send_kernel_packet 272 275 +3
i2cget_main 380 382 +2
ed_main 2544 2545 +1
scan_recursive 380 378 -2
nbdclient_main 492 490 -2
hash_find 235 233 -2
cmdputs 334 332 -2
parse_command 1443 1440 -3
static.two 4 - -4
ntpd_main 1039 1035 -4
const_int_1 4 - -4
const_IPTOS_LOWDELAY 4 - -4
RCVBUF 4 - -4
ntp_init 474 469 -5
change_listen_mode 316 310 -6
uevent_main 416 409 -7
arping_main 1697 1690 -7
telnet_main 1612 1603 -9
socket_want_pktinfo 42 33 -9
setsockopt_reuseaddr 21 10 -11
setsockopt_broadcast 21 10 -11
httpd_main 772 757 -15
get_remote_transfer_fd 109 94 -15
make_new_session 503 487 -16
ftpd_main 2177 2160 -17
read_bunzip 1896 1866 -30
common_traceroute_main 4099 4058 -41
common_ping_main 1836 1783 -53
------------------------------------------------------------------------------
(add/remove: 5/4 grow/shrink: 8/21 up/down: 111/-283) Total: -172 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'networking/ping.c')
-rw-r--r-- | networking/ping.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/networking/ping.c b/networking/ping.c index 20489a070..e1f9ebc3a 100644 --- a/networking/ping.c +++ b/networking/ping.c | |||
@@ -247,7 +247,7 @@ static void ping6(len_and_sockaddr *lsa) | |||
247 | pkt->icmp6_type = ICMP6_ECHO_REQUEST; | 247 | pkt->icmp6_type = ICMP6_ECHO_REQUEST; |
248 | 248 | ||
249 | sockopt = offsetof(struct icmp6_hdr, icmp6_cksum); | 249 | sockopt = offsetof(struct icmp6_hdr, icmp6_cksum); |
250 | setsockopt(pingsock, SOL_RAW, IPV6_CHECKSUM, &sockopt, sizeof(sockopt)); | 250 | setsockopt_int(pingsock, SOL_RAW, IPV6_CHECKSUM, sockopt); |
251 | 251 | ||
252 | xsendto(pingsock, G.packet, DEFDATALEN + sizeof(struct icmp6_hdr), &lsa->u.sa, lsa->len); | 252 | xsendto(pingsock, G.packet, DEFDATALEN + sizeof(struct icmp6_hdr), &lsa->u.sa, lsa->len); |
253 | 253 | ||
@@ -700,12 +700,12 @@ static void ping4(len_and_sockaddr *lsa) | |||
700 | /* set recv buf (needed if we can get lots of responses: flood ping, | 700 | /* set recv buf (needed if we can get lots of responses: flood ping, |
701 | * broadcast ping etc) */ | 701 | * broadcast ping etc) */ |
702 | sockopt = (datalen * 2) + 7 * 1024; /* giving it a bit of extra room */ | 702 | sockopt = (datalen * 2) + 7 * 1024; /* giving it a bit of extra room */ |
703 | setsockopt(pingsock, SOL_SOCKET, SO_RCVBUF, &sockopt, sizeof(sockopt)); | 703 | setsockopt_SOL_SOCKET_int(pingsock, SO_RCVBUF, sockopt); |
704 | 704 | ||
705 | if (opt_ttl != 0) { | 705 | if (opt_ttl != 0) { |
706 | setsockopt(pingsock, IPPROTO_IP, IP_TTL, &opt_ttl, sizeof(opt_ttl)); | 706 | setsockopt_int(pingsock, IPPROTO_IP, IP_TTL, opt_ttl); |
707 | /* above doesnt affect packets sent to bcast IP, so... */ | 707 | /* above doesnt affect packets sent to bcast IP, so... */ |
708 | setsockopt(pingsock, IPPROTO_IP, IP_MULTICAST_TTL, &opt_ttl, sizeof(opt_ttl)); | 708 | setsockopt_int(pingsock, IPPROTO_IP, IP_MULTICAST_TTL, opt_ttl); |
709 | } | 709 | } |
710 | 710 | ||
711 | signal(SIGINT, print_stats_and_exit); | 711 | signal(SIGINT, print_stats_and_exit); |
@@ -766,15 +766,15 @@ static void ping6(len_and_sockaddr *lsa) | |||
766 | /* set recv buf (needed if we can get lots of responses: flood ping, | 766 | /* set recv buf (needed if we can get lots of responses: flood ping, |
767 | * broadcast ping etc) */ | 767 | * broadcast ping etc) */ |
768 | sockopt = (datalen * 2) + 7 * 1024; /* giving it a bit of extra room */ | 768 | sockopt = (datalen * 2) + 7 * 1024; /* giving it a bit of extra room */ |
769 | setsockopt(pingsock, SOL_SOCKET, SO_RCVBUF, &sockopt, sizeof(sockopt)); | 769 | setsockopt_SOL_SOCKET_int(pingsock, SO_RCVBUF, sockopt); |
770 | 770 | ||
771 | sockopt = offsetof(struct icmp6_hdr, icmp6_cksum); | 771 | sockopt = offsetof(struct icmp6_hdr, icmp6_cksum); |
772 | if (offsetof(struct icmp6_hdr, icmp6_cksum) != 2) | 772 | if (sockopt != 2) |
773 | BUG_bad_offsetof_icmp6_cksum(); | 773 | BUG_bad_offsetof_icmp6_cksum(); |
774 | setsockopt(pingsock, SOL_RAW, IPV6_CHECKSUM, &sockopt, sizeof(sockopt)); | 774 | setsockopt_int(pingsock, SOL_RAW, IPV6_CHECKSUM, sockopt); |
775 | 775 | ||
776 | /* request ttl info to be returned in ancillary data */ | 776 | /* request ttl info to be returned in ancillary data */ |
777 | setsockopt(pingsock, SOL_IPV6, IPV6_HOPLIMIT, &const_int_1, sizeof(const_int_1)); | 777 | setsockopt_1(pingsock, SOL_IPV6, IPV6_HOPLIMIT); |
778 | 778 | ||
779 | if (if_index) | 779 | if (if_index) |
780 | pingaddr.sin6.sin6_scope_id = if_index; | 780 | pingaddr.sin6.sin6_scope_id = if_index; |