1 module Network.DNS.Named.Zone
12 import Network.DNS.Message
13 import Network.DNS.Named.Responder
18 zoneName :: !DomainName
19 , zoneResponders :: ![SomeResponder]
20 , zoneIsAuthoritative :: !Bool
23 class ZoneFinder a where
24 findZone :: a -> DomainName -> IO Zone
26 instance ZoneFinder (DomainName -> Zone) where
29 instance ZoneFinder (DomainName -> IO Zone) where
32 instance ZoneFinder (DomainName -> Maybe Zone) where
33 findZone = ((return . fromMaybe defaultRootZone) .)
35 instance ZoneFinder (DomainName -> IO (Maybe Zone)) where
36 findZone = (fmap (fromMaybe defaultRootZone) .)
39 isInZone :: DomainName -> Zone -> Bool
40 isInZone name zone = zoneName zone `isZoneOf` name
43 defaultRootZone :: Zone
46 zoneName = mkDomainName "."
47 , zoneResponders = [] -- FIXME
48 , zoneIsAuthoritative = False