GNU/Linux |
CentOS 3.3 |
|
netsnmp_table(3) |
table: Helps you implement a table. − This handler helps you implement a table by doing some of the processing for you. More...
Modules
table_array: Helps you
implement a table when data can be stored locally. The data
is stored in a sorted array, using a binary search for
lookups.
The table_array handler is used (automatically) in
conjuntion with the table handler.
table_data:
Helps you implement a table with datamatted storage.
This helper helps you implement a table where all the
indexes are expected to be stored within the agent itself
and not in some external storage location.
table_iterator:
The table iterator helper is designed to simplify the task
of writing a table handler for the net-snmp agent when the
data being accessed is not in an oid sorted form and must be
accessed externally.
Functionally, it is a specialized version of the more
generic table helper but easies the burden of GETNEXT
processing by manually looping through all the data indexes
retrieved through function calls which should be supplied by
the module that wishes help.
Functions
netsnmp_mib_handler *
netsnmp_get_table_handler
(netsnmp_table_registration_info *tabreq)
Given a netsnmp_table_registration_info object, creates a
table handler.
int netsnmp_register_table
(netsnmp_handler_registration *reginfo,
netsnmp_table_registration_info *tabreq)
creates a table handler given the
netsnmp_table_registration_info object, inserts it into the
request chain and then calls
netsnmp_register_handler() to register the table
into the agent.
NETSNMP_INLINE netsnmp_table_request_info *
netsnmp_extract_table_info (netsnmp_request_info
*request)
extracts the processed table information from a given
request.
netsnmp_table_registration_info *
netsnmp_find_table_registration_info
(netsnmp_handler_registration *reginfo)
extracts the registered netsnmp_table_registration_info
object from a netsnmp_handler_registration object
int table_helper_handler (netsnmp_mib_handler
*handler, netsnmp_handler_registration *reginfo,
netsnmp_agent_request_info *reqinfo, netsnmp_request_info
*requests)
implements the table helper handler
int netsnmp_table_build_result
(netsnmp_handler_registration *reginfo, netsnmp_request_info
*reqinfo, netsnmp_table_request_info *table_info, u_char
type, u_char *result, size_t result_len)
Builds the result to be returned to the agent given the
table information.
int netsnmp_table_build_oid
(netsnmp_handler_registration *reginfo, netsnmp_request_info
*reqinfo, netsnmp_table_request_info *table_info)
given a registration info object, a request object and the
table info object it builds the
request->requestvb->name oid from the index values and
column information found in the table_info object.
int netsnmp_table_build_oid_from_index
(netsnmp_handler_registration *reginfo, netsnmp_request_info
*reqinfo, netsnmp_table_request_info *table_info)
Builds an oid from index information.
int netsnmp_update_variable_list_from_index
(netsnmp_table_request_info *tri)
parses an OID into table indexses
int netsnmp_update_indexes_from_variable_list
(netsnmp_table_request_info *tri)
builds an oid given a set of indexes.
int netsnmp_check_getnext_reply (netsnmp_request_info
*request, oid *prefix, size_t prefix_len,
netsnmp_variable_list *newvar, netsnmp_variable_list
**outvar)
checks the original request against the current data being
passed in if its greater than the request oid but less than
the current valid return, set the current valid return to
the new value.
This handler helps you implement a table by doing some of the processing for you.
This handler truly shows the power of the new handler mechanism. By creating a table handler and injecting it into your calling chain, or by using the netsnmp_register_table() function to register your table, you get access to some pre-parsed information. Specifically, the table handler pulls out the column number and indexes from the request oid so that you don’t have to do the complex work to do that parsing within your own code.
To do this, the table handler needs to know up front how your table is structured. To inform it about this, you fill in a table_registeration_info structure that is passed to the table handler. It contains the asn index types for the table as well as the minimum and maximum column that should be used.
int
netsnmp_check_getnext_reply (netsnmp_request_info * request,
oid * prefix, size_t prefix_len, netsnmp_variable_list *
newvar, netsnmp_variable_list ** outvar)
checks the original request against the current data being
passed in if its greater than the request oid but less than
the current valid return, set the current valid return to
the new value.
returns 1 if outvar was replaced with the oid from newvar (success). returns 0 if not.
Definition at line 666 of file table.c.
References snmp_oid_compare().
NETSNMP_INLINE
netsnmp_table_request_info* netsnmp_extract_table_info
(netsnmp_request_info * request)
extracts the processed table information from a given
request.
call this from subhandlers on a request to extract the processed netsnmp_request_info information. The resulting information includes the index values and the column number.
Definition at line 105 of file table.c.
References netsnmp_request_get_list_data().
Referenced by netsnmp_table_data_helper_handler(), and netsnmp_table_data_set_helper_handler().
netsnmp_table_registration_info*
netsnmp_find_table_registration_info
(netsnmp_handler_registration * reginfo)
extracts the registered netsnmp_table_registration_info
object from a netsnmp_handler_registration object
Definition at line 114 of file table.c.
References netsnmp_find_handler_data_by_name().
Referenced by netsnmp_table_data_helper_handler().
netsnmp_mib_handler*
netsnmp_get_table_handler (netsnmp_table_registration_info *
tabreq)
Given a netsnmp_table_registration_info object, creates a
table handler.
You can use this table handler by injecting it into a calling chain. When the handler gets called, it’ll do processing and store it’s information into the request->parent_data structure.
Definition at line 69 of file table.c.
References netsnmp_create_handler(), and table_helper_handler().
Referenced by netsnmp_register_table().
int
netsnmp_register_table (netsnmp_handler_registration *
reginfo, netsnmp_table_registration_info * tabreq)
creates a table handler given the
netsnmp_table_registration_info object, inserts it into the
request chain and then calls
netsnmp_register_handler() to register the table into
the agent.
Definition at line 92 of file table.c.
References netsnmp_get_table_handler(), netsnmp_inject_handler(), and netsnmp_register_handler().
Referenced by netsnmp_register_table_data(), and netsnmp_table_container_register().
int
netsnmp_table_build_oid (netsnmp_handler_registration *
reginfo, netsnmp_request_info * reqinfo,
netsnmp_table_request_info * table_info)
given a registration info object, a request object and the
table info object it builds the
request->requestvb->name oid from the index values and
column information found in the table_info object.
Definition at line 584 of file table.c.
Referenced by netsnmp_table_build_result().
int
netsnmp_table_build_oid_from_index
(netsnmp_handler_registration * reginfo,
netsnmp_request_info * reqinfo, netsnmp_table_request_info *
table_info)
Builds an oid from index information.
Definition at line 610 of file table.c.
int
netsnmp_table_build_result (netsnmp_handler_registration *
reginfo, netsnmp_request_info * reqinfo,
netsnmp_table_request_info * table_info, u_char type, u_char
* result, size_t result_len)
Builds the result to be returned to the agent given the
table information.
Use this function to return results from lowel level handlers to the agent. It takes care of building the proper resulting oid (containing proper indexing) and inserts the result value into the returning varbind.
Definition at line 551 of file table.c.
References netsnmp_table_build_oid().
int
netsnmp_update_indexes_from_variable_list
(netsnmp_table_request_info * tri)
builds an oid given a set of indexes.
Definition at line 648 of file table.c.
int
netsnmp_update_variable_list_from_index
(netsnmp_table_request_info * tri)
parses an OID into table indexses
Definition at line 637 of file table.c.
int
table_helper_handler (netsnmp_mib_handler * handler,
netsnmp_handler_registration * reginfo,
netsnmp_agent_request_info * reqinfo, netsnmp_request_info *
requests)
implements the table helper handler
Definition at line 122 of file table.c.
References netsnmp_call_next_handler(), netsnmp_request_add_list_data(), snmp_oid_compare(), and sprint_realloc_by_type().
Referenced by netsnmp_get_table_handler().
netsnmp_table(3) |