public void processPdu()

in collector/snmp/src/main/java/org/apache/karaf/decanter/collector/snmp/SnmpTrap.java [84:128]


    public void processPdu(CommandResponderEvent event) {
        PDU pdu = event.getPDU();
        if (pdu != null) {
            try {
                if ((pdu.getType() != PDU.TRAP) && (pdu.getType() != PDU.V1TRAP) && (pdu.getType() != PDU.REPORT) && (pdu.getType() != PDU.RESPONSE)) {
                    // respond the inform message
                    pdu.setErrorIndex(0);
                    pdu.setErrorStatus(0);
                    pdu.setType(PDU.RESPONSE);
                    StatusInformation statusInformation = new StatusInformation();
                    StateReference reference = event.getStateReference();
                    event.getMessageDispatcher().returnResponsePdu(event.getMessageProcessingModel(),
                            event.getSecurityModel(),
                            event.getSecurityName(),
                            event.getSecurityModel(),
                            pdu,
                            event.getMaxSizeResponsePDU(),
                            reference,
                            statusInformation);
                }
                Map<String, Object> data = new HashMap<>();
                data.put("type", "snmp.trap");
                data.put("securityName", new OctetString(event.getSecurityName()));
                data.put("peerAddress", event.getPeerAddress());
                PropertiesPreparator.prepare(data, configuration);
                // PDU v1 specific variables
                if (pdu.getType() == PDU.V1TRAP) {
                    PDUv1 v1pdu = (PDUv1) pdu;
                    data.put("enterprise", v1pdu.getEnterprise().toString());
                    data.put("agentAddress", v1pdu.getAgentAddress().toString());
                    data.put("genericTrap", v1pdu.getGenericTrap());
                    data.put("specificTrap", v1pdu.getSpecificTrap());
                    data.put("timestamp", v1pdu.getTimestamp());
                }
                // all variables
                for (VariableBinding variableBinding : pdu.getVariableBindings()) {
                    data.put(variableBinding.getOid().toString(), variableBinding.getVariable().toString());
                }
                // send event
                dispatcher.postEvent(new Event("decanter/collector/snmp", data));
            } catch (Exception e) {
                LOGGER.warn("Can't send SNMP event", e);
            }
        }
    }