OLD | NEW |
(Empty) | |
| 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 |
| 3 // found in the LICENSE file. |
| 4 |
| 5 // WARNING! Do NOT use this mojom. It is intended as a temporary interface to |
| 6 // implement out-of-process proxy resolution. If you wish to use a Mojo DNS |
| 7 // service, contact amistry@/sammc@ and net-dev to discuss a permanent Mojo DNS |
| 8 // interface. |
| 9 |
| 10 // Put Mojo definitions into their own namespace to avoid collisions with C++ |
| 11 // definitions. |
| 12 // TODO(amistry): Resolve the conflict between these two sets of definitions. |
| 13 module net.interfaces; |
| 14 |
| 15 // Mirror of net::AddressFamily. |
| 16 enum AddressFamily { |
| 17 UNSPECIFIED, |
| 18 IPV4, |
| 19 IPV6, |
| 20 }; |
| 21 |
| 22 // Mirror of net::HostResolver::RequestInfo. |
| 23 struct HostResolverRequestInfo { |
| 24 string host; |
| 25 uint16 port; |
| 26 AddressFamily address_family; |
| 27 bool is_my_ip_address; |
| 28 }; |
| 29 |
| 30 // Mirror of net::IPEndPoint. |
| 31 struct IPEndPoint { |
| 32 // IP address as a numeric value from most to least significant byte. |
| 33 // Will be of length 4 for IPv4 addresses and 16 for IPv6. |
| 34 array<uint8> address; |
| 35 uint16 port; |
| 36 }; |
| 37 |
| 38 // Mirror of net::AddressList. |
| 39 struct AddressList { |
| 40 array<IPEndPoint> addresses; |
| 41 }; |
| 42 |
| 43 interface HostResolverService { |
| 44 // Use a HostResolverRequestClient instead of returning a result so we can |
| 45 // cancel in-flight requests by destroying the client. IPC requests in Mojo |
| 46 // cannot be cancelled directly. |
| 47 // TODO(amistry): Add BoundNetLog. |
| 48 Resolve(HostResolverRequestInfo request_info, |
| 49 HostResolverRequestClient client); |
| 50 }; |
| 51 |
| 52 interface HostResolverRequestClient { |
| 53 // |error| is a value in net::Error. |
| 54 ReportResult(int32 error, AddressList? result); |
| 55 }; |
OLD | NEW |