aboutsummaryrefslogtreecommitdiff
path: root/tests/sshserver.pl
diff options
context:
space:
mode:
Diffstat (limited to 'tests/sshserver.pl')
-rw-r--r--tests/sshserver.pl34
1 files changed, 24 insertions, 10 deletions
diff --git a/tests/sshserver.pl b/tests/sshserver.pl
index d20ae6935..563e9de72 100644
--- a/tests/sshserver.pl
+++ b/tests/sshserver.pl
@@ -124,6 +124,13 @@ if ($tmpstr =~ /OpenSSH[_-](\d+)\.(\d+)(\.(\d+))*/) {
($ssh_ver_major, $ssh_ver_minor, $ssh_ver_patch) = ($1, $2, $4);
$ssh_daemon = 'OpenSSH';
}
+if(!$ssh_daemon) {
+ chomp($tmpstr = qx($sshd -V 2>&1 | grep Sun_SSH));
+ if($tmpstr =~ /Sun[_-]SSH[_-](\d+)\.(\d+)/) {
+ ($ssh_ver_major, $ssh_ver_minor) = ($1, $2);
+ $ssh_daemon = 'SunSSH';
+ }
+}
if ($verbose) {
print STDERR "ssh_daemon: $ssh_daemon\n";
print STDERR "ssh_ver_major: $ssh_ver_major\n";
@@ -131,16 +138,23 @@ if ($verbose) {
print STDERR "ssh_ver_patch: $ssh_ver_patch\n";
}
-# Verify minimum OpenSSH version.
-if (($ssh_daemon !~ /OpenSSH/) || (10 * $ssh_ver_major + $ssh_ver_minor < 37)) {
- if(!$ssh_daemon) {
- print "SSH server daemon found is not an OpenSSH daemon\n";
- chomp($tmpstr = qx($sshd -V 2>&1));
- print "$tmpstr\n";
- }
- else {
- print "SSH server daemon found is OpenSSH $ssh_ver_major.$ssh_ver_minor\n";
- }
+# Verify minimum SSH daemon version.
+my $sshd_ver_ok = 1;
+if(($ssh_daemon =~ /OpenSSH/) && (10 * $ssh_ver_major + $ssh_ver_minor < 36)) {
+ print "SSH server daemon found is OpenSSH $ssh_ver_major.$ssh_ver_minor\n";
+ $sshd_ver_ok = 0;
+}
+if(($ssh_daemon =~ /SunSSH/) && (10 * $ssh_ver_major + $ssh_ver_minor < 11)) {
+ print "SSH server daemon found is SunSSH $ssh_ver_major.$ssh_ver_minor\n";
+ $sshd_ver_ok = 0;
+}
+if(!$ssh_daemon) {
+ print "SSH server daemon found is not OpenSSH nor SunSSH\n";
+ chomp($tmpstr = qx($sshd -V 2>&1));
+ print "$tmpstr\n";
+ $sshd_ver_ok = 0;
+}
+if(!$sshd_ver_ok) {
print "SCP, SFTP and SOCKS tests require OpenSSH 3.7 or later\n";
exit 1;
}