Index: net/dns/mojo_type_converters.cc |
diff --git a/net/dns/mojo_type_converters.cc b/net/dns/mojo_type_converters.cc |
index b9f11e70a4e8089e26df8890d4942e6eec7b15b8..9847e60f2a3de4babbb22b3425cccbd1e5264b14 100644 |
--- a/net/dns/mojo_type_converters.cc |
+++ b/net/dns/mojo_type_converters.cc |
@@ -8,6 +8,38 @@ |
#include "net/base/net_util.h" |
#include "third_party/mojo/src/mojo/public/cpp/bindings/type_converter.h" |
+namespace net { |
+namespace { |
+ |
+AddressFamily AddressFamilyFromMojo(interfaces::AddressFamily address_family) { |
+ switch (address_family) { |
+ case interfaces::ADDRESS_FAMILY_UNSPECIFIED: |
+ return ADDRESS_FAMILY_UNSPECIFIED; |
+ case interfaces::ADDRESS_FAMILY_IPV4: |
+ return ADDRESS_FAMILY_IPV4; |
+ case interfaces::ADDRESS_FAMILY_IPV6: |
+ return ADDRESS_FAMILY_IPV6; |
+ } |
+ NOTREACHED(); |
+ return ADDRESS_FAMILY_UNSPECIFIED; |
+} |
+ |
+interfaces::AddressFamily AddressFamilyToMojo(AddressFamily address_family) { |
+ switch (address_family) { |
+ case ADDRESS_FAMILY_UNSPECIFIED: |
+ return interfaces::ADDRESS_FAMILY_UNSPECIFIED; |
+ case ADDRESS_FAMILY_IPV4: |
+ return interfaces::ADDRESS_FAMILY_IPV4; |
+ case ADDRESS_FAMILY_IPV6: |
+ return interfaces::ADDRESS_FAMILY_IPV6; |
+ } |
+ NOTREACHED(); |
+ return interfaces::ADDRESS_FAMILY_UNSPECIFIED; |
+} |
+ |
+} // namespace |
+} // namespace net |
+ |
namespace mojo { |
// static |
@@ -16,12 +48,26 @@ TypeConverter<net::HostResolver::RequestInfo, |
net::interfaces::HostResolverRequestInfo>:: |
Convert(const net::interfaces::HostResolverRequestInfo& obj) { |
net::HostResolver::RequestInfo result(net::HostPortPair(obj.host, obj.port)); |
- result.set_address_family( |
- static_cast<net::AddressFamily>(obj.address_family)); |
+ result.set_address_family(net::AddressFamilyFromMojo(obj.address_family)); |
+ result.set_is_my_ip_address(obj.is_my_ip_address); |
return result; |
} |
// static |
+net::interfaces::HostResolverRequestInfoPtr |
+TypeConverter<net::interfaces::HostResolverRequestInfoPtr, |
+ net::HostResolver::RequestInfo>:: |
+ Convert(const net::HostResolver::RequestInfo& obj) { |
+ net::interfaces::HostResolverRequestInfoPtr result( |
+ net::interfaces::HostResolverRequestInfo::New()); |
+ result->host = obj.hostname(); |
+ result->port = obj.port(); |
+ result->address_family = net::AddressFamilyToMojo(obj.address_family()); |
+ result->is_my_ip_address = obj.is_my_ip_address(); |
+ return result.Pass(); |
+} |
+ |
+// static |
net::interfaces::AddressListPtr |
TypeConverter<net::interfaces::AddressListPtr, net::AddressList>::Convert( |
const net::AddressList& obj) { |