aboutsummaryrefslogtreecommitdiff
path: root/src/mod_caps.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_caps.erl')
-rw-r--r--src/mod_caps.erl13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/mod_caps.erl b/src/mod_caps.erl
index 4d9bdd61f..65a745d2d 100644
--- a/src/mod_caps.erl
+++ b/src/mod_caps.erl
@@ -488,14 +488,11 @@ concat_identities(#disco_info{identities = Identities}) ->
-spec concat_info(disco_info()) -> iolist().
concat_info(#disco_info{xdata = Xs}) ->
lists:sort(
- [concat_xdata_fields(Fs) || #xdata{type = result, fields = Fs} <- Xs]).
-
--spec concat_xdata_fields([xdata_field()]) -> iolist().
-concat_xdata_fields(Fields) ->
- Form = case lists:keyfind(<<"FORM_TYPE">>, #xdata_field.var, Fields) of
- #xdata_field{values = Values} -> Values;
- false -> []
- end,
+ [concat_xdata_fields(X) || #xdata{type = result} = X <- Xs]).
+
+-spec concat_xdata_fields(xdata()) -> iolist().
+concat_xdata_fields(#xdata{fields = Fields} = X) ->
+ Form = xmpp_util:get_xdata_values(<<"FORM_TYPE">>, X),
Res = [[Var, $<, lists:sort([[Val, $<] || Val <- Values])]
|| #xdata_field{var = Var, values = Values} <- Fields,
is_binary(Var), Var /= <<"FORM_TYPE">>],