From: Kamil Dudka Date: Tue, 9 Nov 2010 16:04:04 +0000 (+0100) Subject: ftp: treat server's response 421 as CURLE_OPERATION_TIMEDOUT X-Git-Tag: curl-7_21_3~79 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=12b2412c5217b105a86ccda57f261a33fcfd4d62;p=curl ftp: treat server's response 421 as CURLE_OPERATION_TIMEDOUT Bug: https://bugzilla.redhat.com/650255 Reported by: Simon H. --- 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; }