Bug 2620

Summary: Протестировать работу ключей защиты Рарус АльфаАвто на терминальном сервере
Product: WINE@Etersoft Reporter: Константин Кондратюк <kondratyuk>
Component: Ключи защиты ; Системы защиты ; Файл лицензииAssignee: Andrey Vusik <night>
Status: CLOSED FIXED QA Contact:
Severity: critical    
Priority: P1 CC: alrem, amorozov, baraka, ddoss, lav, mid, night
Version: 1.0.9   
Target Milestone: выпуск 1.0.9   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: 17179 Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 1105, 1217    

Description Константин Кондратюк 2008-10-15 18:25:27 MSD
В случае терминальной работы вываливается
ошибка защиты Раруса "Порт [12012]сервера
управления оборудования занят другой
программой."

Нужно воспроизвести в наших условиях или разобраться, в каких условиях не будет воспроизводиться.
Comment 1 Константин Кондратюк 2008-10-15 18:28:13 MSD
Alrem пишет:
> 4. В случае же терминальной работы для
> последующих пользователей вываливается
> ошибка защиты Раруса "Порт [12012]сервера
> управления оборудования занят другой
> программой." Данная ошибка появляется не
> зависимо от способа установки wine (c  ключом
> --attach или без него).
> Для всех вышеописанных наблюдений есть
> скриншоты. Если нужны какие-нибудь логи -
> обращайтесь. Жду быстрой помощи от
> разработчиков.

Все возникающие при тестировании вопросы можно обсуждать в баге
Comment 2 Vitaly Lipatov 2008-10-15 19:44:16 MSD
(In reply to comment #0)
> В случае терминальной работы вываливается
> ошибка защиты Раруса "Порт [12012]сервера
> управления оборудования занят другой
> программой."
Прошу обратить внимание, что ошибка не относится к защите, а относится к открытию порта, через который идёт обмен с торговым оборудованием. Я так понимаю, у них просто сервер защиты и торгового оборудования совмещён.
Comment 3 Andrey Vusik 2008-10-17 21:54:10 MSD
1) Программа находится в /WINE tests/1c/1c-рарус

