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);
}