using System; namespace DnsClient.Protocol { /* https://tools.ietf.org/html/rfc1183#section-1, https://tools.ietf.org/html/rfc5864 1. AFS Data Base location This section defines an extension of the DNS to locate servers both for AFS (AFS is a registered trademark of Transarc Corporation) and for the Open Software Foundation's (OSF) Distributed Computing Environment (DCE) authenticated naming system using HP/Apollo's NCA, both to be components of the OSF DCE. The discussion assumes that the reader is familiar with AFS [5] and NCA [6]. The AFS (originally the Andrew File System) system uses the DNS to map from a domain name to the name of an AFS cell database server. The DCE Naming service uses the DNS for a similar function: mapping from the domain name of a cell to authenticated name servers for that cell. The method uses a new RR type with mnemonic AFSDB and type code of 18 (decimal). AFSDB has the following format: AFSDB */ /// /// A representing an AFS database location. /// /// RFC 1183 /// RFC 5864 public class AfsDbRecord : DnsResourceRecord { /// /// Gets the . /// /// /// The sub type. /// public AfsType SubType { get; } /// /// Gets the hostname. /// /// /// The hostname. /// public DnsString Hostname { get; } /// /// Initializes a new instance of the class. /// /// The information. /// The type. /// The name. /// If or is null. public AfsDbRecord(ResourceRecordInfo info, AfsType type, DnsString name) : base(info) { SubType = type; Hostname = name ?? throw new ArgumentNullException(nameof(name)); } private protected override string RecordToString() { return $"{(int)SubType} {Hostname}"; } } /// /// Type used by . /// public enum AfsType { /// /// AFS is a registered trademark of Transarc Corporation /// Afs = 1, /// /// The Distributed Computing Environment /// Dce = 2 } }