blob: 249fa0707d3396f7dfdb412aed41b55fdb2401ae [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// WARNING! Do NOT use this mojom. It is intended as a temporary interface to
// implement out-of-process proxy resolution. If you wish to use a Mojo DNS
// service, contact amistry@/sammc@ and net-dev to discuss a permanent Mojo DNS
// interface.
// Put Mojo definitions into their own namespace to avoid collisions with C++
// definitions.
// TODO(amistry): Resolve the conflict between these two sets of definitions.
module net.interfaces;
// Mirror of net::AddressFamily.
enum AddressFamily {
// Mirror of net::HostResolver::RequestInfo.
struct HostResolverRequestInfo {
string host;
uint16 port;
AddressFamily address_family;
bool is_my_ip_address;
// Mirror of net::IPEndPoint.
struct IPEndPoint {
// IP address as a numeric value from most to least significant byte.
// Will be of length 4 for IPv4 addresses and 16 for IPv6.
array<uint8> address;
uint16 port;
// Mirror of net::AddressList.
struct AddressList {
array<IPEndPoint> addresses;
interface HostResolver {
// Use a HostResolverRequestClient instead of returning a result so we can
// cancel in-flight requests by destroying the client. IPC requests in Mojo
// cannot be cancelled directly.
// TODO(amistry): Add BoundNetLog.
Resolve(HostResolverRequestInfo request_info,
HostResolverRequestClient client);
interface HostResolverRequestClient {
// |error| is a value in net::Error.
ReportResult(int32 error, AddressList? result);