diff options
author | Yang Tse <yangsita@gmail.com> | 2010-01-11 04:49:13 +0000 |
---|---|---|
committer | Yang Tse <yangsita@gmail.com> | 2010-01-11 04:49:13 +0000 |
commit | cd7b12edffd4ca03081aa7fdc875c5d4181586a9 (patch) | |
tree | 7b0a7e8e9b183439ebd26957ef1dea6154d2eea1 /tests/httpsserver.pl | |
parent | 1103d0c71873fc40957618be4d851efa5019f7fe (diff) | |
download | curl-cd7b12edffd4ca03081aa7fdc875c5d4181586a9.tar.gz |
secureserver.pl is now the test harness script used for SSL/TLS.
Start using the centralized pidfile and logfile name generation
subroutines for https and ftps test suite servers.
Diffstat (limited to 'tests/httpsserver.pl')
-rw-r--r-- | tests/httpsserver.pl | 197 |
1 files changed, 0 insertions, 197 deletions
diff --git a/tests/httpsserver.pl b/tests/httpsserver.pl deleted file mode 100644 index 561d1c86e..000000000 --- a/tests/httpsserver.pl +++ /dev/null @@ -1,197 +0,0 @@ -#!/usr/bin/env perl -# -# $Id$ -# This is the HTTPS and FTPS server designed for the curl test suite. -# -# It is actually just a layer that runs stunnel properly. - -use strict; -use Cwd; - -my $stunnel = "stunnel"; - -my $verbose=0; # set to 1 for debugging - -my $port = 8991; # just our default, weird enough -my $target_port = 8999; # default test http-server port - -my $path = getcwd(); - -my $srcdir=$path; - -my $proto='https'; - -my $stuncert; - -my $ver_major; -my $ver_minor; -my $stunnel_version; -my $socketopt; -my $cmd; - -#*************************************************************************** -# Process command line options -# -while(@ARGV) { - 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 "-p") { - $proto=$ARGV[1]; - shift @ARGV; - } - 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] eq "-c") { - $stuncert=$ARGV[1]; - shift @ARGV; - } - elsif($ARGV[0] =~ /^(\d+)$/) { - $port = $1; - } - shift @ARGV; -}; - -my $conffile="$path/stunnel.conf"; # stunnel configuration data -my $certfile="$srcdir/" - . ($stuncert?"certs/$stuncert":"stunnel.pem"); # stunnel server certificate - -my $pidfile="$path/.$proto.pid"; # stunnel process pid file -my $logfile="$path/log/${proto}_stunnel.log"; # stunnel log file -my $loglevel=5; - -my $ssltext = uc($proto) ." SSL/TLS:"; - -#*************************************************************************** -# Find out version info for the given stunnel binary -# -foreach my $veropt (('-version', '-V')) { - foreach my $verstr (qx($stunnel $veropt 2>&1)) { - if($verstr =~ /^stunnel (\d+)\.(\d+) on /) { - $ver_major = $1; - $ver_minor = $2; - last; - } - } - last if($ver_major); -} -if((!$ver_major) || (!$ver_minor)) { - if(-x "$stunnel" && ! -d "$stunnel") { - print "$ssltext Unknown stunnel version\n"; - } - else { - print "$ssltext No stunnel\n"; - } - exit 1; -} -$stunnel_version = (100*$ver_major) + $ver_minor; - -#*************************************************************************** -# Verify minimmum stunnel required version -# -if($stunnel_version < 310) { - print "$ssltext Unsupported stunnel version $ver_major.$ver_minor\n"; -} - -#*************************************************************************** -# Build command to execute for stunnel 3.X versions -# -if($stunnel_version < 400) { - if($stunnel_version >= 319) { - $socketopt = "-O a:SO_REUSEADDR=1"; - } - $cmd = "$stunnel -p $certfile -P $pidfile "; - $cmd .= "-d $port -r $target_port -f -D $loglevel "; - $cmd .= ($socketopt) ? "$socketopt " : ""; - $cmd .= ">$logfile 2>&1"; - if($verbose) { - print uc($proto) ." server (stunnel $ver_major.$ver_minor)\n"; - print "cmd: $cmd\n"; - print "pem cert file: $certfile\n"; - print "pid file: $pidfile\n"; - print "log file: $logfile\n"; - print "log level: $loglevel\n"; - print "listen on port: $port\n"; - print "connect to port: $target_port\n"; - } -} - -#*************************************************************************** -# Build command to execute for stunnel 4.00 and newer -# -if($stunnel_version >= 400) { - $socketopt = "a:SO_REUSEADDR=1"; - $cmd = "$stunnel $conffile "; - $cmd .= ">$logfile 2>&1"; - # stunnel configuration file - if(open(STUNCONF, ">$conffile")) { - print STUNCONF " - CApath = $path - cert = $certfile - pid = $pidfile - debug = $loglevel - output = $logfile - socket = $socketopt - foreground = yes - - [curltest] - accept = $port - connect = $target_port - "; - if(!close(STUNCONF)) { - print "$ssltext Error closing file $conffile\n"; - exit 1; - } - } - else { - print "$ssltext Error writing file $conffile\n"; - exit 1; - } - if($verbose) { - print uc($proto) ." server (stunnel $ver_major.$ver_minor)\n"; - print "cmd: $cmd\n"; - print "CApath = $path\n"; - print "cert = $certfile\n"; - print "pid = $pidfile\n"; - print "debug = $loglevel\n"; - print "output = $logfile\n"; - print "socket = $socketopt\n"; - print "foreground = yes\n"; - print "\n"; - print "[curltest]\n"; - print "accept = $port\n"; - print "connect = $target_port\n"; - } -} - -#*************************************************************************** -# Set file permissions on certificate pem file. -# -chmod(0600, $certfile) if(-f $certfile); - -#*************************************************************************** -# Run stunnel. -# -my $rc = system($cmd); - -$rc >>= 8; -#if($rc) { -# print "stunnel exited with $rc!\n"; -#} - -unlink $conffile; - -exit $rc; |