1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-22 08:08:50 -05:00

Allow killsockfilters() to take a 5th optional parameter that when provided

indicates that only one of the two possible sockfilter processes should be
killed.  Valid values for this parameter are 'main' and 'data'.
This commit is contained in:
Yang Tse 2010-01-20 20:39:56 +00:00
parent 471e8eefb6
commit 422a7869be

View File

@ -177,15 +177,19 @@ sub killpid {
# killsockfilters kills sockfilter processes for a given server.
#
sub killsockfilters {
my ($proto, $ipvnum, $idnum, $verbose) = @_;
my ($proto, $ipvnum, $idnum, $verbose, $which) = @_;
my $server;
my $pidfile;
my $pid;
return if($proto !~ /^(ftp|imap|pop3|smtp)$/);
die "unsupported sockfilter: $which"
if($which && ($which !~ /^(main|data)$/));
$server = servername_id($proto, $ipvnum, $idnum) if($verbose);
if(!$which || ($which eq 'main')) {
$pidfile = mainsockf_pidfilename($proto, $ipvnum, $idnum);
$pid = processexists($pidfile);
if($pid > 0) {
@ -195,9 +199,11 @@ sub killsockfilters {
waitpid($pid, 0);
}
unlink($pidfile) if(-f $pidfile);
}
return if($proto ne 'ftp');
if(!$which || ($which eq 'data')) {
$pidfile = datasockf_pidfilename($proto, $ipvnum, $idnum);
$pid = processexists($pidfile);
if($pid > 0) {
@ -207,6 +213,7 @@ sub killsockfilters {
waitpid($pid, 0);
}
unlink($pidfile) if(-f $pidfile);
}
}
#######################################################################