Aric Stewart : wininet: Strip Accept-Encoding from http/1.0 requests.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Jul 27 07:34:48 CDT 2007
Module: wine
Branch: master
Commit: c8dfc02bfb77bb3186fbcad2cef373d580939d55
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c8dfc02bfb77bb3186fbcad2cef373d580939d55
Author: Aric Stewart <aric at codeweavers.com>
Date: Thu Jul 26 08:59:00 2007 -0500
wininet: Strip Accept-Encoding from http/1.0 requests.
---
dlls/wininet/http.c | 25 +++++++++++++++++++++++--
1 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index 71f7800..8c50ec9 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -118,6 +118,7 @@ static BOOL WINAPI HTTP_HttpQueryInfoW( LPWININETHTTPREQW lpwhr, DWORD
lpdwIndex);
static BOOL HTTP_HandleRedirect(LPWININETHTTPREQW lpwhr, LPCWSTR lpszUrl);
static UINT HTTP_DecodeBase64(LPCWSTR base64, LPSTR bin);
+static BOOL HTTP_VerifyValidHeader(LPWININETHTTPREQW lpwhr, LPCWSTR field);
LPHTTPHEADERW HTTP_GetHeader(LPWININETHTTPREQW req, LPCWSTR head)
@@ -636,8 +637,10 @@ static BOOL WINAPI HTTP_HttpAddRequestHeadersW(LPWININETHTTPREQW lpwhr,
pFieldAndValue = HTTP_InterpretHttpHeader(lpszStart);
if (pFieldAndValue)
{
- bSuccess = HTTP_ProcessHeader(lpwhr, pFieldAndValue[0],
- pFieldAndValue[1], dwModifier | HTTP_ADDHDR_FLAG_REQ);
+ bSuccess = HTTP_VerifyValidHeader(lpwhr, pFieldAndValue[0]);
+ if (bSuccess)
+ bSuccess = HTTP_ProcessHeader(lpwhr, pFieldAndValue[0],
+ pFieldAndValue[1], dwModifier | HTTP_ADDHDR_FLAG_REQ);
HTTP_FreeTokens(pFieldAndValue);
}
@@ -3516,6 +3519,24 @@ static BOOL HTTP_DeleteCustomHeader(LPWININETHTTPREQW lpwhr, DWORD index)
return TRUE;
}
+
+/***********************************************************************
+ * HTTP_VerifyValidHeader (internal)
+ *
+ * Verify the given header is not invalid for the given http request
+ *
+ */
+static BOOL HTTP_VerifyValidHeader(LPWININETHTTPREQW lpwhr, LPCWSTR field)
+{
+ BOOL rc = TRUE;
+
+ /* Accept-Encoding is stripped from HTTP/1.0 requests. It is invalid */
+ if (strcmpiW(field,szAccept_Encoding)==0)
+ return FALSE;
+
+ return rc;
+}
+
/***********************************************************************
* IsHostInProxyBypassList (@)
*
More information about the wine-cvs
mailing list