diff options
Diffstat (limited to 'lib/stream.ml')
-rw-r--r-- | lib/stream.ml | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/stream.ml b/lib/stream.ml index d544f14..31581a0 100644 --- a/lib/stream.ml +++ b/lib/stream.ml @@ -14,14 +14,13 @@ type features = { let parse_features (el : Xml.element) : features = let open Xml in let open Either in - let parse_mechanism_stanza = function + let parse_single_mechanism = function | Left {local_name = "mechanism"; children = [Right mechanism]; _} -> - Some (Sasl.parse_auth_mechanism mechanism) - | _ -> None + Sasl.parse_auth_mechanism mechanism + | _ -> raise (InvalidStanza (element_to_string el)) in let parse_feature (acc : features) (feature : Xml.element) : features = - let parse_mechanisms ch = - List.filter_map parse_mechanism_stanza ch + let parse_mechanisms ch = List.map parse_single_mechanism ch and parse_starttls = function | [Left {local_name="required"; _}] -> `Required | [] -> `Optional |