summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalph Sennhauser <ralph.sennhauser@gmail.com>2016-11-06 08:33:37 +0100
committerJo-Philipp Wich <jo@mein.io>2016-11-06 15:04:05 +0100
commit19acf041bfdb479e68d53699cc8940d21d76434b (patch)
treebc309750f4637ef63d9d3f429bf9bbee0257997c
parent010723ef8af18add1e592a55092d4b0e1c5e1efe (diff)
downloadfirewall3-19acf041bfdb479e68d53699cc8940d21d76434b.tar.gz
iptables: optional loading of static extensions
Make loading of static extensions optional to support vanilla iptables in it's default configuration by setting DISABLE_STATIC_EXTENSIONS instead of hackery. In case iptables is built with --disable-static libext.a, libext4.a and libext6.a which OpenWrt installs in the form of libiptext.so, libiptext4.so, libiptext6.so to save a couple more bytes are of no use or non-existent one could say. So this commit avoids requiring a tampered with iptables. Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com> [Jo-Philipp Wich: stub init_extensions*() instead to reduce amount of ifdefs] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-rw-r--r--CMakeLists.txt12
-rw-r--r--iptables.h6
2 files changed, 15 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 00d1444..e2a88e7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,11 +7,17 @@ SET(iptc_libs ip4tc)
SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
-LIST(APPEND ext_libs iptext)
-LIST(APPEND ext_libs iptext4)
+IF (NOT DISABLE_STATIC_EXTENSIONS)
+ LIST(APPEND ext_libs iptext)
+ LIST(APPEND ext_libs iptext4)
+ IF (NOT DISABLE_IPV6)
+ LIST(APPEND ext_libs iptext6)
+ ENDIF()
+ELSE()
+ ADD_DEFINITIONS(-DDISABLE_STATIC_EXTENSIONS)
+ENDIF()
IF (NOT DISABLE_IPV6)
- LIST(APPEND ext_libs iptext6)
LIST(APPEND iptc_libs ip6tc)
ELSE()
ADD_DEFINITIONS(-DDISABLE_IPV6)
diff --git a/iptables.h b/iptables.h
index bcd302d..efd7cf3 100644
--- a/iptables.h
+++ b/iptables.h
@@ -42,10 +42,16 @@
# error "Unsupported xtables version"
#endif
+#ifndef DISABLE_STATIC_EXTENSIONS
/* libipt*ext.so interfaces */
extern void init_extensions(void);
extern void init_extensions4(void);
extern void init_extensions6(void);
+#else
+static inline void init_extensions(void) { }
+static inline void init_extensions4(void) { }
+static inline void init_extensions6(void) { }
+#endif
/* Required by certain extensions like SNAT and DNAT */
extern int kernel_version;