From 764d432453db031c66ee6eaa919fbfb20533f538 Mon Sep 17 00:00:00 2001 From: Mykola Baibuz Date: Tue, 15 Apr 2025 20:34:00 +0300 Subject: [PATCH 1/3] fix: AWG/WG protocol with system disabled IPv6 --- client/platforms/windows/daemon/wireguardutilswindows.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/client/platforms/windows/daemon/wireguardutilswindows.cpp b/client/platforms/windows/daemon/wireguardutilswindows.cpp index 0823b9d7..c3ac3b30 100644 --- a/client/platforms/windows/daemon/wireguardutilswindows.cpp +++ b/client/platforms/windows/daemon/wireguardutilswindows.cpp @@ -14,8 +14,6 @@ #include "leakdetector.h" #include "logger.h" -#include "platforms/windows/windowscommons.h" -#include "windowsdaemon.h" #include "windowsfirewall.h" #pragma comment(lib, "iphlpapi.lib") @@ -269,6 +267,12 @@ bool WireguardUtilsWindows::updateRoutePrefix(const IPAddress& prefix) { if (result == ERROR_OBJECT_ALREADY_EXISTS) { return true; } + + // Case for ipv6 route with disabled ipv6 + if (result == ERROR_NOT_FOUND) { + return true; + } + if (result != NO_ERROR) { logger.error() << "Failed to create route to" << prefix.toString() From 25f7356a1a707e0c5e414c8af49de2648acceb88 Mon Sep 17 00:00:00 2001 From: Mykola Baibuz Date: Wed, 16 Apr 2025 12:12:18 +0300 Subject: [PATCH 2/3] add check for route prefix type --- client/platforms/windows/daemon/wireguardutilswindows.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client/platforms/windows/daemon/wireguardutilswindows.cpp b/client/platforms/windows/daemon/wireguardutilswindows.cpp index c3ac3b30..d01ef54a 100644 --- a/client/platforms/windows/daemon/wireguardutilswindows.cpp +++ b/client/platforms/windows/daemon/wireguardutilswindows.cpp @@ -269,7 +269,8 @@ bool WireguardUtilsWindows::updateRoutePrefix(const IPAddress& prefix) { } // Case for ipv6 route with disabled ipv6 - if (result == ERROR_NOT_FOUND) { + if (prefix.address().protocol() == QAbstractSocket::IPv6Protocol + && result == ERROR_NOT_FOUND) { return true; } From 75d5b73e2f003efacd61fa1310ee1a744f276c49 Mon Sep 17 00:00:00 2001 From: Mykola Baibuz Date: Mon, 28 Apr 2025 15:38:37 +0300 Subject: [PATCH 3/3] fix: ignore IPv6 setup error for Linux This error can be cased by system disabled IPv6 --- client/platforms/linux/daemon/iputilslinux.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/client/platforms/linux/daemon/iputilslinux.cpp b/client/platforms/linux/daemon/iputilslinux.cpp index f0f2fbab..63bd92f9 100644 --- a/client/platforms/linux/daemon/iputilslinux.cpp +++ b/client/platforms/linux/daemon/iputilslinux.cpp @@ -31,7 +31,9 @@ IPUtilsLinux::~IPUtilsLinux() { } bool IPUtilsLinux::addInterfaceIPs(const InterfaceConfig& config) { - return addIP4AddressToDevice(config) && addIP6AddressToDevice(config); + bool ret = addIP4AddressToDevice(config); + addIP6AddressToDevice(config); + return ret; } bool IPUtilsLinux::setMTUAndUp(const InterfaceConfig& config) {