From 9e1b6825c005f947495fbbd565418096d45a6ddc Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Tue, 4 Sep 2018 13:53:26 -0500 Subject: [PATCH] Remove duplicate mib directories General cleanup of that function --- includes/snmp.inc.php | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/includes/snmp.inc.php b/includes/snmp.inc.php index 114ea1774589..6b854015c249 100644 --- a/includes/snmp.inc.php +++ b/includes/snmp.inc.php @@ -84,28 +84,24 @@ function get_mib_dir($device) * If $mibdir is empty '', return an empty string * * @param string $mibdir should be the name of the directory within $config['mib_dir'] - * @param string $device + * @param array $device * @return string The option string starting with -M */ -function mibdir($mibdir = null, $device = array()) +function mibdir($mibdir = null, $device = []) { - global $config; - - $extra_dir = implode(':', get_mib_dir($device)); - if (!empty($extra_dir)) { - $extra_dir = ":".$extra_dir; - } + $base = Config::get('mib_dir'); + $dirs = get_mib_dir($device); + $dirs[] = "$base/$mibdir"; - if (is_null($mibdir)) { - return " -M ${config['mib_dir']}$extra_dir"; - } + // make sure base directory is included first + array_unshift($dirs, $base); - if (empty($mibdir)) { - // use system mibs - return ''; - } + // remove trailing /, remove empty dirs, and remove duplicates + $dirs = array_unique(array_filter(array_map(function ($dir) { + return rtrim($dir, '/'); + }, $dirs))); - return " -M ${config['mib_dir']}$extra_dir:${config['mib_dir']}/$mibdir"; + return " -M " . implode(':', $dirs); }//end mibdir() /**