|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2003-03-04 00:22 UTC] mb at solstaden dot net
I tried a verey simple php script: echo snmpget( "81.26.237.10", "public", "system.sysContact.0" ); snmpset( "81.26.237.10", "private", "system.sysContact.0", "s", "kalle" ); snmpget works: snmpset fails: ouput as follows: STRING: mb@solstaden.net Warning: snmpset() [function.snmpset]: Invalid object identifier: system.sysContact.0 in /usr/local/www/data/snmp.php on line 17 Warning: snmpset() [function.snmpset]: Error in packet: (noSuchName) There is no such variable name in this MIB. in /usr/local/www/data/snmp.php on line 17 Warning: snmpset() [function.snmpset]: This name does not exist: SNMPv2-SMI::mib-2 in /usr/local/www/data/snmp.php on line 17 I did a tcpdump: 07:04:22.160998 gk.s.port80.se.1556 > as1-1-1--11.eklandahage4.molndal.bostream.net.snmp: GetRequest(28) system.sysDescr.0 07:04:22.179314 as1-1-1--11.eklandahage4.molndal.bostream.net.snmp > gk.s.port80.se.1556: GetResponse(39) system.sysDescr.0="Ericsson DR" 07:04:22.180077 gk.s.port80.se.1557 > as1-1-1--11.eklandahage4.molndal.bostream.net.snmp: GetRequest(28) system.sysContact.0 07:04:22.194298 as1-1-1--11.eklandahage4.molndal.bostream.net.snmp > gk.s.port80.se.1557: GetResponse(39) system.sysContact.0="mb@solstade" 07:04:22.194991 gk.s.port80.se.1558 > as1-1-1--11.eklandahage4.molndal.bostream.net.snmp: C=private SetRequest(30) ="kalle" 07:04:22.209407 as1-1-1--11.eklandahage4.molndal.bostream.net.snmp > gk.s.port80.se.1558: C=private GetResponse(30) noSuchName@1 ="kalle" Am I doing anything wrong? Normally it is my fault. If u think I have found a bug, I will do my best to help u. Magnus Benngard PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 30 15:00:01 2025 UTC |
I am getting the same error message with the latest (today's) 4.3 snap shot. From a php script I can either specify the entire OID numerically or the entire symbolic OID--I just can't use the shortened symbolic OID: snmpset("10.1.1.1", "private", ".1.3.6.1.2.1.1.5.0", "s", "MyBox") <-- works OK snmpset("10.1.1.1", "private", ".iso.org.dod.internet.mgmt.mib-2.system.sysName.0", "s", "MyBox") <-- works OK snmpset("10.1.1.1", "private", "system.sysName.0", "s", "MyBox") <-- BROKEN snmpset("10.1.1.1", "private", "sysName.0", "s", "MyBox") <-- BROKEN Linux 2.4 NetSNMP 5.0.8-pre1 PHP 4.3.2-dev [from phpinfo()] Any help would be appreciated. Regards, JPSOk so the following patch resolves the issue on my system. Not really sure why the existing function call fails but regardless snmpset now works correctly with shortened textual oids, full textual oids, and full numeric oids. I also tested snmpget and it works fine as well. --- snmp.c Fri Feb 21 02:42:01 2003 +++ snmp.c Tue Mar 18 13:58:48 2003 @@ -217,7 +217,7 @@ static void php_snmp_internal(INTERNAL_F if (st >= 2) { /* walk */ rootlen = MAX_NAME_LEN; if (strlen(objid)) { /* on a walk, an empty string means top of tree - no error */ - if (read_objid(objid, root, &rootlen)) { + if (snmp_parse_oid(objid, root, &rootlen)) { gotroot = 1; } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid object identifier: %s", objid); Do a patch -po -l from the ../ext/snmp directory and paste the above patch-text into patch, press <CTRL-D> twice to exit patch and you should see "patching file snmp.c". cd back to the root of the PHP-4 source directory, make clean, make all, make install and you should be in business! BTW, no really sure how this form will mangle the patch-text but it's really only a one line change. So you could just manually edit the snmp.c file and look for line 220 and make the change from read_objid to snmp_parse_oid (the parameters remain unchanged.) Hope that helps . . . Cheers, JPS