mesh: Start mesh peering after successful authentication
[original patch by: Thomas Pedersen <thomas@noack.us>] Signed-off-by: Bob Copeland <me@bobcopeland.com>
This commit is contained in:
parent
e96da42b0e
commit
c50d94f1f8
2 changed files with 47 additions and 4 deletions
|
@ -802,10 +802,20 @@ static void handle_auth(struct hostapd_data *hapd,
|
|||
return;
|
||||
}
|
||||
|
||||
sta = ap_sta_add(hapd, mgmt->sa);
|
||||
if (!sta) {
|
||||
resp = WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA;
|
||||
goto fail;
|
||||
#ifdef CONFIG_MESH
|
||||
if (hapd->conf->mesh & MESH_ENABLED) {
|
||||
/* if the mesh peer is not available, we don't do auth. */
|
||||
sta = ap_get_sta(hapd, mgmt->sa);
|
||||
if (!sta)
|
||||
return;
|
||||
} else
|
||||
#endif /* CONFIG_MESH */
|
||||
{
|
||||
sta = ap_sta_add(hapd, mgmt->sa);
|
||||
if (!sta) {
|
||||
resp = WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA;
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
if (vlan_id > 0) {
|
||||
|
@ -890,6 +900,20 @@ static void handle_auth(struct hostapd_data *hapd,
|
|||
#endif /* CONFIG_IEEE80211R */
|
||||
#ifdef CONFIG_SAE
|
||||
case WLAN_AUTH_SAE:
|
||||
#ifdef CONFIG_MESH
|
||||
if (hapd->conf->mesh & MESH_ENABLED) {
|
||||
if (sta->wpa_sm == NULL)
|
||||
sta->wpa_sm =
|
||||
wpa_auth_sta_init(hapd->wpa_auth,
|
||||
sta->addr, NULL);
|
||||
if (sta->wpa_sm == NULL) {
|
||||
wpa_printf(MSG_DEBUG,
|
||||
"SAE: Failed to initialize WPA state machine");
|
||||
resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_MESH */
|
||||
handle_auth_sae(hapd, sta, mgmt, len, auth_transaction);
|
||||
return;
|
||||
#endif /* CONFIG_SAE */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue