123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- --TEST--
- Function snmp2_set
- --CREDITS--
- Boris Lytochkin
- --EXTENSIONS--
- snmp
- --SKIPIF--
- <?php
- require_once(__DIR__.'/skipif.inc');
- ?>
- --FILE--
- <?php
- require_once(__DIR__.'/snmp_include.inc');
- //EXPECTF format is quickprint OFF
- snmp_set_quick_print(false);
- snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
- echo "Check error handing\n";
- echo "No type & no value (timeout & retries instead)\n";
- try {
- $z = snmp2_set($hostname, $communityWrite, 'SNMPv2-MIB::sysLocation.0', $timeout, $retries);
- var_dump($z);
- } catch (\ValueError $e) {
- echo $e->getMessage() . \PHP_EOL;
- }
- echo "No value (timeout instead), retries instead of timeout\n";
- $z = snmp2_set($hostname, $communityWrite, 'SNMPv2-MIB::sysLocation.0', 'q', $timeout, $retries);
- var_dump($z);
- echo "Bogus OID\n";
- $z = snmp2_set($hostname, $communityWrite, '.1.3.6.777.888.999.444.0', 's', 'bbb', $timeout, $retries);
- var_dump($z);
- echo "Checking working\n";
- $oid1 = 'SNMPv2-MIB::sysContact.0';
- $oldvalue1 = snmpget($hostname, $communityWrite, $oid1, $timeout, $retries);
- $newvalue1 = $oldvalue1 . '0';
- $oid2 = 'SNMPv2-MIB::sysLocation.0';
- $oldvalue2 = snmpget($hostname, $communityWrite, $oid1, $timeout, $retries);
- $newvalue2 = $oldvalue2 . '0';
- echo "Single OID\n";
- $z = snmp2_set($hostname, $communityWrite, $oid1, 's', $newvalue1, $timeout, $retries);
- var_dump($z);
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1));
- $z = snmp2_set($hostname, $communityWrite, $oid1, 's', $oldvalue1, $timeout, $retries);
- var_dump($z);
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
- echo "Multiple OID\n";
- $z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($newvalue1, $newvalue2), $timeout, $retries);
- var_dump($z);
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $newvalue2));
- $z = snmp2_set($hostname, $communityWrite, '.1.3.6.777.888.999.444.0', 's', 'bbb', $timeout, $retries);
- var_dump($z);
- $z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($oldvalue1, $oldvalue2), $timeout, $retries);
- var_dump($z);
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
- echo "Multiple OID, single type & value\n";
- $z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), 's', $newvalue1, $timeout, $retries);
- var_dump($z);
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $newvalue1));
- $z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($oldvalue1, $oldvalue2), $timeout, $retries);
- var_dump($z);
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2 ));
- echo "Multiple OID, single type, multiple value\n";
- $z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), 's', array($newvalue1, $newvalue2), $timeout, $retries);
- var_dump($z);
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $newvalue2));
- $z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($oldvalue1, $oldvalue2), $timeout, $retries);
- var_dump($z);
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
- echo "More error handing\n";
- echo "Single OID, single type in array, single value\n";
- try {
- $z = snmp2_set($hostname, $communityWrite, $oid1, array('s'), $newvalue1, $timeout, $retries);
- var_dump($z);
- } catch (\TypeError $e) {
- echo $e->getMessage() . \PHP_EOL;
- }
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
- echo "Single OID, single type, single value in array\n";
- try {
- $z = snmp2_set($hostname, $communityWrite, $oid1, 's', array($newvalue1), $timeout, $retries);
- var_dump($z);
- } catch (\TypeError $e) {
- echo $e->getMessage() . \PHP_EOL;
- }
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
- echo "Multiple OID, 1st wrong type\n";
- try {
- $z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('sw','s'), array($newvalue1, $newvalue2), $timeout, $retries);
- var_dump($z);
- } catch (\ValueError $e) {
- echo $e->getMessage() . \PHP_EOL;
- }
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
- echo "Multiple OID, 2nd wrong type\n";
- try {
- $z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s','sb'), array($newvalue1, $newvalue2), $timeout, $retries);
- var_dump($z);
- } catch (\ValueError $e) {
- echo $e->getMessage() . \PHP_EOL;
- }
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
- echo "Multiple OID, single type in array, multiple value\n";
- $z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s'), array($newvalue1, $newvalue2), $timeout, $retries);
- var_dump($z);
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
- echo "Multiple OID & type, single value in array\n";
- $z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s', 's'), array($newvalue1), $timeout, $retries);
- var_dump($z);
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
- echo "Multiple OID, 1st bogus, single type, multiple value\n";
- $z = snmp2_set($hostname, $communityWrite, array($oid1 . '44.55.66.77', $oid2), 's', array($newvalue1, $newvalue2), $timeout, $retries);
- var_dump($z);
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
- echo "Multiple OID, 2nd bogus, single type, multiple value\n";
- $z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2 . '44.55.66.77'), 's', array($newvalue1, $newvalue2), $timeout, $retries);
- var_dump($z);
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
- echo "Multiple OID, single multiple type (1st bogus), multiple value\n";
- $z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('q', 's'), array($newvalue1, $newvalue2), $timeout, $retries);
- var_dump($z);
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
- echo "Multiple OID, single multiple type (2nd bogus), multiple value\n";
- $z = snmp2_set($hostname, $communityWrite, array($oid1, $oid2), array('s', 'w'), array($newvalue1, $newvalue2), $timeout, $retries);
- var_dump($z);
- var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
- var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
- ?>
- --EXPECTF--
- Check error handing
- No type & no value (timeout & retries instead)
- Type must be a single character
- No value (timeout instead), retries instead of timeout
- Warning: snmp2_set(): Could not add variable: OID='%s' type='q' value='%i': Bad variable type ("q") in %s on line %d
- bool(false)
- Bogus OID
- Warning: snmp2_set(): Error in packet at '%s': notWritable (That object does not support modification) in %s on line %d
- bool(false)
- Checking working
- Single OID
- bool(true)
- bool(true)
- bool(true)
- bool(true)
- Multiple OID
- bool(true)
- bool(true)
- bool(true)
- Warning: snmp2_set(): Error in packet at '%s': notWritable (That object does not support modification) in %s on line %d
- bool(false)
- bool(true)
- bool(true)
- bool(true)
- Multiple OID, single type & value
- bool(true)
- bool(true)
- bool(true)
- bool(true)
- bool(true)
- bool(true)
- Multiple OID, single type, multiple value
- bool(true)
- bool(true)
- bool(true)
- bool(true)
- bool(true)
- bool(true)
- More error handing
- Single OID, single type in array, single value
- Type must be of type string when object ID is a string
- bool(true)
- bool(true)
- Single OID, single type, single value in array
- Value must be of type string when object ID is a string
- bool(true)
- bool(true)
- Multiple OID, 1st wrong type
- Type must be a single character
- bool(true)
- bool(true)
- Multiple OID, 2nd wrong type
- Type must be a single character
- bool(true)
- bool(true)
- Multiple OID, single type in array, multiple value
- Warning: snmp2_set(): '%s': no type set in %s on line %d
- bool(false)
- bool(true)
- bool(true)
- Multiple OID & type, single value in array
- Warning: snmp2_set(): '%s': no value set in %s on line %d
- bool(false)
- bool(true)
- bool(true)
- Multiple OID, 1st bogus, single type, multiple value
- Warning: snmp2_set(): Error in packet at '%s': %rnoCreation|notWritable%r (%s) in %s on line %d
- bool(false)
- bool(true)
- bool(true)
- Multiple OID, 2nd bogus, single type, multiple value
- Warning: snmp2_set(): Error in packet at '%s': %rnoCreation|notWritable%r (%s) in %s on line %d
- bool(false)
- bool(true)
- bool(true)
- Multiple OID, single multiple type (1st bogus), multiple value
- Warning: snmp2_set(): Could not add variable: OID='%s' type='q' value='%s': Bad variable type ("q") in %s on line %d
- bool(false)
- bool(true)
- bool(true)
- Multiple OID, single multiple type (2nd bogus), multiple value
- Warning: snmp2_set(): Could not add variable: OID='%s' type='w' value='%s': Bad variable type ("w") in %s on line %d
- bool(false)
- bool(true)
- bool(true)
|