summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2021-09-29 13:29:22 +0200
committerFelix Fietkau <nbd@nbd.name>2021-09-29 15:07:16 +0200
commit0e311d3f2d1a57bd3169f3ff5901cce917bd9123 (patch)
tree22c0a339513cb6d63f125d4f77fa04fe3faae877
parent62e2bb56f48ec9aa66a0ffb9a0169e1a755965fb (diff)
downloadnetifd-0e311d3f2d1a57bd3169f3ff5901cce917bd9123.tar.gz
wireless: reset number of retries on config change
Ensure that enough retries are performed, just like on a user triggered down/up cycle. Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--wireless.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/wireless.c b/wireless.c
index dafd49a..8fbb87a 100644
--- a/wireless.c
+++ b/wireless.c
@@ -502,8 +502,11 @@ wdev_handle_config_change(struct wireless_device *wdev)
enum interface_config_state state = wdev->config_state;
switch(state) {
- case IFC_NORMAL:
case IFC_RELOAD:
+ wdev->retry = WIRELESS_SETUP_RETRY;
+ wdev->retry_setup_failed = false;
+ fallthrough;
+ case IFC_NORMAL:
__wireless_device_set_up(wdev, 0);
wdev->config_state = IFC_NORMAL;
@@ -687,7 +690,6 @@ wdev_change_config(struct wireless_device *wdev, struct wireless_device *wd_new)
free(wdev->config);
wdev->config = blob_memdup(new_config);
wdev->disabled = disabled;
- wdev->retry_setup_failed = false;
wdev_set_config_state(wdev, IFC_RELOAD);
}