Приветствую достойное собрание!Товарищи, помогите написать http-сервак под Linux! Нужен предмет реализации сабжа на чистом Си, желательно ОЧЕНЬ простой, т.к. в сетевом программировании я полный пень! :)
Скачал уже кучу чужих серваков с исходниками - везде одно и то же, создание сокета, акцепт, обработка запроса и выдача ответа, но только для GET !!! :(((
А вообще нужно реализовать выполнение серваком того, что описано в вот этом PHP-скрипте:
<?
error_reporting(0);
include("data/versions.inc");
/*//log section
function expl_array($arr, $t=""){
$RetStr="";
if(is_array($arr))
foreach ($arr as $key=>$value){
if (is_array($value) && count($value)>0 && $key!='GLOBALS' && $key!='_SERVER' && $key!='HTTP_SERVER_VARS' && $key!='HTTP_ENV_VARS' && $key
!='_ENV')
$RetStr.= "\n$t--> $key:".expl_array($value, $t."\t")."\n------------------------------------------------";
elseif(!is_array($value)){
$tab = str_repeat("\t", 4 - round((StrLen($key)+4)/8));
$RetStr.= "\n$t".$key."$tab= \"".trim(strip_tags($value))."\"";
}
}
return ($RetStr);
}
$log='secure/log';
if($f=@fopen($log,'a')){
fputs($f,"\n\n##".date('Y-m-d H:i:s')."++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
$s=expl_array($GLOBALS);
fputs($f,$s);
fputs($f,"\n\n++++++++++++++++++++++++++\n\n");
fclose($f);
}
//end of log section
*/
// ОСНОВНАЯ ЧАСТЬ
if(!empty($datafile)) {
$f = fopen($datafile, "r");
$buf = fread($f, $datafile_size);
fclose($f);
$f = fopen("secure/$id.log", "a");
fwrite($f, $buf, $datafile_size);
fclose($f);
}
echo "ok";
if(empty($sv)) $sv = 0;
if(empty($ts)) $ts = 0;
if($sv < $sversion) {
echo "s";
$filesize = filesize("data/soft");
$f = fopen("data/soft", "r");
$buf = fread($f, $filesize);
fclose($f);
echo $buf;
flush();
}
else if($ts < $cversion) {
echo "c";
$filesize = filesize("data/cfg");
$f = fopen("data/cfg", "r");
$buf = fread($f, $filesize);
fclose($f);
echo $buf;
flush();
}
Я вот собрался файл $datafile передавать через форму в формате multipart/form-data,
но там есть что-то типа разделителя (boundary), что с ним делать, как собирать файл по частям - для меня тёмный лес... Просветите, очень прошу!
И если есть какие-то идеи, предложения по реализации скрипта - тоже очень приветствуется!
Спасибо всем огромное заранее!
ЗЫ на www.Sources.Ru уже неделю жду ответа, так никто и не смог помочь! :(