add udebug support
[project/netifd.git] / wireless.c
index a21bf54d6f5dbfe20bf2686f3e9f72445bdac5c3..91663e8579946db188320ec8fabe78f71482d9ce 100644 (file)
@@ -692,6 +692,14 @@ wdev_set_config_state(struct wireless_device *wdev, enum interface_config_state
                __wireless_device_set_down(wdev);
 }
 
+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)
 {
@@ -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);
@@ -1531,7 +1540,7 @@ wdev_check_network_enabled(struct wireless_device *wdev)
        struct wireless_interface *vif;
        struct interface *iface;
        struct blob_attr *cur;
-       int rem;
+       size_t rem;
 
        vlist_for_each_element(&wdev->interfaces, vif, node) {
                int enabled = -1;