ID: 22263
Updated by: moriyoshi@php.net
Reported By: caesar_iv4 at yahoo dot com
-Status: Open
+Status: Assigned
Bug Type: Sockets related
Operating System: win 98 SE
PHP Version: 4.3.2-dev
Assigned To: jmoore
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] wez@php.net
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] sniper@php.net
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