import Network.DNS.DomainMap (DomainMap) import Network.DNS.Message import Network.DNS.Named import Network.DNS.Named.Config import Network.DNS.Named.Zone import Network.Socket.IsString () main :: IO () main = runNamed cnf zones where cnf :: Config cnf = Config { cnfServerPort = "9090" , cnfAllowTransfer = True } 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." } ] } ]