View Issue Details

IDProjectCategoryView StatusLast Update
0003910PluginsNetworkpublic2021-11-30 22:00
Reporterdomashniyngs Assigned To 
PriorityhighSeverityminorReproducibilityhave not tried
Status newResolutionopen 
Platformx64OSWindows 
Product Version3.0 
Summary0003910: При переходе по шарам плагин кэширует первый сервер и дальше подставляет его
DescriptionПри переходе по шарам плагин кэширует первый сервер и дальше подставляет его.
Пример - net:\\asq7
далее заходим в шару etc
далее говорим net:\\asq3 (другая платформа)
вылетает ошибка, при этом в шару в итоге заходит нормально
Еще есть куча алертов в логах АД о попытке подключения не под пользователем а под сервером
Steps To ReproduceПри переходе по шарам плагин кэширует первый сервер и дальше подставляет его.
Пример - net:\\asq7
далее заходим в шару etc
далее говорим net:\\asq3 (другая платформа)
вылетает ошибка, при этом в шару в итоге заходит нормально
Еще есть куча алертов в логах АД о попытке подключения не под пользователем а под сервером
TagsNo tags attached.

Activities

domashniyngs

2021-11-18 09:09

reporter  

Снимок.JPG (131,039 bytes)   
Снимок.JPG (131,039 bytes)   

domashniyngs

2021-11-18 09:13

reporter   bugnote:0017202

Версия 3.0.5ххх - ошибки, (версия 3.0.3ххх все работает корректно).

ctapmex

2021-11-20 10:53

developer   bugnote:0017207

а вот тут скорее far виноват.
перед обработкой команды в консоли в CommandLine::ExecString он выставляет текущую директорию FarChDir(m_Curdir). m_Curdir содержит текущую директорию относительно панели, а при работе с FarChDir обрабатывается текущая рабочая директория far, которая указывает на последнюю с которой он работал. И FarChDir пытается сменить путь на мешанину текущей системной директории и плагинновой. и получаем проблему.

ctapmex

2021-11-30 19:29

developer   bugnote:0017225

DrKnS, тут ошибка в Far. сам не пойму где в Far править .
проблема, если смотреть в отладчике , воспроизводится легко. а первоначальное описание - это когда уже видно реакцию системы/плагинов и т.п.
1. зашли на на шару \\comp1\a1 . сработал FarChDir . текущая директория \\comp1\a1
2. вызвали net:\\comp2 . до передачи управления плагину CommandLine::ExecString вызывает FarChDir, передавая туда m_CurDir=\\comp1 . Это значение переменная получила от плагина в рамках GetOpenPanelInfo. Так вот, в FarChDir вызывается Directory = ConvertNameToFull(NewDir); , которая начинает творить ерунду. Она берет текущую директорию \\comp1\a1 и добавляет к ней относительны путь из панели \\comp1, что приводит к попытке выставления текущей директории в \\comp1\a1\\comp1 и генерирует ошибку (но она не отображается).

т.е. не смотря на то, что плагин не выставлял OPIF_REALNAMES, far пытается работать с CurDir из панели как с реальным .

ctapmex

2021-11-30 19:51

developer   bugnote:0017228

кажется упустил шаг. после пункта 1 нужно перейти обратно в \\comp1 . тогда повествование сложится

DrKnS

2021-11-30 19:51

administrator   bugnote:0017229

плагин не выставлял OPIF_REALNAMES

ctapmex

https://github.com/FarGroup/FarManager/blob/28934c6481bbb4e398dbcf233dbb7b21fedf3cc0/plugins/network/NetClass.cpp#L776

https://github.com/FarGroup/FarManager/blob/28934c6481bbb4e398dbcf233dbb7b21fedf3cc0/far/filelist.cpp#L7704-L7709

DrKnS

2021-11-30 22:00

administrator   bugnote:0017232

Можно попробовать обрабатывать в плагине FE_COMMAND, и если там "prefix:something", то передавать "something" в SetOpenFromCommandLine или что там внутри плагина отвечает за переходы.
Это, наверное, будет еще и немного эффективнее, чем сейчас.

Issue History

Date Modified Username Field Change
2021-11-18 09:09 domashniyngs New Issue
2021-11-18 09:09 domashniyngs File Added: Снимок.JPG
2021-11-18 09:13 domashniyngs Note Added: 0017202
2021-11-20 10:53 ctapmex Note Added: 0017207
2021-11-30 19:29 ctapmex Note Added: 0017225
2021-11-30 19:51 ctapmex Note Added: 0017228
2021-11-30 19:51 DrKnS Note Added: 0017229
2021-11-30 22:00 DrKnS Note Added: 0017232