[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    [PATCH 9/9] tcpsvd,udpsvd: conditionalize usage of SO_ORIGINAL_DST
From:       Jeremie Koenig <jk () jk ! fr ! eu ! org>
Date:       2010-07-28 21:03:18
Message-ID: 1280350998-24890-10-git-send-email-jk () jk ! fr ! eu ! org
[Download RAW message or body]

On systems without this call, $TCPORIGDSTADDR is not set.

Signed-off-by: Jeremie Koenig <jk@jk.fr.eu.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 networking/Config.src |    2 --
 networking/tcpudp.c   |    5 +++++
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/networking/Config.src b/networking/Config.src
index fc613e8..2d29c42 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 53e622b..40f6825 100644
--- a/networking/tcpudp.c
+++ b/networking/tcpudp.c
@@ -30,9 +30,12 @@
  */
 
 #include "libbb.h"
+
 /* Wants <limits.h> etc, thus included after libbb.h: */
+#ifdef __linux__
 #include <linux/types.h> /* for __be32 etc */
 #include <linux/netfilter_ipv4.h>
+#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);
-- 
1.7.1

_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic