wininet: Return error directly from INTERNET_AsyncCall.

This commit is contained in:
Jacek Caban 2009-12-21 13:57:49 +01:00 committed by Alexandre Julliard
parent 8b805e48fb
commit 88ac3a381b
3 changed files with 20 additions and 13 deletions

View File

@ -217,6 +217,13 @@ static BOOL FTP_FtpGetFileW(ftp_session_t*, LPCWSTR lpszRemoteFile, LPCWSTR lpsz
BOOL fFailIfExists, DWORD dwLocalFlagsAttribute, DWORD dwInternetFlags, BOOL fFailIfExists, DWORD dwLocalFlagsAttribute, DWORD dwInternetFlags,
DWORD_PTR dwContext); DWORD_PTR dwContext);
/* A temporary helper until we get rid of INTERNET_GetLastError calls */
static BOOL res_to_le(DWORD res)
{
if(res != ERROR_SUCCESS)
INTERNET_SetLastError(res);
return res == ERROR_SUCCESS;
}
/*********************************************************************** /***********************************************************************
* FtpPutFileA (WININET.@) * FtpPutFileA (WININET.@)
@ -319,7 +326,7 @@ BOOL WINAPI FtpPutFileW(HINTERNET hConnect, LPCWSTR lpszLocalFile,
req->dwFlags = dwFlags; req->dwFlags = dwFlags;
req->dwContext = dwContext; req->dwContext = dwContext;
r = INTERNET_AsyncCall(&workRequest); r = res_to_le(INTERNET_AsyncCall(&workRequest));
} }
else else
{ {
@ -489,7 +496,7 @@ BOOL WINAPI FtpSetCurrentDirectoryW(HINTERNET hConnect, LPCWSTR lpszDirectory)
req = &workRequest.u.FtpSetCurrentDirectoryW; req = &workRequest.u.FtpSetCurrentDirectoryW;
req->lpszDirectory = heap_strdupW(lpszDirectory); req->lpszDirectory = heap_strdupW(lpszDirectory);
r = INTERNET_AsyncCall(&workRequest); r = res_to_le(INTERNET_AsyncCall(&workRequest));
} }
else else
{ {
@ -639,7 +646,7 @@ BOOL WINAPI FtpCreateDirectoryW(HINTERNET hConnect, LPCWSTR lpszDirectory)
req = &workRequest.u.FtpCreateDirectoryW; req = &workRequest.u.FtpCreateDirectoryW;
req->lpszDirectory = heap_strdupW(lpszDirectory); req->lpszDirectory = heap_strdupW(lpszDirectory);
r = INTERNET_AsyncCall(&workRequest); r = res_to_le(INTERNET_AsyncCall(&workRequest));
} }
else else
{ {
@ -1000,7 +1007,7 @@ BOOL WINAPI FtpGetCurrentDirectoryW(HINTERNET hFtpSession, LPWSTR lpszCurrentDir
req->lpszDirectory = lpszCurrentDirectory; req->lpszDirectory = lpszCurrentDirectory;
req->lpdwDirectory = lpdwCurrentDirectory; req->lpdwDirectory = lpdwCurrentDirectory;
r = INTERNET_AsyncCall(&workRequest); r = res_to_le(INTERNET_AsyncCall(&workRequest));
} }
else else
{ {
@ -1658,7 +1665,7 @@ BOOL WINAPI FtpGetFileW(HINTERNET hInternet, LPCWSTR lpszRemoteFile, LPCWSTR lps
req->dwFlags = dwInternetFlags; req->dwFlags = dwInternetFlags;
req->dwContext = dwContext; req->dwContext = dwContext;
r = INTERNET_AsyncCall(&workRequest); r = res_to_le(INTERNET_AsyncCall(&workRequest));
} }
else else
{ {
@ -1847,7 +1854,7 @@ BOOL WINAPI FtpDeleteFileW(HINTERNET hFtpSession, LPCWSTR lpszFileName)
req = &workRequest.u.FtpDeleteFileW; req = &workRequest.u.FtpDeleteFileW;
req->lpszFilename = heap_strdupW(lpszFileName); req->lpszFilename = heap_strdupW(lpszFileName);
r = INTERNET_AsyncCall(&workRequest); r = res_to_le(INTERNET_AsyncCall(&workRequest));
} }
else else
{ {
@ -1992,7 +1999,7 @@ BOOL WINAPI FtpRemoveDirectoryW(HINTERNET hFtpSession, LPCWSTR lpszDirectory)
req = &workRequest.u.FtpRemoveDirectoryW; req = &workRequest.u.FtpRemoveDirectoryW;
req->lpszDirectory = heap_strdupW(lpszDirectory); req->lpszDirectory = heap_strdupW(lpszDirectory);
r = INTERNET_AsyncCall(&workRequest); r = res_to_le(INTERNET_AsyncCall(&workRequest));
} }
else else
{ {
@ -2143,7 +2150,7 @@ BOOL WINAPI FtpRenameFileW(HINTERNET hFtpSession, LPCWSTR lpszSrc, LPCWSTR lpszD
req->lpszSrcFile = heap_strdupW(lpszSrc); req->lpszSrcFile = heap_strdupW(lpszSrc);
req->lpszDestFile = heap_strdupW(lpszDest); req->lpszDestFile = heap_strdupW(lpszDest);
r = INTERNET_AsyncCall(&workRequest); r = res_to_le(INTERNET_AsyncCall(&workRequest));
} }
else else
{ {

View File

@ -3141,7 +3141,7 @@ static DWORD CALLBACK INTERNET_WorkerThreadFunc(LPVOID lpvParam)
* RETURNS * RETURNS
* *
*/ */
BOOL INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest) DWORD INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest)
{ {
BOOL bSuccess; BOOL bSuccess;
LPWORKREQUEST lpNewRequest; LPWORKREQUEST lpNewRequest;
@ -3150,7 +3150,7 @@ BOOL INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest)
lpNewRequest = HeapAlloc(GetProcessHeap(), 0, sizeof(WORKREQUEST)); lpNewRequest = HeapAlloc(GetProcessHeap(), 0, sizeof(WORKREQUEST));
if (!lpNewRequest) if (!lpNewRequest)
return FALSE; return ERROR_OUTOFMEMORY;
*lpNewRequest = *lpWorkRequest; *lpNewRequest = *lpWorkRequest;
@ -3158,10 +3158,10 @@ BOOL INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest)
if (!bSuccess) if (!bSuccess)
{ {
HeapFree(GetProcessHeap(), 0, lpNewRequest); HeapFree(GetProcessHeap(), 0, lpNewRequest);
INTERNET_SetLastError(ERROR_INTERNET_ASYNC_THREAD_FAILED); return ERROR_INTERNET_ASYNC_THREAD_FAILED;
} }
return bSuccess; return ERROR_SUCCESS;
} }

View File

@ -407,7 +407,7 @@ BOOL GetAddress(LPCWSTR lpszServerName, INTERNET_PORT nServerPort,
void INTERNET_SetLastError(DWORD dwError); void INTERNET_SetLastError(DWORD dwError);
DWORD INTERNET_GetLastError(void); DWORD INTERNET_GetLastError(void);
BOOL INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest); DWORD INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest);
LPSTR INTERNET_GetResponseBuffer(void); LPSTR INTERNET_GetResponseBuffer(void);
LPSTR INTERNET_GetNextLine(INT nSocket, LPDWORD dwLen); LPSTR INTERNET_GetNextLine(INT nSocket, LPDWORD dwLen);