]> granicus.if.org Git - curl/commitdiff
reapply diff between revisions 1.103 and 1.102
authorYang Tse <yangsita@gmail.com>
Sun, 13 Dec 2009 03:44:45 +0000 (03:44 +0000)
committerYang Tse <yangsita@gmail.com>
Sun, 13 Dec 2009 03:44:45 +0000 (03:44 +0000)
tests/ftpserver.pl

index d7c4d54d9d08c3aac67b07b363f6b3fcc047d31e..812f779757f6b9cb5c79da743e90962c5841a7a7 100644 (file)
@@ -138,16 +138,16 @@ if($proto !~ /^(ftp|imap|pop3|smtp)\z/) {
 
 sub catch_zap {
     my $signame = shift;
-    print STDERR "ftpserver.pl received SIG$signame, exiting\n";
     ftpkillslaves(1);
+    unlink($pidfile);
     if($serverlogslocked) {
         $serverlogslocked = 0;
         clear_advisor_read_lock($SERVERLOGS_LOCK);
     }
-    die "Somebody sent me a SIG$signame";
+    exit;
 }
 $SIG{INT} = \&catch_zap;
-$SIG{KILL} = \&catch_zap;
+$SIG{TERM} = \&catch_zap;
 
 my $sfpid;
 
@@ -169,6 +169,7 @@ sub sysread_or_die {
         logmsg "Error: ftp$ftpdnum$ext sysread error: $!\n";
         kill(9, $sfpid);
         waitpid($sfpid, 0);
+        unlink($pidfile);
         if($serverlogslocked) {
             $serverlogslocked = 0;
             clear_advisor_read_lock($SERVERLOGS_LOCK);
@@ -182,6 +183,7 @@ sub sysread_or_die {
         logmsg "Error: ftp$ftpdnum$ext read zero\n";
         kill(9, $sfpid);
         waitpid($sfpid, 0);
+        unlink($pidfile);
         if($serverlogslocked) {
             $serverlogslocked = 0;
             clear_advisor_read_lock($SERVERLOGS_LOCK);
@@ -207,6 +209,7 @@ sub startsf {
         logmsg "Failed sockfilt command: $cmd\n";
         kill(9, $sfpid);
         waitpid($sfpid, 0);
+        unlink($pidfile);
         if($serverlogslocked) {
             $serverlogslocked = 0;
             clear_advisor_read_lock($SERVERLOGS_LOCK);
@@ -215,9 +218,6 @@ sub startsf {
     }
 }
 
-# remove the file here so that if startsf() fails, it is very noticeable 
-unlink($pidfile);
-
 startsf();
 
 logmsg sprintf("%s server listens on port IPv%d/$port\n", uc($proto),
@@ -1110,6 +1110,8 @@ while(1) {
 print SFWRITE "QUIT\n";
 waitpid $sfpid, 0;
 
+unlink($pidfile);
+
 if($serverlogslocked) {
     $serverlogslocked = 0;
     clear_advisor_read_lock($SERVERLOGS_LOCK);