необходимо реализовать функцию netapi32.dll.NetShareGetInfo обнаружилась при попытке запуска сервера км-школы (бага 1931)
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. Переделываю.
Переписал. Отправил