Jacek Caban : wininet: Call SendCallback in destructor instead of InternetCloseHandle.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Oct 30 05:22:30 CST 2006


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sun Oct 29 18:58:06 2006 +0100

wininet: Call SendCallback in destructor instead of InternetCloseHandle.

---

 dlls/wininet/ftp.c      |   12 ++++++++++++
 dlls/wininet/http.c     |    8 ++++++++
 dlls/wininet/internet.c |   10 ++++------
 3 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/dlls/wininet/ftp.c b/dlls/wininet/ftp.c
index c615611..ded0155 100644
--- a/dlls/wininet/ftp.c
+++ b/dlls/wininet/ftp.c
@@ -2689,6 +2689,10 @@ static void FTP_CloseSessionHandle(LPWIN
 
     TRACE("\n");
 
+    INTERNET_SendCallback(hdr, hdr->dwContext,
+                          INTERNET_STATUS_HANDLE_CLOSING, &hdr->hInternet,
+                          sizeof(HINTERNET));
+
     WININET_Release(&lpwfs->lpAppInfo->hdr);
 
     if (lpwfs->download_in_progress != NULL)
@@ -2779,6 +2783,10 @@ static void FTP_CloseFindNextHandle(LPWI
 
     TRACE("\n");
 
+    INTERNET_SendCallback(hdr, hdr->dwContext,
+                          INTERNET_STATUS_HANDLE_CLOSING, &hdr->hInternet,
+                          sizeof(HINTERNET));
+
     WININET_Release(&lpwfn->lpFtpSession->hdr);
 
     for (i = 0; i < lpwfn->size; i++)
@@ -2805,6 +2813,10 @@ static void FTP_CloseFileTransferHandle(
 
     TRACE("\n");
 
+    INTERNET_SendCallback(hdr, hdr->dwContext,
+                          INTERNET_STATUS_HANDLE_CLOSING, &hdr->hInternet,
+                          sizeof(HINTERNET));
+
     WININET_Release(&lpwh->lpFtpSession->hdr);
 
     if (!lpwh->session_deleted)
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index d9aee10..b85185e 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -2939,6 +2939,10 @@ static void HTTP_CloseHTTPRequestHandle(
 
     TRACE("\n");
 
+    INTERNET_SendCallback(hdr, hdr->dwContext,
+                          INTERNET_STATUS_HANDLE_CLOSING, &hdr->hInternet,
+                          sizeof(HINTERNET));
+
     WININET_Release(&lpwhr->hdr);
 
     if (NETCON_connected(&lpwhr->netConnection))
@@ -2973,6 +2977,10 @@ static void HTTP_CloseHTTPSessionHandle(
 
     TRACE("%p\n", lpwhs);
 
+    INTERNET_SendCallback(hdr, hdr->dwContext,
+                          INTERNET_STATUS_HANDLE_CLOSING, &hdr->hInternet,
+                          sizeof(HINTERNET));
+
     WININET_Release(&lpwhs->lpAppInfo->hdr);
 
     HeapFree(GetProcessHeap(), 0, lpwhs->lpszHostName);
diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c
index 2e653b9..7ee0b88 100644
--- a/dlls/wininet/internet.c
+++ b/dlls/wininet/internet.c
@@ -975,6 +975,10 @@ static VOID INTERNET_CloseHandle(LPWININ
 
     TRACE("%p\n",lpwai);
 
+    INTERNET_SendCallback(hdr, hdr->dwContext,
+                          INTERNET_STATUS_HANDLE_CLOSING, &hdr->hInternet,
+                          sizeof(HINTERNET));
+
     HeapFree(GetProcessHeap(), 0, lpwai->lpszAgent);
     HeapFree(GetProcessHeap(), 0, lpwai->lpszProxy);
     HeapFree(GetProcessHeap(), 0, lpwai->lpszProxyBypass);
@@ -1007,12 +1011,6 @@ BOOL WINAPI InternetCloseHandle(HINTERNE
         return FALSE;
     }
 
-    /* FIXME: native appears to send this from the equivalent of
-     * WININET_Release */
-    INTERNET_SendCallback(lpwh, lpwh->dwContext,
-                          INTERNET_STATUS_HANDLE_CLOSING, &hInternet,
-                          sizeof(HINTERNET));
-
     WININET_FreeHandle( hInternet );
     WININET_Release( lpwh );
 




More information about the wine-cvs mailing list