From: Eugene Crosser Date: Sat, 29 Mar 2014 19:19:38 +0000 (+0400) Subject: handle empty 'value' as domain with no data X-Git-Tag: 0.9.0.0~113 X-Git-Url: http://www.average.org/gitweb/?p=pdns-pipe-nmc.git;a=commitdiff_plain;h=b90215dda1c086c7c288ac9d7e3d75e0516f0fd5 handle empty 'value' as domain with no data --- diff --git a/NmcJson.hs b/NmcJson.hs index 978fb04..651aa46 100644 --- a/NmcJson.hs +++ b/NmcJson.hs @@ -2,6 +2,7 @@ module NmcJson ( NmcRes(..) , NmcDom + , emptyNmcDom ) where import Data.ByteString.Lazy (ByteString) @@ -28,7 +29,7 @@ instance FromJSON NmcRRService where <*> o .: "host" parseJSON _ = empty -data NmcRRI2p = NmcRRI2p -- unused +data NmcRRI2p = NmcRRI2p { i2pDestination :: String , i2pName :: String , i2pB32 :: String @@ -84,8 +85,12 @@ instance FromJSON NmcDom where <*> o .:? "ds" parseJSON _ = empty +emptyNmcDom = NmcDom Nothing Nothing Nothing Nothing Nothing Nothing + Nothing Nothing Nothing Nothing Nothing Nothing + Nothing Nothing Nothing Nothing Nothing Nothing + data NmcRes = NmcRes { resName :: String - , resValue :: ByteString -- NmcDom + , resValue :: ByteString -- string with NmcDom , resTxid :: String , resAddress :: String , resExpires_in :: Int diff --git a/pdns-pipe-nmc.hs b/pdns-pipe-nmc.hs index ee5bd37..9e4a729 100644 --- a/pdns-pipe-nmc.hs +++ b/pdns-pipe-nmc.hs @@ -43,9 +43,12 @@ qRsp rsp = case parseJsonRpc (responseBody rsp) :: Either JsonRpcError NmcRes of Left jerr -> Left $ "Unparseable response: " ++ (show (responseBody rsp)) Right jrsp -> - case decode (resValue jrsp) :: Maybe NmcDom of - Nothing -> Left $ "Unparseable value: " ++ (show (resValue jrsp)) - Just dom -> Right dom + case resValue jrsp of + "" -> Right emptyNmcDom + vstr -> + case decode vstr :: Maybe NmcDom of + Nothing -> Left $ "Unparseable value: " ++ (show vstr) + Just dom -> Right dom -- NMC interface