* src/mod_private.erl: Reduce memory consumption on user private
storage removal (EJAB-299). SVN Revision: 867
This commit is contained in:
parent
30832319df
commit
8561ba614f
|
@ -1,3 +1,8 @@
|
||||||
|
2007-08-01 Mickael Remond <mickael.remond@process-one.net>
|
||||||
|
|
||||||
|
* src/mod_private.erl: Reduce memory consumption on user private
|
||||||
|
storage removal (EJAB-299).
|
||||||
|
|
||||||
2007-06-29 Mickael Remond <mickael.remond@process-one.net>
|
2007-06-29 Mickael Remond <mickael.remond@process-one.net>
|
||||||
|
|
||||||
* src/ejabberd_config.erl: Normalize hostnames in config file. If mixed
|
* src/ejabberd_config.erl: Normalize hostnames in config file. If mixed
|
||||||
|
|
|
@ -107,21 +107,21 @@ get_data(LUser, LServer, [El | Els], Res) ->
|
||||||
get_data(LUser, LServer, Els, Res)
|
get_data(LUser, LServer, Els, Res)
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
||||||
% TODO: use mnesia:select
|
|
||||||
remove_user(User, Server) ->
|
remove_user(User, Server) ->
|
||||||
LUser = jlib:nodeprep(User),
|
LUser = jlib:nodeprep(User),
|
||||||
LServer = jlib:nameprep(Server),
|
LServer = jlib:nameprep(Server),
|
||||||
F = fun() ->
|
F = fun() ->
|
||||||
|
Namespaces = mnesia:select(
|
||||||
|
private_storage,
|
||||||
|
[{#private_storage{usns={LUser, LServer, '$1'},
|
||||||
|
_ = '_'},
|
||||||
|
[],
|
||||||
|
['$$']}]),
|
||||||
lists:foreach(
|
lists:foreach(
|
||||||
fun({U, S, _} = Key) ->
|
fun([Namespace]) ->
|
||||||
if
|
mnesia:delete({private_storage,
|
||||||
(U == LUser) and (S == LServer) ->
|
{LUser, LServer, Namespace}})
|
||||||
mnesia:delete({private_storage, Key});
|
end, Namespaces)
|
||||||
true ->
|
|
||||||
ok
|
|
||||||
end
|
|
||||||
end, mnesia:all_keys(private_storage))
|
|
||||||
end,
|
end,
|
||||||
mnesia:transaction(F).
|
mnesia:transaction(F).
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue