aboutsummaryrefslogtreecommitdiff
path: root/tests/sshhelp.pm
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2011-10-06 20:26:42 +0200
committerYang Tse <yangsita@gmail.com>2011-10-06 20:26:42 +0200
commit1958fe5745d8e7c3817108f614d319abc38a5f5f (patch)
treeac122079e53af2ca2dcce475b6567cb67b21deb0 /tests/sshhelp.pm
parentf7bfdbabf2d5398f4c266eabb0992a04af661f22 (diff)
test harness: non-stunnel https server integration overhaul
Diffstat (limited to 'tests/sshhelp.pm')
-rw-r--r--tests/sshhelp.pm117
1 files changed, 88 insertions, 29 deletions
diff --git a/tests/sshhelp.pm b/tests/sshhelp.pm
index 493cbfed8..ced9a01d1 100644
--- a/tests/sshhelp.pm
+++ b/tests/sshhelp.pm
@@ -39,6 +39,7 @@ use vars qw(
$sftpsrvexe
$sftpexe
$sshkeygenexe
+ $httptlssrvexe
$sshdconfig
$sshconfig
$sftpconfig
@@ -52,6 +53,7 @@ use vars qw(
$cliprvkeyf
$clipubkeyf
@sftppath
+ @httptlssrvpath
);
@@ -95,7 +97,7 @@ use vars qw(
find_sftpsrv
find_sftp
find_sshkeygen
- find_gnutls_serv
+ find_httptlssrv
logmsg
sshversioninfo
);
@@ -104,27 +106,28 @@ use vars qw(
#***************************************************************************
# Global variables initialization
#
-$sshdexe = 'sshd' .exe_ext(); # base name and ext of ssh daemon
-$sshexe = 'ssh' .exe_ext(); # base name and ext of ssh client
-$sftpsrvexe = 'sftp-server' .exe_ext(); # base name and ext of sftp-server
-$sftpexe = 'sftp' .exe_ext(); # base name and ext of sftp client
-$sshkeygenexe = 'ssh-keygen' .exe_ext(); # base name and ext of ssh-keygen
-$sshdconfig = 'curl_sshd_config'; # ssh daemon config file
-$sshconfig = 'curl_ssh_config'; # ssh client config file
-$sftpconfig = 'curl_sftp_config'; # sftp client config file
-$sshdlog = undef; # ssh daemon log file
-$sshlog = undef; # ssh client log file
-$sftplog = undef; # sftp client log file
-$sftpcmds = 'curl_sftp_cmds'; # sftp client commands batch file
-$knownhosts = 'curl_client_knownhosts'; # ssh knownhosts file
-$hstprvkeyf = 'curl_host_dsa_key'; # host private key file
-$hstpubkeyf = 'curl_host_dsa_key.pub'; # host public key file
-$cliprvkeyf = 'curl_client_key'; # client private key file
-$clipubkeyf = 'curl_client_key.pub'; # client public key file
+$sshdexe = 'sshd' .exe_ext(); # base name and ext of ssh daemon
+$sshexe = 'ssh' .exe_ext(); # base name and ext of ssh client
+$sftpsrvexe = 'sftp-server' .exe_ext(); # base name and ext of sftp-server
+$sftpexe = 'sftp' .exe_ext(); # base name and ext of sftp client
+$sshkeygenexe = 'ssh-keygen' .exe_ext(); # base name and ext of ssh-keygen
+$httptlssrvexe = 'gnutls-serv' .exe_ext(); # base name and ext of gnutls-serv
+$sshdconfig = 'curl_sshd_config'; # ssh daemon config file
+$sshconfig = 'curl_ssh_config'; # ssh client config file
+$sftpconfig = 'curl_sftp_config'; # sftp client config file
+$sshdlog = undef; # ssh daemon log file
+$sshlog = undef; # ssh client log file
+$sftplog = undef; # sftp client log file
+$sftpcmds = 'curl_sftp_cmds'; # sftp client commands batch file
+$knownhosts = 'curl_client_knownhosts'; # ssh knownhosts file
+$hstprvkeyf = 'curl_host_dsa_key'; # host private key file
+$hstpubkeyf = 'curl_host_dsa_key.pub'; # host public key file
+$cliprvkeyf = 'curl_client_key'; # client private key file
+$clipubkeyf = 'curl_client_key.pub'; # client public key file
#***************************************************************************
-# Absolute paths where to look for sftp-server plugin
+# Absolute paths where to look for sftp-server plugin, when not in PATH
#
@sftppath = qw(
/usr/lib/openssh
@@ -150,6 +153,30 @@ $clipubkeyf = 'curl_client_key.pub'; # client public key file
#***************************************************************************
+# Absolute paths where to look for httptlssrv (gnutls-serv), when not in PATH
+#
+@httptlssrvpath = qw(
+ /usr/sbin
+ /usr/libexec
+ /usr/lib
+ /usr/lib/misc
+ /usr/lib64/misc
+ /usr/local/bin
+ /usr/local/sbin
+ /usr/local/libexec
+ /opt/local/bin
+ /opt/local/sbin
+ /opt/local/libexec
+ /usr/freeware/bin
+ /usr/freeware/sbin
+ /usr/freeware/libexec
+ /opt/gnutls/bin
+ /opt/gnutls/sbin
+ /opt/gnutls/libexec
+ );
+
+
+#***************************************************************************
# Return file extension for executable files on this operating system
#
sub exe_ext {
@@ -273,7 +300,7 @@ sub find_file {
my @path = @_;
foreach (@path) {
my $file = File::Spec->catfile($_, $fn);
- if(-e $file) {
+ if(-e $file && ! -d $file) {
return $file;
}
}
@@ -281,9 +308,27 @@ sub find_file {
#***************************************************************************
+# Find an executable file somewhere in the given path
+#
+sub find_exe_file {
+ my $fn = $_[0];
+ shift;
+ my @path = @_;
+ my $xext = exe_ext();
+ foreach (@path) {
+ my $file = File::Spec->catfile($_, $fn);
+ if(-e $file && ! -d $file) {
+ return $file if(-x $file);
+ return $file if(($xext) && (lc($file) =~ /\Q$xext\E$/));
+ }
+ }
+}
+
+
+#***************************************************************************
# Find a file in environment path or in our sftppath
#
-sub find_sfile {
+sub find_file_spath {
my $filename = $_[0];
my @spath;
push(@spath, File::Spec->path());
@@ -291,18 +336,24 @@ sub find_sfile {
return find_file($filename, @spath);
}
+
#***************************************************************************
-# Find gnutls-serv and return canonical filename
+# Find an executable file in environment path or in our httptlssrvpath
#
-sub find_gnutls_serv {
- return find_file("gnutls-serv", split(':', $ENV{PATH}));
+sub find_exe_file_hpath {
+ my $filename = $_[0];
+ my @hpath;
+ push(@hpath, File::Spec->path());
+ push(@hpath, @httptlssrvpath);
+ return find_exe_file($filename, @hpath);
}
+
#***************************************************************************
# Find ssh daemon and return canonical filename
#
sub find_sshd {
- return find_sfile($sshdexe);
+ return find_file_spath($sshdexe);
}
@@ -310,7 +361,7 @@ sub find_sshd {
# Find ssh client and return canonical filename
#
sub find_ssh {
- return find_sfile($sshexe);
+ return find_file_spath($sshexe);
}
@@ -318,7 +369,7 @@ sub find_ssh {
# Find sftp-server plugin and return canonical filename
#
sub find_sftpsrv {
- return find_sfile($sftpsrvexe);
+ return find_file_spath($sftpsrvexe);
}
@@ -326,7 +377,7 @@ sub find_sftpsrv {
# Find sftp client and return canonical filename
#
sub find_sftp {
- return find_sfile($sftpexe);
+ return find_file_spath($sftpexe);
}
@@ -334,7 +385,15 @@ sub find_sftp {
# Find ssh-keygen and return canonical filename
#
sub find_sshkeygen {
- return find_sfile($sshkeygenexe);
+ return find_file_spath($sshkeygenexe);
+}
+
+
+#***************************************************************************
+# Find httptlssrv (gnutls-serv) and return canonical filename
+#
+sub find_httptlssrv {
+ return find_exe_file_hpath($httptlssrvexe);
}