diff options
Diffstat (limited to 'libbb/xconnect.c')
-rw-r--r-- | libbb/xconnect.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/libbb/xconnect.c b/libbb/xconnect.c index 2a96e03dc..6e78e6363 100644 --- a/libbb/xconnect.c +++ b/libbb/xconnect.c | |||
@@ -14,13 +14,34 @@ | |||
14 | #include <sys/un.h> | 14 | #include <sys/un.h> |
15 | #include "libbb.h" | 15 | #include "libbb.h" |
16 | 16 | ||
17 | int FAST_FUNC setsockopt_int(int fd, int level, int optname, int optval) | ||
18 | { | ||
19 | return setsockopt(fd, level, optname, &optval, sizeof(int)); | ||
20 | } | ||
21 | int FAST_FUNC setsockopt_1(int fd, int level, int optname) | ||
22 | { | ||
23 | return setsockopt_int(fd, level, optname, 1); | ||
24 | } | ||
25 | int FAST_FUNC setsockopt_SOL_SOCKET_int(int fd, int optname, int optval) | ||
26 | { | ||
27 | return setsockopt_int(fd, SOL_SOCKET, optname, optval); | ||
28 | } | ||
29 | int FAST_FUNC setsockopt_SOL_SOCKET_1(int fd, int optname) | ||
30 | { | ||
31 | return setsockopt_SOL_SOCKET_int(fd, optname, 1); | ||
32 | } | ||
33 | |||
17 | void FAST_FUNC setsockopt_reuseaddr(int fd) | 34 | void FAST_FUNC setsockopt_reuseaddr(int fd) |
18 | { | 35 | { |
19 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &const_int_1, sizeof(const_int_1)); | 36 | setsockopt_SOL_SOCKET_1(fd, SO_REUSEADDR); |
20 | } | 37 | } |
21 | int FAST_FUNC setsockopt_broadcast(int fd) | 38 | int FAST_FUNC setsockopt_broadcast(int fd) |
22 | { | 39 | { |
23 | return setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &const_int_1, sizeof(const_int_1)); | 40 | return setsockopt_SOL_SOCKET_1(fd, SO_BROADCAST); |
41 | } | ||
42 | int FAST_FUNC setsockopt_keepalive(int fd) | ||
43 | { | ||
44 | return setsockopt_SOL_SOCKET_1(fd, SO_KEEPALIVE); | ||
24 | } | 45 | } |
25 | 46 | ||
26 | #ifdef SO_BINDTODEVICE | 47 | #ifdef SO_BINDTODEVICE |