ID: 26454 Updated by: [EMAIL PROTECTED] Reported By: nunoplopes at sapo dot pt -Status: Open +Status: Feedback Bug Type: Sockets related Operating System: Windows XP - Apache PHP Version: 4CVS-2003-11-30 Assigned To: wez New Comment:
Please, just a single script, and please explain what happens and why it is wrong. Previous Comments: ------------------------------------------------------------------------ [2003-11-30 05:14:18] nunoplopes at sapo dot pt I've compiled a couple of tests and its results on my pc, using the snapshot of Nov 30, 2003 09:30 GMT. The tests andits results are at: http://testes.aborla.net/php-bugreport.tar.bz2 ------------------------------------------------------------------------ [2003-11-30 04:33:06] [EMAIL PROTECTED] Can you clarify what is happening now (with the updated snapshot)? Provide a short script and explain what happens and why you think it is wrong. Thanks! ------------------------------------------------------------------------ [2003-11-29 14:59:41] nunoplopes at sapo dot pt 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); } ?> ------------------------------------------------------------------------ [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