import Data.List.Split
import Data.Aeson (encode, decode, Value(..))
import Network.HTTP.Types
--- does not exist -- import Network.HTTP.Client
+import Data.Conduit
import Network.HTTP.Conduit
import Data.JsonRpcClient
import NmcJson
, method = "PUT"
, requestHeaders = [ (hAccept, "application/json")
, (hContentType, "application/json")
+ , (hConnection, "Keep-Alive")
]
, requestBody = RequestBodyLBS $ encode $
JsonRpcRequest JsonRpcV1
"name_show"
[q]
(String "pdns-nmc")
+ , checkStatus = \_ _ _ -> Nothing
}
-- NMC interface
-- Main entry
main = do
+
cfg <- readConfig confFile
+
ver <- do
let
loopErr e = forever $ do
["HELO", x ] -> loopErr $ "unsupported ABI version " ++ (show x)
_ -> loopErr $ "bad HELO " ++ (show s)
--- mgr <- newManager conduitManagerSettings
-
putStrLn $ "OK\tDnsNmc ready to serve, protocol v." ++ (show ver)
- print $ qReq cfg "samplequery"
+ mgr <- newManager def
+
+ print $ qReq cfg "d/nosuchdomain"
+ rsp <- runResourceT $ httpLbs (qReq cfg "d/nosuchdomain") mgr
+ print $ (statusCode . responseStatus) rsp
+ putStrLn "===== complete response is:"
+ print rsp
+ let rbody = responseBody rsp
+ putStrLn "===== response body is:"
+ print rbody
+ let result = parseJsonRpc rbody :: Either JsonRpcError NmcRes
+ putStrLn "===== parsed response is:"
+ print result
+-- print $ parseJsonRpc (responseBody rsp)
--forever $ getLine >>= (pdnsOut uri) . (pdnsParse ver)