From e7012a515cb4a66d11e4d22cba87d23ca748fbee Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 24 May 2005 09:39:56 +0000 Subject: [PATCH] Now allow TYPE responses to be any 2xx code, and log if it isn't 200. --- lib/ftp.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/ftp.c b/lib/ftp.c index 49a1d82d0..f941fea37 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -1826,10 +1826,17 @@ static CURLcode ftp_state_type_resp(struct connectdata *conn, CURLcode result = CURLE_OK; struct SessionHandle *data=conn->data; - if(ftpcode != 200) { + if(ftpcode/100 != 2) { + /* "sasserftpd" and "(u)r(x)bot ftpd" both responds with 226 after a + successful 'TYPE I'. While that is not as RFC959 says, it is still a + positive response code and we allow that. */ failf(data, "Couldn't set desired mode"); return CURLE_FTP_COULDNT_SET_BINARY; /* FIX */ } + if(ftpcode != 200) + infof(data, "Got a %03d response code instead of the assumed 200\n", + ftpcode); + if(instate == FTP_TYPE) result = ftp_state_post_type(conn); else if(instate == FTP_LIST_TYPE)