tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

nsWifiAccessPoint.cpp (1840B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 #include "nsWifiAccessPoint.h"
      6 #include "nsString.h"
      7 #include "mozilla/Logging.h"
      8 
      9 extern mozilla::LazyLogModule gWifiMonitorLog;
     10 #define LOG(args) MOZ_LOG(gWifiMonitorLog, mozilla::LogLevel::Debug, args)
     11 
     12 NS_IMPL_ISUPPORTS(nsWifiAccessPoint, nsIWifiAccessPoint)
     13 
     14 nsWifiAccessPoint::nsWifiAccessPoint() {
     15  // make sure these are null terminated (because we are paranoid)
     16  mMac[0] = '\0';
     17  mSsid[0] = '\0';
     18  mSsidLen = 0;
     19  mSignal = -1000;
     20 }
     21 
     22 NS_IMETHODIMP nsWifiAccessPoint::GetMac(nsACString& aMac) {
     23  aMac.Assign(mMac);
     24  return NS_OK;
     25 }
     26 
     27 NS_IMETHODIMP nsWifiAccessPoint::GetSsid(nsAString& aSsid) {
     28  // just assign and embedded nulls will truncate resulting
     29  // in a displayable string.
     30  aSsid.AssignASCII(mSsid);
     31  return NS_OK;
     32 }
     33 
     34 NS_IMETHODIMP nsWifiAccessPoint::GetRawSSID(nsACString& aRawSsid) {
     35  aRawSsid.Assign(mSsid, mSsidLen);  // SSIDs are 32 chars long
     36  return NS_OK;
     37 }
     38 
     39 NS_IMETHODIMP nsWifiAccessPoint::GetSignal(int32_t* aSignal) {
     40  NS_ENSURE_ARG(aSignal);
     41  *aSignal = mSignal;
     42  return NS_OK;
     43 }
     44 
     45 int nsWifiAccessPoint::Compare(const nsWifiAccessPoint& o) const {
     46  int ret = strcmp(mMac, o.mMac);
     47  if (ret) {
     48    return ret;
     49  }
     50  if (mSsidLen != o.mSsidLen) {
     51    return (mSsidLen < o.mSsidLen) ? -1 : 1;
     52  }
     53  ret = strncmp(mSsid, o.mSsid, mSsidLen);
     54  if (ret) {
     55    return ret;
     56  }
     57  if (mSignal == o.mSignal) {
     58    return 0;
     59  }
     60  return (mSignal < o.mSignal) ? -1 : 1;
     61 }
     62 
     63 bool nsWifiAccessPoint::operator==(const nsWifiAccessPoint& o) const {
     64  LOG(("nsWifiAccessPoint comparing %s->%s | %s->%s | %d -> %d\n", mSsid,
     65       o.mSsid, mMac, o.mMac, mSignal, o.mSignal));
     66  return Compare(o) == 0;
     67 }