commit b3c93ca73cf82558c9a0735c8b525af58861aee7
Author: Komorebi Aware <komorebi.aware@gmail.com>
Date:   Sat Nov 7 21:48:45 2026 +0100

    Compare the IPv6 address field when applying the localhost timeout
    
    The existing guard compares the sockaddr_in6 header to an in6_addr, so it
    does not recognize ::1 and never sets the short timeout for IPv6 loopback.
    Compare sin6_addr instead, preserving the IPv4 test and the existing timeout.

diff --git a/Programs/brlapi_client.c b/Programs/brlapi_client.c
index e0dca7ee8..b9745dac5 100644
--- a/Programs/brlapi_client.c
+++ b/Programs/brlapi_client.c
@@ -935,7 +935,7 @@ static int tryHost(brlapi_handle_t *handle, const char *hostAndPort) {
 	    && (ntohl(((struct sockaddr_in *)cur->ai_addr)->sin_addr.s_addr) & IN_CLASSA_NET)
 	      == (INADDR_LOOPBACK & IN_CLASSA_NET))
 	  || (cur->ai_family == AF_INET6
-	    && !memcmp(cur->ai_addr, &ip6_localhost, sizeof(ip6_localhost)))) {
+	    && !memcmp(&((struct sockaddr_in6 *)cur->ai_addr)->sin6_addr, &ip6_localhost, sizeof(ip6_localhost)))) {
 	/* Local connection, it should be fast, otherwise it means we have a
 	 * firewall blocking us, and then better not wait unnecessarily. */
 	struct timeval tv = { .tv_usec = 100000 };
