]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
Add IPv6 support to tcpmss match
authorYasuyuki KOZAKAI <yasuyuki@netfilter.org>
Tue, 24 Jul 2007 06:57:56 +0000 (06:57 +0000)
committerYasuyuki KOZAKAI <yasuyuki@netfilter.org>
Tue, 24 Jul 2007 06:57:56 +0000 (06:57 +0000)
extensions/Makefile
extensions/libxt_tcpmss.c [moved from extensions/libipt_tcpmss.c with 74% similarity]
include/linux/netfilter/xt_tcpmss.h [new file with mode: 0644]
include/linux/netfilter_ipv4/ipt_tcpmss.h [deleted file]

index 8bfb40d53100a5b0461a9f463e3b3c01b8e9b21e..b0df81c5f078e4660a250b5c4156f277f6f5e600 100644 (file)
@@ -5,9 +5,9 @@
 # header files are present in the include/linux directory of this iptables
 # package (HW)
 #
-PF_EXT_SLIB:=ah addrtype comment connlimit connmark conntrack dscp ecn esp hashlimit helper icmp iprange length limit mac owner physdev pkttype policy realm sctp standard state tcp tcpmss tos ttl unclean CLASSIFY CONNMARK DNAT DSCP ECN LOG MARK MASQUERADE MIRROR NETMAP NFQUEUE REDIRECT REJECT SAME SNAT TCPMSS TOS TTL TRACE ULOG
+PF_EXT_SLIB:=ah addrtype comment connlimit connmark conntrack dscp ecn esp hashlimit helper icmp iprange length limit mac owner physdev pkttype policy realm sctp standard state tcp tos ttl unclean CLASSIFY CONNMARK DNAT DSCP ECN LOG MARK MASQUERADE MIRROR NETMAP NFQUEUE REDIRECT REJECT SAME SNAT TCPMSS TOS TTL TRACE ULOG
 PF6_EXT_SLIB:=connlimit connmark eui64 hl icmp6 length limit mac owner physdev policy standard state tcp CONNMARK HL LOG NFQUEUE MARK TCPMSS TRACE
-PFX_EXT_SLIB:=mark multiport udp NOTRACK
+PFX_EXT_SLIB:=mark multiport tcpmss udp NOTRACK
 
 ifeq ($(DO_SELINUX), 1)
 PF_EXT_SE_SLIB:=SECMARK CONNSECMARK
similarity index 74%
rename from extensions/libipt_tcpmss.c
rename to extensions/libxt_tcpmss.c
index e17c020263164372887dda72d330e799dede8902..db3dd901b6ef267ed3d212ba3f1c7f88cd59fe9f 100644 (file)
@@ -5,8 +5,8 @@
 #include <stdlib.h>
 #include <getopt.h>
 
-#include <iptables.h>
-#include <linux/netfilter_ipv4/ipt_tcpmss.h>
+#include <xtables.h>
+#include <linux/netfilter/xt_tcpmss.h>
 
 /* Function which prints out usage message. */
 static void
@@ -64,8 +64,8 @@ parse(int c, char **argv, int invert, unsigned int *flags,
       unsigned int *nfcache,
       struct xt_entry_match **match)
 {
-       struct ipt_tcpmss_match_info *mssinfo =
-               (struct ipt_tcpmss_match_info *)(*match)->data;
+       struct xt_tcpmss_match_info *mssinfo =
+               (struct xt_tcpmss_match_info *)(*match)->data;
 
        switch (c) {
        case '1':
@@ -112,8 +112,8 @@ print(const void *ip,
       const struct xt_entry_match *match,
       int numeric)
 {
-       const struct ipt_tcpmss_match_info *mssinfo =
-               (const struct ipt_tcpmss_match_info *)match->data;
+       const struct xt_tcpmss_match_info *mssinfo =
+               (const struct xt_tcpmss_match_info *)match->data;
 
        printf("tcpmss match ");
        print_tcpmss(mssinfo->mss_min, mssinfo->mss_max,
@@ -124,20 +124,36 @@ print(const void *ip,
 static void
 save(const void *ip, const struct xt_entry_match *match)
 {
-       const struct ipt_tcpmss_match_info *mssinfo =
-               (const struct ipt_tcpmss_match_info *)match->data;
+       const struct xt_tcpmss_match_info *mssinfo =
+               (const struct xt_tcpmss_match_info *)match->data;
 
        printf("--mss ");
        print_tcpmss(mssinfo->mss_min, mssinfo->mss_max,
                     mssinfo->invert, 0);
 }
 
-static struct iptables_match tcpmss = {
+static struct xtables_match tcpmss = {
        .next           = NULL,
+       .family         = AF_INET,
        .name           = "tcpmss",
        .version        = IPTABLES_VERSION,
-       .size           = IPT_ALIGN(sizeof(struct ipt_tcpmss_match_info)),
-       .userspacesize  = IPT_ALIGN(sizeof(struct ipt_tcpmss_match_info)),
+       .size           = XT_ALIGN(sizeof(struct xt_tcpmss_match_info)),
+       .userspacesize  = XT_ALIGN(sizeof(struct xt_tcpmss_match_info)),
+       .help           = &help,
+       .parse          = &parse,
+       .final_check    = &final_check,
+       .print          = &print,
+       .save           = &save,
+       .extra_opts     = opts
+};
+
+static struct xtables_match tcpmss6 = {
+       .next           = NULL,
+       .family         = AF_INET6,
+       .name           = "tcpmss",
+       .version        = IPTABLES_VERSION,
+       .size           = XT_ALIGN(sizeof(struct xt_tcpmss_match_info)),
+       .userspacesize  = XT_ALIGN(sizeof(struct xt_tcpmss_match_info)),
        .help           = &help,
        .parse          = &parse,
        .final_check    = &final_check,
@@ -148,5 +164,6 @@ static struct iptables_match tcpmss = {
 
 void _init(void)
 {
-       register_match(&tcpmss);
+       xtables_register_match(&tcpmss);
+       xtables_register_match(&tcpmss6);
 }
diff --git a/include/linux/netfilter/xt_tcpmss.h b/include/linux/netfilter/xt_tcpmss.h
new file mode 100644 (file)
index 0000000..e03274c
--- /dev/null
@@ -0,0 +1,9 @@
+#ifndef _XT_TCPMSS_MATCH_H
+#define _XT_TCPMSS_MATCH_H
+
+struct xt_tcpmss_match_info {
+    u_int16_t mss_min, mss_max;
+    u_int8_t invert;
+};
+
+#endif /*_XT_TCPMSS_MATCH_H*/
diff --git a/include/linux/netfilter_ipv4/ipt_tcpmss.h b/include/linux/netfilter_ipv4/ipt_tcpmss.h
deleted file mode 100644 (file)
index e2b1439..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _IPT_TCPMSS_MATCH_H
-#define _IPT_TCPMSS_MATCH_H
-
-struct ipt_tcpmss_match_info {
-    u_int16_t mss_min, mss_max;
-    u_int8_t invert;
-};
-
-#endif /*_IPT_TCPMSS_MATCH_H*/