diff --git a/src/agent.c b/src/agent.c index 8c8155064951d7a32bfc0a8a2275879ddc01c92f..545638bb1a2c16b0f195b659a07aa022916f2f33 100644 --- a/src/agent.c +++ b/src/agent.c @@ -2737,6 +2737,7 @@ out_str: #ifdef EASYMESH_VENDOR_EXT else if (!strcmp(event, "probe-req")) { struct netif_ap *iface = get_netif_by_name(a, ifname); + struct netif_bk *bk_iface = NULL; static const struct blobmsg_policy data_attr[2] = { [0] = { .name = "macaddr", .type = BLOBMSG_TYPE_STRING }, [1] = { .name = "rssi", .type = BLOBMSG_TYPE_INT32 }, @@ -2746,8 +2747,12 @@ out_str: char mac_str[18] = {0}; uint8_t mac[6] = {0}; - if (iface == NULL) - return; + if (iface == NULL) { + bk_iface = agent_get_netif_bk_by_name(a, ifname); + if (bk_iface == NULL) { + return; + } + } blobmsg_parse(data_attr, 2, bdata, blobmsg_data(tb[2]), blobmsg_data_len(tb[2])); @@ -2760,7 +2765,7 @@ out_str: /* send vendor probe request to map controller */ cmdu = agent_gen_vendor_specific_probe_req(a, - mac, iface->bssid, + mac, iface != NULL ? iface->bssid : bk_iface->bssid, rssi_to_rcpi((int32_t)blobmsg_get_u32(bdata[1]))); if (cmdu) { agent_send_cmdu(a, cmdu);