| 1229 | } |
| 1230 | |
| 1231 | static struct sta_entry * |
| 1232 | select_bss(struct ieee80211_scan_state *ss, struct ieee80211vap *vap, int debug) |
| 1233 | { |
| 1234 | struct sta_table *st = ss->ss_priv; |
| 1235 | struct sta_entry *se, *selbs = NULL; |
| 1236 | |
| 1237 | IEEE80211_DPRINTF(vap, debug, " %s\n", |
| 1238 | "macaddr bssid chan rssi rate flag wep essid"); |
| 1239 | IEEE80211_SCAN_TABLE_LOCK(st); |
| 1240 | TAILQ_FOREACH(se, &st->st_entry, se_list) { |
| 1241 | ieee80211_ies_expand(&se->base.se_ies); |
| 1242 | if (match_bss(vap, ss, se, debug) == 0) { |
| 1243 | if (selbs == NULL) |
| 1244 | selbs = se; |
| 1245 | else if (sta_compare(se, selbs) > 0) |
| 1246 | selbs = se; |
| 1247 | } |
| 1248 | } |
| 1249 | IEEE80211_SCAN_TABLE_UNLOCK(st); |
| 1250 | |
| 1251 | return selbs; |
| 1252 | } |
| 1253 | |
| 1254 | /* |
| 1255 | * Pick an ap or ibss network to join or find a channel |
no test coverage detected