Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
0f117e56
Commit
0f117e56
authored
Aug 23, 2007
by
Misha Koshelev
Committed by
Alexandre Julliard
Aug 23, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wininet: Separate connection closing from object destruction.
parent
4b2f9af9
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
19 additions
and
4 deletions
+19
-4
ftp.c
dlls/wininet/ftp.c
+6
-0
http.c
dlls/wininet/http.c
+6
-4
internet.c
dlls/wininet/internet.c
+6
-0
internet.h
dlls/wininet/internet.h
+1
-0
No files found.
dlls/wininet/ftp.c
View file @
0f117e56
...
...
@@ -1121,6 +1121,7 @@ HINTERNET FTP_FtpOpenFileW(LPWININETFTPSESSIONW lpwfs,
lpwh
->
hdr
.
dwFlags
=
dwFlags
;
lpwh
->
hdr
.
dwContext
=
dwContext
;
lpwh
->
hdr
.
dwRefCount
=
1
;
lpwh
->
hdr
.
close_connection
=
NULL
;
lpwh
->
hdr
.
destroy
=
FTP_CloseFileTransferHandle
;
lpwh
->
hdr
.
lpfnStatusCB
=
lpwfs
->
hdr
.
lpfnStatusCB
;
lpwh
->
nDataSocket
=
nDataSocket
;
...
...
@@ -1897,6 +1898,10 @@ HINTERNET FTP_Connect(LPWININETAPPINFOW hIC, LPCWSTR lpszServerName,
lpwfs
->
hdr
.
dwContext
=
dwContext
;
lpwfs
->
hdr
.
dwInternalFlags
=
dwInternalFlags
;
lpwfs
->
hdr
.
dwRefCount
=
1
;
/* FIXME: Native sends INTERNET_STATUS_CLOSING_CONNECTION and
* INTERNET_STATUS_CONNECTION_CLOSED, need an equivalent FTP_CloseConnection
* function */
lpwfs
->
hdr
.
close_connection
=
NULL
;
lpwfs
->
hdr
.
destroy
=
FTP_CloseSessionHandle
;
lpwfs
->
hdr
.
lpfnStatusCB
=
hIC
->
hdr
.
lpfnStatusCB
;
lpwfs
->
download_in_progress
=
NULL
;
...
...
@@ -3006,6 +3011,7 @@ static HINTERNET FTP_ReceiveFileList(LPWININETFTPSESSIONW lpwfs, INT nSocket, LP
lpwfn
->
hdr
.
htype
=
WH_HFTPFINDNEXT
;
lpwfn
->
hdr
.
dwContext
=
dwContext
;
lpwfn
->
hdr
.
dwRefCount
=
1
;
lpwfn
->
hdr
.
close_connection
=
NULL
;
lpwfn
->
hdr
.
destroy
=
FTP_CloseFindNextHandle
;
lpwfn
->
hdr
.
lpfnStatusCB
=
lpwfs
->
hdr
.
lpfnStatusCB
;
lpwfn
->
index
=
1
;
/* Next index is 1 since we return index 0 */
...
...
dlls/wininet/http.c
View file @
0f117e56
...
...
@@ -103,6 +103,7 @@ struct HttpAuthInfo
BOOL
finished
;
/* finished authenticating */
};
static
void
HTTP_CloseConnection
(
LPWININETHANDLEHEADER
hdr
);
static
void
HTTP_CloseHTTPRequestHandle
(
LPWININETHANDLEHEADER
hdr
);
static
void
HTTP_CloseHTTPSessionHandle
(
LPWININETHANDLEHEADER
hdr
);
static
BOOL
HTTP_OpenConnection
(
LPWININETHTTPREQW
lpwhr
);
...
...
@@ -1363,6 +1364,7 @@ HINTERNET WINAPI HTTP_HttpOpenRequestW(LPWININETHTTPSESSIONW lpwhs,
lpwhr
->
hdr
.
dwFlags
=
dwFlags
;
lpwhr
->
hdr
.
dwContext
=
dwContext
;
lpwhr
->
hdr
.
dwRefCount
=
1
;
lpwhr
->
hdr
.
close_connection
=
HTTP_CloseConnection
;
lpwhr
->
hdr
.
destroy
=
HTTP_CloseHTTPRequestHandle
;
lpwhr
->
hdr
.
lpfnStatusCB
=
lpwhs
->
hdr
.
lpfnStatusCB
;
lpwhr
->
hdr
.
dwInternalFlags
=
lpwhs
->
hdr
.
dwInternalFlags
&
INET_CALLBACKW
;
...
...
@@ -2816,6 +2818,7 @@ HINTERNET HTTP_Connect(LPWININETAPPINFOW hIC, LPCWSTR lpszServerName,
lpwhs
->
hdr
.
dwContext
=
dwContext
;
lpwhs
->
hdr
.
dwInternalFlags
=
dwInternalFlags
|
(
hIC
->
hdr
.
dwInternalFlags
&
INET_CALLBACKW
);
lpwhs
->
hdr
.
dwRefCount
=
1
;
lpwhs
->
hdr
.
close_connection
=
NULL
;
lpwhs
->
hdr
.
destroy
=
HTTP_CloseHTTPSessionHandle
;
lpwhs
->
hdr
.
lpfnStatusCB
=
hIC
->
hdr
.
lpfnStatusCB
;
...
...
@@ -3319,8 +3322,9 @@ static BOOL HTTP_ProcessHeader(LPWININETHTTPREQW lpwhr, LPCWSTR field, LPCWSTR v
* Close socket connection
*
*/
static
VOID
HTTP_CloseConnection
(
LPWININETHTTPREQW
lpwh
r
)
static
void
HTTP_CloseConnection
(
LPWININETHANDLEHEADER
hd
r
)
{
LPWININETHTTPREQW
lpwhr
=
(
LPWININETHTTPREQW
)
hdr
;
LPWININETHTTPSESSIONW
lpwhs
=
NULL
;
LPWININETAPPINFOW
hIC
=
NULL
;
...
...
@@ -3380,7 +3384,7 @@ BOOL HTTP_FinishedReading(LPWININETHTTPREQW lpwhr)
&
dwBufferSize
,
NULL
)
||
strcmpiW
(
szConnectionResponse
,
szKeepAlive
))
{
HTTP_CloseConnection
(
lpwh
r
);
HTTP_CloseConnection
(
&
lpwhr
->
hd
r
);
}
/* FIXME: store data in the URL cache here */
...
...
@@ -3403,8 +3407,6 @@ static void HTTP_CloseHTTPRequestHandle(LPWININETHANDLEHEADER hdr)
WININET_Release
(
&
lpwhr
->
lpHttpSession
->
hdr
);
HTTP_CloseConnection
(
lpwhr
);
HeapFree
(
GetProcessHeap
(),
0
,
lpwhr
->
lpszPath
);
HeapFree
(
GetProcessHeap
(),
0
,
lpwhr
->
lpszVerb
);
HeapFree
(
GetProcessHeap
(),
0
,
lpwhr
->
lpszRawHeaders
);
...
...
dlls/wininet/internet.c
View file @
0f117e56
...
...
@@ -173,6 +173,11 @@ BOOL WININET_Release( LPWININETHANDLEHEADER info )
TRACE
(
"object %p refcount = %d
\n
"
,
info
,
info
->
dwRefCount
);
if
(
!
info
->
dwRefCount
)
{
if
(
info
->
close_connection
)
{
TRACE
(
"closing connection %p
\n
"
,
info
);
info
->
close_connection
(
info
);
}
TRACE
(
"destroying object %p
\n
"
,
info
);
info
->
destroy
(
info
);
}
...
...
@@ -477,6 +482,7 @@ HINTERNET WINAPI InternetOpenW(LPCWSTR lpszAgent, DWORD dwAccessType,
lpwai
->
hdr
.
htype
=
WH_HINIT
;
lpwai
->
hdr
.
dwFlags
=
dwFlags
;
lpwai
->
hdr
.
dwRefCount
=
1
;
lpwai
->
hdr
.
close_connection
=
NULL
;
lpwai
->
hdr
.
destroy
=
INTERNET_CloseHandle
;
lpwai
->
dwAccessType
=
dwAccessType
;
lpwai
->
lpszProxyUsername
=
NULL
;
...
...
dlls/wininet/internet.h
View file @
0f117e56
...
...
@@ -146,6 +146,7 @@ struct _WININETHANDLEHEADER
DWORD
dwError
;
DWORD
dwInternalFlags
;
DWORD
dwRefCount
;
WININET_object_function
close_connection
;
WININET_object_function
destroy
;
INTERNET_STATUS_CALLBACK
lpfnStatusCB
;
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment