private void UpdateServerDomain(string serverDomain) { _soaRecord = new DnsSOARecord(serverDomain, "hostadmin." + serverDomain, 1, 14400, 3600, 604800, 60); _nsRecord = new DnsNSRecord(serverDomain); _zoneManager.ServerDomain = serverDomain; }
internal PrimaryZone(DnsServer dnsServer, string name, DnsSOARecord soa, DnsNSRecord ns) : base(name) { _dnsServer = dnsServer; _entries[DnsResourceRecordType.SOA] = new DnsResourceRecord[] { new DnsResourceRecord(_name, DnsResourceRecordType.SOA, DnsClass.IN, soa.Refresh, soa) }; _entries[DnsResourceRecordType.NS] = new DnsResourceRecord[] { new DnsResourceRecord(_name, DnsResourceRecordType.NS, DnsClass.IN, soa.Refresh, ns) }; _notifyTimer = new Timer(NotifyTimerCallback, null, Timeout.Infinite, Timeout.Infinite); }
internal PrimaryZone(DnsServer dnsServer, string name, DnsSOARecord soa, DnsNSRecord ns) : base(name) { _dnsServer = dnsServer; _internal = true; _zoneTransfer = AuthZoneTransfer.Deny; _notify = AuthZoneNotify.None; _entries[DnsResourceRecordType.SOA] = new DnsResourceRecord[] { new DnsResourceRecord(_name, DnsResourceRecordType.SOA, DnsClass.IN, soa.Refresh, soa) }; _entries[DnsResourceRecordType.NS] = new DnsResourceRecord[] { new DnsResourceRecord(_name, DnsResourceRecordType.NS, DnsClass.IN, soa.Refresh, ns) }; }
private IReadOnlyList <DnsResourceRecord> GetAdditionalRecords(IReadOnlyList <DnsResourceRecord> refRecords, bool serveStale) { 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, serveStale, additionalRecords); } break; case DnsResourceRecordType.MX: DnsMXRecord mxRecord = refRecord.RDATA as DnsMXRecord; if (mxRecord is not null) { ResolveAdditionalRecords(refRecord, mxRecord.Exchange, serveStale, additionalRecords); } break; case DnsResourceRecordType.SRV: DnsSRVRecord srvRecord = refRecord.RDATA as DnsSRVRecord; if (srvRecord is not null) { ResolveAdditionalRecords(refRecord, srvRecord.Target, serveStale, additionalRecords); } break; } } return(additionalRecords); }
internal AuthZoneInfo CreateInternalPrimaryZone(string domain, DnsSOARecord soaRecord, DnsNSRecord ns) { AuthZone authZone = new PrimaryZone(_dnsServer, domain, soaRecord, ns); if (_root.TryAdd(authZone)) { _totalZones++; return(new AuthZoneInfo(authZone)); } return(null); }