Hi,

I am sending a trap and trying to subscribe to it, but I'm facing some problems.
I'm compiling against the released source package of of 1.11.2 (in order to 
debug).

Sending the trap is pretty straight forward:
        PDUv1 pdu = new PDUv1();
        pdu.setType(PDU.V1TRAP);
        ...
        this.snmp.send(pdu, target);

I can check with wireshark and my packet looks fine.

Now I'm subscribing for events (actually in the same process):
                TransportMapping transport =
                    new DefaultUdpTransportMapping(new 
UdpAddress("0.0.0.0/10160"));
                snmp = new Snmp(transport);
                snmp.addCommandResponder(this);
                transport.listen();


All this is pretty straight forward.
But when traps are received, the reception thread throws an exception in 
PDU.java
as pduType.getValue() returns PDU.V1TRAP (as expected), which is not supported 
by the class PDU.

The problem seems to come from MessageDispatcherImpl:
      Integer32 version = new Integer32();
      version.decodeBER(wholeMessage);
      MessageProcessingModel mp = getMessageProcessingModel(version.getValue());

version decodes to 1. The mp at position 1 is MPv2c, and not MPv1 (which is at 
position 0).
So when MPv2c decodes the pdu, it creates a PDU object and not PDUv1 object, 
which does not support v1 traps.

Is this expected? At the moment I cannot receive my traps because of this.
Am I doing something wrong?

Thanks

Eric
_______________________________________________
SNMP4J mailing list
[email protected]
http://lists.agentpp.org/mailman/listinfo/snmp4j

Reply via email to