From 43a97878ce14b72f0981164f87f2e35e14151312 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:22:09 +0200 Subject: Adding upstream version 110.0.1. Signed-off-by: Daniel Baumann --- netwerk/wifi/nsWifiScannerMac.cpp | 51 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 netwerk/wifi/nsWifiScannerMac.cpp (limited to 'netwerk/wifi/nsWifiScannerMac.cpp') diff --git a/netwerk/wifi/nsWifiScannerMac.cpp b/netwerk/wifi/nsWifiScannerMac.cpp new file mode 100644 index 0000000000..4b8757fd10 --- /dev/null +++ b/netwerk/wifi/nsWifiScannerMac.cpp @@ -0,0 +1,51 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include +#include +#include + +#include "osx_wifi.h" + +#include "nsCOMArray.h" +#include "nsWifiMonitor.h" +#include "nsWifiAccessPoint.h" + +#include "nsServiceManagerUtils.h" +#include "nsComponentManagerUtils.h" + +using namespace mozilla; + +// defined in osx_corewlan.mm +// basically replaces accesspoints in the passed reference +// it lives in a separate file so that we can use objective c. +extern nsresult GetAccessPointsFromWLAN( + nsCOMArray& accessPoints); + +nsresult nsWifiMonitor::DoScan() { + // Regularly get the access point data. + + nsCOMArray lastAccessPoints; + nsCOMArray accessPoints; + + do { + nsresult rv = GetAccessPointsFromWLAN(accessPoints); + if (NS_FAILED(rv)) return rv; + + bool accessPointsChanged = + !AccessPointsEqual(accessPoints, lastAccessPoints); + ReplaceArray(lastAccessPoints, accessPoints); + + rv = CallWifiListeners(lastAccessPoints, accessPointsChanged); + NS_ENSURE_SUCCESS(rv, rv); + + // wait for some reasonable amount of time. pref? + LOG(("waiting on monitor\n")); + + ReentrantMonitorAutoEnter mon(mReentrantMonitor); + mon.Wait(PR_SecondsToInterval(kDefaultWifiScanInterval)); + } while (mKeepGoing); + + return NS_OK; +} -- cgit v1.2.3