diff options
author | Marc Hoersken <info@marc-hoersken.de> | 2014-12-21 14:32:40 +0100 |
---|---|---|
committer | Marc Hoersken <info@marc-hoersken.de> | 2014-12-21 14:32:40 +0100 |
commit | 6f1f5a7506e46b0e00b56330ce62cea32248716f (patch) | |
tree | 671dfeb747498d3811e758141a84e6453290c7fd /tests/server | |
parent | ed68159d191b0b1e83a0282baa643d1135a970da (diff) |
sockfilt.c: use non-Ex functions that are available before WinXP
It was initially reported by Guenter that GetFileSizeEx
requires (_WIN32_WINNT >= 0x0500) to be true.
Diffstat (limited to 'tests/server')
-rw-r--r-- | tests/server/sockfilt.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/tests/server/sockfilt.c b/tests/server/sockfilt.c index 84b1be469..e78787670 100644 --- a/tests/server/sockfilt.c +++ b/tests/server/sockfilt.c @@ -550,11 +550,17 @@ static DWORD WINAPI select_ws_wait_thread(LPVOID lpParameter) while(WaitForMultipleObjectsEx(2, handles, FALSE, INFINITE, FALSE) == WAIT_OBJECT_0 + 1) { /* get total size of file */ + length = 0; size.QuadPart = 0; - if(GetFileSizeEx(handle, &size)) { + size.LowPart = GetFileSize(handle, &length); + if((size.LowPart != INVALID_FILE_SIZE) || + (GetLastError() == NO_ERROR)) { + size.HighPart = length; /* get the current position within the file */ pos.QuadPart = 0; - if(SetFilePointerEx(handle, pos, &pos, FILE_CURRENT)) { + pos.LowPart = SetFilePointer(handle, 0, &pos.HighPart, FILE_CURRENT); + if((pos.LowPart != INVALID_SET_FILE_POINTER) || + (GetLastError() == NO_ERROR)) { /* compare position with size, abort if not equal */ if(size.QuadPart == pos.QuadPart) { /* sleep and continue waiting */ @@ -579,6 +585,7 @@ static DWORD WINAPI select_ws_wait_thread(LPVOID lpParameter) while(WaitForMultipleObjectsEx(2, handles, FALSE, INFINITE, FALSE) == WAIT_OBJECT_0 + 1) { /* check if this is an actual console handle */ + length = 0; if(GetConsoleMode(handle, &length)) { /* retrieve an event from the console buffer */ length = 0; @@ -607,6 +614,7 @@ static DWORD WINAPI select_ws_wait_thread(LPVOID lpParameter) while(WaitForMultipleObjectsEx(2, handles, FALSE, INFINITE, FALSE) == WAIT_OBJECT_0 + 1) { /* peek into the pipe and retrieve the amount of data available */ + length = 0; if(PeekNamedPipe(handle, NULL, 0, NULL, &length, NULL)) { /* if there is no data available, sleep and continue waiting */ if(length == 0) { |