+
+getZone :: Database -> DomainName -> IO (Maybe SOAFields)
+getZone db name
+ = do rows <- query db $
+ do t <- table Zones.zones
+ restrict (t!Zones.zone .==. constant (show name))
+ return t
+ case rows of
+ [r] -> return $ Just SOAFields {
+ soaMasterNameServer = read $ r!Zones.ns
+ , soaResponsibleMailbox = read $ r!Zones.owner
+ , soaSerialNumber = fromIntegral $ r!Zones.serial
+ , soaRefreshInterval = fromIntegral $ r!Zones.refresh
+ , soaRetryInterval = fromIntegral $ r!Zones.retry
+ , soaExpirationLimit = fromIntegral $ r!Zones.expire
+ , soaMinimumTTL = fromIntegral $ r!Zones.minTTL
+ }
+ _ -> return Nothing
\ No newline at end of file