[SNMP4J] unable to add community name to SampleAgent
Jeff Ramin
ramin at berbee.com
Wed Jan 21 18:12:34 CET 2009
Hi folks.
I'm using the latest snmp4jagent library (1.2.2), and I have the
SampleAgent running.
I want to add another community name that the agent will accept
from a v2c client. I've stolen some code from the TestAgent.addCommunities()
method and added it to the SampleAgent. These are the changes I've made:
I save the engine context id when creating the AgentConfigManager for
later use:
106c115,116
< agent = new AgentConfigManager(new OctetString(MPv3.createLocalEngineID()),
---
> engineContextID = new OctetString(MPv3.createLocalEngineID());
> agent = new AgentConfigManager(engineContextID,
I create and save an SnmpCommunityMIB object in the constructor for
later use:
115c125,133
< }
---
>
> SnmpTargetMIB targetMIB = new SnmpTargetMIB(messageDispatcher);
> communityMIB = new SnmpCommunityMIB(targetMIB);
> }
In main(), right after the sampleAgent.run() call, I try to add a
community name by calling the new method:
387a406,407
>
> addCommunity("test");
and here is my addCommunity() method, stolen from TestAgent:
private static void addCommunity(String community) {
// add row to SnmpCommunityMIB table
Variable[] com2sec = new Variable[] {
new OctetString(community), // community name
new OctetString("cpublic"), // security name
engineContextID, // local engine ID
new OctetString("public"), // default context name
new OctetString(), // transport tag
new Integer32(StorageType.nonVolatile), // storage type
new Integer32(RowStatus.active) // row status
};
MOTableRow row = communityMIB.getSnmpCommunityEntry().createRow(new
OctetString("public2public").toSubIndex(true), com2sec);
communityMIB.getSnmpCommunityEntry().addRow(row);
}
I don't see any errors, but the agent rejects requests that use
the community name "test".
Could somebody explain what I'm doing wrong? Thanks!
--
Jeffrey Ramin
Berbee
ramin at berbee.com
608.298.1024
More information about the SNMP4J
mailing list