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))
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
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