libwww-perl / libwww-perl/HTTP-Daemon
CONNECT with Content-Length hangs the proxy [rt.cpan.org #76988]
Open
Nobody has claimed this yet.
- Dominant language
- Perl
- Stars
- 6
- Forks
- 17
- PR merge metrics
- No merged PRs in 30d
Description
Migrated from rt.cpan.org#76988 (status was 'new')
Requestors:
- vbuttazzo@yahoo.com
From vbuttazzo@yahoo.com on 2012-05-04 13:45:17
:
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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Locate the HTTP::Proxy request-handling code containing the Transfer-Encoding, Content-Type, and Content-Length header extraction. First reproduce a CONNECT request with Content-Length, then verify that the proxy no longer hangs and that the CONNECT request's body-related headers are ignored.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- perl
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100