SNMPTable - Multilple Instances

"pavithra s" <[email protected]>
Newsgroups gmane.network.net-snmp.user
Message-ID <[email protected]>
Hi All,

I trying to do multiple instances using Table code generated from mib2c
tool.I m able to walk,bulkget,etc., but the problem is the agent is not
recognising the end of the instance.For  example if i have created 2
instances using createEntry funtion,when i request for the third instance as
XXX.3,i shoould get Msg like "No such Instance available"

But i m error like
netsnmp_assert pss->s_snmp_errno != (-11) failed snmp_api.c:3124
snmp_build()
send response: Error building ASN.1 representation (build int size 0: s/b 4)
XXX.2

I m attaching what i ve done to generated code:

void
initialize_table_voltTable(void)
{

struct voltTable_entry *data=NULL;

........../* same as generated*/
..........

data = GetVoltData();
     if(data==NULL)
         return NULL;
}
struct voltTable_entry *GetVoltData()
{

    struct voltTable_entry
*entry=NULL,*tmp=NULL,*tmp_ptr=NULL,*tmp3=NULL,*tmp4=NULL;

    tmp = SNMP_MALLOC_TYPEDEF(struct voltTable_entry);
    if (!tmp)
        return NULL;

    tmp_ptr = SNMP_MALLOC_TYPEDEF(struct voltTable_entry);
    if (!tmp_ptr)
        return NULL;

/

    tmp = voltTable_createEntry(0);


        tmp->valid =1;

        strncpy(tmp->voltDescr,"Voltage",strlen("Voltage")+1);
        tmp->voltReading = 18;//voltReading;
        tmp->voltNominalReading =17;// voltNominalReading;
        tmp->voltNonRecovLimitHigh =16 ;//voltNonRecovLimitHigh;

//     tmp->next=NULL;

        tmp_ptr = tmp->next;

        tmp_ptr = voltTable_createEntry(1);
        tmp_ptr->valid =1;


strncpy(tmp_ptr->voltDescr,"Voltage2",strlen("Voltage22222222222")+1);
        tmp_ptr->voltReading = 10;//voltReading;
        tmp_ptr->voltNominalReading =22;// voltNominalReading;
        tmp_ptr->voltNonRecovLimitHigh =21 ;//voltNonRecovLimitHigh;


        tmp_ptr->next=NULL;

}

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


    voltTable_head = GetVoltData();

    if(voltTable_head!=NULL){
        *my_loop_context = voltTable_head;
        printf("\n\n index==========in gte_first %d",put_index_data->index);
        return voltTable_get_next_data_point(my_loop_context,
my_data_context,
                                         put_index_data, mydata);
    }
    else{
        return NULL;
    }
}

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

    struct voltTable_entry *entry =
                (struct voltTable_entry *) *my_loop_context;

                netsnmp_variable_list *idx = put_index_data;

    if (entry)
     {
//         printf("\n----innnndex ==---%d",*put_index_data->val.integer);
        if(*put_index_data->val.integer<2)
            {
//             printf("\n in set_value\n\n");
            snmp_set_var_value(idx,(u_char *)&entry->voltIndex,
sizeof(entry->voltIndex));
            idx = idx->next_variable;
            *my_data_context = (void *)entry;
            *my_loop_context = (void *)entry->next;
            return put_index_data;
            }
        else{
            printf("\n I M HERE in else \n\n");
            return NULL;
        }

    }

    else {
        printf("\n I m here-------------in entry=NULL---\n\n");
//         SET_SNMP_ERROR(SNMPERR_UNKNOWN_OBJID);
        return NULL;
    }

}



This is wht i ve done to the generated template....I tried for very long
time but i m not able to resolve....  Any help will be of great help....its
urgent

Thanks &Regards,
Pavithra S

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/

_______________________________________________
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.