[PATCH] winhttp: Return default value for WINHTTP_OPTION_WORKER_THREAD_COUNT.
Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> --- Elden Ring queries this option. dlls/winhttp/session.c | 9 +++++++++ dlls/winhttp/tests/winhttp.c | 27 +++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/dlls/winhttp/session.c b/dlls/winhttp/session.c index 971c51ada4f..7c55adb8475 100644 --- a/dlls/winhttp/session.c +++ b/dlls/winhttp/session.c @@ -1224,6 +1224,15 @@ static BOOL query_option( struct object_header *hdr, DWORD option, void *buffer, switch (option) { + case WINHTTP_OPTION_WORKER_THREAD_COUNT: + { + FIXME( "WINHTTP_OPTION_WORKER_THREAD_COUNT semi-stub.\n" ); + if (!validate_buffer( buffer, buflen, sizeof(DWORD) )) return FALSE; + + *(DWORD *)buffer = 0; + *buflen = sizeof(DWORD); + return TRUE; + } case WINHTTP_OPTION_CONTEXT_VALUE: { if (!validate_buffer( buffer, buflen, sizeof(DWORD_PTR) )) return FALSE; diff --git a/dlls/winhttp/tests/winhttp.c b/dlls/winhttp/tests/winhttp.c index 35f6bc5cf26..9dc8ece3069 100644 --- a/dlls/winhttp/tests/winhttp.c +++ b/dlls/winhttp/tests/winhttp.c @@ -94,6 +94,15 @@ static void test_WinHttpQueryOption(void) ok( GetLastError() == ERROR_INSUFFICIENT_BUFFER, "expected ERROR_INSUFFICIENT_BUFFER, got %lu\n", GetLastError() ); ok( size == 4, "expected 4, got %lu\n", size ); + feature = 0xdeadbeef; + size = sizeof(feature) + 1; + SetLastError(0xdeadbeef); + ret = WinHttpQueryOption(session, WINHTTP_OPTION_WORKER_THREAD_COUNT, &feature, &size); + ok(ret, "failed to query option %lu\n", GetLastError()); + ok(GetLastError() == ERROR_SUCCESS, "got %lu\n", GetLastError()); + ok(size == sizeof(feature), "WinHttpQueryOption should set the size: %lu\n", size); + ok(feature == 0, "got unexpected WINHTTP_OPTION_WORKER_THREAD_COUNT %#lx\n", feature); + feature = 0xdeadbeef; size = sizeof(feature) + 1; SetLastError(0xdeadbeef); @@ -165,6 +174,24 @@ static void test_WinHttpQueryOption(void) goto done; } + feature = 0xdeadbeef; + size = sizeof(feature); + SetLastError(0xdeadbeef); + ret = WinHttpQueryOption(connection, WINHTTP_OPTION_WORKER_THREAD_COUNT, &feature, &size); + ok(ret, "query WINHTTP_OPTION_WORKER_THREAD_COUNT failed for a request\n"); + ok(GetLastError() == ERROR_SUCCESS, "got unexpected error %lu\n", GetLastError()); + ok(size == sizeof(feature), "WinHttpQueryOption should set the size: %lu\n", size); + ok(feature == 0, "got unexpected WINHTTP_OPTION_WORKER_THREAD_COUNT %#lx\n", feature); + + feature = 0xdeadbeef; + size = sizeof(feature); + SetLastError(0xdeadbeef); + ret = WinHttpQueryOption(request, WINHTTP_OPTION_WORKER_THREAD_COUNT, &feature, &size); + ok(ret, "query WINHTTP_OPTION_WORKER_THREAD_COUNT failed for a request\n"); + ok(GetLastError() == ERROR_SUCCESS, "got unexpected error %lu\n", GetLastError()); + ok(size == sizeof(feature), "WinHttpQueryOption should set the size: %lu\n", size); + ok(feature == 0, "got unexpected WINHTTP_OPTION_WORKER_THREAD_COUNT %#lx\n", feature); + feature = 0xdeadbeef; size = sizeof(feature); SetLastError(0xdeadbeef); -- 2.35.1
Hi, While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check? Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=109635 Your paranoid android. === w8adm (32 bit report) === winhttp: winhttp.c:324: Test failed: WinHttpSendRequest failed: 12007 winhttp.c:325: Test failed: got 12007 winhttp.c:430: Test failed: WinHttpSendRequest failed: 12007 winhttp.c:450: Test failed: Expected ERROR_INVALID_PARAMETER got 12019 winhttp.c:450: Test failed: Expected ERROR_INVALID_PARAMETER got 12019 winhttp.c:450: Test failed: Expected ERROR_INVALID_PARAMETER got 12019 winhttp.c:450: Test failed: Expected ERROR_INVALID_PARAMETER got 12019 winhttp.c:450: Test failed: Expected ERROR_INVALID_PARAMETER got 12019 winhttp.c:450: Test failed: Expected ERROR_INVALID_PARAMETER got 12019 winhttp.c:457: Test failed: Expected ERROR_SUCCESS got 12019 winhttp.c:459: Test failed: WinHttpReceiveResponse failed: 12019 winhttp.c:463: Test failed: got 12019 winhttp.c:471: Test failed: WinHttpReadData failed: 12019 winhttp.c:473: Test failed: Read 4294967295 bytes winhttp.c:474: Test failed: Data read did not match.
participants (3)
-
Hans Leidekker -
Marvin -
Paul Gofman