diff --git a/client/Windows/wfreerdp.c b/client/Windows/wfreerdp.c index 6bc8a59ea..17fc9a9ed 100644 --- a/client/Windows/wfreerdp.c +++ b/client/Windows/wfreerdp.c @@ -526,7 +526,7 @@ int wfreerdp_run(freerdp* instance) } /* do the wait */ - if (MsgWaitForMultipleObjects(fds_count, fds, FALSE, 1, QS_ALLINPUT) == WAIT_FAILED) + if (MsgWaitForMultipleObjects(fds_count, fds, FALSE, 1000, QS_ALLINPUT) == WAIT_FAILED) { printf("wfreerdp_run: WaitForMultipleObjects failed: 0x%04X\n", GetLastError()); break; diff --git a/libfreerdp/core/transport.c b/libfreerdp/core/transport.c index c75b544f6..1073eb95f 100644 --- a/libfreerdp/core/transport.c +++ b/libfreerdp/core/transport.c @@ -390,6 +390,9 @@ int transport_check_fds(rdpTransport** ptransport) STREAM* received; rdpTransport* transport = *ptransport; +#ifdef _WIN32 + WSAResetEvent(transport->tcp->wsa_event); +#endif wait_obj_clear(transport->recv_event); status = transport_read_nonblocking(transport);