Index: net/dns/mock_host_resolver.cc |
diff --git a/net/dns/mock_host_resolver.cc b/net/dns/mock_host_resolver.cc |
index ff5ffbc2f75082cbd83aae9a512cd7096d895b26..92ecbafebe11ac719f642d1a4e4ee215cb6a3b95 100644 |
--- a/net/dns/mock_host_resolver.cc |
+++ b/net/dns/mock_host_resolver.cc |
@@ -14,6 +14,7 @@ |
#include "base/strings/string_split.h" |
#include "base/strings/string_util.h" |
#include "base/threading/platform_thread.h" |
+#include "net/base/ip_endpoint.h" |
#include "net/base/net_errors.h" |
#include "net/base/net_util.h" |
#include "net/base/test_completion_callback.h" |
@@ -154,6 +155,12 @@ int MockHostResolverBase::ResolveFromIPLiteralOrCache(const RequestInfo& info, |
AddressList* addresses) { |
IPAddressNumber ip; |
if (ParseIPLiteralToNumber(info.hostname(), &ip)) { |
+ // This matches the behavior HostResolverImpl. |
+ if (info.address_family() != ADDRESS_FAMILY_UNSPECIFIED && |
+ info.address_family() != GetAddressFamily(ip)) { |
+ return ERR_NAME_NOT_RESOLVED; |
+ } |
+ |
*addresses = AddressList::CreateFromIPAddress(ip, info.port()); |
if (info.host_resolver_flags() & HOST_RESOLVER_CANONNAME) |
addresses->SetDefaultCanonicalName(); |