Re: [patch] Negative Content-Length

Gisle Aas <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.lwp
Message-ID <[email protected]>
Dominic Mitchell <[email protected]> writes:

> I've got a problem with an Apache server serving up files with a
> negative Content-Length header (because the file is over 2Gb).
> 
> Unfortunately, it causes LWP to not download the file at all.
> 
> I'd like to propose this small change to be allow :read_size_hint to
> be used if the Content-Length is negative.  It seems to be sensible to
> me as a way of allowing the problem to be worked around.
>
> Does the patch look reasonable?

No, I don't find it reasonable, as this is not what :read_size_hint is
documented to do.

One possibilty is to simly ignore a Content-Length header with a
negative value.  This would mean that everything that comes on the
socket until EOF is regarded the message content.  I've implemented
that for LWP-5.805.

--Gisle


> --- lib/Net/HTTP/Methods.pm.orig	2005-08-02 17:39:40.775697019 +0100
> +++ lib/Net/HTTP/Methods.pm	2005-08-02 17:26:35.000000000 +0100
> @@ -479,7 +479,7 @@
>  	    return 0;
>  	}
>  	my $n = $bytes;
> -	$n = $size if $size && $size < $n;
> +	$n = $size if $size && ($n < 0 || $size < $n);
>  	$n = my_read($self, $$buf_ref, $n);
>  	return undef unless defined $n;
>  	${*$self}{'http_bytes'} = $bytes - $n;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.