3) При установке программы защиты - ошибка о том, что не виден ключ. Ключ стоит локально.
Comment 4 Andrey Vusik 2008-10-18 00:01:43 MSD
У нас версия на 1 пользователя, т.е. локальная. Как я понимаю, терминальная проверка не получится?
Comment 5 Денис Баранов 2008-10-21 15:40:37 MSD
1С Рарус Альфа Авто использует ключ защиты Катран, но у нас не поддерживается. Его возможно использовать только если менеджер лицензий стоит на Windows. 
У нас есть ключ на 4 пользователей. Более подробное обсуждение велось в баге 1105
Comment 6 Денис Баранов 2008-11-17 21:23:35 MSK
Проверил на терминальном сервере.
Ошибки на последней сборке возникло. Удалось зайти с разных пользователей.
Comment 7 Vitaly Lipatov 2008-11-17 22:43:50 MSK
НЕ возникло.
Comment 8 Денис Баранов 2008-11-26 17:03:25 MSK
*** Bug 3016 has been marked as a duplicate of this bug. ***
Comment 9 Andrey Vusik 2008-11-28 10:48:50 MSK
(In reply to comment #6)
> Проверил на терминальном сервере.
> Ошибки на последней сборке возникло.
> Удалось зайти с разных пользователей.
> 

Ты проверял wine --admin wine --attach ?

Из заявки 9043: 

Выяснили, что поблема из-за того, чти для всех пользователей установлено
одно имя комьютера. Серевер защиты его и учитывает.

После внесения изменений в /dll/kernel32/dll/computername.c (wine-20080211)

void COMPUTERNAME_Init (void)
{
...
if ( st != STATUS_SUCCESS || get_use_dns_option() )
{
char hbuf[256];
int hlen = sizeof (hbuf);
char *dot;
+++ char *whn;
TRACE( "retrieving Unix host name\n" );
+++ whn = getenv("WINEHOSTNAME");
+++ if (whn)
+++ strcpy (hbuf, whn);
+++ else
if ( gethostname ( hbuf, hlen ) )
{
strcpy ( hbuf, default_ComputerName );
WARN( "gethostname() error: %d, using host name %s\n", errno,
hbuf );
}
...

имя комьютера можно задать через переменную окружения WINEHOSTNAME.

export WINEHOSTNAME=aa-$USER
/usr/bin/wine "c:/1cv8/bin/1cv8.exe"

После этого сервер защиты нормально выдает лицензии.
Comment 10 Vitaly Lipatov 2008-11-28 16:35:19 MSK
Проверьте пожалуйста, что этот же результат достигается через реестр выставлением в ветке
HKCU\Software\Wine\Network
параметра UseDnsComputerName в N

и указанием желаемого имени компьютера в ветке
HKLM\System\CurrentControlSet\Control\ComputerName\ComputerName]

См. также
http://wiki.winehq.org/UsefulRegistryKeys

В сборке 1.0.10-eter2 будет поддержка 
WINEADDUSERTOCOMPNAME
в конф. файле /etc/wine/config.
При установке этой переменной к имени компьютера будет прибавляться имя пользователя по схеме
$HOSTNAME-$USER -> localhost-guest
Comment 11 Денис Баранов 2008-12-03 17:31:12 MSK
Проблема решена.
Comment 12 Shestakov Dmitriy 2010-12-15 19:57:07 MSK
openSuse 11.2
eter7/eter12, testing.

Не работает.
Comment 13 Денис Баранов 2010-12-17 18:54:51 MSK
Проверить на текущей сборке.
Comment 14 Andrey Vusik 2011-03-24 23:51:46 MSK
(В ответ на comment #13)
> Проверить на текущей сборке.

Работа по баге. Пока результата нет.
Comment 15 Andrey Vusik 2011-03-28 19:39:38 MSK
Доделал.
1.0.12-eter8.14/18
SUSE 10.3 в vbox
сервер описан в
http://bugs.etersoft.ru/show_bug.cgi?id=4399#c66

Все работает, если:
1) в /etc/hosts прописать сервер с защитой
2) в /etc/wine/config выставить WINEADDUSERTOCOMPNAME = yes
3) на wine_c/users/Public/Application\ Data/Protect/LocalProtect/ 
выставить права для соответствующих пользователей.
Comment 16 Shestakov Dmitriy 2011-03-28 23:20:14 MSK
Хорошо. Закрываем.
Comment 17 Достоевский Алексей 2011-05-12 17:02:58 MSK
Небольшое уточнение: результирующее имя хоста не должно превышать 14 символов вместе с тире посередине- иначе имя пользователя не добавится. То есть имя хоста terminal, пользователь sysadmin - имя хоста terminal, а если на нем же пользователь  admin - имя хоста terminal-admin. Долго не мог понять где косяк. Думаю, надо добавить это в комментарий в конфиге wine.
Comment 18 Vitaly Lipatov 2011-05-13 02:51:28 MSK
Всю эту историю нужно описать в документации, добавить комментарий в конф. файл о длине имени.
К сожалению, действительно, в Wine используется константа MAX_COMPUTERNAME_LENGTH, равная 15.
Возможно, в код стоит добавить предупреждение в случае переполнения.
Comment 19 Andrey Vusik 2011-05-21 18:43:29 MSK
(В ответ на comment #18)
> Всю эту историю нужно описать в документации, добавить комментарий в конф. файл
> о длине имени.
> К сожалению, действительно, в Wine используется константа
> MAX_COMPUTERNAME_LENGTH, равная 15.
> Возможно, в код стоит добавить предупреждение в случае переполнения.

Внес подробный комментарий в config. Вешаю багу по созданию предупреждения.