Jacek Caban (@jacek) commented about dlls/wininet/internet.c:
+ FIXME("Unhandled dwMoveContext %ld\n", dwMoveContext); + goto lend; + } + res = cache_pos; + + size = GetFileSize(request->hCacheFile, NULL); + err = size == INVALID_FILE_SIZE ? GetLastError() : NO_ERROR; + if(err != NO_ERROR) { + ERR("GetFileSize failed with error %ld\n", err); + goto lend; + } + if(size < cache_pos) { + BYTE buf[1024]; + BOOL ret; + while(size < cache_pos) { + ret = InternetReadFile(hFile, buf, 1024, &cread); I think that this will not work with asynchronous request. MSDN suggests that `InternetSetFilePointer` is synchronous, but may cause later `InternetReadFile` to block. It would be interesting to have more tests for that. It may be useful to use our helpers that use local server and control when reply is sent, see `test_http_read()` for an example.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/1268#note_13739