Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 000efe1d authored by Gary Wayne Smith's avatar Gary Wayne Smith Committed by David S. Miller
Browse files

[NETFILTER]: Make NETMAP target usable in OUTPUT

parent 9baa5c67
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -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;