|
@@ -237,6 +237,24 @@ void sme_authenticate(struct wpa_supplicant *wpa_s,
|
|
|
}
|
|
|
#endif /* CONFIG_P2P */
|
|
|
|
|
|
+#ifdef CONFIG_INTERWORKING
|
|
|
+ if (wpa_s->conf->interworking) {
|
|
|
+ u8 *pos = wpa_s->sme.assoc_req_ie;
|
|
|
+ if (wpa_s->sme.assoc_req_ie_len > 0 && pos[0] == WLAN_EID_RSN)
|
|
|
+ pos += 2 + pos[1];
|
|
|
+ os_memmove(pos + 6, pos,
|
|
|
+ wpa_s->sme.assoc_req_ie_len -
|
|
|
+ (pos - wpa_s->sme.assoc_req_ie));
|
|
|
+ wpa_s->sme.assoc_req_ie_len += 6;
|
|
|
+ *pos++ = WLAN_EID_EXT_CAPAB;
|
|
|
+ *pos++ = 4;
|
|
|
+ *pos++ = 0x00;
|
|
|
+ *pos++ = 0x00;
|
|
|
+ *pos++ = 0x00;
|
|
|
+ *pos++ = 0x80; /* Bit 31 - Interworking */
|
|
|
+ }
|
|
|
+#endif /* CONFIG_INTERWORKING */
|
|
|
+
|
|
|
wpa_supplicant_cancel_sched_scan(wpa_s);
|
|
|
wpa_supplicant_cancel_scan(wpa_s);
|
|
|
|