Chromium Code Reviews| Index: net/dns/mapped_ip_resolver.cc |
| diff --git a/net/dns/mapped_ip_resolver.cc b/net/dns/mapped_ip_resolver.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e7a0fe2d40427a9ec6aed62d7e42404406ba1805 |
| --- /dev/null |
| +++ b/net/dns/mapped_ip_resolver.cc |
| @@ -0,0 +1,69 @@ |
| +// Copyright (c) 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "net/dns/mapped_ip_resolver.h" |
| + |
| +#include "base/strings/string_util.h" |
| +#include "net/base/net_errors.h" |
| +#include "net/base/net_util.h" |
| + |
| +namespace net { |
| + |
| +MappedIPResolver::MappedIPResolver(scoped_ptr<HostResolver> impl) |
| + : impl_(impl.Pass()), |
| + weak_factory_(this) { |
| +} |
| + |
| +MappedIPResolver::~MappedIPResolver() {} |
| + |
| +int MappedIPResolver::Resolve(const RequestInfo& info, |
| + RequestPriority priority, |
| + AddressList* addresses, |
| + const CompletionCallback& original_callback, |
|
wtc
2014/02/11 23:52:30
Why did you rename this parameter "original_callba
jar (doing other things)
2014/02/15 21:14:56
Done.
|
| + RequestHandle* out_req, |
| + const BoundNetLog& net_log) { |
| + CompletionCallback new_callback = base::Bind(&MappedIPResolver::ApplyRules, |
| + weak_factory_.GetWeakPtr(), |
| + original_callback, addresses); |
| + int rv = impl_->Resolve(info, priority, addresses, new_callback, out_req, |
| + net_log); |
| + if (rv == OK) |
| + rules_.RewriteAddresses(addresses); |
| + return rv; |
| +} |
| + |
| +int MappedIPResolver::ResolveFromCache(const RequestInfo& info, |
| + AddressList* addresses, |
| + const BoundNetLog& net_log) { |
| + int rv = impl_->ResolveFromCache(info, addresses, net_log); |
| + if (rv == OK) |
| + rules_.RewriteAddresses(addresses); |
| + return rv; |
| +} |
| + |
| +void MappedIPResolver::CancelRequest(RequestHandle req) { |
| + impl_->CancelRequest(req); |
| +} |
| + |
| +void MappedIPResolver::SetDnsClientEnabled(bool enabled) { |
| + impl_->SetDnsClientEnabled(enabled); |
| +} |
| + |
| +HostCache* MappedIPResolver::GetHostCache() { |
| + return impl_->GetHostCache(); |
| +} |
| + |
| +base::Value* MappedIPResolver::GetDnsConfigAsValue() const { |
| + return impl_->GetDnsConfigAsValue(); |
| +} |
| + |
| +void MappedIPResolver::ApplyRules(const CompletionCallback& original_cb, |
| + AddressList* addresses, |
| + int rv) const { |
| + if (rv == OK) |
| + rules_.RewriteAddresses(addresses); |
| + original_cb.Run(rv); |
| +} |
| + |
| +} // namespace net |