Jacek Caban : wininet: Use stored status code in HTTP_HttpSendRequestW.
Alexandre Julliard
julliard at winehq.org
Thu May 3 14:23:49 CDT 2012
Module: wine
Branch: master
Commit: 4cf3f78542db6571aa55e0cebac75bbf0c2c8e1a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4cf3f78542db6571aa55e0cebac75bbf0c2c8e1a
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu May 3 12:19:58 2012 +0200
wininet: Use stored status code in HTTP_HttpSendRequestW.
---
dlls/wininet/http.c | 26 +++++++++++---------------
1 files changed, 11 insertions(+), 15 deletions(-)
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index fae4543..b04a51c 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -4797,7 +4797,6 @@ static DWORD HTTP_HttpSendRequestW(http_request_t *request, LPCWSTR lpszHeaders,
if (bEndRequest)
{
DWORD dwBufferSize;
- DWORD dwStatusCode;
INTERNET_SendCallback(&request->hdr, request->hdr.dwContext,
INTERNET_STATUS_RECEIVING_RESPONSE, NULL, 0);
@@ -4821,11 +4820,6 @@ static DWORD HTTP_HttpSendRequestW(http_request_t *request, LPCWSTR lpszHeaders,
HTTP_ProcessExpires(request);
HTTP_ProcessLastModified(request);
- dwBufferSize = sizeof(dwStatusCode);
- if (HTTP_HttpQueryInfoW(request,HTTP_QUERY_FLAG_NUMBER|HTTP_QUERY_STATUS_CODE,
- &dwStatusCode,&dwBufferSize,NULL) != ERROR_SUCCESS)
- dwStatusCode = 0;
-
res = set_content_length(request);
if(res != ERROR_SUCCESS)
goto lend;
@@ -4836,14 +4830,16 @@ static DWORD HTTP_HttpSendRequestW(http_request_t *request, LPCWSTR lpszHeaders,
{
WCHAR *new_url, szNewLocation[INTERNET_MAX_URL_LENGTH];
dwBufferSize=sizeof(szNewLocation);
- if ((dwStatusCode == HTTP_STATUS_REDIRECT ||
- dwStatusCode == HTTP_STATUS_MOVED ||
- dwStatusCode == HTTP_STATUS_REDIRECT_KEEP_VERB ||
- dwStatusCode == HTTP_STATUS_REDIRECT_METHOD) &&
- HTTP_HttpQueryInfoW(request,HTTP_QUERY_LOCATION,szNewLocation,&dwBufferSize,NULL) == ERROR_SUCCESS)
- {
+ switch(request->status_code) {
+ case HTTP_STATUS_REDIRECT:
+ case HTTP_STATUS_MOVED:
+ case HTTP_STATUS_REDIRECT_KEEP_VERB:
+ case HTTP_STATUS_REDIRECT_METHOD:
+ if(HTTP_HttpQueryInfoW(request,HTTP_QUERY_LOCATION,szNewLocation,&dwBufferSize,NULL) != ERROR_SUCCESS)
+ break;
+
if (strcmpW(request->verb, szGET) && strcmpW(request->verb, szHEAD) &&
- dwStatusCode != HTTP_STATUS_REDIRECT_KEEP_VERB)
+ request->status_code != HTTP_STATUS_REDIRECT_KEEP_VERB)
{
heap_free(request->verb);
request->verb = heap_strdupW(szGET);
@@ -4868,7 +4864,7 @@ static DWORD HTTP_HttpSendRequestW(http_request_t *request, LPCWSTR lpszHeaders,
{
WCHAR szAuthValue[2048];
dwBufferSize=2048;
- if (dwStatusCode == HTTP_STATUS_DENIED)
+ if (request->status_code == HTTP_STATUS_DENIED)
{
LPHTTPHEADERW Host = HTTP_GetHeader(request, hostW);
DWORD dwIndex = 0;
@@ -4892,7 +4888,7 @@ static DWORD HTTP_HttpSendRequestW(http_request_t *request, LPCWSTR lpszHeaders,
request->authInfo = NULL;
}
}
- if (dwStatusCode == HTTP_STATUS_PROXY_AUTH_REQ)
+ if (request->status_code == HTTP_STATUS_PROXY_AUTH_REQ)
{
DWORD dwIndex = 0;
while (HTTP_HttpQueryInfoW(request,HTTP_QUERY_PROXY_AUTHENTICATE,szAuthValue,&dwBufferSize,&dwIndex) == ERROR_SUCCESS)
More information about the wine-cvs
mailing list