- findZone :: DomainName -> Maybe Zone
- findZone name
- | name `isInZone` zone = Just zone
- | otherwise = Nothing
-
- zone :: Zone
- zone = Zone {
- zoneName = "cielonegro.org."
- , zoneSOA = Just SOAFields {
- soaMasterNameServer = "ns.cielonegro.org."
- , soaResponsibleMailbox = "root.ns.cielonegro.org."
- , soaSerialNumber = 2008022148
- , soaRefreshInterval = 3600
- , soaRetryInterval = 900
- , soaExpirationLimit = 3600000
- , soaMinimumTTL = 3600
- }
- , zoneRecordNames = return [ "ns.cielonegro.org."
- , "www.cielonegro.org."
- , "git.cielonegro.org."
- ]
- , zoneResponder = return . responder
- }
-
- responder :: DomainName -> [SomeRR]
- responder name
- | name == "ns.cielonegro.org."
- = [ wrapRecord ResourceRecord {
- rrName = name
- , rrType = A
- , rrClass = IN
- , rrTTL = 9600
- , rrData = "127.0.0.1"
- }
- , wrapRecord ResourceRecord {
- rrName = name
- , rrType = AAAA
- , rrClass = IN
- , rrTTL = 9600
- , rrData = "::1"
- }
- ]
- | name == "www.cielonegro.org."
- = [ wrapRecord ResourceRecord {
- rrName = name
- , rrType = A
- , rrClass = IN
- , rrTTL = 9600
- , rrData = "127.0.0.2"
- }
- , wrapRecord ResourceRecord {
- rrName = name
- , rrType = AAAA
- , rrClass = IN
- , rrTTL = 9600
- , rrData = "fe80::216:cbff:fe39:56a4"
- }
- ]
- | name == "git.cielonegro.org."
- = [ wrapRecord ResourceRecord {
- rrName = name
- , rrType = CNAME
- , rrClass = IN
- , rrTTL = 9600
- , rrData = "www.cielonegro.org."
- }
- ]
- | otherwise
- = [] -- This means NXDOMAIN.
-
+ zones :: DomainMap SomeZone
+ zones = fromZones
+ [ wrapZone StaticZone {
+ szName = "cielonegro.org."
+ , szRecords = fromRecords
+ [ wrapRecord ResourceRecord {
+ rrName = "cielonegro.org."
+ , rrType = SOA
+ , rrClass = IN
+ , rrTTL = 3600
+ , rrData = SOAFields {
+ soaMasterNameServer = "ns.cielonegro.org."
+ , soaResponsibleMailbox = "root.ns.cielonegro.org."
+ , soaSerialNumber = 2008022148
+ , soaRefreshInterval = 3600
+ , soaRetryInterval = 900
+ , soaExpirationLimit = 3600000
+ , soaMinimumTTL = 3600
+ }
+ }
+ , wrapRecord ResourceRecord {
+ rrName = "cielonegro.org."
+ , rrType = NS
+ , rrClass = IN
+ , rrTTL = 3600
+ , rrData = "ns.cielonegro.org."
+ }
+ , wrapRecord ResourceRecord {
+ rrName = "ns.cielonegro.org."
+ , rrType = A
+ , rrClass = IN
+ , rrTTL = 9600
+ , rrData = "127.0.0.1"
+ }
+ , wrapRecord ResourceRecord {
+ rrName = "ns.cielonegro.org."
+ , rrType = AAAA
+ , rrClass = IN
+ , rrTTL = 9600
+ , rrData = "::1"
+ }
+ , wrapRecord ResourceRecord {
+ rrName = "www.cielonegro.org."
+ , rrType = A
+ , rrClass = IN
+ , rrTTL = 9600
+ , rrData = "127.0.0.2"
+ }
+ , wrapRecord ResourceRecord {
+ rrName = "www.cielonegro.org."
+ , rrType = AAAA
+ , rrClass = IN
+ , rrTTL = 9600
+ , rrData = "fe80::216:cbff:fe39:56a4"
+ }
+ , wrapRecord ResourceRecord {
+ rrName = "git.cielonegro.org."
+ , rrType = CNAME
+ , rrClass = IN
+ , rrTTL = 9600
+ , rrData = "www.cielonegro.org."
+ }
+ ]
+ }
+ ]