summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandreas <andreas@openbsd.org>2009-10-24 11:15:29 +0000
committerandreas <andreas@openbsd.org>2009-10-24 11:15:29 +0000
commit5621b3a78aed56611ff01a696bd53490d35bd01b (patch)
tree0320f2e21c16190649aa70aa5bff4ab4b05688e4
parentLet the client detect if the server supports roaming by looking (diff)
downloadwireguard-openbsd-5621b3a78aed56611ff01a696bd53490d35bd01b.tar.xz
wireguard-openbsd-5621b3a78aed56611ff01a696bd53490d35bd01b.zip
client_loop() must detect if the session has been suspended and resumed,
and take appropriate action in that case. From Martin Forssen, maf at appgate dot com ok markus@
-rw-r--r--usr.bin/ssh/clientloop.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/usr.bin/ssh/clientloop.c b/usr.bin/ssh/clientloop.c
index 0cad484af72..f74bed31ecb 100644
--- a/usr.bin/ssh/clientloop.c
+++ b/usr.bin/ssh/clientloop.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: clientloop.c,v 1.213 2009/07/05 19:28:33 stevesk Exp $ */
+/* $OpenBSD: clientloop.c,v 1.214 2009/10/24 11:15:29 andreas Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -153,6 +153,8 @@ static int session_closed = 0; /* In SSH2: login session closed. */
static void client_init_dispatch(void);
int session_ident = -1;
+int session_resumed = 0;
+
/* Track escape per proto2 channel */
struct escape_filter_ctx {
int escape_pending;
@@ -1448,6 +1450,14 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id)
client_process_output(writeset);
}
+ if (session_resumed) {
+ connection_in = packet_get_connection_in();
+ connection_out = packet_get_connection_out();
+ max_fd = MAX(max_fd, connection_out);
+ max_fd = MAX(max_fd, connection_in);
+ session_resumed = 0;
+ }
+
/*
* Send as much buffered packet data as possible to the
* sender.