use of com.sun.jmx.snmp.SnmpScopedPduBulk in project jdk8u_jdk by JetBrains.
the class SnmpV3Message method decodeSnmpPdu.
/**
* Gets the PDU encoded in this message.
* <P>
* This method decodes the data field and returns the resulting PDU.
*
* @return The resulting PDU.
* @exception SnmpStatusException If the encoding is not valid.
*/
public SnmpPdu decodeSnmpPdu() throws SnmpStatusException {
SnmpScopedPduPacket pdu = null;
BerDecoder bdec = new BerDecoder(data);
try {
int type = bdec.getTag();
bdec.openSequence(type);
switch(type) {
case pduGetRequestPdu:
case pduGetNextRequestPdu:
case pduInformRequestPdu:
case pduGetResponsePdu:
case pduSetRequestPdu:
case pduV2TrapPdu:
case pduReportPdu:
SnmpScopedPduRequest reqPdu = new SnmpScopedPduRequest();
reqPdu.requestId = bdec.fetchInteger();
reqPdu.setErrorStatus(bdec.fetchInteger());
reqPdu.setErrorIndex(bdec.fetchInteger());
pdu = reqPdu;
break;
case pduGetBulkRequestPdu:
SnmpScopedPduBulk bulkPdu = new SnmpScopedPduBulk();
bulkPdu.requestId = bdec.fetchInteger();
bulkPdu.setNonRepeaters(bdec.fetchInteger());
bulkPdu.setMaxRepetitions(bdec.fetchInteger());
pdu = bulkPdu;
break;
default:
throw new SnmpStatusException(snmpRspWrongEncoding);
}
pdu.type = type;
pdu.varBindList = decodeVarBindList(bdec);
bdec.closeSequence();
} catch (BerException e) {
if (SNMP_LOGGER.isLoggable(Level.FINEST)) {
SNMP_LOGGER.logp(Level.FINEST, SnmpV3Message.class.getName(), "decodeSnmpPdu", "BerException", e);
}
throw new SnmpStatusException(snmpRspWrongEncoding);
}
//
// The easy work.
//
pdu.address = address;
pdu.port = port;
pdu.msgFlags = msgFlags;
pdu.version = version;
pdu.msgId = msgId;
pdu.msgMaxSize = msgMaxSize;
pdu.msgSecurityModel = msgSecurityModel;
pdu.contextEngineId = contextEngineId;
pdu.contextName = contextName;
pdu.securityParameters = securityParameters;
if (SNMP_LOGGER.isLoggable(Level.FINER)) {
final StringBuilder strb = new StringBuilder().append("Unmarshalled PDU : \n").append("type : ").append(pdu.type).append("\n").append("version : ").append(pdu.version).append("\n").append("requestId : ").append(pdu.requestId).append("\n").append("msgId : ").append(pdu.msgId).append("\n").append("msgMaxSize : ").append(pdu.msgMaxSize).append("\n").append("msgFlags : ").append(pdu.msgFlags).append("\n").append("msgSecurityModel : ").append(pdu.msgSecurityModel).append("\n").append("contextEngineId : ").append(pdu.contextEngineId).append("\n").append("contextName : ").append(pdu.contextName).append("\n");
SNMP_LOGGER.logp(Level.FINER, SnmpV3Message.class.getName(), "decodeSnmpPdu", strb.toString());
}
return pdu;
}
Aggregations