ForwarderSubDomainZone.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. Technitium DNS Server
  3. Copyright (C) 2022 Shreyas Zare (shreyas@technitium.com)
  4. This program is free software: you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation, either version 3 of the License, or
  7. (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program. If not, see <http://www.gnu.org/licenses/>.
  14. */
  15. using System.Collections.Generic;
  16. using TechnitiumLibrary.Net.Dns.ResourceRecords;
  17. namespace DnsServerCore.Dns.Zones
  18. {
  19. class ForwarderSubDomainZone : SubDomainZone
  20. {
  21. #region constructor
  22. public ForwarderSubDomainZone(ForwarderZone forwarderZone, string name)
  23. : base(forwarderZone, name)
  24. { }
  25. #endregion
  26. #region public
  27. public override void SetRecords(DnsResourceRecordType type, IReadOnlyList<DnsResourceRecord> records)
  28. {
  29. switch (type)
  30. {
  31. case DnsResourceRecordType.SOA:
  32. case DnsResourceRecordType.DS:
  33. throw new DnsServerException("The record type is not supported by forwarder zones.");
  34. default:
  35. base.SetRecords(type, records);
  36. break;
  37. }
  38. }
  39. public override void AddRecord(DnsResourceRecord record)
  40. {
  41. switch (record.Type)
  42. {
  43. case DnsResourceRecordType.DS:
  44. throw new DnsServerException("The record type is not supported by forwarder zones.");
  45. default:
  46. base.AddRecord(record);
  47. break;
  48. }
  49. }
  50. #endregion
  51. }
  52. }