Indy 9
|
TSOARecord = class(TResultRecord)
A Start of Authority resource record is used to identify the start of a zone of authority for the authoritative data in the Answer section of the DNS response. A Start of Authority resource record is especially for describing name server zone management parameters.
A Start of Authority resource record uses the same DNS packet layout as other TResultRecord-based responses, but extends the use of RData to include the following definition and format:
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | | . . . MNAME . . . +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | | . . . RNAME . . . +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | SERIAL | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | REFRESH | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | RETRY | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | EXPIRE | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | MINIMUM | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
All times are expressed in seconds.
Most of these fields are pertinent only for name server maintenance operations. However, MINIMUM is used in all query operations that retrieve Resource Records from a zone.
Whenever a Start of Authority RR is sent in a response to a query, the TTL field is set to the maximum of the TTL field from the Resource Record, and the MINIMUM field in the appropriate SOA. Thus MINIMUM is a lower bound on the TTL field for all RRs in a zone. Note that this use of MINIMUM should occur when the Resource Records are copied into the response and not when the zone is loaded from a master file or via a zone transfer. The reason for this provison is to allow future dynamic update facilities to change the Start of Authority Resource Record with known semantics.
TSOARecord extends TResultRecord to implement the specifics of accessing RData values as properties, including Primary, ResponsiblePerson, Serial, Refresh, Retry, Expire, and MinimumTTL. TSOARecord also overrides the Parse method to read the values in RData into their property counterparts.
property Expire: Cardinal;
Expire is used to control when a cached response from a DNS name server needs to be Refreshed or polled by a secondary name server or resolver. Other maintenance parameters for the TSOARecord, like MinimumTTL and Refresh, may also force a similar operation.
property MinimumTTL: Cardinal;
MinimumTTL is the value assigned by the DNS name server as the default value for TTL in all Resource Records for which it is an Authoritative name server. TTL may be given a higher value at some other time.
property Primary: string;
Secondary name servers and resolver will periodically monitor the server identified in Primary for changes to the TSOARecord for the name server.
property Refresh: Cardinal;
Refresh is used to force distributed domain name service data to be refreshed at periodic intervals. The host server in Primary determines the Refresh interval, and secondary name servers and resolvers are responsible for performing the actions needed to refresh distributed DNS data.
property ResponsiblePerson: string;
property Retry: Cardinal;
Retry is a zone maintenance parameter used to control periodic polling of the secondary name servers for the zone. Retry is used when a secondary name server is attempt to check zone data after Refresh has expired. If this check cannot be completed, new checks are started every Retry seconds.
The check is a simple query to the primary for the TSOARecord Resource Record for the zone. If the value in Serial in the secondary zone data is equal to the Serial returned by Primary, then no changes have occurred, and the Refresh interval wait is restarted. If the secondary finds it impossible to perform a serial check for the Expire interval, it must assume that its copy of the zone is obsolete an discard it.
property Serial: cardinal;
Serial is a zone maintenance parameter used to control periodic polling of the secondary name servers for the zone. Serial is used when a secondary name server is attempt to check zone data after Refresh has expired. If this check cannot be completed, new checks are started every Retry seconds.
The check is a simple query to the primary for the TSOARecord Resource Record for the zone. If the value in Serial in the secondary zone data is equal to the Serial returned by Primary, then no changes have occurred, and the Refresh interval wait is restarted. If the secondary finds it impossible to perform a serial check for the Expire interval, it must assume that its copy of the zone is obsolete an discard it.
procedure Parse(CompleteMessage: String; APos: Integer); override;
CompleteMessage is the contents of the resource record. Since the DNS message can contain compressed data, the whole message is needed for parsing and pointer location.
APos is the position in the resource record where RData values for this record type are located in the DNS Answer.
Parse calls the inherited Parse method, and retrieves the DNS labels and values for the Primary, ResponsiblePerson, Serial, Refresh, Retry, Expire, and MinimumTTL properties.