wpa_supplicant-2.11/src/drivers/driver_nl80211_scan.c

发布于:2025-07-19 ⋅ 阅读:(15) ⋅ 点赞:(0)

f1340704@lhbvm177:~/work4/ti_yocto$ git diff 
diff --git  /wpa_supplicant-2.11/src/drivers/driver_nl80211_scan.c
              /wpa_supplicant-2.11/src/drivers/driver_nl80211_scan.c
index b055e684a..31cf7f4f1 100644
---    /wpa_supplicant-2.11/src/drivers/driver_nl80211_scan.c
+++ /wpa_supplicant-2.11/src/drivers/driver_nl80211_scan.c
@@ -867,12 +867,28 @@ struct nl80211_bss_info_arg {
        const u8 *bssid;
 };
 
+#define WLAN_EID_SSID 0
+
+
+static const u8 * wpa_scan_get_ie(const struct wpa_scan_res *res, u8 ie)
+{
+       size_t ie_len = res->ie_len;
+
+       /* Use the Beacon frame IEs if res->ie_len is not available */
+       if (!ie_len)
+               ie_len = res->beacon_ie_len;
+
+       return get_ie((const u8 *) (res + 1), ie_len, ie);
+}
+
 static int bss_info_handler(struct nl_msg *msg, void *arg)
 {
diff --git a/wpa_supplicant-2.11/src/drivers/driver_nl80211_scan.c
             b/wpa_supplicant-2.11/src/drivers/driver_nl80211_scan.c
index b055e684a..31cf7f4f1 100644
--- a//wpa_supplicant-2.11/src/drivers/driver_nl80211_scan.c
+++ b/wpa_supplicant-2.11/src/drivers/driver_nl80211_scan.c
@@ -867,12 +867,28 @@ struct nl80211_bss_info_arg {
        const u8 *bssid;
 };
 
+#define WLAN_EID_SSID 0
+
+
+static const u8 * wpa_scan_get_ie(const struct wpa_scan_res *res, u8 ie)
+{
+       size_t ie_len = res->ie_len;
+
+       /* Use the Beacon frame IEs if res->ie_len is not available */
+       if (!ie_len)
+               ie_len = res->beacon_ie_len;
+
+       return get_ie((const u8 *) (res + 1), ie_len, ie);
+}
+
 static int bss_info_handler(struct nl_msg *msg, void *arg)
 {
        struct nl80211_bss_info_arg *_arg = arg;
        struct wpa_scan_results *res = _arg->res;
        struct wpa_scan_res **tmp;
        struct wpa_scan_res *r;
+       const u8 *ssid;
+       u8 ssid_name[36] = {0};
 
        r = nl80211_parse_bss_info(_arg->drv, msg, _arg->bssid);
        if (!r)
@@ -882,6 +898,12 @@ static int bss_info_handler(struct nl_msg *msg, void *arg)
                os_free(r);
                return NL_SKIP;
        }
+
+       ssid = wpa_scan_get_ie(r, WLAN_EID_SSID);
+
+       strncpy(ssid_name, ssid + 2, (size_t)ssid[1]);
+       wpa_printf(MSG_DEBUG, "[ssh] ssid_name: %s ", ssid_name);
+
        tmp = os_realloc_array(res->res, res->num + 1,
                               sizeof(struct wpa_scan_res *));
        if (tmp == NULL) {


网站公告

今日签到

点亮在社区的每一天
去签到