ID:               22263
 Updated by:       [EMAIL PROTECTED]
 Reported By:      caesar_iv4 at yahoo dot com
-Status:           Open
+Status:           Feedback
 Bug Type:         Sockets related
 Operating System: win 98 SE
 PHP Version:      4.3.2-dev
 New Comment:

As Wez mentioned your script is incomplete.

You havn't defined the $SRV structure.
  Sure we could guess at valid values, but it's important we know what
YOU'RE attempting to pass.

Your socket_connect() line is simply wrong.
  Check the manual.

Also, when providing a reproducing script, only provide as much as is
necessary to reproduce the problem.  This means NO watchpoints, NO
commented out code lines, NO logging functions.  The only time pieces
of the above should be including in a reproducing script is when they
are necessary to cause the error.  In your case, they aren't.

Finally, I'd like to ask if you've been able to reproduce this on any
other platforms.  Win2K? XP? 95? NT4? NT3? Any variant of unix?

Thank you for your time and effort and I hope that together we can
locate and deal with this problem.


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

[2003-03-21 22:01:13] caesar_iv4 at yahoo dot com

wez
i don't know wheather you read the title
but the script crashes at
$buf = socket_read($msgsock, 2048, PHP_BINARY_READ);
whenever i close the connection using IE6 on Windows 98

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

[2003-03-18 12:36: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

Can't reproduce using supplied script + latest CVS for 4.3.2 under
winxp.

Please be more specific about the error and where the script fails.

It would also help if we don't have to fill in the other half of your
script - please try to paste a script that reproduces the problem,
preferably around 10 lines in length.


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

[2003-02-18 23:00:24] [EMAIL PROTECTED]

correct PHP version..


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

[2003-02-17 23:51:11] caesar_iv4 at yahoo dot com

I use php 4.3.2 latest cvs 
even php 5 and it stil occurs

i am trying to write a small php-based httpdeamon and when i was
testing it with IE6, open the connection and the page starts loading,
but when i click on stop i get the usual crashed program box

here's the script:
<?
function& sock() {
        global $SRV;
        if (($sock = socket_create (AF_INET, SOCK_STREAM, 0)) < 0)
                sock_err($sock,"socket_create()");
        if (($ret = socket_bind ($sock, $SRV["IP"], $SRV["PORT"])) < 0)
                sock_err($sock,"socket_bind()");
        if (($ret = socket_listen ($sock, $SRV["MAX_CL"])) < 0)
                sock_err($sock,"socket_listen()");
        return $sock;
}
function send(&$sock,$msg,$echo=true) {
        global $CORE_DUMP;
//      socket_write($sock,$msg,strlen($msg));
        fwrite($CORE_DUMP,$msg,strlen($msg));
        if($echo)
                echo $msg;
}
function log_access($ip) {
        global $LOG_ACCESS;
        $str = date("r")."  ".$ip."\n";
        fwrite($LOG_ACCESS,$str,strlen($str));
}
function sock_err(&$sock,$fn) {
        global $LOG_ERROR;
        $str = $fn." failed, reason:
".socket_strerror(socket_last_error($sock));
        echo $str;
        fwrite($LOG_ERROR,$str,strlen($str));
}

error_reporting (E_ALL); 

set_time_limit (0);
ob_implicit_flush();
echo "07\n";
$sock = &sock();
echo "09\n";
do {
        echo "11\n";
        if (($msgsock = socket_accept(@$sock)) < 0)
                sock_err(@$msgsock,"socket_accept()");
        echo "14\n";
        socket_getpeername(@$msgsock,$ip);
        echo "15\n";
        log_access($ip);
        echo "16\n";
        $str = "";
        echo "18\n";
        $i = 0;
        echo "20\n";
        while ($msgsock) {
                echo "23\n";
                if (!$msgsock)
                        break;
                echo $msgsock;
                $buf = socket_read($msgsock, 2048, PHP_BINARY_READ);
                echo "25\n";
                if (!$buf) { 
                        sock_err(@$msgsock,"socket_read()");
                        break;
                }
                echo "26\n";
                echo "28\n";
        } 
        echo "38\n";
        socket_close (@$msgsock);
        echo "40\n";
} while (@$sock);

socket_close (@$sock); 
?>

the echoes were to pin-point the problem



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


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

Reply via email to