From: Frédéric Bonnet on
Donal K. Fellows wrote:
> On 20 Mar, 15:44, "Donal K. Fellows"
> <donal.k.fell...(a)manchester.ac.uk> wrote:
>> I wasn't aware of the limitation before now, but it's now fixed (I
>> think; testing very large files isn't very portable) in the CVS HEAD.
>> Also, you would have had problems with the reported number of bytes
>> transferred when using no -size as that was an int too.
>
> BTW, there's no plan to backport this to 8.5 because it impacts an
> exported (but unsupported) API. Workaround is just to work with chunks
> smaller than 2GB at the script level, and then write Tcl code to
> handle doing more than that by calling [fcopy] repeatedly.

Cool! As for 8.5 and older, the workaround works perfectly anyway and is simple
to code.
From: Frédéric Bonnet on
Tcl Bliss wrote:
> That's interesting. Implementing "Range:" functionality has been on my
> to-do list. Haven't gotten to it yet.
> BTW, which media player/file combination support "Range:" requests? I
> wasn't aware there were any, except for, may be, Ipod/Iphone.

I'm testing my app on the "Freebox HD" IPTV set-top box (from the French ISP
"Free"), which embeds a UPnP A/V client. My server gets such requests with media
types that have metadata at the end of the file, like Matroska and AVI
containers. The Freebox issues two concurrent HTTP requests: one main request
for the data stream proper, and a second one with Range: headers for the metadata.

The djmount Linux user-space filesystem driver also sends "Range:" headers to
emulate seek calls on files mapped from a UPnP A/V Media Server.
From: Donal K. Fellows on
On 22 Mar, 21:17, Frédéric Bonnet <fredericbon...(a)free.fr> wrote:
> Cool! As for 8.5 and older, the workaround works perfectly anyway and
> is simple to code.

Yes. But I *did* commit code to 8.5 so that if a transfer over 2GB
happens (can only be in the no-size-asked-for case I think) then the
result will be of the correct reported size. That doesn't break any
API (unlike the other, alas). OTOH, I reckon that if you're doing a
big data transfer, it's probably a good idea anyway to put in progress
metering every megabyte or so. If nothing else, it lets you report
current actual transfer rates and estimate the time left. :-)

Donal.