ID:               23837
 Updated by:       [EMAIL PROTECTED]
 Reported By:      dietrich dot ayala at foundstone dot com
-Status:           Feedback
+Status:           No Feedback
 Bug Type:         Sockets related
 Operating System: windows 2000
 PHP Version:      4.3.2RC4
 Assigned To:      wez
 New Comment:

No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Open". Thank you.




Previous Comments:
------------------------------------------------------------------------

[2003-09-11 01:08:53] [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



------------------------------------------------------------------------

[2003-05-27 17:40:23] dietrich dot ayala at foundstone dot com

Repro script is below. i tested w/ w2k+FastCGI and w2k+isapi, and could
repro the behaviour w/ both.

steps:
1. run the script
2. take host down and back up, or even just cycle the listening app on
the specified port. either one will repro the bug.
3. run the script again. if you're using isapi or fastcgi, it'll
attempt to reuse the connection, but won't reconnect, and will display
the behaviour described.

<?php

$host = 'd-w2kserv';
$port = 80;

// open connection
if(!$fp = pfsockopen($host, $port, $errno, $error_str)){
        die('error: '.$error_str.$phperrormsg);
} else {

        // write data
        $requestMsg = "GET / HTTP/1.1\r\nHost: $host\r\n\r\n";
        if([EMAIL PROTECTED]($fp, $requestMsg)) {
                die('error: '.$phperrormsg);
        }
        
        // read data
        do {
                
                // array of connections
                $read = array($fp);
                
                // use stream_select() for non-busy wait
                if (false === ($num_changed_streams = stream_select($read, $write =
NULL, $except = NULL, 0))) {
                   
                   die('Stream_select returned error: '.$phperrormsg);
                        
                // At least on one of the streams something interesting happened 
                } elseif ($num_changed_streams > 0) {
                        
                        if( !$data = @fgets($fp, 8192) ){
                                
                                die('couldnt get data from socket, or socket returned 
no data');
                                
                        }
                        print $data;
                        
                        // no more data
                        if (feof($fp) || $data === false || strlen($data) == 0) {
                                break;
                        }

                }
                
        } while(true);
}
?>

------------------------------------------------------------------------

[2003-05-27 17:16:27] [EMAIL PROTECTED]

No example script here either. Can not reproduce.


------------------------------------------------------------------------

[2003-05-27 14:47:45] [EMAIL PROTECTED]

Assigning to myself; it would be good if some other people could verify
if this problem exists on other platforms, and if this is a critical
issue.


------------------------------------------------------------------------

[2003-05-27 12:52:08] dietrich dot ayala at foundstone dot com

If I make a persistent connection to a host, then cycle the host,
subsequent requests to pfsockopen return a connection (no error), but
any subsequent calls to fgets() (and any socket-accessing kin) using
the pointer fail w/ bad connection errors.

Previously, I reported this problem when the host *never* comes back
up, and Wez fixed that. But it appears this also happens when the host
is cycled as well.

------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=23837&edit=1

Reply via email to