ID: 43782 Updated by: [EMAIL PROTECTED] Reported By: ml at foofree dot sk -Status: Closed +Status: To be documented Bug Type: Streams related Operating System: * PHP Version: 5.2,5.3CVS (2008-07-15) Assigned To: dsp New Comment:
The patch was reverted as it caused problems. We might want to edit the documentation instead. Previous Comments: ------------------------------------------------------------------------ [2008-08-26 16:06:45] [EMAIL PROTECTED] This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. ------------------------------------------------------------------------ [2008-01-08 01:19:23] ml at foofree dot sk Description: ------------ >From docs: "Returns TRUE if the file pointer is at EOF or an error occurs (including socket timeout); otherwise returns FALSE." ... "If a connection opened by fsockopen() wasn't closed by the server, feof() will wait until a timeout has been reached to return TRUE. The default timeout value is 60 seconds. You may use stream_set_timeout() to change this value." feof() dows not wait and returns TRUE instead of FALSE if timeout reached (server does not closed connection and there is no data in timeout time slot). * server does not closed connection, * timeout wa reached Reproduce code: --------------- $s = stream_socket_client('tcp://www.php.net:80', $errno, $errstr, 10, STREAM_CLIENT_CONNECT); stream_set_timeout($s, 4); $response = ''; while (feof($s) !== TRUE) { if (($foo = @fread($s, 1024 * 8)) === FALSE) return NULL; $response = $response . $foo; }; print "OK"; Expected result: ---------------- prints "OK" approx. in 4 seconds Actual result: -------------- hangs forever ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=43782&edit=1