24
1
mirror of https://github.com/processone/ejabberd.git synced 2024-06-26 22:35:31 +02:00

Do not try to retreive vCards via local SM for foreign JIDs

This commit is contained in:
Evgeniy Khramtsov 2013-11-13 20:40:56 +10:00
parent 318b0f2208
commit 003fd321ee

View File

@ -187,17 +187,24 @@ get_rosteritem_name([], _, _) -> <<"">>;
get_rosteritem_name([ModVcard], U, S) -> get_rosteritem_name([ModVcard], U, S) ->
From = jlib:make_jid(<<"">>, S, jlib:atom_to_binary(?MODULE)), From = jlib:make_jid(<<"">>, S, jlib:atom_to_binary(?MODULE)),
To = jlib:make_jid(U, S, <<"">>), To = jlib:make_jid(U, S, <<"">>),
IQ = {iq, <<"">>, get, <<"vcard-temp">>, <<"">>, case lists:member(To#jid.lserver, ?MYHOSTS) of
#xmlel{name = <<"vCard">>, true ->
attrs = [{<<"xmlns">>, <<"vcard-temp">>}], IQ = {iq, <<"">>, get, <<"vcard-temp">>, <<"">>,
children = []}}, #xmlel{name = <<"vCard">>,
IQ_Vcard = ModVcard:process_sm_iq(From, To, IQ), attrs = [{<<"xmlns">>, <<"vcard-temp">>}],
try get_rosteritem_name_vcard(IQ_Vcard#iq.sub_el) catch children = []}},
E1:E2 -> IQ_Vcard = ModVcard:process_sm_iq(From, To, IQ),
?ERROR_MSG("Error ~p found when trying to get the " case catch get_rosteritem_name_vcard(IQ_Vcard#iq.sub_el) of
"vCard of ~s@~s in ~p:~n ~p", {'EXIT', Err} ->
[E1, U, S, ModVcard, E2]), ?ERROR_MSG("Error found when trying to get the "
<<"">> "vCard of ~s@~s in ~p:~n ~p",
[U, S, ModVcard, Err]),
<<"">>;
NickName ->
NickName
end;
false ->
<<"">>
end. end.
get_rosteritem_name_vcard([]) -> <<"">>; get_rosteritem_name_vcard([]) -> <<"">>;