fix rtsp patch

SVN-Revision: 9139
This commit is contained in:
Eugene Konev 2007-10-05 13:51:22 +00:00
parent 9a6b4fa7da
commit c0dcf4bbca

View File

@ -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);