P2PS: Allow P2P_CONNECT command for P2PS connection with/without PIN
This allows using P2PS config method with or without PIN for connection. wpa_supplicant should internally handle the default PIN "12345670" and shall also allow connection irrespective of PIN used in P2P_CONNECT. For example, 1. P2P_CONNECT 02:2a:fb:22:22:33 p2ps 2. P2P_CONNECT 02:2a:fb:22:22:33 xxxxxxxx p2ps Where the second one is maintained for backwards compatibility. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
467fc149d3
commit
31d7fb14af
2 changed files with 5 additions and 2 deletions
|
@ -5098,6 +5098,8 @@ static int p2p_ctrl_connect(struct wpa_supplicant *wpa_s, char *cmd,
|
||||||
wps_method = WPS_PIN_DISPLAY;
|
wps_method = WPS_PIN_DISPLAY;
|
||||||
} else if (os_strncmp(pos, "pbc", 3) == 0) {
|
} else if (os_strncmp(pos, "pbc", 3) == 0) {
|
||||||
wps_method = WPS_PBC;
|
wps_method = WPS_PBC;
|
||||||
|
} else if (os_strstr(pos, "p2ps") != NULL) {
|
||||||
|
wps_method = WPS_P2PS;
|
||||||
} else {
|
} else {
|
||||||
pin = pos;
|
pin = pos;
|
||||||
pos = os_strchr(pin, ' ');
|
pos = os_strchr(pin, ' ');
|
||||||
|
@ -5106,8 +5108,6 @@ static int p2p_ctrl_connect(struct wpa_supplicant *wpa_s, char *cmd,
|
||||||
*pos++ = '\0';
|
*pos++ = '\0';
|
||||||
if (os_strncmp(pos, "display", 7) == 0)
|
if (os_strncmp(pos, "display", 7) == 0)
|
||||||
wps_method = WPS_PIN_DISPLAY;
|
wps_method = WPS_PIN_DISPLAY;
|
||||||
else if (os_strncmp(pos, "p2ps", 4) == 0)
|
|
||||||
wps_method = WPS_P2PS;
|
|
||||||
}
|
}
|
||||||
if (!wps_pin_str_valid(pin)) {
|
if (!wps_pin_str_valid(pin)) {
|
||||||
os_memcpy(buf, "FAIL-INVALID-PIN\n", 17);
|
os_memcpy(buf, "FAIL-INVALID-PIN\n", 17);
|
||||||
|
|
|
@ -5383,6 +5383,9 @@ int wpas_p2p_connect(struct wpa_supplicant *wpa_s, const u8 *peer_addr,
|
||||||
wpa_s->p2p_pin[sizeof(wpa_s->p2p_pin) - 1] = '\0';
|
wpa_s->p2p_pin[sizeof(wpa_s->p2p_pin) - 1] = '\0';
|
||||||
wpa_printf(MSG_DEBUG, "P2P: Randomly generated PIN: %s",
|
wpa_printf(MSG_DEBUG, "P2P: Randomly generated PIN: %s",
|
||||||
wpa_s->p2p_pin);
|
wpa_s->p2p_pin);
|
||||||
|
} else if (wps_method == WPS_P2PS) {
|
||||||
|
/* Force the P2Ps default PIN to be used */
|
||||||
|
os_strlcpy(wpa_s->p2p_pin, "12345670", sizeof(wpa_s->p2p_pin));
|
||||||
} else
|
} else
|
||||||
wpa_s->p2p_pin[0] = '\0';
|
wpa_s->p2p_pin[0] = '\0';
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue