Package: libc6 Version: 2.13-32 Severity: normal When only the loopback interface is available, getaddrinfo incorrectly returns EAI_NONAME when looking up localhost/127.0.0.1. The following code snippet normally prints 0: Unknown error 0: Unknown error when connected to the internet, but prints -2: Name or service not known -2: Name or service not known when no non-loopback interface is available.
#include <netdb.h> #include <string.h> #include <stdio.h> int main() { char* ip = "127.0.0.1"; char* name = "localhost"; struct addrinfo aiHint; memset(&aiHint, 0, sizeof(struct addrinfo)); aiHint.ai_socktype = SOCK_STREAM; aiHint.ai_protocol = IPPROTO_TCP; aiHint.ai_family = AF_INET; aiHint.ai_flags = AI_ADDRCONFIG | AI_NUMERICHOST; struct addrinfo *aiRes = NULL; int nErr = getaddrinfo(ip, NULL, &aiHint, &aiRes); printf("%d: %s\n", nErr, gai_strerror(nErr)); aiHint.ai_flags = AI_ADDRCONFIG; nErr = getaddrinfo(name, NULL, &aiHint, &aiRes); printf("%d: %s\n", nErr, gai_strerror(nErr)); return 0; } -- System Information: Debian Release: wheezy/sid APT prefers testing APT policy: (700, 'testing'), (600, 'testing'), (500, 'testing'), (400, 'unstable'), (300, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-2-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages libc6 depends on: ii libc-bin 2.13-32 ii libgcc1 1:4.6.3-1 libc6 recommends no packages. Versions of packages libc6 suggests: ii debconf [debconf-2.0] 1.5.41 ii glibc-doc <none> ii locales 2.13-27 -- debconf information: glibc/upgrade: true glibc/restart-services: libraries/restart-without-asking: false glibc/disable-screensaver: glibc/restart-failed: -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org