[Tokyo.pm] Re: httpd control (Long)
Yasuo Matsumoto
yasuo.matsumoto @ jalinfotec.co.jp
2000年 10月 3日 (火) 23:55:45 CDT
松本です。
Perl Multi Control(中身はただの httpd)のCGI版をつくりました。
GETの場合の値渡しは ENVを使ってやるんでしょうか。
forkとか必要なんでしょうか?
signalとかで割り込むことができるんでしょうかね。
-------------------------------------------------
use HTTP::Daemon;
use HTTP::Status;
use FindBin qw($Bin);
my $DOC_ROOT = $Bin;
my $PERL = "perl";
sub dmsg
{
print STDERR scalar localtime,": @_\n";
}
my $d = new HTTP::Daemon LocalPort => 80;
print "Please contact me at: <URL:", $d->url, ">\n";
while (my $c = $d->accept) {
while (my $r = $c->get_request){
$method = $r->method;
if ($method eq 'GET'){
my $file = $r->url->path;
dmsg $file;
if ($file =~ m|\/$| ){
$file = $file."index.html";
}
if ($file =~ m|.cgi$|) {
my $res = `$PERL $DOC_ROOT$file`;
$c->send_basic_header();
$c->send_response();
$c->send($res);
}
else{
$c->send_file_response("$DOC_ROOT$file");
}
}
elsif ($method eq 'POST'){
#
#
#
$c->send_error(RC_FORBIDDEN);
}
else{
$c->send_error(RC_FORBIDDEN);
}
}
$c->close;
undef($c);
}
Tokyo-pm メーリングリストの案内