blob: d43352ffcc7f520c25fe9aaac16fcfdd5af06a33 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.net.name;
/// Provides a hanging get interface to watch for DNS servers configuration.
@discoverable
closed protocol DnsServerWatcher {
/// Returns a list of DNS servers.
///
/// First call always returns a snapshot of the current list of servers or blocks if an empty
/// list would be returned. Subsequent calls will block until the list of servers changes.
///
/// The list of servers changes over time by configuration or network topology changes,
/// expiration, etc. Callers must repeatedly call `WatchServers` and replace any previously
/// returned `servers` with new ones to avoid using stale or expired entries.
///
/// It is invalid to call this method while a previous call is pending. Doing so will cause the
/// server end of the protocol to be closed.
///
/// - response `servers` The list of servers to use for DNS resolution, in priority order.
strict WatchServers() -> (struct {
servers vector<DnsServer>:MAX;
});
};