mirror of
https://git.libssh.org/projects/libssh.git
synced 2025-08-10 06:23:01 +03:00
poll: Fix poll input events.
bug#38
This commit is contained in:
@@ -303,7 +303,7 @@ int ssh_poll(ssh_pollfd_t *fds, nfds_t nfds, int timeout) {
|
|||||||
*
|
*
|
||||||
* @param fd Socket that will be polled.
|
* @param fd Socket that will be polled.
|
||||||
* @param events Poll events that will be monitored for the socket. i.e.
|
* @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 cb Function to be called if any of the events are set.
|
||||||
* The prototype of cb is:
|
* The prototype of cb is:
|
||||||
* int (*ssh_poll_callback)(ssh_poll_handle p, socket_t fd,
|
* int (*ssh_poll_callback)(ssh_poll_handle p, socket_t fd,
|
||||||
@@ -750,7 +750,7 @@ static int ssh_event_fd_wrapper_callback(ssh_poll_handle p, socket_t fd, int rev
|
|||||||
* @param event The ssh_event
|
* @param event The ssh_event
|
||||||
* @param fd Socket that will be polled.
|
* @param fd Socket that will be polled.
|
||||||
* @param events Poll events that will be monitored for the socket. i.e.
|
* @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 cb Function to be called if any of the events are set.
|
||||||
* The prototype of cb is:
|
* The prototype of cb is:
|
||||||
* int (*ssh_event_callback)(socket_t fd, int revents,
|
* int (*ssh_event_callback)(socket_t fd, int revents,
|
||||||
|
@@ -421,7 +421,7 @@ int ssh_handle_packets(ssh_session session, int timeout) {
|
|||||||
spoll_in=ssh_socket_get_poll_handle_in(session->socket);
|
spoll_in=ssh_socket_get_poll_handle_in(session->socket);
|
||||||
spoll_out=ssh_socket_get_poll_handle_out(session->socket);
|
spoll_out=ssh_socket_get_poll_handle_out(session->socket);
|
||||||
if(session->server)
|
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);
|
ctx=ssh_poll_get_ctx(spoll_in);
|
||||||
if(ctx==NULL){
|
if(ctx==NULL){
|
||||||
ctx=ssh_poll_get_default_ctx(session);
|
ctx=ssh_poll_get_default_ctx(session);
|
||||||
|
@@ -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){
|
if(s->state == SSH_SOCKET_CONNECTING){
|
||||||
ssh_log(s->session,SSH_LOG_PACKET,"Received POLLOUT in connecting state");
|
ssh_log(s->session,SSH_LOG_PACKET,"Received POLLOUT in connecting state");
|
||||||
s->state = SSH_SOCKET_CONNECTED;
|
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));
|
ssh_sock_set_blocking(ssh_socket_get_fd_in(s));
|
||||||
if(s->callbacks && s->callbacks->connected)
|
if(s->callbacks && s->callbacks->connected)
|
||||||
s->callbacks->connected(SSH_SOCKET_CONNECTED_OK,0,s->callbacks->userdata);
|
s->callbacks->connected(SSH_SOCKET_CONNECTED_OK,0,s->callbacks->userdata);
|
||||||
|
Reference in New Issue
Block a user