From 258c4686b2a2e155bbc26015f9fc6e8821740cc5 Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Tue, 20 Nov 2007 14:10:09 +0000 Subject: Improve detection of sshd un/supported options. Gather additional debug info when the test suite ssh server fails to start. --- tests/sshserver.pl | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/tests/sshserver.pl b/tests/sshserver.pl index 563e9de72..695b3728d 100644 --- a/tests/sshserver.pl +++ b/tests/sshserver.pl @@ -61,6 +61,19 @@ sub searchpath { } } +# Display contents of the given file. +sub displayfile { + my ($file) = @_; + print "=== Start of file $file\n"; + if(open(SINGLE, "<$file")) { + while(my $string = ) { + print "$string"; + } + close(SINGLE); + } + print "=== End of file $file\n"; +} + # Parse options do { if($ARGV[0] eq "-v") { @@ -170,7 +183,8 @@ close CONF; # Check here for possible unsupported options, avoiding its use in sshd. sub sshd_supports_opt($) { my ($option) = @_; - my $err = grep /Unsupported .* $option/, qx($sshd -t -f $conffile -o $option=no 2>&1); + my $err = grep /((Unsupported)|(Bad configuration)|(Deprecated)) option.*$option/, + qx($sshd -t -f $conffile -o $option=no 2>&1); return !$err; } @@ -278,9 +292,13 @@ EOFSSH close SSHFILE || die "Could not close $conffile_ssh"; -if (system "$sshd -t -q -f $conffile") { +# Verify that sshd supports our configuration file +if (system "$sshd -t -f $conffile > log/sshd.log 2>&1") { # This is likely due to missing support for UsePam print "$sshd is too old and is not supported\n"; + displayfile("log/sshd.log"); + displayfile("$conffile"); + unlink "log/sshd.log"; unlink $conffile; exit 1; } @@ -291,6 +309,11 @@ $rc >>= 8; if($rc && $verbose) { print STDERR "$sshd exited with $rc!\n"; } +if($rc) { + print "$sshd exited with $rc!\n"; + displayfile("log/sshd.log"); + displayfile("$conffile"); +} unlink $conffile; -- cgit v1.2.3