Home | History | Annotate | Download | only in wps

Lines Matching refs:pbc

79 static void wps_free_pbc_sessions(struct wps_pbc_session *pbc)
83 while (pbc) {
84 prev = pbc;
85 pbc = pbc->next;
101 int pbc;
264 struct wps_pbc_session *pbc, *prev = NULL;
269 pbc = reg->pbc_sessions;
270 while (pbc) {
271 if (os_memcmp(pbc->addr, addr, ETH_ALEN) == 0 &&
272 os_memcmp(pbc->uuid_e, uuid_e, WPS_UUID_LEN) == 0) {
274 prev->next = pbc->next;
276 reg->pbc_sessions = pbc->next;
279 prev = pbc;
280 pbc = pbc->next;
283 if (!pbc) {
284 pbc = os_zalloc(sizeof(*pbc));
285 if (pbc == NULL)
287 os_memcpy(pbc->addr, addr, ETH_ALEN);
289 os_memcpy(pbc->uuid_e, uuid_e, WPS_UUID_LEN);
292 pbc->next = reg->pbc_sessions;
293 reg->pbc_sessions = pbc;
294 pbc->timestamp = now;
297 prev = pbc;
298 pbc = pbc->next;
300 while (pbc) {
301 if (now.sec > pbc->timestamp.sec + WPS_PBC_WALK_TIME) {
303 wps_free_pbc_sessions(pbc);
306 prev = pbc;
307 pbc = pbc->next;
315 struct wps_pbc_session *pbc, *prev = NULL, *tmp;
317 pbc = reg->pbc_sessions;
318 while (pbc) {
319 if (os_memcmp(pbc->uuid_e, uuid_e, WPS_UUID_LEN) == 0) {
321 prev->next = pbc->next;
323 reg->pbc_sessions = pbc->next;
324 tmp = pbc;
325 pbc = pbc->next;
326 wpa_printf(MSG_DEBUG, "WPS: Removing PBC session for "
333 prev = pbc;
334 pbc = pbc->next;
343 struct wps_pbc_session *pbc;
349 wpa_printf(MSG_DEBUG, "WPS: Checking active PBC sessions for overlap");
358 for (pbc = reg->pbc_sessions; pbc; pbc = pbc->next) {
359 wpa_printf(MSG_DEBUG, "WPS: Consider PBC session with " MACSTR,
360 MAC2STR(pbc->addr));
362 pbc->uuid_e, WPS_UUID_LEN);
363 if (now.sec > pbc->timestamp.sec + WPS_PBC_WALK_TIME) {
364 wpa_printf(MSG_DEBUG, "WPS: PBC walk time has "
369 os_memcmp(pbc->uuid_e, first->uuid_e, WPS_UUID_LEN) == 0) {
374 os_memcmp(uuid_e, pbc->uuid_e, WPS_UUID_LEN)) {
379 first = pbc;
382 wpa_printf(MSG_DEBUG, "WPS: %u active PBC session(s) found", count);
453 u16 id = reg->pbc ? DEV_PW_PUSHBUTTON : DEV_PW_DEFAULT;
469 u16 id = reg->pbc ? DEV_PW_PUSHBUTTON : DEV_PW_DEFAULT;
515 if (reg->pbc)
558 if (reg->pbc)
697 reg->pbc = 0;
875 reg->pbc = 0;
887 wpa_printf(MSG_DEBUG, "WPS: PBC timed out - disable PBC mode");
896 * @p2p_dev_addr: Limit allowed PBC devices to the specified P2P device, %NULL
901 * PBC mode. The PBC mode will be stopped after walk time (2 minutes) timeout
902 * or when a PBC registration is completed. If more than one Enrollee in active
903 * PBC mode has been detected during the monitor time (previous 2 minutes), the
904 * PBC mode is not actived and -2 is returned to indicate session overlap. This
912 wpa_printf(MSG_DEBUG, "WPS: PBC overlap - do not start PBC "
917 wpa_printf(MSG_DEBUG, "WPS: Button pushed - PBC mode started");
920 reg->pbc = 1;
939 wpa_printf(MSG_DEBUG, "WPS: PBC completed - stopping PBC mode");
956 if (reg->pbc) {
957 wpa_printf(MSG_DEBUG, "WPS: PBC is set - cancelling it");
978 * received. This is used to track PBC mode use and to detect possible overlap
1025 return; /* Not PBC */
1027 wpa_printf(MSG_DEBUG, "WPS: Probe Request for PBC received from "
1039 wpa_printf(MSG_DEBUG, "WPS: PBC session overlap detected");
1095 if (reg->pbc)
1100 "config_methods=0x%x pbc=%d methods=0x%x",
1102 reg->pbc, methods);
1105 reg->pbc ? DEV_PW_PUSHBUTTON : DEV_PW_DEFAULT,
1230 if (wps->pbc) {
1231 wpa_printf(MSG_DEBUG, "WPS: Use default PIN for PBC");
2220 m & WPS_CONFIG_PUSHBUTTON ? " [PBC]" : "",
2295 "filtering for PBC: expected " MACSTR " was "
2296 MACSTR " - indicate PBC session overlap",
2315 wpa_printf(MSG_DEBUG, "WPS: Skip PBC overlap due to selected "
2358 !wps->wps->registrar->pbc)) {
2381 wpa_printf(MSG_DEBUG, "WPS: PBC overlap - deny PBC "
2394 wps->pbc = 1;
2432 if (wps->pbc && wps->wps->registrar->force_pbc_overlap &&
2434 wpa_printf(MSG_DEBUG, "WPS: Reject negotiation due to PBC "
2470 if (wps->pbc && wps->wps->registrar->force_pbc_overlap &&
2472 wpa_printf(MSG_DEBUG, "WPS: Reject negotiation due to PBC "
2607 if (wps->pbc && wps->wps->registrar->force_pbc_overlap &&
2609 wpa_printf(MSG_DEBUG, "WPS: Reject negotiation due to PBC "
2984 if (wps->pbc) {
3087 reg->pbc = 0;
3180 if (reg->pbc) {
3186 "(pbc=%d)", reg->pbc);