summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: ecb58eb)
raw | patch | inline | side by side (parent: ecb58eb)
author | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Tue, 22 Jan 2008 10:59:26 +0000 (10:59 +0000) | ||
committer | hickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Tue, 22 Jan 2008 10:59:26 +0000 (10:59 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@8535 594d385d-05f5-0310-b6e9-bd551577e9d8
gosa-core/include/class_socketClient.inc | patch | blob | history |
index 6857112114b45fc0b6a1517c169ed72ac4049554..eefff1b7bd11b6df0e415b69af76d9a85be27b3c 100644 (file)
public function read()
{
// Output the request results
- $str = FALSE;
+ $str = "";
$data = "test";
socket_set_timeout($this->handle,$this->timeout);
- stream_set_blocking($this->handle,1);
-
- /* Read while last character is Newline, or we exceeded the timelimit
- */
+ stream_set_blocking($this->handle,0);
$start = microtime();
- while(!preg_match("/\\\n$/",$str) && get_MicroTimeDiff($start,microtime()) < $this->timeout) {
+
+ while(strlen($str) == 0 || get_MicroTimeDiff($start,microtime()) < $this->timeout) {
usleep(10000);
$data = fread($this->handle, 1024000);
- $str .= $data;
+ if($data && strlen($data)>0) {
+ $str .= $data;
+ } else {
+ break;
+ }
}
if(get_MicroTimeDiff($start,microtime()) >= $this->timeout){
trigger_error(sprintf("Exceeded timeout %f while reading from socket. Time spend for reading was %f.",$this->timeout,get_MicroTimeDiff($start,microtime())));
$this->b_data_send = FALSE;
$str = $this->decrypt($str);
return($str);
-
-
-# $str = FALSE;
-# if($this->handle){
-#
-# /* Check if there is something to read for us */
-# $read = array("0"=>$this->handle);
-# $write = array();
-# $accept = array();
-# $start = microtime();
-# $num = @stream_select($read,$write,$accept,floor($this->timeout), ceil($this->timeout*100000));
-# $str = "";
-# socket_set_timeout($this->handle,$this->timeout);
-#
-# /* Read data if necessary */
-# while($num && get_MicroTimeDiff($start,microtime()) < $this->timeout){
-# $str.= fread($this->handle, 1024000);
-# $read = array("0"=>$this->handle);
-# $num = stream_select($read,$write,$accept,0,200000);
-# }
-# $this->bytes_read = strlen($str);
-# $this->b_data_send = FALSE;
-# $str = $this->decrypt($str);
-# }
-# return $str;
}