Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }