Настроено в vbox в виртуалке [T] ALTLinux p6x86 (1c82 и wine 2.0 testing) Создана бутылка eterhack bottle 1c82/dalion Установлена 1С с конфигурацией. При входе нужно указать что ключ сетевой.
Соединение на стороне клиента выглядит так: trace:winsock:WSAStartup verReq=202 trace:winsock:WSAStartup succeeded trace:winsock:WSAStartup verReq=202 trace:winsock:WSAStartup succeeded trace:winsock:WS_socket af=2 type=1 protocol=0 trace:winsock:WSASocketA af=2 type=1 protocol=0 protocol_info=(nil) group=0 flags=0x1 trace:winsock:WSASocketW af=2 type=1 protocol=0 protocol_info=(nil) group=0 flags=0x1 trace:winsock:WSASocketW created 06f8 trace:winsock:WS_connect socket 06f8, ptr 0x7bf4b00 { family AF_INET, address 192.168.4.246, port 5171 }, length 16 warn:winsock:wsaErrno errno 115, (Операция выполняется в данный момент). trace:winsock:WSACreateEvent trace:winsock:WSAEventSelect 000006f8, hEvent 0x6fc, event 00000010 <<< <<< Здесь пауза. Судя по всему, программа ждёт события соединения. <<< trace:winsock:WSACloseEvent event=0x6fc trace:winsock:WS_shutdown socket 06f8, how 2 0 trace:winsock:WS2_register_async_shutdown s 1784 type 1 trace:winsock:WS2_register_async_shutdown s 1784 type 2 trace:winsock:WSAAsyncSelect 6f8, hWnd (nil), uMsg 00000000, event 00000000 trace:winsock:WS_closesocket socket 06f8 Судя по выводу "tcpdump -ni eth0 ip host 192.168.4.246", соединение устанавливается и разрывается клиентом (192.168.0.81), ничего не передаётся: 20:15:45.280902 IP 192.168.0.81.53089 > 192.168.4.246.5171: Flags [S], seq 2563901151, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0 20:15:45.283536 IP 192.168.4.246.5171 > 192.168.0.81.53089: Flags [S.], seq 3872953267, ack 2563901152, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 3], length 0 20:15:45.283555 IP 192.168.0.81.53089 > 192.168.4.246.5171: Flags [.], ack 1, win 46, length 0 20:15:55.292025 IP 192.168.4.246.5171 > 192.168.0.81.53089: Flags [.], ack 1, win 1825, length 0 20:15:55.292040 IP 192.168.0.81.53089 > 192.168.4.246.5171: Flags [.], ack 1, win 46, length 0 20:16:05.310714 IP 192.168.4.246.5171 > 192.168.0.81.53089: Flags [.], ack 1, win 1825, length 0 20:16:05.310725 IP 192.168.0.81.53089 > 192.168.4.246.5171: Flags [.], ack 1, win 46, length 0 20:16:15.284460 IP 192.168.0.81.53089 > 192.168.4.246.5171: Flags [F.], seq 1, ack 1, win 46, length 0 20:16:15.289328 IP 192.168.4.246.5171 > 192.168.0.81.53089: Flags [F.], seq 1, ack 2, win 1825, length 0 20:16:15.289362 IP 192.168.0.81.53089 > 192.168.4.246.5171: Flags [.], ack 2, win 46, length 0
Проблема воспроизводится также на простой программе (winsock/connect.c в репозитории git.office:/projects/wine/wine-etersoft-devel.git) при подключении на 80 порт etersoft.ru.
Проблему с подключением исправил. Теперь ключ находится, но после нажатия на "Подключиться к выбранным ключам" выводит сообщение о том, что ключи не найдены.
Из вывода в консоли при подключении к ключам: fixme:mountmgr:harddisk_ioctl Unsupported ioctl 74080 (device=7 access=1 func=20 method=0) fixme:mountmgr:harddisk_ioctl Unsupported ioctl 74080 (device=7 access=1 func=20 method=0) fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled fixme:mountmgr:harddisk_ioctl Unsupported ioctl 74080 (device=7 access=1 func=20 method=0) fixme:mountmgr:harddisk_ioctl Unsupported ioctl 74080 (device=7 access=1 func=20 method=0) IOCTL 74080 - это SMART_GET_VERSION. Сделал, чтобы для этой IOCTL возвращалось STATUS_SUCCESS и заполенная нулями структура. Вывод после этого: fixme:mountmgr:harddisk_ioctl returning zero-filled buffer for SMART_GET_VERSION fixme:mountmgr:harddisk_ioctl returning zero-filled buffer for SMART_GET_VERSION fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled fixme:mountmgr:harddisk_ioctl returning zero-filled buffer for SMART_GET_VERSION fixme:mountmgr:harddisk_ioctl Unsupported ioctl 7c088 (device=7 access=3 func=22 method=0) fixme:mountmgr:harddisk_ioctl returning zero-filled buffer for SMART_GET_VERSION fixme:mountmgr:harddisk_ioctl Unsupported ioctl 7c088 (device=7 access=3 func=22 method=0)
> Проблему с подключением исправил. Теперь ключ находится, но после нажатия на > "Подключиться к выбранным ключам" выводит сообщение о том, что ключи не > найдены. Проблема оказалась в том, что в vbox была снята галочка с устройства ключа в меню. Единственная оставшаяся проблема: если 1С нашла ключ, то при закрытии окна её процесс не завершается и не освобождает консоль.
> Единственная оставшаяся проблема: если 1С нашла ключ, то при закрытии окна её > процесс не завершается и не освобождает консоль. Через некоторое время 1С консоль освобождает, так что проблема некритичная.
Принято.
Закрываю.