Commit c7cdb0f2 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

make sure to "read out" the server reply even if we didn't get any data from

the server when that's the only error
parent 92aedf85
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -558,6 +558,7 @@ CURLcode Curl_ftp_done(struct connectdata *conn)
  ssize_t nread;
  char *buf = data->state.buffer; /* this is our buffer */
  int ftpcode;
  CURLcode result;

  if(data->set.upload) {
    if((-1 != data->set.infilesize) && (data->set.infilesize != *ftp->bytecountp)) {
@@ -575,8 +576,12 @@ CURLcode Curl_ftp_done(struct connectdata *conn)
    else if(!conn->bits.resume_done &&
            !data->set.no_body &&
            (0 == *ftp->bytecountp)) {
      /* We consider this an error, but there's no true FTP error received
         why we need to continue to "read out" the server response too.
         We don't want to leave a "waiting" server reply if we'll get told
         to make a second request on this same connection! */
      failf(data, "No data was received!");
      return CURLE_FTP_COULDNT_RETR_FILE;
      result = CURLE_FTP_COULDNT_RETR_FILE;
    }
  }

@@ -604,12 +609,10 @@ CURLcode Curl_ftp_done(struct connectdata *conn)
  conn->bits.resume_done = FALSE; /* clean this for next connection */

  /* Send any post-transfer QUOTE strings? */
  if(data->set.postquote) {
    CURLcode result = ftp_sendquote(conn, data->set.postquote);
    return result;
  }
  if(!result && data->set.postquote)
    result = ftp_sendquote(conn, data->set.postquote);

  return CURLE_OK;
  return result;
}

/***********************************************************************