From cd62059c767ebc40fd01600f28a60456023f42fa Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Tue, 29 Nov 2016 11:28:26 +1100 Subject: [PATCH] 4519. [port] win32: handle ERROR_MORE_DATA. [RT #43534] (cherry picked from commit a611e44f9a7d598bbbffe73f59e592739ddfeeaa) --- CHANGES | 2 ++ lib/isc/win32/socket.c | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index b5933c1afa..3d64c12a2d 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,5 @@ +4519. [port] win32: handle ERROR_MORE_DATA. [RT #43534] + 4516. [bug] isc_socketmgr_renderjson was missing from the windows build. [RT #43602] diff --git a/lib/isc/win32/socket.c b/lib/isc/win32/socket.c index 3e958bee4f..b358d98c8c 100644 --- a/lib/isc/win32/socket.c +++ b/lib/isc/win32/socket.c @@ -2489,14 +2489,16 @@ SocketIoThread(LPVOID ThreadContext) { request = lpo->request_type; - errstatus = 0; - if (!bSuccess) { + if (!bSuccess) + errstatus = GetLastError(); + else + errstatus = 0; + if (!bSuccess && errstatus != ERROR_MORE_DATA) { isc_result_t isc_result; /* * Did the I/O operation complete? */ - errstatus = GetLastError(); isc_result = isc__errno2result(errstatus); LOCK(&sock->lock);