[Linux] Enable connecting to localhost when offline.
Add a utility function to determine if only loopback address are configured.
Add a mechanism to add supplemental HostResolverFlags in the HostResolver.
Change the resolver on Linux to not use AI_ADDRCONFIG if only loopback addresses are configured.
BUG=41408
TEST=localhost works when offline
Review URL: http://codereview.chromium.org/3036011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53487 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/base/host_resolver_proc.cc b/net/base/host_resolver_proc.cc
index 804135c..8e8034f 100644
--- a/net/base/host_resolver_proc.cc
+++ b/net/base/host_resolver_proc.cc
@@ -216,6 +216,12 @@
hints.ai_flags = AI_ADDRCONFIG;
#endif
+ // On Linux AI_ADDRCONFIG doesn't consider loopback addreses, even if only
+ // loopback addresses are configured. So don't use it when there are only
+ // loopback addresses.
+ if (host_resolver_flags & HOST_RESOLVER_LOOPBACK_ONLY)
+ hints.ai_flags &= ~AI_ADDRCONFIG;
+
if (host_resolver_flags & HOST_RESOLVER_CANONNAME)
hints.ai_flags |= AI_CANONNAME;