aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_sm.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_sm.erl')
-rw-r--r--src/ejabberd_sm.erl27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl
index cbb695bea..9e74177ea 100644
--- a/src/ejabberd_sm.erl
+++ b/src/ejabberd_sm.erl
@@ -22,7 +22,7 @@
-include("ejabberd.hrl").
-record(session, {ur, user, node}).
--record(mysession, {ur, pid}).
+-record(local_session, {ur, pid}).
-record(presence, {ur, user, priority}).
start() ->
@@ -34,10 +34,11 @@ init() ->
{attributes, record_info(fields, session)}]),
mnesia:add_table_index(session, user),
mnesia:add_table_index(session, node),
- mnesia:create_table(mysession,
+ mnesia:create_table(local_session,
[{ram_copies, [node()]},
{local_content, true},
- {attributes, record_info(fields, mysession)}]),
+ {attributes, record_info(fields, local_session)}]),
+ mnesia:add_table_copy(local_session, node(), ram_copies),
mnesia:create_table(presence,
[{ram_copies, [node()]},
{attributes, record_info(fields, presence)}]),
@@ -111,15 +112,15 @@ replace_my_connection(User, Resource) ->
LUser = jlib:tolower(User),
F = fun() ->
UR = {LUser, Resource},
- Es = mnesia:read({mysession, UR}),
- mnesia:delete({mysession, UR}),
+ Es = mnesia:read({local_session, UR}),
+ mnesia:delete({local_session, UR}),
Es
end,
case mnesia:transaction(F) of
{atomic, Rs} ->
lists:foreach(
fun(R) ->
- R#mysession.pid ! replaced
+ R#local_session.pid ! replaced
end, Rs);
_ ->
false
@@ -129,7 +130,7 @@ remove_connection(User, Resource) ->
LUser = jlib:tolower(User),
F = fun() ->
UR = {LUser, Resource},
- mnesia:delete({mysession, UR}),
+ mnesia:delete({local_session, UR}),
mnesia:delete({session, UR})
end,
mnesia:transaction(F).
@@ -138,15 +139,15 @@ replace_and_register_my_connection(User, Resource, Pid) ->
LUser = jlib:tolower(User),
F = fun() ->
UR = {LUser, Resource},
- Es = mnesia:read({mysession, UR}),
- mnesia:write(#mysession{ur = UR, pid = Pid}),
+ Es = mnesia:read({local_session, UR}),
+ mnesia:write(#local_session{ur = UR, pid = Pid}),
Es
end,
case mnesia:transaction(F) of
{atomic, Rs} ->
lists:foreach(
fun(R) ->
- R#mysession.pid ! replaced
+ R#local_session.pid ! replaced
end, Rs);
_ ->
false
@@ -262,13 +263,13 @@ do_route(From, To, Packet) ->
?DEBUG("packet droped~n", [])
end;
[Ses] ->
- case mnesia:dirty_read({mysession, LUR}) of
+ case mnesia:dirty_read({local_session, LUR}) of
[] ->
Node = Ses#session.node,
?DEBUG("sending to node ~p~n", [Node]),
{ejabberd_sm, Node} ! {route, From, To, Packet};
[El] ->
- Pid = El#mysession.pid,
+ Pid = El#local_session.pid,
?DEBUG("sending to process ~p~n", [Pid]),
Pid ! {route, From, To, Packet}
end
@@ -341,7 +342,7 @@ dirty_get_sessions_list() ->
mnesia:dirty_all_keys(session).
dirty_get_my_sessions_list() ->
- mnesia:dirty_all_keys(mysession).
+ mnesia:dirty_all_keys(local_session).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%