Some brain surgery to add event-based sockets

chapter 1- SSH Socket Connections.
I would like to be able to
-Have a ssh_poll_ctx object
-Add a ssh socket over it
-launch the socket connection (using socket functions)
-ssh_poll_ctx_dopoll()
-Wait for the timeout or have the "connected" callback called
This commit is contained in:
Aris Adamantiadis
2009-11-30 22:35:43 +01:00
parent 0bfb9d476c
commit 76d6838223
7 changed files with 135 additions and 7 deletions

View File

@@ -181,6 +181,18 @@ void ssh_socket_register_pollcallback(struct socket *s, ssh_poll_handle p){
s->poll=p;
}
/** @internal
* @brief returns the poll handle corresponding to the socket,
* creates it if it does not exist.
* @returns allocated and initialized ssh_poll_handle object
*/
ssh_poll_handle ssh_socket_get_poll_handle(struct socket *s){
if(s->poll)
return s->poll;
s->poll=ssh_poll_new(s->fd,0,ssh_socket_pollcallback,s);
return s->poll;
}
/** \internal
* \brief Deletes a socket object
*/
@@ -191,6 +203,8 @@ void ssh_socket_free(struct socket *s){
ssh_socket_close(s);
buffer_free(s->in_buffer);
buffer_free(s->out_buffer);
if(s->poll)
ssh_poll_free(s->poll);
SAFE_FREE(s);
}