X-Git-Url: http://www.average.org/gitweb/?p=pdns-pipe-nmc.git;a=blobdiff_plain;f=pdns-pipe-nmc.hs;h=a3fc8c7c5b2a5a414388c4f4ede60d1f6c94e1a5;hp=9e4a72930691ab6b58e53e6220c4d6c495c5e4ce;hb=b2f5f20509c12bb94783f7035042aed1e0d99c58;hpb=b90215dda1c086c7c288ac9d7e3d75e0516f0fd5 diff --git a/pdns-pipe-nmc.hs b/pdns-pipe-nmc.hs index 9e4a729..a3fc8c7 100644 --- a/pdns-pipe-nmc.hs +++ b/pdns-pipe-nmc.hs @@ -41,7 +41,10 @@ qReq cf q id = applyBasicAuth (C.pack (rpcuser cf)) (C.pack (rpcpassword cf)) qRsp :: Response ByteString -> Either String NmcDom qRsp rsp = case parseJsonRpc (responseBody rsp) :: Either JsonRpcError NmcRes of - Left jerr -> Left $ "Unparseable response: " ++ (show (responseBody rsp)) + Left jerr -> + case (jrpcErrCode jerr) of + -4 -> Right emptyNmcDom + _ -> Left $ "JsonRpc error response: " ++ (show jerr) Right jrsp -> case resValue jrsp of "" -> Right emptyNmcDom @@ -100,3 +103,13 @@ main = do PdnsRequestAXFR xfrreq -> putStrLn ("ERROR\tNo support for AXFR " ++ xfrreq) PdnsRequestPing -> putStrLn "OK" + +-- for testing + +ask str = do + cfg <- readConfig confFile + mgr <- newManager def + ncres <- queryNmc mgr cfg str "test-req-id" + case ncres of + Left e -> putStrLn $ "ERROR\t" ++ e + Right dom -> putStrLn $ pdnsOut RRTypeANY dom