aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_s2s_out.erl
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-06-22 16:58:46 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2017-06-22 16:58:46 +0300
commit5bb7a0b0db76a0bf8e96950697650f4b2c07279d (patch)
tree906795f116566b29521a01def31f349ac238714e /src/ejabberd_s2s_out.erl
parentFix 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.erl11
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.