module Main where
+import System.IO
import Control.Monad
import qualified Data.ByteString.Char8 as C (pack, unpack)
import qualified Data.ByteString.Lazy.Char8 as L (pack, unpack)
-- NMC interface
-descend subdom dom = dom
-
queryNmc :: Manager -> Config -> String -> String
-> IO (Either String NmcDom)
queryNmc mgr cfg fqdn qid = do
httpLbs (qReq cfg (L.pack ("d/" ++ dn)) (L.pack qid)) mgr
return $ case qRsp rsp of
Left err -> Left err
- Right dom -> Right $ descend xs dom
+ Right dom -> Right $ descendNmc xs dom
_ ->
return $ Left "Only \".bit\" domain is supported"
cfg <- readConfig confFile
+ hSetBuffering stdin LineBuffering
+ hSetBuffering stdout LineBuffering
ver <- do
let
loopErr e = forever $ do
forever $ do
l <- getLine
case pdnsParse ver l of
- Left e -> putStrLn $ "FAIL\t" ++ e
+ Left e -> putStr $ pdnsReport e
Right preq -> do
case preq of
PdnsRequestQ qname qtype id _ _ _ ->
- queryNmc mgr cfg qname id >>= putStr . (pdnsOut ver qtype)
+ queryNmc mgr cfg qname id >>= putStr . (pdnsOut ver id qname qtype)
PdnsRequestAXFR xfrreq ->
- putStrLn ("FAIL\tNo support for AXFR " ++ xfrreq)
+ putStr $ pdnsReport ("No support for AXFR " ++ xfrreq)
PdnsRequestPing -> putStrLn "END"
-- for testing
ask str = do
cfg <- readConfig confFile
mgr <- newManager def
- queryNmc mgr cfg str "test-req-id" >>= putStr . (pdnsOut 1 RRTypeANY)
+ queryNmc mgr cfg str "askid" >>= putStr . (pdnsOut 1 "askid" str RRTypeANY)