summaryrefslogtreecommitdiffstats
path: root/crypto/openssh/serverloop.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/openssh/serverloop.c')
-rw-r--r--crypto/openssh/serverloop.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/crypto/openssh/serverloop.c b/crypto/openssh/serverloop.c
index 81cafe6..8be01c5 100644
--- a/crypto/openssh/serverloop.c
+++ b/crypto/openssh/serverloop.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: serverloop.c,v 1.157 2009/02/12 03:16:01 djm Exp $ */
+/* $OpenBSD: serverloop.c,v 1.159 2009/05/28 16:50:16 andreas Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -78,6 +78,7 @@
#include "auth-options.h"
#include "serverloop.h"
#include "misc.h"
+#include "roaming.h"
extern ServerOptions options;
@@ -249,7 +250,7 @@ client_alive_check(void)
int channel_id;
/* timeout, check to see how many we have had */
- if (++keep_alive_timeouts > options.client_alive_count_max) {
+ if (packet_inc_alive_timeouts() > options.client_alive_count_max) {
logit("Timeout, client not responding.");
cleanup_exit(255);
}
@@ -391,8 +392,11 @@ process_input(fd_set *readset)
/* Read and buffer any input data from the client. */
if (FD_ISSET(connection_in, readset)) {
- len = read(connection_in, buf, sizeof(buf));
+ int cont = 0;
+ len = roaming_read(connection_in, buf, sizeof(buf), &cont);
if (len == 0) {
+ if (cont)
+ return;
verbose("Connection closed by %.100s",
get_remote_ipaddr());
connection_closed = 1;
@@ -890,7 +894,7 @@ server_input_keep_alive(int type, u_int32_t seq, void *ctxt)
* even if this was generated by something other than
* the bogus CHANNEL_REQUEST we send for keepalives.
*/
- keep_alive_timeouts = 0;
+ packet_set_alive_timeouts(0);
}
static void
@@ -1120,7 +1124,8 @@ server_input_global_request(int type, u_int32_t seq, void *ctxt)
no_port_forwarding_flag ||
(!want_reply && listen_port == 0)
#ifndef NO_IPPORT_RESERVED_CONCEPT
- || (listen_port < IPPORT_RESERVED && pw->pw_uid != 0)
+ || (listen_port != 0 && listen_port < IPPORT_RESERVED &&
+ pw->pw_uid != 0)
#endif
) {
success = 0;
OpenPOWER on IntegriCloud