public override bool Equals(object obj) { if (obj is null) { return(false); } if (ReferenceEquals(this, obj)) { return(true); } DnsSRVRecord other = obj as DnsSRVRecord; if (other == null) { return(false); } if (_port != other._port) { return(false); } if (!_target.Equals(other._target, StringComparison.CurrentCultureIgnoreCase)) { return(false); } return(true); }
private IReadOnlyList <DnsResourceRecord> GetAdditionalRecords(IReadOnlyList <DnsResourceRecord> refRecords) { List <DnsResourceRecord> additionalRecords = new List <DnsResourceRecord>(); foreach (DnsResourceRecord refRecord in refRecords) { switch (refRecord.Type) { case DnsResourceRecordType.NS: DnsNSRecord nsRecord = refRecord.RDATA as DnsNSRecord; if (nsRecord is not null) { ResolveAdditionalRecords(refRecord, nsRecord.NameServer, additionalRecords); } break; case DnsResourceRecordType.MX: DnsMXRecord mxRecord = refRecord.RDATA as DnsMXRecord; if (mxRecord is not null) { ResolveAdditionalRecords(refRecord, mxRecord.Exchange, additionalRecords); } break; case DnsResourceRecordType.SRV: DnsSRVRecord srvRecord = refRecord.RDATA as DnsSRVRecord; if (srvRecord is not null) { ResolveAdditionalRecords(refRecord, srvRecord.Target, additionalRecords); } break; } } return(additionalRecords); }