| Index: net/base/mock_host_resolver.cc
|
| diff --git a/net/base/mock_host_resolver.cc b/net/base/mock_host_resolver.cc
|
| index 8d1fd89b1002e1aac5413f7fa8e687deb46020f5..a9fc75425e7c2f6d28e392155377185f43221975 100644
|
| --- a/net/base/mock_host_resolver.cc
|
| +++ b/net/base/mock_host_resolver.cc
|
| @@ -9,11 +9,20 @@
|
| #include "base/ref_counted.h"
|
| #include "net/base/net_errors.h"
|
| #include "net/base/net_util.h"
|
| +#include "net/base/sys_addrinfo.h"
|
|
|
| namespace net {
|
|
|
| namespace {
|
|
|
| +char* do_strdup(const char* src) {
|
| +#if defined(OS_WIN)
|
| + return _strdup(src);
|
| +#else
|
| + return strdup(src);
|
| +#endif
|
| +}
|
| +
|
| // Fills |*addrlist| with a socket address for |host| which should be an
|
| // IPv4 or IPv6 literal without enclosing brackets. If |canonical_name| is
|
| // non-empty it is used as the DNS canonical name for the host. Returns OK on
|
| @@ -27,15 +36,10 @@ int CreateIPAddress(const std::string& host,
|
| return ERR_UNEXPECTED;
|
| }
|
|
|
| - if (ip_number.size() == 4) {
|
| - *addrlist = AddressList::CreateIPv4Address(&ip_number[0], canonical_name);
|
| - } else if (ip_number.size() == 16) {
|
| - *addrlist = AddressList::CreateIPv6Address(&ip_number[0], canonical_name);
|
| - } else {
|
| - NOTREACHED();
|
| - return ERR_UNEXPECTED;
|
| - }
|
| -
|
| + AddressList result(ip_number, -1, false);
|
| + struct addrinfo* ai = const_cast<struct addrinfo*>(result.head());
|
| + ai->ai_canonname = do_strdup(canonical_name.c_str());
|
| + *addrlist = result;
|
| return OK;
|
| }
|
|
|
| @@ -161,6 +165,10 @@ void RuleBasedHostResolverProc::AddIPLiteralRule(
|
| const std::string& host_pattern,
|
| const std::string& ip_literal,
|
| const std::string& canonical_name) {
|
| + // Literals are always resolved to themselves by HostResolverImpl,
|
| + // consequently we do not support remapping them.
|
| + IPAddressNumber ip_number;
|
| + DCHECK(!ParseIPLiteralToNumber(host_pattern, &ip_number));
|
| Rule rule(Rule::kResolverTypeIPLiteral,
|
| host_pattern,
|
| ADDRESS_FAMILY_UNSPECIFIED,
|
|
|