diff options
author | Erik O'Leary <erik.m.oleary@gmail.com> | 2014-01-19 10:51:21 -0600 |
---|---|---|
committer | Erik O'Leary <erik.m.oleary@gmail.com> | 2014-01-19 10:51:21 -0600 |
commit | 5d8d1ed8bc0a08d6e04c3f10c0bdac4118070685 (patch) | |
tree | c85aa67f26d87ffdf750716490a0523403a6db3e /lib/pure | |
parent | 73c6efdf66dd62370cb04f7ce75640743905edc5 (diff) | |
download | Nim-5d8d1ed8bc0a08d6e04c3f10c0bdac4118070685.tar.gz |
Corrected prunesocketset and pruneprocessset
fd sets passed to select() were pruning ready FDs rather than pruning UN-ready FDs.
Diffstat (limited to 'lib/pure')
-rw-r--r-- | lib/pure/ftpclient.nim | 4 | ||||
-rw-r--r-- | lib/pure/irc.nim | 2 | ||||
-rw-r--r-- | lib/pure/osproc.nim | 2 | ||||
-rw-r--r-- | lib/pure/scgi.nim | 2 | ||||
-rw-r--r-- | lib/pure/sockets.nim | 2 |
5 files changed, 6 insertions, 6 deletions
diff --git a/lib/pure/ftpclient.nim b/lib/pure/ftpclient.nim index b6127a9bc..d9f9dfd3d 100644 --- a/lib/pure/ftpclient.nim +++ b/lib/pure/ftpclient.nim @@ -298,7 +298,7 @@ proc getLines(ftp: PFTPClient, async: bool = false): bool = var readSocks: seq[TSocket] = @[ftp.getCSock()] # This is only needed here. Asyncio gets this socket... blockingOperation(ftp.getCSock()): - if readSocks.select(1) != 0 and ftp.getCSock() notin readSocks: + if readSocks.select(1) != 0 and ftp.getCSock() in readSocks: assertReply ftp.expectReply(), "226" return true @@ -434,7 +434,7 @@ proc getFile(ftp: PFTPClient, async = false): bool = if not async: var readSocks: seq[TSocket] = @[ftp.getCSock()] blockingOperation(ftp.getCSock()): - if readSocks.select(1) != 0 and ftp.getCSock() notin readSocks: + if readSocks.select(1) != 0 and ftp.getCSock() in readSocks: assertReply ftp.expectReply(), "226" return true diff --git a/lib/pure/irc.nim b/lib/pure/irc.nim index ee85d9c69..d7af0a33a 100644 --- a/lib/pure/irc.nim +++ b/lib/pure/irc.nim @@ -346,7 +346,7 @@ proc poll*(irc: PIRC, ev: var TIRCEvent, var line = TaintedString"" var socks = @[irc.sock] var ret = socks.select(timeout) - if socks.len() == 0 and ret != 0: + if socks.len() != 0: irc.sock.readLine(line) ev = irc.processLine(line.string) result = true diff --git a/lib/pure/osproc.nim b/lib/pure/osproc.nim index 7b59deec7..6c43dc2d9 100644 --- a/lib/pure/osproc.nim +++ b/lib/pure/osproc.nim @@ -800,7 +800,7 @@ elif not defined(useNimRtl): var i = 0 var L = s.len while i < L: - if FD_ISSET(cint(s[i].outHandle), fd) != 0'i32: + if FD_ISSET(cint(s[i].outHandle), fd) == 0'i32: s[i] = s[L-1] dec(L) else: diff --git a/lib/pure/scgi.nim b/lib/pure/scgi.nim index b18fe0094..04b77fafe 100644 --- a/lib/pure/scgi.nim +++ b/lib/pure/scgi.nim @@ -119,7 +119,7 @@ proc next*(s: var TScgistate, timeout: int = -1): bool = ## request, if ``timeout`` is `-1` then this function will never time out. ## Returns `True` if a new request has been processed. var rsocks = @[s.server] - if select(rsocks, timeout) == 1 and rsocks.len == 0: + if select(rsocks, timeout) == 1 and rsocks.len == 1: new(s.client) accept(s.server, s.client) var L = 0 diff --git a/lib/pure/sockets.nim b/lib/pure/sockets.nim index b56153cc0..b3cc38ee7 100644 --- a/lib/pure/sockets.nim +++ b/lib/pure/sockets.nim @@ -928,7 +928,7 @@ proc pruneSocketSet(s: var seq[TSocket], fd: var TFdSet) = var i = 0 var L = s.len while i < L: - if FD_ISSET(s[i].fd, fd) != 0'i32: + if FD_ISSET(s[i].fd, fd) == 0'i32: s[i] = s[L-1] dec(L) else: |