summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--device.c1
-rw-r--r--tunnel.c4
2 files changed, 2 insertions, 3 deletions
diff --git a/device.c b/device.c
index 1d842cf..46177a2 100644
--- a/device.c
+++ b/device.c
@@ -482,6 +482,7 @@ void
device_free(struct device *dev)
{
__devlock++;
+ free(dev->config);
dev->type->free(dev);
__devlock--;
}
diff --git a/tunnel.c b/tunnel.c
index b6e902a..b45ac98 100644
--- a/tunnel.c
+++ b/tunnel.c
@@ -6,7 +6,6 @@
struct tunnel {
struct device dev;
device_state_cb set_state;
- struct blob_attr *config;
};
static int
@@ -16,7 +15,7 @@ tunnel_set_state(struct device *dev, bool up)
int ret;
if (up) {
- ret = system_add_ip_tunnel(dev->ifname, tun->config);
+ ret = system_add_ip_tunnel(dev->ifname, dev->config);
if (ret != 0)
return ret;
}
@@ -36,7 +35,6 @@ tunnel_create(const char *name, struct blob_attr *attr)
tun = calloc(1, sizeof(*tun));
dev = &tun->dev;
- tun->config = config_memdup(attr);
device_init(dev, &tunnel_device_type, name);
tun->set_state = dev->set_state;
dev->set_state = tunnel_set_state;