diff --git a/src/emqx_channel.erl b/src/emqx_channel.erl index cb3794ef6..eaea6c7fd 100644 --- a/src/emqx_channel.erl +++ b/src/emqx_channel.erl @@ -149,7 +149,14 @@ call(CPid, Req) -> init({Transport, RawSocket, Options}) -> process_flag(trap_exit, true), - {ok, Socket} = Transport:wait(RawSocket), + case Transport:wait(RawSocket) of + {ok, Socket} -> + do_init(Transport, Socket, Options); + {error, Reason} -> + ?LOG(warning, "connection failed to establish: ~p", [Reason]) + end. + +do_init(Transport, Socket, Options) -> {ok, Peername} = Transport:ensure_ok_or_exit(peername, [Socket]), {ok, Sockname} = Transport:ensure_ok_or_exit(sockname, [Socket]), Peercert = Transport:ensure_ok_or_exit(peercert, [Socket]),