diff options
author | David S. Miller <davem@davemloft.net> | 2008-11-28 05:19:15 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-28 05:19:15 -0500 |
commit | ed77a89c30fa03dcb234a84ddea710b3fb7b62da (patch) | |
tree | 69f3e2c2bbf2fdd4f742e891441f01307d1d1f49 /net/ipv4/netfilter.c | |
parent | 475ad8e2172d7f8b73af5532a8dad265b51339c2 (diff) | |
parent | d6e8cc6cc7ac77b0f9118f78c453a2e834e62709 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6
Conflicts:
net/netfilter/nf_conntrack_netlink.c
Diffstat (limited to 'net/ipv4/netfilter.c')
-rw-r--r-- | net/ipv4/netfilter.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv4/netfilter.c b/net/ipv4/netfilter.c index c99eecf89da..fdf6811c31a 100644 --- a/net/ipv4/netfilter.c +++ b/net/ipv4/netfilter.c | |||
@@ -125,6 +125,7 @@ struct ip_rt_info { | |||
125 | __be32 daddr; | 125 | __be32 daddr; |
126 | __be32 saddr; | 126 | __be32 saddr; |
127 | u_int8_t tos; | 127 | u_int8_t tos; |
128 | u_int32_t mark; | ||
128 | }; | 129 | }; |
129 | 130 | ||
130 | static void nf_ip_saveroute(const struct sk_buff *skb, | 131 | static void nf_ip_saveroute(const struct sk_buff *skb, |
@@ -138,6 +139,7 @@ static void nf_ip_saveroute(const struct sk_buff *skb, | |||
138 | rt_info->tos = iph->tos; | 139 | rt_info->tos = iph->tos; |
139 | rt_info->daddr = iph->daddr; | 140 | rt_info->daddr = iph->daddr; |
140 | rt_info->saddr = iph->saddr; | 141 | rt_info->saddr = iph->saddr; |
142 | rt_info->mark = skb->mark; | ||
141 | } | 143 | } |
142 | } | 144 | } |
143 | 145 | ||
@@ -150,6 +152,7 @@ static int nf_ip_reroute(struct sk_buff *skb, | |||
150 | const struct iphdr *iph = ip_hdr(skb); | 152 | const struct iphdr *iph = ip_hdr(skb); |
151 | 153 | ||
152 | if (!(iph->tos == rt_info->tos | 154 | if (!(iph->tos == rt_info->tos |
155 | && skb->mark == rt_info->mark | ||
153 | && iph->daddr == rt_info->daddr | 156 | && iph->daddr == rt_info->daddr |
154 | && iph->saddr == rt_info->saddr)) | 157 | && iph->saddr == rt_info->saddr)) |
155 | return ip_route_me_harder(skb, RTN_UNSPEC); | 158 | return ip_route_me_harder(skb, RTN_UNSPEC); |