- put (count + 1, newcache count qname cache)
- PdnsRequestAXFR xfrreq ->
- io $ putStr $ pdnsReport ("No support for AXFR " ++ xfrreq)
+ -- end debug
+ -}
+ put $ stow qname (count, cache)
+ PdnsRequestAXFR xrq zid -> do
+ {-
+ -- debug
+ io $ putStrLn $ "LOG\tAXFR request id=" ++ (show xrq)
+ ++ ", zone name: " ++ (show zid)
+ -- end debug
+ -}
+ let
+ czone = fetch xrq cache
+ zone = case zid of
+ Nothing -> czone
+ Just qname -> Just qname
+ -- if zid == czone then zid else Nothing -- paranoid
+ case zone of
+ Just qname ->
+ io $ queryDom (queryOpNmc cfg mgr xrq) qname
+ >>= putStr . (pdnsOutXfr ver count gen qname)
+ Nothing ->
+ io $ putStr $ pdnsReport $ "AXFR cannot determine zone: "
+ ++ (show xrq) ++ ", " ++ (show zid)