diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-03-07 18:46:02 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2017-03-07 18:46:02 +0300 |
commit | d0a185f2d9c9c078d4061789ff8ab9839df2878c (patch) | |
tree | a12559235f5777ff0b9c88249a6ff0762b7a702e | |
parent | Don't call deprecated jid functions from the test suite (diff) |
Report some TLS errors
-rw-r--r-- | src/ejabberd_c2s.erl | 6 | ||||
-rw-r--r-- | src/ejabberd_s2s_in.erl | 14 |
2 files changed, 18 insertions, 2 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 826a49cd4..1b7bac130 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -275,6 +275,12 @@ process_terminated(#{sockmod := SockMod, socket := Socket, jid := JID} = State, end, bounce_message_queue(), State1; +process_terminated(#{sockmod := SockMod, socket := Socket, + stop_reason := {tls, no_certfile}} = State, Reason) -> + %% TODO: we probably need to report more TLS errors here + ?ERROR_MSG("(~s) Failed to secure c2s connection: ~s", + [SockMod:pp(Socket), format_reason(State, Reason)]), + State; process_terminated(State, _Reason) -> State. diff --git a/src/ejabberd_s2s_in.erl b/src/ejabberd_s2s_in.erl index 4289a8b34..1cddfec69 100644 --- a/src/ejabberd_s2s_in.erl +++ b/src/ejabberd_s2s_in.erl @@ -168,7 +168,8 @@ handle_stream_start(_StreamStart, #{lserver := LServer} = State) -> end. handle_stream_end(Reason, #{server_host := LServer} = State) -> - ejabberd_hooks:run_fold(s2s_in_closed, LServer, State, [Reason]). + State1 = State#{stop_reason => Reason}, + ejabberd_hooks:run_fold(s2s_in_closed, LServer, State1, [Reason]). handle_stream_established(State) -> set_idle_timeout(State#{established => true}). @@ -284,7 +285,16 @@ handle_cast(Msg, #{server_host := LServer} = State) -> handle_info(Info, #{server_host := LServer} = State) -> ejabberd_hooks:run_fold(s2s_in_handle_info, LServer, State, [Info]). -terminate(Reason, #{auth_domains := AuthDomains}) -> +terminate(Reason, #{auth_domains := AuthDomains, + sockmod := SockMod, socket := Socket} = State) -> + case maps:get(stop_reason, State, undefined) of + {tls, no_certfile} = Err -> + %% TODO: we probably need to report more TLS errors here + ?ERROR_MSG("(~s) Failed to secure inbound s2s connection: ~s", + [SockMod:pp(Socket), xmpp_stream_in:format_error(Err)]); + _ -> + ok + end, case Reason of {process_limit, _} -> sets:fold( |