cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: libcurl, squid proxy, failing multipart post

From: Daniel Stenberg <daniel-curl_at_haxx.se>
Date: Fri, 6 May 2005 00:28:11 +0200 (CEST)

On Thu, 5 May 2005 man_at_tfhs.net wrote:

> i am getting a tcp dump now, i will send it to you directly rather than to
> the list. basically, 14 packets come in, then no more, and after the
> timeout, libcurl returns. it likely could have returned sooner on seeing the
> FIN's from the squid box

Here's what I believe happens (based on data Allan provided me, my output here
is a cut n' pasted edited version of his logs - not an exact copy):

libcurl first sends:

  POST [URL] HTTP/1.1
  User-Agent: blabla
  Host: blabla
  Pragma: no-cache
  Accept: */*
  Content-Length: 9809
  Content-Type: multipart/form-data; boundary=-----yadayada

The proxy then responds with:

  HTTP/1.0 407 Proxy Authentication Required
  Server: squid/2.5.STABLE1
  Content-Length: 1340
  X-Squid-Error: ERR_CACHE_ACCESS_DENIED 0
  Proxy-Authenticate: Basic realm="Squid proxy-caching web server"
  Proxy-Connection: close

  [1340 bytes of HTML]

Server sends TCP FIN.

... since libcurl didn't use an Expect-header, it continues and sends away
9809 bytes of formdata. It actually only manages to send two TCP packages,
both with 1448 bytes of HTTP data (in each).

The server then sends TCP RST (twice).

Then the captured trace ends.

I don't see why libcurl doesn't detect this (FIN/RST) and stops the
transfer...

-- 
  Commercial curl and libcurl Technical Support: http://haxx.se/curl.html
Received on 2005-05-06