From 84a58c3cd282cd9073c7d652f852eb46775df475 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o?= Date: Tue, 17 Mar 2026 10:56:41 -0300 Subject: [PATCH 1/4] fix: suppress getaddrinfo EAI_NODATA error --- src/shared/inc/conncheckshared.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/shared/inc/conncheckshared.h b/src/shared/inc/conncheckshared.h index b477ce53e..fe03aeaec 100644 --- a/src/shared/inc/conncheckshared.h +++ b/src/shared/inc/conncheckshared.h @@ -116,6 +116,15 @@ inline unique_socket ConnCheckConnectSocket(int family, const char* hostname, co auto status = getaddrinfo(hostname, port, &hints, &servinfo); if (status != 0) { + if (status == EAI_NODATA || status == EAI_NONAME) // Check for both as EAI_NODATA is deprecated on newr linux versions + { + // EAI_NODATA means the domain exists but lacks records for the requested + // address family (A for IPv4, AAAA for IPv6). This is expected behavior + // for domains that are IPv4-only or IPv6-only. + // This is not treated as an error; we simply skip this address family and + // continue testing the other protocols. + *connCheckStatus = ConnCheckStatus::Success; + } throw std::runtime_error(std::format("CheckConnection: getaddrinfo() failed: {}", status)); } From aafb023601bae10bc3f8ed52dedfd008cbdce1b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Vitor=20Klabacher?= <41272117+klabacher@users.noreply.github.com> Date: Tue, 17 Mar 2026 11:17:30 -0300 Subject: [PATCH 2/4] Typo Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- src/shared/inc/conncheckshared.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/inc/conncheckshared.h b/src/shared/inc/conncheckshared.h index fe03aeaec..388c2dd14 100644 --- a/src/shared/inc/conncheckshared.h +++ b/src/shared/inc/conncheckshared.h @@ -116,7 +116,7 @@ inline unique_socket ConnCheckConnectSocket(int family, const char* hostname, co auto status = getaddrinfo(hostname, port, &hints, &servinfo); if (status != 0) { - if (status == EAI_NODATA || status == EAI_NONAME) // Check for both as EAI_NODATA is deprecated on newr linux versions + if (status == EAI_NODATA || status == EAI_NONAME) // Check for both as EAI_NODATA is deprecated on newer linux versions { // EAI_NODATA means the domain exists but lacks records for the requested // address family (A for IPv4, AAAA for IPv6). This is expected behavior From 9fd60cda0dac5368995deccdc981b70f988cf2f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Vitor=20Klabacher?= <41272117+klabacher@users.noreply.github.com> Date: Tue, 17 Mar 2026 11:47:46 -0300 Subject: [PATCH 3/4] FIX: Sucess to NoRecordsForFamily Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- src/shared/inc/conncheckshared.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/shared/inc/conncheckshared.h b/src/shared/inc/conncheckshared.h index 388c2dd14..f8004d6a4 100644 --- a/src/shared/inc/conncheckshared.h +++ b/src/shared/inc/conncheckshared.h @@ -48,6 +48,7 @@ enum class ConnCheckStatus { InProgress, Success, + NoRecordsForFamily, FailureGetAddrInfo, FailureConfig, FailureSocketConnect, @@ -123,7 +124,7 @@ inline unique_socket ConnCheckConnectSocket(int family, const char* hostname, co // for domains that are IPv4-only or IPv6-only. // This is not treated as an error; we simply skip this address family and // continue testing the other protocols. - *connCheckStatus = ConnCheckStatus::Success; + *connCheckStatus = ConnCheckStatus::NoRecordsForFamily; } throw std::runtime_error(std::format("CheckConnection: getaddrinfo() failed: {}", status)); } From c86b2d64ef3b003732cacd826555c8fb36adf699 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Vitor=20Klabacher?= <41272117+klabacher@users.noreply.github.com> Date: Tue, 17 Mar 2026 11:58:43 -0300 Subject: [PATCH 4/4] FIX Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- src/shared/inc/conncheckshared.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/shared/inc/conncheckshared.h b/src/shared/inc/conncheckshared.h index f8004d6a4..fe5e4ce0a 100644 --- a/src/shared/inc/conncheckshared.h +++ b/src/shared/inc/conncheckshared.h @@ -46,12 +46,12 @@ using unique_socket = wil::unique_fd; enum class ConnCheckStatus { - InProgress, - Success, - NoRecordsForFamily, - FailureGetAddrInfo, - FailureConfig, - FailureSocketConnect, + InProgress = 0, + Success = 1, + FailureGetAddrInfo = 2, + FailureConfig = 3, + FailureSocketConnect = 4, + NoRecordsForFamily = 5, }; struct ConnCheckResult