diff options
author | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-22 18:25:48 +0000 |
---|---|---|
committer | eroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-10-22 18:25:48 +0000 |
commit | 9e72c20a4fd1eece107e950c95e8153dcf71447b (patch) | |
tree | baaf038280047bfff4b72bc9d4b50e36478ed36c /net/proxy/proxy_resolver_js_bindings.cc | |
parent | 8ad9da07e33a811e709462b88405cb53baea336d (diff) | |
download | chromium_src-9e72c20a4fd1eece107e950c95e8153dcf71447b.zip chromium_src-9e72c20a4fd1eece107e950c95e8153dcf71447b.tar.gz chromium_src-9e72c20a4fd1eece107e950c95e8153dcf71447b.tar.bz2 |
Disable IPv6 results for the PAC bindings:
myIpAddress()
dnsResolve()
isResolvable()
This makes us behave more like IE and less like Firefox for scripts where IPv6 addresses are not expected.
BUG=24641
TEST=ProxyResolverJSBindingsTest.DontUseIPv6
Review URL: http://codereview.chromium.org/303022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29788 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/proxy/proxy_resolver_js_bindings.cc')
-rw-r--r-- | net/proxy/proxy_resolver_js_bindings.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/net/proxy/proxy_resolver_js_bindings.cc b/net/proxy/proxy_resolver_js_bindings.cc index 94d6448..cbeba08 100644 --- a/net/proxy/proxy_resolver_js_bindings.cc +++ b/net/proxy/proxy_resolver_js_bindings.cc @@ -32,9 +32,12 @@ class SyncHostResolverBridge } // Run the resolve on host_resolver_loop, and wait for result. - int Resolve(const std::string& hostname, net::AddressList* addresses) { + int Resolve(const std::string& hostname, + AddressFamily address_family, + net::AddressList* addresses) { // Port number doesn't matter. HostResolver::RequestInfo info(hostname, 80); + info.set_address_family(address_family); // Hack for tests -- run synchronously on current thread. if (!host_resolver_loop_) @@ -107,8 +110,11 @@ class DefaultJSBindings : public ProxyResolverJSBindings { return std::string(); // Do a sync resolve of the hostname. + // Disable IPv6 results, see http://crbug.com/24641 for motivation. net::AddressList address_list; - int result = host_resolver_->Resolve(host, &address_list); + int result = host_resolver_->Resolve(host, + ADDRESS_FAMILY_IPV4_ONLY, + &address_list); if (result != OK) return std::string(); // Failed. |