View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003306 | Far Manager | File System | public | 2016-09-17 05:52 | 2016-09-20 06:45 |
Reporter | virus174 | Assigned To | DrKnS | ||
Priority | high | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | x64 | OS | Windows | OS Version | 2008 R2 |
Product Version | 3.0 | ||||
Fixed in Version | 3.0 | ||||
Summary | 0003306: Некорректная работа с сетевыми папками и файлами | ||||
Description | Добрый день. Проблема выявлена и в ночных и в стабильных ветках far3. В Far2 проблемы нет. Затрагивает сразу несколько категорий, поэтому обобщил указал File System. Вообще, в итоге, сказывается, на просмотре, копировании, редактировании, и т.д. При работе с сетевой папкой из RDP сессии с русскими именами файлов и каталогов они содержат лишение символы с кодом 0 в конце. | ||||
Steps To Reproduce | Условия для воспроизведения проблемы на моем примере: 1. Подключаюсь по RDP клиентом rdesktop к серверу где установлен FarManager. На ПК с которого подключаюсь стоит Ubuntu 16.04. 2. В терминальной сессии открываем сетевую папку расшаренную через терминальную сессию Сперва команда net:tsclient Затем выбираем нужный каталог. Когда заходим в каталог с русским названием появляются проблемы. Не просматривает и не копирует любый файлы. Не заходит в любые подкаталоги. | ||||
Additional Information | Суть проблемы легко определяется, в командной строке путь отображается как будто с лишними пробелами между последним символом и символом > означающим окончание пути. Но это не пробелы. Если скопировать в буфер название каталога и вставить в файл то видно что то символы с кодом 0. Соответственно неверно формируется имя каталогов и файлов. При открытии файла в каталоге с русским названием просмотровщик вверху показывает только название каталога. После 0 путь обрезается и файл фактически не открывается. По той же причине не работает копирование и др. операции с файлами. При этом только в верхней части панелей отображается корректное имя каталога без лишних символов в конце. | ||||
Tags | No tags attached. | ||||
Build | 4793 | ||||
|
Если подключаетесь с ПК, на котором стоит Windows - воспроизводится? Выглядит как очередные глюки самбы. |
|
В понедельник попробую, дома нет ПК под Winows. но думаю там все ОК окажется. И самба тут не причем. При работе с шарами проброшенными через терминальную сессию samba не участвует, скорее тут работа со строками не так реализована. То что отдается список файлов в UTF-8. Я тут нашел еще баг в FTP (http://bugs.farmanager.com/view.php?id=3293) Возможно корни у них одни и те же В понедельник отпишусь. Заодно сделаю тест с альтtрнативного клиента на Ubunte FreeRDP |
|
В итоге выявлено: 1. при подключении с ОС Windows по RDP проблем не выявлено 2. при подключении с ОС Ubuntu c помощью xfreerdp проблем не выявлено 3. проблема выявлена только при работе через терминальный клиент rdesktop (Стоит версия 1.8.3) при этом, через штатный Windows Explorer файлы отображаются корректно, точно также в Far2. Проблема именно в связке rdesktop+far3 Поправки к первому посту. Вверху панели путь отображается тоже с лишними символами. Еще... если файл с русскими буквами в лежит в корне или в каталоге с английскими буквами, проблем нет. Только если каталог с русскими буквами. Причем в сам каталог зайти дает и список файлов показывает, но после этого записывает в текущий каталог название с лишними символами в конце. И уже дальнейшая работа с файлам и в нем становится невозможна. Попробовал через processmonitor оттрейсить, там названия подкаталогов отображаются корректно. |
|
https://github.com/rdesktop/rdesktop/blob/master/disk.c#L1284 [quote=disk.c]out_uint32_le(out, 2 * strlen(pdirent->d_name) + 2); /* unicode length */ [/quote] Эти джентльмены отдают длину имени файла в байтах как 2 * "длина имени файла в UTF-8 в байтах" + 2. Да, это будет работать для английских имён. И только для них. Для всех остальных такая длина будет показывать куда-то в космос. Строку надо переводить из UTF-8 в UCS-2 и передавать её длину в байтах. |
|
Т.е. в Far3 не будет патча который обойдет такой кривой говнокод (как в rdesktop), просто обреза нули в конце? Rdesktop уже больше года билдов не выпускает. |
|
> Rdesktop уже больше года билдов не выпускает. FreeRDP (remmina) ? |
|
Такой патч в Far уже был, иначе вы не смогли бы работать даже с английскими именами - обратите внимание, что они там отдают не просто длину, а длину с учётом завершающего \0. Аналогично поступал sharepoint (т. е. msdn не умеют читать даже в microsoft), поэтому far такой единичный \0 игнорировал. В более других приложениях это работает, т. к. Я обобщил вышеописанный хак и теперь должны игнорироваться все \0 в конце имени. Возможно, распоследняя ночная сборка будет работать. Однако, как вы правильно отметили, это говнокод. Работающий только потому, что звёзды сошлись. Даже если вдруг заработает, я рекомендую присмотреться к более другим клиентам. |
|
DrKnS > Я обобщил вышеописанный хак и теперь должны игнорироваться все \0 в конце имени. Возможно, распоследняя ночная сборка будет работать. Огромное спасибо 2useven10 > FreeRDP (remmina) ? У меня под рукой 2 инструмента. Но чаще пользуюсь rdesktop. В одном одни удобные фишки в другом другие. Их бы скрестить. Рабочее место админа у которого сотни серверов и куча работы настроено так что все под рукой и оптимизировано на скорость, как GUI так и в командной строке aliases. Сейчас по сути останавливает от полного перехода на xfreerdp только отсутствие опции убрать шапку окна и некорректная работа ключа /workarea, по крайней мере под MATE. Плюс еще несколько неудобств по мелочам, типа необходимость ручками сбрасывать ~/.freerdp/known_hosts. Если случается авария иногда счет идет на секунды |
|
Все работает, спасибо |
|
Написал им, обещали починить. |
Date Modified | Username | Field | Change |
---|---|---|---|
2016-09-17 05:52 | virus174 | New Issue | |
2016-09-17 09:30 | DrKnS | Note Added: 0014770 | |
2016-09-18 08:11 | virus174 | Note Added: 0014772 | |
2016-09-18 08:12 | virus174 | Note Edited: 0014772 | |
2016-09-19 04:16 | virus174 | Note Added: 0014773 | |
2016-09-19 04:27 | virus174 | Note Edited: 0014773 | |
2016-09-19 07:17 | DrKnS | Note Added: 0014774 | |
2016-09-19 09:14 | virus174 | Note Added: 0014775 | |
2016-09-19 10:12 | 2useven10 | Note Added: 0014776 | |
2016-09-19 10:51 | DrKnS | Note Added: 0014777 | |
2016-09-19 10:52 | DrKnS | Assigned To | => DrKnS |
2016-09-19 10:52 | DrKnS | Status | new => feedback |
2016-09-19 11:28 | virus174 | Note Added: 0014778 | |
2016-09-19 11:28 | virus174 | Status | feedback => assigned |
2016-09-19 15:33 | DrKnS | Note Edited: 0014777 | |
2016-09-20 03:21 | virus174 | Note Added: 0014779 | |
2016-09-20 06:44 | DrKnS | Note Added: 0014780 | |
2016-09-20 06:45 | DrKnS | Build | => 4793 |
2016-09-20 06:45 | DrKnS | Status | assigned => closed |
2016-09-20 06:45 | DrKnS | Resolution | open => fixed |
2016-09-20 06:45 | DrKnS | Fixed in Version | => 3.0 |