: Select source address for gateway in MASQUERADE
Subsystems (2)
PATCH 10/19 : Select source address for gateway in MASQUERADE
Select source address for gateway in MASQUERADE, based on Herbert's suggestion.
# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2004/10/20 20:27:59+02:00 [email protected]
# [NETFILTER]: Select source address for gateway in MASQUERADE
#
# Suggested by Herbert Xu <[email protected]>
#
# Signed-off-by: Patrick McHardy <[email protected]>
#
# net/ipv4/netfilter/ipt_MASQUERADE.c
# 2004/10/20 20:26:59+02:00 [email protected] +3 -1
# [NETFILTER]: Select source address for gateway in MASQUERADE
#
# Suggested by Herbert Xu <[email protected]>
#
# Signed-off-by: Patrick McHardy <[email protected]>
#
net/ipv4/netfilter/ipt_MASQUERADE.c +3 -1
@@ -81,6 +81,7 @@enum ip_conntrack_info ctinfo;const struct ip_nat_multi_range *mr;struct ip_nat_multi_range newrange; +struct rtable *rt;u_int32_t newsrc;IP_NF_ASSERT (hooknum ==NF_IP_POST_ROUTING );
@@ -95,7 +96,8 @@ || ctinfo == IP_CT_RELATED + IP_CT_IS_REPLY)); mr = targinfo; - newsrc =inet_select_addr (out,0 ,RT_SCOPE_UNIVERSE ); + rt = (struct rtable *)(*pskb)->dst; + newsrc =inet_select_addr (out, rt->rt_gateway,RT_SCOPE_UNIVERSE );if (!newsrc) {printk ("MASQUERADE: %s ate my IP address\n" , out->name);return NF_DROP ;