diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | clientloop.c | 12 |
2 files changed, 17 insertions, 1 deletions
@@ -9,6 +9,12 @@ | |||
9 | Let the client detect if the server supports roaming by looking | 9 | Let the client detect if the server supports roaming by looking |
10 | for the resume@appgate.com kex algorithm. | 10 | for the resume@appgate.com kex algorithm. |
11 | ok markus@ | 11 | ok markus@ |
12 | - andreas@cvs.openbsd.org 2009/10/24 11:15:29 | ||
13 | [clientloop.c] | ||
14 | client_loop() must detect if the session has been suspended and resumed, | ||
15 | and take appropriate action in that case. | ||
16 | From Martin Forssen, maf at appgate dot com | ||
17 | ok markus@ | ||
12 | 18 | ||
13 | 20091226 | 19 | 20091226 |
14 | - (tim) [contrib/cygwin/Makefile] Install ssh-copy-id and ssh-copy-id.1 | 20 | - (tim) [contrib/cygwin/Makefile] Install ssh-copy-id and ssh-copy-id.1 |
diff --git a/clientloop.c b/clientloop.c index 9a7dc0ab0..540a6181a 100644 --- a/clientloop.c +++ b/clientloop.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: clientloop.c,v 1.213 2009/07/05 19:28:33 stevesk Exp $ */ | 1 | /* $OpenBSD: clientloop.c,v 1.214 2009/10/24 11:15:29 andreas Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -161,6 +161,8 @@ static int session_closed = 0; /* In SSH2: login session closed. */ | |||
161 | static void client_init_dispatch(void); | 161 | static void client_init_dispatch(void); |
162 | int session_ident = -1; | 162 | int session_ident = -1; |
163 | 163 | ||
164 | int session_resumed = 0; | ||
165 | |||
164 | /* Track escape per proto2 channel */ | 166 | /* Track escape per proto2 channel */ |
165 | struct escape_filter_ctx { | 167 | struct escape_filter_ctx { |
166 | int escape_pending; | 168 | int escape_pending; |
@@ -1460,6 +1462,14 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id) | |||
1460 | client_process_output(writeset); | 1462 | client_process_output(writeset); |
1461 | } | 1463 | } |
1462 | 1464 | ||
1465 | if (session_resumed) { | ||
1466 | connection_in = packet_get_connection_in(); | ||
1467 | connection_out = packet_get_connection_out(); | ||
1468 | max_fd = MAX(max_fd, connection_out); | ||
1469 | max_fd = MAX(max_fd, connection_in); | ||
1470 | session_resumed = 0; | ||
1471 | } | ||
1472 | |||
1463 | /* | 1473 | /* |
1464 | * Send as much buffered packet data as possible to the | 1474 | * Send as much buffered packet data as possible to the |
1465 | * sender. | 1475 | * sender. |