return -NF_DROP;
}
- *dataoff = skb_network_offset(*pskb) + (*pskb)->nh.iph->ihl * 4;
+ *dataoff = skb_network_offset(*pskb) + ip_hdrlen(*pskb);
*protonum = (*pskb)->nh.iph->protocol;
return NF_ACCEPT;
if (!help || !help->helper)
return NF_ACCEPT;
- return help->helper->help(pskb, (skb_network_offset(*pskb) +
- (*pskb)->nh.iph->ihl * 4),
+ return help->helper->help(pskb,
+ skb_network_offset(*pskb) + ip_hdrlen(*pskb),
ct, ctinfo);
}
{
/* root is playing with raw sockets. */
if ((*pskb)->len < sizeof(struct iphdr)
- || (*pskb)->nh.iph->ihl * 4 < sizeof(struct iphdr)) {
+ || ip_hdrlen(*pskb) < sizeof(struct iphdr)) {
if (net_ratelimit())
printk("ipt_hook: happy cracking.\n");
return NF_ACCEPT;