From: Ralph Sennhauser Date: Sun, 6 Nov 2016 07:33:37 +0000 (+0100) Subject: iptables: optional loading of static extensions X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=19acf041bfdb479e68d53699cc8940d21d76434b;p=oweals%2Ffirewall3.git 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 [Jo-Philipp Wich: stub init_extensions*() instead to reduce amount of ifdefs] Signed-off-by: Jo-Philipp Wich --- 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;