From: Paweł Chmielowski Date: Mon, 18 Feb 2019 11:37:29 +0000 (+0100) Subject: Don't perform roster push for non-local contacts in mod_shared_roster X-Git-Tag: 19.02~27 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b30775a357b276e3ed33d9026af55f88f23259e5;p=ejabberd Don't perform roster push for non-local contacts in mod_shared_roster If group have member with jid from external server we tried to make mod_roster sent roster push to it, and it sometimes didn't like to get bogus data like that, so let's check if it's local user before doing this. --- diff --git a/src/mod_shared_roster.erl b/src/mod_shared_roster.erl index ee1aa8cf0..d80258db7 100644 --- a/src/mod_shared_roster.erl +++ b/src/mod_shared_roster.erl @@ -662,8 +662,13 @@ push_user_to_group(LUser, LServer, Group, Host, when (U == LUser) and (S == LServer) -> ok; ({U, S}) -> - push_roster_item(U, S, LUser, LServer, GroupName, - Subscription) + case lists:member(S, ejabberd_config:get_myhosts()) of + true -> + push_roster_item(U, S, LUser, LServer, GroupName, + Subscription); + _ -> + ok + end end, get_group_users(Host, Group)).