Jacek Caban : wininet: Return error directly from INTERNET_AsyncCall.

Alexandre Julliard julliard at winehq.org
Mon Dec 21 09:39:52 CST 2009


Module: wine
Branch: master
Commit: 88ac3a381be22bf2a010c1d0f5b4651da84da7ea
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=88ac3a381be22bf2a010c1d0f5b4651da84da7ea

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Dec 21 13:57:49 2009 +0100

wininet: Return error directly from INTERNET_AsyncCall.

---

 dlls/wininet/ftp.c      |   23 +++++++++++++++--------
 dlls/wininet/internet.c |    8 ++++----
 dlls/wininet/internet.h |    2 +-
 3 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/dlls/wininet/ftp.c b/dlls/wininet/ftp.c
index 6c9765f..1f03199 100644
--- a/dlls/wininet/ftp.c
+++ b/dlls/wininet/ftp.c
@@ -217,6 +217,13 @@ static BOOL FTP_FtpGetFileW(ftp_session_t*, LPCWSTR lpszRemoteFile, LPCWSTR lpsz
         BOOL fFailIfExists, DWORD dwLocalFlagsAttribute, DWORD dwInternetFlags,
         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.@)
@@ -319,7 +326,7 @@ BOOL WINAPI FtpPutFileW(HINTERNET hConnect, LPCWSTR lpszLocalFile,
 	req->dwFlags = dwFlags;
 	req->dwContext = dwContext;
 
-	r = INTERNET_AsyncCall(&workRequest);
+	r = res_to_le(INTERNET_AsyncCall(&workRequest));
     }
     else
     {
@@ -489,7 +496,7 @@ BOOL WINAPI FtpSetCurrentDirectoryW(HINTERNET hConnect, LPCWSTR lpszDirectory)
         req = &workRequest.u.FtpSetCurrentDirectoryW;
         req->lpszDirectory = heap_strdupW(lpszDirectory);
 
-	r = INTERNET_AsyncCall(&workRequest);
+	r = res_to_le(INTERNET_AsyncCall(&workRequest));
     }
     else
     {
@@ -639,7 +646,7 @@ BOOL WINAPI FtpCreateDirectoryW(HINTERNET hConnect, LPCWSTR lpszDirectory)
         req = &workRequest.u.FtpCreateDirectoryW;
         req->lpszDirectory = heap_strdupW(lpszDirectory);
 
-	r = INTERNET_AsyncCall(&workRequest);
+	r = res_to_le(INTERNET_AsyncCall(&workRequest));
     }
     else
     {
@@ -1000,7 +1007,7 @@ BOOL WINAPI FtpGetCurrentDirectoryW(HINTERNET hFtpSession, LPWSTR lpszCurrentDir
 	req->lpszDirectory = lpszCurrentDirectory;
 	req->lpdwDirectory = lpdwCurrentDirectory;
 
-	r = INTERNET_AsyncCall(&workRequest);
+	r = res_to_le(INTERNET_AsyncCall(&workRequest));
     }
     else
     {
@@ -1658,7 +1665,7 @@ BOOL WINAPI FtpGetFileW(HINTERNET hInternet, LPCWSTR lpszRemoteFile, LPCWSTR lps
 	req->dwFlags = dwInternetFlags;
 	req->dwContext = dwContext;
 
-	r = INTERNET_AsyncCall(&workRequest);
+	r = res_to_le(INTERNET_AsyncCall(&workRequest));
     }
     else
     {
@@ -1847,7 +1854,7 @@ BOOL WINAPI FtpDeleteFileW(HINTERNET hFtpSession, LPCWSTR lpszFileName)
         req = &workRequest.u.FtpDeleteFileW;
         req->lpszFilename = heap_strdupW(lpszFileName);
 
-	r = INTERNET_AsyncCall(&workRequest);
+	r = res_to_le(INTERNET_AsyncCall(&workRequest));
     }
     else
     {
@@ -1992,7 +1999,7 @@ BOOL WINAPI FtpRemoveDirectoryW(HINTERNET hFtpSession, LPCWSTR lpszDirectory)
         req = &workRequest.u.FtpRemoveDirectoryW;
         req->lpszDirectory = heap_strdupW(lpszDirectory);
 
-	r = INTERNET_AsyncCall(&workRequest);
+	r = res_to_le(INTERNET_AsyncCall(&workRequest));
     }
     else
     {
@@ -2143,7 +2150,7 @@ BOOL WINAPI FtpRenameFileW(HINTERNET hFtpSession, LPCWSTR lpszSrc, LPCWSTR lpszD
         req->lpszSrcFile = heap_strdupW(lpszSrc);
         req->lpszDestFile = heap_strdupW(lpszDest);
 
-	r = INTERNET_AsyncCall(&workRequest);
+	r = res_to_le(INTERNET_AsyncCall(&workRequest));
     }
     else
     {
diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c
index d749e53..4e6d2b0 100644
--- a/dlls/wininet/internet.c
+++ b/dlls/wininet/internet.c
@@ -3141,7 +3141,7 @@ static DWORD CALLBACK INTERNET_WorkerThreadFunc(LPVOID lpvParam)
  * RETURNS
  *
  */
-BOOL INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest)
+DWORD INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest)
 {
     BOOL bSuccess;
     LPWORKREQUEST lpNewRequest;
@@ -3150,7 +3150,7 @@ BOOL INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest)
 
     lpNewRequest = HeapAlloc(GetProcessHeap(), 0, sizeof(WORKREQUEST));
     if (!lpNewRequest)
-        return FALSE;
+        return ERROR_OUTOFMEMORY;
 
     *lpNewRequest = *lpWorkRequest;
 
@@ -3158,10 +3158,10 @@ BOOL INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest)
     if (!bSuccess)
     {
         HeapFree(GetProcessHeap(), 0, lpNewRequest);
-        INTERNET_SetLastError(ERROR_INTERNET_ASYNC_THREAD_FAILED);
+        return ERROR_INTERNET_ASYNC_THREAD_FAILED;
     }
 
-    return bSuccess;
+    return ERROR_SUCCESS;
 }
 
 
diff --git a/dlls/wininet/internet.h b/dlls/wininet/internet.h
index e5b9dc3..5b05676 100644
--- a/dlls/wininet/internet.h
+++ b/dlls/wininet/internet.h
@@ -407,7 +407,7 @@ BOOL GetAddress(LPCWSTR lpszServerName, INTERNET_PORT nServerPort,
 
 void INTERNET_SetLastError(DWORD dwError);
 DWORD INTERNET_GetLastError(void);
-BOOL INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest);
+DWORD INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest);
 LPSTR INTERNET_GetResponseBuffer(void);
 LPSTR INTERNET_GetNextLine(INT nSocket, LPDWORD dwLen);
 




More information about the wine-cvs mailing list