1 /*
2  * SPDX-FileCopyrightText: 2019-2022 Espressif Systems (Shanghai) CO LTD
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #include <string.h>
8 #include "esp_log.h"
9 #include "esp_netif.h"
10 #include "esp_wifi_ap_get_sta_list.h"
11 
12 
esp_wifi_ap_get_sta_list_with_ip(const wifi_sta_list_t * wifi_sta_list,wifi_sta_mac_ip_list_t * wifi_sta_ip_mac_list)13 esp_err_t esp_wifi_ap_get_sta_list_with_ip(const wifi_sta_list_t *wifi_sta_list, wifi_sta_mac_ip_list_t *wifi_sta_ip_mac_list)
14 {
15     if ((wifi_sta_list == NULL) || (wifi_sta_ip_mac_list == NULL)) {
16         return ESP_ERR_ESP_NETIF_INVALID_PARAMS;
17     }
18     esp_netif_t *ap = esp_netif_get_handle_from_ifkey("WIFI_AP_DEF");
19     if (ap == NULL) {
20         return ESP_ERR_ESP_NETIF_IF_NOT_READY;
21     }
22     int num = wifi_sta_list->num;
23     wifi_sta_ip_mac_list->num = num;
24     for (int i = 0; i < num; i++) {
25         memcpy(wifi_sta_ip_mac_list->sta[i].mac, wifi_sta_list->sta[i].mac, 6);
26         memset(&wifi_sta_ip_mac_list->sta[i].ip, 0, sizeof(esp_ip4_addr_t));
27     }
28     return esp_netif_dhcps_get_clients_by_mac(ap, num, wifi_sta_ip_mac_list->sta);
29 }
30