View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000625 | Plugins | FTP (old) | public | 2008-10-28 11:02 | 2009-03-29 16:52 |
| Reporter | Ariman | Assigned To | vskirdin | ||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Product Version | 1.71 | ||||
| Fixed in Version | 1.75 | ||||
| Summary | 0000625: Не работает докачка, если размер уже скачаного превышает 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; } Тогда позиционирование проходит нормально, без ошибок. | ||||
| Tags | No tags attached. | ||||
|
|
а патч приложить? |
|
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
|
|
|
прилагаю |
|
|
проверяем: http://ifolder.ru/8839816 |
|
|
Теперь работает как надо, докачка идет. |
| 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 16:52 | alexy | Status | feedback => closed |
| 2009-03-29 16:52 | alexy | Resolution | open => fixed |
| 2009-03-29 16:52 | alexy | Fixed in Version | => 1.75 |
| 2013-05-20 20:30 | alexy | Category | FTP => FTP (old) |