diff --git a/wifimngr.c b/wifimngr.c index fccdb4527cc8441be2528ef77e4d76d8d2f69252..277b4dedb9e2f3907f6938bda7a4c6e8df85c02a 100644 --- a/wifimngr.c +++ b/wifimngr.c @@ -5245,6 +5245,7 @@ int wl_apmld_status(struct ubus_context *ctx, struct ubus_object *obj, a = blobmsg_open_array(&bb, "links"); for (i = 0; i < num; i++) { + struct wifi_ap ap = {}; char std_buf2[32] = "802.11"; char sec_str[128] = {0}; char std_buf[32] = {0}; @@ -5260,30 +5261,32 @@ int wl_apmld_status(struct ubus_context *ctx, struct ubus_object *obj, blobmsg_add_u32(&bb, "ccfs0", link[i].ccfs0); blobmsg_add_u32(&bb, "ccfs1", link[i].ccfs1); blobmsg_add_u32(&bb, "bandwidth", bw_value(link[i].bandwidth)); - blobmsg_add_u32(&bb, "puncture_bitmap", (int)BUF_GET_LE16(link[i].ap.bss.puncture)); - blobmsg_add_macaddr(&bb, "macaddr", link[i].macaddr); - wifi_security_str(link[i].ap.bss.security, sec_str); - blobmsg_add_string(&bb, "security", sec_str); - blobmsg_add_string(&bb, "encryption", etostr(link[i].ap.bss.rsn.pair_ciphers, - enc_buf, sizeof(enc_buf), 14, wifi_cipherstr)); - snprintf(std_buf2 + strlen(std_buf2), 31, "%s", - etostr(link[i].ap.bss.oper_std, std_buf, sizeof(std_buf), WIFI_NUM_STD, standard_str)); - blobmsg_add_string(&bb, "standard", std_buf2); - - blobmsg_add_u32(&bb, "num_stations", link[i].ap.bss.load.sta_count); - blobmsg_add_u32(&bb, "max_stations", link[i].ap.assoclist_max); - blobmsg_add_u32(&bb, "utilization", link[i].ap.bss.load.utilization); - blobmsg_add_u32(&bb, "adm_capacity", link[i].ap.bss.load.available); - blobmsg_add_u8(&bb, "hidden", !link[i].ap.ssid_advertised ? true : false); - - wl_dump_supp_security(&bb, link[i].ap.sec.supp_modes); - wl_dump_capabilities(link[i].ap.bss.band, &bb, - &link[i].ap.bss.caps, - link[i].ap.bss.cbitmap, - sizeof(link[i].ap.bss.cbitmap)); - //wl_ap_wmm_status(&bb, link[i].ap.ac); + if (!wifi_ap_info_band(ifname, link[i].band, &ap)) { + blobmsg_add_u32(&bb, "puncture_bitmap", (int)BUF_GET_LE16(ap.bss.puncture)); + wifi_security_str(ap.bss.security, sec_str); + blobmsg_add_string(&bb, "security", sec_str); + blobmsg_add_string(&bb, "encryption", etostr(ap.bss.rsn.pair_ciphers, + enc_buf, sizeof(enc_buf), 14, wifi_cipherstr)); + + snprintf(std_buf2 + strlen(std_buf2), 31, "%s", + etostr(ap.bss.oper_std, std_buf, sizeof(std_buf), WIFI_NUM_STD, standard_str)); + blobmsg_add_string(&bb, "standard", std_buf2); + + blobmsg_add_u32(&bb, "num_stations", ap.bss.load.sta_count); + blobmsg_add_u32(&bb, "max_stations", ap.assoclist_max); + blobmsg_add_u32(&bb, "utilization", ap.bss.load.utilization); + blobmsg_add_u32(&bb, "adm_capacity", ap.bss.load.available); + blobmsg_add_u8(&bb, "hidden", !ap.ssid_advertised ? true : false); + + wl_dump_supp_security(&bb, ap.sec.supp_modes); + wl_dump_capabilities(ap.bss.band, &bb, + &ap.bss.caps, + ap.bss.cbitmap, + sizeof(ap.bss.cbitmap)); + //wl_ap_wmm_status(&bb, link[i].ap.ac); + } blobmsg_close_table(&bb, t); } blobmsg_close_array(&bb, a);