From b945cbca52a39e48c8d40503134c3f0ce77e26d9 Mon Sep 17 00:00:00 2001 From: Aris Adamantiadis Date: Sat, 15 Jan 2011 22:43:58 +0100 Subject: Fix double-connect testcase --- src/socket.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/socket.c') diff --git a/src/socket.c b/src/socket.c index 5553d49..2404a2e 100644 --- a/src/socket.c +++ b/src/socket.c @@ -157,6 +157,25 @@ ssh_socket ssh_socket_new(ssh_session session) { return s; } +/** + * @internal + * @brief Reset the state of a socket so it looks brand-new + * @param[in] s socket to rest + */ +void ssh_socket_reset(ssh_socket s){ + s->fd_in = SSH_INVALID_SOCKET; + s->fd_out= SSH_INVALID_SOCKET; + s->last_errno = -1; + s->fd_is_socket = 1; + buffer_reinit(s->in_buffer); + buffer_reinit(s->out_buffer); + s->read_wontblock = 0; + s->write_wontblock = 0; + s->data_except = 0; + s->poll_in=s->poll_out=NULL; + s->state=SSH_SOCKET_NONE; +} + /** * @internal * @brief the socket callbacks, i.e. callbacks to be called -- cgit