mirror of
https://github.com/curl/curl.git
synced 2024-11-21 01:16:58 +08:00
Stefan Krause pointed out a compiler warning with a picky MSCV compiler when
passing a curl_off_t argument to the Curl_read_rewind() function which takes an size_t argument. Curl_read_rewind() also had debug code left in it and it was put in a different source file with no good reason when only used from one single spot.
This commit is contained in:
parent
eb29c5c285
commit
5fd096da8d
6
CHANGES
6
CHANGES
@ -7,6 +7,12 @@
|
||||
Changelog
|
||||
|
||||
Daniel (5 December 2006)
|
||||
- Stefan Krause pointed out a compiler warning with a picky MSCV compiler when
|
||||
passing a curl_off_t argument to the Curl_read_rewind() function which takes
|
||||
an size_t argument. Curl_read_rewind() also had debug code left in it and it
|
||||
was put in a different source file with no good reason when only used from
|
||||
one single spot.
|
||||
|
||||
- Sh Diao reported that CURLOPT_CLOSEPOLICY doesn't work, and indeed, there is
|
||||
no code present in the library that receives the option. Since it was not
|
||||
possible to use, we know that no current users exist and thus we simply
|
||||
|
@ -49,6 +49,7 @@ advice from friends like these:
|
||||
|
||||
James Housley, Olaf Stueben, Yang Tse, Gisle Vanem, Bradford Bruce,
|
||||
Ciprian Badescu, Dmitriy Sergeyev, Nir Soffer, Venkat Akella, Toon Verwaest,
|
||||
Matt Witherspoon, Alexey Simak, Martin Skinner, Sh Diao, Jared Lundell
|
||||
Matt Witherspoon, Alexey Simak, Martin Skinner, Sh Diao, Jared Lundell,
|
||||
Stefan Krause
|
||||
|
||||
Thanks! (and sorry if I forgot to mention someone)
|
||||
|
18
lib/sendf.c
18
lib/sendf.c
@ -455,24 +455,6 @@ CURLcode Curl_client_write(struct connectdata *conn,
|
||||
|
||||
#define MIN(a,b) (a < b ? a : b)
|
||||
|
||||
void Curl_read_rewind(struct connectdata *conn,
|
||||
size_t extraBytesRead)
|
||||
{
|
||||
char buf[512 + 1];
|
||||
size_t bytesToShow;
|
||||
|
||||
conn->read_pos -= extraBytesRead;
|
||||
conn->bits.stream_was_rewound = TRUE;
|
||||
|
||||
bytesToShow = MIN(conn->buf_len - conn->read_pos, sizeof(buf)-1);
|
||||
memcpy(buf, conn->master_buffer + conn->read_pos, bytesToShow);
|
||||
buf[bytesToShow] = '\0';
|
||||
|
||||
DEBUGF(infof(conn->data,
|
||||
"Buffer after stream rewind (read_pos = %d): [%s]",
|
||||
conn->read_pos, buf));
|
||||
}
|
||||
|
||||
/*
|
||||
* Internal read-from-socket function. This is meant to deal with plain
|
||||
* sockets, SSL sockets and kerberos sockets.
|
||||
|
@ -266,6 +266,32 @@ static int data_pending(struct connectdata *conn)
|
||||
#define data_pending(x) 0
|
||||
#endif
|
||||
|
||||
#ifndef MIN
|
||||
#define MIN(a,b) (a < b ? a : b)
|
||||
#endif
|
||||
|
||||
static void read_rewind(struct connectdata *conn,
|
||||
size_t thismuch)
|
||||
{
|
||||
conn->read_pos -= thismuch;
|
||||
conn->bits.stream_was_rewound = TRUE;
|
||||
|
||||
#ifdef CURLDEBUG
|
||||
{
|
||||
char buf[512 + 1];
|
||||
size_t show;
|
||||
|
||||
show = MIN(conn->buf_len - conn->read_pos, sizeof(buf)-1);
|
||||
memcpy(buf, conn->master_buffer + conn->read_pos, show);
|
||||
buf[show] = '\0';
|
||||
|
||||
DEBUGF(infof(conn->data,
|
||||
"Buffer after stream rewind (read_pos = %d): [%s]",
|
||||
conn->read_pos, buf));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Curl_readwrite() is the low-level function to be called when data is to
|
||||
* be read and written to/from the connection.
|
||||
@ -1145,8 +1171,9 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
||||
|
||||
if((-1 != k->maxdownload) &&
|
||||
(k->bytecount + nread >= k->maxdownload)) {
|
||||
curl_off_t excess = k->bytecount +
|
||||
((curl_off_t) nread) - k->maxdownload;
|
||||
/* The 'excess' amount below can't be more than BUFSIZE which
|
||||
always will fit in a size_t */
|
||||
size_t excess = k->bytecount + nread - k->maxdownload;
|
||||
if (excess > 0 && !k->ignorebody) {
|
||||
infof(data,
|
||||
"Rewinding stream by : %" FORMAT_OFF_T
|
||||
@ -1155,7 +1182,7 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
||||
", bytecount = %" FORMAT_OFF_T ", nread = %d)\n",
|
||||
excess, conn->data->reqdata.path,
|
||||
k->size, k->maxdownload, k->bytecount, nread);
|
||||
Curl_read_rewind(conn, excess);
|
||||
read_rewind(conn, excess);
|
||||
}
|
||||
|
||||
nread = (ssize_t) (k->maxdownload - k->bytecount);
|
||||
|
Loading…
Reference in New Issue
Block a user