instance(3)

NAME
instance - Process individual MIB instances easily.

  Functions
netsnmp_mib_handler * netsnmp_get_instance_handler (void)
Creates an instance helper handler, calls netsnmp_create_handler, which then could be registered, using netsnmp_register_handler().
int netsnmp_register_instance (netsnmp_handler_registration *reginfo)
This function registers an instance helper handler, which is a way of registering an exact OID such that GENEXT requests are handled entirely by the helper.
int netsnmp_register_read_only_instance (netsnmp_handler_registration *reginfo)
This function injects a 'read only' handler into the handler chain prior to serializing/registering the handler.
int netsnmp_register_read_only_ulong_instance (const char *name, oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler)
int netsnmp_register_ulong_instance (const char *name, oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler)
int netsnmp_register_read_only_counter32_instance (const char *name, oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler)
int netsnmp_register_read_only_long_instance (const char *name, oid *reg_oid, size_t reg_oid_len, long *it, Netsnmp_Node_Handler *subhandler)
int netsnmp_register_long_instance (const char *name, oid *reg_oid, size_t reg_oid_len, long *it, Netsnmp_Node_Handler *subhandler)
int netsnmp_register_read_only_uint_instance (const char *name, oid *reg_oid, size_t reg_oid_len, unsigned int *it, Netsnmp_Node_Handler *subhandler)
int netsnmp_register_uint_instance (const char *name, oid *reg_oid, size_t reg_oid_len, unsigned int *it, Netsnmp_Node_Handler *subhandler)
int netsnmp_register_read_only_int_instance (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler)
int register_read_only_int_instance (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler)
int netsnmp_register_read_only_ulong_instance_context (const char *name, oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler, const char *contextName)
int netsnmp_register_ulong_instance_context (const char *name, oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler, const char *contextName)
int netsnmp_register_read_only_counter32_instance_context (const char *name, oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler, const char *contextName)
int netsnmp_register_read_only_long_instance_context (const char *name, oid *reg_oid, size_t reg_oid_len, long *it, Netsnmp_Node_Handler *subhandler, const char *contextName)
int netsnmp_register_long_instance_context (const char *name, oid *reg_oid, size_t reg_oid_len, long *it, Netsnmp_Node_Handler *subhandler, const char *contextName)
int netsnmp_register_int_instance_context (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler, const char *contextName)
int netsnmp_register_read_only_int_instance_context (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler, const char *contextName)
int register_read_only_int_instance_context (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler, const char *contextName)
int netsnmp_register_num_file_instance (const char *name, oid *reg_oid, size_t reg_oid_len, char *file_name, int asn_type, int mode, Netsnmp_Node_Handler *subhandler, const char *contextName)
int netsnmp_register_int_instance (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler)
This function registers an int helper handler to a specified OID.
int netsnmp_instance_ulong_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
int netsnmp_instance_counter32_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
int netsnmp_instance_long_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
int netsnmp_instance_int_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
int netsnmp_instance_num_file_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
int netsnmp_instance_uint_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
int netsnmp_instance_helper_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)

Detailed Description

Process individual MIB instances easily.

Function Documentation

  netsnmp_mib_handler* netsnmp_get_instance_handler (void)

Creates an instance helper handler, calls netsnmp_create_handler, which then could be registered, using netsnmp_register_handler().

Returns:
    Returns a pointer to a netsnmp_mib_handler struct which contains the handler's name and the access method

Definition at line 48 of file instance.c.

References netsnmp_create_handler(), and netsnmp_instance_helper_handler().

Referenced by netsnmp_register_instance(), netsnmp_register_read_only_instance(), netsnmp_register_read_only_scalar(), netsnmp_register_scalar(), and netsnmp_register_scalar_group().

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

Definition at line 741 of file instance.c.

