Example #1
0
 public function install($path, $replace = false, $mib_name = 'optional')
 {
     global $config;
     include_once $config['library_path'] . '/mib_parser.php';
     $mp = new MibParser();
     $mp->add_mib($path, $mib_name);
     $mp->generate();
     if (isset($mp->mib) && isset($mp->oids) && $mp->mib) {
         /* check if this mib has already been installed */
         $existing = db_fetch_cell("SELECT 1 FROM snmpagent_mibs WHERE `name` = '" . $mp->mib . "'");
         if ($existing) {
             if ($replace == false) {
                 unset($mp->oids);
                 unset($mp->mib);
                 return false;
             } else {
                 $this->uninstall();
             }
         }
         db_execute("INSERT INTO snmpagent_mibs SET `id` = 0, `name` = '" . $mp->mib . "', `file` = '" . $path . "'");
         foreach ($mp->oids as $object_name => $object_params) {
             if ($object_params["otype"] != "TEXTUAL-CONVENTION") {
                 db_execute_prepared("INSERT INTO `snmpagent_cache` (`oid`, `name`, `mib`, `type`, `otype`, `kind`, `max-access`, `description`) VALUES ('" . $object_params["oid"] . "','" . $object_name . "','" . $object_params["mib"] . "','" . $object_params["syntax"] . "','" . $object_params["otype"] . "','" . $object_params["kind"] . "','" . $object_params["max-access"] . "','" . nl2br($object_params["description"]) . "')");
                 if ($object_params["otype"] == "NOTIFICATION-TYPE") {
                     foreach ($object_params["objects"] as $notication_object_index => $notication_object) {
                         db_execute("INSERT INTO `snmpagent_cache_notifications` (`name`, `mib`, `attribute`, `sequence_id`) VALUES ('" . $object_name . "','" . $object_params["mib"] . "','" . $notication_object . "','" . $notication_object_index . "')");
                     }
                 }
             } else {
                 db_execute_prepared("INSERT INTO `snmpagent_cache_textual_conventions` (`name`, `mib`, `type`, `description`) VALUES ('" . $object_name . "','" . $object_params["mib"] . "','" . $object_params["syntax"] . "','" . nl2br($object_params["description"]) . "')");
             }
         }
         unset($mp->oids);
         unset($mp->mib);
     } else {
         return false;
     }
 }