diff --git a/components/esp_wifi/include/esp_wifi_types.h b/components/esp_wifi/include/esp_wifi_types.h index 321dce9483..846947fda8 100644 --- a/components/esp_wifi/include/esp_wifi_types.h +++ b/components/esp_wifi/include/esp_wifi_types.h @@ -702,8 +702,7 @@ typedef struct { char svc_info[ESP_WIFI_MAX_SVC_INFO_LEN]; /**< Service info shared in Publish frame */ uint8_t single_replied_event:1; /**< Give single Replied event or every time */ uint8_t datapath_reqd:1; /**< NAN Datapath required for the service */ - uint8_t fsd_reqd:1; /**< Further Service Discovery required */ - uint8_t reserved:5; /**< Reserved */ + uint8_t reserved:6; /**< Reserved */ } wifi_nan_publish_cfg_t; /** diff --git a/components/esp_wifi/lib b/components/esp_wifi/lib index 9b3c7a2e60..7dadfb9fe6 160000 --- a/components/esp_wifi/lib +++ b/components/esp_wifi/lib @@ -1 +1 @@ -Subproject commit 9b3c7a2e6090077242a0531a228edde0784091d9 +Subproject commit 7dadfb9fe6cb25c79900fb58c96543dfc6d3dfca diff --git a/components/esp_wifi/wifi_apps/src/nan_app.c b/components/esp_wifi/wifi_apps/src/nan_app.c index 0e53164cc1..0b0c60863f 100644 --- a/components/esp_wifi/wifi_apps/src/nan_app.c +++ b/components/esp_wifi/wifi_apps/src/nan_app.c @@ -989,8 +989,19 @@ esp_err_t esp_wifi_nan_get_peer_records(int *num_peer_records, uint8_t own_svc_i MACADDR_COPY(peer_record[peer_num].peer_nmi, temp->peer_nmi); p_ndl = nan_find_ndl(0, temp->peer_nmi); if (p_ndl) { - peer_record[peer_num].ndp_id = p_ndl->ndp_id; - MACADDR_COPY(peer_record[peer_num].peer_ndi, p_ndl->peer_ndi); + if (p_ndl->own_role == ESP_NAN_PUBLISH) { + if (p_ndl->publisher_id == own_svc_id) { + peer_record[peer_num].ndp_id = p_ndl->ndp_id; + MACADDR_COPY(peer_record[peer_num].peer_ndi, p_ndl->peer_ndi); + } + } else if (p_ndl->own_role == ESP_NAN_SUBSCRIBE) { + struct peer_svc_info *peer_info = NULL; + peer_info = nan_find_peer_svc(own_svc_id, temp->svc_id, temp->peer_nmi); + if (peer_info && peer_info->svc_id == p_ndl->publisher_id) { + peer_record[peer_num].ndp_id = p_ndl->ndp_id; + MACADDR_COPY(peer_record[peer_num].peer_ndi, p_ndl->peer_ndi); + } + } } else { peer_record[peer_num].ndp_id = 0; MACADDR_COPY(peer_record[peer_num].peer_ndi, null_mac);