projects
/
project
/
netifd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
prevent deletion devices that are part of the current configuration
[project/netifd.git]
/
config.c
diff --git
a/config.c
b/config.c
index
4f3a3cd
..
23902ff
100644
(file)
--- a/
config.c
+++ b/
config.c
@@
-132,7
+132,7
@@
config_parse_bridge_interface(struct uci_section *s)
uci_to_blob(&b, s, bridge_device_type.config_params);
if (!device_create(name, &bridge_device_type, b.head)) {
uci_to_blob(&b, s, bridge_device_type.config_params);
if (!device_create(name, &bridge_device_type, b.head)) {
- D
PRINTF(
"Failed to create bridge for interface '%s'\n", s->e.name);
+ D
(INTERFACE,
"Failed to create bridge for interface '%s'\n", s->e.name);
return -EINVAL;
}
return -EINVAL;
}
@@
-148,8
+148,6
@@
config_parse_interface(struct uci_section *s)
const char *type;
struct blob_attr *config;
const char *type;
struct blob_attr *config;
- DPRINTF("Create interface '%s'\n", s->e.name);
-
blob_buf_init(&b, 0);
type = uci_lookup_option_string(uci_ctx, s, "type");
blob_buf_init(&b, 0);
type = uci_lookup_option_string(uci_ctx, s, "type");
@@
-223,7
+221,7
@@
config_diff(struct blob_attr **tb1, struct blob_attr **tb2,
if (blob_len(tb1[i]) != blob_len(tb2[i]))
goto mark;
if (blob_len(tb1[i]) != blob_len(tb2[i]))
goto mark;
- if (memcmp(tb1[i], tb2[i], blob_
pad
_len(tb1[i])) != 0)
+ if (memcmp(tb1[i], tb2[i], blob_
raw
_len(tb1[i])) != 0)
goto mark;
continue;
goto mark;
continue;
@@
-331,6
+329,7
@@
config_init_interfaces(const char *name)
uci_network = p;
config_init = true;
uci_network = p;
config_init = true;
+ device_reset_config();
config_init_devices();
uci_foreach_element(&p->sections, e) {
config_init_devices();
uci_foreach_element(&p->sections, e) {
@@
-345,5
+344,7
@@
config_init_interfaces(const char *name)
device_free_unused(NULL);
config_init = false;
device_free_unused(NULL);
config_init = false;
+ device_reset_old();
+ device_init_pending();
interface_start_pending();
}
interface_start_pending();
}