multiplexer: splits mode requests into calls to different handlers.(3)

NAME
multiplexer: splits mode requests into calls to different handlers. - The multiplexer helper lets you split the calling chain depending on the calling mode (get vs getnext vs set).

  Functions
netsnmp_mib_handler * netsnmp_get_multiplexer_handler (netsnmp_mib_handler_methods *req)
returns a multiplixer handler given a netsnmp_mib_handler_methods structure of subhandlers.
int netsnmp_multiplexer_helper_handler (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)
implements the multiplexer helper

Detailed Description

The multiplexer helper lets you split the calling chain depending on the calling mode (get vs getnext vs set). Useful if you want different routines to handle different aspects of SNMP requests, which is very common for GET vs SET type actions.

Functionally:

1.  GET requests call the get_method

2.  GETNEXT requests call the getnext_method, or if not present, the get_method.

3.  GETBULK requests call the getbulk_method, or if not present, the getnext_method, or if even that isn't present the get_method.

4.  SET requests call the set_method, or if not present return a SNMP_ERR_NOTWRITABLE error.

Function Documentation

  netsnmp_mib_handler* netsnmp_get_multiplexer_handler (netsnmp_mib_handler_methods * req)

returns a multiplixer handler given a netsnmp_mib_handler_methods structure of subhandlers. Definition at line 36 of file multiplexer.c.

References netsnmp_mib_handler_s::myvoid, netsnmp_create_handler(), netsnmp_mib_handler, and snmp_log().

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

implements the multiplexer helper Definition at line 57 of file multiplexer.c.

References netsnmp_agent_request_info_s::mode, netsnmp_mib_handler_s::myvoid, netsnmp_call_handler(), netsnmp_handler_registration, netsnmp_mib_handler, netsnmp_set_all_requests_error(), and snmp_log().