summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau2023-09-19 09:44:34 +0000
committerFelix Fietkau2023-09-19 09:44:38 +0000
commit7a58b995fdbecd9beed57e4d66d42cb3cf66aee2 (patch)
treec17a5e9d801c3a69fb2d40627570017f11f1cb68
parentafcd3825dad9b6a6712fbf6ed8e4434819a34009 (diff)
downloadnetifd-7a58b995fdbecd9beed57e4d66d42cb3cf66aee2.tar.gz
wireless: update prev_config on SET_DATA notify
Fixes passing phy name from setup to teardown Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--wireless.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/wireless.c b/wireless.c
index a21bf54..7ad2fcf 100644
--- a/wireless.c
+++ b/wireless.c
@@ -693,6 +693,14 @@ wdev_set_config_state(struct wireless_device *wdev, enum interface_config_state
}
static void
+wdev_prepare_prev_config(struct wireless_device *wdev)
+{
+ prepare_config(wdev, &b, false);
+ free(wdev->prev_config);
+ wdev->prev_config = blob_memdup(b.head);
+}
+
+static void
wdev_change_config(struct wireless_device *wdev, struct wireless_device *wd_new)
{
struct blob_attr *new_config = wd_new->config;
@@ -1511,6 +1519,7 @@ wireless_device_notify(struct wireless_device *wdev, struct blob_attr *data,
wireless_vlan_set_data(vlan);
else if (vif)
wireless_interface_set_data(vif);
+ wdev_prepare_prev_config(wdev);
break;
case NOTIFY_CMD_PROCESS_ADD:
return wireless_device_add_process(wdev, cur);