static unsigned int main_hook(unsigned int hooknum , struct sk_buff *skb , const struct net_device *in , const struct net_device *out, int (*okfn)(struct sk_buff*))
{
int i=0;
struct iphdr *iph = ip_hdr(skb);
unsigned long saddr = 0 , daddr = 0;
unsigned long snet = 0; //dnet =0;
int dst_cnt=0 , src_cnt=0;
//printk("netfilter called\n");
//down(&sema);
Netfilter_Execute++;
saddr = iph->saddr;
daddr = iph->daddr;
Когда я запускаю эту программу модуля, Linux выключается и перезагружается. Когда я тестирую программу, iph
имеет значение null, поэтому saddr = iph->saddr and daddr = iph->daddr
был не прав.Не знаю почему ip_hdr (skb) return NULL
Не знаю почему iph = ip_hdr(skb)
NULL
.
Я использую NF_INET_PRE_ROUTING –