Jacek Caban : wininet: Don't use INTERNET_ReadFile in HTTP_DrainContent.
Alexandre Julliard
julliard at winehq.org
Mon Mar 3 06:21:32 CST 2008
Module: wine
Branch: master
Commit: ca39a55e88bac180b573d1cfab21dc01e1d8626d
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ca39a55e88bac180b573d1cfab21dc01e1d8626d
Author: Jacek Caban <jacek at codeweavers.com>
Date: Sun Mar 2 19:55:04 2008 +0100
wininet: Don't use INTERNET_ReadFile in HTTP_DrainContent.
---
dlls/wininet/http.c | 42 +++++++++++++++++++++---------------------
dlls/wininet/internet.c | 2 +-
dlls/wininet/internet.h | 3 ---
3 files changed, 22 insertions(+), 25 deletions(-)
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index 40070fb..eafec2b 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -117,7 +117,7 @@ static BOOL WINAPI HTTP_HttpQueryInfoW( LPWININETHTTPREQW lpwhr, DWORD
static BOOL HTTP_HandleRedirect(LPWININETHTTPREQW lpwhr, LPCWSTR lpszUrl);
static UINT HTTP_DecodeBase64(LPCWSTR base64, LPSTR bin);
static BOOL HTTP_VerifyValidHeader(LPWININETHTTPREQW lpwhr, LPCWSTR field);
-
+static void HTTP_DrainContent(WININETHTTPREQW *req);
LPHTTPHEADERW HTTP_GetHeader(LPWININETHTTPREQW req, LPCWSTR head)
{
@@ -715,25 +715,6 @@ BOOL WINAPI HttpAddRequestHeadersA(HINTERNET hHttpRequest,
return r;
}
-/* read any content returned by the server so that the connection can be
- * reused */
-static void HTTP_DrainContent(LPWININETHTTPREQW lpwhr)
-{
- DWORD bytes_read;
-
- if (!NETCON_connected(&lpwhr->netConnection)) return;
-
- if (lpwhr->dwContentLength == -1)
- NETCON_close(&lpwhr->netConnection);
-
- do
- {
- char buffer[2048];
- if (!INTERNET_ReadFile(&lpwhr->hdr, buffer, sizeof(buffer), &bytes_read, TRUE))
- return;
- } while (bytes_read);
-}
-
/***********************************************************************
* HttpEndRequestA (WININET.@)
*
@@ -1410,7 +1391,7 @@ static DWORD HTTPREQ_SetOption(WININETHANDLEHEADER *hdr, DWORD option, void *buf
return ERROR_INTERNET_INVALID_OPTION;
}
-DWORD HTTPREQ_Read(WININETHTTPREQW *req, void *buffer, DWORD size, DWORD *read, BOOL sync)
+static DWORD HTTPREQ_Read(WININETHTTPREQW *req, void *buffer, DWORD size, DWORD *read, BOOL sync)
{
int bytes_read;
@@ -1692,6 +1673,25 @@ lend:
return handle;
}
+/* read any content returned by the server so that the connection can be
+ * reused */
+static void HTTP_DrainContent(WININETHTTPREQW *req)
+{
+ DWORD bytes_read;
+
+ if (!NETCON_connected(&req->netConnection)) return;
+
+ if (req->dwContentLength == -1)
+ NETCON_close(&req->netConnection);
+
+ do
+ {
+ char buffer[2048];
+ if (HTTPREQ_Read(req, buffer, sizeof(buffer), &bytes_read, TRUE) != ERROR_SUCCESS)
+ return;
+ } while (bytes_read);
+}
+
static const WCHAR szAccept[] = { 'A','c','c','e','p','t',0 };
static const WCHAR szAccept_Charset[] = { 'A','c','c','e','p','t','-','C','h','a','r','s','e','t', 0 };
static const WCHAR szAccept_Encoding[] = { 'A','c','c','e','p','t','-','E','n','c','o','d','i','n','g',0 };
diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c
index b60e175..c0709e6 100644
--- a/dlls/wininet/internet.c
+++ b/dlls/wininet/internet.c
@@ -1700,7 +1700,7 @@ BOOL WINAPI InternetWriteFile(HINTERNET hFile, LPCVOID lpBuffer,
}
-BOOL INTERNET_ReadFile(LPWININETHANDLEHEADER lpwh, LPVOID lpBuffer,
+static BOOL INTERNET_ReadFile(LPWININETHANDLEHEADER lpwh, LPVOID lpBuffer,
DWORD dwNumOfBytesToRead, LPDWORD pdwNumOfBytesRead, BOOL bWait)
{
BOOL retval = FALSE;
diff --git a/dlls/wininet/internet.h b/dlls/wininet/internet.h
index 509fd70..8f81c13 100644
--- a/dlls/wininet/internet.h
+++ b/dlls/wininet/internet.h
@@ -378,9 +378,6 @@ DWORD INTERNET_GetLastError(void);
BOOL INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest);
LPSTR INTERNET_GetResponseBuffer(void);
LPSTR INTERNET_GetNextLine(INT nSocket, LPDWORD dwLen);
-BOOL INTERNET_ReadFile(LPWININETHANDLEHEADER lpwh, LPVOID lpBuffer,
- DWORD dwNumOfBytesToRead, LPDWORD pdwNumOfBytesRead,
- BOOL bWait);
BOOLAPI HTTP_HttpSendRequestW(LPWININETHTTPREQW lpwhr, LPCWSTR lpszHeaders,
DWORD dwHeaderLength, LPVOID lpOptional, DWORD dwOptionalLength,
More information about the wine-cvs
mailing list