From 509a533a2c7a80d1b94986b6906afa6492f24348 Mon Sep 17 00:00:00 2001 From: lizzie Date: Tue, 23 Jun 2026 23:44:49 +0000 Subject: [PATCH] wa --- src/core/internal_network/network_interface.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/internal_network/network_interface.cpp b/src/core/internal_network/network_interface.cpp index 362391d041..1c1de880b0 100644 --- a/src/core/internal_network/network_interface.cpp +++ b/src/core/internal_network/network_interface.cpp @@ -111,7 +111,7 @@ std::vector GetAvailableNetworkInterfaces() { #else std::vector GetAvailableNetworkInterfaces() { -#if defined(__ANDROID__) || defined(__linux__) +#if defined(__ANDROID__) || defined(__linux__) || defined(__APPLE__) || defined(__managarm__) struct ifaddrs* ifaddr = nullptr; if (getifaddrs(&ifaddr) != 0) { LOG_ERROR(Network, "getifaddrs: {}", std::strerror(errno)); @@ -126,7 +126,7 @@ std::vector GetAvailableNetworkInterfaces() { u32 flags; }; std::vector routes{}; -#if defined(__ANDROID__) +#if defined(__ANDROID__) || defined(__APPLE__) // Even through Linux based, we can't reliably obtain routing information from there :( // macOS not Linux based and would murder us if we attempt to access /proc #else @@ -146,7 +146,10 @@ std::vector GetAvailableNetworkInterfaces() { std::vector ifaces; for (auto ifa = ifaddr; ifa != nullptr; ifa = ifa->ifa_next) { if (ifa->ifa_addr == nullptr || ifa->ifa_netmask == nullptr /* Have a netmask and address */ + // Apple hates human beings so lets pretend all families are fine +#if !defined(__APPLE__) && !defined(__managarm__) || ifa->ifa_addr->sa_family != AF_INET /* Must be of kind AF_INET */ +#endif || (ifa->ifa_flags & IFF_UP) == 0 || (ifa->ifa_flags & IFF_LOOPBACK) != 0) /* Not loopback */ continue; // Just use 0 as the gateway address if not found OR routes are empty :)