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

Reply via email to