aboutsummaryrefslogtreecommitdiff
path: root/lib/stream.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/stream.ml')
-rw-r--r--lib/stream.ml6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/stream.ml b/lib/stream.ml
index 0b6763a..218cc37 100644
--- a/lib/stream.ml
+++ b/lib/stream.ml
@@ -14,6 +14,12 @@ let parse_features (el : Xml.element) : features =
let open Xml in
let open Either in
+ let children =
+ if not (List.for_all is_left el.children)
+ then raise (InvalidStanza (element_to_string el))
+ else List.filter_map find_left el.children
+ in
+
let parse_single_mechanism = function
| Left {local_name = "mechanism"; children = [Right mechanism]; _} ->
Sasl.parse_auth_mechanism mechanism