ID: 22263
Updated by: [EMAIL PROTECTED]
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:
+Assigned To: wez
Previous Comments:
------------------------------------------------------------------------
[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