wininet: Store WININETFTPSESSIONW pointer in WININETFTPFILEW.
This commit is contained in:
parent
51ba292716
commit
550ffef212
|
@ -1008,7 +1008,7 @@ HINTERNET FTP_FtpOpenFileW(LPWININETFTPSESSIONW lpwfs,
|
||||||
{
|
{
|
||||||
INT nDataSocket;
|
INT nDataSocket;
|
||||||
BOOL bSuccess = FALSE;
|
BOOL bSuccess = FALSE;
|
||||||
LPWININETFILE lpwh = NULL;
|
LPWININETFTPFILE lpwh = NULL;
|
||||||
LPWININETAPPINFOW hIC = NULL;
|
LPWININETAPPINFOW hIC = NULL;
|
||||||
HINTERNET handle = NULL;
|
HINTERNET handle = NULL;
|
||||||
|
|
||||||
|
@ -1033,7 +1033,7 @@ HINTERNET FTP_FtpOpenFileW(LPWININETFTPSESSIONW lpwfs,
|
||||||
/* Get data socket to server */
|
/* Get data socket to server */
|
||||||
if (bSuccess && FTP_GetDataSocket(lpwfs, &nDataSocket))
|
if (bSuccess && FTP_GetDataSocket(lpwfs, &nDataSocket))
|
||||||
{
|
{
|
||||||
lpwh = HeapAlloc(GetProcessHeap(), 0, sizeof(WININETFILE));
|
lpwh = HeapAlloc(GetProcessHeap(), 0, sizeof(WININETFTPFILE));
|
||||||
lpwh->hdr.htype = WH_HFILE;
|
lpwh->hdr.htype = WH_HFILE;
|
||||||
lpwh->hdr.dwFlags = dwFlags;
|
lpwh->hdr.dwFlags = dwFlags;
|
||||||
lpwh->hdr.dwContext = dwContext;
|
lpwh->hdr.dwContext = dwContext;
|
||||||
|
@ -1043,6 +1043,9 @@ HINTERNET FTP_FtpOpenFileW(LPWININETFTPSESSIONW lpwfs,
|
||||||
lpwh->hdr.lpfnStatusCB = lpwfs->hdr.lpfnStatusCB;
|
lpwh->hdr.lpfnStatusCB = lpwfs->hdr.lpfnStatusCB;
|
||||||
lpwh->nDataSocket = nDataSocket;
|
lpwh->nDataSocket = nDataSocket;
|
||||||
lpwh->session_deleted = FALSE;
|
lpwh->session_deleted = FALSE;
|
||||||
|
|
||||||
|
WININET_AddRef( &lpwfs->hdr );
|
||||||
|
lpwh->lpFtpSession = lpwfs;
|
||||||
|
|
||||||
handle = WININET_AllocHandle( &lpwh->hdr );
|
handle = WININET_AllocHandle( &lpwh->hdr );
|
||||||
if( !handle )
|
if( !handle )
|
||||||
|
@ -2800,12 +2803,14 @@ static void FTP_CloseFindNextHandle(LPWININETHANDLEHEADER hdr)
|
||||||
*/
|
*/
|
||||||
static void FTP_CloseFileTransferHandle(LPWININETHANDLEHEADER hdr)
|
static void FTP_CloseFileTransferHandle(LPWININETHANDLEHEADER hdr)
|
||||||
{
|
{
|
||||||
LPWININETFILE lpwh = (LPWININETFILE) hdr;
|
LPWININETFTPFILE lpwh = (LPWININETFTPFILE) hdr;
|
||||||
LPWININETFTPSESSIONW lpwfs = (LPWININETFTPSESSIONW) lpwh->hdr.lpwhparent;
|
LPWININETFTPSESSIONW lpwfs = lpwh->lpFtpSession;
|
||||||
INT nResCode;
|
INT nResCode;
|
||||||
|
|
||||||
TRACE("\n");
|
TRACE("\n");
|
||||||
|
|
||||||
|
WININET_Release(&lpwh->lpFtpSession->hdr);
|
||||||
|
|
||||||
if (!lpwh->session_deleted)
|
if (!lpwh->session_deleted)
|
||||||
lpwfs->download_in_progress = NULL;
|
lpwfs->download_in_progress = NULL;
|
||||||
|
|
||||||
|
|
|
@ -1703,7 +1703,7 @@ BOOL WINAPI InternetWriteFile(HINTERNET hFile, LPCVOID lpBuffer ,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WH_HFILE:
|
case WH_HFILE:
|
||||||
nSocket = ((LPWININETFILE)lpwh)->nDataSocket;
|
nSocket = ((LPWININETFTPFILE)lpwh)->nDataSocket;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -1745,7 +1745,7 @@ static BOOL INTERNET_ReadFile(LPWININETHANDLEHEADER lpwh, LPVOID lpBuffer,
|
||||||
|
|
||||||
case WH_HFILE:
|
case WH_HFILE:
|
||||||
/* FIXME: FTP should use NETCON_ stuff */
|
/* FIXME: FTP should use NETCON_ stuff */
|
||||||
nSocket = ((LPWININETFILE)lpwh)->nDataSocket;
|
nSocket = ((LPWININETFTPFILE)lpwh)->nDataSocket;
|
||||||
if (nSocket != -1)
|
if (nSocket != -1)
|
||||||
{
|
{
|
||||||
int res = recv(nSocket, lpBuffer, dwNumOfBytesToRead, bWait ? MSG_WAITALL : 0);
|
int res = recv(nSocket, lpBuffer, dwNumOfBytesToRead, bWait ? MSG_WAITALL : 0);
|
||||||
|
|
|
@ -202,22 +202,25 @@ typedef struct
|
||||||
} WININETHTTPREQW, *LPWININETHTTPREQW;
|
} WININETHTTPREQW, *LPWININETHTTPREQW;
|
||||||
|
|
||||||
|
|
||||||
|
struct _WININETFTPSESSIONW;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
WININETHANDLEHEADER hdr;
|
WININETHANDLEHEADER hdr;
|
||||||
|
struct _WININETFTPSESSIONW *lpFtpSession;
|
||||||
BOOL session_deleted;
|
BOOL session_deleted;
|
||||||
int nDataSocket;
|
int nDataSocket;
|
||||||
} WININETFILE, *LPWININETFILE;
|
} WININETFTPFILE, *LPWININETFTPFILE;
|
||||||
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct _WININETFTPSESSIONW
|
||||||
{
|
{
|
||||||
WININETHANDLEHEADER hdr;
|
WININETHANDLEHEADER hdr;
|
||||||
WININETAPPINFOW *lpAppInfo;
|
WININETAPPINFOW *lpAppInfo;
|
||||||
int sndSocket;
|
int sndSocket;
|
||||||
int lstnSocket;
|
int lstnSocket;
|
||||||
int pasvSocket; /* data socket connected by us in case of passive FTP */
|
int pasvSocket; /* data socket connected by us in case of passive FTP */
|
||||||
LPWININETFILE download_in_progress;
|
LPWININETFTPFILE download_in_progress;
|
||||||
struct sockaddr_in socketAddress;
|
struct sockaddr_in socketAddress;
|
||||||
struct sockaddr_in lstnSocketAddress;
|
struct sockaddr_in lstnSocketAddress;
|
||||||
LPWSTR lpszPassword;
|
LPWSTR lpszPassword;
|
||||||
|
|
Loading…
Reference in New Issue