netfilter: nf_nat: no IP_NAT_RANGE_MAP_IPS flags when alloc_null_binding()
authorChangli Gao <xiaosuo@gmail.com>
Thu, 16 Sep 2010 17:47:51 +0000 (19:47 +0200)
committerPatrick McHardy <kaber@trash.net>
Thu, 16 Sep 2010 17:47:51 +0000 (19:47 +0200)
When alloc_null_binding(), no IP_NAT_RNAGE_MAP_IPS in flags means no IP address
translation is needed. It isn't necessary to specify the address explicitly.

Signed-off-by: Changli Gao <xiaosuo@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
net/ipv4/netfilter/nf_nat_rule.c

index ebbd319f62f56741ea2d22da8529cda0586089a0..21c30426480b0d08cdc10a0257ee2f6ce736840f 100644 (file)
@@ -106,16 +106,15 @@ alloc_null_binding(struct nf_conn *ct, unsigned int hooknum)
 {
        /* Force range to this IP; let proto decide mapping for
           per-proto parts (hence not IP_NAT_RANGE_PROTO_SPECIFIED).
-          Use reply in case it's already been mangled (eg local packet).
        */
-       __be32 ip
-               = (HOOK2MANIP(hooknum) == IP_NAT_MANIP_SRC
-                  ? ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3.ip
-                  : ct->tuplehash[IP_CT_DIR_REPLY].tuple.src.u3.ip);
-       struct nf_nat_range range
-               = { IP_NAT_RANGE_MAP_IPS, ip, ip, { 0 }, { 0 } };
-
-       pr_debug("Allocating NULL binding for %p (%pI4)\n", ct, &ip);
+       struct nf_nat_range range;
+
+       range.flags = 0;
+       pr_debug("Allocating NULL binding for %p (%pI4)\n", ct,
+                HOOK2MANIP(hooknum) == IP_NAT_MANIP_SRC ?
+                &ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.u3.ip :
+                &ct->tuplehash[IP_CT_DIR_REPLY].tuple.src.u3.ip);
+
        return nf_nat_setup_info(ct, &range, HOOK2MANIP(hooknum));
 }