From owner-p4-projects@FreeBSD.ORG Sun Nov 27 03:22:29 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 68D0816A424; Sun, 27 Nov 2005 03:22:29 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 210AA16A41F for ; Sun, 27 Nov 2005 03:22:29 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2C47043D53 for ; Sun, 27 Nov 2005 03:22:28 +0000 (GMT) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id jAR3MSDY038794 for ; Sun, 27 Nov 2005 03:22:28 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id jAR3MRga038791 for perforce@freebsd.org; Sun, 27 Nov 2005 03:22:27 GMT (envelope-from sam@freebsd.org) Date: Sun, 27 Nov 2005 03:22:27 GMT Message-Id: <200511270322.jAR3MRga038791@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 87301 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Nov 2005 03:22:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=87301 Change 87301 by sam@sam_ebb on 2005/11/27 03:22:07 o fix preference for privacy o fix bssid/ssid match debug msg; mark match with '*' Affected files ... .. //depot/projects/wifi/sys/net80211/ieee80211_scan_sta.c#6 edit Differences ... ==== //depot/projects/wifi/sys/net80211/ieee80211_scan_sta.c#6 (text+ko) ==== @@ -605,19 +605,21 @@ static int sta_compare(const struct sta_entry *a, const struct sta_entry *b) { +#define PREFER(_a,_b,_what) do { \ + if (((_a) ^ (_b)) & (_what)) \ + return ((_a) & (_what)) ? 1 : -1; \ +} while (0) u_int8_t maxa, maxb; int8_t rssia, rssib; int weight; /* desired bssid */ - if ((a->se_flags ^ b->se_flags) & STA_BSSID_MATCH) - return (a->se_flags & STA_BSSID_MATCH) ? 1 : -1; + PREFER(a->se_flags, b->se_flags, STA_BSSID_MATCH); /* desired ssid */ - if ((a->se_flags ^ b->se_flags) & STA_SSID_MATCH) - return (a->se_flags & STA_SSID_MATCH) ? 1 : -1; + PREFER(a->se_flags, b->se_flags, STA_SSID_MATCH); /* privacy support */ - if ((a->base.se_capinfo ^ b->base.se_capinfo) & IEEE80211_CAPINFO_PRIVACY) - return (a->se_flags & IEEE80211_CAPINFO_PRIVACY) ? 1 : -1; + PREFER(a->base.se_capinfo, b->base.se_capinfo, + IEEE80211_CAPINFO_PRIVACY); /* compare count of previous failures */ weight = b->se_fails - a->se_fails; @@ -630,7 +632,7 @@ * comparisons to avoid selecting an ap purely by rssi * when both values may be good but one ap is otherwise * more desirable (e.g. an 11b-only ap with stronger - * rssi than an 11g ap). + * signal than an 11g ap). */ rssia = MIN(a->base.se_rssi, STA_RSSI_MAX); rssib = MIN(b->base.se_rssi, STA_RSSI_MAX); @@ -651,6 +653,7 @@ } /* all things being equal, use signal level */ return a->base.se_rssi - b->base.se_rssi; +#undef PREFER } /* @@ -788,7 +791,7 @@ fail & 0x40 ? '=' : fail & 0x80 ? '^' : fail ? '-' : '+', ether_sprintf(se->se_macaddr)); printf(" %s%c", ether_sprintf(se->se_bssid), - se0->se_flags & STA_BSSID_MATCH ? '!' : ' '); + se0->se_flags & STA_BSSID_MATCH ? '*' : ' '); printf(" %3d%c", ieee80211_chan2ieee(ic, se->se_chan), fail & 0x01 ? '!' : ' '); printf(" %+4d%c", se->se_rssi, fail & 0x100 ? '!' : ' '); @@ -804,7 +807,7 @@ "wep" : "no", fail & 0x04 ? '!' : ' '); ieee80211_print_essid(se->se_ssid+2, se->se_ssid[1]); - printf("%s\n", se0->se_flags & STA_SSID_MATCH ? "!" : ""); + printf("%s\n", se0->se_flags & STA_SSID_MATCH ? "*" : ""); } #endif return fail;