mirror of
https://github.com/curl/curl.git
synced 2026-08-25 17:13:31 +03:00
always-multi: always use non-blocking internals
Remove internal separated behavior of the easy vs multi intercace. curl_easy_perform() is now using the multi interface itself. Several minor multi interface quirks and bugs have been fixed in the process. Much help with debugging this has been provided by: Yang Tse
This commit is contained in:
parent
9fd88abb70
commit
c43127414d
54 changed files with 490 additions and 884 deletions
28
lib/ssh.c
28
lib/ssh.c
|
|
@ -5,7 +5,7 @@
|
|||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
* Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
|
|
@ -2793,13 +2793,7 @@ static CURLcode ssh_connect(struct connectdata *conn, bool *done)
|
|||
|
||||
state(conn, SSH_INIT);
|
||||
|
||||
if(data->state.used_interface == Curl_if_multi)
|
||||
result = ssh_multi_statemach(conn, done);
|
||||
else {
|
||||
result = ssh_easy_statemach(conn, TRUE);
|
||||
if(!result)
|
||||
*done = TRUE;
|
||||
}
|
||||
result = ssh_multi_statemach(conn, done);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
@ -2828,13 +2822,8 @@ CURLcode scp_perform(struct connectdata *conn,
|
|||
state(conn, SSH_SCP_TRANS_INIT);
|
||||
|
||||
/* run the state-machine */
|
||||
if(conn->data->state.used_interface == Curl_if_multi) {
|
||||
result = ssh_multi_statemach(conn, dophase_done);
|
||||
}
|
||||
else {
|
||||
result = ssh_easy_statemach(conn, FALSE);
|
||||
*dophase_done = TRUE; /* with the easy interface we are done here */
|
||||
}
|
||||
result = ssh_multi_statemach(conn, dophase_done);
|
||||
|
||||
*connected = conn->bits.tcpconnect[FIRSTSOCKET];
|
||||
|
||||
if(*dophase_done) {
|
||||
|
|
@ -3037,13 +3026,8 @@ CURLcode sftp_perform(struct connectdata *conn,
|
|||
state(conn, SSH_SFTP_QUOTE_INIT);
|
||||
|
||||
/* run the state-machine */
|
||||
if(conn->data->state.used_interface == Curl_if_multi) {
|
||||
result = ssh_multi_statemach(conn, dophase_done);
|
||||
}
|
||||
else {
|
||||
result = ssh_easy_statemach(conn, FALSE);
|
||||
*dophase_done = TRUE; /* with the easy interface we are done here */
|
||||
}
|
||||
result = ssh_multi_statemach(conn, dophase_done);
|
||||
|
||||
*connected = conn->bits.tcpconnect[FIRSTSOCKET];
|
||||
|
||||
if(*dophase_done) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue