ssh_channel_open_forward нет блокировки

Я пытаюсь реализовать клиент SSH с libssh.

Согласно документу libssh: http://api.libssh.org/stable/group__libssh__channel.html ssh_channel_open_forward поддерживает режим без блоков.

Вот моя последовательность:

1. ssh_new ()
2. ssh_set_blcoking (session, false)
3. ssh_connect ()                                      :None Blocking -> OK
4. ssh_userauth_password (session, NULL, "password")   :None Blocking -> OK
5. ssh_channel_new (session)
6. ssh_channel_set_blcoking (channel, 0)
7. ssh_channel_open_foward(...)                        :Bocking       -> NG

Я уверен, что один и тот же код в функции MaxOS(X) ssh_channel_open_foward не является тупым. В Linux(Ubuntu) и Win32(Win7/ XP) ssh_channel_open_foward блокирует.

также добавьте тестовый код: assert (ssh_is_blocking (session_->session ()) == 0). Утверждение никогда не происходит, это означает, что канал уже переключен в режим без блокировки. Но ssh_channel_open_foward никогда не возвращает SSH_AGAIN. это полностью заблокировано.

Любая помощь будет очень благодарна.

1 ответ

Это моя вина. Я проверяю мастера libssh. И перестройте его на Linux и win32. Эта проблема была исправлена.

Другие вопросы по тегам