Search Linux Wireless

Re: [PATCH] mac80211: Look out for some other AP when disassoc is received.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2008-11-21 at 20:13 -0800, Vivek Natarajan wrote:
> When a disassoc packet is received with a reason code of
> 'AP leaving the BSS', mac80211 should start looking for some
> other AP instead of trying to associate with the same AP.

Can we edit this commit log message? mac80211 will not start looking for
another AP in DISABLED state. How about

When a disassoc packet is received from the AP with a reason code of
'leaving the BSS', mac80211 should go into DISABLED state just as it
would do if the AP suddenly went away for some reason, as that is what
will happen shortly after the AP leaves anyway.

(is that correct?)

Other than that,
Acked-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx>

> Signed-off-by: Vivek Natarajan <vnatarajan@xxxxxxxxxxx>
> ---
>  net/mac80211/mlme.c |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
> index 90ad5a4..ee15e75 100644
> --- a/net/mac80211/mlme.c
> +++ b/net/mac80211/mlme.c
> @@ -808,6 +808,10 @@ static void ieee80211_authenticate(struct ieee80211_sub_if_data *sdata,
>  	mod_timer(&ifsta->timer, jiffies + IEEE80211_AUTH_TIMEOUT);
>  }
>  
> +/*
> + * The disassoc 'reason' argument can be either our own reason
> + * if self disconnected or a reason code from the AP.
> + */
>  static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
>  				   struct ieee80211_if_sta *ifsta, bool deauth,
>  				   bool self_disconnected, u16 reason)
> @@ -854,7 +858,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata,
>  
>  	ieee80211_sta_send_apinfo(sdata, ifsta);
>  
> -	if (self_disconnected)
> +	if (self_disconnected || reason == WLAN_REASON_DISASSOC_STA_HAS_LEFT)
>  		ifsta->state = IEEE80211_STA_MLME_DISABLED;
>  
>  	sta_info_unlink(&sta);
> @@ -1175,7 +1179,7 @@ static void ieee80211_rx_mgmt_disassoc(struct ieee80211_sub_if_data *sdata,
>  				      IEEE80211_RETRY_AUTH_INTERVAL);
>  	}
>  
> -	ieee80211_set_disassoc(sdata, ifsta, false, false, 0);
> +	ieee80211_set_disassoc(sdata, ifsta, false, false, reason_code);
>  }
>  
> 

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux