iptables: add some musl portability fixes

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 34313
owl
Florian Fainelli 2012-11-23 20:02:23 +00:00
parent ba6c8bd614
commit 14ed3f0f22
5 changed files with 148 additions and 9 deletions

View File

@ -79,7 +79,7 @@ Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
} }
static void recent_save(const void *ip, const struct xt_entry_match *match) static void recent_save(const void *ip, const struct xt_entry_match *match)
@@ -211,6 +229,8 @@ static void recent_save(const void *ip, @@ -211,6 +229,8 @@ static void recent_save(const void *ip,
printf("--rsource "); printf("--rsource ");
if (info->side == XT_RECENT_DEST) if (info->side == XT_RECENT_DEST)
printf("--rdest "); printf("--rdest ");
@ -90,7 +90,7 @@ Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
static struct xtables_match recent_mt_reg = { static struct xtables_match recent_mt_reg = {
--- a/extensions/libxt_recent.man --- a/extensions/libxt_recent.man
+++ b/extensions/libxt_recent.man +++ b/extensions/libxt_recent.man
@@ -41,6 +41,11 @@ This option must be used in conjunction @@ -41,6 +41,11 @@ This option must be used in conjunction
\fB\-\-update\fP. When used, this will narrow the match to only happen when the \fB\-\-update\fP. When used, this will narrow the match to only happen when the
address is in the list and was seen within the last given number of seconds. address is in the list and was seen within the last given number of seconds.
.TP .TP

View File

@ -8,7 +8,7 @@
char *buf = NULL; char *buf = NULL;
char *argv[4]; char *argv[4];
int status; int status;
@@ -348,6 +349,7 @@ int xtables_insmod(const char *modname, @@ -348,6 +349,7 @@ int xtables_insmod(const char *modname,
free(buf); free(buf);
if (WIFEXITED(status) && WEXITSTATUS(status) == 0) if (WIFEXITED(status) && WEXITSTATUS(status) == 0)
return 0; return 0;

View File

@ -1,6 +1,6 @@
--- iptables-1.4.10/include/linux/types.h.orig 2011-11-07 00:08:33.000000000 +0100 --- a/include/linux/types.h
+++ iptables-1.4.10/include/linux/types.h 2011-11-07 00:09:25.000000000 +0100 +++ b/include/linux/types.h
@@ -34,5 +34,9 @@ @@ -34,5 +34,9 @@ typedef __u64 __bitwise __be64;
typedef __u16 __bitwise __sum16; typedef __u16 __bitwise __sum16;
typedef __u32 __bitwise __wsum; typedef __u32 __bitwise __wsum;

View File

@ -1,6 +1,6 @@
--- a/extensions/GNUmakefile.in --- a/extensions/GNUmakefile.in
+++ b/extensions/GNUmakefile.in +++ b/extensions/GNUmakefile.in
@@ -40,9 +40,24 @@ @@ -40,9 +40,24 @@ pfx_build_mod := $(patsubst ${srcdir}/li
pfx_build_mod := $(filter-out @blacklist_modules@,${pfx_build_mod}) pfx_build_mod := $(filter-out @blacklist_modules@,${pfx_build_mod})
pf4_build_mod := $(filter-out @blacklist_modules@,${pf4_build_mod}) pf4_build_mod := $(filter-out @blacklist_modules@,${pf4_build_mod})
pf6_build_mod := $(filter-out @blacklist_modules@,${pf6_build_mod}) pf6_build_mod := $(filter-out @blacklist_modules@,${pf6_build_mod})
@ -28,7 +28,7 @@
pfx_solibs := $(patsubst %,libxt_%.so,${pfx_build_mod}) pfx_solibs := $(patsubst %,libxt_%.so,${pfx_build_mod})
pf4_solibs := $(patsubst %,libipt_%.so,${pf4_build_mod}) pf4_solibs := $(patsubst %,libipt_%.so,${pf4_build_mod})
pf6_solibs := $(patsubst %,libip6t_%.so,${pf6_build_mod}) pf6_solibs := $(patsubst %,libip6t_%.so,${pf6_build_mod})
@@ -54,10 +69,10 @@ @@ -54,10 +69,10 @@ pf6_solibs := $(patsubst %,libip6t_%.
targets := libext4.a libext6.a matches4.man matches6.man \ targets := libext4.a libext6.a matches4.man matches6.man \
targets4.man targets6.man targets4.man targets6.man
targets_install := targets_install :=
@ -43,7 +43,7 @@
.SECONDARY: .SECONDARY:
@@ -107,8 +122,8 @@ @@ -107,8 +122,8 @@ libext4.a: initext4.o ${libext4_objs}
libext6.a: initext6.o ${libext6_objs} libext6.a: initext6.o ${libext6_objs}
${AM_VERBOSE_AR} ${AR} crs $@ $^; ${AM_VERBOSE_AR} ${AR} crs $@ $^;

View File

@ -0,0 +1,139 @@
--- a/extensions/libip6t_ipv6header.c
+++ b/extensions/libip6t_ipv6header.c
@@ -15,6 +15,9 @@ on whether they contain certain headers
#include <sys/types.h>
#include <linux/netfilter_ipv6/ip6t_ipv6header.h>
+#ifndef IPPROTO_HOPOPTS
+# define IPPROTO_HOPOPTS 0
+#endif
/* This maybe required
#include <linux/in.h>
--- a/extensions/libxt_TCPOPTSTRIP.c
+++ b/extensions/libxt_TCPOPTSTRIP.c
@@ -16,6 +16,21 @@
#ifndef TCPOPT_MD5SIG
# define TCPOPT_MD5SIG 19
#endif
+#ifndef TCPOPT_MAXSEG
+# define TCPOPT_MAXSEG 2
+#endif
+#ifndef TCPOPT_WINDOW
+# define TCPOPT_WINDOW 3
+#endif
+#ifndef TCPOPT_SACK_PERMITTED
+# define TCPOPT_SACK_PERMITTED 4
+#endif
+#ifndef TCPOPT_SACK
+# define TCPOPT_SACK 5
+#endif
+#ifndef TCPOPT_TIMESTAMP
+# define TCPOPT_TIMESTAMP 8
+#endif
enum {
FLAG_STRIP = 1 << 0,
--- a/include/libiptc/ipt_kernel_headers.h
+++ b/include/libiptc/ipt_kernel_headers.h
@@ -5,7 +5,6 @@
#include <limits.h>
-#if defined(__GLIBC__) && __GLIBC__ == 2
#include <netinet/ip.h>
#include <netinet/in.h>
#include <netinet/ip_icmp.h>
@@ -13,15 +12,4 @@
#include <netinet/udp.h>
#include <net/if.h>
#include <sys/types.h>
-#else /* libc5 */
-#include <sys/socket.h>
-#include <linux/ip.h>
-#include <linux/in.h>
-#include <linux/if.h>
-#include <linux/icmp.h>
-#include <linux/tcp.h>
-#include <linux/udp.h>
-#include <linux/types.h>
-#include <linux/in6.h>
-#endif
#endif
--- a/include/linux/netfilter/xt_osf.h
+++ b/include/linux/netfilter/xt_osf.h
@@ -21,6 +21,9 @@
#define _XT_OSF_H
#include <linux/types.h>
+#if !defined(__UCLIBC__) && !defined(__GLIBC_)
+#include <linux/tcp.h>
+#endif
#define MAXGENRELEN 32
--- a/include/linux/netfilter_ipv4/ip_tables.h
+++ b/include/linux/netfilter_ipv4/ip_tables.h
@@ -16,6 +16,7 @@
#define _IPTABLES_H
#include <linux/types.h>
+#include <sys/types.h>
#include <linux/netfilter_ipv4.h>
--- a/ip6tables-restore.c
+++ b/ip6tables-restore.c
@@ -11,7 +11,7 @@
*/
#include <getopt.h>
-#include <sys/errno.h>
+#include <errno.h>
#include <stdbool.h>
#include <string.h>
#include <stdio.h>
--- a/ip6tables-save.c
+++ b/ip6tables-save.c
@@ -6,7 +6,7 @@
* This code is distributed under the terms of GNU GPL v2
*/
#include <getopt.h>
-#include <sys/errno.h>
+#include <errno.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
--- a/iptables-restore.c
+++ b/iptables-restore.c
@@ -8,7 +8,7 @@
*/
#include <getopt.h>
-#include <sys/errno.h>
+#include <errno.h>
#include <stdbool.h>
#include <string.h>
#include <stdio.h>
--- a/iptables-save.c
+++ b/iptables-save.c
@@ -6,7 +6,7 @@
*
*/
#include <getopt.h>
-#include <sys/errno.h>
+#include <errno.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
--- a/iptables-xml.c
+++ b/iptables-xml.c
@@ -9,7 +9,7 @@
*/
#include <getopt.h>
-#include <sys/errno.h>
+#include <errno.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>