From a0917a8e9b8f1cfb5a5e18eaea0ef0c36c7b1f7e Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Sun, 4 May 2014 23:08:42 +0200 Subject: [PATCH] XEP-0198: Log message when waiting for resumption Log an informational message when a session goes into the pending state (waiting for resumption) after the connection was lost. Administrators may well be interested in this state change when looking into issues. --- src/ejabberd_c2s.erl | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index ba8c6eab6..9f7ab4b89 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -1179,6 +1179,7 @@ session_established(closed, StateData) when StateData#state.resume_timeout > 0, StateData#state.sm_state == active orelse StateData#state.sm_state == pending -> + log_pending_state(StateData), fsm_next_state(wait_for_resume, StateData#state{sm_state = pending}); session_established(closed, StateData) -> {stop, normal, StateData}. @@ -1664,6 +1665,7 @@ handle_info({'DOWN', Monitor, _Type, _Object, _Info}, if StateData#state.resume_timeout > 0, StateData#state.sm_state == active orelse StateData#state.sm_state == pending -> + log_pending_state(StateData), fsm_next_state(wait_for_resume, StateData#state{sm_state = pending}); true -> {stop, normal, StateData} @@ -2785,6 +2787,12 @@ limit_queue_length(#state{jid = JID, StateData end. +log_pending_state(StateData) when StateData#state.sm_state /= pending -> + ?INFO_MSG("Waiting for resumption of stream for ~s", + [jlib:jid_to_string(StateData#state.jid)]); +log_pending_state(_StateData) -> + ok. + handle_unacked_stanzas(StateData, F) when StateData#state.sm_state == active; StateData#state.sm_state == pending -> Queue = StateData#state.ack_queue,