Skip to content

Commit

Permalink
Merge pull request #76 from CDOT-CV/snmp/report-authengineid-retrieva…
Browse files Browse the repository at this point in the history
…l-failure-only-if-we-get-a-response

Report authEngineID retrieval failure only if response is received
  • Loading branch information
dmccoystephenson authored May 21, 2024
2 parents e3b8d71 + a5c2730 commit 833ffc4
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -128,12 +128,15 @@ public void run() {
destIndex);
} else {
// Misc error
logger.error("Error on RSU SNMP deposit to {}: {}", curRsu.getRsuTarget(), "Error code "
+ rsuResponse.getResponse().getErrorStatus() + " " + rsuResponse.getResponse().getErrorStatusText());
logger.error("Error on RSU SNMP deposit to {}: {}", curRsu.getRsuTarget(), "Error code '"
+ rsuResponse.getResponse().getErrorStatus() + "' '" + rsuResponse.getResponse().getErrorStatusText() + "'");
// Log the PDUs involved in the failed deposit
logger.debug("PDUs involved in failed RSU SNMP deposit to " + curRsu.getRsuTarget()
+ " => Request PDU: " + rsuResponse.getRequest() + " Response PDU: " + rsuResponse.getResponse());
}

}
logger.info("TIM deposit response {}", responseList);
logger.info("TIM deposit response {}", responseList);
}
Thread.sleep(100);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,22 +134,28 @@ public ResponseEvent set(PDU pdu, Snmp snmpob, UserTarget targetob, Boolean keep
// Try to send the SNMP request (synchronously)
ResponseEvent responseEvent = null;
try {
// attempt to discover & set authoritative engine ID
byte[] authEngineID = snmpob.discoverAuthoritativeEngineID(targetob.getAddress(), 1000);
if (authEngineID != null && authEngineID.length > 0) {
targetob.setAuthoritativeEngineID(authEngineID);
}
if (authEngineID != null) {
responseEvent = snmpob.set(pdu, targetob);
if (!keepOpen) {
snmpob.close();

// send request
responseEvent = snmpob.set(pdu, targetob);
if (!keepOpen) {
snmpob.close();
}

// if RSU responded and we didn't get an authEngineID, log a warning
if (responseEvent != null && responseEvent.getResponse() != null) {
if (authEngineID == null) {
logger.warn("Failed to discover authoritative engine ID for SNMP target: {}", targetob.getAddress());
}
} else {
logger.error("Unable to send TIM to RSU {}: authEngineID is null", targetob.getAddress());
}
} catch (IOException e) {
throw new IOException("Failed to send SNMP request: " + e);
}

return responseEvent;
}

Expand Down

0 comments on commit 833ffc4

Please sign in to comment.