From f75ba55b517a0c84a1ea91e805a3998b0631b88f Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 29 Nov 2007 22:14:33 +0000 Subject: Fixed the resumed FTP upload loop to not require that the read callback returns a full buffer on each invoke. --- lib/ftp.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/ftp.c b/lib/ftp.c index fd24ff4df..9406f2935 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -1570,12 +1570,13 @@ static CURLcode ftp_state_ul_setup(struct connectdata *conn, conn->fread_in); passed += actuallyread; - if(actuallyread != readthisamountnow) { - failf(data, "Could only read %" FORMAT_OFF_T - " bytes from the input", passed); + if((actuallyread <= 0) || (actuallyread > readthisamountnow)) { + /* this checks for greater-than only to make sure that the + CURL_READFUNC_ABORT return code still aborts */ + failf(data, "Failed to read data"); return CURLE_FTP_COULDNT_USE_REST; } - } while(passed != data->state.resume_from); + } while(passed < data->state.resume_from); /* now, decrease the size of the read */ if(data->set.infilesize>0) { -- cgit v1.2.3