Files
librenms-librenms/includes/discovery/core.inc.php
Tony Murray fad0bffc43 Escape SNMP & IPMI shell commands (#9537)
hopefully doesn't break anything
Mostly issues with snmp oids and options containing spaces.  Try to remove all of those.

DO NOT DELETE THIS TEXT

#### Please note

> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.

- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)

#### Testers

If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
After you are done testing, you can remove the changes with `./scripts/github-remove`.  If there are schema changes, you can ask on discord how to revert.
2018-12-16 13:42:50 +00:00

25 lines
715 B
PHP

<?php
$snmpdata = snmp_get_multi_oid($device, ['sysName.0', 'sysObjectID.0', 'sysDescr.0'], '-OUQn', 'SNMPv2-MIB');
$core_update = array(
'sysObjectID' => $snmpdata['.1.3.6.1.2.1.1.2.0'],
'sysName' => strtolower($snmpdata['.1.3.6.1.2.1.1.5.0']),
'sysDescr' => $snmpdata['.1.3.6.1.2.1.1.1.0'],
);
foreach ($core_update as $item => $value) {
if ($device[$item] != $value) {
$device[$item] = $value; // update the device array
log_event("$item -> $value", $device, 'system', 3);
} else {
unset($core_update[$item]);
}
}
if (!empty($core_update)) {
dbUpdate($core_update, 'devices', 'device_id=?', array($device['device_id']));
}
unset($core_update, $snmpdata);