static int __init imq_init_module(void) { int err; if ((err = imq_init_devs())) { printk(KERN_ERR "IMQ: Error trying imq_init_devs()\n"); return err; } if ((err = imq_init_hooks())) { printk(KERN_ERR "IMQ: Error trying imq_init_hooks()\n"); imq_cleanup_devs(); return err; } printk(KERN_INFO "IMQ driver loaded successfully.\n"); #if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB) printk(KERN_INFO "\tHooking IMQ before NAT on PREROUTING.\n"); #else printk(KERN_INFO "\tHooking IMQ after NAT on PREROUTING.\n"); #endif #if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB) printk(KERN_INFO "\tHooking IMQ before NAT on POSTROUTING.\n"); #else printk(KERN_INFO "\tHooking IMQ after NAT on POSTROUTING.\n"); #endif return 0; }
static int __init imq_init_module(void) { int err; if ((err = imq_init_devs())) return err; if ((err = imq_init_hooks())) { imq_cleanup_devs(); return err; } printk(KERN_INFO "imq driver loaded.\n"); return 0; }
static void __exit imq_cleanup_module(void) { imq_unhook(); imq_cleanup_devs(); printk(KERN_INFO "IMQ driver unloaded successfully.\n"); }
static void __exit imq_cleanup_module(void) { imq_unhook(); imq_cleanup_devs(); }