49 lines
2.3 KiB
Diff
49 lines
2.3 KiB
Diff
From dc53976d72d740fd83fc7de434381b8981740da7 Mon Sep 17 00:00:00 2001
|
|
From: Kirill Zhumarin <kirill.zhumarin@gmail.com>
|
|
Date: Fri, 20 Jan 2023 00:00:17 +0000
|
|
Subject: [PATCH] Fix p2p-go advertising
|
|
|
|
Signed-off-by: Kirill Zhumarin <kirill.zhumarin@gmail.com>
|
|
---
|
|
.../rtl8723ds/os_dep/linux/ioctl_cfg80211.c | 18 +++++++++++++++++
|
|
1 file changed, 18 insertions(+), 0 deletion(-)
|
|
|
|
diff --git a/drivers/net/wireless/rtl8723du/os_dep/ioctl_cfg80211.c b/drivers/net/wireless/rtl8723du/os_dep/ioctl_cfg80211.c
|
|
index 64541a364..0dfd41477 100644
|
|
--- a/drivers/net/wireless/rtl8723du/os_dep/ioctl_cfg80211.c
|
|
+++ b/drivers/net/wireless/rtl8723du/os_dep/ioctl_cfg80211.c
|
|
@@ -3777,6 +3777,15 @@ static int cfg80211_rtw_start_ap(struct wiphy *wiphy, struct net_device *ndev,
|
|
|
|
adapter->mlmeextpriv.mlmext_info.hidden_ssid_mode = settings->hidden_ssid;
|
|
|
|
+ // In cases like WPS, the proberesp and assocresp IEs vary from the beacon, and need to be explicitly set
|
|
+ if (ret == 0) {
|
|
+ if (settings->beacon.proberesp_ies && settings->beacon.proberesp_ies_len > 0)
|
|
+ rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *) settings->beacon.proberesp_ies, settings->beacon.proberesp_ies_len, 0x2 /*PROBE_RESP*/);
|
|
+
|
|
+ if (settings->beacon.assocresp_ies && settings->beacon.assocresp_ies_len > 0)
|
|
+ rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *) settings->beacon.assocresp_ies, settings->beacon.assocresp_ies_len, 0x4 /*ASSOC_RESP*/);
|
|
+ }
|
|
+
|
|
if (settings->ssid && settings->ssid_len) {
|
|
struct wlan_bssid_ex *pbss_network = &adapter->mlmepriv.cur_network.network;
|
|
struct wlan_bssid_ex *pbss_network_ext = &adapter->mlmeextpriv.mlmext_info.network;
|
|
@@ -3801,6 +3810,15 @@ static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *nd
|
|
|
|
ret = rtw_add_beacon(adapter, info->head, info->head_len, info->tail, info->tail_len);
|
|
|
|
+ // In cases like WPS, the proberesp and assocresp IEs vary from the beacon, and need to be explicitly set
|
|
+ if (ret == 0) {
|
|
+ if (info->proberesp_ies && info->proberesp_ies_len > 0)
|
|
+ rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *) info->proberesp_ies, info->proberesp_ies_len, 0x2 /*PROBE_RESP*/);
|
|
+
|
|
+ if (info->assocresp_ies && info->assocresp_ies_len > 0)
|
|
+ rtw_cfg80211_set_mgnt_wpsp2pie(ndev, (char *) info->assocresp_ies, info->assocresp_ies_len, 0x4 /*ASSOC_RESP*/);
|
|
+ }
|
|
+
|
|
return ret;
|
|
}
|
|
|
|
--
|
|
Created with Armbian build tools https://github.com/armbian/build
|