From ace46cb1e1b6ef39341c73d331fcc1294c2c7e77 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Sat, 23 Feb 2008 19:36:39 +0100 Subject: [PATCH] cope with non-RFC-conform webservers in HTTPClient FS#1340 This fixes problems in the HTTP client for web servers which separate their response headers with Unix linfeeds only (instead of CRLFs as stated in RFC 2616). darcs-hash:20080223183639-7ad00-057b05a1134cbe2b8edb2d38d5a74912360cd071.gz --- inc/HTTPClient.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php index 23a376c39..e34027d02 100644 --- a/inc/HTTPClient.php +++ b/inc/HTTPClient.php @@ -228,13 +228,13 @@ class HTTPClient { $this->error = 'Premature End of File (socket)'; return false; } - $r_headers .= fread($socket,1); #FIXME read full lines here? - }while(!preg_match('/\r\n\r\n$/',$r_headers)); + $r_headers .= fgets($socket,1024); + }while(!preg_match('/\r?\n\r?\n$/',$r_headers)); $this->_debug('response headers',$r_headers); // check if expected body size exceeds allowance - if($this->max_bodysize && preg_match('/\r\nContent-Length:\s*(\d+)\r\n/i',$r_headers,$match)){ + if($this->max_bodysize && preg_match('/\r?\nContent-Length:\s*(\d+)\r?\n/i',$r_headers,$match)){ if($match[1] > $this->max_bodysize){ $this->error = 'Reported content length exceeds allowed response size'; return false; -- GitLab