Earlier I sent the initialization file, here is the handler and the for loop that is not looping.  I have upgraded the net-snmp to 5.3.1.  After looking at the debug, I have seen that the varBind is being created correctly.
 
Anyway, here is the handler.
 
int
commBaseStatsEntryTable_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;
        netsnmp_variable_list *var;
        static long value;
        unsigned int index;
        static unsigned char string[SPRINT_MAX_LEN];
        unsigned char debug_string[SPRINT_MAX_LEN];
        uint data_type = ASN_INTEGER;
 
        for (request = requests; request; request = request->next)
        {
                var = request->requestvb;
 
                if (request->processed != 0)
                        continue;
table_info = netsnmp_extract_table_info(request);
                index = *(table_info->indexes->val.integer);
 
                if(table_info == NULL)
                        continue;
 
              if((reqinfo->mode == MODE_GET) || (reqinfo->mode == MODE_GETNEXT))
                {
                   if(reqinfo->mode == MODE_GETNEXT)
                     index++;
                       switch(table_info->colnum)
                        {
 
                                case COLUMN_COMMBASESTATSENTRYINDEX:
                                        //if (getSensorStatsIndex(&value, index) < 0)
                                        //  value =  snmp_agent_common__BAD_APPL_IDX;
                                        getSensorStatsIndex(&value, index);
                                        data_type = ASN_INTEGER;
                                        break;
.....
.....
.....
.....
.....
 
 } // End switch
 
                        //check the value returned for errors
 
                        if(value != snmp_agent_common__BAD_APPL_IDX)
                        {
                          if ( data_type == ASN_OCTET_STR )
                              snmp_set_var_typed_value(var, ASN_OCTET_STR, (u_char *) string, strlen(string));
                          else if ( data_type == ASN_COUNTER )
                             snmp_set_var_typed_value(var, ASN_COUNTER, (u_char *) &value, sizeof(value));
                          else if ( data_type == ASN_INTEGER )
                            snmp_set_var_typed_value(var, ASN_INTEGER, (u_char *) &value, sizeof(value));
                          else
                            snmp_set_var_typed_value(var, ASN_NULL, (u_char *)SNMP_NOSUCHINSTANCE, 0);
                        }
                        else
                          snmp_set_var_typed_value(var, ASN_NULL, (u_char *)SNMP_NOSUCHINSTANCE, 0);
                 else
                 {
                   if(MODE_IS_SET(reqinfo->mode))
                        snmp_set_var_typed_value(var,ASN_NULL, (u_char *)SNMP_ERR_NOTWRITABLE,0);
                 } // END i(reqinfo->mode == MODE_GET) || (reqinfo->mode == MODE_GETNEXT)
        } // END FOR
 
  return SNMP_ERR_NOERROR;
}
Thanks if advance, I hope this is enough info.  I can't see any errors being created, except the for loop doesn't loop and the output for multiple values is always the index value.
 
Help
 
Greg L Robillard
-------------------------------------------------------------------------
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
Net-snmp-users@lists.sourceforge.net
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users

Reply via email to