summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Nilsson <hans@erlang.org>2021-03-17 13:36:38 +0100
committerHans Nilsson <hans@erlang.org>2021-03-22 09:29:35 +0100
commit0dc12045e0ec5a11b2dce00b47b8e396f9544ecc (patch)
treef762dc3b2c52f96dde2d2e1316c7d50ab749f9f5
parentb9a6ac539f14ed73598624ba2d6069e1c4cc44bd (diff)
downloaderlang-0dc12045e0ec5a11b2dce00b47b8e396f9544ecc.tar.gz
ssh: Fix idle_time bug
-rw-r--r--lib/ssh/src/ssh_connection_handler.erl9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/ssh/src/ssh_connection_handler.erl b/lib/ssh/src/ssh_connection_handler.erl
index 8e4831a601..e9c45a5c83 100644
--- a/lib/ssh/src/ssh_connection_handler.erl
+++ b/lib/ssh/src/ssh_connection_handler.erl
@@ -1433,8 +1433,13 @@ handle_event(info, {'DOWN', _Ref, process, ChannelPid, _Reason}, _, D) ->
end, [], Cache),
{keep_state, D, cond_set_idle_timer(D)};
-handle_event({timeout,idle_time}, _Data, _StateName, _D) ->
- {stop, {shutdown, "Timeout"}};
+handle_event({timeout,idle_time}, _Data, _StateName, D) ->
+ case ssh_client_channel:cache_info(num_entries, cache(D)) of
+ 0 ->
+ {stop, {shutdown, "Timeout"}};
+ _ ->
+ keep_state_and_data
+ end;
%%% So that terminate will be run when supervisor is shutdown
handle_event(info, {'EXIT', _Sup, Reason}, StateName, _) ->