25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-26 16:26:24 +01:00

Catch errors when exporting to PIEFXIS file (EJAB-1178)

This commit is contained in:
Badlop 2010-02-22 21:37:41 +01:00
parent 3844883321
commit 002104c62e

View File

@ -415,6 +415,7 @@ export_host(Dir, FnH, Host) ->
Users = ejabberd_auth:get_vh_registered_users(Host),
[export_user(Fd, Username, Host) || {Username, _Host} <- Users],
timer:sleep(500), % Delay to ensure ERROR_MSG are displayed in the shell
print(Fd, make_piefxis_host_tail()),
print(Fd, make_piefxis_xml_tail()),
@ -463,8 +464,14 @@ make_xinclude(Fn) ->
%% @spec (Fd, Username::string(), Host::string()) -> ok
%% @doc Extract user information and print it.
export_user(Fd, Username, Host) ->
UserString = extract_user(Username, Host),
print(Fd, UserString).
try extract_user(Username, Host) of
UserString ->
print(Fd, UserString)
catch
E1:E2 ->
?ERROR_MSG("The account ~s@~s is not exported because a problem "
"was found in it:~n~p: ~p", [Username, Host, E1, E2])
end.
%% @spec (Username::string(), Host::string()) -> string()
extract_user(Username, Host) ->