Apparently under Windows Vista, the read_with_timeout() call does not handle the case where the error is ERROR_IO_PENDING, the WaitForSingleObject() completes, but GetOverlappedResult() sets the nbytes value to zero. For the normal branch, if nbytes is zero the return value is set to APR_EOF. For the Overlapped case (readwrite.c line 96) the return value is always set to APR_SUCCESS. Under Windows XP, the code works fine. But under Windows Vista the code needs to check for nbytes being zero, and for that case setting the rv value to APR_EOF. Regards, Michael Watkins _________________________________________________________________ More immediate than e-mail? Get instant access with Windows Live Messenger. http://www.windowslive.com/messenger/overview.html?ocid=TXT_TAGLM_WL_Refresh_instantaccess_042008
