From b30775a357b276e3ed33d9026af55f88f23259e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Mon, 18 Feb 2019 12:37:29 +0100 Subject: [PATCH] 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. --- src/mod_shared_roster.erl | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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)).