[PATCH 11/12] mesh: Send peering open frame again if beacon from listen state peer is received

Masashi Honma masashi.honma
Thu Nov 6 00:35:09 PST 2014


I need extra sta_remove for open connection.
Anyway I will re-send all patches as version 2.

diff --git a/wpa_supplicant/mesh_mpm.c b/wpa_supplicant/mesh_mpm.c
index 4f86578..c58eaf7 100644
--- a/wpa_supplicant/mesh_mpm.c
+++ b/wpa_supplicant/mesh_mpm.c
@@ -420,6 +420,9 @@ static void plink_timer(void *eloop_ctx, void *user_data)
        case PLINK_HOLDING:
                /* holding timer */
                mesh_mpm_fsm_restart(wpa_s, sta);
+               if (wpa_drv_sta_remove(wpa_s, sta->addr) < 0)
+                       wpa_printf(MSG_ERROR, "Failed to remove STA " MACSTR,
+                                  MAC2STR(sta->addr));
                break;
        default:
                break;
diff --git a/wpa_supplicant/mesh_rsn.c b/wpa_supplicant/mesh_rsn.c
index 94dbfd1..06e3e07 100644
--- a/wpa_supplicant/mesh_rsn.c
+++ b/wpa_supplicant/mesh_rsn.c
@@ -37,6 +37,9 @@ void mesh_auth_timer(void *eloop_ctx, void *user_data)
                           " (attempt %d) ",
                           MAC2STR(sta->addr), sta->sae_auth_retry);
                if (sta->sae_auth_retry < MESH_AUTH_RETRY) {
+                       if (wpa_drv_sta_remove(wpa_s, sta->addr) < 0)
+                               wpa_printf(MSG_ERROR, "AUTH: Failed to remove "
+                                          "STA " MACSTR, MAC2STR(sta->addr));
                        mesh_rsn_auth_sae_sta(wpa_s, sta);
                } else {
                        /* block the STA if exceeded the number of attempts */

2014-11-06 11:48 GMT+09:00 Masashi Honma <masashi.honma at gmail.com>:
> 2014-11-05 22:09 GMT+09:00 Bob Copeland <me at bobcopeland.com>:
>> I fixed a similar problem with authsae here:
>> https://github.com/cozybit/authsae/commit/295164a83717ce59ca280468fc2f7edcea6b3cbf
>
> Great!
>
> I could fix this problem by adding one line based on your idea.
> Thank you !
>
> diff --git a/wpa_supplicant/mesh_rsn.c b/wpa_supplicant/mesh_rsn.c
> index 94dbfd1..06e3e07 100644
> --- a/wpa_supplicant/mesh_rsn.c
> +++ b/wpa_supplicant/mesh_rsn.c
> @@ -37,6 +37,9 @@ void mesh_auth_timer(void *eloop_ctx, void *user_data)
>                 " (attempt %d) ",
>                 MAC2STR(sta->addr), sta->sae_auth_retry);
>          if (sta->sae_auth_retry < MESH_AUTH_RETRY) {
> +            if (wpa_drv_sta_remove(wpa_s, sta->addr) < 0)
> +                wpa_printf(MSG_ERROR, "AUTH: Failed to remove "
> +                       "STA " MACSTR, MAC2STR(sta->addr));
>              mesh_rsn_auth_sae_sta(wpa_s, sta);
>          } else {
>              /* block the STA if exceeded the number of attempts */



More information about the Hostap mailing list