On Mon, 2009-06-08 at 19:10 +0800, Tewen Hsieh wrote: > > Hi, > > Thanks for your help. > > But I can't understand your suggestion. Could you explain more > clearly? Thanks. > > I want to get the the index *values*, not to know the indices a table > used. > For example, in XXX table there are two indices including ip address > and port number. > When I send a request 1.3.6.1.4.192.168.100.100.33 to agent, how can I > get index values (ip address = 192.168.100.100, port num = 33) in the > template code generated from mib2c.iterate_access.conf? > > Do you have any idea about this?
As Dave says there is no helper for this. This code is part of a test program I have (the module is named indexes, you may wish to do a search and replace to change the name to something better, also you might have to remove some const's as I tend to add them generously and the old code might fail to handle all the ones that I use). static int handle_table(netsnmp_mib_handler* handler, netsnmp_handler_registration* reginfo, netsnmp_agent_request_info* reqinfo, netsnmp_request_info* requests) { netsnmp_request_info* r; netsnmp_table_request_info* tri; netsnmp_variable_list* vl; for (r = requests; r; r = r->next) { tri = netsnmp_extract_table_info(r); if (!tri) continue; /* Here *vl contains the ip address and * *vl->next_variable contains the port * Note that this only extracts the indices, it is up to you * to handle getnext requests properly! */ } } return SNMP_ERR_NOERROR; } static const oid indexes_oid[] = { 1, 3, 6, 1, 4, 1, 8072, 9999, 9999, 4711 }; void init_indexes(void) { netsnmp_handler_registration *reg = netsnmp_create_handler_registration( "indexes", handle_table, indexes_oid, OID_LENGTH(indexes_oid), HANDLER_CAN_RONLY); netsnmp_table_registration_info *table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info); netsnmp_table_helper_add_indexes( table_info, ASN_IPADDRESS, ASN_INTEGER, 0); table_info->min_column = 2; /* adopt this to your situation */ table_info->max_column = 2; netsnmp_register_table(reg, table_info); } void shutdown_indexes(void) { unregister_mib(indexes_oid, OID_LENGTH(indexes_oid)); } /* since you are using an old version of the agent you might wish to * add this function */ void deinit_indexes(void) { shutdown_indexes(); } > > > 永鈦鑫 iTAS Corporation > 新竹市水源街75號 > NO. 75,Shuiyuan St., Hsinchu City, Taiwan, R.O.C. > Tel:03-5716099 Ext.1208 > E-mail:tewen.hs...@itas.com.tw > ----- Original Message ----- > From: Amol Anil Malokar > To: Tewen Hsieh > Sent: Monday, June 08, 2009 6:41 PM > Subject: RE: Could anyone give me some suggestions? > > > hi , > > check with data structure ; > > "netsnmp_table_registration_info" > > > > > ______________________________________________________________ > From: Tewen Hsieh [mailto:tewen.hs...@itas.com.tw] > Sent: Mon 6/8/2009 3:55 PM > To: net-snmp-coders@lists.sourceforge.net > Subject: Could anyone give me some suggestions? > > > Hi all, > > I used "mib2c.iterate_access.conf" to generate my template > code for XXX table. > In XXXTable_get_first_data_point(), I use > XXXTable_createStructure() to get external data and store them > in a local structure when this table is accessed at the first > time. (The external data are all PHY register values.) > So the agent can response very fast after the first request. > But the external data I must get at the first time is very > huge, the agent always timeouts when it still works in > XXXTable_createStructure() to get external data. > Could anyone give me some suggestions about resolving this > condition? > > I also tried to not get all external data, but I don't know > how to get the index value of the incoming request in > XXXTable_get_first_data_point(). > Could anyone help me to know where can get the index valuse of > the incoming request in template code that are generated from > "mib2c.iterate_acc.conf". > > > Thanks in advance. > > > > BR, > > > > > > > > 永鈦鑫 iTAS Corporation > 新竹市水源街75號 > NO. 75,Shuiyuan St., Hsinchu City, Taiwan, R.O.C. > Tel:03-5716099 Ext.1208 > E-mail:tewen.hs...@itas.com.tw > The information contained in this electronic message and any > attachments to this message are intended for the exclusive > use of the addressee(s) and may contain proprietary, confidential or > privileged information. If you are not the intended > recipient, you should not disseminate, distribute or copy this > e-mail. Please notify the sender immediately and destroy > all copies of this message and any attachments contained in it. > > ------------------------------------------------------------------------------ > OpenSolaris 2009.06 is a cutting edge operating system for enterprises > looking to deploy the next generation of Solaris that includes the latest > innovations from Sun and the OpenSource community. Download a copy and > enjoy capabilities such as Networking, Storage and Virtualization. > Go to: http://p.sf.net/sfu/opensolaris-get > _______________________________________________ Net-snmp-coders mailing list > Net-snmp-coders@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/net-snmp-coders ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ Net-snmp-coders mailing list Net-snmp-coders@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/net-snmp-coders