[PATCH 0/4] MR10607: winhttp: Stub WinHttpQueryOption(WINHTTP_OPTION_CONNECT_RETRIES).
From: Hans Leidekker <hans@codeweavers.com> --- dlls/winhttp/request.c | 5 +++-- dlls/winhttp/tests/notification.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c index 31b74ce3e9e..947ef839da6 100644 --- a/dlls/winhttp/request.c +++ b/dlls/winhttp/request.c @@ -3343,11 +3343,12 @@ BOOL WINAPI WinHttpReceiveResponse( HINTERNET hrequest, LPVOID reserved ) return !ret; } +#define RECURSION_LIMIT 5 static BOOL skip_async_queue( struct request *request, BOOL *wont_block, DWORD to_read ) { to_read = min( to_read, request->content_length - request->content_read ); *wont_block = end_of_data_stream( request ) || request->read.size >= to_read; - return request->hdr.recursion_count <= 3 && *wont_block; + return request->hdr.recursion_count <= RECURSION_LIMIT && *wont_block; } static DWORD query_data_available( struct request *request, DWORD *available, BOOL async ) @@ -3647,7 +3648,7 @@ BOOL WINAPI WinHttpWriteData( HINTERNET hrequest, const void *buffer, DWORD to_w return FALSE; } - if (!(async = request->connect->hdr.flags & WINHTTP_FLAG_ASYNC) || request->hdr.recursion_count <= 3) + if (!(async = request->connect->hdr.flags & WINHTTP_FLAG_ASYNC) || request->hdr.recursion_count <= RECURSION_LIMIT) { ret = write_data( request, buffer, to_write, written, async ); } diff --git a/dlls/winhttp/tests/notification.c b/dlls/winhttp/tests/notification.c index 83c57ee4469..25b133e8f20 100644 --- a/dlls/winhttp/tests/notification.c +++ b/dlls/winhttp/tests/notification.c @@ -1838,7 +1838,7 @@ struct test_recursion_context BYTE *send_buffer; }; -#define TEST_RECURSION_LIMIT 3 +#define TEST_RECURSION_LIMIT 5 static void CALLBACK test_recursion_callback( HINTERNET handle, DWORD_PTR context_ptr, DWORD status, void *buffer, DWORD buflen ) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10607
From: Hans Leidekker <hans@codeweavers.com> --- dlls/winhttp/session.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dlls/winhttp/session.c b/dlls/winhttp/session.c index ca9e628660a..666a72c47e1 100644 --- a/dlls/winhttp/session.c +++ b/dlls/winhttp/session.c @@ -346,6 +346,15 @@ static BOOL session_set_option( struct object_header *hdr, DWORD option, void *b FIXME( "WINHTTP_OPTION_ENABLE_HTTP_PROTOCOL: %lx\n", *(DWORD *)buffer ); return TRUE; + case WINHTTP_OPTION_IPV6_FAST_FALLBACK: + if (buflen != sizeof(BOOL)) + { + SetLastError( ERROR_INSUFFICIENT_BUFFER ); + return FALSE; + } + FIXME( "WINHTTP_OPTION_IPV6_FAST_FALLBACK: %d\n", *(BOOL *)buffer ); + return TRUE; + default: FIXME( "unimplemented option %lu\n", option ); SetLastError( ERROR_WINHTTP_INVALID_OPTION ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10607
From: Hans Leidekker <hans@codeweavers.com> --- dlls/winhttp/session.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dlls/winhttp/session.c b/dlls/winhttp/session.c index 666a72c47e1..52711b9305b 100644 --- a/dlls/winhttp/session.c +++ b/dlls/winhttp/session.c @@ -1568,6 +1568,17 @@ static BOOL query_option( struct object_header *hdr, DWORD option, void *buffer, *buflen = sizeof(DWORD_PTR); return TRUE; } + case WINHTTP_OPTION_HTTP_VERSION: + { + HTTP_VERSION_INFO *info = buffer; + + FIXME( "WINHTTP_OPTION_HTTP_VERSION\n" ); + if (!validate_buffer( buffer, buflen, sizeof(info) )) return FALSE; + info->dwMajorVersion = 1; + info->dwMinorVersion = 1; + *buflen = sizeof(info); + return TRUE; + } default: if (hdr->vtbl->query_option) ret = hdr->vtbl->query_option( hdr, option, buffer, buflen ); else -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10607
From: Hans Leidekker <hans@codeweavers.com> --- dlls/winhttp/session.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dlls/winhttp/session.c b/dlls/winhttp/session.c index 52711b9305b..85e3c3f18d1 100644 --- a/dlls/winhttp/session.c +++ b/dlls/winhttp/session.c @@ -1579,6 +1579,15 @@ static BOOL query_option( struct object_header *hdr, DWORD option, void *buffer, *buflen = sizeof(info); return TRUE; } + case WINHTTP_OPTION_CONNECT_RETRIES: + { + FIXME( "WINHTTP_OPTION_CONNECT_RETRIES\n" ); + if (!validate_buffer( buffer, buflen, sizeof(DWORD) )) return FALSE; + + *(DWORD *)buffer = 0; + *buflen = sizeof(DWORD); + return TRUE; + } default: if (hdr->vtbl->query_option) ret = hdr->vtbl->query_option( hdr, option, buffer, buflen ); else -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10607
participants (2)
-
Hans Leidekker -
Hans Leidekker (@hans)