From: Jeremie Koenig Date: Thu, 27 May 2010 13:46:25 +0000 (+0200) Subject: tcpsvd,udpsvd: conditionalize usage of SO_ORIGINAL_DST X-Git-Tag: 1_18_0~399 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2ea12d8b6d2a36c5d49df1ae97b86ba287835249;p=oweals%2Fbusybox.git tcpsvd,udpsvd: conditionalize usage of SO_ORIGINAL_DST On systems without this call, $TCPORIGDSTADDR is not set. Signed-off-by: Jeremie Koenig Signed-off-by: Denys Vlasenko --- diff --git a/networking/Config.src b/networking/Config.src index fc613e8d3..2d29c423a 100644 --- a/networking/Config.src +++ b/networking/Config.src @@ -733,7 +733,6 @@ config SLATTACH config TCPSVD bool "tcpsvd" default y - depends on PLATFORM_LINUX help tcpsvd listens on a TCP port and runs a program for each new connection. @@ -966,7 +965,6 @@ config IFUPDOWN_UDHCPC_CMD_OPTIONS config UDPSVD bool "udpsvd" default y - depends on PLATFORM_LINUX help udpsvd listens on an UDP port and runs a program for each new connection. diff --git a/networking/tcpudp.c b/networking/tcpudp.c index 53e622b56..40f68258e 100644 --- a/networking/tcpudp.c +++ b/networking/tcpudp.c @@ -30,9 +30,12 @@ */ #include "libbb.h" + /* Wants etc, thus included after libbb.h: */ +#ifdef __linux__ #include /* for __be32 etc */ #include +#endif // TODO: move into this file: #include "tcpudp_perhost.h" @@ -464,6 +467,7 @@ int tcpudpsvd_main(int argc UNUSED_PARAM, char **argv) /* setup ucspi env */ const char *proto = tcp ? "TCP" : "UDP"; +#ifdef SO_ORIGINAL_DST /* Extract "original" destination addr:port * from Linux firewall. Useful when you redirect * an outbond connection to local handler, and it needs @@ -473,6 +477,7 @@ int tcpudpsvd_main(int argc UNUSED_PARAM, char **argv) xsetenv_plain("TCPORIGDSTADDR", addr); free(addr); } +#endif xsetenv_plain("PROTO", proto); xsetenv_proto(proto, "LOCALADDR", local_addr); xsetenv_proto(proto, "REMOTEADDR", remote_addr);