NetBox — SFTP/SCP/FTP/FTPS/WebDAV client
- Michael Lukashov
- Posts: 484
- Joined: Mon 23 Jan, 2006 09:38
- Been thanked: 10 times
- Contact:
NetBox — SFTP/SCP/FTP/FTPS/WebDAV client
C 2013/02/28 плагин входит в дистрибутив FAR 3, заменяя собой FarFTP.
Полезные ссылки:
При возникновении проблем:
Полезные ссылки:
При возникновении проблем:
Last edited by Michael Lukashov on Sat 19 Sep, 2015 10:22, edited 2 times in total.
NetBox — SFTP/SCP/FTP/FTPS/WebDAV client
Latest post of the previous page:
Забыл добавить, что если убрать галочку с "Разрешать символьные ссылки", проблема исчезает.NetBox — SFTP/SCP/FTP/FTPS/WebDAV client
Немного побродил под дебаггером, как пример, это возникает на каком-то этапе в вызове CMStringData->IsLocked когда FStrings, созданные на основе векторного расширяются (grow) с 16 до 32 и перемещают с позиции 14 два элемента для того, чтобы сюда вставить, но там столько всего реализовано, чтобы повторить функциональность VCL-льных классов, что въехать очень сложно. Мое ощущение, что где-то не обнуляется буфер при появлении новых элементов и поэтому доступ к грязным данным происходит. При этом судя по логу, TStringList в новом режиме довольно много успешно добавляет. То есть AddObject-то по логике правильно работает, но какой-то менеджмент памяти подводит. Автора бы реализации этих классов сюда бы...
Last edited by Maximus on Wed 25 Nov, 2020 16:31, edited 1 time in total.
NetBox — SFTP/SCP/FTP/FTPS/WebDAV client
В борьбе с exception-ами кое-что выяснилось. Но я не знаю где лучше обсуждать до предложения pull-а и видимо по-русски для оперативности, дайте знать.
В методе TStringList::InsertItem заменил вызов
на альтернативный по смыслу
но который использует другу реализацию из vector.h
AV исчез, список на синхронизацию показывается. То есть некорректный код был в реализации вставки через итератор. С момента передачи в 2013- году было серьзеное изменение, где могла появится ошибка (коммит, где менялся код в реализации с итератором без количества).
Я так понимаю Michael Lukashov не пишет здесь уже три года и не вовлечен в проект все это время. Я бы предложил pull этот на изменение, потому что не хочется темплейт вектора трогать, если там этот метод с ошибкой. Но хотелось бы еще чье-нибудь мнение.
В методе TStringList::InsertItem заменил вызов
Code: Select all
FStrings.insert(FStrings.begin() + Index, S);
Code: Select all
FStrings.insert(FStrings.begin() + Index, 1, S);
Code: Select all
void insert(iterator it, size_type n, const T& val)
Я так понимаю Michael Lukashov не пишет здесь уже три года и не вовлечен в проект все это время. Я бы предложил pull этот на изменение, потому что не хочется темплейт вектора трогать, если там этот метод с ошибкой. Но хотелось бы еще чье-нибудь мнение.
Last edited by Maximus on Fri 27 Nov, 2020 11:05, edited 1 time in total.
- DrKnS
- Posts: 5810
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 10 times
- Been thanked: 345 times
NetBox — SFTP/SCP/FTP/FTPS/WebDAV client
Учитывая, что "RDESTL is library providing small subset of STL functionality" и то, что оно не обновлялось уже лет 5, я бы предложил закопать стюардессу глобально заменить
rde::
на std::
. Возможно, проблема на этом и уйдет, вместе с библиотекой.NetBox — SFTP/SCP/FTP/FTPS/WebDAV client
Предложение интересное. Я даже и не сразу понял, что это производная проекта rdestl. Как первый чек я сделал diff vector.h в нем и в NetBox, разница по мелочи, но похоже включения типа algorithm.h все-таки значительно отличаются. Это я к тому, что оригинальный может не содержать ошибку (или иметь уже исправление), но это снова выкапывать стюардессу...
По поводу замены на std, у меня были сомнения, нет ли там чего-то более позднего, что потребует повысить минимальные требования VS 2010. Но сегодня попробовал под VS Express 2010
Code: Select all
#include <vector>
....
std::vector<UnicodeString> FStrings;
Code: Select all
FStrings.insert(FStrings.begin() + Index, S);
Из другого.
заметил, что когда в тестах моих было включено удалять в корзину и какой-то странный результат был под Windows 7, неполное исполнение списка синхронизации, потом увидел в дебаггере, что для семерки при удалении в корзину применяется нотация \\?\ которая судя по докам SHFileOperation вообще не поддерживается. Результат странный, честно говоря, вроде такое должны были раньше заметить, семерка уходящая натура, но не совсем еще ушла.
NetBox — SFTP/SCP/FTP/FTPS/WebDAV client
https://github.com/FarGroup/Far-NetBox/ ... /ChangeLog — вот здесь последняя запись датирована трёхлетней давностью. При этом в самом https://github.com/FarGroup/Far-NetBox вроде как что-то делают. Возникают и правятся баги. Нельзя ли в чейнджлоге писать, что именно делается? Чисто чтобы ориентироваться на минном поле.
Пользуюсь ФАРом больше 20 лет © собирательный.
NetBox — SFTP/SCP/FTP/FTPS/WebDAV client
При копировании файла с WebDAV на локальный диск не работает перезапись.
После ответа Yes на запрос **Overwrite local file 'file.txt'?** ничего не происходит. Ошибок не выводится и создается впечатление, что перезапись файла произошла.
В логе видно Copying finished: Transferred: 0
Копирование без перезаписи этого же файла в тот же каталог работает нормально.
Перезапись при подключении к серверу по FTP, SCP работает нормально.
v3.0.5730.0 x64 Win7
После ответа Yes на запрос **Overwrite local file 'file.txt'?** ничего не происходит. Ошибок не выводится и создается впечатление, что перезапись файла произошла.
В логе видно Copying finished: Transferred: 0
Копирование без перезаписи этого же файла в тот же каталог работает нормально.
Перезапись при подключении к серверу по FTP, SCP работает нормально.
v3.0.5730.0 x64 Win7
Last edited by fps on Thu 21 Jan, 2021 07:02, edited 2 times in total.
NetBox — SFTP/SCP/FTP/FTPS/WebDAV client
Файл 42E4AEB1-A230-44F4-B33C-F195BB654931.db удалил как и PaperbackWriter, но в отличие от него - у меня ничего копироваться не начало. Этот файл просто пересоздается, результат нулевой.PaperbackWriter wrote: ↑Wed 04 Sep, 2019 10:07 Far 3.0.5445 x64 (NetBox 2.4.5.531)
Не могу импортировать в NetBox фтп-аккаунты.
С него можно скопировать, в него - нельзя. Нажимаю F5, появляется красная табличка
"Import session(s) from selected file(s)?"
Нажимаю "Да" - ничего не происходит.
Переименование папок (shift-F6) также не срабатывает, переименовываются только фтп-аккаунты.
Дополнение:
Файл 42E4AEB1-A230-44F4-B33C-F195BB654931.db удалил
Господа-товарищи, эта проблема таки решена или нет?
Ответ от автора плагина двухлетней давности в гитхабе "у меня все работает" видел, но от этого не легче.
Версия Far30b5700.x86.20201112, т.е. заведомо новее чем в обсуждавшейся 2 года назад ситуации
- John Doe
- Бюрократ
- Posts: 13068
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 42 times
- Been thanked: 319 times
NetBox — SFTP/SCP/FTP/FTPS/WebDAV client
Проверьте.
Я не помню чтобы сталкивался, но подозреваю что большинство участников форума (даже столкнувшись) уже давно решили вопрос тем или иным образом, и про баг благополучно забыли. Это ж одноразовое действие.
https://t.me/FarManager — Telegram чат
NetBox — SFTP/SCP/FTP/FTPS/WebDAV client
Вполне готов поверить, но все же... Вынужденно перехожу с 1.7 именно из-за ftp. И мало того что 3.0 это жесть по сравнению со старым добрым 1.7, так еще и тут подстава (