Merge "Don't proxy getaddrinfo when net.dns1.[MYPID] is set."

This commit is contained in:
Brad Fitzpatrick 2011-01-25 15:09:13 -08:00 committed by Android Code Review
commit 7a2e1a0245

View File

@ -103,6 +103,10 @@
#include <stdarg.h>
#include "nsswitch.h"
#ifdef ANDROID_CHANGES
#include <sys/system_properties.h>
#endif /* ANDROID_CHANGES */
typedef union sockaddr_union {
struct sockaddr generic;
struct sockaddr_in in;
@ -399,6 +403,16 @@ android_getaddrinfo_proxy(
return -1;
}
// Temporary cautious hack to disable the DNS proxy for processes
// requesting special treatment. Ideally the DNS proxy should
// accomodate these apps, though.
char propname[PROP_NAME_MAX];
char propvalue[PROP_VALUE_MAX];
snprintf(propname, sizeof(propname), "net.dns1.%d", getpid());
if (__system_property_get(propname, propvalue) > 0) {
return -1;
}
// Bogus things we can't serialize. Don't use the proxy.
if ((hostname != NULL &&
strcspn(hostname, " \n\r\t^'\"") != strlen(hostname)) ||