aboutsummaryrefslogtreecommitdiff
path: root/src/ejabberd_s2s_out.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_s2s_out.erl')
-rw-r--r--src/ejabberd_s2s_out.erl36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/ejabberd_s2s_out.erl b/src/ejabberd_s2s_out.erl
index f325d71e6..338bc9669 100644
--- a/src/ejabberd_s2s_out.erl
+++ b/src/ejabberd_s2s_out.erl
@@ -745,6 +745,42 @@ handle_event(_Event, StateName, StateData) ->
%%----------------------------------------------------------------------
%% Func: handle_sync_event/4
+%% Returns: The associated StateData for this connection
+%% {reply, Reply, NextStateName, NextStateData}
+%% Reply = {state_infos, [{InfoName::atom(), InfoValue::any()]
+%%----------------------------------------------------------------------
+handle_sync_event(get_state_infos, _From, StateName, StateData) ->
+ {Addr,Port} = try ejabberd_socket:peername(StateData#state.socket) of
+ {ok, {A,P}} -> {A,P};
+ {error, _} -> {unknown,unknown}
+ catch
+ _:_ ->
+ {unknown,unknown}
+ end,
+ Infos = [
+ {direction, out},
+ {statename, StateName},
+ {addr, Addr},
+ {port, Port},
+ {streamid, StateData#state.streamid},
+ {use_v10, StateData#state.use_v10},
+ {tls, StateData#state.tls},
+ {tls_required, StateData#state.tls_required},
+ {tls_enabled, StateData#state.tls_enabled},
+ {tls_options, StateData#state.tls_options},
+ {authenticated, StateData#state.authenticated},
+ {db_enabled, StateData#state.db_enabled},
+ {try_auth, StateData#state.try_auth},
+ {myname, StateData#state.myname},
+ {server, StateData#state.server},
+ {delay_to_retry, StateData#state.delay_to_retry},
+ {verify, StateData#state.verify}
+ ],
+ Reply = {state_infos, Infos},
+ {reply,Reply,StateName,StateData};
+
+%%----------------------------------------------------------------------
+%% Func: handle_sync_event/4
%% Returns: {next_state, NextStateName, NextStateData} |
%% {next_state, NextStateName, NextStateData, Timeout} |
%% {reply, Reply, NextStateName, NextStateData} |