summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlib/Vyatta/Keepalived.pm13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/Vyatta/Keepalived.pm b/lib/Vyatta/Keepalived.pm
index 437b055..403d385 100755
--- a/lib/Vyatta/Keepalived.pm
+++ b/lib/Vyatta/Keepalived.pm
@@ -164,17 +164,18 @@ sub intf_sort {
sub get_state_files {
my ($intf, $group) = @_;
+ opendir my $sdir, $state_dir
+ or die "Can't open $state_dir: $!\n";
+
my @state_files;
- my $LS;
if ($group eq "all") {
- open($LS,"ls $state_dir |grep '^vrrpd_$intf.*\.state\$' |");
+ @state_files = grep { /^vrrpd_$intf.*\.state$/ } $sdir;
} else {
my $intf_group = $intf . "_" . $group . ".state";
- open($LS,
- "ls $state_dir |grep '^vrrpd_$intf_group\$' |");
+ @state_files = grep { /^vrrpd_$intf_group$/ } $sdir;
}
- @state_files = <$LS>;
- close($LS);
+ close $sdir;
+
@state_files = intf_sort(@state_files);
foreach my $i (0 .. $#state_files) {
$state_files[$i] = "$state_dir/$state_files[$i]";