diff options
author | Paweł Chmielowski <pchmielowski@process-one.net> | 2017-06-23 17:19:28 +0200 |
---|---|---|
committer | Paweł Chmielowski <pchmielowski@process-one.net> | 2017-06-23 17:19:37 +0200 |
commit | 70606d7f1ae6b74142f9b577a25f4434aa7f3df8 (patch) | |
tree | d161880df94d6441cc22f8fb506a9b9a99e7ecf7 | |
parent | More explicit bosh configuration handler (diff) |
Catch exception that may happen when sending data over websocket
This fixes #1667
-rw-r--r-- | src/ejabberd_http_ws.erl | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/ejabberd_http_ws.erl b/src/ejabberd_http_ws.erl index 18ba071dd..f4a73cc39 100644 --- a/src/ejabberd_http_ws.erl +++ b/src/ejabberd_http_ws.erl @@ -81,8 +81,14 @@ start_link(WS) -> gen_fsm:start_link(?MODULE, [WS], ?FSMOPTS). send_xml({http_ws, FsmRef, _IP}, Packet) -> - gen_fsm:sync_send_all_state_event(FsmRef, - {send_xml, Packet}). + case catch gen_fsm:sync_send_all_state_event(FsmRef, + {send_xml, Packet}, + 15000) + of + {'EXIT', {timeout, _}} -> {error, timeout}; + {'EXIT', _} -> {error, einval}; + Res -> Res + end. setopts({http_ws, FsmRef, _IP}, Opts) -> case lists:member({active, once}, Opts) of |