fix rtsp patch
SVN-Revision: 9139
This commit is contained in:
parent
9a6b4fa7da
commit
c0dcf4bbca
@ -1,7 +1,7 @@
|
|||||||
Index: linux-2.6.23-rc9/include/linux/netfilter/nf_conntrack_rtsp.h
|
Index: linux-2.6.23-rc9/include/linux/netfilter/nf_conntrack_rtsp.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.6.23-rc9/include/linux/netfilter/nf_conntrack_rtsp.h 2007-10-03 23:41:29.000000000 +0800
|
+++ linux-2.6.23-rc9/include/linux/netfilter/nf_conntrack_rtsp.h 2007-10-05 21:26:39.000000000 +0800
|
||||||
@@ -0,0 +1,63 @@
|
@@ -0,0 +1,63 @@
|
||||||
+/*
|
+/*
|
||||||
+ * RTSP extension for IP connection tracking.
|
+ * RTSP extension for IP connection tracking.
|
||||||
@ -69,7 +69,7 @@ Index: linux-2.6.23-rc9/include/linux/netfilter/nf_conntrack_rtsp.h
|
|||||||
Index: linux-2.6.23-rc9/include/linux/netfilter_helpers.h
|
Index: linux-2.6.23-rc9/include/linux/netfilter_helpers.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.6.23-rc9/include/linux/netfilter_helpers.h 2007-10-03 23:41:29.000000000 +0800
|
+++ linux-2.6.23-rc9/include/linux/netfilter_helpers.h 2007-10-05 21:26:39.000000000 +0800
|
||||||
@@ -0,0 +1,133 @@
|
@@ -0,0 +1,133 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Helpers for netfiler modules. This file provides implementations for basic
|
+ * Helpers for netfiler modules. This file provides implementations for basic
|
||||||
@ -207,7 +207,7 @@ Index: linux-2.6.23-rc9/include/linux/netfilter_helpers.h
|
|||||||
Index: linux-2.6.23-rc9/include/linux/netfilter_mime.h
|
Index: linux-2.6.23-rc9/include/linux/netfilter_mime.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.6.23-rc9/include/linux/netfilter_mime.h 2007-10-03 23:41:29.000000000 +0800
|
+++ linux-2.6.23-rc9/include/linux/netfilter_mime.h 2007-10-05 21:26:39.000000000 +0800
|
||||||
@@ -0,0 +1,89 @@
|
@@ -0,0 +1,89 @@
|
||||||
+/*
|
+/*
|
||||||
+ * MIME functions for netfilter modules. This file provides implementations
|
+ * MIME functions for netfilter modules. This file provides implementations
|
||||||
@ -300,8 +300,8 @@ Index: linux-2.6.23-rc9/include/linux/netfilter_mime.h
|
|||||||
+#endif /* _NETFILTER_MIME_H */
|
+#endif /* _NETFILTER_MIME_H */
|
||||||
Index: linux-2.6.23-rc9/net/ipv4/netfilter/Makefile
|
Index: linux-2.6.23-rc9/net/ipv4/netfilter/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- linux-2.6.23-rc9.orig/net/ipv4/netfilter/Makefile 2007-10-02 15:04:56.000000000 +0800
|
--- linux-2.6.23-rc9.orig/net/ipv4/netfilter/Makefile 2007-10-05 21:26:39.000000000 +0800
|
||||||
+++ linux-2.6.23-rc9/net/ipv4/netfilter/Makefile 2007-10-03 23:41:29.000000000 +0800
|
+++ linux-2.6.23-rc9/net/ipv4/netfilter/Makefile 2007-10-05 21:26:39.000000000 +0800
|
||||||
@@ -23,6 +23,7 @@
|
@@ -23,6 +23,7 @@
|
||||||
obj-$(CONFIG_NF_NAT_FTP) += nf_nat_ftp.o
|
obj-$(CONFIG_NF_NAT_FTP) += nf_nat_ftp.o
|
||||||
obj-$(CONFIG_NF_NAT_H323) += nf_nat_h323.o
|
obj-$(CONFIG_NF_NAT_H323) += nf_nat_h323.o
|
||||||
@ -312,8 +312,8 @@ Index: linux-2.6.23-rc9/net/ipv4/netfilter/Makefile
|
|||||||
obj-$(CONFIG_NF_NAT_SNMP_BASIC) += nf_nat_snmp_basic.o
|
obj-$(CONFIG_NF_NAT_SNMP_BASIC) += nf_nat_snmp_basic.o
|
||||||
Index: linux-2.6.23-rc9/net/netfilter/Kconfig
|
Index: linux-2.6.23-rc9/net/netfilter/Kconfig
|
||||||
===================================================================
|
===================================================================
|
||||||
--- linux-2.6.23-rc9.orig/net/netfilter/Kconfig 2007-10-02 15:04:56.000000000 +0800
|
--- linux-2.6.23-rc9.orig/net/netfilter/Kconfig 2007-10-05 21:26:39.000000000 +0800
|
||||||
+++ linux-2.6.23-rc9/net/netfilter/Kconfig 2007-10-03 23:41:29.000000000 +0800
|
+++ linux-2.6.23-rc9/net/netfilter/Kconfig 2007-10-05 21:26:39.000000000 +0800
|
||||||
@@ -249,6 +249,16 @@
|
@@ -249,6 +249,16 @@
|
||||||
|
|
||||||
To compile it as a module, choose M here. If unsure, say N.
|
To compile it as a module, choose M here. If unsure, say N.
|
||||||
@ -333,8 +333,8 @@ Index: linux-2.6.23-rc9/net/netfilter/Kconfig
|
|||||||
depends on EXPERIMENTAL && NF_CONNTRACK && NETFILTER_NETLINK
|
depends on EXPERIMENTAL && NF_CONNTRACK && NETFILTER_NETLINK
|
||||||
Index: linux-2.6.23-rc9/net/netfilter/Makefile
|
Index: linux-2.6.23-rc9/net/netfilter/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- linux-2.6.23-rc9.orig/net/netfilter/Makefile 2007-10-02 15:04:56.000000000 +0800
|
--- linux-2.6.23-rc9.orig/net/netfilter/Makefile 2007-10-05 21:26:39.000000000 +0800
|
||||||
+++ linux-2.6.23-rc9/net/netfilter/Makefile 2007-10-03 23:41:29.000000000 +0800
|
+++ linux-2.6.23-rc9/net/netfilter/Makefile 2007-10-05 21:26:39.000000000 +0800
|
||||||
@@ -33,6 +33,7 @@
|
@@ -33,6 +33,7 @@
|
||||||
obj-$(CONFIG_NF_CONNTRACK_SANE) += nf_conntrack_sane.o
|
obj-$(CONFIG_NF_CONNTRACK_SANE) += nf_conntrack_sane.o
|
||||||
obj-$(CONFIG_NF_CONNTRACK_SIP) += nf_conntrack_sip.o
|
obj-$(CONFIG_NF_CONNTRACK_SIP) += nf_conntrack_sip.o
|
||||||
@ -345,8 +345,8 @@ Index: linux-2.6.23-rc9/net/netfilter/Makefile
|
|||||||
obj-$(CONFIG_NETFILTER_XTABLES) += x_tables.o xt_tcpudp.o
|
obj-$(CONFIG_NETFILTER_XTABLES) += x_tables.o xt_tcpudp.o
|
||||||
Index: linux-2.6.23-rc9/net/ipv4/netfilter/Kconfig
|
Index: linux-2.6.23-rc9/net/ipv4/netfilter/Kconfig
|
||||||
===================================================================
|
===================================================================
|
||||||
--- linux-2.6.23-rc9.orig/net/ipv4/netfilter/Kconfig 2007-10-02 15:04:56.000000000 +0800
|
--- linux-2.6.23-rc9.orig/net/ipv4/netfilter/Kconfig 2007-10-05 21:26:39.000000000 +0800
|
||||||
+++ linux-2.6.23-rc9/net/ipv4/netfilter/Kconfig 2007-10-03 23:41:29.000000000 +0800
|
+++ linux-2.6.23-rc9/net/ipv4/netfilter/Kconfig 2007-10-05 21:26:39.000000000 +0800
|
||||||
@@ -314,6 +314,11 @@
|
@@ -314,6 +314,11 @@
|
||||||
depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
|
depends on IP_NF_IPTABLES && NF_CONNTRACK && NF_NAT
|
||||||
default NF_NAT && NF_CONNTRACK_IRC
|
default NF_NAT && NF_CONNTRACK_IRC
|
||||||
@ -362,8 +362,8 @@ Index: linux-2.6.23-rc9/net/ipv4/netfilter/Kconfig
|
|||||||
Index: linux-2.6.23-rc9/net/netfilter/nf_conntrack_rtsp.c
|
Index: linux-2.6.23-rc9/net/netfilter/nf_conntrack_rtsp.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.6.23-rc9/net/netfilter/nf_conntrack_rtsp.c 2007-10-03 23:41:29.000000000 +0800
|
+++ linux-2.6.23-rc9/net/netfilter/nf_conntrack_rtsp.c 2007-10-05 21:46:43.000000000 +0800
|
||||||
@@ -0,0 +1,515 @@
|
@@ -0,0 +1,513 @@
|
||||||
+/*
|
+/*
|
||||||
+ * RTSP extension for IP connection tracking
|
+ * RTSP extension for IP connection tracking
|
||||||
+ * (C) 2003 by Tom Marshall <tmarshall at real.com>
|
+ * (C) 2003 by Tom Marshall <tmarshall at real.com>
|
||||||
@ -687,7 +687,7 @@ Index: linux-2.6.23-rc9/net/netfilter/nf_conntrack_rtsp.c
|
|||||||
+ DEBUGP("udp transport found, ports=(%d,%hu,%hu)\n",
|
+ DEBUGP("udp transport found, ports=(%d,%hu,%hu)\n",
|
||||||
+ (int)expinfo.pbtype, expinfo.loport, expinfo.hiport);
|
+ (int)expinfo.pbtype, expinfo.loport, expinfo.hiport);
|
||||||
+
|
+
|
||||||
+ exp = nf_conntrack_expect_alloc(ct);
|
+ exp = nf_ct_expect_alloc(ct);
|
||||||
+ if (!exp) {
|
+ if (!exp) {
|
||||||
+ ret = NF_DROP;
|
+ ret = NF_DROP;
|
||||||
+ goto out;
|
+ goto out;
|
||||||
@ -695,7 +695,7 @@ Index: linux-2.6.23-rc9/net/netfilter/nf_conntrack_rtsp.c
|
|||||||
+
|
+
|
||||||
+ be_loport = htons(expinfo.loport);
|
+ be_loport = htons(expinfo.loport);
|
||||||
+
|
+
|
||||||
+ nf_conntrack_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
|
+ nf_ct_expect_init(exp, ct->tuplehash[!dir].tuple.src.l3num,
|
||||||
+ &ct->tuplehash[!dir].tuple.src.u3, &ct->tuplehash[!dir].tuple.dst.u3,
|
+ &ct->tuplehash[!dir].tuple.src.u3, &ct->tuplehash[!dir].tuple.dst.u3,
|
||||||
+ IPPROTO_UDP, NULL, &be_loport);
|
+ IPPROTO_UDP, NULL, &be_loport);
|
||||||
+
|
+
|
||||||
@ -706,7 +706,7 @@ Index: linux-2.6.23-rc9/net/netfilter/nf_conntrack_rtsp.c
|
|||||||
+
|
+
|
||||||
+ if (expinfo.pbtype == pb_range) {
|
+ if (expinfo.pbtype == pb_range) {
|
||||||
+ DEBUGP("Changing expectation mask to handle multiple ports\n");
|
+ DEBUGP("Changing expectation mask to handle multiple ports\n");
|
||||||
+ exp->mask.dst.u.udp.port = 0xfffe;
|
+ exp->mask.src.u.udp.port = 0xfffe;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ DEBUGP("expect_related %u.%u.%u.%u:%u-%u.%u.%u.%u:%u\n",
|
+ DEBUGP("expect_related %u.%u.%u.%u:%u-%u.%u.%u.%u:%u\n",
|
||||||
@ -718,11 +718,11 @@ Index: linux-2.6.23-rc9/net/netfilter/nf_conntrack_rtsp.c
|
|||||||
+ if (nf_nat_rtsp_hook)
|
+ if (nf_nat_rtsp_hook)
|
||||||
+ /* pass the request off to the nat helper */
|
+ /* pass the request off to the nat helper */
|
||||||
+ ret = nf_nat_rtsp_hook(pskb, ctinfo, hdrsoff, hdrslen, &expinfo, exp);
|
+ ret = nf_nat_rtsp_hook(pskb, ctinfo, hdrsoff, hdrslen, &expinfo, exp);
|
||||||
+ else if (nf_conntrack_expect_related(exp) != 0) {
|
+ else if (nf_ct_expect_related(exp) != 0) {
|
||||||
+ INFOP("nf_conntrack_expect_related failed\n");
|
+ INFOP("nf_ct_expect_related failed\n");
|
||||||
+ ret = NF_DROP;
|
+ ret = NF_DROP;
|
||||||
+ }
|
+ }
|
||||||
+ nf_conntrack_expect_put(exp);
|
+ nf_ct_expect_put(exp);
|
||||||
+ goto out;
|
+ goto out;
|
||||||
+ }
|
+ }
|
||||||
+out:
|
+out:
|
||||||
@ -845,8 +845,6 @@ Index: linux-2.6.23-rc9/net/netfilter/nf_conntrack_rtsp.c
|
|||||||
+ memset(hlpr, 0, sizeof(struct nf_conntrack_helper));
|
+ memset(hlpr, 0, sizeof(struct nf_conntrack_helper));
|
||||||
+ hlpr->tuple.src.u.tcp.port = htons(ports[i]);
|
+ hlpr->tuple.src.u.tcp.port = htons(ports[i]);
|
||||||
+ hlpr->tuple.dst.protonum = IPPROTO_TCP;
|
+ hlpr->tuple.dst.protonum = IPPROTO_TCP;
|
||||||
+ hlpr->mask.src.u.tcp.port = 0xFFFF;
|
|
||||||
+ hlpr->mask.dst.protonum = 0xFF;
|
|
||||||
+ hlpr->max_expected = max_outstanding;
|
+ hlpr->max_expected = max_outstanding;
|
||||||
+ hlpr->timeout = setup_timeout;
|
+ hlpr->timeout = setup_timeout;
|
||||||
+ hlpr->me = THIS_MODULE;
|
+ hlpr->me = THIS_MODULE;
|
||||||
@ -882,7 +880,7 @@ Index: linux-2.6.23-rc9/net/netfilter/nf_conntrack_rtsp.c
|
|||||||
Index: linux-2.6.23-rc9/net/ipv4/netfilter/nf_nat_rtsp.c
|
Index: linux-2.6.23-rc9/net/ipv4/netfilter/nf_nat_rtsp.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
+++ linux-2.6.23-rc9/net/ipv4/netfilter/nf_nat_rtsp.c 2007-10-03 23:41:29.000000000 +0800
|
+++ linux-2.6.23-rc9/net/ipv4/netfilter/nf_nat_rtsp.c 2007-10-05 21:41:16.000000000 +0800
|
||||||
@@ -0,0 +1,496 @@
|
@@ -0,0 +1,496 @@
|
||||||
+/*
|
+/*
|
||||||
+ * RTSP extension for TCP NAT alteration
|
+ * RTSP extension for TCP NAT alteration
|
||||||
@ -1043,7 +1041,7 @@ Index: linux-2.6.23-rc9/net/ipv4/netfilter/nf_nat_rtsp.c
|
|||||||
+ for (loport = prtspexp->loport; loport != 0; loport++) /* XXX: improper wrap? */
|
+ for (loport = prtspexp->loport; loport != 0; loport++) /* XXX: improper wrap? */
|
||||||
+ {
|
+ {
|
||||||
+ t->dst.u.udp.port = htons(loport);
|
+ t->dst.u.udp.port = htons(loport);
|
||||||
+ if (nf_conntrack_expect_related(exp) == 0)
|
+ if (nf_ct_expect_related(exp) == 0)
|
||||||
+ {
|
+ {
|
||||||
+ DEBUGP("using port %hu\n", loport);
|
+ DEBUGP("using port %hu\n", loport);
|
||||||
+ break;
|
+ break;
|
||||||
@ -1059,9 +1057,9 @@ Index: linux-2.6.23-rc9/net/ipv4/netfilter/nf_nat_rtsp.c
|
|||||||
+ for (loport = prtspexp->loport; loport != 0; loport += 2) /* XXX: improper wrap? */
|
+ for (loport = prtspexp->loport; loport != 0; loport += 2) /* XXX: improper wrap? */
|
||||||
+ {
|
+ {
|
||||||
+ t->dst.u.udp.port = htons(loport);
|
+ t->dst.u.udp.port = htons(loport);
|
||||||
+ if (nf_conntrack_expect_related(exp) == 0)
|
+ if (nf_ct_expect_related(exp) == 0)
|
||||||
+ {
|
+ {
|
||||||
+ hiport = loport + ~exp->mask.dst.u.udp.port;
|
+ hiport = loport + ~exp->mask.src.u.udp.port;
|
||||||
+ DEBUGP("using ports %hu-%hu\n", loport, hiport);
|
+ DEBUGP("using ports %hu-%hu\n", loport, hiport);
|
||||||
+ break;
|
+ break;
|
||||||
+ }
|
+ }
|
||||||
@ -1076,7 +1074,7 @@ Index: linux-2.6.23-rc9/net/ipv4/netfilter/nf_nat_rtsp.c
|
|||||||
+ for (loport = prtspexp->loport; loport != 0; loport++) /* XXX: improper wrap? */
|
+ for (loport = prtspexp->loport; loport != 0; loport++) /* XXX: improper wrap? */
|
||||||
+ {
|
+ {
|
||||||
+ t->dst.u.udp.port = htons(loport);
|
+ t->dst.u.udp.port = htons(loport);
|
||||||
+ if (nf_conntrack_expect_related(exp) == 0)
|
+ if (nf_ct_expect_related(exp) == 0)
|
||||||
+ {
|
+ {
|
||||||
+ DEBUGP("using port %hu (1 of 2)\n", loport);
|
+ DEBUGP("using port %hu (1 of 2)\n", loport);
|
||||||
+ break;
|
+ break;
|
||||||
@ -1085,7 +1083,7 @@ Index: linux-2.6.23-rc9/net/ipv4/netfilter/nf_nat_rtsp.c
|
|||||||
+ for (hiport = prtspexp->hiport; hiport != 0; hiport++) /* XXX: improper wrap? */
|
+ for (hiport = prtspexp->hiport; hiport != 0; hiport++) /* XXX: improper wrap? */
|
||||||
+ {
|
+ {
|
||||||
+ t->dst.u.udp.port = htons(hiport);
|
+ t->dst.u.udp.port = htons(hiport);
|
||||||
+ if (nf_conntrack_expect_related(exp) == 0)
|
+ if (nf_ct_expect_related(exp) == 0)
|
||||||
+ {
|
+ {
|
||||||
+ DEBUGP("using port %hu (2 of 2)\n", hiport);
|
+ DEBUGP("using port %hu (2 of 2)\n", hiport);
|
||||||
+ break;
|
+ break;
|
||||||
@ -1151,7 +1149,7 @@ Index: linux-2.6.23-rc9/net/ipv4/netfilter/nf_nat_rtsp.c
|
|||||||
+ off, diff, NULL, 0))
|
+ off, diff, NULL, 0))
|
||||||
+ {
|
+ {
|
||||||
+ /* mangle failed, all we can do is bail */
|
+ /* mangle failed, all we can do is bail */
|
||||||
+ nf_conntrack_unexpect_related(exp);
|
+ nf_ct_unexpect_related(exp);
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+ }
|
+ }
|
||||||
+ get_skb_tcpdata(*pskb, &ptcp, &tcplen);
|
+ get_skb_tcpdata(*pskb, &ptcp, &tcplen);
|
||||||
@ -1221,7 +1219,7 @@ Index: linux-2.6.23-rc9/net/ipv4/netfilter/nf_nat_rtsp.c
|
|||||||
+ origoff, origlen, rbuf, rbuflen))
|
+ origoff, origlen, rbuf, rbuflen))
|
||||||
+ {
|
+ {
|
||||||
+ /* mangle failed, all we can do is bail */
|
+ /* mangle failed, all we can do is bail */
|
||||||
+ nf_conntrack_unexpect_related(exp);
|
+ nf_ct_unexpect_related(exp);
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+ }
|
+ }
|
||||||
+ get_skb_tcpdata(*pskb, &ptcp, &tcplen);
|
+ get_skb_tcpdata(*pskb, &ptcp, &tcplen);
|
||||||
|
Loading…
Reference in New Issue
Block a user