aboutsummaryrefslogtreecommitdiff
path: root/src/core/internal_network/wifi_scanner.cpp
diff options
context:
space:
mode:
authorMaufeat <sahyno1996@gmail.com>2025-06-28 16:04:13 +0000
committerJPikachu <jpikachu@noreply.localhost>2025-06-28 16:04:13 +0000
commit726e1e756d4e11a0064bca4117d31d9fe287453f (patch)
tree6e2fed73ff69ae94570bf05d86cf0f0af513268e /src/core/internal_network/wifi_scanner.cpp
parentc88d0b3967d0857806e269236b34cbd2bb0557de (diff)
[nifm, bsd] add airplane mode functionality to a new nifm call and fix local files (#225)
There is a cmd `IsAnyInternetRequestAccepted` which is called by games like DOOM to check if internet access is available. Adds the newly added airplane mode there. Also, moved down the airplane mode check on bsd to also check if it's a local file request, if it is, let it connect. (SMO guide web applet for example) + adds a check in IRequest if airplane mode is active, which then results in an not succeeding requests. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/225 Co-authored-by: Maufeat <sahyno1996@gmail.com> Co-committed-by: Maufeat <sahyno1996@gmail.com>
Diffstat (limited to 'src/core/internal_network/wifi_scanner.cpp')
-rw-r--r--src/core/internal_network/wifi_scanner.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/core/internal_network/wifi_scanner.cpp b/src/core/internal_network/wifi_scanner.cpp
index bab644d161..df9bc92910 100644
--- a/src/core/internal_network/wifi_scanner.cpp
+++ b/src/core/internal_network/wifi_scanner.cpp
@@ -11,20 +11,22 @@
using namespace std::chrono_literals;
-namespace Network {
-
#ifdef _WIN32
#define NOMINMAX
#include <windows.h>
#include <wlanapi.h>
#pragma comment(lib, "wlanapi.lib")
+#endif
+namespace Network {
+
+#ifdef _WIN32
static u8 QualityToPercent(DWORD q) {
return static_cast<u8>(q);
}
-static std::vector<ScanData> ScanWifiWin(std::chrono::milliseconds deadline) {
- std::vector<ScanData> out;
+static std::vector<Network::ScanData> ScanWifiWin(std::chrono::milliseconds deadline) {
+ std::vector<Network::ScanData> out;
HANDLE hClient{};
DWORD ver{};
@@ -57,7 +59,7 @@ static std::vector<ScanData> ScanWifiWin(std::chrono::milliseconds deadline) {
for (DWORD n = 0; n < list->dwNumberOfItems; ++n) {
const auto& nw = list->Network[n];
- ScanData sd{};
+ Network::ScanData sd{};
sd.ssid_len = static_cast<u8>(nw.dot11Ssid.uSSIDLength);
std::memcpy(sd.ssid, nw.dot11Ssid.ucSSID, sd.ssid_len);
sd.quality = QualityToPercent(nw.wlanSignalQuality);
@@ -112,8 +114,8 @@ static int wifi_callback(int skfd, char* ifname, char* args[], int count)
}
// TODO(crueter, Maufeat): Check if driver supports wireless extensions, fallback to nl80211 if not
-static std::vector<ScanData> ScanWifiLinux(std::chrono::milliseconds deadline) {
- std::vector<ScanData> out;
+static std::vector<Network::ScanData> ScanWifiLinux(std::chrono::milliseconds deadline) {
+ std::vector<Network::ScanData> out;
int sock = iw_sockets_open();
if (sock < 0) {
LOG_ERROR(Network, "iw_sockets_open() failed");
@@ -152,7 +154,7 @@ static std::vector<ScanData> ScanWifiLinux(std::chrono::milliseconds deadline) {
if (!ws->b.has_essid)
continue;
- ScanData sd{};
+ Network::ScanData sd{};
sd.ssid_len = static_cast<u8>(std::min<int>(ws->b.essid_len, 0x20));
std::memcpy(sd.ssid, ws->b.essid, sd.ssid_len);
sd.quality = QualityToPercent(range, ws);
@@ -172,7 +174,7 @@ static std::vector<ScanData> ScanWifiLinux(std::chrono::milliseconds deadline) {
}
#endif /* linux */
-std::vector<ScanData> ScanWifiNetworks(std::chrono::milliseconds deadline) {
+std::vector<Network::ScanData> ScanWifiNetworks(std::chrono::milliseconds deadline) {
#ifdef _WIN32
return ScanWifiWin(deadline);
#elif defined(__linux__) && !defined(ANDROID)