wininet: Correct the case where Content-Length is set as well as Transfer-Encoding == chunked.
This commit is contained in:
parent
890c3fd0f6
commit
bade2a31a6
|
@ -3239,6 +3239,8 @@ BOOL WINAPI HTTP_HttpSendRequestW(LPWININETHTTPREQW lpwhr, LPCWSTR lpszHeaders,
|
||||||
{
|
{
|
||||||
DWORD dwBufferSize;
|
DWORD dwBufferSize;
|
||||||
DWORD dwStatusCode;
|
DWORD dwStatusCode;
|
||||||
|
WCHAR encoding[20];
|
||||||
|
static const WCHAR szChunked[] = {'c','h','u','n','k','e','d',0};
|
||||||
|
|
||||||
INTERNET_SendCallback(&lpwhr->hdr, lpwhr->hdr.dwContext,
|
INTERNET_SendCallback(&lpwhr->hdr, lpwhr->hdr.dwContext,
|
||||||
INTERNET_STATUS_RECEIVING_RESPONSE, NULL, 0);
|
INTERNET_STATUS_RECEIVING_RESPONSE, NULL, 0);
|
||||||
|
@ -3264,6 +3266,15 @@ BOOL WINAPI HTTP_HttpSendRequestW(LPWININETHTTPREQW lpwhr, LPCWSTR lpszHeaders,
|
||||||
if (lpwhr->dwContentLength == 0)
|
if (lpwhr->dwContentLength == 0)
|
||||||
HTTP_FinishedReading(lpwhr);
|
HTTP_FinishedReading(lpwhr);
|
||||||
|
|
||||||
|
/* Correct the case where both a Content-Length and Transfer-encoding = chuncked are set */
|
||||||
|
|
||||||
|
dwBufferSize = sizeof(encoding);
|
||||||
|
if (HTTP_HttpQueryInfoW(lpwhr, HTTP_QUERY_TRANSFER_ENCODING, encoding, &dwBufferSize, NULL) &&
|
||||||
|
!strcmpiW(encoding, szChunked))
|
||||||
|
{
|
||||||
|
lpwhr->dwContentLength = -1;
|
||||||
|
}
|
||||||
|
|
||||||
dwBufferSize = sizeof(dwStatusCode);
|
dwBufferSize = sizeof(dwStatusCode);
|
||||||
if (!HTTP_HttpQueryInfoW(lpwhr,HTTP_QUERY_FLAG_NUMBER|HTTP_QUERY_STATUS_CODE,
|
if (!HTTP_HttpQueryInfoW(lpwhr,HTTP_QUERY_FLAG_NUMBER|HTTP_QUERY_STATUS_CODE,
|
||||||
&dwStatusCode,&dwBufferSize,NULL))
|
&dwStatusCode,&dwBufferSize,NULL))
|
||||||
|
|
Loading…
Reference in New Issue