References netsnmp_mib_handler_s::access_method, netsnmp_num_file_instance_s::file_name, netsnmp_num_file_instance_s::filep, netsnmp_vardata::integer, memdup(), netsnmp_agent_request_info_s::mode, netsnmp_mib_handler_s::myvoid, netsnmp_call_next_handler(), netsnmp_create_data_list(), netsnmp_request_add_list_data(), netsnmp_request_get_list_data(), netsnmp_set_request_error(), netsnmp_mib_handler_s::next, NULL, netsnmp_request_info_s::requestvb, snmp_set_var_typed_value(), variable_list::type, netsnmp_num_file_instance_s::type, and variable_list::val.

Referenced by netsnmp_register_num_file_instance().

  int netsnmp_register_instance (netsnmp_handler_registration * reginfo)

This function registers an instance helper handler, which is a way of registering an exact OID such that GENEXT requests are handled entirely by the helper.

First need to inject it into the calling chain of the handler defined by the netsnmp_handler_registration struct, reginfo. The new handler is injected at the top of the list and will be the new handler to be called first. This function also injects a serialize handler before actually calling netsnmp_register_handle, registering reginfo.

Parameters:
    reginfo a handler registration structure which could get created using netsnmp_create_handler_registration. Used to register an instance helper handler.

Returns:
    MIB_REGISTERED_OK is returned if the registration was a success. Failures are MIB_REGISTRATION_FAILED and MIB_DUPLICATE_REGISTRATION.

Examples:
delayed_instance.c.

Definition at line 73 of file instance.c.

References netsnmp_mib_handler_s::flags, MIB_HANDLER_INSTANCE, netsnmp_get_instance_handler(), netsnmp_inject_handler(), and netsnmp_register_serialize().

Referenced by netsnmp_register_int_instance(), netsnmp_register_int_instance_context(), netsnmp_register_long_instance(), netsnmp_register_long_instance_context(), netsnmp_register_num_file_instance(), netsnmp_register_uint_instance(), netsnmp_register_ulong_instance(), netsnmp_register_ulong_instance_context(), and netsnmp_register_watched_instance().

  int netsnmp_register_int_instance (const char * name, oid * reg_oid, size_t reg_oid_len, int * it, Netsnmp_Node_Handler * subhandler)

This function registers an int helper handler to a specified OID.

Parameters:
    name the name used for registration pruposes.
    reg_oid the OID where you want to register your integer at
    reg_oid_len the length of the OID
    it the integer value to be registered during initialization
    subhandler a handler to do whatever you want to do, otherwise use NULL to use the default int handler.

Returns:
    MIB_REGISTERED_OK is returned if the registration was a success. Failures are MIB_REGISTRATION_FAILED and MIB_DUPLICATE_REGISTRATION.

Examples:
scalar_int.c.

Definition at line 460 of file instance.c.

References HANDLER_CAN_RWRITE, netsnmp_instance_int_handler(), netsnmp_register_instance(), and NULL.

  int netsnmp_register_read_only_instance (netsnmp_handler_registration * reginfo)

This function injects a 'read only' handler into the handler chain prior to serializing/registering the handler.

The only purpose of this 'read only' handler is to return an appropriate error for any requests passed to it in a SET mode. Inserting it into your handler chain will ensure you're never asked to perform a SET request so you can ignore those error conditions.

Parameters:
    reginfo a handler registration structure which could get created using netsnmp_create_handler_registration. Used to register a read only instance helper handler.

Returns:
    MIB_REGISTERED_OK is returned if the registration was a success. Failures are MIB_REGISTRATION_FAILED and MIB_DUPLICATE_REGISTRATION.

Definition at line 100 of file instance.c.

References netsnmp_get_instance_handler(), netsnmp_get_read_only_handler(), netsnmp_inject_handler(), and netsnmp_register_serialize().

Referenced by netsnmp_register_num_file_instance(), netsnmp_register_read_only_counter32_instance(), netsnmp_register_read_only_counter32_instance_context(), netsnmp_register_read_only_int_instance(), netsnmp_register_read_only_int_instance_context(), netsnmp_register_read_only_long_instance(), netsnmp_register_read_only_long_instance_context(), netsnmp_register_read_only_uint_instance(), netsnmp_register_read_only_ulong_instance(), and netsnmp_register_read_only_ulong_instance_context().