Subject: Re: Multiple channels and epoll(7)

Re: Multiple channels and epoll(7)

From: Henrik Nordström <henrik_at_henriknordstrom.net>
Date: Thu, 26 Jun 2014 08:53:03 +0200

ons 2014-06-25 klockan 21:54 -0600 skrev Eduardo Silva:

> Just to confirm if my approach is correct:
>
> 1. i connect to the SSH server and request a tcp-forwarding

Which direction? Using libssh2_forward_listen()?

> 2. then in my program i have an epoll(7) loop looking for EPOLLIN (READ) events:

Ok.
 
> 3. for each incoming event i do:
> 3.a try to accept a channel, if it works create the channel and add
> it to a list (and jump to 3.c)

What exactly do you mean?

> 3.b if accept a channel failed, try to read for each channel
> registered in my list

Ok.

> 3.c for those channels who succeeded on reading data, write back a
> response, then close the channel (channel cleanup)

Ok.

> but for some reason i see some missing channels notifications when
> adding a simple concurrency of 2 clients. Should i use a different
> mechanism to multiplex events on different channels ?, is there
> something wrong with the proposed model ?

I don't see anything obviously wrong with what you described. The
problem is likely in the details somewhere..

How do you know that you loose channel notifications?

Regards
Henrik

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
Received on 2014-06-26