[Xcb-commit] src

Jamey Sharp jamey at kemper.freedesktop.org
Thu Aug 18 13:40:43 PDT 2011


 src/xcb_util.c |    3 ---
 1 file changed, 3 deletions(-)

New commits:
commit 4f25ee16443b29e1a25bd26a724e1e0a577e21ff
Author: Michael Stapelberg <michael at stapelberg.de>
Date:   Thu Aug 18 21:38:28 2011 +0200

    Drop AI_ADDRCONFIG when resolving TCP addresses
    
    When a system is completely offline (no interface has an IP address but 'lo'),
    xcb could not connect to localhost via TCP, e.g. connections with
    DISPLAY=127.0.0.1:0 fail.
    
    AI_ADDRCONFIG will only return IPv4 addresses if the system has an IPv4
    address configured (likewise for IPv6). This also takes place when
    resolving localhost (or 127.0.0.0/8 or ::1). Also, as per RFC 3493,
    loopback addresses are not considered as valid addresses when
    determining whether to return IPv4 or IPv6 addresses.
    
    As per mailing-list discussion on the xcb list started with message
    20110813215405.5818a0c1 at x200, the AI_ADDRCONFIG flag is there for historical
    reasons:
    
        In the old days, the "default on-link" assumption in IPv6 made the flag vey
        much indispensable for dual-stack hosts on IPv4-only networks. Without it,
        there would be long timeouts trying non-existent IPv6 connectivity. Nowadays,
        this assumption has been flagged as historic bad practice by IETF, and hosts
        should have been updated to not make it anymore.
    
        Then AI_ADDRCONFIG became mostly cosmetic: it avoids phony "Protocol family
        not supported" or "Host unreachable" errors while trying to connect to a dual-
        stack mode from a host with no support for source address selection.
    
        Nowadays, on up-to-date systems, this flag is completely useless. Then again,
        I understood only the very latest MacOS release is "up-to-date" with this
        definition.

diff --git a/src/xcb_util.c b/src/xcb_util.c
index fde4f85..1bde7b7 100644
--- a/src/xcb_util.c
+++ b/src/xcb_util.c
@@ -277,9 +277,6 @@ static int _xcb_open_tcp(const char *host, char *protocol, const unsigned short
 	host = "localhost";
 
     memset(&hints, 0, sizeof(hints));
-#ifdef AI_ADDRCONFIG
-    hints.ai_flags |= AI_ADDRCONFIG;
-#endif
 #ifdef AI_NUMERICSERV
     hints.ai_flags |= AI_NUMERICSERV;
 #endif


More information about the xcb-commit mailing list