Module: wine Branch: master Commit: 085ce269b13978f081b5dd7b70cd898a9e87fe0f URL: http://source.winehq.org/git/wine.git/?a=commit;h=085ce269b13978f081b5dd7b70...
Author: Jacek Caban jacek@codeweavers.com Date: Thu Aug 17 19:09:59 2017 +0200
wininet: Drain content before reusing connection in open_http_connection.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/wininet/http.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index d6fdedd..dc106d8 100644 --- a/dlls/wininet/http.c +++ b/dlls/wininet/http.c @@ -4745,22 +4745,22 @@ static DWORD open_http_connection(http_request_t *request, BOOL *reusing) netconn_t *netconn = NULL; DWORD res;
- reset_data_stream(request); - if (request->netconn) { - if (is_valid_netconn(request->netconn) && NETCON_is_alive(request->netconn)) + if (NETCON_is_alive(request->netconn) && drain_content(request, TRUE) == ERROR_SUCCESS) { + reset_data_stream(request); *reusing = TRUE; return ERROR_SUCCESS; } - else - { - free_netconn(request->netconn); - request->netconn = NULL; - } + + TRACE("freeing netconn\n"); + free_netconn(request->netconn); + request->netconn = NULL; }
+ reset_data_stream(request); + res = HTTP_ResolveName(request); if(res != ERROR_SUCCESS) return res;