diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2012-02-14 17:03:08 +1000 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2012-02-14 17:03:08 +1000 |
commit | 4819738e8f039bf08bfb9867ad279ef8a94b9b5d (patch) | |
tree | 18b638c6a2ab141ef426a0489533b1858608a1ac /src | |
parent | Fix the documentation about default value of captcha_cmd option (diff) |
Receiver should not generate an exception
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_receiver.erl | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/ejabberd_receiver.erl b/src/ejabberd_receiver.erl index 702dd108..3a4e4aaf 100644 --- a/src/ejabberd_receiver.erl +++ b/src/ejabberd_receiver.erl @@ -84,16 +84,16 @@ change_shaper(Pid, Shaper) -> gen_server:cast(Pid, {change_shaper, Shaper}). reset_stream(Pid) -> - gen_server:call(Pid, reset_stream). + do_call(Pid, reset_stream). starttls(Pid, TLSSocket) -> - gen_server:call(Pid, {starttls, TLSSocket}). + do_call(Pid, {starttls, TLSSocket}). compress(Pid, ZlibSocket) -> - gen_server:call(Pid, {compress, ZlibSocket}). + do_call(Pid, {compress, ZlibSocket}). become_controller(Pid, C2SPid) -> - gen_server:call(Pid, {become_controller, C2SPid}). + do_call(Pid, {become_controller, C2SPid}). close(Pid) -> gen_server:cast(Pid, close). @@ -345,3 +345,11 @@ close_stream(undefined) -> ok; close_stream(XMLStreamState) -> xml_stream:close(XMLStreamState). + +do_call(Pid, Msg) -> + case catch gen_server:call(Pid, Msg) of + {'EXIT', Why} -> + {error, Why}; + Res -> + Res + end. |