On Tue, 2012-05-08 at 09:49 +0530, rohan puri wrote: > > > On Tue, May 8, 2012 at 9:37 AM, Chir0n <io.chir0n@xxxxxxxxx> wrote: > I'm using this Makefile: > > obj-m += hello.o > > all: > make -C /lib/modules/$(shell uname -r)/build M=$(PWD) > modules > > clean: > make -C /lib/modules/$(shell uname -r)/build M=$(PWD) > clean > > > The hello.c is this: > > #include <linux/kernel.h> > #include <linux/module.h> > #include <linux/netfilter.h> > #include <linux/netfilter_ipv4.h> > > static struct nf_hook_ops nfho; //struct holding set > of hook function options > > //function to be called by hook > unsigned int hook_func(unsigned int hooknum, struct sk_buff > **skb, const struct net_device *in, const struct net_device > *out, int (*okfn)(struct sk_buff *)) > { > printk(KERN_INFO "packet dropped\n"); > //log to var/log/messages > return NF_DROP; > //drops the packet > } > > //Called when module loaded using 'insmod' > int init_module() > { > nfho.hook = hook_func; //function to > call when conditions below met > nfho.hooknum = NF_IP_PRE_ROUTING; //called right > after packet recieved, first hook in Netfilter > nfho.pf = PF_INET; //IPV4 packets > nfho.priority = NF_IP_PRI_FIRST; //set to highest > priority over all other hook functions > nf_register_hook(&nfho); //register hook > > return 0; //return 0 for > success > } > > //Called when module unloaded using 'rmmod' > void cleanup_module() > { > nf_unregister_hook(&nfho); //cleanup – > unregister hook > } > > > Here are the error message: > > $ make > make -C /lib/modules/3.3.2-6.fc16.x86_64/build > M=/home/fabio/Desktop/modules modules > make[1]: Entering directory > `/usr/src/kernels/3.3.2-6.fc16.x86_64' > CC [M] /home/fabio/Desktop/modules/hello.o > /home/fabio/Desktop/modules/hello.c: In function > ‘init_module’: > /home/fabio/Desktop/modules/hello.c:18:13: warning: assignment > from incompatible pointer type [enabled by default] > /home/fabio/Desktop/modules/hello.c:19:18: error: > ‘NF_IP_PRE_ROUTING’ undeclared (first use in this function) > /home/fabio/Desktop/modules/hello.c:19:18: note: each > undeclared identifier is reported only once for each function > it appears in > make[2]: *** [/home/fabio/Desktop/modules/hello.o] Error 1 > make[1]: *** [_module_/home/fabio/Desktop/modules] Error 2 > make[1]: Leaving directory > `/usr/src/kernels/3.3.2-6.fc16.x86_64' > make: *** [all] Error 2 > > _______________________________________________ > Kernelnewbies mailing list > Kernelnewbies@xxxxxxxxxxxxxxxxx > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > > Hi, > > > You need to include header which defines "NF_IP_PRE_ROUTING" > > > - Rohan Hi, But I have declared this header: #include <linux/netfilter_ipv4.h> _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies