From cccba72920ace26f1ecdf496546a2441304df410 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 12 Mar 2011 23:02:04 +0100 Subject: [PATCH] sftp upload: expire to advance state machine When using the multi_socket API to do SFTP upload, it is important that we set a quick expire when leaving the SSH_SFTP_UPLOAD_INIT state as there's nothing happening on the socket so there's no read or write to wait for, but the next libssh2 API function needs to be called to get the ball rolling. This is one of the problems detected by test 582. Reported by: Henry Ludemann --- lib/ssh.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/ssh.c b/lib/ssh.c index 1aaa112b4..e67dbdd8e 100644 --- a/lib/ssh.c +++ b/lib/ssh.c @@ -1599,6 +1599,11 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) figure out a "real" bitmask */ sshc->orig_waitfor = data->req.keepon; + /* since we don't really wait for anything at this point, we want the + state machine to move on as soon as possible so we set a very short + timeout here */ + Curl_expire(data, 1); + state(conn, SSH_STOP); } break;