projects
/
project
/
netifd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
save and restore previous device settings when overriding them via config
[project/netifd.git]
/
device.c
diff --git
a/device.c
b/device.c
index
784905b
..
f5a719a
100644
(file)
--- a/
device.c
+++ b/
device.c
@@
-178,30
+178,31
@@
static const struct device_type alias_device_type = {
void
device_init_settings(struct device *dev, struct blob_attr **tb)
{
void
device_init_settings(struct device *dev, struct blob_attr **tb)
{
+ struct device_settings *s = &dev->settings;
struct blob_attr *cur;
struct ether_addr *ea;
struct blob_attr *cur;
struct ether_addr *ea;
-
dev
->flags = 0;
+
s
->flags = 0;
dev->disabled = false;
if ((cur = tb[DEV_ATTR_ENABLED]))
device_set_disabled(dev, !blobmsg_get_bool(cur));
if ((cur = tb[DEV_ATTR_MTU])) {
dev->disabled = false;
if ((cur = tb[DEV_ATTR_ENABLED]))
device_set_disabled(dev, !blobmsg_get_bool(cur));
if ((cur = tb[DEV_ATTR_MTU])) {
-
dev
->mtu = blobmsg_get_u32(cur);
-
dev
->flags |= DEV_OPT_MTU;
+
s
->mtu = blobmsg_get_u32(cur);
+
s
->flags |= DEV_OPT_MTU;
}
if ((cur = tb[DEV_ATTR_TXQUEUELEN])) {
}
if ((cur = tb[DEV_ATTR_TXQUEUELEN])) {
-
dev
->txqueuelen = blobmsg_get_u32(cur);
-
dev
->flags |= DEV_OPT_TXQUEUELEN;
+
s
->txqueuelen = blobmsg_get_u32(cur);
+
s
->flags |= DEV_OPT_TXQUEUELEN;
}
if ((cur = tb[DEV_ATTR_MACADDR])) {
ea = ether_aton(blob_data(cur));
if (ea) {
}
if ((cur = tb[DEV_ATTR_MACADDR])) {
ea = ether_aton(blob_data(cur));
if (ea) {
- memcpy(
dev->macaddr, ea, sizeof(dev->macaddr)
);
-
dev
->flags |= DEV_OPT_MACADDR;
+ memcpy(
s->macaddr, ea, 6
);
+
s
->flags |= DEV_OPT_MACADDR;
}
}
}
}
}
}
@@
-672,6
+673,8
@@
device_dump_status(struct blob_buf *b, struct device *dev)
blobmsg_add_u8(b, "up", !!dev->active);
if (dev->type->dump_info)
dev->type->dump_info(dev, b);
blobmsg_add_u8(b, "up", !!dev->active);
if (dev->type->dump_info)
dev->type->dump_info(dev, b);
+ else
+ system_if_dump_info(dev, b);
s = blobmsg_open_table(b, "statistics");
if (dev->type->dump_stats)
s = blobmsg_open_table(b, "statistics");
if (dev->type->dump_stats)