Yet another curl_off_t printf format attempt, we now exclude the %-letter from
FORMAT_OFF_T to allow additional options to get specified, like with '"%5" FORMAT_OFF_T'.
This commit is contained in:
Родитель
9f437269fb
Коммит
353f764119
|
@ -191,7 +191,7 @@ CURLcode Curl_file(struct connectdata *conn)
|
|||
date. */
|
||||
if(data->set.no_body && data->set.include_header && fstated) {
|
||||
CURLcode result;
|
||||
sprintf(buf, "Content-Length: " FORMAT_OFF_T "\r\n", expected_size);
|
||||
sprintf(buf, "Content-Length: %" FORMAT_OFF_T "\r\n", expected_size);
|
||||
result = Curl_client_write(data, CLIENTWRITE_BOTH, buf, 0);
|
||||
if(result)
|
||||
return result;
|
||||
|
|
35
lib/ftp.c
35
lib/ftp.c
|
@ -732,7 +732,8 @@ CURLcode Curl_ftp_done(struct connectdata *conn)
|
|||
if((-1 != data->set.infilesize) &&
|
||||
(data->set.infilesize != *ftp->bytecountp) &&
|
||||
!data->set.crlf) {
|
||||
failf(data, "Uploaded unaligned file size (" FORMAT_OFF_T " out of " FORMAT_OFF_T " bytes)",
|
||||
failf(data, "Uploaded unaligned file size (%" FORMAT_OFF_T
|
||||
" out of %" FORMAT_OFF_T " bytes)",
|
||||
*ftp->bytecountp, data->set.infilesize);
|
||||
conn->bits.close = TRUE; /* close this connection since we don't
|
||||
know what state this error leaves us in */
|
||||
|
@ -742,7 +743,7 @@ CURLcode Curl_ftp_done(struct connectdata *conn)
|
|||
else {
|
||||
if((-1 != conn->size) && (conn->size != *ftp->bytecountp) &&
|
||||
(conn->maxdownload != *ftp->bytecountp)) {
|
||||
failf(data, "Received only partial file: " FORMAT_OFF_T " bytes",
|
||||
failf(data, "Received only partial file: %" FORMAT_OFF_T " bytes",
|
||||
*ftp->bytecountp);
|
||||
conn->bits.close = TRUE; /* close this connection since we don't
|
||||
know what state this error leaves us in */
|
||||
|
@ -1751,8 +1752,8 @@ CURLcode Curl_ftp_nextconnect(struct connectdata *conn)
|
|||
|
||||
passed += actuallyread;
|
||||
if(actuallyread != readthisamountnow) {
|
||||
failf(data, "Could only read " FORMAT_OFF_T " bytes from the input",
|
||||
passed);
|
||||
failf(data, "Could only read %" FORMAT_OFF_T
|
||||
" bytes from the input", passed);
|
||||
return CURLE_FTP_COULDNT_USE_REST;
|
||||
}
|
||||
}
|
||||
|
@ -1849,24 +1850,25 @@ CURLcode Curl_ftp_nextconnect(struct connectdata *conn)
|
|||
if((-1 == to) && (from>=0)) {
|
||||
/* X - */
|
||||
conn->resume_from = from;
|
||||
infof(data, "FTP RANGE " FORMAT_OFF_T " to end of file\n", from);
|
||||
infof(data, "FTP RANGE %" FORMAT_OFF_T " to end of file\n", from);
|
||||
}
|
||||
else if(from < 0) {
|
||||
/* -Y */
|
||||
totalsize = -from;
|
||||
conn->maxdownload = -from;
|
||||
conn->resume_from = from;
|
||||
infof(data, "FTP RANGE the last " FORMAT_OFF_T " bytes\n", totalsize);
|
||||
infof(data, "FTP RANGE the last %" FORMAT_OFF_T " bytes\n", totalsize);
|
||||
}
|
||||
else {
|
||||
/* X-Y */
|
||||
totalsize = to-from;
|
||||
conn->maxdownload = totalsize+1; /* include the last mentioned byte */
|
||||
conn->resume_from = from;
|
||||
infof(data, "FTP RANGE from " FORMAT_OFF_T " getting " FORMAT_OFF_T " bytes\n", from,
|
||||
conn->maxdownload);
|
||||
infof(data, "FTP RANGE from %" FORMAT_OFF_T
|
||||
" getting %" FORMAT_OFF_T " bytes\n", from, conn->maxdownload);
|
||||
}
|
||||
infof(data, "range-download from " FORMAT_OFF_T " to " FORMAT_OFF_T ", totally " FORMAT_OFF_T " bytes\n",
|
||||
infof(data, "range-download from %" FORMAT_OFF_T
|
||||
" to %" FORMAT_OFF_T ", totally %" FORMAT_OFF_T " bytes\n",
|
||||
from, to, conn->maxdownload);
|
||||
ftp->dont_check = TRUE; /* dont check for successful transfer */
|
||||
}
|
||||
|
@ -1941,7 +1943,8 @@ CURLcode Curl_ftp_nextconnect(struct connectdata *conn)
|
|||
if(conn->resume_from< 0) {
|
||||
/* We're supposed to download the last abs(from) bytes */
|
||||
if(foundsize < -conn->resume_from) {
|
||||
failf(data, "Offset (" FORMAT_OFF_T ") was beyond file size (" FORMAT_OFF_T ")",
|
||||
failf(data, "Offset (%" FORMAT_OFF_T
|
||||
") was beyond file size (%" FORMAT_OFF_T ")",
|
||||
conn->resume_from, foundsize);
|
||||
return CURLE_FTP_BAD_DOWNLOAD_RESUME;
|
||||
}
|
||||
|
@ -1952,7 +1955,8 @@ CURLcode Curl_ftp_nextconnect(struct connectdata *conn)
|
|||
}
|
||||
else {
|
||||
if(foundsize < conn->resume_from) {
|
||||
failf(data, "Offset (" FORMAT_OFF_T ") was beyond file size (" FORMAT_OFF_T ")",
|
||||
failf(data, "Offset (%" FORMAT_OFF_T
|
||||
") was beyond file size (%" FORMAT_OFF_T ")",
|
||||
conn->resume_from, foundsize);
|
||||
return CURLE_FTP_BAD_DOWNLOAD_RESUME;
|
||||
}
|
||||
|
@ -1973,10 +1977,11 @@ CURLcode Curl_ftp_nextconnect(struct connectdata *conn)
|
|||
}
|
||||
|
||||
/* Set resume file transfer offset */
|
||||
infof(data, "Instructs server to resume from offset " FORMAT_OFF_T "\n",
|
||||
infof(data, "Instructs server to resume from offset %" FORMAT_OFF_T
|
||||
"\n",
|
||||
conn->resume_from);
|
||||
|
||||
FTPSENDF(conn, "REST " FORMAT_OFF_T "", conn->resume_from);
|
||||
FTPSENDF(conn, "REST %" FORMAT_OFF_T, conn->resume_from);
|
||||
|
||||
result = Curl_GetFTPResponse(&nread, conn, &ftpcode);
|
||||
if(result)
|
||||
|
@ -2082,7 +2087,7 @@ CURLcode Curl_ftp_nextconnect(struct connectdata *conn)
|
|||
if(size > conn->maxdownload && conn->maxdownload > 0)
|
||||
size = conn->size = conn->maxdownload;
|
||||
|
||||
infof(data, "Getting file with size: " FORMAT_OFF_T "\n", size);
|
||||
infof(data, "Getting file with size: %" FORMAT_OFF_T "\n", size);
|
||||
|
||||
/* FTP download: */
|
||||
result=Curl_Transfer(conn, SECONDARYSOCKET, size, FALSE,
|
||||
|
@ -2214,7 +2219,7 @@ CURLcode ftp_perform(struct connectdata *conn,
|
|||
result = ftp_getsize(conn, ftp->file, &filesize);
|
||||
|
||||
if(CURLE_OK == result) {
|
||||
sprintf(buf, "Content-Length: " FORMAT_OFF_T "\r\n", filesize);
|
||||
sprintf(buf, "Content-Length: %" FORMAT_OFF_T "\r\n", filesize);
|
||||
result = Curl_client_write(data, CLIENTWRITE_BOTH, buf, 0);
|
||||
if(result)
|
||||
return result;
|
||||
|
|
10
lib/http.c
10
lib/http.c
|
@ -1272,7 +1272,7 @@ CURLcode Curl_http(struct connectdata *conn)
|
|||
|
||||
passed += actuallyread;
|
||||
if(actuallyread != readthisamountnow) {
|
||||
failf(data, "Could only read " FORMAT_OFF_T
|
||||
failf(data, "Could only read %" FORMAT_OFF_T
|
||||
" bytes from the input",
|
||||
passed);
|
||||
return CURLE_READ_ERROR;
|
||||
|
@ -1312,8 +1312,8 @@ CURLcode Curl_http(struct connectdata *conn)
|
|||
curl_off_t total_expected_size=
|
||||
conn->resume_from + data->set.infilesize;
|
||||
conn->allocptr.rangeline =
|
||||
aprintf("Content-Range: bytes %s" FORMAT_OFF_T "/"
|
||||
FORMAT_OFF_T "\r\n",
|
||||
aprintf("Content-Range: bytes %s%" FORMAT_OFF_T
|
||||
"/%" FORMAT_OFF_T "\r\n",
|
||||
conn->range, total_expected_size-1,
|
||||
total_expected_size);
|
||||
}
|
||||
|
@ -1321,7 +1321,7 @@ CURLcode Curl_http(struct connectdata *conn)
|
|||
/* Range was selected and then we just pass the incoming range and
|
||||
append total size */
|
||||
conn->allocptr.rangeline =
|
||||
aprintf("Content-Range: bytes %s/" FORMAT_OFF_T "\r\n",
|
||||
aprintf("Content-Range: bytes %s/%" FORMAT_OFF_T "\r\n",
|
||||
conn->range, data->set.infilesize);
|
||||
}
|
||||
}
|
||||
|
@ -1551,7 +1551,7 @@ CURLcode Curl_http(struct connectdata *conn)
|
|||
if((data->set.infilesize>0) && !conn->bits.upload_chunky)
|
||||
/* only add Content-Length if not uploading chunked */
|
||||
add_bufferf(req_buffer,
|
||||
"Content-Length: " FORMAT_OFF_T "\r\n", /* size */
|
||||
"Content-Length: %" FORMAT_OFF_T "\r\n", /* size */
|
||||
data->set.infilesize );
|
||||
|
||||
add_bufferf(req_buffer, "\r\n");
|
||||
|
|
|
@ -60,11 +60,11 @@ static char *max5data(double bytes, char *max5)
|
|||
#define ONE_GIGABYTE (1024*1024*1024)
|
||||
|
||||
if(bytes < 100000) {
|
||||
sprintf(max5, "%5Od", (curl_off_t)bytes);
|
||||
sprintf(max5, "%5" FORMAT_OFF_T, (curl_off_t)bytes);
|
||||
return max5;
|
||||
}
|
||||
if(bytes < (10000*ONE_KILOBYTE)) {
|
||||
sprintf(max5, "%4Odk", (curl_off_t)bytes/ONE_KILOBYTE);
|
||||
sprintf(max5, "%4" FORMAT_OFF_T "k", (curl_off_t)bytes/ONE_KILOBYTE);
|
||||
return max5;
|
||||
}
|
||||
if(bytes < (100*ONE_MEGABYTE)) {
|
||||
|
@ -74,13 +74,13 @@ static char *max5data(double bytes, char *max5)
|
|||
}
|
||||
#if SIZEOF_CURL_OFF_T > 4
|
||||
if((curl_off_t)bytes < ((curl_off_t)10000*ONE_MEGABYTE)) {
|
||||
sprintf(max5, "%4OdM", (curl_off_t)bytes/ONE_MEGABYTE);
|
||||
sprintf(max5, "%4" FORMAT_OFF_T "M", (curl_off_t)bytes/ONE_MEGABYTE);
|
||||
return max5;
|
||||
}
|
||||
/* 10000 MB - 8589934587 GB !! */
|
||||
sprintf(max5, "%4.1fG", bytes/ONE_GIGABYTE);
|
||||
#else
|
||||
sprintf(max5, "%4OdM", (curl_off_t)bytes/ONE_MEGABYTE);
|
||||
sprintf(max5, "%4" FORMAT_OFF_T "M", (curl_off_t)bytes/ONE_MEGABYTE);
|
||||
#endif
|
||||
|
||||
return max5;
|
||||
|
@ -240,7 +240,7 @@ int Curl_pgrsUpdate(struct connectdata *conn)
|
|||
if (!data->progress.callback) {
|
||||
if(conn->resume_from)
|
||||
fprintf(data->set.err,
|
||||
"** Resuming transfer from byte position " FORMAT_OFF_T
|
||||
"** Resuming transfer from byte position %" FORMAT_OFF_T
|
||||
"\n",
|
||||
conn->resume_from);
|
||||
fprintf(data->set.err,
|
||||
|
|
|
@ -82,12 +82,11 @@ typedef unsigned char bool;
|
|||
|
||||
/* We set up our internal prefered (CURL_)FORMAT_OFF_T here */
|
||||
#if defined(SIZEOF_CURL_OFF_T) && (SIZEOF_CURL_OFF_T > 4)
|
||||
#define FORMAT_OFF_T "%lld"
|
||||
#define FORMAT_OFF_T "lld"
|
||||
#else
|
||||
#define FORMAT_OFF_T "%ld"
|
||||
#define FORMAT_OFF_T "ld"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef NEED_REENTRANT
|
||||
/* Solaris machines needs _REENTRANT set for a few function prototypes and
|
||||
things to appear in the #include files. We need to #define it before all
|
||||
|
|
|
@ -1240,8 +1240,8 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
|||
|
||||
if (data->set.timeout &&
|
||||
((Curl_tvdiff(k->now, k->start)/1000) >= data->set.timeout)) {
|
||||
failf (data, "Operation timed out with " FORMAT_OFF_T " out of "
|
||||
FORMAT_OFF_T " bytes received",
|
||||
failf (data, "Operation timed out with %" FORMAT_OFF_T
|
||||
" out of %" FORMAT_OFF_T " bytes received",
|
||||
k->bytecount, conn->size);
|
||||
return CURLE_OPERATION_TIMEOUTED;
|
||||
}
|
||||
|
@ -1255,7 +1255,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
|||
if(!(data->set.no_body) && (conn->size != -1) &&
|
||||
(k->bytecount != conn->size) &&
|
||||
!conn->newurl) {
|
||||
failf(data, "transfer closed with " FORMAT_OFF_T
|
||||
failf(data, "transfer closed with %" FORMAT_OFF_T
|
||||
" bytes remaining to read",
|
||||
conn->size - k->bytecount);
|
||||
return CURLE_PARTIAL_FILE;
|
||||
|
|
|
@ -2411,7 +2411,7 @@ static CURLcode CreateConnection(struct SessionHandle *data,
|
|||
if(conn->resume_from) {
|
||||
if(!conn->bits.use_range) {
|
||||
/* if it already was in use, we just skip this */
|
||||
snprintf(resumerange, sizeof(resumerange), FORMAT_OFF_T "-",
|
||||
snprintf(resumerange, sizeof(resumerange), "%" FORMAT_OFF_T "-",
|
||||
conn->resume_from);
|
||||
conn->range=strdup(resumerange); /* tell ourselves to fetch this range */
|
||||
conn->bits.rangestringalloc = TRUE; /* mark as allocated */
|
||||
|
@ -2941,7 +2941,7 @@ static CURLcode CreateConnection(struct SessionHandle *data,
|
|||
*/
|
||||
conn->resume_from = data->set.set_resume_from;
|
||||
if (conn->resume_from) {
|
||||
snprintf(resumerange, sizeof(resumerange), FORMAT_OFF_T "-",
|
||||
snprintf(resumerange, sizeof(resumerange), "%" FORMAT_OFF_T "-",
|
||||
conn->resume_from);
|
||||
if (conn->bits.rangestringalloc == TRUE)
|
||||
free(conn->range);
|
||||
|
|
Загрузка…
Ссылка в новой задаче