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.
This commit is contained in:
parent
85a01ffba3
commit
5e56370038
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue