aboutsummaryrefslogtreecommitdiffstats
path: root/net/netfilter/ipvs/ip_vs_core.c
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2011-06-21 23:33:34 -0400
committerDavid S. Miller <davem@davemloft.net>2011-06-21 23:33:34 -0400
commit56f8a75c17abb854b5907f4a815dc4c3f186ba11 (patch)
tree6ba333b7668ce7dd04cddecf4f15a0a48b335991 /net/netfilter/ipvs/ip_vs_core.c
parentf470e5ae34d68880a38aa79ee5c102ebc2a1aef6 (diff)
ip: introduce ip_is_fragment helper inline function
There are enough instances of this: iph->frag_off & htons(IP_MF | IP_OFFSET) that a helper function is probably warranted. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/netfilter/ipvs/ip_vs_core.c')
-rw-r--r--net/netfilter/ipvs/ip_vs_core.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
index e33d48cae9f..4f77bb16d22 100644
--- a/net/netfilter/ipvs/ip_vs_core.c
+++ b/net/netfilter/ipvs/ip_vs_core.c
@@ -852,7 +852,7 @@ static int ip_vs_out_icmp(struct sk_buff *skb, int *related,
852 *related = 1; 852 *related = 1;
853 853
854 /* reassemble IP fragments */ 854 /* reassemble IP fragments */
855 if (ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) { 855 if (ip_is_fragment(ip_hdr(skb))) {
856 if (ip_vs_gather_frags(skb, ip_vs_defrag_user(hooknum))) 856 if (ip_vs_gather_frags(skb, ip_vs_defrag_user(hooknum)))
857 return NF_STOLEN; 857 return NF_STOLEN;
858 } 858 }
@@ -1156,8 +1156,7 @@ ip_vs_out(unsigned int hooknum, struct sk_buff *skb, int af)
1156 ip_vs_fill_iphdr(af, skb_network_header(skb), &iph); 1156 ip_vs_fill_iphdr(af, skb_network_header(skb), &iph);
1157 } else 1157 } else
1158#endif 1158#endif
1159 if (unlikely(ip_hdr(skb)->frag_off & htons(IP_MF|IP_OFFSET) && 1159 if (unlikely(ip_is_fragment(ip_hdr(skb)) && !pp->dont_defrag)) {
1160 !pp->dont_defrag)) {
1161 if (ip_vs_gather_frags(skb, 1160 if (ip_vs_gather_frags(skb,
1162 ip_vs_defrag_user(hooknum))) 1161 ip_vs_defrag_user(hooknum)))
1163 return NF_STOLEN; 1162 return NF_STOLEN;
@@ -1310,7 +1309,7 @@ ip_vs_in_icmp(struct sk_buff *skb, int *related, unsigned int hooknum)
1310 *related = 1; 1309 *related = 1;
1311 1310
1312 /* reassemble IP fragments */ 1311 /* reassemble IP fragments */
1313 if (ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) { 1312 if (ip_is_fragment(ip_hdr(skb))) {
1314 if (ip_vs_gather_frags(skb, ip_vs_defrag_user(hooknum))) 1313 if (ip_vs_gather_frags(skb, ip_vs_defrag_user(hooknum)))
1315 return NF_STOLEN; 1314 return NF_STOLEN;
1316 } 1315 }