From 316a457fe4fe4f54cef263e34cea48f379d77531 Mon Sep 17 00:00:00 2001 From: Jakob Olsson <jakob.olsson@iopsys.eu> Date: Fri, 4 Mar 2022 15:42:16 +0100 Subject: [PATCH] agent: retain radio apcfg mids when reloading radios --- src/agent.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/agent.c b/src/agent.c index b9fe375ab..9c8eb0c9d 100644 --- a/src/agent.c +++ b/src/agent.c @@ -4481,6 +4481,8 @@ static void _enumerate_wifi_objects(struct ubus_request *req, int type, struct radio_apcfg_state { char name[16]; enum autocfg_state state; + uint16_t mid; + uint16_t wsc_mid; } apcfg_state[WIFI_DEVICE_MAX_NUM] = {0}; struct agent *a = (struct agent *)req->priv; struct json_object *json_msg; @@ -4511,6 +4513,9 @@ static void _enumerate_wifi_objects(struct ubus_request *req, int type, strncpy(apcfg_state[i].name, a->radios[i].name, IFNAMSIZ - 1); apcfg_state[i].state = a->radios[i].state; + apcfg_state[i].mid = a->radios[i].mid; + apcfg_state[i].wsc_mid = a->radios[i].wsc_mid; + } prev_len = a->num_radios; /* clears radio apcfg states */ @@ -4542,6 +4547,8 @@ static void _enumerate_wifi_objects(struct ubus_request *req, int type, if (!strncmp(apcfg_state[j].name, a->radios[i].name, IFNAMSIZ - 1)) { a->radios[i].state = apcfg_state[j].state; + a->radios[i].mid = apcfg_state[j].mid; + a->radios[i].wsc_mid = apcfg_state[j].wsc_mid; } } @@ -6034,6 +6041,8 @@ int wifiagent_get_status(struct ubus_context *ctx, blobmsg_add_u32(&bb, "bandwidth", re->current_bandwidth); blobmsg_add_u32(&bb, "opclass", re->current_opclass); blobmsg_add_u32(&bb, "autocfg_state", re->state); + blobmsg_add_u32(&bb, "autocfg_search_mid", re->mid); + blobmsg_add_u32(&bb, "autocfg_wsc_mid", re->wsc_mid); blobmsg_close_table(&bb, t); } blobmsg_close_array(&bb, a); -- GitLab