From 12b2412c5217b105a86ccda57f261a33fcfd4d62 Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Tue, 9 Nov 2010 17:04:04 +0100 Subject: [PATCH] ftp: treat server's response 421 as CURLE_OPERATION_TIMEDOUT Bug: https://bugzilla.redhat.com/650255 Reported by: Simon H. --- RELEASE-NOTES | 1 + lib/ftp.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 2ade98a00..f73486614 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -24,6 +24,7 @@ This release includes the following bugfixes: o ftp: prevent server from hanging on closed data connection when stopping a transfer before the end of the full transfer (ranges) o LDAP: detect non-binary attributes properly + o ftp: treat server's response 421 as CURLE_OPERATION_TIMEDOUT This release includes the following known bugs: diff --git a/lib/ftp.c b/lib/ftp.c index d79878e82..416e5ecfa 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -425,6 +425,12 @@ static CURLcode ftp_readresp(curl_socket_t sockfd, if(ftpcode) *ftpcode = code; + if(421 == code) + /* 421 means "Service not available, closing control connection." and FTP + * servers use it to signal that idle session timeout has been exceeded. + * If we ignored the response, it could end up hanging in some cases. */ + return CURLE_OPERATION_TIMEDOUT; + return result; }