]> granicus.if.org Git - curl/commitdiff
Fixed some problems in starting SSH for use in SOCKS.
authorDan Fandrich <dan@coneharvesters.com>
Thu, 7 Jun 2007 19:49:09 +0000 (19:49 +0000)
committerDan Fandrich <dan@coneharvesters.com>
Thu, 7 Jun 2007 19:49:09 +0000 (19:49 +0000)
tests/runtests.pl
tests/sshserver.pl

index 7d1bd1df3d99bb4211454cac46b4c1a4c283cfe1..36ed610fdd57f2ab6b4e857a5e329f18086c4c7c 100755 (executable)
@@ -292,12 +292,16 @@ sub startnew {
 
     # Ugly hack but ssh doesn't support pid files
     if ($fake) {
-        logmsg "$pidfile faked with pid=$child\n";
+        logmsg "$pidfile faked with pid=$child\n" if($verbose);
         open(my $OUT, ">", $pidfile);
         print $OUT $child;
         close $OUT;
        # could/should do a while connect fails sleep a bit and loop
        sleep 1;
+        if (checkdied($child)) {
+            logmsg "startnew: Warning: child process has failed to start\n" if($verbose);
+            return (-1,-1);
+        }
     }
     my $count=12;
     while($count--) {
@@ -451,7 +455,7 @@ sub torture {
 sub stopserver {
     my ($pid) = @_;
 
-    if(not defined $pid) {
+    if(not defined $pid || $pid <= 0) {
         return; # whad'da'ya wanna'da with no pid ?
     }
 
@@ -991,7 +995,7 @@ sub runsocksserver {
     my ($sshpid, $pid2) =
         startnew($cmd, $pidfile,1); # start the server in a new process
 
-    if(!$sshpid || !kill(0, $sshpid)) {
+    if($sshpid <= 0 || !kill(0, $sshpid)) {
         # it is NOT alive
         logmsg "RUN: failed to start the SOCKS server\n";
         # failed to talk to it properly. Kill the server and return failure
@@ -2266,10 +2270,11 @@ sub startservers {
                    if ($sshversion =~ /SSH_(\d+)\.(\d+)/i) {
                        if ($1*10+$2 < 37) {
                       # need 3.7 for socks5 - http://www.openssh.com/txt/release-3.7
-                           return "ssh version ($1.$2) $sshversion insufficient need at least 3.7\n" if ($verbose);
+                           return "ssh version ($1.$2) insufficient; need at least 3.7";
                       }
+                   } else {
+                       return "Unsupported ssh client\n";
                    }
-                   
                }
                if(!$run{'socks'}) {
                     ($pid, $pid2) = runsocksserver("", $verbose);
index e24352023ca3a2da950c59be5f98e0d498898dfc..e650e289366841c47f8522f53aec2b9b7a95cd4d 100644 (file)
@@ -108,7 +108,7 @@ if ($verbose) {
 
 # Verify minimum OpenSSH version.
 if (($ssh_daemon !~ /OpenSSH/) || (10 * $ssh_ver_major + $ssh_ver_minor < 37)) {
-    print "SCP and SFTP tests require OpenSSH 3.7 or later\n";
+    print "SCP, SFTP and SOCKS tests require OpenSSH 3.7 or later\n";
     exit 1;
 }