diff --git a/includes/functions.php b/includes/functions.php index 0b6b8bad1..ef3cd98e3 100644 --- a/includes/functions.php +++ b/includes/functions.php @@ -1192,3 +1192,12 @@ function id_to_target($id) { } return $id; } + +function first_oid_match($device, $list) { + foreach ($list as $item) { + $tmp = trim(snmp_get($device, $item, "-Ovq"), '" '); + if (!empty($tmp)) { + return $tmp; + } + } +} diff --git a/includes/polling/os/ruckuswireless.inc.php b/includes/polling/os/ruckuswireless.inc.php index 88a94c2a9..0a9cec9f9 100644 --- a/includes/polling/os/ruckuswireless.inc.php +++ b/includes/polling/os/ruckuswireless.inc.php @@ -3,13 +3,21 @@ * LibreNMS Ruckus Wireless OS information module * * Copyright (c) 2015 Søren Friis Rosiak +* Copyright (c) 2015 Gear Consulting Pty Ltd * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, or (at your * option) any later version. Please see LICENSE.txt at the top level of * the source code distribution for details. */ -$hardware = trim(snmp_get($device, ".1.3.6.1.4.1.25053.1.1.2.1.1.1.1.0", "-Ovq") , '" '); -$version = trim(snmp_get($device, ".1.3.6.1.4.1.25053.1.1.3.1.1.1.1.1.3.1", "-Ovq") , '" '); -$serial = trim(snmp_get($device, ".1.3.6.1.4.1.25053.1.1.2.1.1.1.2.0", "-Ovq") , '" '); + +$ruckusmodels = array( + ".1.3.6.1.2.1.1.1.0", + ".1.3.6.1.4.1.25053.1.2.1.1.1.1.9.0", + ".1.3.6.1.4.1.25053.1.1.2.1.1.1.1.0", +); +$hardware = first_oid_match($device, $ruckusmodels); +$productmib = trim(snmp_get($device, ".1.3.6.1.2.1.1.2.0", '" ')); +$version = first_oid_match($device, array("$productmib.8.0", ".1.3.6.1.4.1.25053.1.1.3.1.1.1.1.1.3.1")); +$serial = first_oid_match($device, array("$productmib.7.0", ".1.3.6.1.4.1.25053.1.1.2.1.1.1.2.0")); ?>