From e3b4dd08ffcffc46965f5927c30e1390f6754da3 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 30 Jul 2003 07:51:33 +0000 Subject: [PATCH] Daniel Noguerol made the ftp code output "Accept-Ranges: bytes" in similar style like other faked HTTP headers when NOBODY and HEADER are used. --- lib/ftp.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/ftp.c b/lib/ftp.c index 3cbaf663d..bfe6e7a46 100644 --- a/lib/ftp.c +++ b/lib/ftp.c @@ -2032,6 +2032,8 @@ CURLcode ftp_perform(struct connectdata *conn, may not support it! It is however the only way we have to get a file's size! */ ssize_t filesize; + ssize_t nread; + int ftpcode; ftp->no_transfer = TRUE; /* this means no actual transfer is made */ @@ -2051,6 +2053,18 @@ CURLcode ftp_perform(struct connectdata *conn, return result; } + /* Determine if server can respond to REST command and therefore + whether it can do a range */ + FTPSENDF(conn, "REST 0", NULL); + result = Curl_GetFTPResponse(&nread, conn, &ftpcode); + + if ((CURLE_OK == result) && (ftpcode == 350)) { + result = Curl_client_write(data, CLIENTWRITE_BOTH, + (char *)"Accept-ranges: bytes\r\n", 0); + if(result) + return result; + } + /* If we asked for a time of the file and we actually got one as well, we "emulate" a HTTP-style header in our output. */