diff --git a/tests/ftp.pm b/tests/ftp.pm index 078dc61f2..25d7df745 100644 --- a/tests/ftp.pm +++ b/tests/ftp.pm @@ -1,4 +1,38 @@ -# make sure no leftovers are still running +####################################################################### +# Return the pid of the server as found in the given pid file +# +sub serverpid { + my $PIDFILE = $_[0]; + open(PFILE, "<$PIDFILE"); + my $PID=0+; + close(PFILE); + return $PID; +} + +####################################################################### +# Check the given test server if it is still alive. +# +sub checkserver { + my ($pidfile)=@_; + my $pid=0; + + # check for pidfile + if ( -f $pidfile ) { + $pid=serverpid($pidfile); + if ($pid ne "" && kill(0, $pid)) { + return $pid; + } + else { + return -$pid; # negative means dead process + } + } + return 0; +} + +############################################################################# +# Make sure no FTP leftovers are still running. Kill all slave processes. +# This uses pidfiles since it might be used by other processes. +# sub ftpkillslaves { my ($versbose) = @_; for $ext (("", "ipv6")) {