diff --git a/lib/ftp.c b/lib/ftp.c index 900def4bb..2ae973790 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -2560,12 +2560,14 @@ static CURLcode ftp_statemach_act(struct connectdata *conn) break; case FTP_CCC: - /* First shut down the SSL layer (note: this call will block) */ - result = Curl_ssl_shutdown(conn, FIRSTSOCKET); + if (ftpcode < 500) { + /* First shut down the SSL layer (note: this call will block) */ + result = Curl_ssl_shutdown(conn, FIRSTSOCKET); - if(result) { - failf(conn->data, "Failed to clear the command channel (CCC)"); - return result; + if(result) { + failf(conn->data, "Failed to clear the command channel (CCC)"); + return result; + } } /* Then continue as normal */