httpsserver.pl

来自「harvest是一个下载html网页得机器人」· PL 代码 · 共 88 行

PL
88
字号
#!/usr/bin/perl## $Id: httpsserver.pl,v 1.6 2003/10/29 16:27:43 bagder Exp $# This is the HTTPS server designed for the curl test suite.## It is actually just a layer that runs stunnel properly.use strict;my $stunnel = "stunnel";## -p pemfile# -P pid dir# -d listen port# -r target port# -s stunnel pathmy $verbose=0; # set to 1 for debuggingmy $port = 8433; # just our default, weird enoughmy $target_port = 8999; # test http-server portmy $path = `pwd`;chomp $path;my $srcdir=$path;do {    if($ARGV[0] eq "-v") {        $verbose=1;    }    if($ARGV[0] eq "-w") {        return 0; # return success, means we have stunnel working!    }    elsif($ARGV[0] eq "-r") {        $target_port=$ARGV[1];        shift @ARGV;    }    elsif($ARGV[0] eq "-s") {        $stunnel=$ARGV[1];        shift @ARGV;    }    elsif($ARGV[0] eq "-d") {        $srcdir=$ARGV[1];        shift @ARGV;    }    elsif($ARGV[0] =~ /^(\d+)$/) {        $port = $1;    }} while(shift @ARGV);my $conffile="$path/stunnel.conf";	# stunnel configuration datamy $certfile="$srcdir/stunnel.pem";	# stunnel server certificatemy $pidfile="$path/.https.pid";		# stunnel process pid fileopen(CONF, ">$conffile") || return 1;print CONF "	CApath=$path	cert = $certfile	pid = $pidfile	debug = 0	output = /dev/null	foreground = yes		[curltest]	accept = $port	connect = $target_port";close CONF; #system("chmod go-rwx $conffile $certfile");	# secure permissions		# works only with stunnel versions < 4.00my $cmd="$stunnel -p $certfile -P $pidfile -d $port -r $target_port 2>/dev/null";# use some heuristics to determine stunnel versionmy $version_ge_4=system("$stunnel -V 2>&1|grep '^stunnel.* on '>/dev/null 2>&1");		# works only with stunnel versions >= 4.00if ($version_ge_4) { $cmd="$stunnel $conffile"; }if($verbose) {    print "HTTPS server: $cmd\n";}system($cmd);unlink $conffile;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?