aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Chmielowski <pchmielowski@process-one.net>2019-02-18 12:37:29 +0100
committerPaweł Chmielowski <pchmielowski@process-one.net>2019-02-18 12:37:42 +0100
commitb30775a357b276e3ed33d9026af55f88f23259e5 (patch)
treeaed197c9553ef48c901cb229188ad81f26d57ed2
parentmod_push: Improve notification error handling (diff)
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.
-rw-r--r--src/mod_shared_roster.erl9
1 files 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)).