Return-Path: X-Original-To: apmail-camel-commits-archive@www.apache.org Delivered-To: apmail-camel-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 66D359E30 for ; Mon, 28 May 2012 02:27:50 +0000 (UTC) Received: (qmail 85014 invoked by uid 500); 28 May 2012 02:27:50 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 84956 invoked by uid 500); 28 May 2012 02:27:50 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 84949 invoked by uid 99); 28 May 2012 02:27:50 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 28 May 2012 02:27:50 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 28 May 2012 02:27:48 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id B244A2388980; Mon, 28 May 2012 02:27:28 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1343126 - /camel/trunk/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpTrapConsumer.java Date: Mon, 28 May 2012 02:27:28 -0000 To: commits@camel.apache.org From: ningjiang@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120528022728.B244A2388980@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ningjiang Date: Mon May 28 02:27:28 2012 New Revision: 1343126 URL: http://svn.apache.org/viewvc?rev=1343126&view=rev Log: CAMEL-5264 fixed the issue that SNMP-Component doesn't response to INFORM-Traps Modified: camel/trunk/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpTrapConsumer.java Modified: camel/trunk/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpTrapConsumer.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpTrapConsumer.java?rev=1343126&r1=1343125&r2=1343126&view=diff ============================================================================== --- camel/trunk/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpTrapConsumer.java (original) +++ camel/trunk/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpTrapConsumer.java Mon May 28 02:27:28 2012 @@ -23,9 +23,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.snmp4j.CommandResponder; import org.snmp4j.CommandResponderEvent; +import org.snmp4j.MessageException; import org.snmp4j.PDU; import org.snmp4j.Snmp; import org.snmp4j.TransportMapping; +import org.snmp4j.mp.StateReference; +import org.snmp4j.mp.StatusInformation; import org.snmp4j.smi.Address; import org.snmp4j.smi.GenericAddress; import org.snmp4j.smi.TcpAddress; @@ -98,6 +101,31 @@ public class SnmpTrapConsumer extends De PDU pdu = event.getPDU(); // check PDU not null if (pdu != null) { + // check for INFORM + // code take from the book "Essential SNMP" + if ((pdu.getType() != PDU.TRAP) && (pdu.getType() != PDU.V1TRAP) && (pdu.getType() != PDU.REPORT) + && (pdu.getType() != PDU.RESPONSE)) { + // first response the inform-message and then process the + // message + pdu.setErrorIndex(0); + pdu.setErrorStatus(0); + pdu.setType(PDU.RESPONSE); + StatusInformation statusInformation = new StatusInformation(); + StateReference ref = event.getStateReference(); + try { + event.getMessageDispatcher().returnResponsePdu(event.getMessageProcessingModel(), + event.getSecurityModel(), + event.getSecurityName(), + event.getSecurityLevel(), pdu, + event.getMaxSizeResponsePDU(), ref, + statusInformation); + if (LOG.isDebugEnabled()) { + LOG.debug("response to INFORM sent"); + } + } catch (MessageException ex) { + getExceptionHandler().handleException(ex); + } + } processPDU(pdu, event); } else { LOG.debug("Received invalid trap PDU: " + pdu);