@@ -603,6 +603,8 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
603
603
LPCWSTR szCaption = static_cast <DownloadParam*>(param)->szCaption ;
604
604
ATL::CStringW szNewCaption;
605
605
606
+ const DWORD dwUrlConnectFlags = INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_KEEP_CONNECTION;
607
+
606
608
if (InfoArray.GetSize () <= 0 )
607
609
{
608
610
MessageBox_LoadString (hMainWnd, IDS_UNABLE_TO_DOWNLOAD);
@@ -709,16 +711,6 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
709
711
if (!hOpen)
710
712
goto end;
711
713
712
- hFile = InternetOpenUrlW (hOpen, InfoArray[iAppId].szUrl .GetString (), NULL , 0 ,
713
- INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_KEEP_CONNECTION,
714
- 0 );
715
-
716
- if (!hFile)
717
- {
718
- MessageBox_LoadString (hMainWnd, IDS_UNABLE_TO_DOWNLOAD2);
719
- goto end;
720
- }
721
-
722
714
dwStatusLen = sizeof (dwStatus);
723
715
724
716
memset (&urlComponents, 0 , sizeof (urlComponents));
@@ -737,6 +729,15 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
737
729
738
730
if (urlComponents.nScheme == INTERNET_SCHEME_HTTP || urlComponents.nScheme == INTERNET_SCHEME_HTTPS)
739
731
{
732
+ hFile = InternetOpenUrlW (hOpen, InfoArray[iAppId].szUrl .GetString (), NULL , 0 ,
733
+ dwUrlConnectFlags,
734
+ 0 );
735
+ if (!hFile)
736
+ {
737
+ MessageBox_LoadString (hMainWnd, IDS_UNABLE_TO_DOWNLOAD2);
738
+ goto end;
739
+ }
740
+
740
741
// query connection
741
742
if (!HttpQueryInfoW (hFile, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &dwStatus, &dwStatusLen, NULL ))
742
743
goto end;
@@ -753,6 +754,16 @@ DWORD WINAPI CDownloadManager::ThreadFunc(LPVOID param)
753
754
754
755
if (urlComponents.nScheme == INTERNET_SCHEME_FTP)
755
756
{
757
+ // force passive mode on FTP
758
+ hFile = InternetOpenUrlW (hOpen, InfoArray[iAppId].szUrl .GetString (), NULL , 0 ,
759
+ dwUrlConnectFlags | INTERNET_FLAG_PASSIVE,
760
+ 0 );
761
+ if (!hFile)
762
+ {
763
+ MessageBox_LoadString (hMainWnd, IDS_UNABLE_TO_DOWNLOAD2);
764
+ goto end;
765
+ }
766
+
756
767
dwContentLen = FtpGetFileSize (hFile, &dwStatus);
757
768
}
758
769
0 commit comments