Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 2086 - функция netapi32.dll.NetShareGetInfo   Make a simular bug
Summary: функция netapi32.dll.NetShareGetInfo
Status: CLOSED FIXED
Alias: None
Product: Wine School
Classification: Продукты (Products)
Component: КМ Школа (show other bugs)
Version: 1.0
Hardware: PC Linux
: P4 normal
Target Milestone: ---
Assignee: Виталий Перов
QA Contact:
URL: http://msdn.microsoft.com/en-us/libra...
Whiteboard:
Keywords:
Depends on: 2187 2117
Blocks: 1931 2585 1527
  Show dependency treegraph
 
In work:
Reported: 2008-07-07 17:35 MSD by Калюхович Юрий
Modified: 2008-12-23 18:20 MSK (History)
2 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments
скриншот запроса пароля (10.10 KB, image/png)
2010-11-18 03:58 MSK, Виталий Перов
Details
Сообщение об ошибке (9.35 KB, image/png)
2010-11-18 03:58 MSK, Виталий Перов
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Калюхович Юрий 2008-07-07 17:35:11 MSD
необходимо реализовать функцию netapi32.dll.NetShareGetInfo
обнаружилась при попытке запуска сервера км-школы (бага 1931)
Comment 1 Виталий Перов 2008-07-09 13:20:56 MSD
Created attachment 562 [details]
скриншот запроса пароля

Сделал заглушку.

Багу воспроизвести не получается.
Копирую файл настроек (приаттаченый к баге 1931), запускаю DBEngine.exe

Приложение запускается и требует пароль. При отказе файл настроек перезаписывается, и при повторном запуске пароль больше не запрашивается.
Сообщения wine: Call from 0x7ee2f910 to unimplemented function
netapi32.dll.NetShareGetInfo, aborting
так и не появилось
Comment 2 Калюхович Юрий 2008-07-14 12:43:00 MSD
воспроизведение ошибки:

бутылка 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)
после чего появляется окно с сообщением об ошибке, а в консоль выпадает сообщение о нереализованной функции
Comment 3 Виталий Перов 2008-07-14 15:06:33 MSD
Делаю всё как написано. Появляется сообщение. Скриншот в предыдущем посте.
Скорее всего мне нуже пароль к БД.
Comment 4 Калюхович Юрий 2008-07-14 15:55:02 MSD
(In reply to comment #3)
> Делаю всё как написано. Появляется
> сообщение. Скриншот в предыдущем посте.
> Скорее всего мне нуже пароль к БД.
> 

mssql сервер 192.168.0.164
логин:пароль администратора - sa:qwe
Comment 5 Виталий Перов 2008-07-14 17:43:11 MSD
Бага воспроизвелась.
При реализованой загрушке получается:
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?

Comment 6 Vitaly Lipatov 2008-07-14 18:18:36 MSD
Опять же, только заглушку, потому что расшарить (предоставить сетевой доступ к указанному каталогу) мы всё равно не можем (это нужно через SAMBA делать).
Comment 7 Виталий Перов 2008-07-28 18:43:01 MSD
Сделал патч, но протестировать не могу.
Проблемы с запуском из бутылки при работе через nx. (Боря в курсе)
Проблематично будет ставить КМ-школу + SQL сервер локально.

Патч отправил. Необходимо его протестировать когда он окажется в сборке.
Comment 8 Виталий Перов 2008-07-30 11:55:22 MSD
Created attachment 624 [details]
Сообщение об ошибке

Протестировал:
Первый раз, когда записи в реестре нет, NetShareGetInfo возвращает ошибку и вызывается NetShareAdd, которая добавляет запись в реестр. В этом случае программа начинает работать.
При втором запуске, когда запись в реестре уже есть и требуется её прочитать программа выдаёт сообщение об ошибке (см. скриншот)
Comment 9 Виталий Перов 2008-07-30 12:22:36 MSD
функция NetShareGetInfo даже не вызывается!
Удалил запись из реестра - ошибка осталась.
Думаю это уже другая бага
Comment 10 Виталий Перов 2008-07-30 12:44:08 MSD
Проблема в том, что после закрытия программы в процессах продолжает висеть C:\C&M\KMSchool\Server\Filemanager
При выполнении wineserver -k проблема исчезает, но появляется новая:
До выполнения wineserver -k запись в реестре есть, а после - она пропадает
Comment 11 Виталий Перов 2008-07-30 13:26:37 MSD
Вызов RegFlushKey() после добавлнения ключа проблему не решает. Ключ по-прежнему исчезает после убивания процесса.
Думаю, проблему надо решать исправлением баги с завершением процесса
Comment 12 Виталий Перов 2008-10-29 19:07:22 MSK
откатил коммиты:
8906a50c4222cfe0bb4a76e18255b8e20836c05b
6a6cbd1ac71c4c2e9376af2c8858f7e8616f4fdb

Требуется создать новые относительно ветки pure
Comment 13 Виталий Перов 2008-12-01 19:41:37 MSK
Отправил патч повторно.
Был получен ответ:

> +    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.

Переделываю.
Comment 14 Виталий Перов 2008-12-01 20:28:14 MSK
Переписал. Отправил