diff options
author | Ralph Sennhauser <ralph.sennhauser@gmail.com> | 2016-11-06 08:33:37 +0100 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2016-11-06 15:04:05 +0100 |
commit | 19acf041bfdb479e68d53699cc8940d21d76434b (patch) | |
tree | bc309750f4637ef63d9d3f429bf9bbee0257997c | |
parent | 010723ef8af18add1e592a55092d4b0e1c5e1efe (diff) | |
download | firewall3-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.txt | 12 | ||||
-rw-r--r-- | iptables.h | 6 |
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) @@ -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; |