From: James Housley Date: Tue, 12 Jun 2007 16:15:20 +0000 (+0000) Subject: While connect and transfer works fine in non-blocking mode for the test X-Git-Tag: curl-7_16_3~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6f59e19b91d2b1f0f05b94ec40f4f6e4d6cddbd3;p=thirdparty%2Fcurl.git While connect and transfer works fine in non-blocking mode for the test suite, transfer fails in the real world. So after connect set to blocking as full non-blocking is migrated out. --- diff --git a/lib/ssh.c b/lib/ssh.c index 28fe1ffe7d..8b58abf3eb 100644 --- a/lib/ssh.c +++ b/lib/ssh.c @@ -302,6 +302,9 @@ static CURLcode ssh_statemach_act(struct connectdata *conn) break; } + /* Set libssh2 to non-blocking, since cURL is all non-blocking */ + libssh2_session_set_blocking(ssh->ssh_session, 0); + #ifdef CURL_LIBSSH2_DEBUG /* * Before we authenticate we should check the hostkey's fingerprint @@ -654,6 +657,16 @@ static CURLcode ssh_statemach_act(struct connectdata *conn) Curl_safefree(working_path); ssh->path = real_path; + /* + ***************************************** + ***************************************** + ** TEMPORARY ** + ***************************************** + ***************************************** + */ + /* Set libssh2 to non-blocking, since cURL is all non-blocking */ + libssh2_session_set_blocking(ssh->ssh_session, 1); + /* Connect is all done */ state(conn, SSH_STOP); } @@ -832,9 +845,6 @@ CURLcode Curl_ssh_connect(struct connectdata *conn, bool *done) #endif /* CURL_LIBSSH2_DEBUG */ #if (LIBSSH2_APINO >= 200706012030) - /* Set libssh2 to non-blocking, since cURL is all non-blocking */ - libssh2_session_set_blocking(ssh->ssh_session, 0); - state(conn, SSH_S_STARTUP); if (data->state.used_interface == Curl_if_multi)