On Thursday 09 July 2015 18:48:58 Игорь Коваленко wrote:
> Hello!
>
> I try to create a multithreaded ssh server.
> Main thread creates new session and accepts a connection. After acception
> each session will be processed in separate thread.
> ...
> while (1)
> {
> ssh_session session = ssh_new();
> if (session == NULL)
> {
> fprintf(stderr, "Failed to allocate session\n");
> continue;
> }
>
> /* Blocks until there is a new incoming connection. */
> if (ssh_bind_accept(m_sshbind, session) != SSH_ERROR)
> {
> // start a new thread with session
> // ...
> }
> }
> In a session's thread new event is created and event loop is started.
> Session is used only in its own thread (I hope so).
> I'm using my own thread classes.
> Do I need to call ssh_threads_set_callbacks with my own implementation of
> callbacks? If so what should do thread_id function?
All details are explained here ...
http://api.libssh.org/master/libssh_tutor_threads.html
* If pthreads is being used by your application (or your framework's backend),
you must link with libssh_threads dynamic library and initialize threading
with the ssh_threads_pthreads threading object.
* If an other threading library is being used by your application, you must
implement all the methods of the ssh_threads_callbacks_struct structure and
initialize libssh with it.
--
Andreas Schneider GPG-ID: CC014E3D
www.cryptomilk.org [email protected]