Don't gather additional debug info unless sshd actually fails
authorYang Tse <yangsita@gmail.com>
Tue, 20 Nov 2007 16:47:56 +0000 (16:47 +0000)
committerYang Tse <yangsita@gmail.com>
Tue, 20 Nov 2007 16:47:56 +0000 (16:47 +0000)
tests/sshserver.pl

index 695b372..0492009 100644 (file)
@@ -304,17 +304,24 @@ if (system "$sshd -t -f $conffile > log/sshd.log 2>&1") {
 }
 
 # Start the server
-my $rc = system "$sshd -e -D -f $conffile > log/sshd.log 2>&1";
-$rc >>= 8;
-if($rc && $verbose) {
-    print STDERR "$sshd exited with $rc!\n";
+my $cmdretval = system "$sshd -e -D -f $conffile > log/sshd.log 2>&1";
+my $cmdnoexec = $!;
+if ($cmdretval == -1) {
+    print "$sshd failed with: \n";
+    print "$cmdnoexec \n";
+    displayfile("log/sshd.log");
+    displayfile("$conffile");
 }
-if($rc) {
-    print "$sshd exited with $rc!\n";
+elsif ($cmdretval & 127) {
+    printf("$sshd died with signal %d, and %s coredump.\n",
+           ($cmdretval & 127), ($cmdretval & 128)?"a":"no");
     displayfile("log/sshd.log");
     displayfile("$conffile");
 }
+elsif ($verbose && ($cmdretval >> 8)) {
+    printf("$sshd exited with %d \n", $cmdretval >> 8);
+}
 
 unlink $conffile;
 
-exit $rc;
+exit $cmdretval >> 8;