X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=Network%2FDNS%2FNamed%2FZone.hs;h=6cde400e8f5ce6fdbe49e6575d03468e456f0776;hb=d24a461f09bd10e3fe148e3b6b86c8e861b09a43;hp=da27c3e694ab13c669bb5b2d8ee3d0c649fcceae;hpb=7a09a987b0369db0c013fb10272329c733ffc8a1;p=haskell-dns.git diff --git a/Network/DNS/Named/Zone.hs b/Network/DNS/Named/Zone.hs index da27c3e..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,5 +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 = error "FIXME: defaultRootZone is not implemented yet" \ No newline at end of file +defaultRootZone + = Zone { + zoneName = mkDomainName "." + , zoneResponders = [] -- FIXME + , zoneIsAuthoritative = False + }