С какими трудностями я столкнулся в процессе создания дистрибутива - отделая история, ибо всяческих нюансов, тонкостей, и просто граблей я хапнул давольно-таки не мало (да и по большому счету до сих пор хватаю - разработка до сих пор не закрыта, а в качестве бетатестеров сидят работники немаленького предприятия ;) )
Итак, ближе к теме.
Наткнулся на такой баг - при редиректе флешки посредством инструменов rdesktop в рабочее пространство пользователя на сервере (флешка появляется как подключеный сетевой диск), у некоторых пользователей система напроч отказывается читать некоторые каталоги (даже корневой). Ругается что устройство отключено, или что нет прав. Выяснилось что проблема в длинных именах файлов: почему-то не перевариваются имена более 126 символов. Понятно что скорее всего где-то в rdesktop стоит ограничение или может просто элементарная ошибка.
К счастью для пользователей (кодер из меня не ахти, да и времени жаль, да еще и лень разбираться ;) ) в инете наткнулся на багзилу АльтЛинукса, где люди весьма успешно борются с данной проблемой.
Все решение проблемы уложилось в последовательность действий: скачка патча, наложение патча, сборка, собирание призов от пользователей :)
Кстати, эту проблему я встретил в rdesktop 1.5.0, однако для свежей на данный момент версии 1.6.0 проблема осталась актуальной.
PS: Сам патч шоб не потерять:
--- rdesktop.orig/disk.c 2008-02-16 03:13:25 +0300 +++ rdesktop/disk.c 2008-07-04 14:13:52 +0400 @@ -1201,8 +1201,8 @@ out_uint32_le(out, filestat.st_size); /* filesize low */ out_uint32_le(out, 0); /* filesize high */ out_uint32_le(out, file_attributes); - out_uint8(out, 2 * strlen(pdirent->d_name) + 2); /* unicode length */ - out_uint8s(out, 7); /* pad? */ + out_uint16(out, 2 * strlen(pdirent->d_name) + 2); /* unicode length */ + out_uint8s(out, 6); /* pad? */ out_uint8(out, 0); /* 8.3 file length */ out_uint8s(out, 2 * 12); /* 8.3 unicode length */ rdp_out_unistr(out, pdirent->d_name, 2 * strlen(pdirent->d_name));
Комментариев нет:
Отправить комментарий