summaryrefslogtreecommitdiffstats
path: root/net/base/mock_host_resolver.cc
diff options
context:
space:
mode:
authoragayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-28 21:34:47 +0000
committeragayev@chromium.org <agayev@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-28 21:34:47 +0000
commit6e78dfb46a07e5ee38225e0cd32fa8b70ed41558 (patch)
treec00c45283a8b8f86eb079395ee4ba56c9954c215 /net/base/mock_host_resolver.cc
parenta13cc36d904c699cd37f80a1c5200f21a7a54671 (diff)
downloadchromium_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.cc10
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);
}