[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] client: fix corner case when sockets are manually created
[Thread Prev] | [Thread Next]
- Subject: [PATCH] client: fix corner case when sockets are manually created
- From: Luka Perkov <luka.perkov@xxxxxxxxxx>
- Reply-to: libssh@xxxxxxxxxx
- Date: Mon, 17 Mar 2014 16:10:41 +0000
- To: libssh@xxxxxxxxxx
- Cc: Luka Perkov <luka.perkov@xxxxxxxxxx>
If the sockets are created manually and passed to libssh the internal session
state is set to SSH_SESSION_STATE_SOCKET_CONNECTED. Result of this fix can be
verified by running torture_connect test (torture_connect_socket) with -vvvv
flags.
Signed-off-by: Luka Perkov <luka.perkov@xxxxxxxxxx>
---
src/client.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/client.c b/src/client.c
index 50d6d68..af525c1 100644
--- a/src/client.c
+++ b/src/client.c
@@ -60,12 +60,15 @@
static void socket_callback_connected(int code, int errno_code, void *user){
ssh_session session=(ssh_session)user;
- if(session->session_state != SSH_SESSION_STATE_CONNECTING){
+ if (session->session_state != SSH_SESSION_STATE_CONNECTING &&
+ session->session_state != SSH_SESSION_STATE_SOCKET_CONNECTED)
+ {
ssh_set_error(session,SSH_FATAL, "Wrong state in socket_callback_connected : %d",
session->session_state);
return;
}
+
SSH_LOG(SSH_LOG_RARE,"Socket connection callback: %d (%d)",code, errno_code);
if(code == SSH_SOCKET_CONNECTED_OK)
session->session_state=SSH_SESSION_STATE_SOCKET_CONNECTED;
--
1.9.0
Archive administrator: postmaster@lists.cynapses.org