/// <summary>
 /// Two DnsResourceDataStartOfAuthority are equal iff their main name server, responsible mailbox, serial, refresh, retry, expire
 /// and minimum TTL fields are equal.
 /// </summary>
 public bool Equals(DnsResourceDataStartOfAuthority other)
 {
     return(other != null &&
            MainNameServer.Equals(other.MainNameServer) &&
            ResponsibleMailbox.Equals(other.ResponsibleMailbox) &&
            Serial.Equals(other.Serial) &&
            Refresh.Equals(other.Refresh) &&
            Retry.Equals(other.Retry) &&
            Expire.Equals(other.Expire) &&
            MinimumTtl.Equals(other.MinimumTtl));
 }
        internal override int WriteData(byte[] buffer, int dnsOffset, int offsetInDns, DnsDomainNameCompressionData compressionData)
        {
            int numBytesWritten = MainNameServer.Write(buffer, dnsOffset, compressionData, offsetInDns);

            numBytesWritten += ResponsibleMailbox.Write(buffer, dnsOffset, compressionData, offsetInDns + numBytesWritten);
            buffer.Write(dnsOffset + offsetInDns + numBytesWritten + Offset.Serial, Serial.Value, Endianity.Big);
            buffer.Write(dnsOffset + offsetInDns + numBytesWritten + Offset.Refresh, Refresh, Endianity.Big);
            buffer.Write(dnsOffset + offsetInDns + numBytesWritten + Offset.Retry, Retry, Endianity.Big);
            buffer.Write(dnsOffset + offsetInDns + numBytesWritten + Offset.Expire, Expire, Endianity.Big);
            buffer.Write(dnsOffset + offsetInDns + numBytesWritten + Offset.MinimumTtl, MinimumTtl, Endianity.Big);

            return(numBytesWritten + ConstantPartLength);
        }
 internal override int GetLength(DnsDomainNameCompressionData compressionData, int offsetInDns)
 {
     return(MainNameServer.GetLength(compressionData, offsetInDns) +
            ResponsibleMailbox.GetLength(compressionData, offsetInDns) +
            ConstantPartLength);
 }