]> granicus.if.org Git - ejabberd/commitdiff
Advertise disco#info and disco#items features in mod_disco
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>
Wed, 13 Jun 2018 11:55:06 +0000 (14:55 +0300)
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>
Wed, 13 Jun 2018 11:55:06 +0000 (14:55 +0300)
Fixes #2470

src/mod_avatar.erl
src/mod_disco.erl
src/mod_vcard.erl

index e92a875945e647898741e65ac312812970aa1d7e..ca41ac4c6c604a398af81c38c5858e8fb5a2195d 100644 (file)
@@ -157,7 +157,7 @@ vcard_iq_publish(Acc) ->
 get_sm_features({error, _Error} = Acc, _From, _To, _Node, _Lang) ->
     Acc;
 get_sm_features(Acc, _From, _To, <<"">>, _Lang) ->
-    {result, [?NS_DISCO_INFO, ?NS_PEP_VCARD_CONVERSION_0 |
+    {result, [?NS_PEP_VCARD_CONVERSION_0 |
              case Acc of
                  {result, Features} -> Features;
                  empty -> []
index bac4900384810dc350508ba7b5d8b71bc8adf356..1c51e40e413594e0c72edf827443eca6da85c663 100644 (file)
@@ -367,15 +367,21 @@ get_sm_identity(Acc, _From,
 
 -spec get_sm_features(features_acc(), jid(), jid(), binary(), binary()) ->
                             {error, stanza_error()} | {result, [binary()]}.
-get_sm_features(empty, From, To, _Node, Lang) ->
+get_sm_features(empty, From, To, Node, Lang) ->
     #jid{luser = LFrom, lserver = LSFrom} = From,
     #jid{luser = LTo, lserver = LSTo} = To,
     case {LFrom, LSFrom} of
-      {LTo, LSTo} -> {error, xmpp:err_item_not_found()};
-      _ ->
+       {LTo, LSTo} ->
+           case Node of
+               <<"">> -> {result, [?NS_DISCO_INFO, ?NS_DISCO_ITEMS]};
+               _ -> {error, xmpp:err_item_not_found()}
+           end;
+       _ ->
            Txt = <<"Query to another users is forbidden">>,
            {error, xmpp:err_not_allowed(Txt, Lang)}
     end;
+get_sm_features({result, Features}, _From, _To, <<"">>, _Lang) ->
+    {result, [?NS_DISCO_INFO, ?NS_DISCO_ITEMS|Features]};
 get_sm_features(Acc, _From, _To, _Node, _Lang) -> Acc.
 
 -spec get_user_resources(binary(), binary()) -> [disco_item()].
index 41ef929891c9ed1444edf1eef4b6cf30b411665c..b23e87c84263c5c663b8f3d9569e1f84d484d987 100644 (file)
@@ -186,8 +186,8 @@ get_sm_features(Acc, _From, _To, Node, _Lang) ->
       <<"">> ->
          case Acc of
            {result, Features} ->
-               {result, [?NS_DISCO_INFO, ?NS_VCARD | Features]};
-           empty -> {result, [?NS_DISCO_INFO, ?NS_VCARD]}
+               {result, [?NS_VCARD | Features]};
+           empty -> {result, [?NS_VCARD]}
          end;
       _ -> Acc
     end.