Summary: | функция netapi32.dll.NetShareGetInfo | ||
---|---|---|---|
Product: | Wine School | Reporter: | Калюхович Юрий <goga> |
Component: | КМ Школа | Assignee: | Виталий Перов <vitperov> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | P4 | CC: | baraka, lav |
Version: | 1.0 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux | ||
URL: | http://msdn.microsoft.com/en-us/library/aa370642(VS.85).aspx | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | 2187, 2117 | ||
Bug Blocks: | 1931, 2585, 1527 | ||
Attachments: |
скриншот запроса пароля
Сообщение об ошибке |
Description
Калюхович Юрий
2008-07-07 17:35:11 MSD
Created attachment 562 [details]
скриншот запроса пароля
Сделал заглушку.
Багу воспроизвести не получается.
Копирую файл настроек (приаттаченый к баге 1931), запускаю DBEngine.exe
Приложение запускается и требует пароль. При отказе файл настроек перезаписывается, и при повторном запуске пароль больше не запрашивается.
Сообщения wine: Call from 0x7ee2f910 to unimplemented function
netapi32.dll.NetShareGetInfo, aborting
так и не появилось
воспроизведение ошибки: бутылка km-school-sql файл c:/C&M/KMSchool/Server/DBEngine.ini заменяется на c:/C&M/KMSchool/DBEngine.ini $ winexp DBEngine.exe в окне "смена пароля" вводим 'новый пароль' - kmschool в следующем окне выбираем ip-адрес (192.168.0.26) после чего появляется окно с сообщением об ошибке, а в консоль выпадает сообщение о нереализованной функции Делаю всё как написано. Появляется сообщение. Скриншот в предыдущем посте. Скорее всего мне нуже пароль к БД. (In reply to comment #3) > Делаю всё как написано. Появляется > сообщение. Скриншот в предыдущем посте. > Скорее всего мне нуже пароль к БД. > mssql сервер 192.168.0.164 логин:пароль администратора - sa:qwe Бага воспроизвелась. При реализованой загрушке получается: fixme:share:NetShareGetInfo Stub (L"" L"{E309FE16-4330-4342-83C7-E0DD3C98FFBC}" 502 0x32f6a4) Нулевое имя сервера означает локальный компьютер. Уровень возвращаемой информации 502 означает следующее: Return information about the shared resource, including name of the resource, type and permissions, number of connections, and other pertinent information. The bufptr parameter points to a SHARE_INFO_502 structure. Сейчас функция возвращает NERR_NetNameNotFound. Сразу после этого: wine: Call from 0x7b843118 to unimplemented function netapi32.dll.NetShareAdd, aborting Думаю необходимо сначала реализовать NetShareAdd, которая расшаривает ресурс и хранит информацию о нём. Хранить информацию можно в реестре. А как расшарить? Просто добавить ссылку в /unc? Опять же, только заглушку, потому что расшарить (предоставить сетевой доступ к указанному каталогу) мы всё равно не можем (это нужно через SAMBA делать). Сделал патч, но протестировать не могу. Проблемы с запуском из бутылки при работе через nx. (Боря в курсе) Проблематично будет ставить КМ-школу + SQL сервер локально. Патч отправил. Необходимо его протестировать когда он окажется в сборке. Created attachment 624 [details]
Сообщение об ошибке
Протестировал:
Первый раз, когда записи в реестре нет, NetShareGetInfo возвращает ошибку и вызывается NetShareAdd, которая добавляет запись в реестр. В этом случае программа начинает работать.
При втором запуске, когда запись в реестре уже есть и требуется её прочитать программа выдаёт сообщение об ошибке (см. скриншот)
функция NetShareGetInfo даже не вызывается! Удалил запись из реестра - ошибка осталась. Думаю это уже другая бага Проблема в том, что после закрытия программы в процессах продолжает висеть C:\C&M\KMSchool\Server\Filemanager При выполнении wineserver -k проблема исчезает, но появляется новая: До выполнения wineserver -k запись в реестре есть, а после - она пропадает Вызов RegFlushKey() после добавлнения ключа проблему не решает. Ключ по-прежнему исчезает после убивания процесса. Думаю, проблему надо решать исправлением баги с завершением процесса откатил коммиты: 8906a50c4222cfe0bb4a76e18255b8e20836c05b 6a6cbd1ac71c4c2e9376af2c8858f7e8616f4fdb Требуется создать новые относительно ветки pure Отправил патч повторно.
Был получен ответ:
> + GetCurrentDirectoryA(MAX_PATH, tmpPath);
> + result = SetCurrentDirectoryW(path);
> + SetCurrentDirectoryA(tmpPath);
> + if (!result) return ERROR_FILE_NOT_FOUND;
This is not the right way to test if a directory exists.
Переделываю.
Переписал. Отправил |