how to get value requested to set in MODE_SET_ACTION

"MAS ." <[email protected]>
Newsgroups gmane.network.net-snmp.devel,gmane.network.net-snmp.user
Message-ID <[email protected]>
Hi ,
I want to get value which is requested by set in following net-snmp example,
how do i do that? please help me :(

my code is as follows file: nstAgentSubagentObject.c

-----------------------------------------------------------------------------------------------------
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include "nstAgentSubagentObject.h"
#include <stdlib.h>

/** Initializes the nstAgentSubagentObject module */
void
init_nstAgentSubagentObject(void)
{
    static oid nstAgentSubagentObject_oid[] = { 1,3,6,1,4,1,8072,2,4,1,1,2
};

  DEBUGMSGTL(("nstAgentSubagentObject", "Initializing\n"));

    netsnmp_register_scalar(
        netsnmp_create_handler_registration("nstAgentSubagentObject",
handle_nstAgentSubagentObject,
                               nstAgentSubagentObject_oid,
OID_LENGTH(nstAgentSubagentObject_oid),
                               HANDLER_CAN_RWRITE
        ));
}

int
handle_nstAgentSubagentObject(netsnmp_mib_handler *handler,
                          netsnmp_handler_registration *reginfo,
                          netsnmp_agent_request_info   *reqinfo,
                          netsnmp_request_info         *requests)
{
    int ret;
    /* We are never called for a GETNEXT if it's registered as a
       "instance", as it's "magically" handled for us.  */

    /* a instance handler also only hands us one request at a time, so
       we don't need to loop over a list of requests; we'll only get one. */


    long* VALUE;

    VALUE = (long*)malloc(sizeof(long));




    switch(reqinfo->mode) {

        case MODE_GET:



            snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER,
                                     (u_char *) /* XXX: a pointer to the
scalar's data */,
                                     sizeof(long) /* XXX: the length of the
data in bytes */);
            break;

        /*
         * SET REQUEST
         *
         * multiple states in the transaction.  See:
         *
http://www.net-snmp.org/tutorial-5/toolkit/mib_module/set-actions.jpg
         */
        case MODE_SET_RESERVE1:
                /* or you could use netsnmp_check_vb_type_and_size instead
*/
            ret = netsnmp_check_vb_type(requests->requestvb, ASN_INTEGER);
            if ( ret != SNMP_ERR_NOERROR ) {
                netsnmp_set_request_error(reqinfo, requests, ret );
            }
            break;

        case MODE_SET_RESERVE2:
            /* XXX malloc "undo" storage buffer */
            if (0/* XXX if malloc, or whatever, failed: */) {
                netsnmp_set_request_error(reqinfo, requests,
SNMP_ERR_RESOURCEUNAVAILABLE);
            }
            break;

        case MODE_SET_FREE:
            /* XXX: free resources allocated in RESERVE1 and/or
               RESERVE2.  Something failed somewhere, and the states
               below won't be called. */
            break;

        case MODE_SET_ACTION:
            /* XXX: perform the value change here */

            HOW TO GET VALUE HERE?
           ( where do i find value requested by set?)


            if (0/* XXX: error? */) {
                netsnmp_set_request_error(reqinfo, requests,0 /* some error
*/);
            }


            break;

        case MODE_SET_COMMIT:
            /* XXX: delete temporary storage */
            if (0/* XXX: error? */) {
                /* try _really_really_ hard to never get to this point */
                netsnmp_set_request_error(reqinfo, requests,
SNMP_ERR_COMMITFAILED);
            }
            break;

        case MODE_SET_UNDO:
            /* XXX: UNDO and return to previous value for the object */
            if (0/* XXX: error? */) {
                /* try _really_really_ hard to never get to this point */
                netsnmp_set_request_error(reqinfo, requests,
SNMP_ERR_UNDOFAILED);
            }
            break;

        default:
            /* we should never get here, so this is a really bad error */
            snmp_log(LOG_ERR, "unknown mode (%d) in
handle_nstAgentSubagentObject\n", reqinfo->mode );
            return SNMP_ERR_GENERR;
    }

    return SNMP_ERR_NOERROR;
}

---------------------------------------------------------------------------------------------------------------

Thanks in advance !!!!!
mas

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