diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-06-02 10:43:26 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-06-02 10:44:03 +0200 |
commit | bb91a70e24ac49fd21c1d7c8c91a216961da1e2d (patch) | |
tree | 4c2497e0b093c7b0a25d48e72659dca21a50569a /chromium/net/dns/mojo_host_resolver_impl.cc | |
parent | 1ec92e71bb67445775ce64cb081ed25c3d7481f1 (diff) | |
parent | b92421879c003a0857b2074f7e05b3bbbb326569 (diff) | |
download | qtwebengine-chromium-bb91a70e24ac49fd21c1d7c8c91a216961da1e2d.tar.gz |
Merge branch 'upstream-master' into 51-based
Change-Id: I08d36e04494c3bb0c04641ad7c8e53bf418975db
Diffstat (limited to 'chromium/net/dns/mojo_host_resolver_impl.cc')
-rw-r--r-- | chromium/net/dns/mojo_host_resolver_impl.cc | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/chromium/net/dns/mojo_host_resolver_impl.cc b/chromium/net/dns/mojo_host_resolver_impl.cc index bf49c99ff1b..13f61d51dd4 100644 --- a/chromium/net/dns/mojo_host_resolver_impl.cc +++ b/chromium/net/dns/mojo_host_resolver_impl.cc @@ -9,6 +9,7 @@ #include "base/stl_util.h" #include "net/base/address_list.h" #include "net/base/net_errors.h" +#include "net/base/network_interfaces.h" #include "net/dns/host_resolver.h" #include "net/dns/mojo_host_type_converters.h" @@ -59,9 +60,16 @@ void MojoHostResolverImpl::Resolve( interfaces::HostResolverRequestInfoPtr request_info, interfaces::HostResolverRequestClientPtr client) { DCHECK(thread_checker_.CalledOnValidThread()); - Job* job = new Job(this, resolver_, - request_info->To<net::HostResolver::RequestInfo>(), - net_log_, std::move(client)); + HostResolver::RequestInfo host_request_info = + request_info->To<net::HostResolver::RequestInfo>(); + if (host_request_info.is_my_ip_address()) { + // The proxy resolver running inside a sandbox may not be able to get the + // correct host name. Instead, fill it ourself if the request is for our own + // IP address. + host_request_info.set_host_port_pair(HostPortPair(GetHostName(), 80)); + } + Job* job = new Job(this, resolver_, host_request_info, net_log_, + std::move(client)); pending_jobs_.insert(job); job->Start(); } |