Re: multiple Sub-agents managing the same table

"Arnaud BODENAN" <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <[email protected]>
Me again...

To see if I reproduce the same problem with the latest version of net-snmp, 
I try my sample with net-snmp v5.3.1 (instead of v.5.0.11).

The problems I'm facing now are:
- the index retrieved with register_int_index is always -1
- I get a long list of error messages 'registering pdu failed: 263!'

The sample I test is identical to the sample which was running correctly 
with net-snmp v5.0.11.

Here is the code of my sample:

void init_GenServerTable()
{
oid genServerTableOid[] =
    { 1, 3, 6, 1, 4, 1, 99999, 10000, 1, 1 };

size_t genServerTableOidLen = OID_LENGTH(genServerTableOid);
	u_long allocatedIndex = register_int_index(genServerTableOid, 
genServerTableOidLen, ANY_INTEGER_INDEX);

oid genServerAllocatedOid[] =
    { 1, 3, 6, 1, 4, 1, 99999, 10000, 1, 1, 1, 1 };
size_t genServerAllocatedOidLen = OID_LENGTH(genServerAllocatedOid);
genServerAllocatedOid[genServerAllocatedOidLen - 1] = allocatedIndex;

netsnmp_table_data_set *genServerTable = 
netsnmp_create_table_data_set("genServerTable");

netsnmp_table_dataset_add_index(genServerTable, ASN_UNSIGNED);
netsnmp_table_set_multi_add_default_row(genServerTable,
                                            2,
                                            ASN_OCTET_STR, 0, NULL, 0,
                                            3,
                                            ASN_OCTET_STR, 0, NULL, 0,
                                            4,
                                            ASN_OCTET_STR, 0, NULL, 0,
                                            5,
                                            ASN_UNSIGNED, 0, NULL, 0,
                                            0);

netsnmp_handler_registration * handlerServerTable = 
netsnmp_create_handler_registration
("genServerTable",
NULL,
genServerAllocatedOid, //genServerAllocatedOid,
genServerAllocatedOidLen - 2, //genServerAllocatedOidLen,
HANDLER_CAN_RONLY);

handlerServerTable->range_subid = genServerAllocatedOidLen - 1;
handlerServerTable->range_ubound = 5;

int res = netsnmp_register_table_data_set(handlerServerTable, 
genServerTable, NULL);
if ( res != MIB_REGISTERED_OK )
{
	snmp_log(LOG_ERR,"Unable to register the Server Row: res = %d.\n", res);
}

// Add a Row
netsnmp_table_row *row  = netsnmp_create_table_data_row();

snmp_log(LOG_INFO,"Index found=%d.\n", allocatedIndex);
netsnmp_table_row_add_index(row, ASN_UNSIGNED, &allocatedIndex, 
sizeof(allocatedIndex));

netsnmp_set_row_column(row, 2, ASN_OCTET_STR,
                           "Test1", strlen("Test1"));

netsnmp_set_row_column(row, 3, ASN_OCTET_STR, "Test2",
                           strlen("Test2"));

netsnmp_set_row_column(row, 4, ASN_OCTET_STR,
                           "Test3", strlen("Test3"));

u_long pid = 1500;
netsnmp_set_row_column(row, 5, ASN_UNSIGNED, (const char *)&pid, 
sizeof(pid));

netsnmp_table_dataset_add_row(genServerTable, row);

}


RETSIGTYPE
stop_server(int a) {
    keep_running = 0;
}

int
main (int argc, char **argv)
{
	// print log errors to syslog or stderr
                snmp_enable_stderrlog();

	// Sub-agentX
                netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, 
NETSNMP_DS_AGENT_ROLE, 1);
	// Read configuration file
	netsnmp_ds_set_string(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_OPTIONALCONFIG, 
"App1.conf");
                netsnmp_ds_toggle_boolean(NETSNMP_DS_APPLICATION_ID, 
NETSNMP_DS_AGENT_NO_ROOT_ACCESS);
	netsnmp_ds_set_string(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_X_SOCKET, 
"/home/arnboden/snmp/master");

	// Set the communication Port with the master agent
	netsnmp_ds_set_string(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_PORTS, 
"1400");

	SOCK_STARTUP;

	// initialize the agent library
	init_agent("App1");

	init_mib_modules();

	// Load the table
	init_GenServerTable();

	init_snmp("App1");

	keep_running = 1;
	signal(SIGTERM, stop_server);
	signal(SIGINT, stop_server);

	snmp_log(LOG_INFO,"App1 is up and running.\n");

	sendSpecificTrap();

	while(keep_running)
	{
		agent_check_and_process(1);
	}

	snmp_shutdown("App1");
	SOCK_CLEANUP;

	return 0;
}

Any suggestions?

Thanks in advance.

>From: "Arnaud BODENAN" <[email protected]>
>To: [email protected]
>Subject: Re: multiple Sub-agents managing the same table
>Date: Tue, 05 Sep 2006 15:12:16 +0200
>
>At the moment, when I register my first application (App1), it is now well
>registered and an snmpwalk on my table gives me now the values I expect:
>GEN-MONITORING-MIB::genServerName.1 = STRING: "Test1"
>GEN-MONITORING-MIB::genServerProductName.1 = STRING: "Test2"
>GEN-MONITORING-MIB::genServerHostname.1 = STRING: "Test3"
>GEN-MONITORING-MIB::genServerPID.1 = Gauge32: 1500
>
>But, now, I'm not able to register a new server. (I will debug my second
>server to see what's going on)
>
> >From: "Dave Shield" <[email protected]>
> >To: "Arnaud BODENAN" <[email protected]>
> >CC: [email protected]
> >Subject: Re: multiple Sub-agents managing the same table
> >Date: Tue, 5 Sep 2006 13:32:03 +0100
> >
> >On 05/09/06, Arnaud BODENAN <[email protected]> wrote:
> >>What is nsRegistryTable? I look in the source code of net-snmp and I do
> >>not
> >>find any occurence of nsRegistryTable.
> >
> >My apologies.  It's actually the 'nsMibRegistry' group
> >(containing the 'nsModuleTable').
> >
> >It lists all the MIB object that have been registered with the master
> >agent.
> >
> >Dave
>
>_________________________________________________________________
>Get the new Windows Live Messenger!
>http://imagine-msn.com/messenger/launch80/default.aspx?locale=en-us&source=wlmailtagline
>
>
>-------------------------------------------------------------------------
>Using Tomcat but need to do more? Need to support web services, security?
>Get stuff done quickly with pre-integrated technology to make your job 
>easier
>Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>_______________________________________________
>Net-snmp-users mailing list
>[email protected]
>Please see the following page to unsubscribe or change other options:
>https://lists.sourceforge.net/lists/listinfo/net-snmp-users

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.