From a36eb12e230b7e52ea8466325edda1a13cec69a7 Mon Sep 17 00:00:00 2001 From: Pim van den Berg Date: Sat, 22 Mar 2014 14:03:26 +0100 Subject: inc/collectd.inc.php: use RegexIterator + strip $dir from result --- inc/collectd.inc.php | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'inc') diff --git a/inc/collectd.inc.php b/inc/collectd.inc.php index fa1cb85..327b5e6 100644 --- a/inc/collectd.inc.php +++ b/inc/collectd.inc.php @@ -23,17 +23,16 @@ function collectd_hosts() { # return files in directory. this will recurse into subdirs # infinite loop may occur function get_host_rrd_files($dir) { - $files = array(); - $objects = new RecursiveIteratorIterator( + $objects = new RegexIterator( + new RecursiveIteratorIterator( new RecursiveDirectoryIterator($dir), - RecursiveIteratorIterator::SELF_FIRST); + RecursiveIteratorIterator::SELF_FIRST), + '/\.rrd$/'); - foreach($objects as $name => $object) { - if ( $object->getExtension() == 'rrd') { - $files[] = $object->getPathname(); - } + foreach($objects as $object) { + $files[] = str_replace($dir.'/', '', $object->getPathname()); } return $files; @@ -48,7 +47,7 @@ function collectd_plugindata($host, $plugin=NULL) { return false; $hostdir = $CONFIG['datadir'].'/'.$host; - $files = get_host_rrd_files( $hostdir ); + $files = get_host_rrd_files($hostdir); if (!$files) return false; -- cgit v1.1