summaryrefslogtreecommitdiffstats
path: root/clientloop.c
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2001-07-18 16:01:46 +0000
committerBen Lindstrom <mouring@eviladmin.org>2001-07-18 16:01:46 +0000
commit16d29d57e85fd84c9dc06fd803d1abeceadff14c (patch)
tree4ab48758471d33120e01e3877e2083ac0213b0c5 /clientloop.c
parenta3d5a4c2dbc4fa92333b76882b00e3811177eff6 (diff)
- markus@cvs.openbsd.org 2001/07/17 21:04:58
[channels.c channels.h clientloop.c nchan.c serverloop.c] keep track of both maxfd and the size of the malloc'ed fdsets. update maxfd if maxfd gets closed.
Diffstat (limited to 'clientloop.c')
-rw-r--r--clientloop.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/clientloop.c b/clientloop.c
index 83b2d4d8..41aff835 100644
--- a/clientloop.c
+++ b/clientloop.c
@@ -59,7 +59,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: clientloop.c,v 1.80 2001/06/30 18:08:40 stevesk Exp $");
+RCSID("$OpenBSD: clientloop.c,v 1.81 2001/07/17 21:04:57 markus Exp $");
#include "ssh.h"
#include "ssh1.h"
@@ -318,10 +318,10 @@ client_check_window_change(void)
static void
client_wait_until_can_do_something(fd_set **readsetp, fd_set **writesetp,
- int *maxfdp, int rekeying)
+ int *maxfdp, int *nallocp, int rekeying)
{
/* Add any selections by the channel mechanism. */
- channel_prepare_select(readsetp, writesetp, maxfdp, rekeying);
+ channel_prepare_select(readsetp, writesetp, maxfdp, nallocp, rekeying);
if (!compat20) {
/* Read from the connection, unless our buffers are full. */
@@ -770,7 +770,7 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id)
{
fd_set *readset = NULL, *writeset = NULL;
double start_time, total_time;
- int max_fd = 0, len, rekeying = 0;
+ int max_fd = 0, max_fd2 = 0, len, rekeying = 0, nalloc = 0;
char buf[100];
debug("Entering interactive session.");
@@ -877,8 +877,9 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id)
* Wait until we have something to do (something becomes
* available on one of the descriptors).
*/
+ max_fd2 = max_fd;
client_wait_until_can_do_something(&readset, &writeset,
- &max_fd, rekeying);
+ &max_fd2, &nalloc, rekeying);
if (quit_pending)
break;