int rc = 0;
try {
// Build the list of variables you want to query
//
final SnmpVarBindList list = new SnmpVarBindList("Get varbind list");
// Write one specific OID
//
SnmpVarBind oid = new SnmpVarBind(oids);
oid.setSnmpValue(new SnmpString("myValue"));
list.addVarBind(oid);
// Make the SNMP set request
//
System.out.println(
"setRequest() of SNMPSet: Start SNMP V" + version +
" GET request for SNMP agent on \"" + remoteHost +
"\" at port \"" + port + "\".");
// Set request
//
SnmpRequest request = session.snmpSetRequest(null, list);
// Check for a timeout of the request
//
boolean completed = request.waitForCompletion((maxRetries + 1) * timeOut);
if (completed == false) {
System.out.println(
"setRequest() of SNMPSet: Request timed out, " +
"check reachability of agent.");
// Print request
//
System.out.println(
"setRequest() of SNMPSet: Request= " +
request.toString() + ".");
rc = 1;
}
if (rc == 0) {
System.out.println(
"getRequest() of SNMPGet: Finish SNMP V" +
version + " GET request.");
// Now we have a response. Check if the response contains an error
//
String errorStatus = SnmpRequest.snmpErrorToString(
request.getErrorStatus());
if (errorStatus.compareTo("noError") != 0) {
System.out.println(
"getRequest() of SNMPGet: Error status= " +
errorStatus + ".");
System.out.println(
"getRequest() of SNMPGet: Error index= " +
request.getErrorIndex() + ".");
if (errorStatus.compareTo(connectStatus) == 0) {
System.out.println(
"getRequest() of SNMPGet: Get request failed as " +
"expected with " + connectStatus + " status.");
} else {
System.out.println(
"getRequest() of SNMPGet: Get request should " +
"fail with " + connectStatus + " status.");
rc = 1;
}
} else {
// Now we shall display the content of the result
//
SnmpVarBindList resp = request.getResponseVarBindList();
System.out.println("getRequest() of SNMPGet: Result=");
for (int i = 0; i < resp.getVarBindCount(); i++) {
System.out.println(resp.getVarBindAt(i));
}
if (connectStatus.compareTo("noError") != 0) {
// Request should failed
//
System.out.println(
"getRequest() of SNMPGet: Get request should " +
"fail with " + connectStatus + " status.");
rc = 1;
} else {
if (validOIDs) {
// Check that we obtain correct values for the OIDs
//
if (resp.checkForValidValues()) {
System.out.println(
"getRequest() of SNMPGet: Returned values for" +
" OIDs are correct.");
} else {
System.out.println(
"getRequest() of SNMPGet: Returned values for" +
" OIDs are not correct.");
rc = 1;
}
} else {
// Check that we obtain incorrect values for the OIDs
//
if (resp.checkForValidValues()) {
System.out.println(
"getRequest() of SNMPGet: Returned values for" +
" OIDs should not be correct.");
rc = 1;