X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=haskell-dns.git;a=blobdiff_plain;f=ExampleDNSServer.hs;h=2dd9564ed8554c20dc52534feab9c09ddf6d001e;hp=1aae098bc93e93dcaa1dc582deb164fba202bc2a;hb=HEAD;hpb=f3ad40fd6916408dde9b9e6237b41828d90c1e34 diff --git a/ExampleDNSServer.hs b/ExampleDNSServer.hs index 1aae098..2dd9564 100644 --- a/ExampleDNSServer.hs +++ b/ExampleDNSServer.hs @@ -14,70 +14,68 @@ main = runNamed cnf zones , cnfAllowTransfer = True } - zones :: DomainMap Zone + zones :: DomainMap SomeZone zones = fromZones - [ 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." + [ 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." + } ] - , 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. -