diff options
author | Felix Fietkau <nbd@nbd.name> | 2020-11-30 12:08:32 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2020-11-30 12:08:32 +0100 |
commit | 524310276f2084d419cb0f2de58b0f42641d987f (patch) | |
tree | 9c57837d806e4b0f9ae9f7317145d52fa676832b /device.c | |
parent | 14f0e8ff928f2adb1c2ee65f11eb1710bb463fef (diff) | |
download | netifd-524310276f2084d419cb0f2de58b0f42641d987f.tar.gz |
system-linux: move device settings handling to device.c
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'device.c')
-rw-r--r-- | device.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -143,10 +143,17 @@ static int set_device_state(struct device *dev, bool state) if (!dev->ifindex) return -1; + system_if_get_settings(dev, &dev->orig_settings); + /* Only keep orig settings based on what needs to be set */ + dev->orig_settings.valid_flags = dev->orig_settings.flags; + dev->orig_settings.flags &= dev->settings.flags; + system_if_apply_settings(dev, &dev->settings, dev->settings.flags); + system_if_up(dev); - } - else + } else { system_if_down(dev); + system_if_apply_settings(dev, &dev->orig_settings, dev->orig_settings.flags); + } return 0; } |