[PATCH] winhttp: Return default value for WINHTTP_OPTION_WORKER_THREAD_COUNT.
Paul Gofman
pgofman at codeweavers.com
Wed Mar 2 09:28:21 CST 2022
Signed-off-by: Paul Gofman <pgofman at 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
More information about the wine-devel
mailing list