xref: /PHP-8.0/ext/snmp/tests/snmpset.phpt (revision 62c20c66)
1--TEST--
2Function snmpset
3--CREDITS--
4Olivier Doucet Olivier Doucet Boris Lytochkin
5--SKIPIF--
6<?php
7require_once(__DIR__.'/skipif.inc');
8?>
9--FILE--
10<?php
11require_once(__DIR__.'/snmp_include.inc');
12
13//EXPECTF format is quickprint OFF
14snmp_set_quick_print(false);
15snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
16
17echo "Check error handing\n";
18echo "No type & no value (timeout & retries instead)\n";
19try {
20    $z = snmpset($hostname, $communityWrite, 'SNMPv2-MIB::sysLocation.0', $timeout, $retries);
21    var_dump($z);
22} catch (\ValueError $e) {
23    echo $e->getMessage() . \PHP_EOL;
24}
25
26echo "No value (timeout instead), retries instead of timeout\n";
27$z = snmpset($hostname, $communityWrite, 'SNMPv2-MIB::sysLocation.0', 'q', $timeout, $retries);
28var_dump($z);
29
30echo "Bogus OID\n";
31$z = snmpset($hostname, $communityWrite, '.1.3.6.777.888.999.444.0', 's', 'bbb', $timeout, $retries);
32var_dump($z);
33
34echo "Checking working\n";
35$oid1 = 'SNMPv2-MIB::sysContact.0';
36$oldvalue1 = snmpget($hostname, $communityWrite, $oid1, $timeout, $retries);
37$newvalue1 = $oldvalue1 . '0';
38$oid2 = 'SNMPv2-MIB::sysLocation.0';
39$oldvalue2 = snmpget($hostname, $communityWrite, $oid1, $timeout, $retries);
40$newvalue2 = $oldvalue2 . '0';
41
42echo "Single OID\n";
43$z = snmpset($hostname, $communityWrite, $oid1, 's', $newvalue1, $timeout, $retries);
44var_dump($z);
45var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1));
46$z = snmpset($hostname, $communityWrite, $oid1, 's', $oldvalue1, $timeout, $retries);
47var_dump($z);
48var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
49
50echo "Multiple OID\n";
51$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($newvalue1, $newvalue2), $timeout, $retries);
52var_dump($z);
53var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1));
54var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $newvalue2));
55$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($oldvalue1, $oldvalue2), $timeout, $retries);
56var_dump($z);
57var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
58var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
59
60echo "Multiple OID, single type & value\n";
61$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), 's', $newvalue1, $timeout, $retries);
62var_dump($z);
63var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1));
64var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $newvalue1));
65$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($oldvalue1, $oldvalue2), $timeout, $retries);
66var_dump($z);
67var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
68var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
69
70echo "Multiple OID, single type, multiple value\n";
71$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), 's', array($newvalue1, $newvalue2), $timeout, $retries);
72var_dump($z);
73var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $newvalue1));
74var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $newvalue2));
75$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s','s'), array($oldvalue1, $oldvalue2), $timeout, $retries);
76var_dump($z);
77var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
78var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
79
80
81echo "More error handing\n";
82echo "Single OID, single type in array, single value\n";
83try {
84    $z = snmpset($hostname, $communityWrite, $oid1, array('s'), $newvalue1, $timeout, $retries);
85    var_dump($z);
86} catch (\TypeError $e) {
87    echo $e->getMessage() . \PHP_EOL;
88}
89var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
90var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
91
92echo "Single OID, single type, single value in array\n";
93try {
94    $z = snmpset($hostname, $communityWrite, $oid1, 's', array($newvalue1), $timeout, $retries);
95    var_dump($z);
96} catch (\TypeError $e) {
97    echo $e->getMessage() . \PHP_EOL;
98}
99var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
100var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
101
102echo "Multiple OID, 1st wrong type\n";
103try {
104    $z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('sw','s'), array($newvalue1, $newvalue2), $timeout, $retries);
105    var_dump($z);
106} catch (\ValueError $e) {
107    echo $e->getMessage() . \PHP_EOL;
108}
109var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
110var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
111
112echo "Multiple OID, 2nd wrong type\n";
113try {
114    $z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s','sb'), array($newvalue1, $newvalue2), $timeout, $retries);
115    var_dump($z);
116} catch (\ValueError $e) {
117    echo $e->getMessage() . \PHP_EOL;
118}
119var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
120var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
121
122echo "Multiple OID, single type in array, multiple value\n";
123$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s'), array($newvalue1, $newvalue2), $timeout, $retries);
124var_dump($z);
125var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
126var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
127
128echo "Multiple OID & type, single value in array\n";
129$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s', 's'), array($newvalue1), $timeout, $retries);
130var_dump($z);
131var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
132var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
133
134echo "Multiple OID, 1st bogus, single type, multiple value\n";
135$z = snmpset($hostname, $communityWrite, array($oid1 . '44.55.66.77', $oid2), 's', array($newvalue1, $newvalue2), $timeout, $retries);
136var_dump($z);
137var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
138var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
139
140echo "Multiple OID, 2nd bogus, single type, multiple value\n";
141$z = snmpset($hostname, $communityWrite, array($oid1, $oid2 . '44.55.66.77'), 's', array($newvalue1, $newvalue2), $timeout, $retries);
142var_dump($z);
143var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
144var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
145
146echo "Multiple OID, single multiple type (1st bogus), multiple value\n";
147$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('q', 's'), array($newvalue1, $newvalue2), $timeout, $retries);
148var_dump($z);
149var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
150var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
151
152echo "Multiple OID, single multiple type (2nd bogus), multiple value\n";
153$z = snmpset($hostname, $communityWrite, array($oid1, $oid2), array('s', 'w'), array($newvalue1, $newvalue2), $timeout, $retries);
154var_dump($z);
155var_dump((snmpget($hostname, $communityWrite, $oid1, $timeout, $retries) === $oldvalue1));
156var_dump((snmpget($hostname, $communityWrite, $oid2, $timeout, $retries) === $oldvalue2));
157
158?>
159--EXPECTF--
160Check error handing
161No type & no value (timeout & retries instead)
162Type must be a single character
163No value (timeout instead), retries instead of timeout
164
165Warning: snmpset(): Could not add variable: OID='%s' type='q' value='%i': Bad variable type ("q") in %s on line %d
166bool(false)
167Bogus OID
168
169Warning: snmpset(): Error in packet at '%s': (noSuchName) There is no such variable name in this MIB. in %s on line %d
170bool(false)
171Checking working
172Single OID
173bool(true)
174bool(true)
175bool(true)
176bool(true)
177Multiple OID
178bool(true)
179bool(true)
180bool(true)
181bool(true)
182bool(true)
183bool(true)
184Multiple OID, single type & value
185bool(true)
186bool(true)
187bool(true)
188bool(true)
189bool(true)
190bool(true)
191Multiple OID, single type, multiple value
192bool(true)
193bool(true)
194bool(true)
195bool(true)
196bool(true)
197bool(true)
198More error handing
199Single OID, single type in array, single value
200Type must be of type string when object ID is a string
201bool(true)
202bool(true)
203Single OID, single type, single value in array
204Value must be of type string when object ID is a string
205bool(true)
206bool(true)
207Multiple OID, 1st wrong type
208Type must be a single character
209bool(true)
210bool(true)
211Multiple OID, 2nd wrong type
212Type must be a single character
213bool(true)
214bool(true)
215Multiple OID, single type in array, multiple value
216
217Warning: snmpset(): '%s': no type set in %s on line %d
218bool(false)
219bool(true)
220bool(true)
221Multiple OID & type, single value in array
222
223Warning: snmpset(): '%s': no value set in %s on line %d
224bool(false)
225bool(true)
226bool(true)
227Multiple OID, 1st bogus, single type, multiple value
228
229Warning: snmpset(): Error in packet at '%s': (noSuchName) There is no such variable name in this MIB. in %s on line %d
230bool(false)
231bool(true)
232bool(true)
233Multiple OID, 2nd bogus, single type, multiple value
234
235Warning: snmpset(): Error in packet at '%s': (noSuchName) There is no such variable name in this MIB. in %s on line %d
236bool(false)
237bool(true)
238bool(true)
239Multiple OID, single multiple type (1st bogus), multiple value
240
241Warning: snmpset(): Could not add variable: OID='%s' type='q' value='%s': Bad variable type ("q") in %s on line %d
242bool(false)
243bool(true)
244bool(true)
245Multiple OID, single multiple type (2nd bogus), multiple value
246
247Warning: snmpset(): Could not add variable: OID='%s' type='w' value='%s': Bad variable type ("w") in %s on line %d
248bool(false)
249bool(true)
250bool(true)
251