View Issue Details

IDProjectCategoryView StatusLast Update
0000625PluginsFTP (old)public2009-03-29 17:52
ReporterAriman Assigned Tovskirdin  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version1.71 
Fixed in Version1.75 
Summary0000625: Не работает докачка, если размер уже скачаного превышает 4гб.
DescriptionЕсли скачать часть файла, размером более 4гб, то его будет невозможно докачать. При попытке выдается ошибка открытия локального файла.

Проблема в функции Fopen, в коде
if ( toupper(mode[0]) == 'A' || mode[1] == '+' )
         if ( SetFilePointer(h,0,NULL,FILE_END) == 0xFFFFFFFF )
           break;

GetLastError возвращает 87.
Помогает использование 3-го параметра функции SetFilePointer. Нечто вроде
if ( toupper(mode[0]) == 'A' || mode[1] == '+' )
{
  LONG nHighPart = 0;
  if ( SetFilePointer(h,0,&nHighPart,FILE_END) == 0xFFFFFFFF )
     break;
}
Тогда позиционирование проходит нормально, без ошибок.
TagsNo tags attached.

Activities

vskirdin

2008-10-29 01:55

administrator   bugnote:0001901

а патч приложить?

2008-10-29 03:57

 

ftp_large_resume_patch.diff (655 bytes)   
Index: plugins/ftp/ftp_Mix.cpp
===================================================================
--- plugins/ftp/ftp_Mix.cpp	(revision 2035)
+++ plugins/ftp/ftp_Mix.cpp	(working copy)
@@ -344,8 +344,11 @@
 
      do{
        if ( toupper(mode[0]) == 'A' || mode[1] == '+' )
-         if ( SetFilePointer(h,0,NULL,FILE_END) == 0xFFFFFFFF )
+	   {
+	     LONG nHighPart = 0;
+         if ( (SetFilePointer(h,0,&nHighPart,FILE_END) == INVALID_SET_FILE_POINTER) && (GetLastError() != NO_ERROR) )
            break;
+	   }
 
        if ( !rd )
          SetEndOfFile(h);  //Ignore SetEndOfFile result in case of use with CON, NUL and others
ftp_large_resume_patch.diff (655 bytes)   

Ariman

2008-10-29 03:59

reporter   bugnote:0001903

прилагаю

vskirdin

2008-10-31 08:58

administrator   bugnote:0001908

проверяем: http://ifolder.ru/8839816

Ariman

2008-10-31 10:36

reporter   bugnote:0001913

Теперь работает как надо, докачка идет.

Issue History

Date Modified Username Field Change
2008-10-28 11:02 Ariman New Issue
2008-10-29 01:55 vskirdin Note Added: 0001901
2008-10-29 03:57 Ariman File Added: ftp_large_resume_patch.diff
2008-10-29 03:59 Ariman Note Added: 0001903
2008-10-31 08:58 vskirdin Status new => assigned
2008-10-31 08:58 vskirdin Assigned To => vskirdin
2008-10-31 08:58 vskirdin Note Added: 0001908
2008-10-31 08:58 vskirdin Status assigned => feedback
2008-10-31 10:36 Ariman Note Added: 0001913
2009-03-29 17:52 alexy Status feedback => closed
2009-03-29 17:52 alexy Resolution open => fixed
2009-03-29 17:52 alexy Fixed in Version => 1.75
2013-05-20 21:30 alexy Category FTP => FTP (old)