iptables: unbreak build without ipv6 support
authorPeter Korsgaard <jacmet@sunsite.dk>
Fri, 22 Jul 2011 05:31:49 +0000 (07:31 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Fri, 22 Jul 2011 05:31:49 +0000 (07:31 +0200)
Patch submitted upstream, but so far not committed.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/iptables/iptables-1.4.11.1-libxt_TCPMSS.c-unbreak-build-without-ipv6.patch [new file with mode: 0644]

diff --git a/package/iptables/iptables-1.4.11.1-libxt_TCPMSS.c-unbreak-build-without-ipv6.patch b/package/iptables/iptables-1.4.11.1-libxt_TCPMSS.c-unbreak-build-without-ipv6.patch
new file mode 100644 (file)
index 0000000..4d3c88f
--- /dev/null
@@ -0,0 +1,72 @@
+From b5bfbb9fcac3d4c87bcf6da55ed40d63d456017d Mon Sep 17 00:00:00 2001
+From: Peter Korsgaard <jacmet@sunsite.dk>
+Date: Fri, 22 Jul 2011 07:19:09 +0200
+Subject: [PATCH] libxt_TCPMSS.c: unbreak build without ipv6 after ea2a02f7
+
+ea2a02f7 (libxt_TCPMSS: use guided option parser) added an netinet/ip6.h
+include, which is not available on systems without ipv6.
+
+The ip.h / ipv6.h includes are only used to know the size of struct
+iphdr / ip6_hdr, so simply hardcode those instead.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ extensions/libxt_TCPMSS.c |   13 +++++++------
+ 1 files changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/extensions/libxt_TCPMSS.c b/extensions/libxt_TCPMSS.c
+index 2266326..310dd17 100644
+--- a/extensions/libxt_TCPMSS.c
++++ b/extensions/libxt_TCPMSS.c
+@@ -4,8 +4,6 @@
+ */
+ #include <stdio.h>
+ #include <xtables.h>
+-#include <netinet/ip.h>
+-#include <netinet/ip6.h>
+ #include <linux/netfilter/xt_TCPMSS.h>
+ enum {
+@@ -13,6 +11,9 @@ enum {
+       O_CLAMP_MSS,
+ };
++#define IPHDRSIZE     20      /* sizeof(struct iphdr) */
++#define IP6HDRSIZE    40      /* sizeof(struct ip6_hdr) */
++
+ struct mssinfo {
+       struct xt_entry_target t;
+       struct xt_tcpmss_info mss;
+@@ -29,17 +30,17 @@ hdrsize);
+ static void TCPMSS_help(void)
+ {
+-      __TCPMSS_help(sizeof(struct iphdr));
++      __TCPMSS_help(IPHDRSIZE);
+ }
+ static void TCPMSS_help6(void)
+ {
+-      __TCPMSS_help(sizeof(struct ip6_hdr));
++      __TCPMSS_help(IP6HDRSIZE);
+ }
+ static const struct xt_option_entry TCPMSS4_opts[] = {
+       {.name = "set-mss", .id = O_SET_MSS, .type = XTTYPE_UINT16,
+-       .min = 0, .max = UINT16_MAX - sizeof(struct iphdr),
++       .min = 0, .max = UINT16_MAX - IPHDRSIZE,
+        .flags = XTOPT_PUT, XTOPT_POINTER(struct xt_tcpmss_info, mss)},
+       {.name = "clamp-mss-to-pmtu", .id = O_CLAMP_MSS, .type = XTTYPE_NONE},
+       XTOPT_TABLEEND,
+@@ -47,7 +48,7 @@ static const struct xt_option_entry TCPMSS4_opts[] = {
+ static const struct xt_option_entry TCPMSS6_opts[] = {
+       {.name = "set-mss", .id = O_SET_MSS, .type = XTTYPE_UINT16,
+-       .min = 0, .max = UINT16_MAX - sizeof(struct ip6_hdr),
++       .min = 0, .max = UINT16_MAX - IP6HDRSIZE,
+        .flags = XTOPT_PUT, XTOPT_POINTER(struct xt_tcpmss_info, mss)},
+       {.name = "clamp-mss-to-pmtu", .id = O_CLAMP_MSS, .type = XTTYPE_NONE},
+       XTOPT_TABLEEND,
+-- 
+1.7.5.4
+