net-snmp 5.7
Functions
Store and retrieve data referenced by an OID.
The Net-SNMP library

This is essentially a way of storing data associated with a given OID. More...

Functions

NETSNMP_INLINE
netsnmp_oid_stash_node
netsnmp_oid_stash_create_node (void)
 Creates a netsnmp_oid_stash_node.
 netsnmp_feature_child_of (oid_stash_add_data, oid_stash_all)
netsnmp_oid_stash_nodenetsnmp_oid_stash_get_node (netsnmp_oid_stash_node *root, const oid *lookup, size_t lookup_len)
 returns a node associated with a given OID.
 netsnmp_feature_child_of (oid_stash_iterate, oid_stash_all)
 returns the next node associated with a given OID.
 netsnmp_feature_child_of (oid_stash_get_data, oid_stash_all)
 netsnmp_feature_child_of (oid_stash_store_all, oid_stash_all)
 a wrapper around netsnmp_oid_stash_store for use with a snmp_alarm.
void netsnmp_oid_stash_store (netsnmp_oid_stash_node *root, const char *tokenname, NetSNMPStashDump *dumpfn, oid *curoid, size_t curoid_len)
 stores data in a starsh tree to peristent storage.
void oid_stash_dump (netsnmp_oid_stash_node *root, char *prefix)
 For debugging: dump the netsnmp_oid_stash tree to stdout.
void netsnmp_oid_stash_free (netsnmp_oid_stash_node **root, NetSNMPStashFreeNode *freefn)
 Frees the contents of a netsnmp_oid_stash tree.
void netsnmp_oid_stash_no_free (void *bogus)

Detailed Description

This is essentially a way of storing data associated with a given OID.

It stores a bunch of data pointers within a memory tree that allows fairly efficient lookups with a heavily populated tree.


Function Documentation

netsnmp_feature_child_of ( oid_stash_iterate  ,
oid_stash_all   
)

returns the next node associated with a given OID.

INCOMPLETE. This is equivelent to a GETNEXT operation.

Definition at line 200 of file oid_stash.c.

netsnmp_feature_child_of ( oid_stash_store_all  ,
oid_stash_all   
)

a wrapper around netsnmp_oid_stash_store for use with a snmp_alarm.

when calling snmp_alarm, you can list this as a callback. The clientarg should be a pointer to a netsnmp_oid_stash_save_info pointer. It can also be called directly, of course. The last argument (clientarg) is the only one that is used. The rest are ignored by the function.

Parameters:
majorID
minorID
serverarg
clientargA pointer to a netsnmp_oid_stash_save_info structure.

Definition at line 319 of file oid_stash.c.

NETSNMP_INLINE netsnmp_oid_stash_node* netsnmp_oid_stash_create_node ( void  )

Creates a netsnmp_oid_stash_node.

Assumes you want the default OID_STASH_CHILDREN_SIZE hash size for the node.

Returns:
NULL on error, otherwise the newly allocated node

Definition at line 73 of file oid_stash.c.

void netsnmp_oid_stash_free ( netsnmp_oid_stash_node **  root,
NetSNMPStashFreeNode *  freefn 
)

Frees the contents of a netsnmp_oid_stash tree.

Parameters:
rootthe top of the tree (or branch to be freed)
freefnThe function to be called on each data (void *) pointer. If left NULL the system free() function will be called

Definition at line 420 of file oid_stash.c.

netsnmp_oid_stash_node* netsnmp_oid_stash_get_node ( netsnmp_oid_stash_node root,
const oid *  lookup,
size_t  lookup_len 
)

returns a node associated with a given OID.

Parameters:
rootthe top of the stash tree
lookupthe oid to look up a node for.
lookup_lenthe length of the lookup oid

Definition at line 164 of file oid_stash.c.

void netsnmp_oid_stash_store ( netsnmp_oid_stash_node root,
const char *  tokenname,
NetSNMPStashDump *  dumpfn,
oid *  curoid,
size_t  curoid_len 
)

stores data in a starsh tree to peristent storage.

This function can be called to save all data in a stash tree to Net-SNMP's percent storage. Make sure you register a parsing function with the read_config system to re-incorperate your saved data into future trees.

Parameters:
rootthe top of the stash to store.
tokennamethe file token name to save in (passing "snmpd" will save things into snmpd.conf).
dumpfnA function which can dump the data stored at a particular node into a char buffer.
curoidmust be a pointer to a OID array of length MAX_OID_LEN.
curoid_lenmust be 0 for the top level call.

Definition at line 353 of file oid_stash.c.

void oid_stash_dump ( netsnmp_oid_stash_node root,
char *  prefix 
)

For debugging: dump the netsnmp_oid_stash tree to stdout.

Parameters:
rootThe top of the tree
prefixa character string prefix printed to the beginning of each line.

Definition at line 393 of file oid_stash.c.