loading of subjectPublicKeyInfo wrapped keys using KEY_ANY (openssl format)
[strongswan.git] / src / dumm / iface.c
index 56b4322..3c1bfc4 100644 (file)
@@ -3,7 +3,7 @@
  * Hochschule fuer Technik Rapperswil
  * Copyright (C) 2002 Jeff Dike
  *
- * Based on the "tunctl" utlity from Jeff Dike.
+ * Based on the "tunctl" utility from Jeff Dike.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
@@ -37,6 +37,8 @@ struct private_iface_t {
        char *guestif;
        /** device name at host (tap0) */
        char *hostif;
+       /** bridge this interface is attached to */
+       bridge_t *bridge;
        /** mconsole for guest */
        mconsole_t *mconsole;
 };
@@ -58,6 +60,14 @@ static char* get_hostif(private_iface_t *this)
 }
 
 /**
+ * Implementation of iface_t.set_bridge.
+ */
+static void set_bridge(private_iface_t *this, bridge_t *bridge)
+{
+       this->bridge = bridge;
+}
+
+/**
  * destroy the tap device
  */
 static bool destroy_tap(private_iface_t *this)
@@ -121,6 +131,10 @@ static char* create_tap(private_iface_t *this, char *guest)
  */
 static void destroy(private_iface_t *this)
 {
+       if (this->bridge)
+       {
+               this->bridge->disconnect_iface(this->bridge, &this->public);
+       }
        this->mconsole->del_iface(this->mconsole, this->guestif);
        destroy_tap(this);
        free(this->guestif);
@@ -137,11 +151,13 @@ iface_t *iface_create(char *guest, char *guestif, mconsole_t *mconsole)
        
        this->public.get_hostif = (char*(*)(iface_t*))get_hostif;
        this->public.get_guestif = (char*(*)(iface_t*))get_guestif;
+       this->public.set_bridge = (void(*)(iface_t*, bridge_t*))set_bridge;
        this->public.destroy = (void*)destroy;
 
        this->mconsole = mconsole;
        this->guestif = strdup(guestif);
        this->hostif = create_tap(this, guest);
+       this->bridge = NULL;
        if (this->hostif == NULL)
        {
                destroy_tap(this);