summaryrefslogtreecommitdiff
path: root/src/mod_muc_room.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-01-20 19:35:46 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-01-20 19:35:46 +0300
commitd5d906184f41232e8ab0b4de1308bfa49a783a61 (patch)
treeb589bba220001a7cf356a7e8fbf4ccb59480508c /src/mod_muc_room.erl
parentPrepare 17.01 for hex.pm (diff)
parentFix reporting dialback failures (diff)
Merge branch 'new_stream'
Conflicts: src/cyrsasl.erl src/ejabberd_c2s.erl src/ejabberd_cluster.erl src/ejabberd_frontend_socket.erl src/ejabberd_node_groups.erl src/ejabberd_router.erl src/mod_bosh.erl src/mod_ip_blacklist.erl src/mod_muc_mnesia.erl src/mod_offline.erl src/mod_proxy65_sm.erl
Diffstat (limited to 'src/mod_muc_room.erl')
-rw-r--r--src/mod_muc_room.erl35
1 files changed, 11 insertions, 24 deletions
diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl
index f524fb7c..40e9633b 100644
--- a/src/mod_muc_room.erl
+++ b/src/mod_muc_room.erl
@@ -1791,7 +1791,7 @@ add_new_user(From, Nick, Packet, StateData) ->
Affiliation = get_affiliation(From, StateData),
ServiceAffiliation = get_service_affiliation(From,
StateData),
- NConferences = tab_count_user(From),
+ NConferences = tab_count_user(From, StateData),
MaxConferences =
gen_mod:get_module_opt(StateData#state.server_host,
mod_muc, max_user_conferences,
@@ -4000,38 +4000,25 @@ add_to_log(Type, Data, StateData) ->
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Users number checking
--spec tab_add_online_user(jid(), state()) -> ok.
+-spec tab_add_online_user(jid(), state()) -> any().
tab_add_online_user(JID, StateData) ->
- {LUser, LServer, LResource} = jid:tolower(JID),
- US = {LUser, LServer},
Room = StateData#state.room,
Host = StateData#state.host,
- catch ets:insert(muc_online_users,
- #muc_online_users{us = US, resource = LResource,
- room = Room, host = Host}),
- ok.
+ ServerHost = StateData#state.server_host,
+ mod_muc:register_online_user(ServerHost, jid:tolower(JID), Room, Host).
--spec tab_remove_online_user(jid(), state()) -> ok.
+-spec tab_remove_online_user(jid(), state()) -> any().
tab_remove_online_user(JID, StateData) ->
- {LUser, LServer, LResource} = jid:tolower(JID),
- US = {LUser, LServer},
Room = StateData#state.room,
Host = StateData#state.host,
- catch ets:delete_object(muc_online_users,
- #muc_online_users{us = US, resource = LResource,
- room = Room, host = Host}),
- ok.
+ ServerHost = StateData#state.server_host,
+ mod_muc:unregister_online_user(ServerHost, jid:tolower(JID), Room, Host).
--spec tab_count_user(jid()) -> non_neg_integer().
-tab_count_user(JID) ->
+-spec tab_count_user(jid(), state()) -> non_neg_integer().
+tab_count_user(JID, StateData) ->
+ ServerHost = StateData#state.server_host,
{LUser, LServer, _} = jid:tolower(JID),
- US = {LUser, LServer},
- case catch ets:select(muc_online_users,
- [{#muc_online_users{us = US, _ = '_'}, [], [[]]}])
- of
- Res when is_list(Res) -> length(Res);
- _ -> 0
- end.
+ mod_muc:count_online_rooms_by_user(ServerHost, LUser, LServer).
-spec element_size(stanza()) -> non_neg_integer().
element_size(El) ->