]> granicus.if.org Git - ejabberd/commitdiff
Fix max_user_conferences in Mnesia to consider only one MUC service (#2556)
authorBadlop <badlop@process-one.net>
Mon, 20 Aug 2018 13:39:58 +0000 (15:39 +0200)
committerBadlop <badlop@process-one.net>
Mon, 20 Aug 2018 13:47:53 +0000 (15:47 +0200)
src/mod_muc_mnesia.erl

index 84db17b0a9e921c3b2bf821ab4db8a70f9ece7e8..918ce1dcb19ac0fee5bf106dd771c86ef1d9bc2e 100644 (file)
@@ -263,12 +263,13 @@ unregister_online_user(_ServerHost, {U, S, R}, Room, Host) ->
                      #muc_online_users{us = {U, S}, resource = R,
                                        room = Room, host = Host}).
 
-count_online_rooms_by_user(_ServerHost, U, S) ->
+count_online_rooms_by_user(ServerHost, U, S) ->
+    MucHost = gen_mod:get_module_opt_host(ServerHost, mod_muc, <<"conference.@HOST@">>),
     ets:select_count(
       muc_online_users,
       ets:fun2ms(
-       fun(#muc_online_users{us = {U1, S1}}) ->
-               U == U1 andalso S == S1
+       fun(#muc_online_users{us = {U1, S1}, host = Host}) ->
+               U == U1 andalso S == S1 andalso MucHost == Host
        end)).
 
 get_online_rooms_by_user(ServerHost, U, S) ->