]> granicus.if.org Git - ejabberd/commitdiff
Support multiple sessions per nick in muc_online_users, relevant for max_user_confere...
authorBadlop <badlop@process-one.net>
Tue, 23 Aug 2011 19:53:41 +0000 (21:53 +0200)
committerBadlop <badlop@process-one.net>
Tue, 23 Aug 2011 19:53:41 +0000 (21:53 +0200)
src/mod_muc/mod_muc_room.erl
src/mod_muc/mod_muc_room.hrl

index efd8e917e7f68245513f6838e960948020a855b9..e31f565aaf50b52dc175b8a5103a4b94f6f84ab3 100644 (file)
@@ -3811,23 +3811,23 @@ add_to_log(Type, Data, StateData) ->
 %% Users number checking
 
 tab_add_online_user(JID, StateData) ->
-    {LUser, LServer, _} = jlib:jid_tolower(JID),
+    {LUser, LServer, LResource} = jlib: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, room = Room, host = Host}).
+           #muc_online_users{us = US, resource = LResource, room = Room, host = Host}).
 
 
 tab_remove_online_user(JID, StateData) ->
-    {LUser, LServer, _} = jlib:jid_tolower(JID),
+    {LUser, LServer, LResource} = jlib: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, room = Room, host = Host}).
+           #muc_online_users{us = US, resource = LResource, room = Room, host = Host}).
 
 tab_count_user(JID) ->
     {LUser, LServer, _} = jlib:jid_tolower(JID),
index 6a4921865182848c6ddfb56e7961872f07abfff0..10120cba6254591415d126ceb037ea2aef40e2cf 100644 (file)
@@ -81,5 +81,6 @@
                room_queue = queue:new()}).
 
 -record(muc_online_users, {us,
+                          resource,
                           room,
                           host}).