reapply diff between revisions 1.103 and 1.102
This commit is contained in:
@@ -138,16 +138,16 @@ if($proto !~ /^(ftp|imap|pop3|smtp)\z/) {
|
|||||||
|
|
||||||
sub catch_zap {
|
sub catch_zap {
|
||||||
my $signame = shift;
|
my $signame = shift;
|
||||||
print STDERR "ftpserver.pl received SIG$signame, exiting\n";
|
|
||||||
ftpkillslaves(1);
|
ftpkillslaves(1);
|
||||||
|
unlink($pidfile);
|
||||||
if($serverlogslocked) {
|
if($serverlogslocked) {
|
||||||
$serverlogslocked = 0;
|
$serverlogslocked = 0;
|
||||||
clear_advisor_read_lock($SERVERLOGS_LOCK);
|
clear_advisor_read_lock($SERVERLOGS_LOCK);
|
||||||
}
|
}
|
||||||
die "Somebody sent me a SIG$signame";
|
exit;
|
||||||
}
|
}
|
||||||
$SIG{INT} = \&catch_zap;
|
$SIG{INT} = \&catch_zap;
|
||||||
$SIG{KILL} = \&catch_zap;
|
$SIG{TERM} = \&catch_zap;
|
||||||
|
|
||||||
my $sfpid;
|
my $sfpid;
|
||||||
|
|
||||||
@@ -169,6 +169,7 @@ sub sysread_or_die {
|
|||||||
logmsg "Error: ftp$ftpdnum$ext sysread error: $!\n";
|
logmsg "Error: ftp$ftpdnum$ext sysread error: $!\n";
|
||||||
kill(9, $sfpid);
|
kill(9, $sfpid);
|
||||||
waitpid($sfpid, 0);
|
waitpid($sfpid, 0);
|
||||||
|
unlink($pidfile);
|
||||||
if($serverlogslocked) {
|
if($serverlogslocked) {
|
||||||
$serverlogslocked = 0;
|
$serverlogslocked = 0;
|
||||||
clear_advisor_read_lock($SERVERLOGS_LOCK);
|
clear_advisor_read_lock($SERVERLOGS_LOCK);
|
||||||
@@ -182,6 +183,7 @@ sub sysread_or_die {
|
|||||||
logmsg "Error: ftp$ftpdnum$ext read zero\n";
|
logmsg "Error: ftp$ftpdnum$ext read zero\n";
|
||||||
kill(9, $sfpid);
|
kill(9, $sfpid);
|
||||||
waitpid($sfpid, 0);
|
waitpid($sfpid, 0);
|
||||||
|
unlink($pidfile);
|
||||||
if($serverlogslocked) {
|
if($serverlogslocked) {
|
||||||
$serverlogslocked = 0;
|
$serverlogslocked = 0;
|
||||||
clear_advisor_read_lock($SERVERLOGS_LOCK);
|
clear_advisor_read_lock($SERVERLOGS_LOCK);
|
||||||
@@ -207,6 +209,7 @@ sub startsf {
|
|||||||
logmsg "Failed sockfilt command: $cmd\n";
|
logmsg "Failed sockfilt command: $cmd\n";
|
||||||
kill(9, $sfpid);
|
kill(9, $sfpid);
|
||||||
waitpid($sfpid, 0);
|
waitpid($sfpid, 0);
|
||||||
|
unlink($pidfile);
|
||||||
if($serverlogslocked) {
|
if($serverlogslocked) {
|
||||||
$serverlogslocked = 0;
|
$serverlogslocked = 0;
|
||||||
clear_advisor_read_lock($SERVERLOGS_LOCK);
|
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();
|
startsf();
|
||||||
|
|
||||||
logmsg sprintf("%s server listens on port IPv%d/$port\n", uc($proto),
|
logmsg sprintf("%s server listens on port IPv%d/$port\n", uc($proto),
|
||||||
@@ -1110,6 +1110,8 @@ while(1) {
|
|||||||
print SFWRITE "QUIT\n";
|
print SFWRITE "QUIT\n";
|
||||||
waitpid $sfpid, 0;
|
waitpid $sfpid, 0;
|
||||||
|
|
||||||
|
unlink($pidfile);
|
||||||
|
|
||||||
if($serverlogslocked) {
|
if($serverlogslocked) {
|
||||||
$serverlogslocked = 0;
|
$serverlogslocked = 0;
|
||||||
clear_advisor_read_lock($SERVERLOGS_LOCK);
|
clear_advisor_read_lock($SERVERLOGS_LOCK);
|
||||||
|
|||||||
Reference in New Issue
Block a user