From: Brion Vibber Date: Wed, 10 Mar 2010 23:08:40 +0000 (-0800) Subject: Workaround intermittent bugs with HEAD requests by disabling keepalive in HTTPClient. X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=5cd020bf299619ca2844f4d14418891a59a0dd22;p=quix0rs-gnu-social.git Workaround intermittent bugs with HEAD requests by disabling keepalive in HTTPClient. I think this is a bug in Youtube's web server (sending chunked encoding of an empty body with a HEAD response, leaving the connection out of sync when it doesn't attempt to read a body) but the HTTP_Request2 library may need to be adjusted to watch out for that. --- diff --git a/lib/httpclient.php b/lib/httpclient.php index 4c3af8d7dd..64a51353c7 100644 --- a/lib/httpclient.php +++ b/lib/httpclient.php @@ -120,6 +120,16 @@ class HTTPClient extends HTTP_Request2 { $this->config['max_redirs'] = 10; $this->config['follow_redirects'] = true; + + // We've had some issues with keepalive breaking with + // HEAD requests, such as to youtube which seems to be + // emitting chunked encoding info for an empty body + // instead of not emitting anything. This may be a + // bug on YouTube's end, but the upstream libray + // ought to be investigated to see if we can handle + // it gracefully in that case as well. + $this->config['protocol_version'] = '1.0'; + parent::__construct($url, $method, $config); $this->setHeader('User-Agent', $this->userAgent()); }