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 | |
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')
-rw-r--r-- | networking/arping.c | 2 | ||||
-rw-r--r-- | networking/ftpd.c | 8 | ||||
-rw-r--r-- | networking/httpd.c | 4 | ||||
-rw-r--r-- | networking/nbd-client.c | 2 | ||||
-rw-r--r-- | networking/nc_bloaty.c | 4 | ||||
-rw-r--r-- | networking/ntpd.c | 6 | ||||
-rw-r--r-- | networking/ping.c | 16 | ||||
-rw-r--r-- | networking/telnet.c | 2 | ||||
-rw-r--r-- | networking/telnetd.c | 2 | ||||
-rw-r--r-- | networking/traceroute.c | 41 | ||||
-rw-r--r-- | networking/udhcp/dhcpc.c | 4 |
11 files changed, 39 insertions, 52 deletions
diff --git a/networking/arping.c b/networking/arping.c index 9ac4a7cee..ce7fa299c 100644 --- a/networking/arping.c +++ b/networking/arping.c | |||
@@ -357,7 +357,7 @@ int arping_main(int argc UNUSED_PARAM, char **argv) | |||
357 | saddr.sin_port = htons(1025); | 357 | saddr.sin_port = htons(1025); |
358 | saddr.sin_addr = dst; | 358 | saddr.sin_addr = dst; |
359 | 359 | ||
360 | if (setsockopt(probe_fd, SOL_SOCKET, SO_DONTROUTE, &const_int_1, sizeof(const_int_1)) == -1) | 360 | if (setsockopt_SOL_SOCKET_1(probe_fd, SO_DONTROUTE) != 0) |
361 | bb_perror_msg("setsockopt(%s)", "SO_DONTROUTE"); | 361 | bb_perror_msg("setsockopt(%s)", "SO_DONTROUTE"); |
362 | xconnect(probe_fd, (struct sockaddr *) &saddr, sizeof(saddr)); | 362 | xconnect(probe_fd, (struct sockaddr *) &saddr, sizeof(saddr)); |
363 | getsockname(probe_fd, (struct sockaddr *) &saddr, &alen); | 363 | getsockname(probe_fd, (struct sockaddr *) &saddr, &alen); |
diff --git a/networking/ftpd.c b/networking/ftpd.c index 2351d6dd3..7735b7233 100644 --- a/networking/ftpd.c +++ b/networking/ftpd.c | |||
@@ -377,7 +377,7 @@ ftpdataio_get_pasv_fd(void) | |||
377 | return remote_fd; | 377 | return remote_fd; |
378 | } | 378 | } |
379 | 379 | ||
380 | setsockopt(remote_fd, SOL_SOCKET, SO_KEEPALIVE, &const_int_1, sizeof(const_int_1)); | 380 | setsockopt_keepalive(remote_fd); |
381 | return remote_fd; | 381 | return remote_fd; |
382 | } | 382 | } |
383 | 383 | ||
@@ -1186,11 +1186,11 @@ int ftpd_main(int argc UNUSED_PARAM, char **argv) | |||
1186 | , SIG_IGN); | 1186 | , SIG_IGN); |
1187 | 1187 | ||
1188 | /* Set up options on the command socket (do we need these all? why?) */ | 1188 | /* Set up options on the command socket (do we need these all? why?) */ |
1189 | setsockopt(STDIN_FILENO, IPPROTO_TCP, TCP_NODELAY, &const_int_1, sizeof(const_int_1)); | 1189 | setsockopt_1(STDIN_FILENO, IPPROTO_TCP, TCP_NODELAY); |
1190 | setsockopt(STDIN_FILENO, SOL_SOCKET, SO_KEEPALIVE, &const_int_1, sizeof(const_int_1)); | 1190 | setsockopt_keepalive(STDIN_FILENO); |
1191 | /* Telnet protocol over command link may send "urgent" data, | 1191 | /* Telnet protocol over command link may send "urgent" data, |
1192 | * we prefer it to be received in the "normal" data stream: */ | 1192 | * we prefer it to be received in the "normal" data stream: */ |
1193 | setsockopt(STDIN_FILENO, SOL_SOCKET, SO_OOBINLINE, &const_int_1, sizeof(const_int_1)); | 1193 | setsockopt_1(STDIN_FILENO, SOL_SOCKET, SO_OOBINLINE); |
1194 | 1194 | ||
1195 | WRITE_OK(FTP_GREET); | 1195 | WRITE_OK(FTP_GREET); |
1196 | signal(SIGALRM, timeout_handler); | 1196 | signal(SIGALRM, timeout_handler); |
diff --git a/networking/httpd.c b/networking/httpd.c index 7a9065fcc..feaaa94d5 100644 --- a/networking/httpd.c +++ b/networking/httpd.c | |||
@@ -2352,7 +2352,7 @@ static void mini_httpd(int server_socket) | |||
2352 | continue; | 2352 | continue; |
2353 | 2353 | ||
2354 | /* set the KEEPALIVE option to cull dead connections */ | 2354 | /* set the KEEPALIVE option to cull dead connections */ |
2355 | setsockopt(n, SOL_SOCKET, SO_KEEPALIVE, &const_int_1, sizeof(const_int_1)); | 2355 | setsockopt_keepalive(n); |
2356 | 2356 | ||
2357 | if (fork() == 0) { | 2357 | if (fork() == 0) { |
2358 | /* child */ | 2358 | /* child */ |
@@ -2395,7 +2395,7 @@ static void mini_httpd_nommu(int server_socket, int argc, char **argv) | |||
2395 | continue; | 2395 | continue; |
2396 | 2396 | ||
2397 | /* set the KEEPALIVE option to cull dead connections */ | 2397 | /* set the KEEPALIVE option to cull dead connections */ |
2398 | setsockopt(n, SOL_SOCKET, SO_KEEPALIVE, &const_int_1, sizeof(const_int_1)); | 2398 | setsockopt_keepalive(n); |
2399 | 2399 | ||
2400 | if (vfork() == 0) { | 2400 | if (vfork() == 0) { |
2401 | /* child */ | 2401 | /* child */ |
diff --git a/networking/nbd-client.c b/networking/nbd-client.c index cadda5261..a601430b6 100644 --- a/networking/nbd-client.c +++ b/networking/nbd-client.c | |||
@@ -83,7 +83,7 @@ int nbdclient_main(int argc, char **argv) | |||
83 | 83 | ||
84 | // Find and connect to server | 84 | // Find and connect to server |
85 | sock = create_and_connect_stream_or_die(host, xatou16(port)); | 85 | sock = create_and_connect_stream_or_die(host, xatou16(port)); |
86 | setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &const_int_1, sizeof(const_int_1)); | 86 | setsockopt_1(sock, IPPROTO_TCP, TCP_NODELAY); |
87 | 87 | ||
88 | // Log on to the server | 88 | // Log on to the server |
89 | xread(sock, &nbd_header, 8+8+8+4 + 124); | 89 | xread(sock, &nbd_header, 8+8+8+4 + 124); |
diff --git a/networking/nc_bloaty.c b/networking/nc_bloaty.c index b28d05f51..471ae1a12 100644 --- a/networking/nc_bloaty.c +++ b/networking/nc_bloaty.c | |||
@@ -863,8 +863,8 @@ int nc_main(int argc UNUSED_PARAM, char **argv) | |||
863 | xbind(netfd, &ouraddr->u.sa, ouraddr->len); | 863 | xbind(netfd, &ouraddr->u.sa, ouraddr->len); |
864 | } | 864 | } |
865 | #if 0 | 865 | #if 0 |
866 | setsockopt(netfd, SOL_SOCKET, SO_RCVBUF, &o_rcvbuf, sizeof o_rcvbuf); | 866 | setsockopt_SOL_SOCKET_int(netfd, SO_RCVBUF, o_rcvbuf); |
867 | setsockopt(netfd, SOL_SOCKET, SO_SNDBUF, &o_sndbuf, sizeof o_sndbuf); | 867 | setsockopt_SOL_SOCKET_int(netfd, SO_SNDBUF, o_sndbuf); |
868 | #endif | 868 | #endif |
869 | 869 | ||
870 | #ifdef BLOAT | 870 | #ifdef BLOAT |
diff --git a/networking/ntpd.c b/networking/ntpd.c index b5120a70d..9732c9b1a 100644 --- a/networking/ntpd.c +++ b/networking/ntpd.c | |||
@@ -405,8 +405,6 @@ struct globals { | |||
405 | }; | 405 | }; |
406 | #define G (*ptr_to_globals) | 406 | #define G (*ptr_to_globals) |
407 | 407 | ||
408 | static const int const_IPTOS_LOWDELAY = IPTOS_LOWDELAY; | ||
409 | |||
410 | 408 | ||
411 | #define VERB1 if (MAX_VERBOSE && G.verbose) | 409 | #define VERB1 if (MAX_VERBOSE && G.verbose) |
412 | #define VERB2 if (MAX_VERBOSE >= 2 && G.verbose >= 2) | 410 | #define VERB2 if (MAX_VERBOSE >= 2 && G.verbose >= 2) |
@@ -837,7 +835,7 @@ send_query_to_peer(peer_t *p) | |||
837 | #if ENABLE_FEATURE_IPV6 | 835 | #if ENABLE_FEATURE_IPV6 |
838 | if (family == AF_INET) | 836 | if (family == AF_INET) |
839 | #endif | 837 | #endif |
840 | setsockopt(fd, IPPROTO_IP, IP_TOS, &const_IPTOS_LOWDELAY, sizeof(const_IPTOS_LOWDELAY)); | 838 | setsockopt_int(fd, IPPROTO_IP, IP_TOS, IPTOS_LOWDELAY); |
841 | free(local_lsa); | 839 | free(local_lsa); |
842 | } | 840 | } |
843 | 841 | ||
@@ -2186,7 +2184,7 @@ static NOINLINE void ntp_init(char **argv) | |||
2186 | xfunc_die(); | 2184 | xfunc_die(); |
2187 | } | 2185 | } |
2188 | socket_want_pktinfo(G_listen_fd); | 2186 | socket_want_pktinfo(G_listen_fd); |
2189 | setsockopt(G_listen_fd, IPPROTO_IP, IP_TOS, &const_IPTOS_LOWDELAY, sizeof(const_IPTOS_LOWDELAY)); | 2187 | setsockopt_int(G_listen_fd, IPPROTO_IP, IP_TOS, IPTOS_LOWDELAY); |
2190 | } | 2188 | } |
2191 | #endif | 2189 | #endif |
2192 | if (!(opts & OPT_n)) { | 2190 | if (!(opts & OPT_n)) { |
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; |
diff --git a/networking/telnet.c b/networking/telnet.c index a25579773..3bb6fb1ba 100644 --- a/networking/telnet.c +++ b/networking/telnet.c | |||
@@ -623,7 +623,7 @@ int telnet_main(int argc UNUSED_PARAM, char **argv) | |||
623 | 623 | ||
624 | xmove_fd(create_and_connect_stream_or_die(host, port), netfd); | 624 | xmove_fd(create_and_connect_stream_or_die(host, port), netfd); |
625 | 625 | ||
626 | setsockopt(netfd, SOL_SOCKET, SO_KEEPALIVE, &const_int_1, sizeof(const_int_1)); | 626 | setsockopt_keepalive(netfd); |
627 | 627 | ||
628 | signal(SIGINT, record_signo); | 628 | signal(SIGINT, record_signo); |
629 | 629 | ||
diff --git a/networking/telnetd.c b/networking/telnetd.c index 6aee95871..25d05fe7a 100644 --- a/networking/telnetd.c +++ b/networking/telnetd.c | |||
@@ -265,7 +265,7 @@ make_new_session( | |||
265 | close_on_exec_on(fd); | 265 | close_on_exec_on(fd); |
266 | 266 | ||
267 | /* SO_KEEPALIVE by popular demand */ | 267 | /* SO_KEEPALIVE by popular demand */ |
268 | setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, &const_int_1, sizeof(const_int_1)); | 268 | setsockopt_keepalive(sock); |
269 | #if ENABLE_FEATURE_TELNETD_STANDALONE | 269 | #if ENABLE_FEATURE_TELNETD_STANDALONE |
270 | ts->sockfd_read = sock; | 270 | ts->sockfd_read = sock; |
271 | ndelay_on(sock); | 271 | ndelay_on(sock); |
diff --git a/networking/traceroute.c b/networking/traceroute.c index e41d89e9f..642110c54 100644 --- a/networking/traceroute.c +++ b/networking/traceroute.c | |||
@@ -473,8 +473,8 @@ send_probe(int seq, int ttl) | |||
473 | 473 | ||
474 | #if ENABLE_TRACEROUTE6 | 474 | #if ENABLE_TRACEROUTE6 |
475 | if (dest_lsa->u.sa.sa_family == AF_INET6) { | 475 | if (dest_lsa->u.sa.sa_family == AF_INET6) { |
476 | res = setsockopt(sndsock, SOL_IPV6, IPV6_UNICAST_HOPS, &ttl, sizeof(ttl)); | 476 | res = setsockopt_int(sndsock, SOL_IPV6, IPV6_UNICAST_HOPS, ttl); |
477 | if (res < 0) | 477 | if (res != 0) |
478 | bb_perror_msg_and_die("setsockopt(%s) %d", "UNICAST_HOPS", ttl); | 478 | bb_perror_msg_and_die("setsockopt(%s) %d", "UNICAST_HOPS", ttl); |
479 | out = outip; | 479 | out = outip; |
480 | len = packlen; | 480 | len = packlen; |
@@ -482,8 +482,8 @@ send_probe(int seq, int ttl) | |||
482 | #endif | 482 | #endif |
483 | { | 483 | { |
484 | #if defined IP_TTL | 484 | #if defined IP_TTL |
485 | res = setsockopt(sndsock, IPPROTO_IP, IP_TTL, &ttl, sizeof(ttl)); | 485 | res = setsockopt_int(sndsock, IPPROTO_IP, IP_TTL, ttl); |
486 | if (res < 0) | 486 | if (res != 0) |
487 | bb_perror_msg_and_die("setsockopt(%s) %d", "TTL", ttl); | 487 | bb_perror_msg_and_die("setsockopt(%s) %d", "TTL", ttl); |
488 | #endif | 488 | #endif |
489 | out = outicmp; | 489 | out = outicmp; |
@@ -902,13 +902,10 @@ common_traceroute_main(int op, char **argv) | |||
902 | if (af == AF_INET6) { | 902 | if (af == AF_INET6) { |
903 | xmove_fd(xsocket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6), rcvsock); | 903 | xmove_fd(xsocket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6), rcvsock); |
904 | # ifdef IPV6_RECVPKTINFO | 904 | # ifdef IPV6_RECVPKTINFO |
905 | setsockopt(rcvsock, SOL_IPV6, IPV6_RECVPKTINFO, | 905 | setsockopt_1(rcvsock, SOL_IPV6, IPV6_RECVPKTINFO); |
906 | &const_int_1, sizeof(const_int_1)); | 906 | setsockopt_1(rcvsock, SOL_IPV6, IPV6_2292PKTINFO); |
907 | setsockopt(rcvsock, SOL_IPV6, IPV6_2292PKTINFO, | ||
908 | &const_int_1, sizeof(const_int_1)); | ||
909 | # else | 907 | # else |
910 | setsockopt(rcvsock, SOL_IPV6, IPV6_PKTINFO, | 908 | setsockopt_1(rcvsock, SOL_IPV6, IPV6_PKTINFO); |
911 | &const_int_1, sizeof(const_int_1)); | ||
912 | # endif | 909 | # endif |
913 | } else | 910 | } else |
914 | #endif | 911 | #endif |
@@ -918,17 +915,14 @@ common_traceroute_main(int op, char **argv) | |||
918 | 915 | ||
919 | #if TRACEROUTE_SO_DEBUG | 916 | #if TRACEROUTE_SO_DEBUG |
920 | if (op & OPT_DEBUG) | 917 | if (op & OPT_DEBUG) |
921 | setsockopt(rcvsock, SOL_SOCKET, SO_DEBUG, | 918 | setsockopt_SOL_SOCKET_1(rcvsock, SO_DEBUG); |
922 | &const_int_1, sizeof(const_int_1)); | ||
923 | #endif | 919 | #endif |
924 | if (op & OPT_BYPASS_ROUTE) | 920 | if (op & OPT_BYPASS_ROUTE) |
925 | setsockopt(rcvsock, SOL_SOCKET, SO_DONTROUTE, | 921 | setsockopt_SOL_SOCKET_1(rcvsock, SO_DONTROUTE); |
926 | &const_int_1, sizeof(const_int_1)); | ||
927 | 922 | ||
928 | #if ENABLE_TRACEROUTE6 | 923 | #if ENABLE_TRACEROUTE6 |
929 | if (af == AF_INET6) { | 924 | if (af == AF_INET6) { |
930 | static const int two = 2; | 925 | if (setsockopt_int(rcvsock, SOL_RAW, IPV6_CHECKSUM, 2) != 0) |
931 | if (setsockopt(rcvsock, SOL_RAW, IPV6_CHECKSUM, &two, sizeof(two)) < 0) | ||
932 | bb_perror_msg_and_die("setsockopt(%s)", "IPV6_CHECKSUM"); | 926 | bb_perror_msg_and_die("setsockopt(%s)", "IPV6_CHECKSUM"); |
933 | xmove_fd(xsocket(af, SOCK_DGRAM, 0), sndsock); | 927 | xmove_fd(xsocket(af, SOCK_DGRAM, 0), sndsock); |
934 | } else | 928 | } else |
@@ -966,28 +960,25 @@ common_traceroute_main(int op, char **argv) | |||
966 | } | 960 | } |
967 | 961 | ||
968 | #ifdef SO_SNDBUF | 962 | #ifdef SO_SNDBUF |
969 | if (setsockopt(sndsock, SOL_SOCKET, SO_SNDBUF, &packlen, sizeof(packlen)) < 0) { | 963 | if (setsockopt_SOL_SOCKET_int(sndsock, SO_SNDBUF, packlen) != 0) { |
970 | bb_perror_msg_and_die("SO_SNDBUF"); | 964 | bb_perror_msg_and_die("setsockopt(%s)", "SO_SNDBUF"); |
971 | } | 965 | } |
972 | #endif | 966 | #endif |
973 | #ifdef IP_TOS | 967 | #ifdef IP_TOS |
974 | if ((op & OPT_TOS) && setsockopt(sndsock, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)) < 0) { | 968 | if ((op & OPT_TOS) && setsockopt_int(sndsock, IPPROTO_IP, IP_TOS, tos) != 0) { |
975 | bb_perror_msg_and_die("setsockopt(%s) %d", "TOS", tos); | 969 | bb_perror_msg_and_die("setsockopt(%s) %d", "TOS", tos); |
976 | } | 970 | } |
977 | #endif | 971 | #endif |
978 | #ifdef IP_DONTFRAG | 972 | #ifdef IP_DONTFRAG |
979 | if (op & OPT_DONT_FRAGMNT) | 973 | if (op & OPT_DONT_FRAGMNT) |
980 | setsockopt(sndsock, IPPROTO_IP, IP_DONTFRAG, | 974 | setsockopt_1(sndsock, IPPROTO_IP, IP_DONTFRAG); |
981 | &const_int_1, sizeof(const_int_1)); | ||
982 | #endif | 975 | #endif |
983 | #if TRACEROUTE_SO_DEBUG | 976 | #if TRACEROUTE_SO_DEBUG |
984 | if (op & OPT_DEBUG) | 977 | if (op & OPT_DEBUG) |
985 | setsockopt(sndsock, SOL_SOCKET, SO_DEBUG, | 978 | setsockopt_SOL_SOCKET_1(sndsock, SO_DEBUG); |
986 | &const_int_1, sizeof(const_int_1)); | ||
987 | #endif | 979 | #endif |
988 | if (op & OPT_BYPASS_ROUTE) | 980 | if (op & OPT_BYPASS_ROUTE) |
989 | setsockopt(sndsock, SOL_SOCKET, SO_DONTROUTE, | 981 | setsockopt_SOL_SOCKET_1(sndsock, SO_DONTROUTE); |
990 | &const_int_1, sizeof(const_int_1)); | ||
991 | 982 | ||
992 | outip = xzalloc(packlen); | 983 | outip = xzalloc(packlen); |
993 | 984 | ||
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index 811a1a1ee..11f7b2d49 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c | |||
@@ -1043,9 +1043,7 @@ static int udhcp_raw_socket(int ifindex) | |||
1043 | } | 1043 | } |
1044 | #endif | 1044 | #endif |
1045 | 1045 | ||
1046 | if (setsockopt(fd, SOL_PACKET, PACKET_AUXDATA, | 1046 | if (setsockopt_1(fd, SOL_PACKET, PACKET_AUXDATA) != 0) { |
1047 | &const_int_1, sizeof(int)) < 0 | ||
1048 | ) { | ||
1049 | if (errno != ENOPROTOOPT) | 1047 | if (errno != ENOPROTOOPT) |
1050 | log1("Can't set PACKET_AUXDATA on raw socket"); | 1048 | log1("Can't set PACKET_AUXDATA on raw socket"); |
1051 | } | 1049 | } |