secureserver.pl: update Windows detection and fix path conversion

This commit is contained in:
Marc Hoersken 2014-12-19 17:17:26 +01:00
parent 3b7bf29385
commit 6a76d3eb53
1 changed files with 14 additions and 2 deletions

View File

@ -53,6 +53,7 @@ my $ver_major;
my $ver_minor;
my $fips_support;
my $stunnel_version;
my $tstunnel_windows;
my $socketopt;
my $cmd;
@ -222,6 +223,17 @@ if($stunnel_version < 310) {
exit 1;
}
#***************************************************************************
# Find out if we are running on Windows using the tstunnel binary
#
if($stunnel =~ /tstunnel(\.exe)?"?$/) {
$tstunnel_windows = 1;
# replace Cygwin and MinGW drives within paths
$capath =~ s/^(\/cygdrive)?\/(\w)\//$2\:\//;
$certfile =~ s/^(\/cygdrive)?\/(\w)\//$2\:\//;
}
#***************************************************************************
# Build command to execute for stunnel 3.X versions
#
@ -267,7 +279,7 @@ if($stunnel_version >= 400) {
print STUNCONF "
fips = no";
}
if($stunnel !~ /tstunnel(\.exe)?"?$/) {
if(!$tstunnel_windows) {
print STUNCONF "
output = $logfile
pid = $pidfile
@ -311,7 +323,7 @@ chmod(0600, $certfile) if(-f $certfile);
#***************************************************************************
# Run tstunnel on Windows.
#
if($stunnel =~ /tstunnel(\.exe)?"?$/) {
if($tstunnel_windows) {
# Fake pidfile for tstunnel on Windows.
if(open(OUT, ">$pidfile")) {
print OUT $$ . "\n";