From 033dd8524f7ed5fc20c19729f21f7fdd3c43d5c7 Mon Sep 17 00:00:00 2001 From: Tom Laermans Date: Fri, 18 Jun 2010 16:38:41 +0000 Subject: [PATCH] fix serial parsing for some areca controller firmwares git-svn-id: http://www.observium.org/svn/observer/trunk@1209 61d68cd4-352d-0410-923a-c4978735b2b8 --- includes/functions.php | 11 +++++++++++ includes/polling/device-areca.inc.php | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/includes/functions.php b/includes/functions.php index 138dfae8f1..6f172ce611 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -766,4 +766,15 @@ function formatCiscoHardware(&$device, $short = false) } } } + +# from http://ditio.net/2008/11/04/php-string-to-hex-and-hex-to-string-functions/ +function hex2str($hex) +{ + $string=''; + for ($i=0; $i < strlen($hex)-1; $i+=2) + { + $string .= chr(hexdec($hex[$i].$hex[$i+1])); + } + return $string; +} ?> diff --git a/includes/polling/device-areca.inc.php b/includes/polling/device-areca.inc.php index d39eedcec0..f2807360fa 100644 --- a/includes/polling/device-areca.inc.php +++ b/includes/polling/device-areca.inc.php @@ -8,5 +8,11 @@ if (!$version) { $version = trim(snmp_get($device, "1.3.6.1.4.1.18928.1.2.1.4.0" $serial = trim(snmp_get($device, "1.3.6.1.4.1.18928.1.1.1.3.0", "-OQv", "", ""),'"'); if (!$serial) { $serial = trim(snmp_get($device, "1.3.6.1.4.1.18928.1.2.1.3.0", "-OQv", "", ""),'"'); } + +if (strstr($serial,' ')) +{ + # Sometimes firmware outputs serial as hex-string + $serial = hex2str(str_replace(' ','',str_replace(' 00','',$serial))); +} ?>