r2859 improved IOS detection and fixed a logic error. closes ticket 232
authorJonathan Thurman <jthurman42@gmail.com>
Sat, 13 Jun 2009 06:29:13 +0000 (06:29 +0000)
committerJonathan Thurman <jthurman42@gmail.com>
Sat, 13 Jun 2009 06:29:13 +0000 (06:29 +0000)
ChangeLog
inc/snmp.php

index 7b13529..b44007e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,7 @@
        update: add OS, router, fibre switch dictionary entries for ticket 238 (by Aaron)
        bugfix: do not produce PHP warning on LivePTR tab
        bugfix: wrong port type set for WS-C2950-24. closes ticket 229 (by jthurman)
+       bugfix: improved IOS detection and fixed a logic error. closes ticket 232 (by jthurman)
 0.17.1 2009-06-03
        bugfix: tags were not displayed on "File" page
        bugfix: multiline comment for an added file was stored incorrectly
index d268d84..01d394e 100644 (file)
@@ -114,7 +114,8 @@ function doSNMPmining ($object_id, $community)
                $sysChassi = str_replace ('"', '', substr ($sysChassi, strlen ('STRING: ')));
        // Strip the object type, it's always string here.
        $sysDescr = substr ($sysDescr, strlen ('STRING: '));
-       if (FALSE !== ereg ('^(Cisco )?IOS .+$', $sysDescr))
+       $sysDescr = str_replace(array("\n", "\r"), "", $sysDescr);  // Make it one line
+       if (FALSE !== ereg ('^(Cisco )?(Internetwork Operating System Software )?IOS .+$', $sysDescr))
        {
                $swfamily = 'IOS';
                $swversion = ereg_replace ('^.*, Version ([^ ]+), .*$', '\\1', $sysDescr);
@@ -190,7 +191,9 @@ function doSNMPmining ($object_id, $community)
                                break;
                        default:
                                $log[] = array ('code' => 'error', 'message' => "Unknown SW version ${swversion}");
-                               $error = TRUE;
+                               // The logic for 'error' is backwards...
+                               // This should be set 'FALSE' if there is an error
+                               $error = FALSE;
                                break;
                }
                if ($error == TRUE)