OLD | NEW |
| (Empty) |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include <stdint.h> | |
6 | |
7 #include "mojo/services/network/net_address_type_converters.h" | |
8 | |
9 namespace mojo { | |
10 | |
11 // static | |
12 net::IPEndPoint TypeConverter<net::IPEndPoint, NetAddressPtr>::Convert( | |
13 const NetAddressPtr& obj) { | |
14 if (!obj) | |
15 return net::IPEndPoint(); | |
16 | |
17 switch (obj->family) { | |
18 case NetAddressFamily::IPV4: | |
19 if (!obj->ipv4) | |
20 break; | |
21 return net::IPEndPoint(obj->ipv4->addr.storage(), obj->ipv4->port); | |
22 | |
23 case NetAddressFamily::IPV6: | |
24 if (!obj->ipv6) | |
25 break; | |
26 return net::IPEndPoint(obj->ipv6->addr.storage(), obj->ipv6->port); | |
27 | |
28 default: | |
29 break; | |
30 } | |
31 | |
32 return net::IPEndPoint(); | |
33 } | |
34 | |
35 // static | |
36 NetAddressPtr TypeConverter<NetAddressPtr, net::IPEndPoint>::Convert( | |
37 const net::IPEndPoint& obj) { | |
38 NetAddressPtr net_address(NetAddress::New()); | |
39 | |
40 switch (obj.GetFamily()) { | |
41 case net::ADDRESS_FAMILY_IPV4: | |
42 net_address->family = NetAddressFamily::IPV4; | |
43 net_address->ipv4 = NetAddressIPv4::New(); | |
44 net_address->ipv4->port = static_cast<uint16_t>(obj.port()); | |
45 net_address->ipv4->addr = Array<uint8_t>::From(obj.address().bytes()); | |
46 break; | |
47 case net::ADDRESS_FAMILY_IPV6: | |
48 net_address->ipv6 = NetAddressIPv6::New(); | |
49 net_address->family = NetAddressFamily::IPV6; | |
50 net_address->ipv6->port = static_cast<uint16_t>(obj.port()); | |
51 net_address->ipv6->addr = Array<uint8_t>::From(obj.address().bytes()); | |
52 break; | |
53 default: | |
54 break; | |
55 } | |
56 | |
57 return net_address; | |
58 } | |
59 | |
60 } // namespace mojo | |
OLD | NEW |