]> gitweb @ CieloNegro.org - haskell-dns.git/blob - ExampleDNSServer.hs
defaultUserHooks --> simpleUserHooks
[haskell-dns.git] / ExampleDNSServer.hs
1 import           Network.DNS.DomainMap (DomainMap)
2 import           Network.DNS.Message
3 import           Network.DNS.Named
4 import           Network.DNS.Named.Config
5 import           Network.DNS.Named.Zone
6 import           Network.Socket.IsString ()
7
8 main :: IO ()
9 main = runNamed cnf zones
10     where
11       cnf :: Config
12       cnf = Config {
13               cnfServerPort    = "9090"
14             , cnfAllowTransfer = True
15             }
16
17       zones :: DomainMap SomeZone
18       zones = fromZones
19               [ wrapZone StaticZone {
20                                szName    = "cielonegro.org."
21                              , szRecords = fromRecords
22                                            [ wrapRecord ResourceRecord {
23                                                               rrName  = "cielonegro.org."
24                                                             , rrType  = SOA
25                                                             , rrClass = IN
26                                                             , rrTTL   = 3600
27                                                             , rrData  = SOAFields {
28                                                                           soaMasterNameServer   = "ns.cielonegro.org."
29                                                                         , soaResponsibleMailbox = "root.ns.cielonegro.org."
30                                                                         , soaSerialNumber       = 2008022148
31                                                                         , soaRefreshInterval    = 3600
32                                                                         , soaRetryInterval      = 900
33                                                                         , soaExpirationLimit    = 3600000
34                                                                         , soaMinimumTTL         = 3600
35                                                                         }
36                                                }
37                                            , wrapRecord ResourceRecord {
38                                                               rrName  = "cielonegro.org."
39                                                             , rrType  = NS
40                                                             , rrClass = IN
41                                                             , rrTTL   = 3600
42                                                             , rrData  = "ns.cielonegro.org."
43                                                             }
44                                            , wrapRecord ResourceRecord {
45                                                               rrName  = "ns.cielonegro.org."
46                                                             , rrType  = A
47                                                             , rrClass = IN
48                                                             , rrTTL   = 9600
49                                                             , rrData  = "127.0.0.1"
50                                                             }
51                                            , wrapRecord ResourceRecord {
52                                                               rrName  = "ns.cielonegro.org."
53                                                             , rrType  = AAAA
54                                                             , rrClass = IN
55                                                             , rrTTL   = 9600
56                                                             , rrData  = "::1"
57                                                             }
58                                            , wrapRecord ResourceRecord {
59                                                               rrName  = "www.cielonegro.org."
60                                                             , rrType  = A
61                                                             , rrClass = IN
62                                                             , rrTTL   = 9600
63                                                             , rrData  = "127.0.0.2"
64                                                             }
65                                            , wrapRecord ResourceRecord {
66                                                               rrName  = "www.cielonegro.org."
67                                                             , rrType  = AAAA
68                                                             , rrClass = IN
69                                                             , rrTTL   = 9600
70                                                             , rrData  = "fe80::216:cbff:fe39:56a4"
71                                                             }
72                                            , wrapRecord ResourceRecord {
73                                                               rrName  = "git.cielonegro.org."
74                                                             , rrType  = CNAME
75                                                             , rrClass = IN
76                                                             , rrTTL   = 9600
77                                                             , rrData  = "www.cielonegro.org."
78                                                             }
79                                            ]
80                              }
81               ]