Skip to contentSkip to conversation

: Make NETMAP target usable in OUTPUT

PATCH In review Patrick McHardy 1 participant 1 message Aug 14, 2005

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 3/4 : Make NETMAP target usable in OUTPUT

[NETFILTER]: Make NETMAP target usable in OUTPUT

---
commit 7ea3224e415f93eff91b7e21cfb99fc39b2c1e90
tree bcae188c7e54ec80398c581d73d4ffa2176b0a80
parent 17bfdaf02646cc6fafa9fa661e4c6e8775a9af3a
author Gary Wayne Smith <[email protected]> Mon, 15 Aug 2005 00:32:48 +0200 committer Patrick McHardy <[email protected]> Mon, 15 Aug 2005 00:32:48 +0200

 net/ipv4/netfilter/ipt_NETMAP.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)
net/ipv4/netfilter/ipt_NETMAP.c +5 -3
@@ -46,7 +46,8 @@ check(const char *tablename,
 		DEBUGP(MODULENAME":check: size %u.\n", targinfosize);
 		return 0;
 	}
-	if (hook_mask & ~((1 << NF_IP_PRE_ROUTING) | (1 << NF_IP_POST_ROUTING))) {
+	if (hook_mask & ~((1 << NF_IP_PRE_ROUTING) | (1 << NF_IP_POST_ROUTING) |
+	                  (1 << NF_IP_LOCAL_OUT))) {
 		DEBUGP(MODULENAME":check: bad hooks %x.\n", hook_mask);
 		return 0;
 	}
@@ -76,12 +77,13 @@ target(struct sk_buff **pskb,
 	struct ip_nat_range newrange;
 
 	IP_NF_ASSERT(hooknum == NF_IP_PRE_ROUTING
-		     || hooknum == NF_IP_POST_ROUTING);
+		     || hooknum == NF_IP_POST_ROUTING
+		     || hooknum == NF_IP_LOCAL_OUT);
 	ct = ip_conntrack_get(*pskb, &ctinfo);
 
 	netmask = ~(mr->range[0].min_ip ^ mr->range[0].max_ip);
 
-	if (hooknum == NF_IP_PRE_ROUTING)
+	if (hooknum == NF_IP_PRE_ROUTING || hooknum == NF_IP_LOCAL_OUT)
 		new_ip = (*pskb)->nh.iph->daddr & ~netmask;
 	else
 		new_ip = (*pskb)->nh.iph->saddr & ~netmask;