From: Torge Matthies <openglfreak@googlemail.com> --- dlls/wininet/http.c | 75 ++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index e5ef9e473e9..7337b9671a3 100644 --- a/dlls/wininet/http.c +++ b/dlls/wininet/http.c @@ -266,6 +266,12 @@ static DWORD WINAPI collect_connections_proc(void *arg) FreeLibraryAndExitThread(WININET_hModule, 0); } +static void send_callback(http_request_t *req, DWORD_PTR dwContext, DWORD dwInternetStatus, LPVOID lpvStatusInfo, + DWORD dwStatusInfoLength) +{ + INTERNET_SendCallback(&req->hdr, dwContext, dwInternetStatus, lpvStatusInfo, dwStatusInfoLength); +} + /*********************************************************************** * HTTP_GetHeader (internal) * @@ -1766,19 +1772,16 @@ static DWORD HTTP_ResolveName(http_request_t *request) if(server->addr_len) return ERROR_SUCCESS; - INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, - INTERNET_STATUS_RESOLVING_NAME, - server->name, - (lstrlenW(server->name)+1) * sizeof(WCHAR)); + send_callback(request, request->hdr.dwContext, INTERNET_STATUS_RESOLVING_NAME, + server->name, (lstrlenW(server->name)+1) * sizeof(WCHAR)); addr_len = sizeof(server->addr); if (!GetAddress(server->name, server->port, (SOCKADDR*)&server->addr, &addr_len, server->addr_str)) return ERROR_INTERNET_NAME_NOT_RESOLVED; server->addr_len = addr_len; - INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, - INTERNET_STATUS_NAME_RESOLVED, - server->addr_str, strlen(server->addr_str)+1); + send_callback(request, request->hdr.dwContext, INTERNET_STATUS_NAME_RESOLVED, + server->addr_str, strlen(server->addr_str)+1); TRACE("resolved %s to %s\n", debugstr_w(server->name), server->addr_str); return ERROR_SUCCESS; @@ -1906,13 +1909,11 @@ static void http_release_netconn(http_request_t *req, BOOL reuse) return; } - INTERNET_SendCallback(&req->hdr, req->hdr.dwContext, - INTERNET_STATUS_CLOSING_CONNECTION, 0, 0); + send_callback(req, req->hdr.dwContext, INTERNET_STATUS_CLOSING_CONNECTION, 0, 0); close_netconn(req->netconn); - INTERNET_SendCallback(&req->hdr, req->hdr.dwContext, - INTERNET_STATUS_CONNECTION_CLOSED, 0, 0); + send_callback(req, req->hdr.dwContext, INTERNET_STATUS_CONNECTION_CLOSED, 0, 0); } static BOOL has_token(const WCHAR *str, const WCHAR *token) @@ -3011,7 +3012,7 @@ static void send_request_complete(http_request_t *req, DWORD_PTR result, DWORD e iar.dwResult = result; iar.dwError = error; - INTERNET_SendCallback(&req->hdr, req->hdr.dwContext, INTERNET_STATUS_REQUEST_COMPLETE, &iar, + send_callback(req, req->hdr.dwContext, INTERNET_STATUS_REQUEST_COMPLETE, &iar, sizeof(INTERNET_ASYNC_RESULT)); } @@ -3199,7 +3200,7 @@ static void async_read_file_proc(task_header_t *hdr) *task->ret_read = read; /* FIXME: We should report bytes transferred before decoding content. */ - INTERNET_SendCallback(&req->hdr, req->hdr.dwContext, INTERNET_STATUS_RESPONSE_RECEIVED, &read, sizeof(read)); + send_callback(req, req->hdr.dwContext, INTERNET_STATUS_RESPONSE_RECEIVED, &read, sizeof(read)); if(res != ERROR_SUCCESS) complete_arg = res; @@ -3312,7 +3313,7 @@ static DWORD HTTPREQ_ReadFile(object_header_t *hdr, void *buf, DWORD size, DWORD if(res == ERROR_SUCCESS && read < size && (!read || !(flags & IRF_NO_WAIT)) && !end_of_read_data(req)) { LeaveCriticalSection(&req->read_section); - INTERNET_SendCallback(&req->hdr, req->hdr.dwContext, INTERNET_STATUS_RECEIVING_RESPONSE, NULL, 0); + send_callback(req, req->hdr.dwContext, INTERNET_STATUS_RECEIVING_RESPONSE, NULL, 0); EnterCriticalSection( &req->read_section ); notify_received = TRUE; @@ -3347,7 +3348,7 @@ static DWORD HTTPREQ_ReadFile(object_header_t *hdr, void *buf, DWORD size, DWORD return res; if(notify_received) - INTERNET_SendCallback(&req->hdr, req->hdr.dwContext, INTERNET_STATUS_RESPONSE_RECEIVED, + send_callback(req, req->hdr.dwContext, INTERNET_STATUS_RESPONSE_RECEIVED, &read, sizeof(read)); return error; } @@ -3357,14 +3358,14 @@ static DWORD HTTPREQ_WriteFile(object_header_t *hdr, const void *buffer, DWORD s DWORD res; http_request_t *request = (http_request_t*)hdr; - INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, INTERNET_STATUS_SENDING_REQUEST, NULL, 0); + send_callback(request, request->hdr.dwContext, INTERNET_STATUS_SENDING_REQUEST, NULL, 0); *written = 0; res = NETCON_send(request->netconn, buffer, size, 0, (LPINT)written); if (res == ERROR_SUCCESS) request->bytesWritten += *written; - INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, INTERNET_STATUS_REQUEST_SENT, written, sizeof(DWORD)); + send_callback(request, request->hdr.dwContext, INTERNET_STATUS_REQUEST_SENT, written, sizeof(DWORD)); return res; } @@ -3400,7 +3401,7 @@ static DWORD HTTPREQ_QueryDataAvailable(object_header_t *hdr, DWORD *available, if(!avail && !end_of_read_data(req)) { LeaveCriticalSection(&req->read_section); - INTERNET_SendCallback(&req->hdr, req->hdr.dwContext, INTERNET_STATUS_RECEIVING_RESPONSE, NULL, 0); + send_callback(req, req->hdr.dwContext, INTERNET_STATUS_RECEIVING_RESPONSE, NULL, 0); EnterCriticalSection( &req->read_section ); notify_received = TRUE; @@ -3425,7 +3426,7 @@ static DWORD HTTPREQ_QueryDataAvailable(object_header_t *hdr, DWORD *available, *available = avail; if(notify_received) - INTERNET_SendCallback(&req->hdr, req->hdr.dwContext, INTERNET_STATUS_RESPONSE_RECEIVED, + send_callback(req, req->hdr.dwContext, INTERNET_STATUS_RESPONSE_RECEIVED, &avail, sizeof(avail)); return error; } @@ -4278,8 +4279,8 @@ static DWORD HTTP_HandleRedirect(http_request_t *request, WCHAR *url) return ERROR_INTERNET_INVALID_URL; } - INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, INTERNET_STATUS_REDIRECT, - url, (url_len + 1) * sizeof(WCHAR)); + send_callback(request, request->hdr.dwContext, INTERNET_STATUS_REDIRECT, + url, (url_len + 1) * sizeof(WCHAR)); if(urlComponents.dwHostNameLength) { BOOL custom_port = FALSE; @@ -4965,10 +4966,10 @@ static DWORD open_http_connection(http_request_t *request, BOOL *reusing) TRACE("connecting to %s, proxy %s\n", debugstr_w(request->server->name), request->proxy ? debugstr_w(request->proxy->name) : "(null)"); - INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, - INTERNET_STATUS_CONNECTING_TO_SERVER, - request->server->addr_str, - strlen(request->server->addr_str)+1); + send_callback(request, request->hdr.dwContext, + INTERNET_STATUS_CONNECTING_TO_SERVER, + request->server->addr_str, + strlen(request->server->addr_str)+1); res = create_netconn(request->proxy ? request->proxy : request->server, request->security_flags, (request->hdr.ErrorMask & INTERNET_ERROR_MASK_COMBINED_SEC_CERT) != 0, @@ -4980,7 +4981,7 @@ static DWORD open_http_connection(http_request_t *request, BOOL *reusing) request->netconn = netconn; - INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, + send_callback(request, request->hdr.dwContext, INTERNET_STATUS_CONNECTED_TO_SERVER, request->server->addr_str, strlen(request->server->addr_str)+1); @@ -5167,8 +5168,7 @@ static DWORD HTTP_HttpSendRequestW(http_request_t *request, LPCWSTR lpszHeaders, free(request_header); TRACE("full request -> %s\n", debugstr_a(ascii_req) ); - INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, - INTERNET_STATUS_SENDING_REQUEST, NULL, 0); + send_callback(request, request->hdr.dwContext, INTERNET_STATUS_SENDING_REQUEST, NULL, 0); NETCON_set_timeout( request->netconn, TRUE, request->hdr.send_timeout ); res = NETCON_send(request->netconn, ascii_req, len, 0, &cnt); @@ -5184,16 +5184,15 @@ static DWORD HTTP_HttpSendRequestW(http_request_t *request, LPCWSTR lpszHeaders, request->bytesWritten = data_len; - INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, - INTERNET_STATUS_REQUEST_SENT, - &len, sizeof(DWORD)); + send_callback(request, request->hdr.dwContext, INTERNET_STATUS_REQUEST_SENT, + &len, sizeof(DWORD)); if (bEndRequest) { DWORD dwBufferSize; - INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, - INTERNET_STATUS_RECEIVING_RESPONSE, NULL, 0); + send_callback(request, request->hdr.dwContext, + INTERNET_STATUS_RECEIVING_RESPONSE, NULL, 0); if (HTTP_GetResponseHeaders(request, &responseLen)) { @@ -5210,9 +5209,9 @@ static DWORD HTTP_HttpSendRequestW(http_request_t *request, LPCWSTR lpszHeaders, continue; } - INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, - INTERNET_STATUS_RESPONSE_RECEIVED, &responseLen, - sizeof(DWORD)); + send_callback(request, request->hdr.dwContext, + INTERNET_STATUS_RESPONSE_RECEIVED, &responseLen, + sizeof(DWORD)); http_process_keep_alive(request); HTTP_ProcessCookies(request); @@ -5405,13 +5404,13 @@ static DWORD HTTP_HttpEndRequestW(http_request_t *request, DWORD dwFlags, DWORD_ return ERROR_INTERNET_OPERATION_CANCELLED; } - INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, + send_callback(request, request->hdr.dwContext, INTERNET_STATUS_RECEIVING_RESPONSE, NULL, 0); if (HTTP_GetResponseHeaders(request, &responseLen) || !responseLen) res = ERROR_HTTP_HEADER_NOT_FOUND; - INTERNET_SendCallback(&request->hdr, request->hdr.dwContext, + send_callback(request, request->hdr.dwContext, INTERNET_STATUS_RESPONSE_RECEIVED, &responseLen, sizeof(DWORD)); /* process cookies here. Is this right? */ -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10223