Hi,

I am using 'mib2c.iterate.conf' to generate code.  In (object)table_ handler, 
'requests' is passed to 'MODE_GET' using 'table_entry' pointer.

Can I get requested index value without using 'struct 
sampleGeneralTable_entry'. Suppose OID used as 
"1,3,6,1,4,1,2088,15,2,1,1,6,1,1,1.1" and instance of table index is "55". How 
can I access "55" from whole OID list?

Here is the snippet of code:-

int
sampleGeneralTable_handler(
    netsnmp_mib_handler               *handler,
    netsnmp_handler_registration      *reginfo,
    netsnmp_agent_request_info        *reqinfo,
    netsnmp_request_info              *requests) {

    netsnmp_request_info       *request;
    netsnmp_table_request_info *table_info;
    struct sampleGeneralTable_entry          *table_entry;

    switch (reqinfo->mode) {
        /*
         * Read-support (also covers GetNext requests)
         */
    case MODE_GET:
        for (request=requests; request; request=request->next) {
            table_entry = (struct sampleGeneralTable_entry *)
                              netsnmp_extract_iterator_context(request);
            table_info  =     netsnmp_extract_table_info(      request);

          int retVal = -1;

            switch (table_info->colnum) {
            case COLUMN_SAMPLENUMBER:
                /*
if ( !table_entry ) {
                    netsnmp_set_request_error(reqinfo, request,
                                              SNMP_NOSUCHINSTANCE);
                    continue;
                } */
           //Don't want to use 'table_entry', so commented.

              // Here, I would like to pass index value, directly coming 
request,
              //  Could you suggest me the parameter in request to get index 
value ??

    retVal = getDataValueIndex( requested_index)  // external api to get data 
value for requested index.

snmp_set_var_typed_integer( request->requestvb, ASN_INTEGER, retVal);


Here, I modified to get_first_data and get_next_data. Does the following draft 
code looks alright???

netsnmp_variable_list *
sampleGeneralTable_get_first_data_point(void **my_loop_context,
                          void **my_data_context,
                          netsnmp_variable_list *put_index_data,
                          netsnmp_iterator_info *mydata)
{

        dbi_result result;
        char tmpBuff[100] = {'\0'};

        result = (dbi_result)SelectQuery(tmpBuff); // external api
        *my_loop_context = result; // instead of 'sampleGeneralTable_head' 
pointer, I used query result

 return  sampleGeneralTable_get_next_data_point(my_loop_context, 
my_data_context,
                                    put_index_data,  mydata );

}

netsnmp_variable_list *
sampleGeneralTable_get_next_data_point(void **my_loop_context,
                          void **my_data_context,
                          netsnmp_variable_list *put_index_data,
                          netsnmp_iterator_info *mydata)
{

//    struct sampleGeneralTable_entry *entry = (struct sampleGeneralTable_entry 
*)*my_loop_context;
        // Commented not using, link list

        dbi_result result = (dbi_result)*my_loop_context;

        netsnmp_variable_list *idx = put_index_data;

        if(dbi_result_next_row(result))
        {
                retVal = getData(result);
        }

snmp_set_var_typed_integer( idx, ASN_INTEGER, retVal);
         idx = idx->next_variable;
        *my_data_context = (void *)result;              // Modified
        *my_loop_context = (void *)dbi_result_next_row(result); //Modified

 return put_index_data;
    } else {
        return NULL;
    }

}


Thanks,
Rajnish

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Net-snmp-coders mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to