poll: Fix poll input events.

bug#38
This commit is contained in:
Andreas Schneider
2011-04-15 19:14:15 +02:00
parent e096658df3
commit fc9c61714f
3 changed files with 4 additions and 3 deletions

View File

@@ -298,8 +298,9 @@ int ssh_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout) {
*
* @param fd Socket that will be polled.
* @param events Poll events that will be monitored for the socket. i.e.
* POLLIN, POLLPRI, POLLOUT, POLLERR, POLLHUP, POLLNVAL
* POLLIN, POLLPRI, POLLOUT
* @param cb Function to be called if any of the events are set.
*
* @param userdata Userdata to be passed to the callback function. NULL if
* not needed.
*

View File

@@ -421,7 +421,7 @@ int ssh_handle_packets(ssh_session session, int timeout) {
spoll_in=ssh_socket_get_poll_handle_in(session->socket);
spoll_out=ssh_socket_get_poll_handle_out(session->socket);
if(session->server)
ssh_poll_add_events(spoll_in, POLLIN | POLLERR);
ssh_poll_add_events(spoll_in, POLLIN);
ctx=ssh_poll_get_ctx(spoll_in);
if(ctx==NULL){
ctx=ssh_poll_get_default_ctx(session);

View File

@@ -270,7 +270,7 @@ int ssh_socket_pollcallback(struct ssh_poll_handle_struct *p, socket_t fd, int r
if(s->state == SSH_SOCKET_CONNECTING){
ssh_log(s->session,SSH_LOG_PACKET,"Received POLLOUT in connecting state");
s->state = SSH_SOCKET_CONNECTED;
ssh_poll_set_events(p,POLLOUT | POLLIN | POLLERR);
ssh_poll_set_events(p,POLLOUT | POLLIN);
ssh_sock_set_blocking(ssh_socket_get_fd_in(s));
if(s->callbacks && s->callbacks->connected)
s->callbacks->connected(SSH_SOCKET_CONNECTED_OK,0,s->callbacks->userdata);