[netfilter-cvslog] r4206 - in trunk/patch-o-matic-ng/patchlets/sip-conntrack-nat: . linux-2.6.13/net/ipv4/netfilter

laforge at netfilter.org laforge at netfilter.org
Sun Jul 31 09:00:47 CEST 2005


Author: laforge at netfilter.org
Date: 2005-07-31 09:00:46 +0200 (Sun, 31 Jul 2005)
New Revision: 4206

Modified:
   trunk/patch-o-matic-ng/patchlets/sip-conntrack-nat/info
   trunk/patch-o-matic-ng/patchlets/sip-conntrack-nat/linux-2.6.13/net/ipv4/netfilter/ip_conntrack_sip.c
   trunk/patch-o-matic-ng/patchlets/sip-conntrack-nat/linux-2.6.13/net/ipv4/netfilter/ip_nat_sip.c
Log:
port sip helper to 2.6.13 API changes (Christian Hentschel)


Modified: trunk/patch-o-matic-ng/patchlets/sip-conntrack-nat/info
===================================================================
--- trunk/patch-o-matic-ng/patchlets/sip-conntrack-nat/info	2005-07-31 06:59:24 UTC (rev 4205)
+++ trunk/patch-o-matic-ng/patchlets/sip-conntrack-nat/info	2005-07-31 07:00:46 UTC (rev 4206)
@@ -1,5 +1,5 @@
 Title: SIP connection tracking and NAT helper
 Author: Christian Hentschel <chentschel at arnet.com.ar>
-Status: Alpha
+Status: Testing
 Repository: extra
 Requires: linux-2.6 >= 2.6.11

Modified: trunk/patch-o-matic-ng/patchlets/sip-conntrack-nat/linux-2.6.13/net/ipv4/netfilter/ip_conntrack_sip.c
===================================================================
--- trunk/patch-o-matic-ng/patchlets/sip-conntrack-nat/linux-2.6.13/net/ipv4/netfilter/ip_conntrack_sip.c	2005-07-31 06:59:24 UTC (rev 4205)
+++ trunk/patch-o-matic-ng/patchlets/sip-conntrack-nat/linux-2.6.13/net/ipv4/netfilter/ip_conntrack_sip.c	2005-07-31 07:00:46 UTC (rev 4206)
@@ -25,6 +25,7 @@
 
 static DEFINE_SPINLOCK(sipbf_lock);
 
+
 #define MAX_PORTS	8
 static int ports[MAX_PORTS];
 static int ports_c;
@@ -248,8 +249,9 @@
 			const char *dptr)
 {
 	struct ip_conntrack_expect *exp;
+	int ret;
 	
-	exp = ip_conntrack_expect_alloc();
+	exp = ip_conntrack_expect_alloc(ct);
 	if (exp == NULL)
 		return NF_DROP;
 
@@ -260,17 +262,20 @@
 	exp->mask = ((struct ip_conntrack_tuple) 
 		{ { 0xFFFFFFFF, { 0 } },
 		  { 0xFFFFFFFF, { .udp = { 0xFFFF } }, 0xFF }});
-
+	
 	exp->expectfn = NULL;
-	exp->master = ct;
 	
 	if (ip_nat_sdp_hook)
-		return ip_nat_sdp_hook(pskb, ctinfo, exp, dptr);
-	else if (ip_conntrack_expect_related(exp) != 0) {
-		ip_conntrack_expect_free(exp);
-		return NF_DROP;
+		ret = ip_nat_sdp_hook(pskb, ctinfo, exp, dptr);
+	else {
+		if (ip_conntrack_expect_related(exp) != 0)
+			ret = NF_DROP;
+		else
+			ret = NF_ACCEPT;
 	}
-	return NF_ACCEPT;
+	ip_conntrack_expect_put(exp);
+
+	return ret;
 }
 
 static int sip_help(struct sk_buff **pskb,

Modified: trunk/patch-o-matic-ng/patchlets/sip-conntrack-nat/linux-2.6.13/net/ipv4/netfilter/ip_nat_sip.c
===================================================================
--- trunk/patch-o-matic-ng/patchlets/sip-conntrack-nat/linux-2.6.13/net/ipv4/netfilter/ip_nat_sip.c	2005-07-31 06:59:24 UTC (rev 4205)
+++ trunk/patch-o-matic-ng/patchlets/sip-conntrack-nat/linux-2.6.13/net/ipv4/netfilter/ip_nat_sip.c	2005-07-31 07:00:46 UTC (rev 4206)
@@ -8,16 +8,14 @@
  * published by the Free Software Foundation.
  */
 
-#include <linux/ctype.h>
 #include <linux/module.h>
 #include <linux/netfilter_ipv4.h>
 #include <linux/ip.h>
 #include <linux/udp.h>
-#include <linux/moduleparam.h>
 #include <net/udp.h>
+
 #include <linux/netfilter_ipv4/ip_nat.h>
 #include <linux/netfilter_ipv4/ip_nat_helper.h>
-#include <linux/netfilter_ipv4/ip_nat_rule.h>
 #include <linux/netfilter_ipv4/ip_conntrack_helper.h>
 #include <linux/netfilter_ipv4/ip_conntrack_sip.h>
 
@@ -220,10 +218,8 @@
 			break;
 	}
 	
-	if (port == 0) {
-		ip_conntrack_expect_free(exp);
+	if (port == 0)
 		return NF_DROP;
-	}
 	
 	if (!mangle_sdp(pskb, ctinfo, ct, newip, port, dptr)) {
 		ip_conntrack_unexpect_related(exp);




More information about the netfilter-cvslog mailing list