secureserver: Only set stunnel FIPS option when available

It seems the fips config option causes an error if FIPS mode was
not enabled at stunnel compile-time.  FIPS support was disabled
by default in stunnel 5.00, so this is probably really only needed
on versions between 4.32 and 5.00.
This commit is contained in:
Dan Fandrich 2014-02-10 20:44:28 +01:00
Родитель 909a68c121
Коммит 3a0d1bebba
1 изменённых файлов: 8 добавлений и 3 удалений

Просмотреть файл

@ -50,6 +50,7 @@ my $stuncert;
my $ver_major; my $ver_major;
my $ver_minor; my $ver_minor;
my $fips_support;
my $stunnel_version; my $stunnel_version;
my $socketopt; my $socketopt;
my $cmd; my $cmd;
@ -189,7 +190,11 @@ foreach my $veropt (('-version', '-V')) {
if($verstr =~ /^stunnel (\d+)\.(\d+) on /) { if($verstr =~ /^stunnel (\d+)\.(\d+) on /) {
$ver_major = $1; $ver_major = $1;
$ver_minor = $2; $ver_minor = $2;
last; }
elsif($verstr =~ /^sslVersion.*fips *= *yes/) {
# the fips option causes an error if stunnel doesn't support it
$fips_support = 1;
last
} }
} }
last if($ver_major); last if($ver_major);
@ -253,7 +258,8 @@ if($stunnel_version >= 400) {
cert = $certfile cert = $certfile
debug = $loglevel debug = $loglevel
socket = $socketopt"; socket = $socketopt";
if($stunnel_version >= 500) { if($fips_support) {
# disable fips in case OpenSSL doesn't support it
print STUNCONF " print STUNCONF "
fips = no"; fips = no";
} }
@ -283,7 +289,6 @@ if($stunnel_version >= 400) {
print "cert = $certfile\n"; print "cert = $certfile\n";
print "pid = $pidfile\n"; print "pid = $pidfile\n";
print "debug = $loglevel\n"; print "debug = $loglevel\n";
print "fips = no\n";
print "socket = $socketopt\n"; print "socket = $socketopt\n";
print "output = $logfile\n"; print "output = $logfile\n";
print "foreground = yes\n"; print "foreground = yes\n";