diff --git a/src/agent_cmdu.c b/src/agent_cmdu.c index 49ea9be173de966053a2d7995c0902780b266eae..607bbc1fa487a059a1af06b610b6be92641b3235 100644 --- a/src/agent_cmdu.c +++ b/src/agent_cmdu.c @@ -929,17 +929,18 @@ static int agent_gen_ch_scan_response_opc(struct agent *a, for (j = 0; j < op->num_channels; j++) { int k; + ch = op->channel_scanlist + j; - trace("scan opclass %d channel %d num_neighbors %d\n", - op->opclass, ch->channel, ch->num_neighbors); + trace("%s: scan opclass %d channel %d num_neighbors %d\n", + __func__, op->opclass, ch->channel, ch->num_neighbors); for (k = 0; k < ch->num_neighbors; k++) { struct wifi_scanres_neighbor_element *nbr = ch->nbrlist + k; - trace("trace \tneigh " MACFMT " ssid %s\n", MAC2STR(nbr->bssid), nbr->ssid); + trace("\t %s: neigh " MACFMT " ssid %s\n", __func__, MAC2STR(nbr->bssid), nbr->ssid); } } if (req_opc->classid != op->opclass) { - trace("skip opclass %d\n", op->opclass); + trace("%s: skip opclass %d\n", __func__, op->opclass); continue; } diff --git a/src/agent_map.c b/src/agent_map.c index cedc3f5d53b6cf7d7b5ebf39236a4385f77728b3..b3c5a2c16559c4c00925c821a9d85774c334d0db 100644 --- a/src/agent_map.c +++ b/src/agent_map.c @@ -5648,7 +5648,7 @@ int handle_channel_scan_request(void *agent, struct cmdu_buff *rx_cmdu, /* 'Pefrorm Fresh Scan' while 'On boot only' set in Caps */ if (a->cfg.scan_on_boot_only && ch_scan_req.mode & SCAN_REQUEST_FRESH_SCAN) { - dbg("[Scan Status] radio %s: BOOT SCAN ONLY\n\n", + dbg("%s: [Scan Status] radio %s: BOOT SCAN ONLY\n\n", __func__, re->name); /* Special status in 'boot only' mode for 'fresh scan' */ @@ -5661,7 +5661,7 @@ int handle_channel_scan_request(void *agent, struct cmdu_buff *rx_cmdu, /* Check all requested opc/chan pairs supported by radio */ else if (!scan_supported(a, scan_req, re)) { /* Scan not supported for some opc/channel pairs */ - dbg("[Status code] SCAN NOT SUPPORTED\n\n"); + dbg("%s: [Status code] SCAN NOT SUPPORTED\n\n", __func__); //TODO: separate status for individual opc/ch pairs @@ -5670,13 +5670,13 @@ int handle_channel_scan_request(void *agent, struct cmdu_buff *rx_cmdu, /* Scan too soon */ else if (!timestamp_expired(&re->last_scan_tsp, MIN_SCAN_ITV_SEC * 1000)) { - dbg("[Status code] SCAN TOO SOON\n\n"); + dbg("%s: [Status code] SCAN TOO SOON\n\n", __func__); scan_req->status = CH_SCAN_STATUS_TOO_SOON; } /* Ongoing scan in progress */ else if (re->scan_state == SCAN_SCANNING) { - dbg("[Status code] ONGOING SCAN NOT COMPLETED\n\n"); + dbg("%s: [Status code] ONGOING SCAN NOT COMPLETED\n\n", __func__); scan_req->status = CH_SCAN_STATUS_SCAN_NOT_COMPLETED; } else @@ -5699,13 +5699,13 @@ int handle_channel_scan_request(void *agent, struct cmdu_buff *rx_cmdu, /* Mark radio unscanned prior to a new scan (only) */ re->scan_state = SCAN_NONE; - trace("Trying to issue channel scan on the request of mid: %d\n", + trace("%s: Trying to issue channel scan on the request of mid: %d\n", __func__, scan_req->mid); /* Issue channel scan & check return code */ ret = issue_channel_scan(a, re, scan_req); if (ret) { - dbg("[Status code] RADIO BUSY\n\n"); + dbg("%s: [Status code] RADIO BUSY\n\n", __func__); /* Send the 'busy' response */ scan_req->status = CH_SCAN_STATUS_TOO_BUSY; @@ -5716,11 +5716,11 @@ int handle_channel_scan_request(void *agent, struct cmdu_buff *rx_cmdu, continue; } - trace("Scan started successfully.\n"); + trace("%s: Scan started successfully.\n", __func__); re->scan_state = SCAN_REQUESTED; /* Wait (up to 5min) for the results */ - timer_set(&re->available_scan_timer, 300000); + timer_set(&re->available_scan_timer, 300 * 1000); /* Store the request data */ re->scan_req = *scan_req; diff --git a/src/agent_tlv.c b/src/agent_tlv.c index c5300c7e2fae26b827858e31abf8d58307c0d5ac..d816f4647de16c0f6e128de6072105cc9458bd28 100644 --- a/src/agent_tlv.c +++ b/src/agent_tlv.c @@ -3290,7 +3290,7 @@ int agent_gen_ch_scan_response_tlv(struct agent *a, struct cmdu_buff *cmdu, /* ssid */ memcpy(&t->data[offset], nbr->ssid, strlen(nbr->ssid)); offset += strlen(nbr->ssid); - t->data[offset++] = nbr->rssi; /* rcpi */ + t->data[offset++] = nbr->rssi; /* rssi */ t->data[offset++] = strlen(bw_str); //+ 1; /* BW length */ memcpy(&t->data[offset], bw_str, strlen(bw_str)); diff --git a/src/agent_ubus.c b/src/agent_ubus.c index 99fdade97709cc15f8593fef682c0dbd7d823a8e..14bcfca931e2e38012fb7bc822386b70c8573ca8 100644 --- a/src/agent_ubus.c +++ b/src/agent_ubus.c @@ -954,8 +954,10 @@ static int agent_timers(struct ubus_context *ctx, struct ubus_object *obj, { struct blob_buf bb; struct agent *a = container_of(obj, struct agent, obj); + struct wifi_radio_element *re = NULL; void *t; struct timespec now = {0}; + void *b; timestamp_update(&now); @@ -977,6 +979,20 @@ static int agent_timers(struct ubus_context *ctx, struct ubus_object *obj, #endif /* AGENT_ISLAND_PREVENTION */ blobmsg_add_u32(&bb, "disable_unconnected_bstas_scheduler", timer_remaining_ms(&a->disable_unconnected_bstas_scheduler)); blobmsg_add_u32(&bb, "onboarding_scheduler", timer_remaining_ms(&a->onboarding_scheduler)); + b = blobmsg_open_array(&bb, "scan"); + + list_for_each_entry(re, &a->radiolist, list) { + void *tt; + + tt = blobmsg_open_table(&bb, ""); + blobmsg_add_string(&bb, "name", re->name); + blobmsg_add_u32(&bb, "timeout", timer_remaining_ms(&re->available_scan_timer)); + blobmsg_add_u32(&bb, "state", re->scan_state); + blobmsg_close_table(&bb, tt); + } + + blobmsg_close_array(&bb, b); + blobmsg_close_table(&bb, t); ubus_send_reply(ctx, req, bb.head); blob_buf_free(&bb);