3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-26 02:19:26 +01:00

p2p: Do provisioning scan from the Interface Address

For WSC we should have been sending our probe requests from the same
address we're going to be doing EAP-WSC with the GO.  Somehow I was able
to connect to most devices without that but other implementations seem
to use the Interface Address (the P2P-Client's MAC), not the Device
Address (P2P-Device's MAC).  We could switch the order to first create
the new interface and scan from it is simpler to use the scan_context we
already have created on the device interface and set a different mac.
This commit is contained in:
Andrew Zaborowski 2020-09-09 01:49:19 +02:00 committed by Denis Kenzior
parent 9335680cd8
commit 0fad5fef71

View File

@ -1300,6 +1300,13 @@ static void p2p_provision_scan_start(struct p2p_device *dev)
&params.extra_ie_size); &params.extra_ie_size);
L_WARN_ON(!params.extra_ie); L_WARN_ON(!params.extra_ie);
/*
* Rather than create the new interface and create a new
* scan_context on it, use the P2P-Device interface and set
* params.source_mac to our future P2P-Client address.
*/
params.source_mac = dev->conn_addr;
/* /*
* Initially scan just the Operating Channel the GO reported * Initially scan just the Operating Channel the GO reported
* during the negotiation. In theory there's no guarantee that * during the negotiation. In theory there's no guarantee that