From a05970ca53152d7c164e040e085c3af04430fcd6 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 19 Jul 2017 13:21:54 +0200 Subject: [PATCH] Rebase against 9118512135a1aac6969bf575a0656855ba84ef11. --- ...sed-version-of-gcc-4.5-when-Werror-i.patch | 34 ++--- ...dummy-skininfo-interface-in-D3DXLoad.patch | 14 +-- ...r-WORD-of-segment-registers-in-RtlCa.patch | 46 +++++++ patches/patchinstall.sh | 50 +++++++- ...ebug-registers-when-creating-threads.patch | 59 ++------- ...nhttp-Fix-handling-of-Accept-headers.patch | 24 ++-- ...-winhttp-Rename-host_t-to-hostdata_t.patch | 116 ++++++++++++++++++ patches/winhttp-host_t/definition | 1 + 8 files changed, 248 insertions(+), 96 deletions(-) create mode 100644 patches/ntdll-RtlCaptureContext/0001-ntdll-Clear-upper-WORD-of-segment-registers-in-RtlCa.patch create mode 100644 patches/winhttp-host_t/0001-winhttp-Rename-host_t-to-hostdata_t.patch create mode 100644 patches/winhttp-host_t/definition diff --git a/patches/Compiler_Warnings/0018-Appease-the-blessed-version-of-gcc-4.5-when-Werror-i.patch b/patches/Compiler_Warnings/0018-Appease-the-blessed-version-of-gcc-4.5-when-Werror-i.patch index 9222e4fa..89e5650e 100644 --- a/patches/Compiler_Warnings/0018-Appease-the-blessed-version-of-gcc-4.5-when-Werror-i.patch +++ b/patches/Compiler_Warnings/0018-Appease-the-blessed-version-of-gcc-4.5-when-Werror-i.patch @@ -1,15 +1,14 @@ -From b6b1e5da04ed867251253410e37d412109a4cec2 Mon Sep 17 00:00:00 2001 +From cd34de81164087b3593d0ec9416e2f157a5df40d Mon Sep 17 00:00:00 2001 From: "Erich E. Hoover" Date: Fri, 8 Aug 2014 19:33:14 -0600 Subject: Appease the blessed version of gcc (4.5) when -Werror is enabled. --- - dlls/d3d9/tests/visual.c | 2 +- - dlls/netapi32/netapi32.c | 2 +- - dlls/winealsa.drv/mmdevdrv.c | 2 +- - dlls/wined3d/glsl_shader.c | 2 +- - tools/makedep.c | 2 +- - 5 files changed, 5 insertions(+), 5 deletions(-) + dlls/d3d9/tests/visual.c | 2 +- + dlls/netapi32/netapi32.c | 2 +- + dlls/wined3d/glsl_shader.c | 2 +- + tools/makedep.c | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c index c8a6a1fa5a8..0261d3708e6 100644 @@ -37,24 +36,11 @@ index 278d4528b01..1c5f110b828 100644 NET_API_STATUS status; if (servername && !(server = strdup_unixcp( servername ))) return ERROR_OUTOFMEMORY; -diff --git a/dlls/winealsa.drv/mmdevdrv.c b/dlls/winealsa.drv/mmdevdrv.c -index 2ecb111e218..b285705509c 100644 ---- a/dlls/winealsa.drv/mmdevdrv.c -+++ b/dlls/winealsa.drv/mmdevdrv.c -@@ -359,7 +359,7 @@ static WCHAR *construct_device_id(EDataFlow flow, const WCHAR *chunk1, const cha - { - WCHAR *ret; - const WCHAR *prefix; -- DWORD len_wchars = 0, chunk1_len, copied = 0, prefix_len; -+ DWORD len_wchars = 0, chunk1_len = 0, copied = 0, prefix_len; - - static const WCHAR dashW[] = {' ','-',' ',0}; - static const size_t dashW_len = (sizeof(dashW) / sizeof(*dashW)) - 1; diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c -index ce960853362..f4275d8dd48 100644 +index f96f48d97d1..8fe3318cd78 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c -@@ -9316,7 +9316,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const +@@ -9721,7 +9721,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const GLuint ds_id = 0; GLuint gs_id = 0; GLuint ps_id = 0; @@ -64,7 +50,7 @@ index ce960853362..f4275d8dd48 100644 struct wined3d_string_buffer *tmp_name; diff --git a/tools/makedep.c b/tools/makedep.c -index add722f80a9..24b06bbfcb2 100644 +index 296356b0a57..5a2873b56f1 100644 --- a/tools/makedep.c +++ b/tools/makedep.c @@ -1608,7 +1608,7 @@ static const char *get_make_variable( const struct makefile *make, const char *n @@ -77,5 +63,5 @@ index add722f80a9..24b06bbfcb2 100644 var = get_make_variable( make, name ); if (!var) return NULL; -- -2.12.2 +2.13.1 diff --git a/patches/d3dx9_36-Dummy_Skininfo/0001-d3dx9_36-Return-dummy-skininfo-interface-in-D3DXLoad.patch b/patches/d3dx9_36-Dummy_Skininfo/0001-d3dx9_36-Return-dummy-skininfo-interface-in-D3DXLoad.patch index 380f7495..3a2813cc 100644 --- a/patches/d3dx9_36-Dummy_Skininfo/0001-d3dx9_36-Return-dummy-skininfo-interface-in-D3DXLoad.patch +++ b/patches/d3dx9_36-Dummy_Skininfo/0001-d3dx9_36-Return-dummy-skininfo-interface-in-D3DXLoad.patch @@ -1,4 +1,4 @@ -From e9bbd2e5104f672874687a0d9fa7edffaf110cbb Mon Sep 17 00:00:00 2001 +From c20687718ab550c2f8b481ebad484986cdd588e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Tue, 28 Jul 2015 17:26:09 +0200 Subject: d3dx9_36: Return dummy skininfo interface in D3DXLoadSkinMeshFromXof @@ -11,18 +11,18 @@ Subject: d3dx9_36: Return dummy skininfo interface in D3DXLoadSkinMeshFromXof 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/dlls/d3dx9_36/d3dx9_private.h b/dlls/d3dx9_36/d3dx9_private.h -index 62213acba51..6329ba64273 100644 +index 9c1a6b23a49..f07173cda23 100644 --- a/dlls/d3dx9_36/d3dx9_private.h +++ b/dlls/d3dx9_36/d3dx9_private.h -@@ -273,4 +273,6 @@ HRESULT d3dx_param_eval_set_shader_constants(ID3DXEffectStateManager *manager, s - struct d3dx_param_eval *peval, BOOL update_all) DECLSPEC_HIDDEN; - BOOL is_param_eval_input_dirty(struct d3dx_param_eval *peval, ULONG64 update_version) DECLSPEC_HIDDEN; +@@ -367,4 +367,6 @@ struct ctab_constant { + const struct ctab_constant *d3dx_shader_get_ctab_constant(ID3DXConstantTable *iface, + D3DXHANDLE constant) DECLSPEC_HIDDEN; +HRESULT create_dummy_skin(ID3DXSkinInfo **iface) DECLSPEC_HIDDEN; + #endif /* __WINE_D3DX9_PRIVATE_H */ diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c -index c26aa7271f0..b70f4dcaa44 100644 +index 1ddb4c300cb..1d41b775c1b 100644 --- a/dlls/d3dx9_36/mesh.c +++ b/dlls/d3dx9_36/mesh.c @@ -3332,6 +3332,13 @@ static HRESULT parse_mesh(ID3DXFileData *filedata, struct mesh_data *mesh_data, @@ -77,5 +77,5 @@ index f197d33582a..bed4b9f49d2 100644 + return D3D_OK; +} -- -2.12.2 +2.13.1 diff --git a/patches/ntdll-RtlCaptureContext/0001-ntdll-Clear-upper-WORD-of-segment-registers-in-RtlCa.patch b/patches/ntdll-RtlCaptureContext/0001-ntdll-Clear-upper-WORD-of-segment-registers-in-RtlCa.patch new file mode 100644 index 00000000..97175e06 --- /dev/null +++ b/patches/ntdll-RtlCaptureContext/0001-ntdll-Clear-upper-WORD-of-segment-registers-in-RtlCa.patch @@ -0,0 +1,46 @@ +From 3966912cf531178531910e730e2e88bc05448556 Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Wed, 19 Jul 2017 01:20:01 +0200 +Subject: ntdll: Clear upper WORD of segment registers in RtlCaptureContext. + +--- + dlls/ntdll/signal_i386.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c +index 9a25468308b..24f797ffaf9 100644 +--- a/dlls/ntdll/signal_i386.c ++++ b/dlls/ntdll/signal_i386.c +@@ -1241,9 +1241,13 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4, + "movl 8(%esp),%eax\n\t" /* context */ + "movl $0x10007,(%eax)\n\t" /* context->ContextFlags */ + "movw %gs,0x8c(%eax)\n\t" /* context->SegGs */ ++ "movw $0,0x8e(%eax)\n\t" + "movw %fs,0x90(%eax)\n\t" /* context->SegFs */ ++ "movw $0,0x92(%eax)\n\t" + "movw %es,0x94(%eax)\n\t" /* context->SegEs */ ++ "movw $0,0x96(%eax)\n\t" + "movw %ds,0x98(%eax)\n\t" /* context->SegDs */ ++ "movw $0,0x9a(%eax)\n\t" + "movl %edi,0x9c(%eax)\n\t" /* context->Edi */ + "movl %esi,0xa0(%eax)\n\t" /* context->Esi */ + "movl %ebx,0xa4(%eax)\n\t" /* context->Ebx */ +@@ -1253,6 +1257,7 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4, + "movl 4(%esp),%edx\n\t" + "movl %edx,0xb8(%eax)\n\t" /* context->Eip */ + "movw %cs,0xbc(%eax)\n\t" /* context->SegCs */ ++ "movw $0,0xbe(%eax)\n\t" + "pushfl\n\t" + __ASM_CFI(".cfi_adjust_cfa_offset 4\n\t") + "popl 0xc0(%eax)\n\t" /* context->EFlags */ +@@ -1260,6 +1265,7 @@ __ASM_STDCALL_FUNC( RtlCaptureContext, 4, + "leal 8(%esp),%edx\n\t" + "movl %edx,0xc4(%eax)\n\t" /* context->Esp */ + "movw %ss,0xc8(%eax)\n\t" /* context->SegSs */ ++ "movw $0,0xca(%eax)\n\t" + "popl 0xb0(%eax)\n\t" /* context->Eax */ + __ASM_CFI(".cfi_adjust_cfa_offset -4\n\t") + "ret $4" ) +-- +2.13.1 + diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index a8c59701..e842a43c 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "a8b5fdda3214e4fd52682aefaa093cd45766580e" + echo "9118512135a1aac6969bf575a0656855ba84ef11" } # Show version information @@ -269,6 +269,7 @@ patch_enable_all () enable_ntdll_ProcessPriorityClass="$1" enable_ntdll_ProcessQuotaLimits="$1" enable_ntdll_Purist_Mode="$1" + enable_ntdll_RtlCaptureContext="$1" enable_ntdll_RtlCaptureStackBackTrace="$1" enable_ntdll_RtlGetUnloadEventTraceEx="$1" enable_ntdll_RtlIpStringToAddress_Stubs="$1" @@ -472,6 +473,7 @@ patch_enable_all () enable_winhlp32_Flex_Workaround="$1" enable_winhttp_Accept_Headers="$1" enable_winhttp_System_Proxy_Autoconfig="$1" + enable_winhttp_host_t="$1" enable_wininet_Cleanup="$1" enable_wininet_Http_Decoding="$1" enable_wininet_InternetCrackUrlW="$1" @@ -1065,6 +1067,9 @@ patch_enable () ntdll-Purist_Mode) enable_ntdll_Purist_Mode="$2" ;; + ntdll-RtlCaptureContext) + enable_ntdll_RtlCaptureContext="$2" + ;; ntdll-RtlCaptureStackBackTrace) enable_ntdll_RtlCaptureStackBackTrace="$2" ;; @@ -1674,6 +1679,9 @@ patch_enable () winhttp-System_Proxy_Autoconfig) enable_winhttp_System_Proxy_Autoconfig="$2" ;; + winhttp-host_t) + enable_winhttp_host_t="$2" + ;; wininet-Cleanup) enable_wininet_Cleanup="$2" ;; @@ -2135,6 +2143,13 @@ if test "$enable_wininet_Redirect" -eq 1; then enable_wininet_Cleanup=1 fi +if test "$enable_winhttp_host_t" -eq 1; then + if test "$enable_winhttp_Accept_Headers" -gt 1; then + abort "Patchset winhttp-Accept_Headers disabled, but winhttp-host_t depends on that." + fi + enable_winhttp_Accept_Headers=1 +fi + if test "$enable_winex11_WM_WINDOWPOSCHANGING" -eq 1; then if test "$enable_winex11__NET_ACTIVE_WINDOW" -gt 1; then abort "Patchset winex11-_NET_ACTIVE_WINDOW disabled, but winex11-WM_WINDOWPOSCHANGING depends on that." @@ -2757,8 +2772,8 @@ fi # | dlls/dwrite/layout.c, dlls/fusion/tests/asmenum.c, dlls/fusion/tests/asmname.c, dlls/kernel32/oldconfig.c, # | dlls/kernel32/tests/heap.c, dlls/msxml3/schema.c, dlls/netapi32/netapi32.c, dlls/ole32/storage32.h, # | dlls/oleaut32/oleaut.c, dlls/rpcrt4/cstub.c, dlls/rsaenh/rsaenh.c, dlls/shell32/shfldr_fs.c, dlls/vbscript/vbdisp.c, -# | dlls/winealsa.drv/mmdevdrv.c, dlls/wined3d/glsl_shader.c, dlls/ws2_32/tests/sock.c, dlls/wsdapi/msgparams.c, -# | include/wine/list.h, include/wine/rbtree.h, include/winnt.h, tools/makedep.c +# | dlls/wined3d/glsl_shader.c, dlls/ws2_32/tests/sock.c, dlls/wsdapi/msgparams.c, include/wine/list.h, +# | include/wine/rbtree.h, include/winnt.h, tools/makedep.c # | if test "$enable_Compiler_Warnings" -eq 1; then patch_apply Compiler_Warnings/0001-ole32-Fix-compilation-with-recent-versions-of-gcc.patch @@ -6350,6 +6365,18 @@ if test "$enable_ntdll_Purist_Mode" -eq 1; then ) >> "$patchlist" fi +# Patchset ntdll-RtlCaptureContext +# | +# | Modified files: +# | * dlls/ntdll/signal_i386.c +# | +if test "$enable_ntdll_RtlCaptureContext" -eq 1; then + patch_apply ntdll-RtlCaptureContext/0001-ntdll-Clear-upper-WORD-of-segment-registers-in-RtlCa.patch + ( + printf '%s\n' '+ { "Sebastian Lackner", "ntdll: Clear upper WORD of segment registers in RtlCaptureContext.", 1 },'; + ) >> "$patchlist" +fi + # Patchset ntdll-RtlCaptureStackBackTrace # | # | This patchset fixes the following Wine bugs: @@ -7163,7 +7190,7 @@ fi # | * [#38322] Reset debug registers when creating threads # | # | Modified files: -# | * dlls/ntdll/signal_i386.c, dlls/ntdll/tests/exception.c, server/thread.c +# | * dlls/ntdll/tests/exception.c, server/thread.c # | if test "$enable_server_Debug_Registers" -eq 1; then patch_apply server-Debug_Registers/0001-server-Reset-debug-registers-when-creating-threads.patch @@ -9755,6 +9782,21 @@ if test "$enable_winhttp_System_Proxy_Autoconfig" -eq 1; then ) >> "$patchlist" fi +# Patchset winhttp-host_t +# | +# | This patchset has the following (direct or indirect) dependencies: +# | * winhttp-Accept_Headers +# | +# | Modified files: +# | * dlls/winhttp/net.c, dlls/winhttp/request.c, dlls/winhttp/winhttp_private.h +# | +if test "$enable_winhttp_host_t" -eq 1; then + patch_apply winhttp-host_t/0001-winhttp-Rename-host_t-to-hostdata_t.patch + ( + printf '%s\n' '+ { "Sebastian Lackner", "winhttp: Rename host_t to hostdata_t.", 1 },'; + ) >> "$patchlist" +fi + # Patchset wininet-Cleanup # | # | Modified files: diff --git a/patches/server-Debug_Registers/0001-server-Reset-debug-registers-when-creating-threads.patch b/patches/server-Debug_Registers/0001-server-Reset-debug-registers-when-creating-threads.patch index 8adaf5a4..5ebae2a2 100644 --- a/patches/server-Debug_Registers/0001-server-Reset-debug-registers-when-creating-threads.patch +++ b/patches/server-Debug_Registers/0001-server-Reset-debug-registers-when-creating-threads.patch @@ -1,57 +1,18 @@ -From efe0c98d7107a86987c7a34dbd071c527c248fc9 Mon Sep 17 00:00:00 2001 +From d825f3bc955097179df614a4fc7f1aa2c41902d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 6 May 2017 00:10:01 +0200 Subject: server: Reset debug registers when creating threads. --- - dlls/ntdll/signal_i386.c | 13 ------------- dlls/ntdll/tests/exception.c | 29 ++++++++++++++++++++++++----- server/thread.c | 5 +++++ - 3 files changed, 29 insertions(+), 18 deletions(-) + 2 files changed, 29 insertions(+), 5 deletions(-) -diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c -index 93d9418527..ac98ed0dba 100644 ---- a/dlls/ntdll/signal_i386.c -+++ b/dlls/ntdll/signal_i386.c -@@ -2375,7 +2375,6 @@ NTSTATUS signal_alloc_thread( TEB **teb ) - { - static size_t sigstack_zero_bits; - struct ntdll_thread_data *thread_data; -- struct ntdll_thread_data *parent_data = NULL; - SIZE_T size; - void *addr = NULL; - NTSTATUS status; -@@ -2389,7 +2388,6 @@ NTSTATUS signal_alloc_thread( TEB **teb ) - signal_stack_mask = (1 << sigstack_zero_bits) - 1; - signal_stack_size = (1 << sigstack_zero_bits) - teb_size; - } -- else parent_data = ntdll_get_thread_data(); - - size = signal_stack_mask + 1; - if (!(status = NtAllocateVirtualMemory( NtCurrentProcess(), &addr, sigstack_zero_bits, -@@ -2405,17 +2403,6 @@ NTSTATUS signal_alloc_thread( TEB **teb ) - NtFreeVirtualMemory( NtCurrentProcess(), &addr, &size, MEM_RELEASE ); - status = STATUS_TOO_MANY_THREADS; - } -- if (parent_data) -- { -- /* inherit debug registers from parent thread */ -- thread_data->dr0 = parent_data->dr0; -- thread_data->dr1 = parent_data->dr1; -- thread_data->dr2 = parent_data->dr2; -- thread_data->dr3 = parent_data->dr3; -- thread_data->dr6 = parent_data->dr6; -- thread_data->dr7 = parent_data->dr7; -- } -- - } - return status; - } diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c -index ab4b3e4294..cf3b235b2f 100644 +index 27eac2748cb..04f3ac5ee20 100644 --- a/dlls/ntdll/tests/exception.c +++ b/dlls/ntdll/tests/exception.c -@@ -2002,8 +2002,23 @@ static void test___C_specific_handler(void) +@@ -1991,8 +1991,23 @@ static void test___C_specific_handler(void) #if defined(__i386__) || defined(__x86_64__) @@ -76,7 +37,7 @@ index ab4b3e4294..cf3b235b2f 100644 return 0; } -@@ -2060,8 +2075,10 @@ static void test_debug_registers(void) +@@ -2049,8 +2064,10 @@ static void test_debug_registers(void) ctx.Dr7 = 0x00000400; status = pNtSetContextThread(GetCurrentThread(), &ctx); ok(status == STATUS_SUCCESS, "NtSetContextThread failed with %x\n", status); @@ -88,7 +49,7 @@ index ab4b3e4294..cf3b235b2f 100644 ctx.ContextFlags = CONTEXT_DEBUG_REGISTERS; status = pNtGetContextThread(thread, &ctx); ok(status == STATUS_SUCCESS, "NtGetContextThread failed with %x\n", status); -@@ -2069,9 +2086,11 @@ static void test_debug_registers(void) +@@ -2058,9 +2075,11 @@ static void test_debug_registers(void) ok(!ctx.Dr1, "expected 0, got %lx\n", (DWORD_PTR)ctx.Dr1); ok(!ctx.Dr2, "expected 0, got %lx\n", (DWORD_PTR)ctx.Dr2); ok(!ctx.Dr3, "expected 0, got %lx\n", (DWORD_PTR)ctx.Dr3); @@ -104,10 +65,10 @@ index ab4b3e4294..cf3b235b2f 100644 } diff --git a/server/thread.c b/server/thread.c -index c92657e060..e4baf3c11f 100644 +index 70f5f28739e..a61c542a9cf 100644 --- a/server/thread.c +++ b/server/thread.c -@@ -1299,6 +1299,7 @@ DECL_HANDLER(new_thread) +@@ -1259,6 +1259,7 @@ DECL_HANDLER(new_thread) /* initialize a new thread */ DECL_HANDLER(init_thread) { @@ -115,7 +76,7 @@ index c92657e060..e4baf3c11f 100644 struct process *process = current->process; int wait_fd, reply_fd; -@@ -1357,6 +1358,10 @@ DECL_HANDLER(init_thread) +@@ -1317,6 +1318,10 @@ DECL_HANDLER(init_thread) } if (process->unix_pid != current->unix_pid) process->unix_pid = -1; /* can happen with linuxthreads */ @@ -127,5 +88,5 @@ index c92657e060..e4baf3c11f 100644 generate_debug_event( current, CREATE_THREAD_DEBUG_EVENT, &req->entry ); set_thread_affinity( current, current->affinity ); -- -2.12.2 +2.13.1 diff --git a/patches/winhttp-Accept_Headers/0001-winhttp-Fix-handling-of-Accept-headers.patch b/patches/winhttp-Accept_Headers/0001-winhttp-Fix-handling-of-Accept-headers.patch index 8cf8cd05..f6cec6d6 100644 --- a/patches/winhttp-Accept_Headers/0001-winhttp-Fix-handling-of-Accept-headers.patch +++ b/patches/winhttp-Accept_Headers/0001-winhttp-Fix-handling-of-Accept-headers.patch @@ -1,4 +1,4 @@ -From 9cb94401c419b2e3f9d95a8dc5ce171da398bd66 Mon Sep 17 00:00:00 2001 +From 8f902d761567ba0a7972ad998ebb0ccfa5db537d Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 21 Dec 2016 00:54:37 +0100 Subject: winhttp: Fix handling of Accept headers. @@ -10,10 +10,10 @@ Subject: winhttp: Fix handling of Accept headers. 3 files changed, 7 insertions(+), 32 deletions(-) diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c -index db6d12d027..2447efaec0 100644 +index 47cc9066f89..aaa6a5e7905 100644 --- a/dlls/winhttp/request.c +++ b/dlls/winhttp/request.c -@@ -399,7 +399,7 @@ static BOOL delete_header( request_t *request, DWORD index ) +@@ -401,7 +401,7 @@ static BOOL delete_header( request_t *request, DWORD index ) return TRUE; } @@ -22,7 +22,7 @@ index db6d12d027..2447efaec0 100644 { int index; header_t hdr; -@@ -1325,16 +1325,11 @@ static BOOL send_request( request_t *request, LPCWSTR headers, DWORD headers_len +@@ -1521,16 +1521,11 @@ static BOOL send_request( request_t *request, LPCWSTR headers, DWORD headers_len WCHAR *req = NULL; char *req_ascii; int bytes_sent; @@ -41,7 +41,7 @@ index db6d12d027..2447efaec0 100644 process_header( request, attr_user_agent, session->agent, WINHTTP_ADDREQ_FLAG_ADD_IF_NEW, TRUE ); diff --git a/dlls/winhttp/session.c b/dlls/winhttp/session.c -index 514a56daa9..a2db716000 100644 +index 877794af45b..c4351a83b8a 100644 --- a/dlls/winhttp/session.c +++ b/dlls/winhttp/session.c @@ -599,8 +599,6 @@ static void request_destroy( object_header_t *hdr ) @@ -53,7 +53,7 @@ index 514a56daa9..a2db716000 100644 for (i = 0; i < TARGET_MAX; i++) { for (j = 0; j < SCHEME_MAX; j++) -@@ -1023,32 +1021,14 @@ static const object_vtbl_t request_vtbl = +@@ -1026,32 +1024,14 @@ static const object_vtbl_t request_vtbl = static BOOL store_accept_types( request_t *request, const WCHAR **accept_types ) { @@ -90,10 +90,10 @@ index 514a56daa9..a2db716000 100644 } return TRUE; diff --git a/dlls/winhttp/winhttp_private.h b/dlls/winhttp/winhttp_private.h -index 46c2aaa02d..b9e2fe664d 100644 +index dd8c4efd938..180b1c4ba74 100644 --- a/dlls/winhttp/winhttp_private.h +++ b/dlls/winhttp/winhttp_private.h -@@ -207,8 +207,6 @@ typedef struct +@@ -220,8 +220,6 @@ typedef struct char read_buf[8192]; /* buffer for already read but not returned data */ header_t *headers; DWORD num_headers; @@ -102,9 +102,9 @@ index 46c2aaa02d..b9e2fe664d 100644 struct authinfo *authinfo; struct authinfo *proxy_authinfo; HANDLE task_wait; -@@ -303,6 +301,8 @@ void delete_domain( domain_t * ) DECLSPEC_HIDDEN; - BOOL set_server_for_hostname( connect_t *, LPCWSTR, INTERNET_PORT ) DECLSPEC_HIDDEN; - void destroy_authinfo( struct authinfo * ) DECLSPEC_HIDDEN; +@@ -316,6 +314,8 @@ void destroy_authinfo( struct authinfo * ) DECLSPEC_HIDDEN; + + void release_host( host_t *host ) DECLSPEC_HIDDEN; +BOOL process_header( request_t *request, LPCWSTR field, LPCWSTR value, DWORD flags, BOOL request_only ) DECLSPEC_HIDDEN; + @@ -112,5 +112,5 @@ index 46c2aaa02d..b9e2fe664d 100644 void release_typelib( void ) DECLSPEC_HIDDEN; -- -2.11.0 +2.13.1 diff --git a/patches/winhttp-host_t/0001-winhttp-Rename-host_t-to-hostdata_t.patch b/patches/winhttp-host_t/0001-winhttp-Rename-host_t-to-hostdata_t.patch new file mode 100644 index 00000000..5dafd606 --- /dev/null +++ b/patches/winhttp-host_t/0001-winhttp-Rename-host_t-to-hostdata_t.patch @@ -0,0 +1,116 @@ +From deba3b50b155a71af0a8cd449d953317ff691c13 Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Wed, 19 Jul 2017 01:21:24 +0200 +Subject: winhttp: Rename host_t to hostdata_t. + +--- + dlls/winhttp/net.c | 2 +- + dlls/winhttp/request.c | 10 +++++----- + dlls/winhttp/winhttp_private.h | 8 ++++---- + 3 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/dlls/winhttp/net.c b/dlls/winhttp/net.c +index 8c603291b20..c9aa6d48b27 100644 +--- a/dlls/winhttp/net.c ++++ b/dlls/winhttp/net.c +@@ -299,7 +299,7 @@ void netconn_unload( void ) + #endif + } + +-netconn_t *netconn_create( host_t *host, const struct sockaddr_storage *sockaddr, int timeout ) ++netconn_t *netconn_create( hostdata_t *host, const struct sockaddr_storage *sockaddr, int timeout ) + { + netconn_t *conn; + unsigned int addr_len; +diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c +index aaa6a5e7905..2ec7511146f 100644 +--- a/dlls/winhttp/request.c ++++ b/dlls/winhttp/request.c +@@ -1004,7 +1004,7 @@ static CRITICAL_SECTION connection_pool_cs = { &connection_pool_debug, -1, 0, 0, + + static struct list connection_pool = LIST_INIT( connection_pool ); + +-void release_host( host_t *host ) ++void release_host( hostdata_t *host ) + { + LONG ref; + +@@ -1024,7 +1024,7 @@ static DWORD WINAPI connection_collector(void *arg) + { + unsigned int remaining_connections; + netconn_t *netconn, *next_netconn; +- host_t *host, *next_host; ++ hostdata_t *host, *next_host; + ULONGLONG now; + + do +@@ -1036,7 +1036,7 @@ static DWORD WINAPI connection_collector(void *arg) + + EnterCriticalSection(&connection_pool_cs); + +- LIST_FOR_EACH_ENTRY_SAFE(host, next_host, &connection_pool, host_t, entry) ++ LIST_FOR_EACH_ENTRY_SAFE(host, next_host, &connection_pool, hostdata_t, entry) + { + LIST_FOR_EACH_ENTRY_SAFE(netconn, next_netconn, &host->connections, netconn_t, entry) + { +@@ -1095,7 +1095,7 @@ static void cache_connection( netconn_t *netconn ) + static BOOL open_connection( request_t *request ) + { + BOOL is_secure = request->hdr.flags & WINHTTP_FLAG_SECURE; +- host_t *host = NULL, *iter; ++ hostdata_t *host = NULL, *iter; + netconn_t *netconn = NULL; + connect_t *connect; + WCHAR *addressW = NULL; +@@ -1109,7 +1109,7 @@ static BOOL open_connection( request_t *request ) + + EnterCriticalSection( &connection_pool_cs ); + +- LIST_FOR_EACH_ENTRY( iter, &connection_pool, host_t, entry ) ++ LIST_FOR_EACH_ENTRY( iter, &connection_pool, hostdata_t, entry ) + { + if (iter->port == port && !strcmpW( connect->servername, iter->hostname ) && !is_secure == !iter->secure) + { +diff --git a/dlls/winhttp/winhttp_private.h b/dlls/winhttp/winhttp_private.h +index 180b1c4ba74..bda7b060585 100644 +--- a/dlls/winhttp/winhttp_private.h ++++ b/dlls/winhttp/winhttp_private.h +@@ -103,7 +103,7 @@ typedef struct { + INTERNET_PORT port; + BOOL secure; + struct list connections; +-} host_t; ++} hostdata_t; + + typedef struct + { +@@ -142,7 +142,7 @@ typedef struct + int socket; + struct sockaddr_storage sockaddr; + BOOL secure; /* SSL active on connection? */ +- host_t *host; ++ hostdata_t *host; + ULONGLONG keep_until; + CtxtHandle ssl_ctx; + SecPkgContext_StreamSizes ssl_sizes; +@@ -293,7 +293,7 @@ void send_callback( object_header_t *, DWORD, LPVOID, DWORD ) DECLSPEC_HIDDEN; + void close_connection( request_t * ) DECLSPEC_HIDDEN; + + BOOL netconn_close( netconn_t * ) DECLSPEC_HIDDEN; +-netconn_t *netconn_create( host_t *, const struct sockaddr_storage *, int ) DECLSPEC_HIDDEN; ++netconn_t *netconn_create( hostdata_t *, const struct sockaddr_storage *, int ) DECLSPEC_HIDDEN; + void netconn_unload( void ) DECLSPEC_HIDDEN; + ULONG netconn_query_data_available( netconn_t * ) DECLSPEC_HIDDEN; + BOOL netconn_recv( netconn_t *, void *, size_t, int, int * ) DECLSPEC_HIDDEN; +@@ -312,7 +312,7 @@ void delete_domain( domain_t * ) DECLSPEC_HIDDEN; + BOOL set_server_for_hostname( connect_t *, LPCWSTR, INTERNET_PORT ) DECLSPEC_HIDDEN; + void destroy_authinfo( struct authinfo * ) DECLSPEC_HIDDEN; + +-void release_host( host_t *host ) DECLSPEC_HIDDEN; ++void release_host( hostdata_t *host ) DECLSPEC_HIDDEN; + + BOOL process_header( request_t *request, LPCWSTR field, LPCWSTR value, DWORD flags, BOOL request_only ) DECLSPEC_HIDDEN; + +-- +2.13.1 + diff --git a/patches/winhttp-host_t/definition b/patches/winhttp-host_t/definition new file mode 100644 index 00000000..4795ab54 --- /dev/null +++ b/patches/winhttp-host_t/definition @@ -0,0 +1 @@ +Depends: winhttp-Accept_Headers