ID: 26454 User updated by: nunoplopes at sapo dot pt Reported By: nunoplopes at sapo dot pt -Status: Feedback +Status: Open Bug Type: Sockets related Operating System: Windows XP - Apache PHP Version: 4.3.5-dev New Comment:
I've installed the new snapshot (Nov 29, 2003 17:30 GMT). The script still times out. The example I wrote before still doesn't work, but there is other with feof that works. Really strange.... Working script: <? $fp = fsockopen ("pt.php.net", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br>\n"; } else { fputs ($fp, "GET / HTTP/1.1\r\n"); fputs ($fp, "Host: pt.php.net\r\n"); fputs ($fp, "Connection: Close\r\n\r\n"); while (!feof($fp)) { echo fgets ($fp,128); } fclose ($fp); } ?> Previous Comments: ------------------------------------------------------------------------ [2003-11-29 07:00:54] [EMAIL PROTECTED] oops; please try the next snapshot in 3.5 hours time. ------------------------------------------------------------------------ [2003-11-29 05:08:15] nunoplopes at sapo dot pt I've downloaded the latest cvs snapshot but the script continues to time out. In http://snaps.php.net/win32/compile-STABLE.log there is an error compiling main\network.c. Maybe its because of that error. ------------------------------------------------------------------------ [2003-11-28 17:26:23] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php4-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php4-win32-STABLE-latest.zip Please try the snapshot that will be generated in about 4 hours (from the time of this post). ------------------------------------------------------------------------ [2003-11-28 15:17:56] nunoplopes at sapo dot pt Description: ------------ I opened a socket using fsockopen and then I send some data using fputs. Then I try to read data either using feof of fgets. If the servers returns 2 lines and I call three times the fgets(), the script times out when it reaches the 30 seconds. If I only call fgets 2 times, everything works fine. feof also stops the script execution. So, I have no way to know if servers' response has ended or not. Reproduce code: --------------- Get the code from CVS at: http://cvs.sourceforge.net/viewcvs.py/phpdocmanager/phpcvsclass/ Or just a small example: <? if ($handle = fsockopen ("cvs.php.net", 2401, $errno, $errstr, 30)) { $text = "BEGIN AUTH REQUEST\n"; $text .= "/repository\n"; $text .= "cvsread\n"; $text .= "A\n"; $text .= "END AUTH REQUEST\n"; fputs ($handle, $text); fgets($handle); // "I LOVE YOU\n" fputs ($handle, "version\n"); echo fgets($handle); echo fgets($handle); echo fgets($handle); fclose($handle); } ?> Expected result: ---------------- M Concurrent Versions System (CVS) 1.12.2 (client/server)\n ok Actual result: -------------- timeout ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=26454&edit=1