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>
diff --git a/networking/traceroute.c b/networking/traceroute.c
index e41d89e..642110c 100644
--- a/networking/traceroute.c
+++ b/networking/traceroute.c
@@ -473,8 +473,8 @@
#if ENABLE_TRACEROUTE6
if (dest_lsa->u.sa.sa_family == AF_INET6) {
- res = setsockopt(sndsock, SOL_IPV6, IPV6_UNICAST_HOPS, &ttl, sizeof(ttl));
- if (res < 0)
+ res = setsockopt_int(sndsock, SOL_IPV6, IPV6_UNICAST_HOPS, ttl);
+ if (res != 0)
bb_perror_msg_and_die("setsockopt(%s) %d", "UNICAST_HOPS", ttl);
out = outip;
len = packlen;
@@ -482,8 +482,8 @@
#endif
{
#if defined IP_TTL
- res = setsockopt(sndsock, IPPROTO_IP, IP_TTL, &ttl, sizeof(ttl));
- if (res < 0)
+ res = setsockopt_int(sndsock, IPPROTO_IP, IP_TTL, ttl);
+ if (res != 0)
bb_perror_msg_and_die("setsockopt(%s) %d", "TTL", ttl);
#endif
out = outicmp;
@@ -902,13 +902,10 @@
if (af == AF_INET6) {
xmove_fd(xsocket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6), rcvsock);
# ifdef IPV6_RECVPKTINFO
- setsockopt(rcvsock, SOL_IPV6, IPV6_RECVPKTINFO,
- &const_int_1, sizeof(const_int_1));
- setsockopt(rcvsock, SOL_IPV6, IPV6_2292PKTINFO,
- &const_int_1, sizeof(const_int_1));
+ setsockopt_1(rcvsock, SOL_IPV6, IPV6_RECVPKTINFO);
+ setsockopt_1(rcvsock, SOL_IPV6, IPV6_2292PKTINFO);
# else
- setsockopt(rcvsock, SOL_IPV6, IPV6_PKTINFO,
- &const_int_1, sizeof(const_int_1));
+ setsockopt_1(rcvsock, SOL_IPV6, IPV6_PKTINFO);
# endif
} else
#endif
@@ -918,17 +915,14 @@
#if TRACEROUTE_SO_DEBUG
if (op & OPT_DEBUG)
- setsockopt(rcvsock, SOL_SOCKET, SO_DEBUG,
- &const_int_1, sizeof(const_int_1));
+ setsockopt_SOL_SOCKET_1(rcvsock, SO_DEBUG);
#endif
if (op & OPT_BYPASS_ROUTE)
- setsockopt(rcvsock, SOL_SOCKET, SO_DONTROUTE,
- &const_int_1, sizeof(const_int_1));
+ setsockopt_SOL_SOCKET_1(rcvsock, SO_DONTROUTE);
#if ENABLE_TRACEROUTE6
if (af == AF_INET6) {
- static const int two = 2;
- if (setsockopt(rcvsock, SOL_RAW, IPV6_CHECKSUM, &two, sizeof(two)) < 0)
+ if (setsockopt_int(rcvsock, SOL_RAW, IPV6_CHECKSUM, 2) != 0)
bb_perror_msg_and_die("setsockopt(%s)", "IPV6_CHECKSUM");
xmove_fd(xsocket(af, SOCK_DGRAM, 0), sndsock);
} else
@@ -966,28 +960,25 @@
}
#ifdef SO_SNDBUF
- if (setsockopt(sndsock, SOL_SOCKET, SO_SNDBUF, &packlen, sizeof(packlen)) < 0) {
- bb_perror_msg_and_die("SO_SNDBUF");
+ if (setsockopt_SOL_SOCKET_int(sndsock, SO_SNDBUF, packlen) != 0) {
+ bb_perror_msg_and_die("setsockopt(%s)", "SO_SNDBUF");
}
#endif
#ifdef IP_TOS
- if ((op & OPT_TOS) && setsockopt(sndsock, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)) < 0) {
+ if ((op & OPT_TOS) && setsockopt_int(sndsock, IPPROTO_IP, IP_TOS, tos) != 0) {
bb_perror_msg_and_die("setsockopt(%s) %d", "TOS", tos);
}
#endif
#ifdef IP_DONTFRAG
if (op & OPT_DONT_FRAGMNT)
- setsockopt(sndsock, IPPROTO_IP, IP_DONTFRAG,
- &const_int_1, sizeof(const_int_1));
+ setsockopt_1(sndsock, IPPROTO_IP, IP_DONTFRAG);
#endif
#if TRACEROUTE_SO_DEBUG
if (op & OPT_DEBUG)
- setsockopt(sndsock, SOL_SOCKET, SO_DEBUG,
- &const_int_1, sizeof(const_int_1));
+ setsockopt_SOL_SOCKET_1(sndsock, SO_DEBUG);
#endif
if (op & OPT_BYPASS_ROUTE)
- setsockopt(sndsock, SOL_SOCKET, SO_DONTROUTE,
- &const_int_1, sizeof(const_int_1));
+ setsockopt_SOL_SOCKET_1(sndsock, SO_DONTROUTE);
outip = xzalloc(packlen);