I found mib2c generated code contains data type mismatch .

Generated structure  looks below
    /* Typical data structure for a row entry */
struct messageTable_entry {
    /* Index values */
    long messageIndex;

    /* Column values */

    U64 sentMsgCount;
    long errorMsgCount;
    long currentMsgID;

    /* Illustrate using a simple linked list */
    int   valid;
    struct messageTable_entry *next;
};

Handler skeleton as below.
int
messageTable_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 messageTable_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 messageTable_entry *)
                              netsnmp_extract_iterator_context(request);
            table_info  =     netsnmp_extract_table_info(      request);

            switch (table_info->colnum) {
            case COLUMN_SENTMSGCOUNT:
                if ( !table_entry ) {
                    netsnmp_set_request_error(reqinfo, request,
                                              SNMP_NOSUCHINSTANCE);
                    continue;
                }
                snmp_set_var_typed_integer( request->requestvb, ASN_COUNTER64,
                                            table_entry->sentMsgCount);
                break;
---------------------------------------------------------------------------------



}

The problem is   with    snmp_set_var_typed_integer( request->requestvb, 
ASN_COUNTER64,
                                            table_entry->sentMsgCount);

snmp_set_var_typed_integer() expects the 3rd parameter as long .

I think , it should be used as
snmp_set_var_typed_value( request->requestvb, ASN_COUNTER64,
                                            &(table_entry->sentMsgCount), 
sizeof(table_entry->sentMsgCount));

Is it wrong ? Please let me know.

Thanks
Sujata


      
------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Net-snmp-coders mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to