summaryrefslogtreecommitdiffstats
path: root/net/proxy/proxy_resolver_js_bindings.cc
diff options
context:
space:
mode:
authoreroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-22 18:25:48 +0000
committereroman@chromium.org <eroman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-10-22 18:25:48 +0000
commit9e72c20a4fd1eece107e950c95e8153dcf71447b (patch)
treebaaf038280047bfff4b72bc9d4b50e36478ed36c /net/proxy/proxy_resolver_js_bindings.cc
parent8ad9da07e33a811e709462b88405cb53baea336d (diff)
downloadchromium_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.cc10
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.