Package: polipo
Version: 1.0.5~20091115+54-1
Severity: wishlist
Tags: upstream
It seems that polipo understands Range requests only if they have
exactly one range. This issue affected "bzr export", which complained
as follows.
Got a 200 response when asking for multiple ranges, does your server at
127.0.0.1:8080 support range requests?
Unfortunately I cannot reliably reproduce the bzr behaviour, but I can
demonstrate the basic behaviour with curl. The upstream web server
supports multiple ranges without polipo:
$ env -u http_proxy curl -svo/dev/null -r0-0,-1
http://mirror.internode.on.net/pub/test/1meg.test
* Couldn't find host mirror.internode.on.net in the .netrc file; using
defaults
* About to connect() to mirror.internode.on.net port 80 (#0)
* Trying 150.101.135.3... connected
* Connected to mirror.internode.on.net (150.101.135.3) port 80 (#0)
> GET /pub/test/1meg.test HTTP/1.1
> Range: bytes=0-0,-1
> User-Agent: W3C standards are important. Stop fucking obsessing over
user-agent already.
> Host: mirror.internode.on.net
> Accept: */*
>
< HTTP/1.1 206 Partial Content
< Server: nginx/0.8.27
< Date: Thu, 06 May 2010 06:02:23 GMT
< Content-Type: multipart/byteranges; boundary=00000000000000045559
< Content-Length: 244
< Last-Modified: Sun, 03 Jun 2007 10:15:25 GMT
< Connection: keep-alive
< Keep-Alive: timeout=20
<
{ [data not shown]
* Connection #0 to host mirror.internode.on.net left intact
* Closing connection #0
Polipo works with a single range:
$ curl -svo/dev/null -r0-0 http://mirror.internode.on.net/pub/test/1meg.test
* Couldn't find host mirror.internode.on.net in the .netrc file; using
defaults
* About to connect() to proxy 127.0.0.1 port 8080 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> GET http://mirror.internode.on.net/pub/test/1meg.test HTTP/1.1
> Range: bytes=0-0
> User-Agent: W3C standards are important. Stop fucking obsessing over
user-agent already.
> Host: mirror.internode.on.net
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 206 Partial content
< Content-Length: 1
< Content-Range: bytes 0-0/1000000
< Date: Thu, 06 May 2010 06:05:18 GMT
< Last-Modified: Sun, 03 Jun 2007 10:15:25 GMT
< Server: nginx/0.8.27
< Content-Type: application/octet-stream
< Accept-Ranges: bytes
< Connection: keep-alive
<
{ [data not shown]
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
But polipo doesn't work with multiple ranges:
$ curl -svo/dev/null -r0-0,-1
http://mirror.internode.on.net/pub/test/1meg.test
* Couldn't find host mirror.internode.on.net in the .netrc file; using
defaults
* About to connect() to proxy 127.0.0.1 port 8080 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0)
> GET http://mirror.internode.on.net/pub/test/1meg.test HTTP/1.1
> Range: bytes=0-0,-1
> User-Agent: W3C standards are important. Stop fucking obsessing over
user-agent already.
> Host: mirror.internode.on.net
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 OK
< Content-Length: 1000000
< Date: Thu, 06 May 2010 06:05:01 GMT
< Last-Modified: Sun, 03 Jun 2007 10:15:25 GMT
< Server: nginx/0.8.27
< Content-Type: application/octet-stream
< Accept-Ranges: bytes
< Connection: keep-alive
<
{ [data not shown]
* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
I'm currently running a debianized upstream snapshot, but I don't
think that matters for this specific issue.
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.34-rc6 (SMP w/2 CPU cores)
Locale: LANG=en_AU.utf8, LC_CTYPE=en_AU.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages polipo depends on:
ii dpkg 1.15.7.1 Debian package management system
ii install-info 4.13a.dfsg.1-5 Manage installed documentation in
ii libc6 2.10.2-7 Embedded GNU C Library: Shared lib
polipo recommends no packages.
polipo suggests no packages.
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]