X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=haskell-dns.git;a=blobdiff_plain;f=Network%2FDNS%2FNamed%2FZone.hs;h=6cde400e8f5ce6fdbe49e6575d03468e456f0776;hp=8311376661bf5b506d951f802234448aab79e677;hb=d24a461f09bd10e3fe148e3b6b86c8e861b09a43;hpb=5015e5caa39e015e6ffa28a87fc5f189e7ba3c71 diff --git a/Network/DNS/Named/Zone.hs b/Network/DNS/Named/Zone.hs index 8311376..6cde400 100644 --- a/Network/DNS/Named/Zone.hs +++ b/Network/DNS/Named/Zone.hs @@ -2,6 +2,8 @@ module Network.DNS.Named.Zone ( Zone(..) , ZoneFinder(..) + , isInZone + , defaultRootZone ) where @@ -13,8 +15,9 @@ import Network.DNS.Named.Responder data Zone = Zone { - zoneName :: !DomainName - , zoneResponders :: ![SomeResponder] + zoneName :: !DomainName + , zoneResponders :: ![SomeResponder] + , zoneIsAuthoritative :: !Bool } class ZoneFinder a where @@ -33,9 +36,14 @@ instance ZoneFinder (DomainName -> IO (Maybe Zone)) where findZone = (fmap (fromMaybe defaultRootZone) .) +isInZone :: DomainName -> Zone -> Bool +isInZone name zone = zoneName zone `isZoneOf` name + + defaultRootZone :: Zone defaultRootZone = Zone { - zoneName = mkDomainName "." - , zoneResponders = [] -- FIXME + zoneName = mkDomainName "." + , zoneResponders = [] -- FIXME + , zoneIsAuthoritative = False }