Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(177)

Side by Side Diff: net/dns/type_converters.cc

Issue 904313003: Implement utility-side host resolver Mojo client. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mojo-proxy-resolver
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/dns/type_converters.h" 5 #include "net/dns/type_converters.h"
6 6
7 #include "net/base/address_list.h" 7 #include "net/base/address_list.h"
8 #include "net/base/net_util.h" 8 #include "net/base/net_util.h"
9 #include "third_party/mojo/src/mojo/public/cpp/bindings/type_converter.h" 9 #include "third_party/mojo/src/mojo/public/cpp/bindings/type_converter.h"
10 10
11 namespace net {
12 namespace {
13
14 AddressFamily AddressFamilyFromMojo(interfaces::AddressFamily address_family) {
15 switch (address_family) {
16 case interfaces::ADDRESS_FAMILY_UNSPECIFIED:
17 return ADDRESS_FAMILY_UNSPECIFIED;
18 case interfaces::ADDRESS_FAMILY_IPV4:
19 return ADDRESS_FAMILY_IPV4;
20 case interfaces::ADDRESS_FAMILY_IPV6:
21 return ADDRESS_FAMILY_IPV6;
22 }
23 }
24
25 interfaces::AddressFamily AddressFamilyToMojo(AddressFamily address_family) {
26 switch (address_family) {
27 case ADDRESS_FAMILY_UNSPECIFIED:
28 return interfaces::ADDRESS_FAMILY_UNSPECIFIED;
29 case ADDRESS_FAMILY_IPV4:
30 return interfaces::ADDRESS_FAMILY_IPV4;
31 case ADDRESS_FAMILY_IPV6:
32 return interfaces::ADDRESS_FAMILY_IPV6;
33 }
34 }
35
36 } // namespace
37 } // namespace net
38
11 namespace mojo { 39 namespace mojo {
12 40
13 // static 41 // static
14 net::HostResolver::RequestInfo 42 net::HostResolver::RequestInfo
15 TypeConverter<net::HostResolver::RequestInfo, 43 TypeConverter<net::HostResolver::RequestInfo,
16 net::interfaces::HostResolverRequestInfo>:: 44 net::interfaces::HostResolverRequestInfo>::
17 Convert(const net::interfaces::HostResolverRequestInfo& obj) { 45 Convert(const net::interfaces::HostResolverRequestInfo& obj) {
18 net::HostResolver::RequestInfo result(net::HostPortPair(obj.host, obj.port)); 46 net::HostResolver::RequestInfo result(net::HostPortPair(obj.host, obj.port));
19 result.set_address_family( 47 result.set_address_family(net::AddressFamilyFromMojo(obj.address_family));
20 static_cast<net::AddressFamily>(obj.address_family));
21 return result; 48 return result;
22 } 49 }
23 50
24 // static 51 // static
52 net::interfaces::HostResolverRequestInfoPtr
53 TypeConverter<net::interfaces::HostResolverRequestInfoPtr,
54 net::HostResolver::RequestInfo>::
55 Convert(const net::HostResolver::RequestInfo& obj) {
56 net::interfaces::HostResolverRequestInfoPtr result(
57 net::interfaces::HostResolverRequestInfo::New());
58 result->host = obj.hostname();
59 result->port = obj.port();
60 result->address_family = net::AddressFamilyToMojo(obj.address_family());
61 result->is_my_ip_address = obj.is_my_ip_address();
62 return result.Pass();
63 }
64
65 // static
25 net::interfaces::AddressListPtr 66 net::interfaces::AddressListPtr
26 TypeConverter<net::interfaces::AddressListPtr, net::AddressList>::Convert( 67 TypeConverter<net::interfaces::AddressListPtr, net::AddressList>::Convert(
27 const net::AddressList& obj) { 68 const net::AddressList& obj) {
28 net::interfaces::AddressListPtr result(net::interfaces::AddressList::New()); 69 net::interfaces::AddressListPtr result(net::interfaces::AddressList::New());
29 for (const auto& endpoint : obj) { 70 for (const auto& endpoint : obj) {
30 net::interfaces::IPEndPointPtr ep(net::interfaces::IPEndPoint::New()); 71 net::interfaces::IPEndPointPtr ep(net::interfaces::IPEndPoint::New());
31 ep->port = endpoint.port(); 72 ep->port = endpoint.port();
32 ep->address = mojo::Array<uint8_t>::From(endpoint.address()); 73 ep->address = mojo::Array<uint8_t>::From(endpoint.address());
33 result->addresses.push_back(ep.Pass()); 74 result->addresses.push_back(ep.Pass());
34 } 75 }
35 return result.Pass(); 76 return result.Pass();
36 } 77 }
37 78
38 // static 79 // static
39 net::AddressList 80 net::AddressList
40 TypeConverter<net::AddressList, net::interfaces::AddressList>::Convert( 81 TypeConverter<net::AddressList, net::interfaces::AddressList>::Convert(
41 const net::interfaces::AddressList& obj) { 82 const net::interfaces::AddressList& obj) {
42 net::AddressList address_list; 83 net::AddressList address_list;
43 for (size_t i = 0; i < obj.addresses.size(); i++) { 84 for (size_t i = 0; i < obj.addresses.size(); i++) {
44 const net::interfaces::IPEndPointPtr& ep = obj.addresses[i]; 85 const net::interfaces::IPEndPointPtr& ep = obj.addresses[i];
45 address_list.push_back( 86 address_list.push_back(
46 net::IPEndPoint(ep->address.To<net::IPAddressNumber>(), ep->port)); 87 net::IPEndPoint(ep->address.To<net::IPAddressNumber>(), ep->port));
47 } 88 }
48 return address_list; 89 return address_list;
49 } 90 }
50 91
51 } // namespace mojo 92 } // namespace mojo
OLDNEW
« net/dns/host_resolver_mojo.cc ('K') | « net/dns/type_converters.h ('k') | net/net.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698