]> gitweb @ CieloNegro.org - haskell-dns.git/blobdiff - ExampleDNSServer.hs
defaultUserHooks --> simpleUserHooks
[haskell-dns.git] / ExampleDNSServer.hs
index 1aae098bc93e93dcaa1dc582deb164fba202bc2a..2dd9564ed8554c20dc52534feab9c09ddf6d001e 100644 (file)
@@ -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.
-