[NETFILTER] Inherit masq_index to slave connections
authorHarald Welte <laforge@netfilter.org>
Sun, 31 Jul 2005 00:44:07 +0000 (17:44 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 31 Jul 2005 00:44:07 +0000 (17:44 -0700)
masq_index is used for cleanup in case the interface address changes
(such as a dialup ppp link with dynamic addreses).  Without this patch,
slave connections are not evicted in such a case, since they don't inherit
masq_index.

Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/netfilter/ip_conntrack_core.c

index 86f04e41dd8efb13bbca229cd83fe5f63aa87104..a7f0c821a9b2025483ee6636ab2e6df95147c182 100644 (file)
@@ -512,6 +512,11 @@ init_conntrack(const struct ip_conntrack_tuple *tuple,
                conntrack->master = exp->master;
 #ifdef CONFIG_IP_NF_CONNTRACK_MARK
                conntrack->mark = exp->master->mark;
+#endif
+#if defined(CONFIG_IP_NF_TARGET_MASQUERADE) || \
+    defined(CONFIG_IP_NF_TARGET_MASQUERADE_MODULE)
+               /* this is ugly, but there is no other place where to put it */
+               conntrack->nat.masq_index = exp->master->nat.masq_index;
 #endif
                nf_conntrack_get(&conntrack->master->ct_general);
                CONNTRACK_STAT_INC(expect_new);