diff options
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); } |