SubDomainZone.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. Technitium DNS Server
  3. Copyright (C) 2020 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 DnsServerCore.Dns.ResourceRecords;
  16. using System.Collections.Generic;
  17. using TechnitiumLibrary.Net.Dns;
  18. namespace DnsServerCore.Dns.Zones
  19. {
  20. abstract class SubDomainZone : AuthZone
  21. {
  22. #region constructor
  23. protected SubDomainZone(string name)
  24. : base(name)
  25. { }
  26. #endregion
  27. #region public
  28. public void AutoUpdateState()
  29. {
  30. foreach (KeyValuePair<DnsResourceRecordType, IReadOnlyList<DnsResourceRecord>> entry in _entries)
  31. {
  32. foreach (DnsResourceRecord record in entry.Value)
  33. {
  34. if (!record.IsDisabled())
  35. {
  36. _disabled = false;
  37. return;
  38. }
  39. }
  40. }
  41. _disabled = true;
  42. }
  43. #endregion
  44. }
  45. }