1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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
|