please ignore

On Mon, Aug 06, 2018 at 03:18:59PM +0200, Florian Obser wrote:
> 
> Inspired by stsp's recent ieee80211_add_ess commit.
> 
> Refactor ieee80211_del_ess():
> nwids are binary data with an explicit length, so treat them as such
> instead of treating them like strings with a fixed len of
> IEEE80211_NWID_LEN.
> 
> This recycles the ``all'' parameter and calls it len. If len == 0 it
> means delete all elements. If we want this particular bikeshed banana
> shaped I can pass in an additional parameter like this:
> 
>       ieee80211_del_ess(struct ieee80211com *ic, u_int8_t *nwid, int len, int 
> all)
> 
> Comments, OK?
> 
> set_ess and match_ess are next...
> 
> diff --git ieee80211_ioctl.c ieee80211_ioctl.c
> index fd0b1116bba..8155ca6a943 100644
> --- ieee80211_ioctl.c
> +++ ieee80211_ioctl.c
> @@ -459,7 +459,7 @@ ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t 
> data)
>                       break;
>               }
>               if (join.i_flags & IEEE80211_JOIN_DEL)
> -                     ieee80211_del_ess(ic, join.i_nwid, join.i_len ? 0 : 1);
> +                     ieee80211_del_ess(ic, join.i_nwid, join.i_len);
>               memset(ic->ic_des_essid, 0, IEEE80211_NWID_LEN);
>               ic->ic_des_esslen = join.i_len;
>               memcpy(ic->ic_des_essid, join.i_nwid, join.i_len);
> diff --git ieee80211_node.c ieee80211_node.c
> index 3a821b235a2..528ac3a7fb0 100644
> --- ieee80211_node.c
> +++ ieee80211_node.c
> @@ -178,17 +178,17 @@ ieee80211_print_ess_list(struct ieee80211com *ic)
>  }
>  
>  void
> -ieee80211_del_ess(struct ieee80211com *ic, char *nwid, int all)
> +ieee80211_del_ess(struct ieee80211com *ic, u_int8_t *nwid, int len)
>  {
>       struct ieee80211_ess *ess, *next;
>  
>       TAILQ_FOREACH_SAFE(ess, &ic->ic_ess, ess_next, next) {
> -             if (all == 1 || (memcmp(ess->essid, nwid,
> -                 IEEE80211_NWID_LEN) == 0)) {
> +             if (len == 0 || (ess->esslen == len && 
> +                 memcmp(ess->essid, nwid, len) == 0)) {
>                       TAILQ_REMOVE(&ic->ic_ess, ess, ess_next);
>                       explicit_bzero(ess, sizeof(*ess));
>                       free(ess, M_DEVBUF, sizeof(*ess));
> -                     if (all != 1)
> +                     if (len != 0)
>                               return;
>               }
>       }
> @@ -543,7 +543,7 @@ ieee80211_node_detach(struct ifnet *ifp)
>               (*ic->ic_node_free)(ic, ic->ic_bss);
>               ic->ic_bss = NULL;
>       }
> -     ieee80211_del_ess(ic, NULL, 1);
> +     ieee80211_del_ess(ic, NULL, 0);
>       ieee80211_free_allnodes(ic, 1);
>  #ifndef IEEE80211_STA_ONLY
>       free(ic->ic_aid_bitmap, M_DEVBUF,
> diff --git ieee80211_var.h ieee80211_var.h
> index 406b1601106..47408f4b6da 100644
> --- ieee80211_var.h
> +++ ieee80211_var.h
> @@ -452,7 +452,7 @@ enum ieee80211_phymode ieee80211_chan2mode(struct 
> ieee80211com *,
>  void ieee80211_disable_wep(struct ieee80211com *); 
>  void ieee80211_disable_rsn(struct ieee80211com *); 
>  int  ieee80211_add_ess(struct ieee80211com *, int, int);
> -void ieee80211_del_ess(struct ieee80211com *, char *, int);
> +void ieee80211_del_ess(struct ieee80211com *, u_int8_t *, int);
>  void ieee80211_set_ess(struct ieee80211com *, char *);
>  
>  extern       int ieee80211_cache_size;
> 
> 
> -- 
> I'm not entirely sure you are real.
> 

-- 
I'm not entirely sure you are real.

Reply via email to