Przeglądaj źródła

[NETFILTER] Inherit masq_index to slave connections

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>
Harald Welte 20 lat temu
rodzic
commit
1f494c0e04
1 zmienionych plików z 5 dodań i 0 usunięć
  1. 5 0
      net/ipv4/netfilter/ip_conntrack_core.c

+ 5 - 0
net/ipv4/netfilter/ip_conntrack_core.c

@@ -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);