ftp: fix "AUTH TLS" on primary conn and for SSL in PASV second conn
Follow-up to dafdb20a26
Reported-by: Anthony Hu
Closes #9948
This commit is contained in:
parent
e08382a208
commit
8ed97ad2bd
10
lib/ftp.c
10
lib/ftp.c
@ -2747,6 +2747,13 @@ static CURLcode ftp_statemachine(struct Curl_easy *data,
|
||||
if((ftpcode == 234) || (ftpcode == 334)) {
|
||||
/* this was BLOCKING, keep it so for now */
|
||||
bool done;
|
||||
if(!Curl_cfilter_ssl_added(data, conn, FIRSTSOCKET)) {
|
||||
result = Curl_cfilter_ssl_add(data, conn, FIRSTSOCKET);
|
||||
if(result) {
|
||||
/* we failed and bail out */
|
||||
return CURLE_USE_SSL_FAILED;
|
||||
}
|
||||
}
|
||||
result = Curl_cfilter_connect(data, conn, FIRSTSOCKET, TRUE, &done);
|
||||
if(!result) {
|
||||
conn->bits.ftp_use_data_ssl = FALSE; /* clear-text data */
|
||||
@ -3557,7 +3564,8 @@ static CURLcode ftp_do_more(struct Curl_easy *data, int *completep)
|
||||
if(conn->cfilter[SECONDARYSOCKET]) {
|
||||
result = Curl_cfilter_connect(data, conn, SECONDARYSOCKET,
|
||||
FALSE, &connected);
|
||||
if(result || !connected) {
|
||||
if(result ||
|
||||
(!connected && conn->sock[SECONDARYSOCKET] == CURL_SOCKET_BAD)) {
|
||||
if(result && (ftpc->count1 == 0)) {
|
||||
*completep = -1; /* go back to DOING please */
|
||||
/* this is a EPSV connect failing, try PASV instead */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user