From 221dc123b58da0952fb77ff13243ecc8b53f1ae4 Mon Sep 17 00:00:00 2001
From: Hans Nilsson <hans@erlang.org>
Date: Mon, 19 Feb 2018 13:25:51 +0100
Subject: ssh: Add ssh_connection_handler:alg/1 for test purposes

---
 lib/ssh/src/ssh_connection_handler.erl | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/lib/ssh/src/ssh_connection_handler.erl b/lib/ssh/src/ssh_connection_handler.erl
index f47ab41624..907ecef860 100644
--- a/lib/ssh/src/ssh_connection_handler.erl
+++ b/lib/ssh/src/ssh_connection_handler.erl
@@ -68,7 +68,7 @@
 -export([init_connection_handler/3,	   % proc_lib:spawn needs this
 	 init_ssh_record/3,		   % Export of this internal function
 					   % intended for low-level protocol test suites
-	 renegotiate/1, renegotiate_data/1 % Export intended for test cases
+	 renegotiate/1, renegotiate_data/1, alg/1 % Export intended for test cases
 	]).
 
 %%====================================================================
@@ -320,6 +320,9 @@ renegotiate(ConnectionHandler) ->
 renegotiate_data(ConnectionHandler) ->
     cast(ConnectionHandler, data_size).
 
+%%--------------------------------------------------------------------
+alg(ConnectionHandler) ->
+    call(ConnectionHandler, get_alg).
 
 %%====================================================================
 %% Internal process state
@@ -1030,6 +1033,10 @@ handle_event(cast, renegotiate, {connected,Role}, D) ->
     {next_state, {kexinit,Role,renegotiate}, D#data{ssh_params = Ssh,
 						    key_exchange_init_msg = KeyInitMsg}};
 
+handle_event({call,From}, get_alg, _, D) ->
+    #ssh{algorithms=Algs} = D#data.ssh_params,
+    {keep_state_and_data, [{reply,From,Algs}]};
+
 handle_event(cast, renegotiate, _, _) ->
     %% Already in key-exchange so safe to ignore
     timer:apply_after(?REKEY_TIMOUT, gen_statem, cast, [self(), renegotiate]), % FIXME: not here in original
-- 
cgit v1.2.3