| Index: net/dns/single_request_host_resolver.cc
|
| diff --git a/net/dns/single_request_host_resolver.cc b/net/dns/single_request_host_resolver.cc
|
| index 7974abafeef3518983a1d4604e3f5382c6f6d96c..2b05629b53135d93f2671541e3008d17839d6629 100644
|
| --- a/net/dns/single_request_host_resolver.cc
|
| +++ b/net/dns/single_request_host_resolver.cc
|
| @@ -8,6 +8,8 @@
|
| #include "base/bind_helpers.h"
|
| #include "base/compiler_specific.h"
|
| #include "base/logging.h"
|
| +#include "base/memory/ptr_util.h"
|
| +#include "net/base/address_list.h"
|
| #include "net/base/net_errors.h"
|
|
|
| namespace net {
|
| @@ -15,9 +17,9 @@ namespace net {
|
| SingleRequestHostResolver::SingleRequestHostResolver(HostResolver* resolver)
|
| : resolver_(resolver),
|
| cur_request_(NULL),
|
| - callback_(
|
| - base::Bind(&SingleRequestHostResolver::OnResolveCompletion,
|
| - base::Unretained(this))) {
|
| + callback_(base::Bind(&SingleRequestHostResolver::OnResolveCompletion,
|
| + base::Unretained(this))),
|
| + default_addresses_(nullptr) {
|
| DCHECK(resolver_ != NULL);
|
| }
|
|
|
| @@ -30,10 +32,14 @@ int SingleRequestHostResolver::Resolve(const HostResolver::RequestInfo& info,
|
| AddressList* addresses,
|
| const CompletionCallback& callback,
|
| const BoundNetLog& net_log) {
|
| - DCHECK(addresses);
|
| DCHECK_EQ(false, callback.is_null());
|
| DCHECK(cur_request_callback_.is_null()) << "resolver already in use";
|
|
|
| + if (!addresses) {
|
| + default_addresses_ = base::WrapUnique(new AddressList);
|
| + addresses = default_addresses_.get();
|
| + }
|
| +
|
| HostResolver::RequestHandle request = NULL;
|
|
|
| // We need to be notified of completion before |callback| is called, so that
|
|
|