diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-06-22 16:58:46 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-06-22 16:58:46 +0300 |
commit | 5bb7a0b0db76a0bf8e96950697650f4b2c07279d (patch) | |
tree | 906795f116566b29521a01def31f349ac238714e /src/ejabberd_s2s_out.erl | |
parent | Fix outgoing_s2s_timeout description (#1684) (diff) |
Don't let a receiver to crash if a controller is unavailable
Fixes #1796
Diffstat (limited to 'src/ejabberd_s2s_out.erl')
-rw-r--r-- | src/ejabberd_s2s_out.erl | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/ejabberd_s2s_out.erl b/src/ejabberd_s2s_out.erl index bcacd8e77..e8cad9792 100644 --- a/src/ejabberd_s2s_out.erl +++ b/src/ejabberd_s2s_out.erl @@ -54,10 +54,13 @@ %%%=================================================================== start(From, To, Opts) -> case proplists:get_value(supervisor, Opts, true) of - true -> - supervisor:start_child(ejabberd_s2s_out_sup, - [From, To, Opts]); - _ -> + true -> + case supervisor:start_child(ejabberd_s2s_out_sup, + [From, To, Opts]) of + {ok, undefined} -> ignore; + Res -> Res + end; + _ -> xmpp_stream_out:start(?MODULE, [ejabberd_socket, From, To, Opts], ejabberd_config:fsm_limit_opts([])) end. |