- <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:
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 */
if (pp > statp->dnsrch)
return 1;
}
+ statp->defdname[0] = '\0'; /* no default domain name on Android */
+ statp->dnsrch[0] = NULL;
return 0;
}
#endif
/* 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] == ' ' || \
statp->nsort = nsort;
(void) fclose(fp);
}
-#endif /* ANDROID_CHANGES */
+#endif /* !ANDROID_CHANGES */
/*
* Last chance to get a nameserver. This should not normally
* be necessary
#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_ */
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;
}