From: simon Date: Tue, 23 Jan 2001 10:19:17 +0000 (+0000) Subject: Fix a subtle bug affecting multiple-socket handling in Plink. (Was X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/commitdiff_plain/ffb959c711aeb32bc6116816cee4186cfd5a5c69 Fix a subtle bug affecting multiple-socket handling in Plink. (Was interfering with X forwarding.) Details of bug: the event object used as the target of WSAEventSelect is created in such a way that it is automatically reset when it releases a thread from WaitFor*Objects. Subsequently, a read on the first socket in the list causes another network event if not all the available data was read; thus the event object is set again. Then, WSAEnumNetworkEvents is called again for the _second_ socket, and is passed the network event, which it therefore resets. So an event has been dropped, and things only get restarted when some more data arrives on the first socket. git-svn-id: svn://svn.tartarus.org/sgt/putty@888 cda61777-01e9-0310-a592-d414129be87e --- diff --git a/plink.c b/plink.c index 16a44b38..61552fac 100644 --- a/plink.c +++ b/plink.c @@ -557,7 +557,7 @@ int main(int argc, char **argv) { WPARAM wp; socket = sklist[i]; wp = (WPARAM)socket; - if (!WSAEnumNetworkEvents(socket, netevent, &things)) { + if (!WSAEnumNetworkEvents(socket, NULL, &things)) { noise_ultralight(socket); noise_ultralight(things.lNetworkEvents); if (things.lNetworkEvents & FD_READ)