diff options
author | agayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-28 21:34:47 +0000 |
---|---|---|
committer | agayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-28 21:34:47 +0000 |
commit | 6e78dfb46a07e5ee38225e0cd32fa8b70ed41558 (patch) | |
tree | c00c45283a8b8f86eb079395ee4ba56c9954c215 /net/base/mock_host_resolver.cc | |
parent | a13cc36d904c699cd37f80a1c5200f21a7a54671 (diff) | |
download | chromium_src-6e78dfb46a07e5ee38225e0cd32fa8b70ed41558.zip chromium_src-6e78dfb46a07e5ee38225e0cd32fa8b70ed41558.tar.gz chromium_src-6e78dfb46a07e5ee38225e0cd32fa8b70ed41558.tar.bz2 |
HostResolverImpl: don't interpret NULL callback argument as a request to do synchronous resolution.
BUG=90547,60149
TEST=net_unittests
Review URL: http://codereview.chromium.org/7520026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94552 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/mock_host_resolver.cc')
-rw-r--r-- | net/base/mock_host_resolver.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/net/base/mock_host_resolver.cc b/net/base/mock_host_resolver.cc index 3cc4a82..f822bde 100644 --- a/net/base/mock_host_resolver.cc +++ b/net/base/mock_host_resolver.cc @@ -11,6 +11,7 @@ #include "net/base/net_errors.h" #include "net/base/net_util.h" #include "net/base/sys_addrinfo.h" +#include "net/base/test_completion_callback.h" namespace net { @@ -100,8 +101,13 @@ int MockHostResolverBase::Resolve(const RequestInfo& info, RequestHandle* out_req, const BoundNetLog& net_log) { if (synchronous_mode_) { - callback = NULL; - out_req = NULL; + TestCompletionCallback sync_callback; + int rv = impl_->Resolve(info, addresses, &sync_callback, out_req, net_log); + if (rv == ERR_IO_PENDING) { + MessageLoop::ScopedNestableTaskAllower nestable(MessageLoop::current()); + return sync_callback.WaitForResult(); + } + return rv; } return impl_->Resolve(info, addresses, callback, out_req, net_log); } |