net-snmp  5.4.1
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_oid_stash_nodenetsnmp_oid_stash_create_sized_node (size_t mysize)
 Create an netsnmp_oid_stash node.
NETSNMP_INLINE
netsnmp_oid_stash_node
netsnmp_oid_stash_create_node (void)
 Creates a netsnmp_oid_stash_node.
int netsnmp_oid_stash_add_data (netsnmp_oid_stash_node **root, oid *lookup, size_t lookup_len, void *mydata)
 adds data to the stash at a given oid.
netsnmp_oid_stash_nodenetsnmp_oid_stash_get_node (netsnmp_oid_stash_node *root, oid *lookup, size_t lookup_len)
 returns a node associated with a given OID.
netsnmp_oid_stash_nodenetsnmp_oid_stash_getnext_node (netsnmp_oid_stash_node *root, oid *lookup, size_t lookup_len)
 returns the next node associated with a given OID.
void * netsnmp_oid_stash_get_data (netsnmp_oid_stash_node *root, oid *lookup, size_t lookup_len)
 returns a data pointer associated with a given OID.
int netsnmp_oid_stash_store_all (int majorID, int minorID, void *serverarg, void *clientarg)
 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

int netsnmp_oid_stash_add_data ( netsnmp_oid_stash_node **  root,
oid *  lookup,
size_t  lookup_len,
void *  mydata 
)

adds data to the stash at a given oid.

Parameters:
rootthe top of the stash tree
lookupthe oid index to store the data at.
lookup_lenthe length of the lookup oid.
mydatathe data to store
Returns:
SNMPERR_SUCCESS on success, SNMPERR_GENERR if data is already there, SNMPERR_MALLOC on malloc failures or if arguments passed in with NULL values.

Definition at line 83 of file oid_stash.c.

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 66 of file oid_stash.c.

Create an netsnmp_oid_stash node.

Parameters:
mysizethe size of the child pointer array
Returns:
NULL on error, otherwise the newly allocated node

Definition at line 46 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 401 of file oid_stash.c.

void* netsnmp_oid_stash_get_data ( netsnmp_oid_stash_node root,
oid *  lookup,
size_t  lookup_len 
)

returns a data pointer associated with a given OID.

This is equivelent to netsnmp_oid_stash_get_node, but returns only the data not the entire node.

Parameters:
rootthe top of the stash
lookupthe oid to search for
lookup_lenthe length of the search oid.

Definition at line 282 of file oid_stash.c.

netsnmp_oid_stash_node* netsnmp_oid_stash_get_node ( netsnmp_oid_stash_node root,
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 154 of file oid_stash.c.

netsnmp_oid_stash_node* netsnmp_oid_stash_getnext_node ( netsnmp_oid_stash_node root,
oid *  lookup,
size_t  lookup_len 
)

returns the next node associated with a given OID.

INCOMPLETE. This is equivelent to a GETNEXT operation.

Definition at line 191 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 334 of file oid_stash.c.

int netsnmp_oid_stash_store_all ( int  majorID,
int  minorID,
void *  serverarg,
void *  clientarg 
)

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 304 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 374 of file oid_stash.c.