Modules
grouptable_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.
grouptable_container: Helps you implement a table when data can be
found via a netsnmp_container.
The table_container handler is used (automatically) in conjuntion
with the table handler.
grouptable_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.
grouptable_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.
Defines
#define SPARSE_TABLE_HANDLER_NAME 'sparse_table'
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
*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)
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_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.
Detailed Description
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.
Function Documentation
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
the index values and the column number.
Parameters:
request populated netsnmp request structure
Returns:
populated netsnmp_table_request_info structure
Definition at line 128 of file table.c.
References netsnmp_request_get_list_data().
Referenced by netsnmp_insert_iterator_context(),
netsnmp_insert_table_row(), netsnmp_table_data_helper_handler(),
netsnmp_table_data_set_helper_handler(),
netsnmp_table_iterator_helper_handler(), and table_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 137 of file
table.c.
References netsnmp_find_handler_data_by_name(), and
netsnmp_handler_registration.
Referenced by netsnmp_table_data_helper_handler(), and
netsnmp_table_iterator_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.
The table helper handler pulls out the column number and indexes from
the request oid so that you don't have to do the complex work of
parsing within your own code.
Parameters:
tabreq is a pointer to a netsnmp_table_registration_info struct.
The table handler needs to know up front how your table is
structured. A netsnmp_table_registeration_info structure that is
passed to the table handler should contain the asn index types for
the table as well as the minimum and maximum column that should be
used.
Returns:
Returns a pointer to a netsnmp_mib_handler struct which contains
the handler's name and the access method
netsnmp_register_handler() to register the table into the agent.
Definition at line 111 of file table.c.
References netsnmp_get_table_handler(), netsnmp_handler_registration,
netsnmp_inject_handler(), and netsnmp_register_handler().
Referenced by netsnmp_register_table_data(),
netsnmp_register_table_iterator(), and
netsnmp_table_container_register().
netsnmp_mib_handler* netsnmp_sparse_table_handler_get (void)
create sparse table handler Definition at line 710 of file table.c.
References netsnmp_create_handler().
int netsnmp_sparse_table_register (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 721 of file table.c.
References netsnmp_create_handler(), netsnmp_get_table_handler(),
netsnmp_handler_registration, netsnmp_inject_handler(), and
netsnmp_register_handler().
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. Index values are
extracted from the table_info varbinds. .Entry
References build_oid(), netsnmp_table_request_info_s::colnum,
netsnmp_table_request_info_s::indexes, variable_list::name,
variable_list::name_length, netsnmp_handler_registration,
netsnmp_request_info_s::requestvb,
netsnmp_handler_registration_s::rootoid, and
netsnmp_handler_registration_s::rootoid_len.
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)
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. Index values are
extracted from the table_info index oid. Definition at line 809 of file
table.c.
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 739 of file table.c.
References variable_list::name, variable_list::name_loc,
netsnmp_handler_registration, netsnmp_table_build_oid(),
netsnmp_request_info_s::requestvb, and snmp_set_var_typed_value().
int netsnmp_update_indexes_from_variable_list (netsnmp_table_request_info *
tri)
builds an oid given a set of indexes. Definition at line 854 of file
table.c.
References netsnmp_table_request_info_s::index_oid,
netsnmp_table_request_info_s::index_oid_len, and
netsnmp_table_request_info_s::indexes.
int netsnmp_update_variable_list_from_index (netsnmp_table_request_info *
tri)
parses an OID into table indexses Definition at line 838 of file
table.c.
References netsnmp_table_request_info_s::index_oid,
netsnmp_table_request_info_s::index_oid_len, and
netsnmp_table_request_info_s::indexes.
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 XXX-rks: memory leak. add cleanup
handler?
none available
got one ok
for loop Definition at line 145 of file table.c.
References netsnmp_table_request_info_s::colnum,
netsnmp_mib_handler_s::handler_name,
netsnmp_table_request_info_s::index_oid,
netsnmp_table_request_info_s::index_oid_len,
netsnmp_table_request_info_s::indexes,
netsnmp_table_registration_info_s::indexes,
netsnmp_table_registration_info_s::max_column,
netsnmp_table_registration_info_s::min_column,
netsnmp_agent_request_info_s::mode, netsnmp_mib_handler_s::myvoid,
variable_list::name, variable_list::name_length,
variable_list::name_loc, netsnmp_call_next_handler(),
netsnmp_create_data_list(), netsnmp_extract_table_info(),
netsnmp_handler_registration, netsnmp_mib_handler,
netsnmp_request_add_list_data(), netsnmp_set_request_error(),
net-snmp 24 Jantable: Helps you implement a table.(3)
Man(1) output converted with
man2html
|