X-Git-Url: http://www.average.org/gitweb/?p=pdns-pipe-nmc.git;a=blobdiff_plain;f=NmcDom.hs;h=505c5436cfccd4de417f2ae77fca3bb583727639;hp=2fdd6b99a3b41df75dd71c210d23aa2e29992796;hb=07a7fed333fb23ce736df6b5b5970af6d7745d90;hpb=851c71d42654a1620ea98d2dfe751d2e7fbc961f diff --git a/NmcDom.hs b/NmcDom.hs index 2fdd6b9..505c543 100644 --- a/NmcDom.hs +++ b/NmcDom.hs @@ -120,7 +120,6 @@ takeTls o = where tmap2dmap :: Map String (Map String [NmcRRTlsa]) -> Parser (Maybe (Map String NmcDom)) - -- FIXME return parse error on invalid proto or port tmap2dmap m1 = return $ foldrWithKey addprotoelem (Just M.empty) m1 addprotoelem k1 m2 acc = protoelem k1 m2 `merge` acc protoelem k1 m2 = Just (M.singleton ("_" ++ k1) (pmap2dmap m2)) @@ -182,7 +181,7 @@ instance Mergeable NmcRRI2p where data NmcRRTlsa = NmcRRTlsa { tlsMatchType :: Int -- 0:exact 1:sha256 2:sha512 , tlsMatchValue :: String - , tlsIncSubdoms :: Int -- 1:enforce on subdoms 0:no + , tlsIncSubdoms :: Bool -- enforce on subdoms? } deriving (Show, Eq) instance FromJSON NmcRRTlsa where @@ -190,7 +189,10 @@ instance FromJSON NmcRRTlsa where if length a == 3 then NmcRRTlsa <$> parseJSON (a ! 0) <*> parseJSON (a ! 1) - <*> parseJSON (a ! 2) + <*> case (a ! 2) of + Number 0 -> return False + Number 1 -> return True + _ -> empty else empty parseJSON _ = empty