Subject: | CONNECT with Content-Length hangs the proxy |
If a client sends a CONNECT to HTTP::Proxy that includes a Content-
Length header then the result is a hang of the proxy.
It's obviously not a normal condition, but it happened on my
configuration using PHP with cURL and the Google Api library. This
library explicitly sets a Content-Length header for a POST request and
cURL sends it in the CONNECT request to the proxy. I think it's a cURL
wrong behavior, but it was much more easier to fix on the proxy side.
The solution was simply to add this line:
$len = $ct = $te = undef if $method eq "CONNECT";
after this code:
my $te = $r->header('Transfer-Encoding');
my $ct = $r->header('Content-Type');
my $len = $r->header('Content-Length');
This way wrong headers are pretty ignored.
I don't know if anyone else will ever have the same problem, I think
it's not a common situation, anyway I like to report it.