| Current Path : /var/www/html/mmishra/iws8/html/icdp/ |
| Current File : /var/www/html/mmishra/iws8/html/icdp/webserver.php |
<?php
echo "<html><head><title>Demo ICDP Web server!</title></head><body>";
include("icdp.inc");
error_reporting(E_ALL);
set_time_limit(0); //Timout, keep at 0
date_default_timezone_set('Asia/Calcutta');
ob_implicit_flush(); //Output data to the web brouser or console as we go
$address = '172.31.1.45'; //your ip
$port = 8080; //Port to listen
$wwwroot = '/opt/arithme/mailstore/mail.iiita.ac.in/homedirs/mmishra/icdp';
$wwwroot = '/var/www/profiles/mmishra';
$sock = socket_create(AF_INET, SOCK_STREAM, 0) or die ("socket_create() failed.");
@socket_bind($sock, $address, $port) or die ("socket_bind() failed");
@socket_listen($sock, 5) or die("socket_listen() failed");
echo "<font color='red'>Server Started on ". date('d-M-Y') .".<br><br></font>";
do {
if (($Thesocket = socket_accept($sock)) < 0) {
echo "socket_accept() failed: reason: " . socket_strerror ($msgsock) . "\n";
break;
}
if (FALSE === ($buf = socket_read($Thesocket, 2048))) {
echo "socket_read() failed: reason: " . socket_strerror ($ret) . "\n";
break 2;
}
$some = substr($buf, 4, strlen($buf));
$rest = strstr($some, " ");
$request = substr($some, 0 , strlen($some) - strlen($rest));
if($request == "/Down") die ("<br><br><font color='red'>Server Shut Down.</font>");
if (!$request) $request = "index.html";
if($request == "/"){
$request = "/index.html";
$mime = "text/html";
} else {
$rev = strrev($request);
$dot = strstr($rev, ".");
$GetEX = substr($request, strlen($dot), strlen($request) - strlen($dot));
switch($GetEX) {
case $GetEX == "gif":
$mime = "image/gif";
break;
case $GetEX == "jpg":
$mime = "image/jpeg";
break;
case $GetEX == "zip":
$mime = "aplication/zip";
break;
case $GetEX == "exe":
$mime = "aplication/exe";
break;
case $GetEX == "bmp":
$mime = "image/bmp";
break;
case $GetEX == "mov":
$mime = "video/quicktime";
break;
case $GetEX == "mp3":
$mime = "video/mpeg";
break;
case $GetEX == "mpeg":
$mime = "video/mpeg";
break;
case $GetEX == "txt":
$mime = "text/plain";
break;
case $GetEX == "css":
$mime = "text/plain";
break;
default:
$mime = "text/html";
break;
}
}
$request = str_replace("//", "/", $request);
$content = '';
$filename = $wwwroot . $request;
$fd = @fopen($filename, "rb");
if ($fd) {
$content = fread($fd, filesize($filename));
fclose($fd);
}
if (@strpos($content, 'meta name="Obsolescence-Filter" content="time"')) {
//filter web obsolescence on time
$content = obsolescence_filter_on_time($content);
}
if (@strpos($content, 'meta name="Obsolescence-Filter" content="date"')) {
//filter web obsolescence on date
$content = obsolescence_filter_on_date($content);
}
if (@strpos($content, 'meta name="Obsolescence-Filter" content="datetime"')) {
//filter web obsolescence on datetime
$content = obsolescence_filter_on_time($content);
$content = obsolescence_filter_on_date($content);
}
if ($content == "") {
$lens = strlen($content);
$datas = "HTTP/1.0 404 OBJECT NOT FOUND\r\nServer: MicahServer 3.2PHP\r\nDate: 8/01/02\r\nConnection: close\r\nContent-Length: $lens\r\nContent-Type: text/html\r\n\r\n$content";
socket_write($Thesocket, $datas, strlen ($datas));
} else {
//$lens = filesize($filename);
$lens = strlen($content);
$today = date("m.d.y");
$datas = "HTTP/1.0 200 OK\r\nServer: MicahServer 3.2PHP\r\nDate: $today\r\nConnection: close\r\nContent-Length: $lens\r\nContent-Type: $mime\r\n\r\n";
socket_send($Thesocket, $datas, strlen($datas), 0);
$S = 0;
//$DD = filesize($filename);
$DD = strlen($content);
while ($S <= $DD){
$HTML = substr($content, $S, 2048);
$S += 2048;
socket_write($Thesocket, $HTML, strlen($HTML));
}
}
echo "<pre>$buf</pre>\r\n<br>\r\n";
socket_close($Thesocket);
} while(true);
socket_close($sock);
?>