Loading lib/ftp.c +25 −13 Original line number Diff line number Diff line Loading @@ -1800,6 +1800,23 @@ static CURLcode ftp_state_quote(struct connectdata *conn, return result; } /* called from ftp_state_pasv_resp to switch to PASV in case of EPSV problems */ static CURLcode ftp_epsv_disable(struct connectdata *conn) { CURLcode result = CURLE_OK; infof(conn->data, "got positive EPSV response, but can't connect. " "Disabling EPSV\n"); /* disable it for next transfer */ conn->bits.ftp_use_epsv = FALSE; conn->data->state.errorbuf = FALSE; /* allow error message to get rewritten */ PPSENDF(&conn->proto.ftpc.pp, "PASV", NULL); conn->proto.ftpc.count1++; /* remain in the FTP_PASV state */ return result; } static CURLcode ftp_state_pasv_resp(struct connectdata *conn, int ftpcode) { Loading Loading @@ -1982,20 +1999,12 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn, Curl_resolv_unlock(data, addr); /* we're done using this address */ if(result && ftpc->count1 == 0 && ftpcode == 229) { infof(data, "got positive EPSV response, but can't connect. " "Disabling EPSV\n"); /* disable it for next transfer */ conn->bits.ftp_use_epsv = FALSE; data->state.errorbuf = FALSE; /* allow error message to get rewritten */ PPSENDF(&ftpc->pp, "PASV", NULL); ftpc->count1++; /* remain in the FTP_PASV state */ return result; } if(result) { if(ftpc->count1 == 0 && ftpcode == 229) return ftp_epsv_disable(conn); if(result) return result; } conn->bits.tcpconnect[SECONDARYSOCKET] = connected; Loading Loading @@ -2035,8 +2044,11 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn, break; } if(result) if(result) { if(ftpc->count1 == 0 && ftpcode == 229) return ftp_epsv_disable(conn); return result; } if(conn->bits.tunnel_proxy && conn->bits.httpproxy) { /* FIX: this MUST wait for a proper connect first if 'connected' is Loading Loading
lib/ftp.c +25 −13 Original line number Diff line number Diff line Loading @@ -1800,6 +1800,23 @@ static CURLcode ftp_state_quote(struct connectdata *conn, return result; } /* called from ftp_state_pasv_resp to switch to PASV in case of EPSV problems */ static CURLcode ftp_epsv_disable(struct connectdata *conn) { CURLcode result = CURLE_OK; infof(conn->data, "got positive EPSV response, but can't connect. " "Disabling EPSV\n"); /* disable it for next transfer */ conn->bits.ftp_use_epsv = FALSE; conn->data->state.errorbuf = FALSE; /* allow error message to get rewritten */ PPSENDF(&conn->proto.ftpc.pp, "PASV", NULL); conn->proto.ftpc.count1++; /* remain in the FTP_PASV state */ return result; } static CURLcode ftp_state_pasv_resp(struct connectdata *conn, int ftpcode) { Loading Loading @@ -1982,20 +1999,12 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn, Curl_resolv_unlock(data, addr); /* we're done using this address */ if(result && ftpc->count1 == 0 && ftpcode == 229) { infof(data, "got positive EPSV response, but can't connect. " "Disabling EPSV\n"); /* disable it for next transfer */ conn->bits.ftp_use_epsv = FALSE; data->state.errorbuf = FALSE; /* allow error message to get rewritten */ PPSENDF(&ftpc->pp, "PASV", NULL); ftpc->count1++; /* remain in the FTP_PASV state */ return result; } if(result) { if(ftpc->count1 == 0 && ftpcode == 229) return ftp_epsv_disable(conn); if(result) return result; } conn->bits.tcpconnect[SECONDARYSOCKET] = connected; Loading Loading @@ -2035,8 +2044,11 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn, break; } if(result) if(result) { if(ftpc->count1 == 0 && ftpcode == 229) return ftp_epsv_disable(conn); return result; } if(conn->bits.tunnel_proxy && conn->bits.httpproxy) { /* FIX: this MUST wait for a proper connect first if 'connected' is Loading