From 5e563700380eade647f347669ea61dbb0ede9814 Mon Sep 17 00:00:00 2001 From: David 'Digit' Turner Date: Tue, 5 May 2009 15:50:24 +0200 Subject: [PATCH] change getaddrinfo() implementation to match GLibc. the issue is that the BSD implementation doesn't accept a call like: getaddrinfo(SERVER_NAME, "9999", NULL, &res); because if will reject a numerical string in the second parameter if no hints are explicitely provided. This technically doesn't violate POSIX but might make porting Linux software a bit difficult. For more details see: http://groups.google.com/group/android-ndk/browse_thread/thread/818ab9c53f24c87 also comment debugging printf() calls which shouldn't be there. --- libc/netbsd/net/getaddrinfo.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libc/netbsd/net/getaddrinfo.c b/libc/netbsd/net/getaddrinfo.c index 2dd3d971e..f2189fbfe 100644 --- a/libc/netbsd/net/getaddrinfo.c +++ b/libc/netbsd/net/getaddrinfo.c @@ -912,7 +912,11 @@ get_port(const struct addrinfo *ai, const char *servname, int matchonly) allownumeric = 1; break; case ANY: +#if 1 /* ANDROID-SPECIFIC CHANGE TO MATCH GLIBC */ + allownumeric = 1; +#else allownumeric = 0; +#endif break; default: return EAI_SOCKTYPE; @@ -1271,7 +1275,7 @@ _dns_getaddrinfo(void *rv, void *cb_data, va_list ap) name = va_arg(ap, char *); pai = va_arg(ap, const struct addrinfo *); - fprintf(stderr, "_dns_getaddrinfo() name = '%s'\n", name); + //fprintf(stderr, "_dns_getaddrinfo() name = '%s'\n", name); memset(&q, 0, sizeof(q)); memset(&q2, 0, sizeof(q2)); @@ -1630,7 +1634,7 @@ res_searchN(const char *name, struct res_target *target, res_state res) trailing_dot++; -fprintf(stderr, "res_searchN() name = '%s'\n", name); + //fprintf(stderr, "res_searchN() name = '%s'\n", name); /* * if there aren't any dots, it could be a user-level alias -- 2.11.0