diff options
Diffstat (limited to 'libc')
-rw-r--r-- | libc/docs/CHANGES.TXT | 4 | ||||
-rw-r--r-- | libc/netbsd/resolv/res_cache.c | 2 | ||||
-rw-r--r-- | libc/netbsd/resolv/res_init.c | 6 | ||||
-rw-r--r-- | libc/private/arpa_nameser.h | 8 | ||||
-rw-r--r-- | libc/unistd/gethostname.c | 4 |
5 files changed, 19 insertions, 5 deletions
diff --git a/libc/docs/CHANGES.TXT b/libc/docs/CHANGES.TXT index c053714..4f87547 100644 --- a/libc/docs/CHANGES.TXT +++ b/libc/docs/CHANGES.TXT @@ -76,6 +76,10 @@ Differences between current and Android 2.1: - <time.h>: Fix timezone management implementation to properly update 'tm_gmtoff' field in 'struct tm' structure. +- DNS: get rid of spurious random DNS queries when trying to resolve + an unknown domain name. Due to an initialization bug, a random DNS search + list was generated for each thread is net.dns.search is not defined. + ------------------------------------------------------------------------------- Differences between Android 2.1 and 2.0.1: diff --git a/libc/netbsd/resolv/res_cache.c b/libc/netbsd/resolv/res_cache.c index 2c912de..2621a7b 100644 --- a/libc/netbsd/resolv/res_cache.c +++ b/libc/netbsd/resolv/res_cache.c @@ -251,7 +251,7 @@ _bprint( char* p, char* end, const char* format, ... ) return p; va_start(args, format); - n = snprintf( p, avail, format, args); + n = vsnprintf( p, avail, format, args); va_end(args); /* certain C libraries return -1 in case of truncation */ diff --git a/libc/netbsd/resolv/res_init.c b/libc/netbsd/resolv/res_init.c index 751603d..81e570f 100644 --- a/libc/netbsd/resolv/res_init.c +++ b/libc/netbsd/resolv/res_init.c @@ -198,6 +198,8 @@ int load_domain_search_list(res_state statp) { if (pp > statp->dnsrch) return 1; } + statp->defdname[0] = '\0'; /* no default domain name on Android */ + statp->dnsrch[0] = NULL; return 0; } #endif @@ -381,7 +383,7 @@ __res_vinit(res_state statp, int preinit) { /* Add the domain search list */ havesearch = load_domain_search_list(statp); -#else /* IGNORE resolv.conf */ +#else /* !ANDROID_CHANGES - IGNORE resolv.conf in Android */ #define MATCH(line, name) \ (!strncmp(line, name, sizeof(name) - 1) && \ (line[sizeof(name) - 1] == ' ' || \ @@ -534,7 +536,7 @@ __res_vinit(res_state statp, int preinit) { statp->nsort = nsort; (void) fclose(fp); } -#endif /* ANDROID_CHANGES */ +#endif /* !ANDROID_CHANGES */ /* * Last chance to get a nameserver. This should not normally * be necessary diff --git a/libc/private/arpa_nameser.h b/libc/private/arpa_nameser.h index 2d2a739..438dc04 100644 --- a/libc/private/arpa_nameser.h +++ b/libc/private/arpa_nameser.h @@ -566,4 +566,12 @@ __END_DECLS #include "arpa_nameser_compat.h" #endif +#if 0 +# include <logd.h> +# define XLOG(...) \ + __libc_android_log_print(ANDROID_LOG_DEBUG,"libc",__VA_ARGS__) +#else +#define XLOG(...) do {} while (0) +#endif + #endif /* !_ARPA_NAMESER_H_ */ diff --git a/libc/unistd/gethostname.c b/libc/unistd/gethostname.c index 369d21e..5d3d7d9 100644 --- a/libc/unistd/gethostname.c +++ b/libc/unistd/gethostname.c @@ -41,11 +41,11 @@ int gethostname(char* buff, size_t buflen) int namelen = strlen(name.nodename); if ((int)buflen < namelen+1) { - errno = EINVAL; + errno = EINVAL; result = -1; } else { memcpy( buff, name.nodename, namelen+1 ); - } + } } return result; } |