int ssh_interceptor_init_external_interfaces(SshInterceptor interceptor) { /* Register interface notifiers. */ if (!ssh_interceptor_iface_init(interceptor)) { printk(KERN_ERR "VPNClient packet processing engine failed to start " "(interface notifier installation error).\n"); goto error0; } /* Register the firewall hooks. */ if (!ssh_interceptor_ip_glue_init(interceptor)) { printk(KERN_ERR "VPNClient packet processing engine failed to start " "(firewall glue installation error).\n"); goto error1; } return 0; ssh_interceptor_ip_glue_uninit(interceptor); error1: local_bh_disable(); ssh_interceptor_iface_uninit(interceptor); local_bh_enable(); error0: return -EBUSY; }
static void ssh_interceptor_uninit_external_interfaces(SshInterceptor interceptor) { ssh_interceptor_virtual_adapter_uninit(interceptor); /* Remove netfilter hooks */ ssh_interceptor_ip_glue_uninit(interceptor); }