From 33b8a94705bfbd34fbee5ed24982374e166a80d0 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 24 Mar 2013 13:09:30 +0100 Subject: stream select parameters need to be reset for each call --- inc/HTTPClient.php | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) (limited to 'inc/HTTPClient.php') diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php index 772b580b2..6d9855e12 100644 --- a/inc/HTTPClient.php +++ b/inc/HTTPClient.php @@ -570,11 +570,6 @@ class HTTPClient { * @author Tom N Harris */ function _sendData($socket, $data, $message) { - // select parameters - $sel_r = null; - $sel_w = array($socket); - $sel_e = null; - // send request $towrite = strlen($data); $written = 0; @@ -586,6 +581,10 @@ class HTTPClient { if(feof($socket)) throw new HTTPClientException("Socket disconnected while writing $message"); + // select parameters + $sel_r = null; + $sel_w = array($socket); + $sel_e = null; // wait for stream ready or timeout (1sec) if(@stream_select($sel_r,$sel_w,$sel_e,1) === false){ usleep(1000); @@ -615,11 +614,6 @@ class HTTPClient { * @author Tom N Harris */ function _readData($socket, $nbytes, $message, $ignore_eof = false) { - // select parameters - $sel_r = array($socket); - $sel_w = null; - $sel_e = null; - $r_data = ''; // Does not return immediately so timeout and eof can be checked if ($nbytes < 0) $nbytes = 0; @@ -637,6 +631,10 @@ class HTTPClient { } if ($to_read > 0) { + // select parameters + $sel_r = array($socket); + $sel_w = null; + $sel_e = null; // wait for stream ready or timeout (1sec) if(@stream_select($sel_r,$sel_w,$sel_e,1) === false){ usleep(1000); @@ -665,21 +663,20 @@ class HTTPClient { * @author Tom N Harris */ function _readLine($socket, $message) { - // select parameters - $sel_r = array($socket); - $sel_w = null; - $sel_e = null; - $r_data = ''; do { $time_used = $this->_time() - $this->start; if ($time_used > $this->timeout) throw new HTTPClientException( - sprintf('Timeout while reading %s (%.3fs)', $message, $time_used), + sprintf('Timeout while reading %s (%.3fs) >%s<', $message, $time_used, $r_data), -100); if(feof($socket)) throw new HTTPClientException("Premature End of File (socket) while reading $message"); + // select parameters + $sel_r = array($socket); + $sel_w = null; + $sel_e = null; // wait for stream ready or timeout (1sec) if(@stream_select($sel_r,$sel_w,$sel_e,1) === false){ usleep(1000); -- cgit v1.2.3 From 8f989436768f021725a023c5ae7efae150586d0c Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 24 Mar 2013 13:09:56 +0100 Subject: don't send empty cookie header --- inc/HTTPClient.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc/HTTPClient.php') diff --git a/inc/HTTPClient.php b/inc/HTTPClient.php index 6d9855e12..0d7b80cf8 100644 --- a/inc/HTTPClient.php +++ b/inc/HTTPClient.php @@ -796,7 +796,7 @@ class HTTPClient { $headers .= "$key=$val; "; } $headers = substr($headers, 0, -2); - if ($headers !== '') $headers = "Cookie: $headers".HTTP_NL; + if ($headers) $headers = "Cookie: $headers".HTTP_NL; return $headers; } -- cgit v1.2.3