From f5cf489e1b806ceba17822b3ee9d753395d08af3 Mon Sep 17 00:00:00 2001 From: Tomas Janousek Date: Sun, 7 Apr 2024 18:24:02 +0100 Subject: [PATCH] NetworkMgr: Avoid CloudFlare addresses in hasDefaultRoute Inspired by https://github.com/pavel-odintsov/get_default_outgoing_ip_linux/commit/4d77cad9772067b8731e9aa0387faafe438db76f --- frontend/ui/network/manager.lua | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/frontend/ui/network/manager.lua b/frontend/ui/network/manager.lua index b934ab4e1..802e6d1db 100644 --- a/frontend/ui/network/manager.lua +++ b/frontend/ui/network/manager.lua @@ -274,7 +274,10 @@ function NetworkMgr:ifHasAnAddress() return ok end --- The socket API equivalent of "ip route get 1.1.1.1 || ip route get 2606:4700:4700::1111". +-- The socket API equivalent of "ip route get 203.0.113.1 || ip route get 2001:db8::1". +-- +-- These addresses are from special ranges reserved for documentation +-- (RFC 5737, RFC 3849) and therefore likely to just use the default route. function NetworkMgr:hasDefaultRoute() local socket = require("socket") @@ -285,13 +288,13 @@ function NetworkMgr:hasDefaultRoute() return nil end - ret, err = s:setpeername("1.1.1.1", "53") + ret, err = s:setpeername("203.0.113.1", "53") if ret == nil then -- Most likely "Network is unreachable", meaning there's no route to that address. logger.dbg("NetworkMgr: socket.udp.setpeername:", err) -- Try IPv6, may still succeed if this is an IPv6-only network. - ret, err = s:setpeername("2606:4700:4700::1111", "53") + ret, err = s:setpeername("2001:db8::1", "53") if ret == nil then -- Most likely "Network is unreachable", meaning there's no route to that address. logger.dbg("NetworkMgr: socket.udp.setpeername:", err)