aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVic Lee <llyzs@163.com>2010-09-21 00:32:08 +0800
committerAndreas Schneider <asn@cynapses.org>2010-09-20 19:24:36 +0200
commit31fdb4ecf6ea577c5a8dc17e888f091337163258 (patch)
treed93de0bbf894a38215b86edb5ffd72560be5a4a5
parent0b564c358ffa939feca988dc91ad08a2747b8cb5 (diff)
downloadlibssh-31fdb4ecf6ea577c5a8dc17e888f091337163258.tar.gz
libssh-31fdb4ecf6ea577c5a8dc17e888f091337163258.tar.xz
libssh-31fdb4ecf6ea577c5a8dc17e888f091337163258.zip
socket.c: Fixed setting max_fd which breaks ssh_select().
Signed-off-by: Andreas Schneider <asn@cynapses.org>
-rw-r--r--libssh/socket.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libssh/socket.c b/libssh/socket.c
index 516639c3..c8fd00fb 100644
--- a/libssh/socket.c
+++ b/libssh/socket.c
@@ -265,7 +265,10 @@ void ssh_socket_fd_set(struct socket *s, fd_set *set, socket_t *max_fd) {
if (s->fd == SSH_INVALID_SOCKET)
return;
FD_SET(s->fd,set);
- if (s->fd >= 0 && s->fd != SSH_INVALID_SOCKET) {
+
+ if (s->fd >= 0 &&
+ s->fd >= *max_fd &&
+ s->fd != SSH_INVALID_SOCKET) {
*max_fd = s->fd + 1;
}
}