From d4651994110612c476a2b65dfa0f9b4f138fca68 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Mon, 8 Jan 2007 11:24:11 +0000 Subject: [PATCH] Correct error code for CCC/SSL shutdown failure --- include/curl/curl.h | 4 ++-- lib/ftp.c | 6 ++++-- lib/sslgen.c | 6 ++++-- lib/strerror.c | 4 ++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/include/curl/curl.h b/include/curl/curl.h index 8bbdd1b24..f41067614 100644 --- a/include/curl/curl.h +++ b/include/curl/curl.h @@ -397,8 +397,8 @@ typedef enum { generic so the error message will be of interest when this has happened */ - CURLE_FTP_SSL_CCC_FAILED, /* 80 - Failed to clear the FTP command - channel */ + CURLE_SSL_SHUTDOWN_FAILED, /* 80 - Failed to shut down the SSL + connection */ CURL_LAST /* never use! */ } CURLcode; diff --git a/lib/ftp.c b/lib/ftp.c index 56b6cf229..4b6139edf 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -2563,8 +2563,10 @@ static CURLcode ftp_statemach_act(struct connectdata *conn) /* First shut down the SSL layer (note: this call will block) */ result = Curl_ssl_shutdown(conn, FIRSTSOCKET); - if(result) - return CURLE_FTP_SSL_CCC_FAILED; + if(result) { + failf(conn->data, "Failed to clear the command channel (CCC)"); + return result; + } /* Then continue as normal */ result = ftp_state_pwd(conn); diff --git a/lib/sslgen.c b/lib/sslgen.c index cc9642b66..33f038017 100644 --- a/lib/sslgen.c +++ b/lib/sslgen.c @@ -401,10 +401,12 @@ CURLcode Curl_ssl_shutdown(struct connectdata *conn, int sockindex) { if(conn->ssl[sockindex].use) { #ifdef USE_SSLEAY - return Curl_ossl_shutdown(conn, sockindex); + if(Curl_ossl_shutdown(conn, sockindex)) + return CURLE_SSL_SHUTDOWN_FAILED; #else #ifdef USE_GNUTLS - return Curl_gtls_shutdown(conn, sockindex); + if(Curl_gtls_shutdown(conn, sockindex)) + return CURLE_SSL_SHUTDOWN_FAILED; #else (void)conn; (void)sockindex; diff --git a/lib/strerror.c b/lib/strerror.c index 2634dffdb..6304fe89d 100644 --- a/lib/strerror.c +++ b/lib/strerror.c @@ -244,8 +244,8 @@ curl_easy_strerror(CURLcode error) case CURLE_FTP_SSL_FAILED: return "Requested FTP SSL level failed"; - case CURLE_FTP_SSL_CCC_FAILED: - return "Failed to clear the FTP command channel"; + case CURLE_SSL_SHUTDOWN_FAILED: + return "Failed to shut down the SSL connection"; case CURLE_SEND_FAIL_REWIND: return "Send failed since rewinding of the data stream failed";