diff options
| -rw-r--r-- | tests/ftp.pm | 41 | 
1 files changed, 24 insertions, 17 deletions
| diff --git a/tests/ftp.pm b/tests/ftp.pm index 0f4976c7c..2be547fc7 100644 --- a/tests/ftp.pm +++ b/tests/ftp.pm @@ -177,36 +177,43 @@ 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); -    $pidfile = mainsockf_pidfilename($proto, $ipvnum, $idnum); -    $pid = processexists($pidfile); -    if($pid > 0) { -        printf("* kill pid for %s-%s => %d\n", $server, -            ($proto eq 'ftp')?'ctrl':'filt', $pid) if($verbose); -        kill("KILL", $pid); -        waitpid($pid, 0); +    if(!$which || ($which eq 'main')) { +        $pidfile = mainsockf_pidfilename($proto, $ipvnum, $idnum); +        $pid = processexists($pidfile); +        if($pid > 0) { +            printf("* kill pid for %s-%s => %d\n", $server, +                ($proto eq 'ftp')?'ctrl':'filt', $pid) if($verbose); +            kill("KILL", $pid); +            waitpid($pid, 0); +        } +        unlink($pidfile) if(-f $pidfile);      } -    unlink($pidfile) if(-f $pidfile);      return if($proto ne 'ftp'); -    $pidfile = datasockf_pidfilename($proto, $ipvnum, $idnum); -    $pid = processexists($pidfile); -    if($pid > 0) { -        printf("* kill pid for %s-data => %d\n", $server, -            $pid) if($verbose); -        kill("KILL", $pid); -        waitpid($pid, 0); +    if(!$which || ($which eq 'data')) { +        $pidfile = datasockf_pidfilename($proto, $ipvnum, $idnum); +        $pid = processexists($pidfile); +        if($pid > 0) { +            printf("* kill pid for %s-data => %d\n", $server, +                $pid) if($verbose); +            kill("KILL", $pid); +            waitpid($pid, 0); +        } +        unlink($pidfile) if(-f $pidfile);      } -    unlink($pidfile) if(-f $pidfile);  }  ####################################################################### | 
