diff options
Diffstat (limited to 'src/mod_caps.erl')
-rw-r--r-- | src/mod_caps.erl | 13 |
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">>], |