On Mon, Sep 23, 2019 at 06:19:00PM +0200, Tobias Heider wrote:
> bluhm@ and I have noticed that our wifi connection breaks when the access 
> point
> switches channel. The fix is to update the node list node's channel with the
> received channel in STA mode. I've been using the fix for some days now 
> without
> breakage.
> 
> ok?

Yes, OK. Thank you!

> Index: ieee80211_input.c
> ===================================================================
> RCS file: /cvs/src/sys/net80211/ieee80211_input.c,v
> retrieving revision 1.209
> diff -u -p -r1.209 ieee80211_input.c
> --- ieee80211_input.c 12 Sep 2019 12:55:07 -0000      1.209
> +++ ieee80211_input.c 22 Sep 2019 08:54:22 -0000
> @@ -1380,8 +1380,9 @@ ieee80211_save_ie(const u_int8_t *frm, u
>   */
>  void
>  ieee80211_recv_probe_resp(struct ieee80211com *ic, struct mbuf *m,
> -    struct ieee80211_node *ni, struct ieee80211_rxinfo *rxi, int isprobe)
> +    struct ieee80211_node *rni, struct ieee80211_rxinfo *rxi, int isprobe)
>  {
> +     struct ieee80211_node *ni;
>       const struct ieee80211_frame *wh;
>       const u_int8_t *frm, *efrm;
>       const u_int8_t *tstamp, *ssid, *rates, *xrates, *edcaie, *wmmie;
> @@ -1553,6 +1554,10 @@ ieee80211_recv_probe_resp(struct ieee802
>                       /* we know that ssid[1] <= IEEE80211_NWID_LEN */
>                       memcpy(ni->ni_essid, &ssid[2], ssid[1]);
>               }
> +
> +             /* Update channel in case AP has switched */
> +             if (ic->ic_opmode == IEEE80211_M_STA)
> +                     ni->ni_chan = rni->ni_chan;
>  
>               return;
>       }
> 

Reply via email to