+/*
+ * netifd - network interface daemon
+ * Copyright (C) 2012 Felix Fietkau <nbd@openwrt.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
uci_foreach_element(&uci_network->sections, e) {
struct uci_section *s = uci_to_section(e);
- const struct device_type *devtype;
+ const struct device_type *devtype = NULL;
const char *type, *name;
if (strcmp(s->type, "device") != 0)
continue;
type = uci_lookup_option_string(uci_ctx, s, "type");
- if (type && !strcmp(type, "bridge"))
- devtype = &bridge_device_type;
- else
+ if (type) {
+ if (!strcmp(type, "bridge"))
+ devtype = &bridge_device_type;
+ else if (!strcmp(type, "tunnel"))
+ devtype = &tunnel_device_type;
+ }
+
+ if (!devtype)
devtype = &simple_device_type;
blob_buf_init(&b, 0);
return;
}
+ vlist_update(&interfaces);
config_init = true;
device_lock();
device_reset_old();
device_init_pending();
device_free_unused(NULL);
+ vlist_flush(&interfaces);
interface_start_pending();
}