| // 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. |
| 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 `WatchServers` while a previous call is still pending. Doing so will |
| /// cause the `DnsServerWatcher` channel to be closed. |
| /// |
| /// - response `servers` The list of servers to use for DNS resolution, in priority order. |
| WatchServers() -> (vector<DnsServer>:MAX servers); |
| }; |