xorg-libxcb/src
Michael Stapelberg 4f25ee1644 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@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.
2011-08-18 13:39:56 -07:00
..
.gitignore Add xkb.* to gitignore 2010-09-10 15:54:56 -04:00
c_client.py Insert, not append explicit xcbgen dir python path 2011-05-11 23:49:39 -07:00
Makefile.am fix Windows build and installation 2011-01-20 20:46:04 -05:00
xcb.h Revert "Introduce xcb_wait_for_event_until, for consuming responses in wire-order." 2011-04-12 13:11:48 -07:00
xcb_auth.c Prevent theoretical double free and leak on get_peer_sock_name. 2011-03-24 11:30:21 -04:00
xcb_conn.c Add #include <sys/socket.h> to xcb_conn.c 2011-04-04 22:06:16 -07:00
xcb_ext.c Rename index to idx to avoid shadowing 2008-08-28 13:49:21 +02:00
xcb_in.c Revert "Introduce xcb_wait_for_event_until, for consuming responses in wire-order." 2011-04-12 13:11:48 -07:00
xcb_list.c The Great XCB Renaming 2006-09-23 12:22:22 -07:00
xcb_out.c xcb_request_check: Hold the I/O lock while deciding to sync. 2010-10-09 12:37:48 -07:00
xcb_util.c Drop AI_ADDRCONFIG when resolving TCP addresses 2011-08-18 13:39:56 -07:00
xcb_windefs.h changes in xcb_windefs.h - the flag _XCB_WINDEFS_H replaces WINDEFS_H 2010-03-29 22:37:33 +05:30
xcb_xid.c kludgily hand-merged xid fixes 2009-03-28 14:59:01 +01:00
xcbext.h Merge branch 'master' of git://anongit.freedesktop.org/~peterh/libxcb 2010-12-23 13:04:40 -05:00
xcbint.h Revert "Introduce xcb_wait_for_event_until, for consuming responses in wire-order." 2011-04-12 13:11:48 -07:00