public ForwarderZone(string name, DnsTransportProtocol forwarderProtocol, string forwarder, bool dnssecValidation, NetProxyType proxyType, string proxyAddress, ushort proxyPort, string proxyUsername, string proxyPassword, string fwdRecordComments) : base(name) { _zoneTransfer = AuthZoneTransfer.Deny; _notify = AuthZoneNotify.None; DnsResourceRecord fwdRecord = new DnsResourceRecord(name, DnsResourceRecordType.FWD, DnsClass.IN, 0, new DnsForwarderRecordData(forwarderProtocol, forwarder, dnssecValidation, proxyType, proxyAddress, proxyPort, proxyUsername, proxyPassword)); if (!string.IsNullOrEmpty(fwdRecordComments)) { fwdRecord.SetComments(fwdRecordComments); } _entries[DnsResourceRecordType.FWD] = new DnsResourceRecord[] { fwdRecord }; }
public override void SetRecords(DnsResourceRecordType type, IReadOnlyList <DnsResourceRecord> records) { switch (type) { case DnsResourceRecordType.SOA: if ((records.Count != 1) || !records[0].Name.Equals(_name, StringComparison.OrdinalIgnoreCase)) { throw new InvalidOperationException("Invalid SOA record."); } DnsResourceRecord existingSoaRR = _entries[DnsResourceRecordType.SOA][0]; existingSoaRR.SetGlueRecords(records.GetGlueRecords()); existingSoaRR.SetComments(records[0].GetComments()); break; default: throw new InvalidOperationException("Cannot set records in stub zone."); } }