Changelog
+Daniel S (1 August 2007)
+- Greg Morse reported a problem with POSTing using ANYAUTH to a server
+ requiring NTLM, and he provided test code and a test server and we worked
+ out a bug fix. We failed to count sent body data at times, which then caused
+ internal confusions when libcurl tried to send the rest of the data in order
+ to maintain the same connection alive.
+
Daniel S (31 July 2007)
- Peter O'Gorman pointed out (and fixed) that the non-blocking check in
configure made libcurl use blocking sockets on AIX 4 and 5, while that
o HTTP Digest auth on a re-used connection
o FTPS data connection close
o AIX 4 and 5 get to use non-blocking sockets
+ o small POST with NTLM
This release includes the following known bugs:
Dan Fandrich, Song Ma, Daniel Black, Giancarlo Formicuccia, Shmulik Regev,
Daniel Cater, Colin Hogben, Jofell Gallardo, Daniel Johnson,
Ralf S. Engelschall, James Housley, Chris Flerackers, Patrick Monnerat,
- Jayesh A Shah, Greg Zavertnik, Peter O'Gorman
+ Jayesh A Shah, Greg Zavertnik, Peter O'Gorman, Greg Morse
Thanks! (and sorry if I forgot to mention someone)
static
CURLcode add_buffer_send(send_buffer *in,
struct connectdata *conn,
- long *bytes_written, /* add the number of sent
- bytes to this counter */
+ long *bytes_written, /* add the number of sent bytes
+ to this counter */
size_t included_body_bytes, /* how much of the buffer
- contains body data (for log tracing) */
+ contains body data */
int socketindex)
{
/* this data _may_ contain binary stuff */
Curl_debug(conn->data, CURLINFO_HEADER_OUT, ptr,
(size_t)(amount-included_body_bytes), conn);
- if (included_body_bytes)
+ if (included_body_bytes) {
Curl_debug(conn->data, CURLINFO_DATA_OUT,
ptr+amount-included_body_bytes,
(size_t)included_body_bytes, conn);
+ /* since we sent a piece of the body here, up the byte counter for it
+ accordingly */
+ http->writebytecount = included_body_bytes;
+ }
}
*bytes_written += amount;
/* if a line like this was already allocated, free the previous one */
if(conn->allocptr.rangeline)
free(conn->allocptr.rangeline);
- conn->allocptr.rangeline = aprintf("Range: bytes=%s\r\n", data->reqdata.range);
+ conn->allocptr.rangeline = aprintf("Range: bytes=%s\r\n",
+ data->reqdata.range);
}
else if((httpreq != HTTPREQ_GET) &&
!checkheaders(data, "Content-Range:")) {
if(!data->state.expect100header &&
(postsize < MAX_INITIAL_POST_SIZE)) {
- /* if we don't use expect:-100 AND
+ /* if we don't use expect: 100 AND
postsize is less than MAX_INITIAL_POST_SIZE
then append the post data to the HTTP request header. This limit
else
result =
Curl_setup_transfer(conn, FIRSTSOCKET, -1, TRUE,
- &http->readbytecount,
- http->postdata?FIRSTSOCKET:-1,
- http->postdata?&http->writebytecount:NULL);
+ &http->readbytecount,
+ http->postdata?FIRSTSOCKET:-1,
+ http->postdata?&http->writebytecount:NULL);
break;
default: