documentation update


git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/trunk@13342 06827809-a52a-0410-b366-d66718629ded
diff --git a/man/netsnmp_Container_iterator.3 b/man/netsnmp_Container_iterator.3
index 443981b..04a3e0e 100644
--- a/man/netsnmp_Container_iterator.3
+++ b/man/netsnmp_Container_iterator.3
@@ -1,4 +1,4 @@
-.TH "Container_iterator" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "Container_iterator" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/netsnmp_agent.3 b/man/netsnmp_agent.3
index 1943e6a..dffc707 100644
--- a/man/netsnmp_agent.3
+++ b/man/netsnmp_agent.3
@@ -1,4 +1,4 @@
-.TH "The Net-SNMP agent" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "The Net-SNMP agent" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/netsnmp_agent_registry.3 b/man/netsnmp_agent_registry.3
index 538a2ad..cafacaa 100644
--- a/man/netsnmp_agent_registry.3
+++ b/man/netsnmp_agent_registry.3
@@ -1,4 +1,4 @@
-.TH "Maintain a registry of MIB subtrees, together with related information regarding mibmodule, sessions, etc" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "Maintain a registry of MIB subtrees, together with related information regarding mibmodule, sessions, etc" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -69,6 +69,12 @@
 .RI "netsnmp_subtree * \fBnetsnmp_subtree_replace_first\fP (netsnmp_subtree *new_tree, const char *context_name)"
 .br
 .ti -1c
+.RI "NETSNMP_INLINE void \fBnetsnmp_subtree_change_next\fP (netsnmp_subtree *ptr, netsnmp_subtree *thenext)"
+.br
+.ti -1c
+.RI "NETSNMP_INLINE void \fBnetsnmp_subtree_change_prev\fP (netsnmp_subtree *ptr, netsnmp_subtree *theprev)"
+.br
+.ti -1c
 .RI "int \fBnetsnmp_subtree_compare\fP (const netsnmp_subtree *ap, const netsnmp_subtree *bp)"
 .br
 .ti -1c
@@ -182,24 +188,6 @@
 .RI "void \fBdump_registry\fP (void)"
 .br
 .ti -1c
-.RI "int \fBregister_readfd\fP (int fd, void(*func)(int, void *), void *data)"
-.br
-.ti -1c
-.RI "int \fBregister_writefd\fP (int fd, void(*func)(int, void *), void *data)"
-.br
-.ti -1c
-.RI "int \fBregister_exceptfd\fP (int fd, void(*func)(int, void *), void *data)"
-.br
-.ti -1c
-.RI "int \fBunregister_readfd\fP (int fd)"
-.br
-.ti -1c
-.RI "int \fBunregister_writefd\fP (int fd)"
-.br
-.ti -1c
-.RI "int \fBunregister_exceptfd\fP (int fd)"
-.br
-.ti -1c
 .RI "RETSIGTYPE \fBagent_SIGCHLD_handler\fP (int sig)"
 .br
 .ti -1c
@@ -219,84 +207,12 @@
 .RI "int \fBlookup_cache_size\fP = 0"
 .br
 .ti -1c
-.RI "int \fBexternal_readfd\fP [NUM_EXTERNAL_FDS]"
-.br
-.ti -1c
-.RI "int \fBexternal_readfdlen\fP = 0"
-.br
-.ti -1c
-.RI "int \fBexternal_writefd\fP [NUM_EXTERNAL_FDS]"
-.br
-.ti -1c
-.RI "int \fBexternal_writefdlen\fP = 0"
-.br
-.ti -1c
-.RI "int \fBexternal_exceptfd\fP [NUM_EXTERNAL_FDS]"
-.br
-.ti -1c
-.RI "int \fBexternal_exceptfdlen\fP = 0"
-.br
-.ti -1c
-.RI "void(* \fBexternal_readfdfunc\fP [NUM_EXTERNAL_FDS])(int, void *)"
-.br
-.ti -1c
-.RI "void(* \fBexternal_writefdfunc\fP [NUM_EXTERNAL_FDS])(int, void *)"
-.br
-.ti -1c
-.RI "void(* \fBexternal_exceptfdfunc\fP [NUM_EXTERNAL_FDS])(int, void *)"
-.br
-.ti -1c
-.RI "void * \fBexternal_readfd_data\fP [NUM_EXTERNAL_FDS]"
-.br
-.ti -1c
-.RI "void * \fBexternal_writefd_data\fP [NUM_EXTERNAL_FDS]"
-.br
-.ti -1c
-.RI "void * \fBexternal_exceptfd_data\fP [NUM_EXTERNAL_FDS]"
-.br
-.ti -1c
 .RI "int \fBexternal_signal_scheduled\fP [NUM_EXTERNAL_SIGS]"
 .br
 .ti -1c
 .RI "void(* \fBexternal_signal_handler\fP [NUM_EXTERNAL_SIGS])(int)"
 .br
 .ti -1c
-.RI "int \fBexternal_readfd\fP [NUM_EXTERNAL_FDS]"
-.br
-.ti -1c
-.RI "int \fBexternal_readfdlen\fP"
-.br
-.ti -1c
-.RI "int \fBexternal_writefd\fP [NUM_EXTERNAL_FDS]"
-.br
-.ti -1c
-.RI "int \fBexternal_writefdlen\fP"
-.br
-.ti -1c
-.RI "int \fBexternal_exceptfd\fP [NUM_EXTERNAL_FDS]"
-.br
-.ti -1c
-.RI "int \fBexternal_exceptfdlen\fP"
-.br
-.ti -1c
-.RI "void(* \fBexternal_readfdfunc\fP [NUM_EXTERNAL_FDS])(int, void *)"
-.br
-.ti -1c
-.RI "void(* \fBexternal_writefdfunc\fP [NUM_EXTERNAL_FDS])(int, void *)"
-.br
-.ti -1c
-.RI "void(* \fBexternal_exceptfdfunc\fP [NUM_EXTERNAL_FDS])(int, void *)"
-.br
-.ti -1c
-.RI "void * \fBexternal_readfd_data\fP [NUM_EXTERNAL_FDS]"
-.br
-.ti -1c
-.RI "void * \fBexternal_writefd_data\fP [NUM_EXTERNAL_FDS]"
-.br
-.ti -1c
-.RI "void * \fBexternal_exceptfd_data\fP [NUM_EXTERNAL_FDS]"
-.br
-.ti -1c
 .RI "int \fBexternal_signal_scheduled\fP [NUM_EXTERNAL_SIGS]"
 .br
 .ti -1c
@@ -314,7 +230,7 @@
 0 if entire subtree is accessible, 5 if not and 7 if portions are both. 1 on error (illegal pdu version). 
 .RE
 .PP
-Definition at line 1236 of file agent_registry.c.
+Definition at line 1286 of file agent_registry.c.
 .PP
 References snmp_pdu::flags, snmp_call_callbacks(), and snmp_pdu::version.
 .PP
@@ -326,7 +242,7 @@
 the current lookup cache size 
 .RE
 .PP
-Definition at line 1309 of file agent_registry.c.
+Definition at line 1359 of file agent_registry.c.
 .PP
 Referenced by unregister_mib_context().
 .SS "void netsnmp_set_lookup_cache_size (int newsize)"
@@ -336,7 +252,7 @@
 \fInewsize\fP set to the maximum size of a cache for a given context. Set to 0 to completely disable caching, or to -1 to set to the default cache size (8), or to a number of your chosing. The rough guide is that it should be equal to the maximum number of simultanious managers you expect to talk to the agent (M) times 80% (or so, he says randomly) the average number (N) of varbinds you expect to receive in a given request for a manager. ie, M times N. Bigger does NOT necessarily mean better. Certainly 16 should be an upper limit. 32 is the hard coded limit. 
 .RE
 .PP
-Definition at line 1296 of file agent_registry.c.
+Definition at line 1346 of file agent_registry.c.
 .PP
 References netsnmp_set_lookup_cache_size().
 .PP
@@ -364,7 +280,7 @@
 .RS 4
 .RE
 .PP
-Definition at line 916 of file agent_registry.c.
+Definition at line 958 of file agent_registry.c.
 .PP
 References netsnmp_get_lookup_cache_size(), netsnmp_oid_equals(), netsnmp_set_lookup_cache_size(), and snmp_call_callbacks().
 .PP
diff --git a/man/netsnmp_agent_trap.3 b/man/netsnmp_agent_trap.3
index c49eaf1..dda26ec 100644
--- a/man/netsnmp_agent_trap.3
+++ b/man/netsnmp_agent_trap.3
@@ -1,4 +1,4 @@
-.TH "Trap generation routines for mib modules to use" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "Trap generation routines for mib modules to use" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -52,9 +52,6 @@
 .br
 .RI "\fIThis function allows you to make a distinction between generic traps from different classes of equipment. \fP"
 .ti -1c
-.RI "\fBnetsnmp_variable_list\fP * \fBfind_varbind_in_list\fP (\fBnetsnmp_variable_list\fP *vblist, oid *name, size_t len)"
-.br
-.ti -1c
 .RI "\fBnetsnmp_pdu\fP * \fBconvert_v2pdu_to_v1\fP (\fBnetsnmp_pdu\fP *template_v2pdu)"
 .br
 .ti -1c
@@ -67,6 +64,10 @@
 .RI "void \fBsend_enterprise_trap_vars\fP (int trap, int specific, oid *enterprise, int enterprise_length, \fBnetsnmp_variable_list\fP *vars)"
 .br
 .ti -1c
+.RI "int \fBhandle_inform_response\fP (int op, \fBnetsnmp_session\fP *session, int reqid, \fBnetsnmp_pdu\fP *pdu, void *magic)"
+.br
+.RI "\fICaptures responses or the lack there of from INFORMs that were sent 1) a response is received from an INFORM 2) one isn't received and the retries/timeouts have failed. \fP"
+.ti -1c
 .RI "void \fBsend_trap_to_sess\fP (\fBnetsnmp_session\fP *sess, \fBnetsnmp_pdu\fP *template_pdu)"
 .br
 .ti -1c
@@ -189,6 +190,9 @@
 .in -1c
 .SH "Function Documentation"
 .PP 
+.SS "int handle_inform_response (int op, \fBnetsnmp_session\fP * session, int reqid, \fBnetsnmp_pdu\fP * pdu, void * magic)"
+.PP
+Captures responses or the lack there of from INFORMs that were sent 1) a response is received from an INFORM 2) one isn't received and the retries/timeouts have failed. Definition at line 809 of file agent_trap.c.
 .SS "void send_easy_trap (int trap, int specific)"
 .PP
 Sends an SNMPv1 trap (or the SNMPv2 equivalent) to the list of configured trap destinations (or 'sinks'), using the provided values for the generic trap type and specific trap value. This function eventually calls send_enterprise_trap_vars. If the trap type is not set to SNMP_TRAP_ENTERPRISESPECIFIC the enterprise and enterprise_length paramater is set to the pre defined SYSTEM_MIB oid and length respectively. If the trap type is set to SNMP_TRAP_ENTERPRISESPECIFIC the enterprise and enterprise_length parameters are set to the pre-defined NOTIFICATION_MIB oid and length respectively.
@@ -212,7 +216,7 @@
 \fBsend_v2trap\fP 
 .RE
 .PP
-Definition at line 878 of file agent_trap.c.
+Definition at line 923 of file agent_trap.c.
 .PP
 Referenced by handle_snmp_packet().
 .SS "void send_v2trap (\fBnetsnmp_variable_list\fP * vars)"
@@ -244,7 +248,7 @@
 .in +1c
 \fBnotification.c\fP.
 .PP
-Definition at line 907 of file agent_trap.c.
+Definition at line 952 of file agent_trap.c.
 .SS "void snmpd_free_trapsinks (void)"
 .PP
 This function allows you to make a distinction between generic traps from different classes of equipment. For example, you may want to handle a SNMP_TRAP_LINKDOWN trap for a particular device in a different manner to a generic system SNMP_TRAP_LINKDOWN trap.
@@ -289,7 +293,7 @@
 \fBsend_v2trap\fP 
 .RE
 .PP
-Definition at line 342 of file agent_trap.c.
+Definition at line 349 of file agent_trap.c.
 .SH "Variable Documentation"
 .PP 
 .SS "oid snmptrapenterprise_oid[]"
@@ -299,4 +303,4 @@
     { SNMPV2_TRAP_OBJS_PREFIX, 3, 0 }
 .fi
 .PP
-Definition at line 102 of file agent_trap.c.
+Definition at line 98 of file agent_trap.c.
diff --git a/man/netsnmp_asn1_packet_parse.3 b/man/netsnmp_asn1_packet_parse.3
index 9dc731e..cc6c9e7 100644
--- a/man/netsnmp_asn1_packet_parse.3
+++ b/man/netsnmp_asn1_packet_parse.3
@@ -1,4 +1,4 @@
-.TH "asn1 parsing and datatype manipulation routines." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "asn1 parsing and datatype manipulation routines." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -9,6 +9,18 @@
 .ti -1c
 .RI "#define \fBNULL\fP   0"
 .br
+.ti -1c
+.RI "#define \fBINT32_MAX\fP   2147483647"
+.br
+.ti -1c
+.RI "#define \fBINT32_MIN\fP   (0 - INT32_MAX - 1)"
+.br
+.ti -1c
+.RI "#define \fBCHECK_OVERFLOW_S\fP(x, y)"
+.br
+.ti -1c
+.RI "#define \fBCHECK_OVERFLOW_U\fP(x, y)"
+.br
 .in -1c
 .SS "Functions"
 
@@ -29,10 +41,10 @@
 .RI "u_char * \fBasn_build_unsigned_int\fP (u_char *data, size_t *datalength, u_char type, const u_long *intp, size_t intsize)"
 .br
 .ti -1c
-.RI "u_char * \fBasn_parse_string\fP (u_char *data, size_t *datalength, u_char *type, u_char *string, size_t *strlength)"
+.RI "u_char * \fBasn_parse_string\fP (u_char *data, size_t *datalength, u_char *type, u_char *str, size_t *strlength)"
 .br
 .ti -1c
-.RI "u_char * \fBasn_build_string\fP (u_char *data, size_t *datalength, u_char type, const u_char *string, size_t strlength)"
+.RI "u_char * \fBasn_build_string\fP (u_char *data, size_t *datalength, u_char type, const u_char *str, size_t strlength)"
 .br
 .ti -1c
 .RI "u_char * \fBasn_parse_header\fP (u_char *data, size_t *datalength, u_char *type)"
@@ -65,10 +77,10 @@
 .RI "u_char * \fBasn_build_null\fP (u_char *data, size_t *datalength, u_char type)"
 .br
 .ti -1c
-.RI "u_char * \fBasn_parse_bitstring\fP (u_char *data, size_t *datalength, u_char *type, u_char *string, size_t *strlength)"
+.RI "u_char * \fBasn_parse_bitstring\fP (u_char *data, size_t *datalength, u_char *type, u_char *str, size_t *strlength)"
 .br
 .ti -1c
-.RI "u_char * \fBasn_build_bitstring\fP (u_char *data, size_t *datalength, u_char type, const u_char *string, size_t strlength)"
+.RI "u_char * \fBasn_build_bitstring\fP (u_char *data, size_t *datalength, u_char type, const u_char *str, size_t strlength)"
 .br
 .ti -1c
 .RI "u_char * \fBasn_parse_unsigned_int64\fP (u_char *data, size_t *datalength, u_char *type, struct counter64 *cp, size_t countersize)"
@@ -179,3 +191,34 @@
  }
 .PP
 
+.SH "Define Documentation"
+.PP 
+.SS "#define CHECK_OVERFLOW_S(x, y)"
+.PP
+\fBValue:\fP.nf
+do { int trunc = 0;                     \
+        if (x > INT32_MAX) {                                            \
+            trunc = 1;                                                  \
+            x &= 0xffffffff;                                            \
+        } else if (x < INT32_MIN) {                                     \
+            trunc = 1;                                                  \
+            x = 0 - (x & 0xffffffff);                                   \
+        }                                                               \
+        if (trunc)                                                      \
+            snmp_log(LOG_ERR,'truncating signed value to 32 bits (%d)\n',y); \
+    } while(0)
+.fi
+.PP
+Definition at line 214 of file asn1.c.
+.SS "#define CHECK_OVERFLOW_U(x, y)"
+.PP
+\fBValue:\fP.nf
+do {                                    \
+        if (x > UINT32_MAX) {                                           \
+            x &= 0xffffffff;                                            \
+            snmp_log(LOG_ERR,'truncating unsigned value to 32 bits (%d)\n',y); \
+        }                                                               \
+    } while(0)
+.fi
+.PP
+Definition at line 226 of file asn1.c.
diff --git a/man/netsnmp_baby_steps.3 b/man/netsnmp_baby_steps.3
index 1ca0277..c04af8c 100644
--- a/man/netsnmp_baby_steps.3
+++ b/man/netsnmp_baby_steps.3
@@ -1,4 +1,4 @@
-.TH "baby_steps: calls your handler in baby_steps for set processing." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "baby_steps: calls your handler in baby_steps for set processing." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -26,18 +26,18 @@
 .PP 
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_baby_steps_access_multiplexer_get (netsnmp_baby_steps_access_methods * am)"
 .PP
-returns a baby_steps handler that can be injected into a given handler chain. Definition at line 338 of file baby_steps.c.
+returns a baby_steps handler that can be injected into a given handler chain. Definition at line 335 of file baby_steps.c.
 .PP
 References netsnmp_mib_handler_s::flags, netsnmp_mib_handler_s::myvoid, netsnmp_create_handler(), and netsnmp_mib_handler.
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_baby_steps_handler_get (u_long modes)"
 .PP
-returns a baby_steps handler that can be injected into a given handler chain. Definition at line 61 of file baby_steps.c.
+returns a baby_steps handler that can be injected into a given handler chain. Definition at line 57 of file baby_steps.c.
 .PP
 References netsnmp_mib_handler_s::myvoid, netsnmp_create_handler(), netsnmp_handler_free(), netsnmp_mib_handler, snmp_log(), and SNMP_MALLOC_TYPEDEF.
 .PP
 Referenced by netsnmp_baby_steps_handler_init().
 .SS "void netsnmp_baby_steps_handler_init (void)"
 .PP
-initializes the baby_steps helper which then registers a baby_steps handler as a run-time injectable handler for configuration file use. Definition at line 321 of file baby_steps.c.
+initializes the baby_steps helper which then registers a baby_steps handler as a run-time injectable handler for configuration file use. Definition at line 318 of file baby_steps.c.
 .PP
 References netsnmp_baby_steps_handler_get(), and netsnmp_register_handler_by_name().
diff --git a/man/netsnmp_bulk_to_next.3 b/man/netsnmp_bulk_to_next.3
index 592d369..c5d6d61 100644
--- a/man/netsnmp_bulk_to_next.3
+++ b/man/netsnmp_bulk_to_next.3
@@ -1,4 +1,4 @@
-.TH "bulk_to_next: convert GETBULK requests into GETNEXT requests for the handler." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "bulk_to_next: convert GETBULK requests into GETNEXT requests for the handler." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -31,18 +31,18 @@
 .PP 
 .SS "void netsnmp_bulk_to_next_fix_requests (\fBnetsnmp_request_info\fP * requests)"
 .PP
-takes answered requests and decrements the repeat count and updates the requests to the next to-do varbind in the list Definition at line 45 of file bulk_to_next.c.
+takes answered requests and decrements the repeat count and updates the requests to the next to-do varbind in the list Definition at line 41 of file bulk_to_next.c.
 .PP
 References variable_list::name, variable_list::name_length, netsnmp_request_info_s::next, variable_list::next_variable, netsnmp_request_info_s::repeat, netsnmp_request_info_s::requestvb, and variable_list::type.
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_bulk_to_next_handler (void)"
 .PP
-returns a bulk_to_next handler that can be injected into a given handler chain. Definition at line 30 of file bulk_to_next.c.
+returns a bulk_to_next handler that can be injected into a given handler chain. Definition at line 26 of file bulk_to_next.c.
 .PP
 References netsnmp_mib_handler_s::flags, netsnmp_create_handler(), and netsnmp_mib_handler.
 .PP
 Referenced by netsnmp_init_bulk_to_next_helper(), and netsnmp_register_handler().
 .SS "void netsnmp_init_bulk_to_next_helper (void)"
 .PP
-initializes the bulk_to_next helper which then registers a bulk_to_next handler as a run-time injectable handler for configuration file use. Definition at line 114 of file bulk_to_next.c.
+initializes the bulk_to_next helper which then registers a bulk_to_next handler as a run-time injectable handler for configuration file use. Definition at line 122 of file bulk_to_next.c.
 .PP
 References netsnmp_get_bulk_to_next_handler(), and netsnmp_register_handler_by_name().
diff --git a/man/netsnmp_cache_handler.3 b/man/netsnmp_cache_handler.3
index 085bb0d..73a987c 100644
--- a/man/netsnmp_cache_handler.3
+++ b/man/netsnmp_cache_handler.3
@@ -1,4 +1,4 @@
-.TH "cache_handler: Maintains a cache of data for use by lower level handlers." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "cache_handler: Maintains a cache of data for use by lower level handlers." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -135,26 +135,26 @@
 Referenced by netsnmp_cache_check_and_reload(), and release_cached_resources().
 .SS "netsnmp_cache* netsnmp_cache_create (int timeout, NetsnmpCacheLoad * load_hook, NetsnmpCacheFree * free_hook, oid * rootoid, int rootoid_len)"
 .PP
-returns a cache Definition at line 140 of file cache_handler.c.
+returns a cache Definition at line 136 of file cache_handler.c.
 .PP
 References snmp_log(), and SNMP_MALLOC_TYPEDEF.
 .PP
-Referenced by netsnmp_get_cache_handler().
+Referenced by netsnmp_get_cache_handler(), and netsnmp_get_timed_bare_stash_cache_handler().
 .SS "netsnmp_cache* netsnmp_cache_find_by_oid (oid * rootoid, int rootoid_len)"
 .PP
-find existing cache Definition at line 124 of file cache_handler.c.
+find existing cache Definition at line 120 of file cache_handler.c.
 .PP
 References netsnmp_oid_equals().
 .SS "netsnmp_cache* netsnmp_cache_get_head (void)"
 .PP
-get cache head Definition at line 116 of file cache_handler.c.
+get cache head Definition at line 112 of file cache_handler.c.
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_cache_handler_get (netsnmp_cache * cache)"
 .PP
 returns a cache handler that can be injected into a given handler chain. Definition at line 245 of file cache_handler.c.
 .PP
 References netsnmp_mib_handler_s::flags, netsnmp_mib_handler_s::myvoid, netsnmp_cache_timer_start(), netsnmp_create_handler(), and netsnmp_mib_handler.
 .PP
-Referenced by netsnmp_cache_handler_register(), and netsnmp_get_cache_handler().
+Referenced by netsnmp_cache_handler_register(), netsnmp_get_cache_handler(), and netsnmp_get_timed_bare_stash_cache_handler().
 .SS "int netsnmp_cache_handler_register (\fBnetsnmp_handler_registration\fP * reginfo, netsnmp_cache * cache)"
 .PP
 functionally the same as calling \fBnetsnmp_register_handler()\fP but also injects a cache handler at the same time for you. Definition at line 293 of file cache_handler.c.
@@ -168,7 +168,7 @@
 .PP
 next handler called automatically - 'AUTO_NEXT' Definition at line 418 of file cache_handler.c.
 .PP
-References netsnmp_mib_handler_s::flags, netsnmp_handler_registration_s::handlerName, netsnmp_agent_request_info_s::mode, netsnmp_mib_handler_s::myvoid, netsnmp_cache_check_and_reload(), netsnmp_cache_is_valid(), netsnmp_cache_reqinfo_insert(), netsnmp_handler_registration, netsnmp_set_all_requests_error(), netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, and snmp_log().
+References netsnmp_mib_handler_s::flags, netsnmp_handler_registration_s::handlerName, netsnmp_agent_request_info_s::mode, netsnmp_mib_handler_s::myvoid, netsnmp_cache_check_and_reload(), netsnmp_cache_is_valid(), netsnmp_cache_reqinfo_insert(), netsnmp_handler_registration, netsnmp_request_set_error_all(), netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, and snmp_log().
 .SS "int netsnmp_cache_is_valid (\fBnetsnmp_agent_request_info\fP * reqinfo, const char * name)"
 .PP
 Is the cache valid for a given request? Definition at line 400 of file cache_handler.c.
@@ -192,7 +192,7 @@
 Referenced by netsnmp_cache_helper_handler().
 .SS "unsigned int netsnmp_cache_timer_start (netsnmp_cache * cache)"
 .PP
-starts the recurring cache_load callback Definition at line 195 of file cache_handler.c.
+starts the recurring cache_load callback Definition at line 191 of file cache_handler.c.
 .PP
 References snmp_alarm_register(), and snmp_log().
 .PP
diff --git a/man/netsnmp_callback.3 b/man/netsnmp_callback.3
index f02c19d..d9ddfa2 100644
--- a/man/netsnmp_callback.3
+++ b/man/netsnmp_callback.3
@@ -1,4 +1,4 @@
-.TH "A generic callback mechanism" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "A generic callback mechanism" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -31,6 +31,10 @@
 .br
 .RI "\fIThis function unregisters a specified callback function given a major and minor type. \fP"
 .ti -1c
+.RI "int \fBnetsnmp_callback_clear_client_arg\fP (void *ptr, int i, int j)"
+.br
+.RI "\fIfind and clear client args that match ptr \fP"
+.ti -1c
 .RI "void \fBclear_callback\fP (void)"
 .br
 .ti -1c
@@ -39,6 +43,18 @@
 .in -1c
 .SH "Function Documentation"
 .PP 
+.SS "int netsnmp_callback_clear_client_arg (void * ptr, int i, int j)"
+.PP
+find and clear client args that match ptr \fBParameters:\fP
+.RS 4
+\fIptr\fP pointer to search for 
+.br
+\fIi\fP callback id to start at 
+.br
+\fIj\fP callback subid to start at 
+.RE
+.PP
+Definition at line 347 of file callback.c.
 .SS "int snmp_call_callbacks (int major, int minor, void * caller_arg)"
 .PP
 This function calls the callback function for each registered callback of type major and minor. \fBParameters:\fP
@@ -62,7 +78,7 @@
 \fBsnmp_unregister_callback\fP 
 .RE
 .PP
-Definition at line 182 of file callback.c.
+Definition at line 183 of file callback.c.
 .PP
 References snmp_log().
 .PP
@@ -149,6 +165,6 @@
 \fBsnmp_call_callbacks\fP 
 .RE
 .PP
-set cleanup flag? Definition at line 295 of file callback.c.
+set cleanup flag? Definition at line 296 of file callback.c.
 .PP
 References SNMP_FREE, and snmp_log().
diff --git a/man/netsnmp_container.3 b/man/netsnmp_container.3
index 30421ec..f35c1a8 100644
--- a/man/netsnmp_container.3
+++ b/man/netsnmp_container.3
@@ -1,4 +1,4 @@
-.TH "null_container: Helps you implement specialized" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "null_container: Helps you implement specialized" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/netsnmp_data_list.3 b/man/netsnmp_data_list.3
index 19c5ed1..7aec5b4 100644
--- a/man/netsnmp_data_list.3
+++ b/man/netsnmp_data_list.3
@@ -1,4 +1,4 @@
-.TH "generic linked-list data handling with a string as a key." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "generic linked-list data handling with a string as a key." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -45,7 +45,7 @@
 .ti -1c
 .RI "void \fBnetsnmp_register_save_list\fP (\fBnetsnmp_data_list\fP **datalist, const char *type, const char *token, Netsnmp_Save_List_Data *data_list_save_ptr, Netsnmp_Read_List_Data *data_list_read_ptr, Netsnmp_Free_List_Data *data_list_free_ptr)"
 .br
-.RI "\fIregisters to store a data_list set of data at persistant storage time \fP"
+.RI "\fIregisters to store a data_list set of data at persistent storage time \fP"
 .ti -1c
 .RI "int \fBnetsnmp_save_all_data_callback\fP (int major, int minor, void *serverarg, void *clientarg)"
 .br
@@ -84,11 +84,11 @@
 a newly created data_list node which can be given to the netsnmp_add_list_data function. 
 .RE
 .PP
-Definition at line 64 of file data_list.c.
+Definition at line 60 of file data_list.c.
 .PP
 References netsnmp_data_list_s::data, netsnmp_data_list_s::free_func, netsnmp_data_list_s::name, and SNMP_MALLOC_TYPEDEF.
 .PP
-Referenced by netsnmp_cache_reqinfo_insert(), netsnmp_data_list_add_data(), netsnmp_insert_iterator_context(), netsnmp_insert_table_row(), netsnmp_old_api_helper(), netsnmp_read_data_callback(), netsnmp_register_auto_data_table(), netsnmp_register_handler_by_name(), netsnmp_register_save_list(), netsnmp_stash_cache_update(), netsnmp_table_data_helper_handler(), netsnmp_table_data_set_helper_handler(), netsnmp_table_iterator_helper_handler(), and table_helper_handler().
+Referenced by _data_lookup(), _netsnmp_stash_cache_load(), netsnmp_cache_reqinfo_insert(), netsnmp_container_table_row_insert(), netsnmp_data_list_add_data(), netsnmp_insert_iterator_context(), netsnmp_insert_table_row(), netsnmp_instance_num_file_handler(), netsnmp_old_api_helper(), netsnmp_read_data_callback(), netsnmp_register_auto_data_table(), netsnmp_register_handler_by_name(), netsnmp_register_save_list(), netsnmp_row_merge_status_get(), and table_helper_handler().
 .SS "NETSNMP_INLINE \fBnetsnmp_data_list\fP* netsnmp_data_list_add_data (\fBnetsnmp_data_list\fP ** head, const char * name, void * data, Netsnmp_Free_List_Data * beer)"
 .PP
 adds data to a datalist \fBParameters:\fP
@@ -131,7 +131,7 @@
 \fIhead\fP the top node of the list to be freed. 
 .RE
 .PP
-Definition at line 46 of file data_list.c.
+Definition at line 42 of file data_list.c.
 .PP
 References netsnmp_free_list_data(), netsnmp_data_list_s::next, and SNMP_FREE.
 .PP
@@ -145,7 +145,7 @@
 \fInode\fP the node for which the data should be freed 
 .RE
 .PP
-Definition at line 30 of file data_list.c.
+Definition at line 26 of file data_list.c.
 .PP
 References netsnmp_data_list_s::data, netsnmp_data_list_s::free_func, netsnmp_data_list_s::name, and SNMP_FREE.
 .PP
@@ -164,7 +164,7 @@
 a pointer to the data cached at that node 
 .RE
 .PP
-Definition at line 157 of file data_list.c.
+Definition at line 162 of file data_list.c.
 .PP
 References netsnmp_data_list_s::data, netsnmp_data_list_s::name, and netsnmp_data_list_s::next.
 .PP
@@ -183,23 +183,21 @@
 a pointer to the data_list node 
 .RE
 .PP
-Definition at line 173 of file data_list.c.
+Definition at line 180 of file data_list.c.
 .PP
 References netsnmp_data_list_s::name, and netsnmp_data_list_s::next.
-.PP
-Referenced by netsnmp_table_iterator_helper_handler().
 .SS "void netsnmp_read_data_callback (const char * token, char * line)"
 .PP
 intended to be registerd as a .conf parser It should be registered using: register_app_config_handler('token', netsnmp_read_data_callback, XXX)
 .PP
-where INFO_POINTER is a pointer to a netsnmp_data_list_saveinfo object containing apporpriate registration information Definition at line 321 of file data_list.c.
+where INFO_POINTER is a pointer to a netsnmp_data_list_saveinfo object containing apporpriate registration information Definition at line 332 of file data_list.c.
 .PP
 References netsnmp_add_list_data(), netsnmp_create_data_list(), netsnmp_get_list_data(), read_config_read_data(), and snmp_log().
 .PP
 Referenced by netsnmp_register_save_list().
 .SS "void netsnmp_register_save_list (\fBnetsnmp_data_list\fP ** datalist, const char * type, const char * token, Netsnmp_Save_List_Data * data_list_save_ptr, Netsnmp_Read_List_Data * data_list_read_ptr, Netsnmp_Free_List_Data * data_list_free_ptr)"
 .PP
-registers to store a data_list set of data at persistant storage time \fBParameters:\fP
+registers to store a data_list set of data at persistent storage time \fBParameters:\fP
 .RS 4
 \fIdatalist\fP the data to be saved 
 .br
@@ -219,7 +217,7 @@
 netsnmp_register_save_list should handle the same token name being saved from different types?
 .RE
 .PP
-Definition at line 220 of file data_list.c.
+Definition at line 231 of file data_list.c.
 .PP
 References netsnmp_add_list_data(), netsnmp_create_data_list(), netsnmp_read_data_callback(), register_config_handler(), snmp_log(), SNMP_MALLOC_TYPEDEF, and snmp_register_callback().
 .SS "int netsnmp_remove_list_node (\fBnetsnmp_data_list\fP ** realhead, const char * name)"
@@ -236,14 +234,14 @@
 0 on successful find-and-delete, 1 otherwise. 
 .RE
 .PP
-Definition at line 189 of file data_list.c.
+Definition at line 198 of file data_list.c.
 .PP
 References netsnmp_free_list_data(), and netsnmp_data_list_s::next.
 .PP
 Referenced by netsnmp_request_remove_list_data().
 .SS "int netsnmp_save_all_data (\fBnetsnmp_data_list\fP * head, const char * type, const char * token, Netsnmp_Save_List_Data * data_list_save_ptr)"
 .PP
-intended to be called as a callback during persistent save operations. See the netsnmp_save_all_data_callback for where this is typically used. Definition at line 286 of file data_list.c.
+intended to be called as a callback during persistent save operations. See the netsnmp_save_all_data_callback for where this is typically used. Definition at line 297 of file data_list.c.
 .PP
 References netsnmp_data_list_s::data, netsnmp_data_list_s::name, netsnmp_data_list_s::next, and read_config_store().
 .PP
@@ -254,6 +252,6 @@
 .PP
 snmp_register_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_STORE_DATA, netsnmp_save_all_data_callback, INFO_POINTER);
 .PP
-where INFO_POINTER is a pointer to a netsnmp_data_list_saveinfo object containing apporpriate registration information Definition at line 269 of file data_list.c.
+where INFO_POINTER is a pointer to a netsnmp_data_list_saveinfo object containing apporpriate registration information Definition at line 280 of file data_list.c.
 .PP
 References netsnmp_save_all_data(), and snmp_log().
diff --git a/man/netsnmp_debug.3 b/man/netsnmp_debug.3
index c4b2156..2d01d13 100644
--- a/man/netsnmp_debug.3
+++ b/man/netsnmp_debug.3
@@ -1,4 +1,4 @@
-.TH "debug: print out debugging information about the handler chain being called." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "debug: print out debugging information about the handler chain being called." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -65,41 +65,41 @@
 .PP 
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_debug_handler (void)"
 .PP
-returns a debug handler that can be injected into a given handler chain. Definition at line 54 of file debug_handler.c.
+returns a debug handler that can be injected into a given handler chain. Definition at line 50 of file debug_handler.c.
 .PP
 References netsnmp_create_handler().
 .PP
 Referenced by netsnmp_init_debug_helper().
 .SS "void netsnmp_init_bulk_to_next_helper (void)"
 .PP
-initializes the bulk_to_next helper which then registers a bulk_to_next handler as a run-time injectable handler for configuration file use. Definition at line 114 of file bulk_to_next.c.
+initializes the bulk_to_next helper which then registers a bulk_to_next handler as a run-time injectable handler for configuration file use. Definition at line 122 of file bulk_to_next.c.
 .PP
 Referenced by netsnmp_init_helpers().
 .SS "void netsnmp_init_debug_helper (void)"
 .PP
-initializes the debug helper which then registers a debug handler as a run-time injectable handler for configuration file use. Definition at line 158 of file debug_handler.c.
+initializes the debug helper which then registers a debug handler as a run-time injectable handler for configuration file use. Definition at line 154 of file debug_handler.c.
 .PP
 References netsnmp_get_debug_handler(), and netsnmp_register_handler_by_name().
 .SS "void netsnmp_init_helpers (void)"
 .PP
-call the initialization sequence for all handlers with init_ routines. Definition at line 34 of file all_helpers.c.
+call the initialization sequence for all handlers with init_ routines. Definition at line 36 of file all_helpers.c.
 .PP
 References netsnmp_init_bulk_to_next_helper(), netsnmp_init_debug_helper(), netsnmp_init_read_only_helper(), netsnmp_init_serialize(), and netsnmp_init_stash_cache_helper().
 .PP
 Referenced by init_agent().
 .SS "void netsnmp_init_read_only_helper (void)"
 .PP
-initializes the read_only helper which then registers a read_only handler as a run-time injectable handler for configuration file use. Definition at line 86 of file read_only.c.
+initializes the read_only helper which then registers a read_only handler as a run-time injectable handler for configuration file use. Definition at line 80 of file read_only.c.
 .PP
 Referenced by netsnmp_init_helpers().
 .SS "void netsnmp_init_serialize (void)"
 .PP
-initializes the serialize helper which then registers a serialize handler as a run-time injectable handler for configuration file use. Definition at line 96 of file serialize.c.
+initializes the serialize helper which then registers a serialize handler as a run-time injectable handler for configuration file use. Definition at line 92 of file serialize.c.
 .PP
 Referenced by netsnmp_init_helpers().
 .SS "void netsnmp_init_stash_cache_helper (void)"
 .PP
-initializes the stash_cache helper which then registers a stash_cache handler as a run-time injectable handler for configuration file use. Definition at line 188 of file stash_cache.c.
+initializes the stash_cache helper which then registers a stash_cache handler as a run-time injectable handler for configuration file use. Definition at line 231 of file stash_cache.c.
 .PP
 References netsnmp_get_stash_cache_handler(), and netsnmp_register_handler_by_name().
 .PP
diff --git a/man/netsnmp_default_store.3 b/man/netsnmp_default_store.3
index 5f19f36..f206014 100644
--- a/man/netsnmp_default_store.3
+++ b/man/netsnmp_default_store.3
@@ -1,4 +1,4 @@
-.TH "storage space for defaults" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "storage space for defaults" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/netsnmp_handler.3 b/man/netsnmp_handler.3
index 0176199..dbc353c 100644
--- a/man/netsnmp_handler.3
+++ b/man/netsnmp_handler.3
@@ -1,4 +1,4 @@
-.TH "Net-SNMP Agent handler and extensibility API" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "Net-SNMP Agent handler and extensibility API" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -109,6 +109,9 @@
 .RI "#define \fBHANDLER_CAN_BABY_STEP\fP   0x10"
 .br
 .ti -1c
+.RI "#define \fBHANDLER_CAN_STASH\fP   0x20"
+.br
+.ti -1c
 .RI "#define \fBHANDLER_CAN_RONLY\fP   (HANDLER_CAN_GETANDGETNEXT)"
 .br
 .ti -1c
@@ -296,34 +299,34 @@
 .PP 
 .SS "struct \fBnetsnmp_handler_registration_s\fP \fBnetsnmp_handler_registration\fP"
 .PP
-Typedefs the \fBnetsnmp_handler_registration_s\fP struct into netsnmp_handler_registration. Referenced by netsnmp_cache_helper_handler(), netsnmp_call_handler(), netsnmp_call_next_handler(), netsnmp_call_next_handler_one_request(), netsnmp_create_delegated_cache(), netsnmp_find_handler_by_name(), netsnmp_find_handler_data_by_name(), netsnmp_find_table_array_handler(), netsnmp_find_table_registration_info(), netsnmp_handler_registration_create(), netsnmp_handler_registration_dup(), netsnmp_handler_registration_free(), netsnmp_inject_handler(), netsnmp_inject_handler_before(), netsnmp_multiplexer_helper_handler(), netsnmp_old_api_helper(), netsnmp_register_handler(), netsnmp_register_handler_nocallback(), netsnmp_register_instance(), netsnmp_register_int_instance(), netsnmp_register_mib_table_row(), netsnmp_register_old_api(), netsnmp_register_read_only_instance(), netsnmp_register_read_only_scalar(), netsnmp_register_read_only_table_data(), netsnmp_register_row_merge(), netsnmp_register_scalar(), netsnmp_register_serialize(), netsnmp_register_table(), netsnmp_register_table_data(), netsnmp_register_table_data_set(), netsnmp_register_table_iterator(), netsnmp_row_merge_helper_handler(), netsnmp_serialize_helper_handler(), netsnmp_sparse_table_register(), netsnmp_stash_cache_update(), netsnmp_table_build_oid(), netsnmp_table_build_oid_from_index(), netsnmp_table_build_result(), netsnmp_table_container_register(), netsnmp_table_data_build_result(), netsnmp_table_data_helper_handler(), netsnmp_table_data_set_helper_handler(), netsnmp_table_iterator_helper_handler(), netsnmp_unregister_handler(), and table_helper_handler().
+Typedefs the \fBnetsnmp_handler_registration_s\fP struct into netsnmp_handler_registration. Referenced by _data_lookup(), _netsnmp_stash_cache_load(), netsnmp_cache_helper_handler(), netsnmp_call_handler(), netsnmp_call_next_handler(), netsnmp_call_next_handler_one_request(), netsnmp_create_delegated_cache(), netsnmp_find_handler_by_name(), netsnmp_find_handler_data_by_name(), netsnmp_find_table_array_handler(), netsnmp_find_table_registration_info(), netsnmp_generic_register(), netsnmp_generic_unregister(), netsnmp_handler_registration_create(), netsnmp_handler_registration_dup(), netsnmp_handler_registration_free(), netsnmp_inject_handler(), netsnmp_inject_handler_before(), netsnmp_instance_num_file_handler(), netsnmp_multiplexer_helper_handler(), netsnmp_old_api_helper(), netsnmp_register_handler(), netsnmp_register_handler_nocallback(), netsnmp_register_instance(), netsnmp_register_int_instance(), netsnmp_register_mib_table_row(), netsnmp_register_old_api(), netsnmp_register_read_only_instance(), netsnmp_register_read_only_scalar(), netsnmp_register_read_only_table_data(), netsnmp_register_row_merge(), netsnmp_register_scalar(), netsnmp_register_serialize(), netsnmp_register_table(), netsnmp_register_table_data(), netsnmp_register_table_data_set(), netsnmp_register_table_iterator(), netsnmp_row_merge_helper_handler(), netsnmp_row_merge_status_first(), netsnmp_row_merge_status_get(), netsnmp_row_merge_status_last(), netsnmp_serialize_helper_handler(), netsnmp_sparse_table_register(), netsnmp_table_build_oid(), netsnmp_table_build_oid_from_index(), netsnmp_table_build_result(), netsnmp_table_container_register(), netsnmp_tdata_register(), netsnmp_unregister_handler(), and table_helper_handler().
 .SS "struct \fBnetsnmp_mib_handler_s\fP \fBnetsnmp_mib_handler\fP"
 .PP
-Typedefs the \fBnetsnmp_mib_handler_s\fP struct into netsnmp_mib_handler. Referenced by netsnmp_baby_steps_access_multiplexer_get(), netsnmp_baby_steps_handler_get(), netsnmp_cache_handler_get(), netsnmp_cache_handler_register(), netsnmp_call_handler(), netsnmp_call_next_handler(), netsnmp_call_next_handler_one_request(), netsnmp_container_table_handler_get(), netsnmp_create_delegated_cache(), netsnmp_create_handler(), netsnmp_find_handler_by_name(), netsnmp_find_handler_data_by_name(), netsnmp_find_table_array_handler(), netsnmp_get_bulk_to_next_handler(), netsnmp_get_cache_handler(), netsnmp_get_mode_end_call_handler(), netsnmp_get_multiplexer_handler(), netsnmp_get_read_only_handler(), netsnmp_get_row_merge_handler(), netsnmp_get_stash_cache_handler(), netsnmp_get_table_data_handler(), netsnmp_get_table_data_set_handler(), netsnmp_get_table_handler(), netsnmp_get_table_iterator_handler(), netsnmp_handler_dup(), netsnmp_handler_free(), netsnmp_handler_registration_create(), netsnmp_inject_handler(), netsnmp_inject_handler_before(), netsnmp_mode_end_call_add_mode_callback(), netsnmp_multiplexer_helper_handler(), netsnmp_old_api_helper(), netsnmp_register_cache_handler(), netsnmp_register_handler(), netsnmp_register_handler_by_name(), netsnmp_register_handler_nocallback(), netsnmp_row_merge_helper_handler(), netsnmp_serialize_helper_handler(), netsnmp_stash_cache_update(), netsnmp_table_data_helper_handler(), netsnmp_table_data_set_helper_handler(), netsnmp_table_iterator_helper_handler(), and table_helper_handler().
+Typedefs the \fBnetsnmp_mib_handler_s\fP struct into netsnmp_mib_handler. Referenced by _netsnmp_stash_cache_load(), netsnmp_baby_steps_access_multiplexer_get(), netsnmp_baby_steps_handler_get(), netsnmp_cache_handler_get(), netsnmp_cache_handler_register(), netsnmp_call_handler(), netsnmp_call_next_handler(), netsnmp_call_next_handler_one_request(), netsnmp_container_table_handler_get(), netsnmp_create_delegated_cache(), netsnmp_create_handler(), netsnmp_find_handler_by_name(), netsnmp_find_handler_data_by_name(), netsnmp_find_table_array_handler(), netsnmp_generic_free_handler(), netsnmp_get_bulk_to_next_handler(), netsnmp_get_cache_handler(), netsnmp_get_mode_end_call_handler(), netsnmp_get_multiplexer_handler(), netsnmp_get_read_only_handler(), netsnmp_get_row_merge_handler(), netsnmp_get_stash_cache_handler(), netsnmp_get_stash_to_next_handler(), netsnmp_get_table_data_handler(), netsnmp_get_table_data_set_handler(), netsnmp_get_table_handler(), netsnmp_get_table_iterator_handler(), netsnmp_get_tdata_handler(), netsnmp_get_timed_bare_stash_cache_handler(), netsnmp_get_timed_stash_cache_handler(), netsnmp_handler_dup(), netsnmp_handler_free(), netsnmp_handler_registration_create(), netsnmp_inject_handler(), netsnmp_inject_handler_before(), netsnmp_instance_num_file_handler(), netsnmp_mode_end_call_add_mode_callback(), netsnmp_multiplexer_helper_handler(), netsnmp_old_api_helper(), netsnmp_register_cache_handler(), netsnmp_register_handler(), netsnmp_register_handler_by_name(), netsnmp_register_handler_nocallback(), netsnmp_row_merge_helper_handler(), netsnmp_serialize_helper_handler(), and table_helper_handler().
 .SH "Function Documentation"
 .PP 
 .SS "int netsnmp_call_handler (\fBnetsnmp_mib_handler\fP * next_handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"
 .PP
-calls a handler with with appropriate NULL checking of arguments, etc. Definition at line 382 of file agent_handler.c.
+calls a handler with with appropriate NULL checking of arguments, etc. Definition at line 387 of file agent_handler.c.
 .PP
 References netsnmp_mib_handler_s::access_method, netsnmp_mib_handler_s::handler_name, netsnmp_agent_request_info_s::mode, netsnmp_handler_registration, netsnmp_mib_handler, netsnmp_mib_handler_s::next, and snmp_log().
 .PP
 Referenced by netsnmp_call_next_handler(), netsnmp_call_next_handler_one_request(), and netsnmp_multiplexer_helper_handler().
 .SS "int netsnmp_call_next_handler (\fBnetsnmp_mib_handler\fP * current, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"
 .PP
-calls the next handler in the chain after the current one with with appropriate NULL checking, etc. Definition at line 512 of file agent_handler.c.
+calls the next handler in the chain after the current one with with appropriate NULL checking, etc. Definition at line 517 of file agent_handler.c.
 .PP
 References netsnmp_call_handler(), netsnmp_handler_registration, netsnmp_mib_handler, netsnmp_mib_handler_s::next, and snmp_log().
 .PP
-Referenced by netsnmp_row_merge_helper_handler(), netsnmp_serialize_helper_handler(), netsnmp_stash_cache_update(), netsnmp_table_data_helper_handler(), netsnmp_table_iterator_helper_handler(), and table_helper_handler().
+Referenced by _netsnmp_stash_cache_load(), netsnmp_instance_num_file_handler(), netsnmp_row_merge_helper_handler(), netsnmp_serialize_helper_handler(), and table_helper_handler().
 .SS "int netsnmp_call_next_handler_one_request (\fBnetsnmp_mib_handler\fP * current, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"
 .PP
-calls the next handler in the chain after the current one with with appropriate NULL checking, etc. Definition at line 534 of file agent_handler.c.
+calls the next handler in the chain after the current one with with appropriate NULL checking, etc. Definition at line 539 of file agent_handler.c.
 .PP
 References netsnmp_call_handler(), netsnmp_handler_registration, netsnmp_mib_handler, netsnmp_mib_handler_s::next, netsnmp_request_info_s::next, and snmp_log().
 .SS "void netsnmp_clear_handler_list (void)"
 .PP
-clears the entire handler-registration list Definition at line 892 of file agent_handler.c.
+clears the entire handler-registration list Definition at line 897 of file agent_handler.c.
 .PP
 References netsnmp_free_all_list_data().
 .SS "NETSNMP_INLINE netsnmp_delegated_cache * netsnmp_create_delegated_cache (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests, void * localinfo)"
@@ -334,7 +337,7 @@
 .in +1c
 \fBdelayed_instance.c\fP.
 .PP
-Definition at line 683 of file agent_handler.c.
+Definition at line 688 of file agent_handler.c.
 .PP
 References netsnmp_agent_request_info_s::asp, netsnmp_handler_registration, netsnmp_mib_handler, and SNMP_MALLOC_TYPEDEF.
 .SS "\fBnetsnmp_mib_handler\fP * netsnmp_create_handler (const char * name, Netsnmp_Node_Handler * handler_access_method)"
@@ -364,17 +367,17 @@
 .PP
 References netsnmp_mib_handler_s::access_method, netsnmp_mib_handler_s::handler_name, netsnmp_mib_handler, SNMP_FREE, and SNMP_MALLOC_TYPEDEF.
 .PP
-Referenced by get_old_api_handler(), netsnmp_baby_steps_access_multiplexer_get(), netsnmp_baby_steps_handler_get(), netsnmp_cache_handler_get(), netsnmp_container_table_handler_get(), netsnmp_get_bulk_to_next_handler(), netsnmp_get_debug_handler(), netsnmp_get_instance_handler(), netsnmp_get_mode_end_call_handler(), netsnmp_get_multiplexer_handler(), netsnmp_get_read_only_handler(), netsnmp_get_row_merge_handler(), netsnmp_get_scalar_handler(), netsnmp_get_serialize_handler(), netsnmp_get_stash_cache_handler(), netsnmp_get_table_data_handler(), netsnmp_get_table_data_set_handler(), netsnmp_get_table_handler(), netsnmp_get_table_iterator_handler(), netsnmp_sparse_table_handler_get(), and netsnmp_sparse_table_register().
+Referenced by get_old_api_handler(), netsnmp_baby_steps_access_multiplexer_get(), netsnmp_baby_steps_handler_get(), netsnmp_cache_handler_get(), netsnmp_container_table_handler_get(), netsnmp_get_bulk_to_next_handler(), netsnmp_get_debug_handler(), netsnmp_get_instance_handler(), netsnmp_get_mode_end_call_handler(), netsnmp_get_multiplexer_handler(), netsnmp_get_read_only_handler(), netsnmp_get_row_merge_handler(), netsnmp_get_scalar_handler(), netsnmp_get_serialize_handler(), netsnmp_get_stash_to_next_handler(), netsnmp_get_table_data_handler(), netsnmp_get_table_data_set_handler(), netsnmp_get_table_handler(), netsnmp_get_table_iterator_handler(), netsnmp_get_tdata_handler(), netsnmp_get_timed_bare_stash_cache_handler(), netsnmp_sparse_table_handler_get(), and netsnmp_sparse_table_register().
 .SS "\fBnetsnmp_mib_handler\fP * netsnmp_find_handler_by_name (\fBnetsnmp_handler_registration\fP * reginfo, const char * name)"
 .PP
-Returns a handler from a chain based on the name. Definition at line 825 of file agent_handler.c.
+Returns a handler from a chain based on the name. Definition at line 830 of file agent_handler.c.
 .PP
 References netsnmp_handler_registration_s::handler, netsnmp_mib_handler_s::handler_name, netsnmp_handler_registration, netsnmp_mib_handler, and netsnmp_mib_handler_s::next.
 .PP
 Referenced by netsnmp_find_handler_data_by_name().
 .SS "void * netsnmp_find_handler_data_by_name (\fBnetsnmp_handler_registration\fP * reginfo, const char * name)"
 .PP
-Returns a handler's void * pointer from a chain based on the name. This probably shouldn't be used by the general public as the void * data may change as a handler evolves. Handlers should really advertise some function for you to use instead. Definition at line 842 of file agent_handler.c.
+Returns a handler's void * pointer from a chain based on the name. This probably shouldn't be used by the general public as the void * data may change as a handler evolves. Handlers should really advertise some function for you to use instead. Definition at line 847 of file agent_handler.c.
 .PP
 References netsnmp_mib_handler_s::myvoid, netsnmp_find_handler_by_name(), netsnmp_handler_registration, and netsnmp_mib_handler.
 .PP
@@ -387,21 +390,21 @@
 .in +1c
 \fBdelayed_instance.c\fP.
 .PP
-Definition at line 721 of file agent_handler.c.
+Definition at line 726 of file agent_handler.c.
 .PP
 References SNMP_FREE.
 .SS "NETSNMP_INLINE void netsnmp_free_request_data_set (\fBnetsnmp_request_info\fP * request)"
 .PP
-Free the extra data stored in a request. Definition at line 807 of file agent_handler.c.
+Free the extra data stored in a request. Definition at line 812 of file agent_handler.c.
 .PP
 References netsnmp_free_list_data(), and netsnmp_request_info_s::parent_data.
 .SS "NETSNMP_INLINE void netsnmp_free_request_data_sets (\fBnetsnmp_request_info\fP * request)"
 .PP
-Free the extra data stored in a bunch of requests (all data in the chain). Definition at line 815 of file agent_handler.c.
+Free the extra data stored in a bunch of requests (all data in the chain). Definition at line 820 of file agent_handler.c.
 .PP
 References netsnmp_free_all_list_data(), and netsnmp_request_info_s::parent_data.
 .PP
-Referenced by netsnmp_add_varbind_to_cache(), and netsnmp_table_iterator_helper_handler().
+Referenced by netsnmp_add_varbind_to_cache().
 .SS "NETSNMP_INLINE netsnmp_delegated_cache * netsnmp_handler_check_cache (netsnmp_delegated_cache * dcache)"
 .PP
 check's a given cache and returns it if it is still valid (ie, the agent still considers it to be an outstanding request. Returns NULL if it's no longer valid. 
@@ -410,12 +413,12 @@
 .in +1c
 \fBdelayed_instance.c\fP.
 .PP
-Definition at line 707 of file agent_handler.c.
+Definition at line 712 of file agent_handler.c.
 .PP
 References netsnmp_check_transaction_id().
 .SS "\fBnetsnmp_mib_handler\fP * netsnmp_handler_dup (\fBnetsnmp_mib_handler\fP * handler)"
 .PP
-dulpicates a handler and all subsequent handlers see also _clone_handler Definition at line 579 of file agent_handler.c.
+dulpicates a handler and all subsequent handlers see also _clone_handler Definition at line 584 of file agent_handler.c.
 .PP
 References netsnmp_mib_handler_s::myvoid, netsnmp_handler_free(), netsnmp_mib_handler, and netsnmp_mib_handler_s::next.
 .PP
@@ -424,14 +427,14 @@
 .PP
 free's the resourceses associated with a given handler make sure we aren't pointing to ourselves.
 .PP
-XXX : segv here at shutdown if SHUTDOWN_AGENT_CLEANLY defined. About 30 functions down the stack, starting in clear_context() -> clear_subtree() Definition at line 557 of file agent_handler.c.
+XXX : segv here at shutdown if SHUTDOWN_AGENT_CLEANLY defined. About 30 functions down the stack, starting in clear_context() -> clear_subtree() Definition at line 562 of file agent_handler.c.
 .PP
 References netsnmp_mib_handler_s::handler_name, netsnmp_mib_handler, netsnmp_mib_handler_s::next, and SNMP_FREE.
 .PP
 Referenced by netsnmp_baby_steps_handler_get(), netsnmp_handler_dup(), and netsnmp_handler_registration_free().
 .SS "void netsnmp_handler_mark_requests_as_delegated (\fBnetsnmp_request_info\fP * requests, int isdelegated)"
 .PP
-marks a list of requests as delegated (or not if isdelegaded = 0) Definition at line 735 of file agent_handler.c.
+marks a list of requests as delegated (or not if isdelegaded = 0) Definition at line 740 of file agent_handler.c.
 .PP
 References netsnmp_request_info_s::delegated, and netsnmp_request_info_s::next.
 .SS "\fBnetsnmp_handler_registration\fP * netsnmp_handler_registration_create (const char * name, \fBnetsnmp_mib_handler\fP * handler, oid * reg_oid, size_t reg_oid_len, int modes)"
@@ -489,23 +492,23 @@
 References netsnmp_handler_registration_s::handler, netsnmp_handler_registration_s::handlerName, memdup(), netsnmp_handler_registration_s::modes, netsnmp_handler_registration, netsnmp_mib_handler, netsnmp_handler_registration_s::priority, netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, and SNMP_MALLOC_TYPEDEF.
 .SS "\fBnetsnmp_handler_registration\fP * netsnmp_handler_registration_dup (\fBnetsnmp_handler_registration\fP * reginfo)"
 .PP
-duplicates the handler registration object Definition at line 621 of file agent_handler.c.
+duplicates the handler registration object Definition at line 626 of file agent_handler.c.
 .PP
 References netsnmp_handler_registration_s::contextName, netsnmp_handler_registration_s::handler, netsnmp_handler_registration_s::handlerName, memdup(), netsnmp_handler_registration_s::modes, netsnmp_handler_dup(), netsnmp_handler_registration, netsnmp_handler_registration_free(), netsnmp_handler_registration_s::priority, netsnmp_handler_registration_s::range_subid, netsnmp_handler_registration_s::range_ubound, netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, and netsnmp_handler_registration_s::timeout.
 .SS "void netsnmp_handler_registration_free (\fBnetsnmp_handler_registration\fP * reginfo)"
 .PP
-free the resources associated with a handler registration object Definition at line 608 of file agent_handler.c.
+free the resources associated with a handler registration object Definition at line 613 of file agent_handler.c.
 .PP
 References netsnmp_handler_registration_s::contextName, netsnmp_handler_registration_s::handler, netsnmp_handler_registration_s::handlerName, netsnmp_handler_free(), netsnmp_handler_registration, netsnmp_handler_registration_s::rootoid, and SNMP_FREE.
 .PP
 Referenced by netsnmp_handler_registration_dup(), and netsnmp_register_mib_table_row().
 .SS "int netsnmp_inject_handler (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_mib_handler\fP * handler)"
 .PP
-inject a new handler into the calling chain of the handlers definedy by the netsnmp_handler_registration pointer. The new handler is injected at the top of the list and hence will be the new handler to be called first. Definition at line 374 of file agent_handler.c.
+inject a new handler into the calling chain of the handlers definedy by the netsnmp_handler_registration pointer. The new handler is injected at the top of the list and hence will be the new handler to be called first. Definition at line 379 of file agent_handler.c.
 .PP
 References netsnmp_handler_registration, netsnmp_inject_handler_before(), and netsnmp_mib_handler.
 .PP
-Referenced by netsnmp_cache_handler_register(), netsnmp_register_cache_handler(), netsnmp_register_handler(), netsnmp_register_instance(), netsnmp_register_read_only_instance(), netsnmp_register_read_only_scalar(), netsnmp_register_read_only_table_data(), netsnmp_register_row_merge(), netsnmp_register_scalar(), netsnmp_register_serialize(), netsnmp_register_table(), netsnmp_register_table_data(), netsnmp_register_table_data_set(), netsnmp_register_table_iterator(), and netsnmp_sparse_table_register().
+Referenced by netsnmp_cache_handler_register(), netsnmp_register_cache_handler(), netsnmp_register_handler(), netsnmp_register_instance(), netsnmp_register_read_only_instance(), netsnmp_register_read_only_scalar(), netsnmp_register_read_only_table_data(), netsnmp_register_row_merge(), netsnmp_register_scalar(), netsnmp_register_serialize(), netsnmp_register_table(), netsnmp_register_table_data(), netsnmp_register_table_data_set(), netsnmp_register_table_iterator(), netsnmp_sparse_table_register(), and netsnmp_tdata_register().
 .SS "int netsnmp_inject_handler_before (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_mib_handler\fP * handler, const char * before_what)"
 .PP
 inject a new handler into the calling chain of the handlers definedy by the netsnmp_handler_registration pointer. The new handler is injected after the before_what handler, or if NULL at the top of the list and hence will be the new handler to be called first. Definition at line 322 of file agent_handler.c.
@@ -522,7 +525,7 @@
 Referenced by netsnmp_cache_handler_register(), netsnmp_register_cache_handler(), netsnmp_register_old_api(), netsnmp_register_row_merge(), netsnmp_register_serialize(), netsnmp_register_table(), and netsnmp_sparse_table_register().
 .SS "void netsnmp_register_handler_by_name (const char * name, \fBnetsnmp_mib_handler\fP * handler)"
 .PP
-registers a given handler by name so that it can be found easily later. Definition at line 880 of file agent_handler.c.
+registers a given handler by name so that it can be found easily later. Definition at line 885 of file agent_handler.c.
 .PP
 References netsnmp_add_list_data(), netsnmp_create_data_list(), and netsnmp_mib_handler.
 .PP
@@ -554,11 +557,11 @@
 .in +1c
 \fBdelayed_instance.c\fP.
 .PP
-Definition at line 755 of file agent_handler.c.
+Definition at line 760 of file agent_handler.c.
 .PP
 References netsnmp_add_list_data(), and netsnmp_request_info_s::parent_data.
 .PP
-Referenced by netsnmp_insert_iterator_context(), netsnmp_insert_table_row(), netsnmp_old_api_helper(), netsnmp_table_data_helper_handler(), netsnmp_table_data_set_helper_handler(), netsnmp_table_iterator_helper_handler(), and table_helper_handler().
+Referenced by _data_lookup(), netsnmp_container_table_row_insert(), netsnmp_insert_iterator_context(), netsnmp_insert_table_row(), netsnmp_instance_num_file_handler(), netsnmp_old_api_helper(), and table_helper_handler().
 .SS "NETSNMP_INLINE void * netsnmp_request_get_list_data (\fBnetsnmp_request_info\fP * request, const char * name)"
 .PP
 extract data from a request that was added previously by a parent module \fBParameters:\fP
@@ -579,11 +582,11 @@
 .in +1c
 \fBdelayed_instance.c\fP.
 .PP
-Definition at line 797 of file agent_handler.c.
+Definition at line 802 of file agent_handler.c.
 .PP
 References netsnmp_get_list_data(), and netsnmp_request_info_s::parent_data.
 .PP
-Referenced by netsnmp_extract_array_context(), netsnmp_extract_iterator_context(), netsnmp_extract_table(), netsnmp_extract_table_data_set(), netsnmp_extract_table_info(), netsnmp_extract_table_row(), netsnmp_old_api_helper(), and netsnmp_table_iterator_helper_handler().
+Referenced by netsnmp_container_table_container_extract(), netsnmp_container_table_extract_context(), netsnmp_container_table_row_extract(), netsnmp_extract_array_context(), netsnmp_extract_iterator_context(), netsnmp_extract_table(), netsnmp_extract_table_data_set(), netsnmp_extract_table_info(), netsnmp_extract_table_row(), netsnmp_instance_num_file_handler(), netsnmp_old_api_helper(), netsnmp_tdata_extract_container(), and netsnmp_tdata_extract_table().
 .SS "NETSNMP_INLINE int netsnmp_request_remove_list_data (\fBnetsnmp_request_info\fP * request, const char * name)"
 .PP
 remove data from a request \fBParameters:\fP
@@ -598,7 +601,7 @@
 0 on successful find-and-delete, 1 otherwise. 
 .RE
 .PP
-Definition at line 776 of file agent_handler.c.
+Definition at line 781 of file agent_handler.c.
 .PP
 References netsnmp_remove_list_node(), and netsnmp_request_info_s::parent_data.
 .SS "int netsnmp_unregister_handler (\fBnetsnmp_handler_registration\fP * reginfo)"
diff --git a/man/netsnmp_instance.3 b/man/netsnmp_instance.3
index 8d5c478..7fd70ff 100644
--- a/man/netsnmp_instance.3
+++ b/man/netsnmp_instance.3
@@ -1,4 +1,4 @@
-.TH "instance: process individual MIB instances easily." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "instance: process individual MIB instances easily." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -55,12 +55,18 @@
 .RI "int \fBnetsnmp_register_long_instance_context\fP (const char *name, oid *reg_oid, size_t reg_oid_len, long *it, Netsnmp_Node_Handler *subhandler, const char *contextName)"
 .br
 .ti -1c
+.RI "int \fBnetsnmp_register_int_instance_context\fP (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler, const char *contextName)"
+.br
+.ti -1c
 .RI "int \fBnetsnmp_register_read_only_int_instance_context\fP (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler, const char *contextName)"
 .br
 .ti -1c
 .RI "int \fBregister_read_only_int_instance_context\fP (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler, const char *contextName)"
 .br
 .ti -1c
+.RI "int \fBnetsnmp_register_num_file_instance\fP (const char *name, oid *reg_oid, size_t reg_oid_len, char *file_name, int asn_type, int mode, Netsnmp_Node_Handler *subhandler, const char *contextName)"
+.br
+.ti -1c
 .RI "int \fBnetsnmp_register_int_instance\fP (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler)"
 .br
 .RI "\fIThis function registers an int helper handler to a specified OID. \fP"
@@ -77,6 +83,9 @@
 .RI "int \fBnetsnmp_instance_int_handler\fP (\fBnetsnmp_mib_handler\fP *handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
 .br
 .ti -1c
+.RI "int \fBnetsnmp_instance_num_file_handler\fP (\fBnetsnmp_mib_handler\fP *handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
+.br
+.ti -1c
 .RI "int \fBnetsnmp_instance_helper_handler\fP (\fBnetsnmp_mib_handler\fP *handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
 .br
 .in -1c
@@ -93,11 +102,16 @@
 Returns a pointer to a netsnmp_mib_handler struct which contains the handler's name and the access method 
 .RE
 .PP
-Definition at line 46 of file instance.c.
+Definition at line 49 of file instance.c.
 .PP
 References netsnmp_create_handler().
 .PP
 Referenced by netsnmp_register_instance(), netsnmp_register_read_only_instance(), netsnmp_register_read_only_scalar(), and netsnmp_register_scalar().
+.SS "int netsnmp_instance_num_file_handler (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"
+.PP
+Definition at line 708 of file instance.c.
+.PP
+References memdup(), netsnmp_agent_request_info_s::mode, netsnmp_call_next_handler(), netsnmp_create_data_list(), netsnmp_handler_registration, netsnmp_mib_handler, netsnmp_request_add_list_data(), netsnmp_request_get_list_data(), netsnmp_set_request_error(), netsnmp_request_info_s::requestvb, snmp_set_var_typed_value(), variable_list::type, and variable_list::val.
 .SS "int netsnmp_register_instance (\fBnetsnmp_handler_registration\fP * reginfo)"
 .PP
 This function registers an instance helper handler, which is a way of registering an exact OID such that GENEXT requests are handled entirely by the helper. First need to inject it into the calling chain of the handler defined by the netsnmp_handler_registration struct, reginfo. The new handler is injected at the top of the list and will be the new handler to be called first. This function also injects a serialize handler before actually calling netsnmp_register_handle, registering reginfo.
@@ -118,7 +132,7 @@
 .in +1c
 \fBdelayed_instance.c\fP.
 .PP
-Definition at line 71 of file instance.c.
+Definition at line 74 of file instance.c.
 .PP
 References netsnmp_get_instance_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), and netsnmp_register_serialize().
 .PP
@@ -149,7 +163,7 @@
 .in +1c
 \fBscalar_int.c\fP.
 .PP
-Definition at line 372 of file instance.c.
+Definition at line 427 of file instance.c.
 .PP
 References netsnmp_handler_registration, and netsnmp_register_instance().
 .SS "int netsnmp_register_read_only_instance (\fBnetsnmp_handler_registration\fP * reginfo)"
@@ -166,6 +180,6 @@
 MIB_REGISTERED_OK is returned if the registration was a success. Failures are MIB_REGISTRATION_FAILED and MIB_DUPLICATE_REGISTRATION. 
 .RE
 .PP
-Definition at line 96 of file instance.c.
+Definition at line 99 of file instance.c.
 .PP
 References netsnmp_get_instance_handler(), netsnmp_get_read_only_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), and netsnmp_register_serialize().
diff --git a/man/netsnmp_iterator_info_s.3 b/man/netsnmp_iterator_info_s.3
index f817613..05c79fb 100644
--- a/man/netsnmp_iterator_info_s.3
+++ b/man/netsnmp_iterator_info_s.3
@@ -1,4 +1,4 @@
-.TH "iterator_info_s" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "iterator_info_s" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/netsnmp_leaf.3 b/man/netsnmp_leaf.3
index 23eac4c..24939d9 100644
--- a/man/netsnmp_leaf.3
+++ b/man/netsnmp_leaf.3
@@ -1,4 +1,4 @@
-.TH "leaf_handlers: process individual leaf objects" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "leaf_handlers: process individual leaf objects" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/netsnmp_library.3 b/man/netsnmp_library.3
index a441fd8..1faeb30 100644
--- a/man/netsnmp_library.3
+++ b/man/netsnmp_library.3
@@ -1,4 +1,4 @@
-.TH "The Net-SNMP library" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "The Net-SNMP library" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -129,7 +129,7 @@
 .RI "#define \fBMAXIMUM_PACKET_SIZE\fP   0x7fffffff"
 .br
 .ti -1c
-.RI "#define \fBDEBUGPRINTPDUTYPE\fP(token, type)"
+.RI "#define \fBDEBUGPRINTPDUTYPE\fP(token, type)   DEBUGDUMPSECTION(token, snmp_pdu_type(type))"
 .br
 .ti -1c
 .RI "#define \fBERROR_STAT_LENGTH\fP   11"
@@ -153,6 +153,12 @@
 .RI "void \fBshutdown_agent\fP (void)"
 .br
 .ti -1c
+.RI "void \fBadd_to_init_list\fP (char *module_list)"
+.br
+.ti -1c
+.RI "int \fBshould_init\fP (const char *module_name)"
+.br
+.ti -1c
 .RI "int \fBsnmp_build\fP (u_char **pkt, size_t *pkt_len, size_t *offset, \fBnetsnmp_session\fP *pss, \fBnetsnmp_pdu\fP *pdu)"
 .br
 .ti -1c
@@ -168,6 +174,9 @@
 .RI "const char * \fBstrerror\fP (int err)"
 .br
 .ti -1c
+.RI "const char * \fBsnmp_pdu_type\fP (int type)"
+.br
+.ti -1c
 .RI "long \fBsnmp_get_next_reqid\fP (void)"
 .br
 .ti -1c
@@ -226,6 +235,7 @@
 .ti -1c
 .RI "int \fBsnmpv3_engineID_probe\fP (struct session_list *slp, \fBnetsnmp_session\fP *in_session)"
 .br
+.RI "\fIprobe for peer engineID \fP"
 .ti -1c
 .RI "\fBnetsnmp_session\fP * \fBsnmp_add\fP (\fBnetsnmp_session\fP *in_session, netsnmp_transport *transport, int(*fpre_parse)(\fBnetsnmp_session\fP *, netsnmp_transport *, void *, int), int(*fpost_parse)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, int))"
 .br
@@ -327,6 +337,10 @@
 .br
 .RI "\fIlexicographical compare two object identifiers. \fP"
 .ti -1c
+.RI "int \fBnetsnmp_oid_compare_ll\fP (const oid *in_name1, size_t len1, const oid *in_name2, size_t len2, size_t *offpt)"
+.br
+.RI "\fIlexicographical compare two object identifiers and return the point where they differ \fP"
+.ti -1c
 .RI "int \fBsnmp_oidtree_compare\fP (const oid *in_name1, size_t len1, const oid *in_name2, size_t len2)"
 .br
 .RI "\fICompares 2 OIDs to determine if they are equal up until the shortest length. \fP"
@@ -383,6 +397,12 @@
 
 .in +1c
 .ti -1c
+.RI "module_init_list * \fBinitlist\fP = NULL"
+.br
+.ti -1c
+.RI "module_init_list * \fBnoinitlist\fP = NULL"
+.br
+.ti -1c
 .RI "netsnmp_subtree * \fBsubtrees\fP"
 .br
 .ti -1c
@@ -424,41 +444,6 @@
 .in -1c
 .SH "Define Documentation"
 .PP 
-.SS "#define DEBUGPRINTPDUTYPE(token, type)"
-.PP
-\fBValue:\fP.nf
-switch(type) { \
-      case SNMP_MSG_GET: \
-        DEBUGDUMPSECTION(token, 'PDU-GET'); \
-        break; \
-      case SNMP_MSG_GETNEXT: \
-        DEBUGDUMPSECTION(token, 'PDU-GETNEXT'); \
-        break; \
-      case SNMP_MSG_RESPONSE: \
-        DEBUGDUMPSECTION(token, 'PDU-RESPONSE'); \
-        break; \
-      case SNMP_MSG_SET: \
-        DEBUGDUMPSECTION(token, 'PDU-SET'); \
-        break; \
-      case SNMP_MSG_GETBULK: \
-        DEBUGDUMPSECTION(token, 'PDU-GETBULK'); \
-        break; \
-      case SNMP_MSG_INFORM: \
-        DEBUGDUMPSECTION(token, 'PDU-INFORM'); \
-        break; \
-      case SNMP_MSG_TRAP2: \
-        DEBUGDUMPSECTION(token, 'PDU-TRAP2'); \
-        break; \
-      case SNMP_MSG_REPORT: \
-        DEBUGDUMPSECTION(token, 'PDU-REPORT'); \
-        break; \
-      default: \
-        DEBUGDUMPSECTION(token, 'PDU-UNKNOWN'); \
-        break; \
-    }
-.fi
-.PP
-Definition at line 375 of file snmp_api.c.
 .SS "#define timercmp(tvp, uvp, cmp)"
 .PP
 \fBValue:\fP.nf
@@ -469,9 +454,14 @@
         (tvp)->tv_usec cmp (uvp)->tv_usec))
 .fi
 .PP
-Definition at line 145 of file snmp_api.c.
+Definition at line 147 of file snmp_api.c.
 .SH "Function Documentation"
 .PP 
+.SS "int _sess_read (void * sessp, fd_set * fdset)"
+.PP
+Definition at line 5349 of file snmp_api.c.
+.PP
+References snmp_session::callback, snmp_session::callback_magic, snmp_session::s_errno, snmp_session::s_snmp_errno, SNMP_FREE, and snmp_log().
 .SS "int init_agent (const char * app)"
 .PP
 Initialize the agent. Calls into init_agent_read_config to set tha app's configuration file in the appropriate default storage space, NETSNMP_DS_LIB_APPTYPE. Need to call init_agent before calling init_snmp.
@@ -491,7 +481,7 @@
 \fBinit_snmp\fP 
 .RE
 .PP
-Definition at line 269 of file snmp_vars.c.
+Definition at line 268 of file snmp_vars.c.
 .PP
 References netsnmp_ds_set_boolean(), netsnmp_init_helpers(), and snmp_log().
 .SS "void init_snmp (const char * type)"
@@ -511,9 +501,19 @@
 \fBinit_agent\fP 
 .RE
 .PP
-Definition at line 779 of file snmp_api.c.
+Definition at line 794 of file snmp_api.c.
 .PP
 References init_mib().
+.SS "int netsnmp_oid_compare_ll (const oid * in_name1, size_t len1, const oid * in_name2, size_t len2, size_t * offpt)"
+.PP
+lexicographical compare two object identifiers and return the point where they differ Caution: this method is called often by command responder applications (ie, agent).
+.PP
+\fBReturns:\fP
+.RS 4
+-1 if name1 < name2, 0 if name1 = name2, 1 if name1 > name2 and offpt = len where name1 != name2 
+.RE
+.PP
+Definition at line 6278 of file snmp_api.c.
 .SS "int netsnmp_oid_equals (const oid * in_name1, size_t len1, const oid * in_name2, size_t len2)"
 .PP
 Compares 2 OIDs to determine if they are exactly equal. This should be faster than doing a snmp_oid_compare for different length OIDs, since the length is checked first and if != returns immediately. Might be very slighly faster if lengths are ==. 
@@ -534,7 +534,7 @@
 0 if they are equal, 1 if they are not. 
 .RE
 .PP
-Definition at line 6213 of file snmp_api.c.
+Definition at line 6350 of file snmp_api.c.
 .PP
 Referenced by netsnmp_cache_find_by_oid(), netsnmp_old_api_helper(), and unregister_mib_context().
 .SS "int netsnmp_oid_find_prefix (const oid * in_name1, size_t len1, const oid * in_name2, size_t len2)"
@@ -555,7 +555,7 @@
 length of largest common index of commonality. 1 = first, 0 if none * or -1 on error. 
 .RE
 .PP
-Definition at line 6269 of file snmp_api.c.
+Definition at line 6406 of file snmp_api.c.
 .PP
 References SNMP_MIN.
 .PP
@@ -580,7 +580,7 @@
 0 if one is a common prefix of the other. 
 .RE
 .PP
-Definition at line 6249 of file snmp_api.c.
+Definition at line 6386 of file snmp_api.c.
 .SS "int snmp_oid_compare (const oid * in_name1, size_t len1, const oid * in_name2, size_t len2)"
 .PP
 lexicographical compare two object identifiers. Caution: this method is called often by command responder applications (ie, agent).
@@ -590,9 +590,9 @@
 -1 if name1 < name2, 0 if name1 = name2, 1 if name1 > name2 
 .RE
 .PP
-Definition at line 6145 of file snmp_api.c.
+Definition at line 6229 of file snmp_api.c.
 .PP
-Referenced by check_getnext_results(), netsnmp_check_getnext_reply(), netsnmp_insert_iterator_context(), netsnmp_insert_table_row(), netsnmp_row_merge_helper_handler(), netsnmp_table_data_add_row(), netsnmp_table_data_get_from_oid(), netsnmp_table_data_helper_handler(), netsnmp_table_iterator_helper_handler(), snmp_oidtree_compare(), and table_helper_handler().
+Referenced by check_getnext_results(), netsnmp_check_getnext_reply(), netsnmp_container_table_row_insert(), netsnmp_insert_iterator_context(), netsnmp_insert_table_row(), netsnmp_row_merge_helper_handler(), netsnmp_table_data_add_row(), netsnmp_table_data_get_from_oid(), netsnmp_tdata_compare_oid(), snmp_oidtree_compare(), and table_helper_handler().
 .SS "int snmp_oidtree_compare (const oid * in_name1, size_t len1, const oid * in_name2, size_t len2)"
 .PP
 Compares 2 OIDs to determine if they are equal up until the shortest length. \fBParameters:\fP
@@ -611,7 +611,7 @@
 0 if they are equal, 1 if in_name1 is > in_name2, or -1 if <. 
 .RE
 .PP
-Definition at line 6194 of file snmp_api.c.
+Definition at line 6331 of file snmp_api.c.
 .PP
 References snmp_oid_compare().
 .SS "void snmp_shutdown (const char * type)"
@@ -626,6 +626,36 @@
 void 
 .RE
 .PP
-Definition at line 847 of file snmp_api.c.
+Definition at line 863 of file snmp_api.c.
 .PP
 References shutdown_mib(), snmp_alarm_unregister_all(), and snmp_call_callbacks().
+.SS "int snmpv3_engineID_probe (struct session_list * slp, \fBnetsnmp_session\fP * in_session)"
+.PP
+probe for peer engineID \fBParameters:\fP
+.RS 4
+\fIslp\fP session list pointer. 
+.br
+\fIin_session\fP session for errors
+.RE
+.PP
+\fBNote:\fP
+.RS 4
+.IP "\(bu" 2
+called by _sess_open(), snmp_sess_add_ex()
+.IP "\(bu" 2
+in_session is the user supplied session provided to those functions.
+.IP "\(bu" 2
+the first session in slp should the internal allocated copy of in_session
+.PP
+.RE
+.PP
+\fBReturns:\fP
+.RS 4
+0 : error 
+.PP
+1 : ok 
+.RE
+.PP
+Definition at line 1279 of file snmp_api.c.
+.PP
+References snmp_session::engineBoots, snmp_session::engineTime, snmp_pdu::errstat, snmp_session::flags, snmp_session::s_snmp_errno, snmp_session::securityEngineID, snmp_session::securityEngineIDLen, and snmp_session::version.
diff --git a/man/netsnmp_mib_utilities.3 b/man/netsnmp_mib_utilities.3
index 7601488..99f4bd6 100644
--- a/man/netsnmp_mib_utilities.3
+++ b/man/netsnmp_mib_utilities.3
@@ -1,4 +1,4 @@
-.TH "mib parsing and datatype manipulation routines." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "mib parsing and datatype manipulation routines." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -280,10 +280,16 @@
 .RI "void \fBprint_oid_report_enable_symbolic\fP (void)"
 .br
 .ti -1c
+.RI "void \fBprint_oid_report_enable_mibchildoid\fP (void)"
+.br
+.ti -1c
 .RI "char * \fBuptime_string\fP (u_long timeticks, char *buf)"
 .br
 .RI "\fIConverts timeticks to hours, minutes, seconds string. \fP"
 .ti -1c
+.RI "char * \fBuptime_string_n\fP (u_long timeticks, char *buf, size_t buflen)"
+.br
+.ti -1c
 .RI "oid * \fBsnmp_parse_oid\fP (const char *argv, oid *root, size_t *rootlen)"
 .br
 .RI "\fIGiven a string, parses an oid out of it (if possible). \fP"
@@ -412,9 +418,9 @@
 References snmp_realloc().
 .SS "int build_oid (oid ** out, size_t * out_len, oid * prefix, size_t prefix_len, \fBnetsnmp_variable_list\fP * indexes)"
 .PP
-Definition at line 3557 of file mib.c.
+Definition at line 3590 of file mib.c.
 .PP
-Referenced by netsnmp_table_build_oid(), and netsnmp_table_data_generate_index_oid().
+Referenced by netsnmp_table_build_oid().
 .SS "int build_oid_segment (\fBnetsnmp_variable_list\fP * var)"
 .PP
 Takes the value in VAR and turns it into an OID segment in var->name. \fBParameters:\fP
@@ -427,7 +433,7 @@
 SNMPERR_SUCCESS or SNMPERR_GENERR 
 .RE
 .PP
-Definition at line 3421 of file mib.c.
+Definition at line 3454 of file mib.c.
 .PP
 References variable_list::name, variable_list::name_length, variable_list::name_loc, SNMP_FREE, variable_list::type, variable_list::val, and variable_list::val_len.
 .SS "void fprint_description (FILE * f, oid * objid, size_t objidlen, int width)"
@@ -443,7 +449,7 @@
 \fIwidth\fP Number of subidentifiers. 
 .RE
 .PP
-Definition at line 4401 of file mib.c.
+Definition at line 4436 of file mib.c.
 .PP
 References SNMP_FREE.
 .PP
@@ -459,7 +465,7 @@
 \fIobjidlen\fP The length of oidid. 
 .RE
 .PP
-Definition at line 3149 of file mib.c.
+Definition at line 3182 of file mib.c.
 .PP
 References SNMP_FREE.
 .PP
@@ -477,7 +483,7 @@
 \fIvariable\fP The variable to print. 
 .RE
 .PP
-Definition at line 3296 of file mib.c.
+Definition at line 3329 of file mib.c.
 .PP
 References SNMP_FREE.
 .PP
@@ -489,7 +495,7 @@
 get_symbol 
 .RE
 .PP
-Definition at line 4356 of file mib.c.
+Definition at line 4391 of file mib.c.
 .SS "struct tree* get_tree_head (void)"
 .PP
 Retrieves the tree head. \fBReturns:\fP
@@ -497,7 +503,7 @@
 the tree head. 
 .RE
 .PP
-Definition at line 2049 of file mib.c.
+Definition at line 2051 of file mib.c.
 .SS "int get_wild_node (const char * name, oid * objid, size_t * objidlen)"
 .PP
 \fBSee also:\fP
@@ -505,26 +511,26 @@
 comments on find_best_tree_node for usage after first time. 
 .RE
 .PP
-Definition at line 5406 of file mib.c.
+Definition at line 5441 of file mib.c.
 .PP
 Referenced by snmp_parse_oid().
 .SS "void init_mib (void)"
 .PP
-Initialises the mib reader. Reads in all settings from the environment. Definition at line 2537 of file mib.c.
+Initialises the mib reader. Reads in all settings from the environment. Definition at line 2560 of file mib.c.
 .PP
 References netsnmp_fixup_mib_directory(), netsnmp_get_mib_directory(), netsnmp_getenv(), and SNMP_FREE.
 .PP
 Referenced by init_snmp().
 .SS "void netsnmp_fixup_mib_directory (void)"
 .PP
-Definition at line 2490 of file mib.c.
+Definition at line 2513 of file mib.c.
 .PP
 References netsnmp_get_mib_directory(), netsnmp_getenv(), netsnmp_set_mib_directory(), and SNMP_FREE.
 .PP
 Referenced by init_mib().
 .SS "char* netsnmp_get_mib_directory (void)"
 .PP
-Definition at line 2443 of file mib.c.
+Definition at line 2466 of file mib.c.
 .PP
 References netsnmp_getenv(), and netsnmp_set_mib_directory().
 .PP
@@ -547,7 +553,7 @@
 0 on Sucess, 1 on failure. 
 .RE
 .PP
-length Definition at line 6149 of file mib.c.
+length Definition at line 6228 of file mib.c.
 .PP
 Referenced by netsnmp_oid2str().
 .SS "int netsnmp_oid2str (char * S, int L, oid * O)"
@@ -568,12 +574,12 @@
 0 on Sucess, 1 on failure. 
 .RE
 .PP
-Definition at line 6177 of file mib.c.
+Definition at line 6256 of file mib.c.
 .PP
 References netsnmp_oid2chars().
 .SS "void netsnmp_set_mib_directory (const char * dir)"
 .PP
-Definition at line 2388 of file mib.c.
+Definition at line 2411 of file mib.c.
 .PP
 References SNMP_FREE.
 .PP
@@ -596,7 +602,7 @@
 0 on Sucess, 1 on failure. 
 .RE
 .PP
-Definition at line 6114 of file mib.c.
+Definition at line 6193 of file mib.c.
 .SS "void print_description (oid * objid, size_t objidlen, int width)"
 .PP
 Prints on oid description on stdout. \fBSee also:\fP
@@ -604,7 +610,7 @@
 \fBfprint_description\fP 
 .RE
 .PP
-Definition at line 4385 of file mib.c.
+Definition at line 4420 of file mib.c.
 .PP
 References fprint_description().
 .SS "void print_mib (FILE * fp)"
@@ -614,7 +620,7 @@
 \fIfp\fP The file descriptor to print to. 
 .RE
 .PP
-Definition at line 2730 of file mib.c.
+Definition at line 2763 of file mib.c.
 .SS "void print_objid (const oid * objid, size_t objidlen)"
 .PP
 Prints an oid to stdout. \fBParameters:\fP
@@ -624,7 +630,7 @@
 \fIobjidlen\fP The length of oidid. 
 .RE
 .PP
-Definition at line 3135 of file mib.c.
+Definition at line 3168 of file mib.c.
 .PP
 References fprint_objid().
 .SS "void print_variable (const oid * objid, size_t objidlen, const \fBnetsnmp_variable_list\fP * variable)"
@@ -638,7 +644,7 @@
 \fIvariable\fP The variable to print. 
 .RE
 .PP
-Definition at line 3280 of file mib.c.
+Definition at line 3313 of file mib.c.
 .PP
 References fprint_variable().
 .SS "int read_objid (const char * input, oid * output, size_t * out_len)"
@@ -659,7 +665,7 @@
 1 if successful.
 .RE
 .PP
-If an error occurs, this function returns 0 and MAY set snmp_errno. snmp_errno is NOT set if SET_SNMP_ERROR evaluates to nothing. This can make multi-threaded use a tiny bit more robust. Definition at line 2828 of file mib.c.
+If an error occurs, this function returns 0 and MAY set snmp_errno. snmp_errno is NOT set if SET_SNMP_ERROR evaluates to nothing. This can make multi-threaded use a tiny bit more robust. Definition at line 2861 of file mib.c.
 .PP
 References SNMP_FREE.
 .PP
@@ -671,12 +677,12 @@
 \fIsubtree\fP The subtree to set. 
 .RE
 .PP
-Definition at line 2751 of file mib.c.
+Definition at line 2784 of file mib.c.
 .PP
 References sprint_realloc_bitstring(), sprint_realloc_by_type(), sprint_realloc_counter(), sprint_realloc_counter64(), sprint_realloc_gauge(), sprint_realloc_integer(), sprint_realloc_ipaddress(), sprint_realloc_networkaddress(), sprint_realloc_null(), sprint_realloc_object_identifier(), sprint_realloc_octet_string(), sprint_realloc_opaque(), sprint_realloc_timeticks(), and sprint_realloc_uinteger().
 .SS "void shutdown_mib (void)"
 .PP
-Unloads all mibs. Definition at line 2707 of file mib.c.
+Unloads all mibs. Definition at line 2740 of file mib.c.
 .PP
 References SNMP_FREE.
 .PP
@@ -690,7 +696,7 @@
 \fIoutf\fP The file descriptor to write to. 
 .RE
 .PP
-Definition at line 2300 of file mib.c.
+Definition at line 2323 of file mib.c.
 .SS "oid* snmp_parse_oid (const char * argv, oid * root, size_t * rootlen)"
 .PP
 Given a string, parses an oid out of it (if possible). It will try to parse it based on predetermined configuration if present or by every method possible otherwise. If a suffix has been registered using NETSNMP_DS_LIB_OIDSUFFIX, it will be appended to the input string before processing.
@@ -709,7 +715,7 @@
 The root oid pointer if successful, or NULL otherwise. 
 .RE
 .PP
-Definition at line 5720 of file mib.c.
+Definition at line 5799 of file mib.c.
 .PP
 References get_wild_node(), and read_objid().
 .SS "int sprint_realloc_asciistring (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const u_char * cp, size_t len)"
@@ -738,7 +744,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 363 of file mib.c.
+Definition at line 367 of file mib.c.
 .PP
 References snmp_realloc().
 .PP
@@ -771,7 +777,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 1934 of file mib.c.
+Definition at line 1936 of file mib.c.
 .PP
 Referenced by sprint_realloc_by_type().
 .SS "int sprint_realloc_bitstring (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct enum_list * enums, const char * hint, const char * units)"
@@ -802,7 +808,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 1795 of file mib.c.
+Definition at line 1797 of file mib.c.
 .PP
 References sprint_realloc_by_type(), variable_list::type, variable_list::val, and variable_list::val_len.
 .PP
@@ -835,7 +841,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 1969 of file mib.c.
+Definition at line 1971 of file mib.c.
 .PP
 References sprint_realloc_badtype(), sprint_realloc_bitstring(), sprint_realloc_counter(), sprint_realloc_counter64(), sprint_realloc_gauge(), sprint_realloc_integer(), sprint_realloc_ipaddress(), sprint_realloc_null(), sprint_realloc_object_identifier(), sprint_realloc_octet_string(), sprint_realloc_opaque(), sprint_realloc_timeticks(), sprint_realloc_uinteger(), and variable_list::type.
 .PP
@@ -868,7 +874,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 1562 of file mib.c.
+Definition at line 1564 of file mib.c.
 .PP
 References sprint_realloc_by_type(), variable_list::type, and variable_list::val.
 .PP
@@ -903,7 +909,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 867 of file mib.c.
+Definition at line 869 of file mib.c.
 .PP
 References sprint_realloc_by_type(), variable_list::type, and variable_list::val.
 .PP
@@ -936,7 +942,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 1489 of file mib.c.
+Definition at line 1491 of file mib.c.
 .PP
 References sprint_realloc_by_type(), sprint_realloc_hinted_integer(), variable_list::type, and variable_list::val.
 .PP
@@ -969,7 +975,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 1215 of file mib.c.
+Definition at line 1217 of file mib.c.
 .PP
 Referenced by sprint_realloc_gauge(), sprint_realloc_integer(), and sprint_realloc_uinteger().
 .SS "int sprint_realloc_integer (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct enum_list * enums, const char * hint, const char * units)"
@@ -1000,7 +1006,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 1289 of file mib.c.
+Definition at line 1291 of file mib.c.
 .PP
 References sprint_realloc_by_type(), sprint_realloc_hinted_integer(), variable_list::type, and variable_list::val.
 .PP
@@ -1033,7 +1039,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 1691 of file mib.c.
+Definition at line 1693 of file mib.c.
 .PP
 References snmp_realloc(), sprint_realloc_by_type(), variable_list::type, and variable_list::val.
 .PP
@@ -1066,7 +1072,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 1625 of file mib.c.
+Definition at line 1627 of file mib.c.
 .PP
 References snmp_realloc(), sprint_realloc_by_type(), variable_list::type, variable_list::val, and variable_list::val_len.
 .PP
@@ -1099,7 +1105,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 1751 of file mib.c.
+Definition at line 1753 of file mib.c.
 .PP
 References sprint_realloc_by_type(), and variable_list::type.
 .PP
@@ -1132,7 +1138,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 1071 of file mib.c.
+Definition at line 1073 of file mib.c.
 .PP
 References sprint_realloc_by_type(), variable_list::type, variable_list::val, and variable_list::val_len.
 .PP
@@ -1167,7 +1173,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 423 of file mib.c.
+Definition at line 427 of file mib.c.
 .PP
 References snmp_realloc(), sprint_realloc_asciistring(), sprint_realloc_by_type(), variable_list::type, variable_list::val, and variable_list::val_len.
 .PP
@@ -1200,7 +1206,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 981 of file mib.c.
+Definition at line 983 of file mib.c.
 .PP
 References sprint_realloc_by_type(), sprint_realloc_counter64(), variable_list::type, variable_list::val, and variable_list::val_len.
 .PP
@@ -1233,7 +1239,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 1141 of file mib.c.
+Definition at line 1143 of file mib.c.
 .PP
 References sprint_realloc_by_type(), variable_list::type, and variable_list::val.
 .PP
@@ -1266,7 +1272,7 @@
 1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
 .RE
 .PP
-Definition at line 1392 of file mib.c.
+Definition at line 1394 of file mib.c.
 .PP
 References sprint_realloc_by_type(), sprint_realloc_hinted_integer(), variable_list::type, and variable_list::val.
 .PP
@@ -1292,7 +1298,7 @@
 uptimeString 
 .RE
 .PP
-Definition at line 5691 of file mib.c.
+Definition at line 5764 of file mib.c.
 .SH "Variable Documentation"
 .PP 
 .SS "PrefixList mib_prefixes[]"
diff --git a/man/netsnmp_mode_end_call.3 b/man/netsnmp_mode_end_call.3
index 2f7e147..ecbf02e 100644
--- a/man/netsnmp_mode_end_call.3
+++ b/man/netsnmp_mode_end_call.3
@@ -1,4 +1,4 @@
-.TH "mode_end_call: at the end of a series of requests, call another handler hook." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "mode_end_call: at the end of a series of requests, call another handler hook." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -39,7 +39,7 @@
 An injectable Net-SNMP handler. 
 .RE
 .PP
-Definition at line 48 of file mode_end_call.c.
+Definition at line 44 of file mode_end_call.c.
 .PP
 References netsnmp_mib_handler_s::myvoid, netsnmp_create_handler(), and netsnmp_mib_handler.
 .SS "netsnmp_mode_handler_list* netsnmp_mode_end_call_add_mode_callback (netsnmp_mode_handler_list * endlist, int mode, \fBnetsnmp_mib_handler\fP * callbackh)"
@@ -58,6 +58,6 @@
 the new registration information list upon success. 
 .RE
 .PP
-Definition at line 68 of file mode_end_call.c.
+Definition at line 64 of file mode_end_call.c.
 .PP
 References netsnmp_mib_handler, netsnmp_mib_handler_s::next, and SNMP_MALLOC_TYPEDEF.
diff --git a/man/netsnmp_multiplexer.3 b/man/netsnmp_multiplexer.3
index 3565848..0abbb0a 100644
--- a/man/netsnmp_multiplexer.3
+++ b/man/netsnmp_multiplexer.3
@@ -1,4 +1,4 @@
-.TH "multiplexer: splits mode requests into calls to different handlers." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "multiplexer: splits mode requests into calls to different handlers." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -37,11 +37,11 @@
 .PP 
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_multiplexer_handler (\fBnetsnmp_mib_handler_methods\fP * req)"
 .PP
-returns a multiplixer handler given a \fBnetsnmp_mib_handler_methods\fP structure of subhandlers. Definition at line 36 of file multiplexer.c.
+returns a multiplixer handler given a \fBnetsnmp_mib_handler_methods\fP structure of subhandlers. Definition at line 32 of file multiplexer.c.
 .PP
 References netsnmp_mib_handler_s::myvoid, netsnmp_create_handler(), netsnmp_mib_handler, and snmp_log().
 .SS "int netsnmp_multiplexer_helper_handler (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"
 .PP
-implements the multiplexer helper Definition at line 57 of file multiplexer.c.
+implements the multiplexer helper Definition at line 53 of file multiplexer.c.
 .PP
-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().
+References netsnmp_agent_request_info_s::mode, netsnmp_mib_handler_s::myvoid, netsnmp_call_handler(), netsnmp_handler_registration, netsnmp_mib_handler, netsnmp_request_set_error_all(), and snmp_log().
diff --git a/man/netsnmp_netsnmp_agent_request_info_s.3 b/man/netsnmp_netsnmp_agent_request_info_s.3
index 2ae4434..9a0d108 100644
--- a/man/netsnmp_netsnmp_agent_request_info_s.3
+++ b/man/netsnmp_netsnmp_agent_request_info_s.3
@@ -1,4 +1,4 @@
-.TH "netsnmp_agent_request_info_s" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "netsnmp_agent_request_info_s" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/netsnmp_netsnmp_column_info_t.3 b/man/netsnmp_netsnmp_column_info_t.3
index 1b9e176..bafe150 100644
--- a/man/netsnmp_netsnmp_column_info_t.3
+++ b/man/netsnmp_netsnmp_column_info_t.3
@@ -1,4 +1,4 @@
-.TH "netsnmp_column_info_t" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "netsnmp_column_info_t" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/netsnmp_netsnmp_data_list_s.3 b/man/netsnmp_netsnmp_data_list_s.3
index 2d5d424..f559c55 100644
--- a/man/netsnmp_netsnmp_data_list_s.3
+++ b/man/netsnmp_netsnmp_data_list_s.3
@@ -1,4 +1,4 @@
-.TH "netsnmp_data_list_s" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "netsnmp_data_list_s" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -37,7 +37,7 @@
 .PP
 The pointer to the data passed on. Definition at line 45 of file data_list.h.
 .PP
-Referenced by netsnmp_create_data_list(), netsnmp_free_list_data(), netsnmp_get_list_data(), netsnmp_save_all_data(), and netsnmp_table_iterator_helper_handler().
+Referenced by netsnmp_create_data_list(), netsnmp_free_list_data(), netsnmp_get_list_data(), and netsnmp_save_all_data().
 .SS "Netsnmp_Free_List_Data* \fBnetsnmp_data_list_s::free_func\fP"
 .PP
 must know how to free netsnmp_data_list->data Definition at line 47 of file data_list.h.
diff --git a/man/netsnmp_netsnmp_handler_registration_s.3 b/man/netsnmp_netsnmp_handler_registration_s.3
index 0be7e86..1ac7d1e 100644
--- a/man/netsnmp_netsnmp_handler_registration_s.3
+++ b/man/netsnmp_netsnmp_handler_registration_s.3
@@ -1,4 +1,4 @@
-.TH "netsnmp_handler_registration_s" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "netsnmp_handler_registration_s" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -65,39 +65,39 @@
 \fBExamples: \fP
 .in +1c
 .PP
-\fBdelayed_instance.c\fP.
+\fBdelayed_instance.c\fP, and \fBwatched.c\fP.
 .PP
-Definition at line 94 of file agent_handler.h.
+Definition at line 96 of file agent_handler.h.
 .SH "Field Documentation"
 .PP 
 .SS "char* \fBnetsnmp_handler_registration_s::contextName\fP"
 .PP
-NULL = default context. Definition at line 99 of file agent_handler.h.
+NULL = default context. Definition at line 101 of file agent_handler.h.
 .PP
 Referenced by netsnmp_handler_registration_dup(), netsnmp_handler_registration_free(), netsnmp_register_handler(), netsnmp_register_handler_nocallback(), netsnmp_register_mib_table_row(), netsnmp_register_old_api(), and netsnmp_unregister_handler().
 .SS "\fBnetsnmp_mib_handler\fP* \fBnetsnmp_handler_registration_s::handler\fP"
 .PP
-handler details Definition at line 110 of file agent_handler.h.
+handler details Definition at line 112 of file agent_handler.h.
 .PP
 Referenced by netsnmp_find_handler_by_name(), netsnmp_find_table_array_handler(), netsnmp_handler_registration_create(), netsnmp_handler_registration_dup(), netsnmp_handler_registration_free(), netsnmp_inject_handler_before(), netsnmp_register_handler(), netsnmp_register_handler_nocallback(), netsnmp_register_mib_table_row(), netsnmp_register_old_api(), and netsnmp_table_container_register().
 .SS "char* \fBnetsnmp_handler_registration_s::handlerName\fP"
 .PP
-for mrTable listings, and other uses Definition at line 97 of file agent_handler.h.
+for mrTable listings, and other uses Definition at line 99 of file agent_handler.h.
 .PP
-Referenced by netsnmp_cache_helper_handler(), netsnmp_handler_registration_create(), netsnmp_handler_registration_dup(), netsnmp_handler_registration_free(), netsnmp_old_api_helper(), netsnmp_register_handler(), netsnmp_register_mib_table_row(), netsnmp_register_old_api(), and netsnmp_table_iterator_helper_handler().
+Referenced by netsnmp_cache_helper_handler(), netsnmp_handler_registration_create(), netsnmp_handler_registration_dup(), netsnmp_handler_registration_free(), netsnmp_old_api_helper(), netsnmp_register_handler(), netsnmp_register_mib_table_row(), and netsnmp_register_old_api().
 .SS "void* \fBnetsnmp_handler_registration_s::my_reg_void\fP"
 .PP
-void ptr for registeree Definition at line 125 of file agent_handler.h.
+void ptr for registeree Definition at line 127 of file agent_handler.h.
 .SS "int \fBnetsnmp_handler_registration_s::priority\fP"
 .PP
-more optional stuff Definition at line 116 of file agent_handler.h.
+more optional stuff Definition at line 118 of file agent_handler.h.
 .PP
 Referenced by netsnmp_handler_registration_create(), netsnmp_handler_registration_dup(), netsnmp_register_handler(), netsnmp_register_handler_nocallback(), netsnmp_register_mib_table_row(), netsnmp_register_old_api(), and netsnmp_unregister_handler().
 .SS "oid* \fBnetsnmp_handler_registration_s::rootoid\fP"
 .PP
-where are we registered at? Definition at line 104 of file agent_handler.h.
+where are we registered at? Definition at line 106 of file agent_handler.h.
 .PP
-Referenced by netsnmp_cache_helper_handler(), netsnmp_handler_registration_create(), netsnmp_handler_registration_dup(), netsnmp_handler_registration_free(), netsnmp_old_api_helper(), netsnmp_register_cache_handler(), netsnmp_register_handler(), netsnmp_register_handler_nocallback(), netsnmp_register_mib_table_row(), netsnmp_register_old_api(), netsnmp_register_read_only_scalar(), netsnmp_register_scalar(), netsnmp_row_merge_helper_handler(), netsnmp_table_build_oid(), netsnmp_table_build_oid_from_index(), netsnmp_table_data_build_result(), netsnmp_table_data_helper_handler(), netsnmp_table_iterator_helper_handler(), netsnmp_unregister_handler(), and table_helper_handler().
+Referenced by netsnmp_cache_helper_handler(), netsnmp_handler_registration_create(), netsnmp_handler_registration_dup(), netsnmp_handler_registration_free(), netsnmp_old_api_helper(), netsnmp_register_cache_handler(), netsnmp_register_handler(), netsnmp_register_handler_nocallback(), netsnmp_register_mib_table_row(), netsnmp_register_old_api(), netsnmp_register_read_only_scalar(), netsnmp_register_scalar(), netsnmp_row_merge_helper_handler(), netsnmp_table_build_oid(), netsnmp_table_build_oid_from_index(), netsnmp_unregister_handler(), and table_helper_handler().
 
 .SH "Author"
 .PP 
diff --git a/man/netsnmp_netsnmp_iterator_info_s.3 b/man/netsnmp_netsnmp_iterator_info_s.3
index 6820ee9..4ba5356 100644
--- a/man/netsnmp_netsnmp_iterator_info_s.3
+++ b/man/netsnmp_netsnmp_iterator_info_s.3
@@ -1,4 +1,4 @@
-.TH "netsnmp_iterator_info_s" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "netsnmp_iterator_info_s" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -48,6 +48,12 @@
 .RI "\fBnetsnmp_table_registration_info\fP * \fBtable_reginfo\fP"
 .br
 .RI "\fIA pointer to the netsnmp_table_registration_info object this iterator is registered along with. \fP"
+.ti -1c
+.RI "Netsnmp_First_Data_Point * \fBget_row_indexes\fP"
+.br
+.ti -1c
+.RI "\fBnetsnmp_variable_list\fP * \fBindexes\fP"
+.br
 .in -1c
 .SH "Detailed Description"
 .PP 
@@ -55,45 +61,35 @@
 
 The netsnmp_iterator_info typedef can be used instead of directly calling this struct if you would prefer. 
 .PP
-Definition at line 67 of file table_iterator.h.
+Definition at line 53 of file table_iterator.h.
 .SH "Field Documentation"
 .PP 
 .SS "Netsnmp_Free_Data_Context* \fBnetsnmp_iterator_info_s::free_data_context\fP"
 .PP
-Frees a data context. This will be called at any time a data context needs to be freed. This may be at the same time as a correspondng loop context is freed, or much much later. Multiple data contexts may be kept in existence at any time. Definition at line 96 of file table_iterator.h.
-.PP
-Referenced by netsnmp_table_iterator_helper_handler().
+Frees a data context. This will be called at any time a data context needs to be freed. This may be at the same time as a correspondng loop context is freed, or much much later. Multiple data contexts may be kept in existence at any time. Definition at line 82 of file table_iterator.h.
 .SS "Netsnmp_Free_Loop_Context* \fBnetsnmp_iterator_info_s::free_loop_context\fP"
 .PP
-A function which should free the loop context. This function is called at *each* iteration step, which is not-optimal for speed purposes. The use of free_loop_context_at_end instead is strongly encouraged. This can be set to NULL to avoid its usage. Definition at line 89 of file table_iterator.h.
-.PP
-Referenced by netsnmp_table_iterator_helper_handler().
+A function which should free the loop context. This function is called at *each* iteration step, which is not-optimal for speed purposes. The use of free_loop_context_at_end instead is strongly encouraged. This can be set to NULL to avoid its usage. Definition at line 75 of file table_iterator.h.
 .SS "Netsnmp_Free_Loop_Context* \fBnetsnmp_iterator_info_s::free_loop_context_at_end\fP"
 .PP
-Frees a loop context at the end of the entire iteration sequence. Generally, this would free the loop context allocated by the get_first_data_point function (which would then be updated by each call to the get_next_data_point function). It is not called until the get_next_data_point function returns a NULL Definition at line 104 of file table_iterator.h.
-.PP
-Referenced by netsnmp_table_iterator_helper_handler().
+Frees a loop context at the end of the entire iteration sequence. Generally, this would free the loop context allocated by the get_first_data_point function (which would then be updated by each call to the get_next_data_point function). It is not called until the get_next_data_point function returns a NULL Definition at line 90 of file table_iterator.h.
 .SS "Netsnmp_First_Data_Point* \fBnetsnmp_iterator_info_s::get_first_data_point\fP"
 .PP
-Responsible for: returning the first set of 'index' data, a loop-context pointer, and optionally a data context pointer. Definition at line 71 of file table_iterator.h.
-.PP
-Referenced by netsnmp_table_iterator_helper_handler().
+Responsible for: returning the first set of 'index' data, a loop-context pointer, and optionally a data context pointer. Definition at line 57 of file table_iterator.h.
 .SS "Netsnmp_Next_Data_Point* \fBnetsnmp_iterator_info_s::get_next_data_point\fP"
 .PP
-Given the previous loop context, this should return the next loop context, assiocated index set and optionally a data context. Definition at line 76 of file table_iterator.h.
-.PP
-Referenced by netsnmp_table_iterator_helper_handler().
+Given the previous loop context, this should return the next loop context, assiocated index set and optionally a data context. Definition at line 62 of file table_iterator.h.
 .SS "Netsnmp_Make_Data_Context* \fBnetsnmp_iterator_info_s::make_data_context\fP"
 .PP
-If a data context wasn't supplied by the get_first_data_point or get_next_data_point functions and the make_data_context pointer is defined, it will be called to convert a loop context into a data context. Definition at line 82 of file table_iterator.h.
+If a data context wasn't supplied by the get_first_data_point or get_next_data_point functions and the make_data_context pointer is defined, it will be called to convert a loop context into a data context. Definition at line 68 of file table_iterator.h.
 .SS "void* \fBnetsnmp_iterator_info_s::myvoid\fP"
 .PP
-This can be used by client handlers to store any information they need. Definition at line 108 of file table_iterator.h.
+This can be used by client handlers to store any information they need. Definition at line 94 of file table_iterator.h.
 .SS "\fBnetsnmp_table_registration_info\fP* \fBnetsnmp_iterator_info_s::table_reginfo\fP"
 .PP
-A pointer to the netsnmp_table_registration_info object this iterator is registered along with. Definition at line 114 of file table_iterator.h.
+A pointer to the netsnmp_table_registration_info object this iterator is registered along with. Definition at line 100 of file table_iterator.h.
 .PP
-Referenced by netsnmp_register_table_iterator(), and netsnmp_table_iterator_helper_handler().
+Referenced by netsnmp_register_table_iterator().
 
 .SH "Author"
 .PP 
diff --git a/man/netsnmp_netsnmp_mib_handler_access_methods.3 b/man/netsnmp_netsnmp_mib_handler_access_methods.3
index fbefb14..f6853ac 100644
--- a/man/netsnmp_netsnmp_mib_handler_access_methods.3
+++ b/man/netsnmp_netsnmp_mib_handler_access_methods.3
@@ -1,4 +1,4 @@
-.TH "netsnmp_mib_handler_access_methods" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "netsnmp_mib_handler_access_methods" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/netsnmp_netsnmp_mib_handler_methods.3 b/man/netsnmp_netsnmp_mib_handler_methods.3
index fff9b6c..6686c91 100644
--- a/man/netsnmp_netsnmp_mib_handler_methods.3
+++ b/man/netsnmp_netsnmp_mib_handler_methods.3
@@ -1,4 +1,4 @@
-.TH "netsnmp_mib_handler_methods" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "netsnmp_mib_handler_methods" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/netsnmp_netsnmp_mib_handler_s.3 b/man/netsnmp_netsnmp_mib_handler_s.3
index 7395062..2553ea7 100644
--- a/man/netsnmp_netsnmp_mib_handler_s.3
+++ b/man/netsnmp_netsnmp_mib_handler_s.3
@@ -1,4 +1,4 @@
-.TH "netsnmp_mib_handler_s" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "netsnmp_mib_handler_s" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -27,7 +27,7 @@
 .ti -1c
 .RI "int(* \fBaccess_method\fP )(struct \fBnetsnmp_mib_handler_s\fP *, struct \fBnetsnmp_handler_registration_s\fP *, struct \fBnetsnmp_agent_request_info_s\fP *, struct \fBnetsnmp_request_info_s\fP *)"
 .br
-.RI "\fI_clone_handler in \fBsnmp_agent.c\fP. \fP"
+.RI "\fI_clone_handler in \fBagent_handler.c\fP. \fP"
 .ti -1c
 .RI "\fBnetsnmp_mib_handler_s\fP * \fBnext\fP"
 .br
@@ -44,22 +44,22 @@
 .PP
 \fBdelayed_instance.c\fP.
 .PP
-Definition at line 46 of file agent_handler.h.
+Definition at line 47 of file agent_handler.h.
 .SH "Field Documentation"
 .PP 
 .SS "int(* \fBnetsnmp_mib_handler_s::access_method\fP)(struct \fBnetsnmp_mib_handler_s\fP *, struct \fBnetsnmp_handler_registration_s\fP *, struct \fBnetsnmp_agent_request_info_s\fP *, struct \fBnetsnmp_request_info_s\fP *)"
 .PP
-_clone_handler in \fBsnmp_agent.c\fP. Referenced by netsnmp_call_handler(), netsnmp_create_handler(), and netsnmp_find_table_array_handler().
+_clone_handler in \fBagent_handler.c\fP. Referenced by netsnmp_call_handler(), netsnmp_create_handler(), and netsnmp_find_table_array_handler().
 .SS "int \fBnetsnmp_mib_handler_s::flags\fP"
 .PP
-for agent_handler's internal use Definition at line 51 of file agent_handler.h.
+for agent_handler's internal use Definition at line 52 of file agent_handler.h.
 .PP
-Referenced by netsnmp_baby_steps_access_multiplexer_get(), netsnmp_cache_handler_get(), netsnmp_cache_helper_handler(), netsnmp_container_table_handler_get(), netsnmp_get_bulk_to_next_handler(), netsnmp_get_read_only_handler(), netsnmp_get_table_data_handler(), netsnmp_get_table_data_set_handler(), and netsnmp_table_data_helper_handler().
+Referenced by netsnmp_baby_steps_access_multiplexer_get(), netsnmp_cache_handler_get(), netsnmp_cache_helper_handler(), netsnmp_container_table_handler_get(), netsnmp_get_bulk_to_next_handler(), netsnmp_get_read_only_handler(), netsnmp_get_stash_to_next_handler(), netsnmp_get_table_data_handler(), netsnmp_get_table_data_set_handler(), and netsnmp_get_tdata_handler().
 .SS "void* \fBnetsnmp_mib_handler_s::myvoid\fP"
 .PP
-for handler's internal use Definition at line 49 of file agent_handler.h.
+for handler's internal use Definition at line 50 of file agent_handler.h.
 .PP
-Referenced by netsnmp_baby_steps_access_multiplexer_get(), netsnmp_baby_steps_handler_get(), netsnmp_cache_handler_get(), netsnmp_cache_helper_handler(), netsnmp_container_table_handler_get(), netsnmp_find_handler_data_by_name(), netsnmp_get_cache_handler(), netsnmp_get_mode_end_call_handler(), netsnmp_get_multiplexer_handler(), netsnmp_get_row_merge_handler(), netsnmp_get_stash_cache_handler(), netsnmp_get_table_data_handler(), netsnmp_get_table_data_set_handler(), netsnmp_get_table_handler(), netsnmp_get_table_iterator_handler(), netsnmp_handler_dup(), netsnmp_multiplexer_helper_handler(), netsnmp_old_api_helper(), netsnmp_register_mib_table_row(), netsnmp_register_old_api(), netsnmp_row_merge_helper_handler(), netsnmp_table_container_register(), netsnmp_table_data_helper_handler(), netsnmp_table_data_set_helper_handler(), netsnmp_table_iterator_helper_handler(), and table_helper_handler().
+Referenced by netsnmp_baby_steps_access_multiplexer_get(), netsnmp_baby_steps_handler_get(), netsnmp_cache_handler_get(), netsnmp_cache_helper_handler(), netsnmp_container_table_handler_get(), netsnmp_find_handler_data_by_name(), netsnmp_get_cache_handler(), netsnmp_get_mode_end_call_handler(), netsnmp_get_multiplexer_handler(), netsnmp_get_row_merge_handler(), netsnmp_get_table_data_handler(), netsnmp_get_table_data_set_handler(), netsnmp_get_table_handler(), netsnmp_get_table_iterator_handler(), netsnmp_get_tdata_handler(), netsnmp_get_timed_bare_stash_cache_handler(), netsnmp_handler_dup(), netsnmp_multiplexer_helper_handler(), netsnmp_old_api_helper(), netsnmp_register_mib_table_row(), netsnmp_register_old_api(), netsnmp_row_merge_helper_handler(), netsnmp_table_container_register(), and table_helper_handler().
 
 .SH "Author"
 .PP 
diff --git a/man/netsnmp_netsnmp_request_info_s.3 b/man/netsnmp_netsnmp_request_info_s.3
index 589f583..28551f4 100644
--- a/man/netsnmp_netsnmp_request_info_s.3
+++ b/man/netsnmp_netsnmp_request_info_s.3
@@ -1,4 +1,4 @@
-.TH "netsnmp_request_info_s" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "netsnmp_request_info_s" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -88,7 +88,7 @@
 .PP
 can be used to pass information on a per-request basis from a helper to the later handlers Definition at line 65 of file snmp_agent.h.
 .PP
-Referenced by netsnmp_add_varbind_to_cache(), netsnmp_free_request_data_set(), netsnmp_free_request_data_sets(), netsnmp_request_add_list_data(), netsnmp_request_get_list_data(), netsnmp_request_remove_list_data(), and netsnmp_table_iterator_helper_handler().
+Referenced by netsnmp_add_varbind_to_cache(), netsnmp_free_request_data_set(), netsnmp_free_request_data_sets(), netsnmp_request_add_list_data(), netsnmp_request_get_list_data(), and netsnmp_request_remove_list_data().
 .SS "oid* \fBnetsnmp_request_info_s::range_end\fP"
 .PP
 don't free, reference to (struct tree)->end Definition at line 73 of file snmp_agent.h.
@@ -109,7 +109,7 @@
 .PP
 Definition at line 59 of file snmp_agent.h.
 .PP
-Referenced by _request_set_error(), check_getnext_results(), netsnmp_add_varbind_to_cache(), netsnmp_bulk_to_next_fix_requests(), netsnmp_check_getnext_reply(), netsnmp_old_api_helper(), netsnmp_row_merge_helper_handler(), netsnmp_table_build_oid(), netsnmp_table_build_oid_from_index(), netsnmp_table_build_result(), netsnmp_table_data_build_result(), netsnmp_table_data_helper_handler(), netsnmp_table_data_set_helper_handler(), netsnmp_table_iterator_helper_handler(), and table_helper_handler().
+Referenced by _data_lookup(), _request_set_error(), check_getnext_results(), netsnmp_add_varbind_to_cache(), netsnmp_bulk_to_next_fix_requests(), netsnmp_check_getnext_reply(), netsnmp_instance_num_file_handler(), netsnmp_old_api_helper(), netsnmp_row_merge_helper_handler(), netsnmp_table_build_oid(), netsnmp_table_build_oid_from_index(), netsnmp_table_build_result(), and table_helper_handler().
 
 .SH "Author"
 .PP 
diff --git a/man/netsnmp_netsnmp_table_registration_info_s.3 b/man/netsnmp_netsnmp_table_registration_info_s.3
index 101fa47..1c7aa45 100644
--- a/man/netsnmp_netsnmp_table_registration_info_s.3
+++ b/man/netsnmp_netsnmp_table_registration_info_s.3
@@ -1,4 +1,4 @@
-.TH "netsnmp_table_registration_info_s" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "netsnmp_table_registration_info_s" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -43,17 +43,17 @@
 .PP
 list of varbinds with only 'type' set Definition at line 76 of file table.h.
 .PP
-Referenced by netsnmp_get_table_handler(), netsnmp_register_table_data_set(), and table_helper_handler().
+Referenced by netsnmp_get_table_handler(), netsnmp_register_table_data_set(), netsnmp_register_table_iterator(), and table_helper_handler().
 .SS "unsigned int \fBnetsnmp_table_registration_info_s::max_column\fP"
 .PP
 the maximum columns number Definition at line 87 of file table.h.
 .PP
-Referenced by netsnmp_register_table_data_set(), netsnmp_table_data_helper_handler(), netsnmp_table_iterator_helper_handler(), and table_helper_handler().
+Referenced by netsnmp_register_table_data_set(), and table_helper_handler().
 .SS "unsigned int \fBnetsnmp_table_registration_info_s::min_column\fP"
 .PP
 the minimum columns number. If there are columns in-between which are not valid, use valid_columns to get automatic column range checking. Definition at line 85 of file table.h.
 .PP
-Referenced by netsnmp_register_table_data_set(), netsnmp_table_data_helper_handler(), netsnmp_table_iterator_helper_handler(), and table_helper_handler().
+Referenced by netsnmp_register_table_data_set(), and table_helper_handler().
 .SS "unsigned int \fBnetsnmp_table_registration_info_s::number_indexes\fP"
 .PP
 calculated automatically Definition at line 78 of file table.h.
diff --git a/man/netsnmp_netsnmp_table_request_info_s.3 b/man/netsnmp_netsnmp_table_request_info_s.3
index 66ffc83..ecf601a 100644
--- a/man/netsnmp_netsnmp_table_request_info_s.3
+++ b/man/netsnmp_netsnmp_table_request_info_s.3
@@ -1,4 +1,4 @@
-.TH "netsnmp_table_request_info_s" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "netsnmp_table_request_info_s" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -44,12 +44,12 @@
 .PP
 0 if OID not long enough Definition at line 104 of file table.h.
 .PP
-Referenced by netsnmp_table_build_oid(), netsnmp_table_build_oid_from_index(), netsnmp_table_data_helper_handler(), netsnmp_table_data_set_helper_handler(), netsnmp_table_iterator_helper_handler(), and table_helper_handler().
+Referenced by netsnmp_table_build_oid(), netsnmp_table_build_oid_from_index(), and table_helper_handler().
 .SS "\fBnetsnmp_variable_list\fP* \fBnetsnmp_table_request_info_s::indexes\fP"
 .PP
 contents freed by helper upon exit Definition at line 108 of file table.h.
 .PP
-Referenced by netsnmp_insert_iterator_context(), netsnmp_insert_table_row(), netsnmp_table_build_oid(), netsnmp_table_iterator_helper_handler(), netsnmp_update_indexes_from_variable_list(), netsnmp_update_variable_list_from_index(), and table_helper_handler().
+Referenced by netsnmp_container_table_row_insert(), netsnmp_insert_iterator_context(), netsnmp_insert_table_row(), netsnmp_table_build_oid(), netsnmp_update_indexes_from_variable_list(), netsnmp_update_variable_list_from_index(), and table_helper_handler().
 .SS "unsigned int \fBnetsnmp_table_request_info_s::number_indexes\fP"
 .PP
 0 if failure to parse any Definition at line 106 of file table.h.
diff --git a/man/netsnmp_oid_stash.3 b/man/netsnmp_oid_stash.3
index 0bdad28..23d28f4 100644
--- a/man/netsnmp_oid_stash.3
+++ b/man/netsnmp_oid_stash.3
@@ -1,4 +1,4 @@
-.TH "Store and retrieve data referenced by an OID." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "Store and retrieve data referenced by an OID." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -75,11 +75,9 @@
 SNMPERR_SUCCESS on success, SNMPERR_GENERR if data is already there, SNMPERR_MALLOC on malloc failures or if arguments passed in with NULL values. 
 .RE
 .PP
-Definition at line 87 of file oid_stash.c.
+Definition at line 83 of file oid_stash.c.
 .PP
 References netsnmp_oid_stash_create_node().
-.PP
-Referenced by netsnmp_table_data_set_helper_handler(), and netsnmp_table_iterator_helper_handler().
 .SS "NETSNMP_INLINE netsnmp_oid_stash_node* netsnmp_oid_stash_create_node (void)"
 .PP
 Creates a netsnmp_oid_stash_node. Assumes you want the default OID_STASH_CHILDREN_SIZE hash size for the node. 
@@ -89,7 +87,7 @@
 NULL on error, otherwise the newly allocated node 
 .RE
 .PP
-Definition at line 70 of file oid_stash.c.
+Definition at line 66 of file oid_stash.c.
 .PP
 References netsnmp_oid_stash_create_sized_node().
 .PP
@@ -106,7 +104,7 @@
 NULL on error, otherwise the newly allocated node 
 .RE
 .PP
-Definition at line 50 of file oid_stash.c.
+Definition at line 46 of file oid_stash.c.
 .PP
 References SNMP_MALLOC_TYPEDEF.
 .PP
@@ -120,9 +118,7 @@
 \fIfreefn\fP The function to be called on each data (void *) pointer. If left NULL the system free() function will be called 
 .RE
 .PP
-Definition at line 399 of file oid_stash.c.
-.PP
-Referenced by netsnmp_stash_cache_update().
+Definition at line 398 of file oid_stash.c.
 .SS "void* netsnmp_oid_stash_get_data (netsnmp_oid_stash_node * root, oid * lookup, size_t lookup_len)"
 .PP
 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.
@@ -136,11 +132,9 @@
 \fIthe\fP length of the search oid. 
 .RE
 .PP
-Definition at line 283 of file oid_stash.c.
+Definition at line 282 of file oid_stash.c.
 .PP
 References netsnmp_oid_stash_get_node().
-.PP
-Referenced by netsnmp_table_data_set_helper_handler().
 .SS "netsnmp_oid_stash_node* netsnmp_oid_stash_get_node (netsnmp_oid_stash_node * root, oid * lookup, size_t lookup_len)"
 .PP
 returns a node associated with a given OID. \fBParameters:\fP
@@ -152,12 +146,12 @@
 \fIlookup_len\fP the length of the lookup oid 
 .RE
 .PP
-Definition at line 155 of file oid_stash.c.
+Definition at line 154 of file oid_stash.c.
 .PP
 Referenced by netsnmp_oid_stash_get_data().
 .SS "netsnmp_oid_stash_node* netsnmp_oid_stash_getnext_node (netsnmp_oid_stash_node * root, oid * lookup, size_t lookup_len)"
 .PP
-returns the next node associated with a given OID. INCOMPLETE. This is equivelent to a GETNEXT operation. Definition at line 192 of file oid_stash.c.
+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.
 .SS "void netsnmp_oid_stash_store (netsnmp_oid_stash_node * root, const char * tokenname, NetSNMPStashDump * dumpfn, oid * curoid, size_t curoid_len)"
 .PP
 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.
@@ -175,7 +169,7 @@
 \fIcuroid_len\fP must be 0 for the top level call. 
 .RE
 .PP
-Definition at line 332 of file oid_stash.c.
+Definition at line 331 of file oid_stash.c.
 .PP
 References read_config_store().
 .PP
@@ -189,7 +183,7 @@
 \fIclientarg\fP A pointer to a netsnmp_oid_stash_save_info structure. 
 .RE
 .PP
-Definition at line 302 of file oid_stash.c.
+Definition at line 301 of file oid_stash.c.
 .PP
 References netsnmp_oid_stash_store().
 .SS "void oid_stash_dump (netsnmp_oid_stash_node * root, char * prefix)"
@@ -201,4 +195,4 @@
 \fIprefix\fP a character string prefix printed to the beginning of each line. 
 .RE
 .PP
-Definition at line 372 of file oid_stash.c.
+Definition at line 371 of file oid_stash.c.
diff --git a/man/netsnmp_old_api.3 b/man/netsnmp_old_api.3
index 827189b..4036b2f 100644
--- a/man/netsnmp_old_api.3
+++ b/man/netsnmp_old_api.3
@@ -1,4 +1,4 @@
-.TH "old_api: Calls mib module code written in the old style of code." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "old_api: Calls mib module code written in the old style of code." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -32,23 +32,23 @@
 .PP 
 .SS "\fBnetsnmp_mib_handler\fP* get_old_api_handler (void)"
 .PP
-returns a old_api handler that should be the final calling handler. Don't use this function. Use the \fBnetsnmp_register_old_api()\fP function instead. Definition at line 40 of file old_api.c.
+returns a old_api handler that should be the final calling handler. Don't use this function. Use the \fBnetsnmp_register_old_api()\fP function instead. Definition at line 36 of file old_api.c.
 .PP
 References netsnmp_create_handler().
 .PP
 Referenced by netsnmp_register_mib_table_row(), and netsnmp_register_old_api().
 .SS "int netsnmp_old_api_helper (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"
 .PP
-implements the old_api handler Definition at line 228 of file old_api.c.
+implements the old_api handler Definition at line 225 of file old_api.c.
 .PP
 References netsnmp_agent_request_info_s::asp, netsnmp_handler_registration_s::handlerName, netsnmp_agent_request_info_s::mode, netsnmp_mib_handler_s::myvoid, variable_list::name, variable_list::name_length, netsnmp_create_data_list(), netsnmp_handler_registration, netsnmp_mib_handler, netsnmp_oid_equals(), netsnmp_request_add_list_data(), netsnmp_request_get_list_data(), netsnmp_set_request_error(), netsnmp_request_info_s::next, netsnmp_request_info_s::requestvb, netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, SNMP_MALLOC_TYPEDEF, snmp_set_var_typed_value(), variable_list::type, variable_list::val, and variable_list::val_len.
 .SS "int netsnmp_register_mib_table_row (const char * moduleName, struct variable * var, size_t varsize, size_t numvars, oid * mibloc, size_t mibloclen, int priority, int var_subid, \fBnetsnmp_session\fP * ss, const char * context, int timeout, int flags)"
 .PP
-registers a row within a mib table Definition at line 110 of file old_api.c.
+registers a row within a mib table Definition at line 106 of file old_api.c.
 .PP
 References netsnmp_handler_registration_s::contextName, get_old_api_handler(), netsnmp_handler_registration_s::handler, netsnmp_handler_registration_s::handlerName, netsnmp_handler_registration_s::modes, netsnmp_mib_handler_s::myvoid, netsnmp_handler_registration, netsnmp_handler_registration_free(), netsnmp_register_handler_nocallback(), netsnmp_handler_registration_s::priority, netsnmp_handler_registration_s::range_subid, netsnmp_handler_registration_s::range_ubound, netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, snmp_call_callbacks(), SNMP_MALLOC_TYPEDEF, and netsnmp_handler_registration_s::timeout.
 .SS "int netsnmp_register_old_api (const char * moduleName, struct variable * var, size_t varsize, size_t numvars, oid * mibloc, size_t mibloclen, int priority, int range_subid, oid range_ubound, \fBnetsnmp_session\fP * ss, const char * context, int timeout, int flags)"
 .PP
-Registers an old API set into the mib tree. Functionally this mimics the old register_mib_context() function (and in fact the new register_mib_context() function merely calls this new old_api one). netsnmp_handler_registration_free(reginfo); already freed Definition at line 51 of file old_api.c.
+Registers an old API set into the mib tree. Functionally this mimics the old register_mib_context() function (and in fact the new register_mib_context() function merely calls this new old_api one). netsnmp_handler_registration_free(reginfo); already freed Definition at line 47 of file old_api.c.
 .PP
 References netsnmp_handler_registration_s::contextName, get_old_api_handler(), netsnmp_handler_registration_s::handler, netsnmp_handler_registration_s::handlerName, memdup(), netsnmp_handler_registration_s::modes, netsnmp_mib_handler_s::myvoid, netsnmp_handler_registration, netsnmp_register_handler(), netsnmp_handler_registration_s::priority, netsnmp_handler_registration_s::range_subid, netsnmp_handler_registration_s::range_ubound, netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, SNMP_FREE, SNMP_MALLOC_TYPEDEF, and netsnmp_handler_registration_s::timeout.
diff --git a/man/netsnmp_read_config.3 b/man/netsnmp_read_config.3
index c3c8ff4..ce956e2 100644
--- a/man/netsnmp_read_config.3
+++ b/man/netsnmp_read_config.3
@@ -1,4 +1,4 @@
-.TH "parsing various configuration files at run time" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "parsing various configuration files at run time" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -42,6 +42,9 @@
 .RI "config_line * \fBread_config_get_handlers\fP (const char *type)"
 .br
 .ti -1c
+.RI "void \fBread_config_with_type_when\fP (const char *filename, const char *type, int when)"
+.br
+.ti -1c
 .RI "void \fBread_config_with_type\fP (const char *filename, const char *type)"
 .br
 .ti -1c
@@ -81,6 +84,9 @@
 .RI "void \fBfree_config\fP (void)"
 .br
 .ti -1c
+.RI "void \fBread_configs_optional\fP (const char *optional_config, int when)"
+.br
+.ti -1c
 .RI "void \fBread_configs\fP (void)"
 .br
 .ti -1c
@@ -124,10 +130,10 @@
 .RI "void \fBsnmp_clean_persistent\fP (const char *type)"
 .br
 .ti -1c
-.RI "void \fBconfig_perror\fP (const char *string)"
+.RI "void \fBconfig_perror\fP (const char *str)"
 .br
 .ti -1c
-.RI "void \fBconfig_pwarn\fP (const char *string)"
+.RI "void \fBconfig_pwarn\fP (const char *str)"
 .br
 .ti -1c
 .RI "char * \fBskip_white\fP (char *ptr)"
@@ -241,7 +247,7 @@
 the next token in the configuration line. NULL if none left or if an unknown type. 
 .RE
 .PP
-Definition at line 1722 of file read_config.c.
+Definition at line 1794 of file read_config.c.
 .PP
 Referenced by netsnmp_read_data_callback().
 .SS "void read_config_store (const char * type, const char * line)"
@@ -260,7 +266,7 @@
 void 
 .RE
 .PP
-Definition at line 1181 of file read_config.c.
+Definition at line 1230 of file read_config.c.
 .PP
 References netsnmp_getenv(), and snmp_log().
 .PP
@@ -291,7 +297,7 @@
 .br
 \fIdataptr\fP contains the value to be stored, the supported pointers: (int *, u_int *, char **, oid **)
 .br
-\fIlen\fP is the length of the pre-allocated storeto buffer, not required for the asn integer, unsigned integer, and timeticks types.
+\fIlen\fP is the length of the value to be stored (not required for the asn integer, unsigned integer, and timeticks types)
 .RE
 .PP
 \fBReturns:\fP
@@ -299,7 +305,7 @@
 character pointer to the end of the line. NULL if an unknown type. 
 .RE
 .PP
-Definition at line 1850 of file read_config.c.
+Definition at line 1932 of file read_config.c.
 .SS "struct config_line* register_config_handler (const char * type_param, const char * token, void(* parser)(const char *, char *), void(* releaser)(void), const char * help)"
 .PP
 register_config_handler registers handlers for certain tokens specified in certain types of files. Allows a module writer use/register multiple configuration files based off of the type parameter. A module writer may want to set up multiple configuration files to separate out related tasks/variables or just for management of where to put tokens as the module or modules get more complex in regard to handling token registrations.
diff --git a/man/netsnmp_read_only.3 b/man/netsnmp_read_only.3
index 161cae3..8cb3c02 100644
--- a/man/netsnmp_read_only.3
+++ b/man/netsnmp_read_only.3
@@ -1,4 +1,4 @@
-.TH "read_only: make your handler read_only automatically" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "read_only: make your handler read_only automatically" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -27,13 +27,13 @@
 .PP 
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_read_only_handler (void)"
 .PP
-returns a read_only handler that can be injected into a given handler chain. Definition at line 32 of file read_only.c.
+returns a read_only handler that can be injected into a given handler chain. Definition at line 28 of file read_only.c.
 .PP
 References netsnmp_mib_handler_s::flags, netsnmp_create_handler(), and netsnmp_mib_handler.
 .PP
 Referenced by netsnmp_init_read_only_helper(), netsnmp_register_read_only_instance(), netsnmp_register_read_only_scalar(), and netsnmp_register_read_only_table_data().
 .SS "void netsnmp_init_read_only_helper (void)"
 .PP
-initializes the read_only helper which then registers a read_only handler as a run-time injectable handler for configuration file use. Definition at line 86 of file read_only.c.
+initializes the read_only helper which then registers a read_only handler as a run-time injectable handler for configuration file use. Definition at line 80 of file read_only.c.
 .PP
 References netsnmp_get_read_only_handler(), and netsnmp_register_handler_by_name().
diff --git a/man/netsnmp_row_merge.3 b/man/netsnmp_row_merge.3
index 65fd955..5341f0d 100644
--- a/man/netsnmp_row_merge.3
+++ b/man/netsnmp_row_merge.3
@@ -1,4 +1,4 @@
-.TH "row_merge: Calls sub handlers with request for one row at a time." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "row_merge: Calls sub handlers with request for one row at a time." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -17,6 +17,9 @@
 .ti -1c
 .RI "#define \fBROW_MERGE_DONE\fP   2"
 .br
+.ti -1c
+.RI "#define \fBROW_MERGE_HEAD\fP   3"
+.br
 .in -1c
 .SS "Functions"
 
@@ -30,6 +33,18 @@
 .br
 .RI "\fIfunctionally the same as calling \fBnetsnmp_register_handler()\fP but also injects a row_merge handler at the same time for you. \fP"
 .ti -1c
+.RI "netsnmp_row_merge_status * \fBnetsnmp_row_merge_status_get\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, int create_missing)"
+.br
+.RI "\fIretrieve row_merge_status \fP"
+.ti -1c
+.RI "int \fBnetsnmp_row_merge_status_first\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo)"
+.br
+.RI "\fIDetermine if this is the first row. \fP"
+.ti -1c
+.RI "int \fBnetsnmp_row_merge_status_last\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo)"
+.br
+.RI "\fIDetermine if this is the last row. \fP"
+.ti -1c
 .RI "int \fBnetsnmp_row_merge_helper_handler\fP (\fBnetsnmp_mib_handler\fP *handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
 .br
 .RI "\fIImplements the row_merge handler. \fP"
@@ -45,23 +60,40 @@
 .PP 
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_row_merge_handler (int prefix_len)"
 .PP
-returns a row_merge handler that can be injected into a given handler chain. Definition at line 31 of file row_merge.c.
+returns a row_merge handler that can be injected into a given handler chain. Definition at line 27 of file row_merge.c.
 .PP
 References netsnmp_mib_handler_s::myvoid, netsnmp_create_handler(), and netsnmp_mib_handler.
 .PP
 Referenced by netsnmp_init_row_merge(), and netsnmp_register_row_merge().
 .SS "void netsnmp_init_row_merge (void)"
 .PP
-initializes the row_merge helper which then registers a row_merge handler as a run-time injectable handler for configuration file use. Definition at line 200 of file row_merge.c.
+initializes the row_merge helper which then registers a row_merge handler as a run-time injectable handler for configuration file use. Definition at line 359 of file row_merge.c.
 .PP
 References netsnmp_get_row_merge_handler(), and netsnmp_register_handler_by_name().
 .SS "int netsnmp_register_row_merge (\fBnetsnmp_handler_registration\fP * reginfo)"
 .PP
-functionally the same as calling \fBnetsnmp_register_handler()\fP but also injects a row_merge handler at the same time for you. Definition at line 45 of file row_merge.c.
+functionally the same as calling \fBnetsnmp_register_handler()\fP but also injects a row_merge handler at the same time for you. Definition at line 41 of file row_merge.c.
 .PP
 References netsnmp_get_row_merge_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), netsnmp_register_handler(), and netsnmp_handler_registration_s::rootoid_len.
 .SS "int netsnmp_row_merge_helper_handler (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"
 .PP
-Implements the row_merge handler. Definition at line 58 of file row_merge.c.
+Implements the row_merge handler. Definition at line 153 of file row_merge.c.
 .PP
-References netsnmp_mib_handler_s::myvoid, variable_list::name, variable_list::name_length, netsnmp_call_next_handler(), netsnmp_handler_registration, netsnmp_mib_handler, netsnmp_request_info_s::next, netsnmp_request_info_s::processed, netsnmp_request_info_s::requestvb, netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, and snmp_oid_compare().
+References netsnmp_agent_request_info_s::mode, netsnmp_mib_handler_s::myvoid, variable_list::name, variable_list::name_length, netsnmp_call_next_handler(), netsnmp_handler_registration, netsnmp_mib_handler, netsnmp_row_merge_status_get(), netsnmp_request_info_s::next, netsnmp_request_info_s::requestvb, netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, SNMP_FREE, snmp_log(), and snmp_oid_compare().
+.SS "int netsnmp_row_merge_status_first (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo)"
+.PP
+Determine if this is the first row. returns 1 if this is the first row for this pass of the handler. Definition at line 109 of file row_merge.c.
+.PP
+References netsnmp_handler_registration, and netsnmp_row_merge_status_get().
+.SS "netsnmp_row_merge_status* netsnmp_row_merge_status_get (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, int create_missing)"
+.PP
+retrieve row_merge_status Definition at line 66 of file row_merge.c.
+.PP
+References netsnmp_create_data_list(), netsnmp_handler_registration, snmp_log(), and SNMP_MALLOC_TYPEDEF.
+.PP
+Referenced by netsnmp_row_merge_helper_handler(), netsnmp_row_merge_status_first(), and netsnmp_row_merge_status_last().
+.SS "int netsnmp_row_merge_status_last (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo)"
+.PP
+Determine if this is the last row. returns 1 if this is the last row for this pass of the handler. Definition at line 129 of file row_merge.c.
+.PP
+References netsnmp_handler_registration, and netsnmp_row_merge_status_get().
diff --git a/man/netsnmp_scalar.3 b/man/netsnmp_scalar.3
index cc4f95f..064e333 100644
--- a/man/netsnmp_scalar.3
+++ b/man/netsnmp_scalar.3
@@ -1,4 +1,4 @@
-.TH "scalar: process scalars easily." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "scalar: process scalars easily." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -42,7 +42,7 @@
 \fBnetsnmp_register_scalar\fP 
 .RE
 .PP
-Definition at line 51 of file scalar.c.
+Definition at line 47 of file scalar.c.
 .PP
 References netsnmp_create_handler().
 .PP
@@ -68,7 +68,7 @@
 \fBnetsnmp_get_scalar_handler\fP 
 .RE
 .PP
-Definition at line 114 of file scalar.c.
+Definition at line 110 of file scalar.c.
 .PP
 References netsnmp_get_instance_handler(), netsnmp_get_read_only_handler(), netsnmp_get_scalar_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), netsnmp_register_serialize(), netsnmp_handler_registration_s::rootoid, and netsnmp_handler_registration_s::rootoid_len.
 .SS "int netsnmp_register_scalar (\fBnetsnmp_handler_registration\fP * reginfo)"
@@ -94,6 +94,6 @@
 \fBnetsnmp_get_scalar_handler\fP 
 .RE
 .PP
-Definition at line 79 of file scalar.c.
+Definition at line 75 of file scalar.c.
 .PP
 References netsnmp_get_instance_handler(), netsnmp_get_scalar_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), netsnmp_register_serialize(), netsnmp_handler_registration_s::rootoid, and netsnmp_handler_registration_s::rootoid_len.
diff --git a/man/netsnmp_scalar_group_group.3 b/man/netsnmp_scalar_group_group.3
index aacd011..13ec522 100644
--- a/man/netsnmp_scalar_group_group.3
+++ b/man/netsnmp_scalar_group_group.3
@@ -1,4 +1,4 @@
-.TH "scalar_group: process groups of scalars." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "scalar_group: process groups of scalars." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/netsnmp_serialize.3 b/man/netsnmp_serialize.3
index ad739b9..f75f9bc 100644
--- a/man/netsnmp_serialize.3
+++ b/man/netsnmp_serialize.3
@@ -1,4 +1,4 @@
-.TH "serialize: Calls sub handlers one request at a time." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "serialize: Calls sub handlers one request at a time." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -32,25 +32,25 @@
 .PP 
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_serialize_handler (void)"
 .PP
-returns a serialize handler that can be injected into a given handler chain. Definition at line 34 of file serialize.c.
+returns a serialize handler that can be injected into a given handler chain. Definition at line 30 of file serialize.c.
 .PP
 References netsnmp_create_handler().
 .PP
 Referenced by netsnmp_init_serialize(), and netsnmp_register_serialize().
 .SS "void netsnmp_init_serialize (void)"
 .PP
-initializes the serialize helper which then registers a serialize handler as a run-time injectable handler for configuration file use. Definition at line 96 of file serialize.c.
+initializes the serialize helper which then registers a serialize handler as a run-time injectable handler for configuration file use. Definition at line 92 of file serialize.c.
 .PP
 References netsnmp_get_serialize_handler(), and netsnmp_register_handler_by_name().
 .SS "int netsnmp_register_serialize (\fBnetsnmp_handler_registration\fP * reginfo)"
 .PP
-functionally the same as calling \fBnetsnmp_register_handler()\fP but also injects a serialize handler at the same time for you. Definition at line 43 of file serialize.c.
+functionally the same as calling \fBnetsnmp_register_handler()\fP but also injects a serialize handler at the same time for you. Definition at line 39 of file serialize.c.
 .PP
 References netsnmp_get_serialize_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), and netsnmp_register_handler().
 .PP
 Referenced by netsnmp_register_instance(), netsnmp_register_read_only_instance(), netsnmp_register_read_only_scalar(), and netsnmp_register_scalar().
 .SS "int netsnmp_serialize_helper_handler (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"
 .PP
-Implements the serial handler. Definition at line 51 of file serialize.c.
+Implements the serial handler. Definition at line 47 of file serialize.c.
 .PP
 References netsnmp_call_next_handler(), netsnmp_handler_registration, netsnmp_mib_handler, and netsnmp_request_info_s::next.
diff --git a/man/netsnmp_snmp_agent.3 b/man/netsnmp_snmp_agent.3
index 76064e4..07f0577 100644
--- a/man/netsnmp_snmp_agent.3
+++ b/man/netsnmp_snmp_agent.3
@@ -1,4 +1,4 @@
-.TH "net-snmp agent related processing" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "net-snmp agent related processing" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -192,6 +192,9 @@
 .RI "void \fBnetsnmp_delete_subtree_cache\fP (netsnmp_agent_session *asp)"
 .br
 .ti -1c
+.RI "int \fBnetsnmp_check_all_requests_error\fP (netsnmp_agent_session *asp, int look_for_specific)"
+.br
+.ti -1c
 .RI "int \fBnetsnmp_check_requests_error\fP (\fBnetsnmp_request_info\fP *requests)"
 .br
 .ti -1c
@@ -273,6 +276,12 @@
 
 .in +1c
 .ti -1c
+.RI "oid \fBversion_sysoid\fP [] = { SYSTEM_MIB }"
+.br
+.ti -1c
+.RI "int \fBversion_sysoid_len\fP = OID_LENGTH(version_sysoid)"
+.br
+.ti -1c
 .RI "int \fBlog_addresses\fP = 0"
 .br
 .ti -1c
@@ -295,7 +304,7 @@
 .PP 
 .SS "NETSNMP_STATIC_INLINE int _request_set_error (\fBnetsnmp_request_info\fP * request, int mode, int error_value)"
 .PP
-set error for a request Definition at line 3240 of file snmp_agent.c.
+set error for a request Definition at line 3302 of file snmp_agent.c.
 .PP
 References netsnmp_request_info_s::delegated, netsnmp_request_info_s::processed, netsnmp_request_info_s::requestvb, snmp_log(), netsnmp_request_info_s::status, and variable_list::type.
 .PP
@@ -314,19 +323,19 @@
 Returns a positive integer if packets were processed, and -1 if an error was found. 
 .RE
 .PP
-Definition at line 557 of file snmp_agent.c.
+Definition at line 559 of file snmp_agent.c.
 .PP
 References snmp_log().
 .SS "int check_getnext_results (netsnmp_agent_session * asp)"
 .PP
-returns 1 if there are valid GETNEXT requests left. Returns 0 if not. Definition at line 2656 of file snmp_agent.c.
+returns 1 if there are valid GETNEXT requests left. Returns 0 if not. Definition at line 2715 of file snmp_agent.c.
 .PP
 References netsnmp_request_info_s::inclusive, netsnmp_request_info_s::index, variable_list::name, variable_list::name_length, netsnmp_request_info_s::next, netsnmp_request_info_s::range_end, netsnmp_request_info_s::range_end_len, netsnmp_request_info_s::repeat, netsnmp_request_info_s::requestvb, snmp_oid_compare(), snmp_set_var_typed_value(), and variable_list::type.
 .PP
 Referenced by handle_getnext_loop().
 .SS "int handle_getnext_loop (netsnmp_agent_session * asp)"
 .PP
-repeatedly calls getnext handlers looking for an answer till all requests are satisified. It's expected that one pass has been made before entering this function Definition at line 2761 of file snmp_agent.c.
+repeatedly calls getnext handlers looking for an answer till all requests are satisified. It's expected that one pass has been made before entering this function Definition at line 2820 of file snmp_agent.c.
 .PP
 References check_getnext_results(), and variable_list::next_variable.
 .PP
@@ -398,24 +407,24 @@
 Returns error_value under all conditions. 
 .RE
 .PP
-Definition at line 3055 of file snmp_agent.c.
+Definition at line 3114 of file snmp_agent.c.
 .PP
 References handle_getnext_loop(), variable_list::next_variable, snmp_set_var_typed_value(), and variable_list::type.
 .SS "int handle_snmp_packet (int op, \fBnetsnmp_session\fP * session, int reqid, \fBnetsnmp_pdu\fP * pdu, void * magic)"
 .PP
-handles an incoming SNMP packet into the agent Definition at line 1703 of file snmp_agent.c.
+handles an incoming SNMP packet into the agent Definition at line 1731 of file snmp_agent.c.
 .PP
 References snmp_pdu::command, snmp_session::s_snmp_errno, send_easy_trap(), and snmp_pdu::version.
 .SS "\fBnetsnmp_request_info\fP* netsnmp_add_varbind_to_cache (netsnmp_agent_session * asp, int vbcount, \fBnetsnmp_variable_list\fP * varbind_ptr, netsnmp_subtree * tp)"
 .PP
-Definition at line 1804 of file snmp_agent.c.
+Definition at line 1832 of file snmp_agent.c.
 .PP
 References netsnmp_request_info_s::agent_req_info, netsnmp_request_info_s::delegated, netsnmp_request_info_s::inclusive, netsnmp_request_info_s::index, variable_list::name, variable_list::name_length, netsnmp_acm_check_subtree(), netsnmp_free_request_data_sets(), netsnmp_oid_find_prefix(), netsnmp_request_info_s::next, netsnmp_request_info_s::parent_data, netsnmp_request_info_s::prev, netsnmp_request_info_s::processed, netsnmp_request_info_s::range_end, netsnmp_request_info_s::range_end_len, netsnmp_request_info_s::requestvb, netsnmp_request_info_s::requestvb_start, netsnmp_request_info_s::status, netsnmp_request_info_s::subtree, and variable_list::type.
 .SS "int netsnmp_check_transaction_id (int transaction_id)"
 .PP
 Decide if the requested transaction_id is still being processed within the agent. This is used to validate whether a delayed cache (containing possibly freed pointers) is still usable.
 .PP
-returns SNMPERR_SUCCESS if it's still valid, or SNMPERR_GENERR if not. Definition at line 2566 of file snmp_agent.c.
+returns SNMPERR_SUCCESS if it's still valid, or SNMPERR_GENERR if not. Definition at line 2625 of file snmp_agent.c.
 .PP
 Referenced by netsnmp_handler_check_cache().
 .SS "int netsnmp_request_set_error (\fBnetsnmp_request_info\fP * request, int error_value)"
@@ -427,7 +436,7 @@
 \fIerror_value\fP error value for request 
 .RE
 .PP
-Definition at line 3308 of file snmp_agent.c.
+Definition at line 3370 of file snmp_agent.c.
 .PP
 References _request_set_error(), netsnmp_request_info_s::agent_req_info, and netsnmp_agent_request_info_s::mode.
 .SS "NETSNMP_INLINE int netsnmp_request_set_error_all (\fBnetsnmp_request_info\fP * requests, int error)"
@@ -444,11 +453,11 @@
 SNMPERR_SUCCESS, or an error code 
 .RE
 .PP
-paranoid sanity checks Definition at line 3323 of file snmp_agent.c.
+paranoid sanity checks Definition at line 3385 of file snmp_agent.c.
 .PP
 References _request_set_error(), netsnmp_request_info_s::agent_req_info, netsnmp_agent_request_info_s::mode, netsnmp_request_info_s::next, and snmp_log().
 .PP
-Referenced by netsnmp_set_all_requests_error().
+Referenced by netsnmp_cache_helper_handler(), netsnmp_multiplexer_helper_handler(), and netsnmp_set_all_requests_error().
 .SS "int netsnmp_set_all_requests_error (\fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests, int error_value)"
 .PP
 set error for all request \fBDeprecated\fP
@@ -470,11 +479,9 @@
 error_value 
 .RE
 .PP
-Definition at line 3497 of file snmp_agent.c.
+Definition at line 3559 of file snmp_agent.c.
 .PP
 References netsnmp_request_set_error_all().
-.PP
-Referenced by netsnmp_cache_helper_handler(), and netsnmp_multiplexer_helper_handler().
 .SS "int netsnmp_set_mode_request_error (int mode, \fBnetsnmp_request_info\fP * request, int error_value)"
 .PP
 deprecated, use netsnmp_request_set_error instead \fBDeprecated\fP
@@ -496,7 +503,7 @@
 error_value 
 .RE
 .PP
-Definition at line 3481 of file snmp_agent.c.
+Definition at line 3543 of file snmp_agent.c.
 .PP
 References _request_set_error().
 .SS "int netsnmp_set_request_error (\fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * request, int error_value)"
@@ -526,13 +533,13 @@
 .in +1c
 \fBdelayed_instance.c\fP.
 .PP
-Definition at line 3462 of file snmp_agent.c.
+Definition at line 3524 of file snmp_agent.c.
 .PP
 References _request_set_error(), and netsnmp_agent_request_info_s::mode.
 .PP
-Referenced by netsnmp_old_api_helper(), netsnmp_table_data_helper_handler(), netsnmp_table_data_set_helper_handler(), and table_helper_handler().
+Referenced by _data_lookup(), netsnmp_instance_num_file_handler(), netsnmp_old_api_helper(), and table_helper_handler().
 .SS "int netsnmp_wrap_up_request (netsnmp_agent_session * asp, int status)"
 .PP
-Definition at line 1471 of file snmp_agent.c.
+Definition at line 1482 of file snmp_agent.c.
 .PP
-References variable_list::next_variable, and variable_list::type.
+References variable_list::name, variable_list::name_length, variable_list::next_variable, SNMP_FREE, snmp_log(), and variable_list::type.
diff --git a/man/netsnmp_snmp_alarm.3 b/man/netsnmp_snmp_alarm.3
index eea206c..2fa816d 100644
--- a/man/netsnmp_snmp_alarm.3
+++ b/man/netsnmp_snmp_alarm.3
@@ -1,4 +1,4 @@
-.TH "generic library based alarm timers for various parts of an application" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "generic library based alarm timers for various parts of an application" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
diff --git a/man/netsnmp_snmp_client.3 b/man/netsnmp_snmp_client.3
index 049b0ad..9e945f2 100644
--- a/man/netsnmp_snmp_client.3
+++ b/man/netsnmp_snmp_client.3
@@ -1,4 +1,4 @@
-.TH "various PDU processing routines" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "various PDU processing routines" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -73,6 +73,9 @@
 .br
 .RI "\fIsnmp_set_var_typed_value is used to set data into the netsnmp_variable_list structure. \fP"
 .ti -1c
+.RI "int \fBsnmp_set_var_typed_integer\fP (\fBnetsnmp_variable_list\fP *newvar, u_char type, long val)"
+.br
+.ti -1c
 .RI "int \fBcount_varbinds\fP (\fBnetsnmp_variable_list\fP *var_ptr)"
 .br
 .ti -1c
@@ -82,7 +85,10 @@
 .RI "\fBnetsnmp_variable_list\fP * \fBfind_varbind_of_type\fP (\fBnetsnmp_variable_list\fP *var_ptr, u_char type)"
 .br
 .ti -1c
-.RI "int \fBsnmp_set_var_value\fP (\fBnetsnmp_variable_list\fP *newvar, const u_char *val_str, size_t val_len)"
+.RI "\fBnetsnmp_variable_list\fP * \fBfind_varbind_in_list\fP (\fBnetsnmp_variable_list\fP *vblist, oid *name, size_t len)"
+.br
+.ti -1c
+.RI "int \fBsnmp_set_var_value\fP (\fBnetsnmp_variable_list\fP *vars, const u_char *value, size_t len)"
 .br
 .ti -1c
 .RI "void \fBsnmp_replace_var_types\fP (\fBnetsnmp_variable_list\fP *vbl, u_char old_type, u_char new_type)"
@@ -102,6 +108,24 @@
 .ti -1c
 .RI "const char * \fBsnmp_errstring\fP (int errstat)"
 .br
+.ti -1c
+.RI "void \fBnetsnmp_query_set_default_session\fP (\fBnetsnmp_session\fP *sess)"
+.br
+.ti -1c
+.RI "\fBnetsnmp_session\fP * \fBnetsnmp_query_get_default_session\fP (void)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_query_get\fP (\fBnetsnmp_variable_list\fP *list, \fBnetsnmp_session\fP *session)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_query_getnext\fP (\fBnetsnmp_variable_list\fP *list, \fBnetsnmp_session\fP *session)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_query_set\fP (\fBnetsnmp_variable_list\fP *list, \fBnetsnmp_session\fP *session)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_query_walk\fP (\fBnetsnmp_variable_list\fP *list, \fBnetsnmp_session\fP *session)"
+.br
 .in -1c
 .SS "Variables"
 
@@ -138,11 +162,11 @@
 .in +1c
 \fBdelayed_instance.c\fP.
 .PP
-Definition at line 671 of file snmp_client.c.
+Definition at line 686 of file snmp_client.c.
 .PP
 References variable_list::type.
 .PP
-Referenced by check_getnext_results(), handle_pdu(), netsnmp_check_getnext_reply(), netsnmp_old_api_helper(), netsnmp_table_build_result(), and netsnmp_table_data_build_result().
+Referenced by check_getnext_results(), handle_pdu(), netsnmp_check_getnext_reply(), netsnmp_instance_num_file_handler(), netsnmp_old_api_helper(), and netsnmp_table_build_result().
 .SH "Variable Documentation"
 .PP 
 .SS "const char* error_string[19]"
@@ -171,4 +195,4 @@
 }
 .fi
 .PP
-Definition at line 927 of file snmp_client.c.
+Definition at line 1121 of file snmp_client.c.
diff --git a/man/netsnmp_snmp_logging.3 b/man/netsnmp_snmp_logging.3
index 84b64bf..1fef002 100644
--- a/man/netsnmp_snmp_logging.3
+++ b/man/netsnmp_snmp_logging.3
@@ -1,4 +1,4 @@
-.TH "generic logging for net-snmp" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "generic logging for net-snmp" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -50,6 +50,9 @@
 
 .in +1c
 .ti -1c
+.RI "void \fBnetsnmp_enable_filelog\fP (netsnmp_log_handler *logh, int dont_zero_log)"
+.br
+.ti -1c
 .RI "int \fBvsnprintf\fP (char *str, size_t count, const char *fmt, va_list arg)"
 .br
 .ti -1c
@@ -65,7 +68,7 @@
 .RI "int \fBsnmp_log_options\fP (char *optarg, int argc, char *const *argv)"
 .br
 .ti -1c
-.RI "char * \fBsnmp_log_syslogname\fP (char *pstr)"
+.RI "char * \fBsnmp_log_syslogname\fP (const char *pstr)"
 .br
 .ti -1c
 .RI "void \fBsnmp_log_options_usage\fP (const char *lead, FILE *outf)"
@@ -87,6 +90,9 @@
 .RI "void \fBsnmp_disable_filelog\fP (void)"
 .br
 .ti -1c
+.RI "int \fBsnmp_stderrlog_status\fP (void)"
+.br
+.ti -1c
 .RI "void \fBsnmp_disable_stderrlog\fP (void)"
 .br
 .ti -1c
@@ -96,15 +102,15 @@
 .RI "void \fBsnmp_disable_log\fP (void)"
 .br
 .ti -1c
+.RI "void \fBnetsnmp_logging_restart\fP (void)"
+.br
+.ti -1c
 .RI "void \fBsnmp_enable_syslog\fP (void)"
 .br
 .ti -1c
 .RI "void \fBsnmp_enable_syslog_ident\fP (const char *ident, const int facility)"
 .br
 .ti -1c
-.RI "void \fBnetsnmp_enable_filelog\fP (netsnmp_log_handler *logh, int dont_zero_log)"
-.br
-.ti -1c
 .RI "void \fBsnmp_enable_filelog\fP (const char *logfilename, int dont_zero_log)"
 .br
 .ti -1c
@@ -132,22 +138,22 @@
 .RI "int \fBnetsnmp_remove_loghandler\fP (netsnmp_log_handler *logh)"
 .br
 .ti -1c
-.RI "int \fBlog_handler_stdouterr\fP (netsnmp_log_handler *logh, int pri, const char *string)"
+.RI "int \fBlog_handler_stdouterr\fP (netsnmp_log_handler *logh, int pri, const char *str)"
 .br
 .ti -1c
-.RI "int \fBlog_handler_syslog\fP (netsnmp_log_handler *logh, int pri, const char *string)"
+.RI "int \fBlog_handler_syslog\fP (netsnmp_log_handler *logh, int pri, const char *str)"
 .br
 .ti -1c
-.RI "int \fBlog_handler_file\fP (netsnmp_log_handler *logh, int pri, const char *string)"
+.RI "int \fBlog_handler_file\fP (netsnmp_log_handler *logh, int pri, const char *str)"
 .br
 .ti -1c
-.RI "int \fBlog_handler_callback\fP (netsnmp_log_handler *logh, int pri, const char *string)"
+.RI "int \fBlog_handler_callback\fP (netsnmp_log_handler *logh, int pri, const char *str)"
 .br
 .ti -1c
-.RI "int \fBlog_handler_null\fP (netsnmp_log_handler *logh, int pri, const char *string)"
+.RI "int \fBlog_handler_null\fP (netsnmp_log_handler *logh, int pri, const char *str)"
 .br
 .ti -1c
-.RI "void \fBsnmp_log_string\fP (int priority, const char *string)"
+.RI "void \fBsnmp_log_string\fP (int priority, const char *str)"
 .br
 .ti -1c
 .RI "int \fBsnmp_vlog\fP (int priority, const char *format, va_list ap)"
@@ -167,7 +173,7 @@
 
 .in +1c
 .ti -1c
-.RI "netsnmp_log_handler * \fBlogh_head\fP"
+.RI "netsnmp_log_handler * \fBlogh_head\fP = NULL"
 .br
 .ti -1c
 .RI "netsnmp_log_handler * \fBlogh_priorities\fP [LOG_DEBUG+1]"
@@ -175,6 +181,9 @@
 .in -1c
 .SH "Function Documentation"
 .PP 
+.SS "void netsnmp_logging_restart (void)"
+.PP
+Definition at line 618 of file snmp_logging.c.
 .SS "int snmp_get_do_logging (void)"
 .PP
 This snmp logging function allows variable argument list given the specified priority, format and a populated va_list structure. The default logfile this function writes to is /var/log/snmpd.log.
@@ -215,7 +224,7 @@
 \fBsnmp_log\fP 
 .RE
 .PP
-Definition at line 465 of file snmp_logging.c.
+Definition at line 475 of file snmp_logging.c.
 .SS "int snmp_log (va_alist)"
 .PP
 This snmp logging function allows variable argument list given the specified format and priority. Calls the snmp_vlog function. The default logfile this function writes to is /var/log/snmpd.log.
@@ -231,6 +240,6 @@
 .in +1c
 \fBdelayed_instance.c\fP.
 .PP
-Definition at line 1139 of file snmp_logging.c.
+Definition at line 1204 of file snmp_logging.c.
 .PP
-Referenced by _request_set_error(), agent_check_and_process(), init_agent(), netsnmp_baby_steps_handler_get(), netsnmp_cache_create(), netsnmp_cache_helper_handler(), netsnmp_cache_timer_start(), netsnmp_cache_timer_stop(), netsnmp_call_handler(), netsnmp_call_next_handler(), netsnmp_call_next_handler_one_request(), netsnmp_container_table_handler_get(), netsnmp_data_list_add_data(), netsnmp_data_list_add_node(), netsnmp_get_multiplexer_handler(), netsnmp_get_table_data_handler(), netsnmp_get_table_data_set_handler(), netsnmp_get_table_handler(), netsnmp_inject_handler_before(), netsnmp_mark_row_column_writable(), netsnmp_multiplexer_helper_handler(), netsnmp_read_data_callback(), netsnmp_register_handler(), netsnmp_register_handler_nocallback(), netsnmp_register_save_list(), netsnmp_request_set_error_all(), netsnmp_save_all_data_callback(), netsnmp_set_row_column(), netsnmp_table_container_register(), netsnmp_table_data_add_row(), netsnmp_table_data_set_helper_handler(), netsnmp_table_iterator_helper_handler(), netsnmp_table_set_add_default_row(), read_config_store(), snmp_call_callbacks(), snmp_unregister_callback(), and table_helper_handler().
+Referenced by _request_set_error(), _sess_read(), agent_check_and_process(), init_agent(), netsnmp_baby_steps_handler_get(), netsnmp_cache_create(), netsnmp_cache_helper_handler(), netsnmp_cache_timer_start(), netsnmp_cache_timer_stop(), netsnmp_call_handler(), netsnmp_call_next_handler(), netsnmp_call_next_handler_one_request(), netsnmp_container_table_handler_get(), netsnmp_data_list_add_data(), netsnmp_data_list_add_node(), netsnmp_get_multiplexer_handler(), netsnmp_get_table_data_handler(), netsnmp_get_table_data_set_handler(), netsnmp_get_table_handler(), netsnmp_get_tdata_handler(), netsnmp_inject_handler_before(), netsnmp_mark_row_column_writable(), netsnmp_multiplexer_helper_handler(), netsnmp_read_data_callback(), netsnmp_register_handler(), netsnmp_register_handler_nocallback(), netsnmp_register_save_list(), netsnmp_request_set_error_all(), netsnmp_row_merge_helper_handler(), netsnmp_row_merge_status_get(), netsnmp_save_all_data_callback(), netsnmp_set_row_column(), netsnmp_table_container_register(), netsnmp_table_data_add_row(), netsnmp_table_set_add_default_row(), netsnmp_tdata_add_row(), netsnmp_wrap_up_request(), read_config_store(), snmp_call_callbacks(), snmp_unregister_callback(), and table_helper_handler().
diff --git a/man/netsnmp_snmp_pdu.3 b/man/netsnmp_snmp_pdu.3
index 5fd248d..0984057 100644
--- a/man/netsnmp_snmp_pdu.3
+++ b/man/netsnmp_snmp_pdu.3
@@ -1,4 +1,4 @@
-.TH "snmp_pdu" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "snmp_pdu" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -188,6 +188,8 @@
 .SS "long \fBsnmp_pdu::errstat\fP"
 .PP
 Error status (non_repeaters in GetBulk). Definition at line 93 of file snmp_api.h.
+.PP
+Referenced by snmpv3_engineID_probe().
 .SS "long \fBsnmp_pdu::msgid\fP"
 .PP
 Message id for V3 messages note: incremented for each retry. Definition at line 87 of file snmp_api.h.
diff --git a/man/netsnmp_snmp_session.3 b/man/netsnmp_snmp_session.3
index ce2e23b..f4a987d 100644
--- a/man/netsnmp_snmp_session.3
+++ b/man/netsnmp_snmp_session.3
@@ -1,4 +1,4 @@
-.TH "snmp_session" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "snmp_session" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -191,6 +191,10 @@
 .br
 .RI "\fInoAuthNoPriv, authNoPriv, authPriv \fP"
 .ti -1c
+.RI "char * \fBparamName\fP"
+.br
+.RI "\fItarget param name \fP"
+.ti -1c
 .RI "void * \fBsecurityInfo\fP"
 .br
 .RI "\fIsecurity module specific \fP"
@@ -210,9 +214,13 @@
 .SS "netsnmp_callback \fBsnmp_session::callback\fP"
 .PP
 Function to interpret incoming data. Definition at line 214 of file snmp_api.h.
+.PP
+Referenced by _sess_read().
 .SS "void* \fBsnmp_session::callback_magic\fP"
 .PP
 Pointer to data that the callback function may consider important. Definition at line 218 of file snmp_api.h.
+.PP
+Referenced by _sess_read().
 .SS "u_char* \fBsnmp_session::community\fP"
 .PP
 community for outgoing requests. Definition at line 230 of file snmp_api.h.
@@ -234,9 +242,13 @@
 .SS "u_int \fBsnmp_session::engineBoots\fP"
 .PP
 initial engineBoots for remote engine Definition at line 248 of file snmp_api.h.
+.PP
+Referenced by snmpv3_engineID_probe().
 .SS "u_int \fBsnmp_session::engineTime\fP"
 .PP
 initial engineTime for remote engine Definition at line 250 of file snmp_api.h.
+.PP
+Referenced by snmpv3_engineID_probe().
 .SS "u_char \fBsnmp_session::isAuthoritative\fP"
 .PP
 are we the authoritative engine? Definition at line 242 of file snmp_api.h.
@@ -248,7 +260,10 @@
 My Domain name or dotted IP address, 0 for default. Definition at line 206 of file snmp_api.h.
 .SS "void* \fBsnmp_session::myvoid\fP"
 .PP
-use as you want data Definition at line 303 of file snmp_api.h.
+use as you want data Definition at line 305 of file snmp_api.h.
+.SS "char* \fBsnmp_session::paramName\fP"
+.PP
+target param name Definition at line 295 of file snmp_api.h.
 .SS "char* \fBsnmp_session::peername\fP"
 .PP
 Domain name or dotted IP address of default peer. Definition at line 202 of file snmp_api.h.
@@ -264,11 +279,13 @@
 .SS "int \fBsnmp_session::s_errno\fP"
 .PP
 copy of system errno Definition at line 220 of file snmp_api.h.
+.PP
+Referenced by _sess_read().
 .SS "int \fBsnmp_session::s_snmp_errno\fP"
 .PP
 copy of library errno Definition at line 222 of file snmp_api.h.
 .PP
-Referenced by handle_snmp_packet().
+Referenced by _sess_read(), handle_snmp_packet(), and snmpv3_engineID_probe().
 .SS "u_char \fBsnmp_session::securityAuthKey\fP[USM_AUTH_KU_LEN]"
 .PP
 Ku for auth protocol XXX. Definition at line 269 of file snmp_api.h.
@@ -290,12 +307,16 @@
 .SS "u_char* \fBsnmp_session::securityEngineID\fP"
 .PP
 authoritative snmpEngineID Definition at line 256 of file snmp_api.h.
+.PP
+Referenced by snmpv3_engineID_probe().
 .SS "size_t \fBsnmp_session::securityEngineIDLen\fP"
 .PP
 Length of contextEngineID. Definition at line 258 of file snmp_api.h.
+.PP
+Referenced by snmpv3_engineID_probe().
 .SS "void* \fBsnmp_session::securityInfo\fP"
 .PP
-security module specific Definition at line 298 of file snmp_api.h.
+security module specific Definition at line 300 of file snmp_api.h.
 .SS "int \fBsnmp_session::securityLevel\fP"
 .PP
 noAuthNoPriv, authNoPriv, authPriv Definition at line 293 of file snmp_api.h.
@@ -338,6 +359,8 @@
 .SS "long \fBsnmp_session::version\fP"
 .PP
 snmp version Definition at line 192 of file snmp_api.h.
+.PP
+Referenced by snmpv3_engineID_probe().
 
 .SH "Author"
 .PP 
diff --git a/man/netsnmp_stash_cache.3 b/man/netsnmp_stash_cache.3
index d3c0880..8a5c0d7 100644
--- a/man/netsnmp_stash_cache.3
+++ b/man/netsnmp_stash_cache.3
@@ -1,4 +1,4 @@
-.TH "stash_cache: automatically caches data for certain handlers." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "stash_cache: automatically caches data for certain handlers." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -12,9 +12,21 @@
 .RI "netsnmp_stash_cache_info * \fBnetsnmp_get_new_stash_cache\fP (void)"
 .br
 .ti -1c
+.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_timed_bare_stash_cache_handler\fP (int timeout, oid *rootoid, size_t rootoid_len)"
+.br
+.RI "\fIreturns a stash_cache handler that can be injected into a given handler chain (with the specified timeout and root OID values), but *only* if that handler chain explicitly supports stash cache processing. \fP"
+.ti -1c
+.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_bare_stash_cache_handler\fP (void)"
+.br
+.RI "\fIreturns a single stash_cache handler that can be injected into a given handler chain (with a fixed timeout), but *only* if that handler chain explicitly supports stash cache processing. \fP"
+.ti -1c
 .RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_stash_cache_handler\fP (void)"
 .br
-.RI "\fIreturns a stash_cache handler that can be injected into a given handler chain. \fP"
+.RI "\fIreturns a stash_cache handler sub-chain that can be injected into a given (arbitrary) handler chain, using a fixed cache timeout. \fP"
+.ti -1c
+.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_timed_stash_cache_handler\fP (int timeout, oid *rootoid, size_t rootoid_len)"
+.br
+.RI "\fIreturns a stash_cache handler sub-chain that can be injected into a given (arbitrary) handler chain, using a configurable cache timeout. \fP"
 .ti -1c
 .RI "netsnmp_oid_stash_node ** \fBnetsnmp_extract_stash_cache\fP (\fBnetsnmp_agent_request_info\fP *reqinfo)"
 .br
@@ -23,10 +35,13 @@
 .RI "int \fBnetsnmp_stash_cache_helper\fP (\fBnetsnmp_mib_handler\fP *handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
 .br
 .ti -1c
-.RI "int \fBnetsnmp_stash_cache_update\fP (\fBnetsnmp_mib_handler\fP *handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests, netsnmp_stash_cache_info *cinfo)"
+.RI "int \fB_netsnmp_stash_cache_load\fP (netsnmp_cache *cache, void *magic)"
 .br
 .RI "\fIupdates a given cache depending on whether it needs to or not. \fP"
 .ti -1c
+.RI "void \fB_netsnmp_stash_cache_free\fP (netsnmp_cache *cache, void *magic)"
+.br
+.ti -1c
 .RI "void \fBnetsnmp_init_stash_cache_helper\fP (void)"
 .br
 .RI "\fIinitializes the stash_cache helper which then registers a stash_cache handler as a run-time injectable handler for configuration file use. \fP"
@@ -36,27 +51,44 @@
 This handler caches data in an optimized way which may aleviate the need for the lower level handlers to perform as much optimization. Specifically, somewhere in the lower level handlers must be a handler that supports the MODE_GET_STASH operation. Note that the table_iterator helper supports this. 
 .SH "Function Documentation"
 .PP 
+.SS "int _netsnmp_stash_cache_load (netsnmp_cache * cache, void * magic)"
+.PP
+updates a given cache depending on whether it needs to or not. Definition at line 188 of file stash_cache.c.
+.PP
+References netsnmp_agent_request_info_s::mode, netsnmp_call_next_handler(), netsnmp_create_data_list(), netsnmp_handler_registration, netsnmp_mib_handler, and netsnmp_mib_handler_s::next.
 .SS "netsnmp_oid_stash_node** netsnmp_extract_stash_cache (\fBnetsnmp_agent_request_info\fP * reqinfo)"
 .PP
-extracts a pointer to the stash_cache info from the reqinfo structure. Definition at line 64 of file stash_cache.c.
+extracts a pointer to the stash_cache info from the reqinfo structure. Definition at line 110 of file stash_cache.c.
+.SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_bare_stash_cache_handler (void)"
 .PP
-Referenced by netsnmp_table_iterator_helper_handler().
+returns a single stash_cache handler that can be injected into a given handler chain (with a fixed timeout), but *only* if that handler chain explicitly supports stash cache processing. Definition at line 76 of file stash_cache.c.
+.PP
+References netsnmp_get_timed_bare_stash_cache_handler().
+.PP
+Referenced by netsnmp_get_stash_cache_handler().
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_stash_cache_handler (void)"
 .PP
-returns a stash_cache handler that can be injected into a given handler chain. Definition at line 42 of file stash_cache.c.
+returns a stash_cache handler sub-chain that can be injected into a given (arbitrary) handler chain, using a fixed cache timeout. Definition at line 85 of file stash_cache.c.
 .PP
-References netsnmp_mib_handler_s::myvoid, netsnmp_create_handler(), and netsnmp_mib_handler.
+References netsnmp_get_bare_stash_cache_handler(), netsnmp_get_stash_to_next_handler(), netsnmp_mib_handler, and netsnmp_mib_handler_s::next.
 .PP
 Referenced by netsnmp_init_stash_cache_helper().
+.SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_timed_bare_stash_cache_handler (int timeout, oid * rootoid, size_t rootoid_len)"
+.PP
+returns a stash_cache handler that can be injected into a given handler chain (with the specified timeout and root OID values), but *only* if that handler chain explicitly supports stash cache processing. Definition at line 43 of file stash_cache.c.
+.PP
+References netsnmp_mib_handler_s::myvoid, netsnmp_cache_create(), netsnmp_cache_handler_get(), netsnmp_create_handler(), netsnmp_mib_handler, and netsnmp_mib_handler_s::next.
+.PP
+Referenced by netsnmp_get_bare_stash_cache_handler(), and netsnmp_get_timed_stash_cache_handler().
+.SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_timed_stash_cache_handler (int timeout, oid * rootoid, size_t rootoid_len)"
+.PP
+returns a stash_cache handler sub-chain that can be injected into a given (arbitrary) handler chain, using a configurable cache timeout. Definition at line 98 of file stash_cache.c.
+.PP
+References netsnmp_get_stash_to_next_handler(), netsnmp_get_timed_bare_stash_cache_handler(), netsnmp_mib_handler, and netsnmp_mib_handler_s::next.
 .SS "void netsnmp_init_stash_cache_helper (void)"
 .PP
-initializes the stash_cache helper which then registers a stash_cache handler as a run-time injectable handler for configuration file use. Definition at line 188 of file stash_cache.c.
+initializes the stash_cache helper which then registers a stash_cache handler as a run-time injectable handler for configuration file use. Definition at line 231 of file stash_cache.c.
 .PP
 References netsnmp_get_stash_cache_handler(), and netsnmp_register_handler_by_name().
 .PP
 Referenced by netsnmp_init_helpers().
-.SS "int netsnmp_stash_cache_update (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests, netsnmp_stash_cache_info * cinfo)"
-.PP
-updates a given cache depending on whether it needs to or not. Definition at line 143 of file stash_cache.c.
-.PP
-References atime_newMarker(), atime_ready(), atime_setMarker(), netsnmp_agent_request_info_s::mode, netsnmp_call_next_handler(), netsnmp_create_data_list(), netsnmp_handler_registration, netsnmp_mib_handler, and netsnmp_oid_stash_free().
diff --git a/man/netsnmp_table.3 b/man/netsnmp_table.3
index b508897..990c5e9 100644
--- a/man/netsnmp_table.3
+++ b/man/netsnmp_table.3
@@ -1,4 +1,4 @@
-.TH "table: Helps you implement a table." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "table: Helps you implement a table." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -25,7 +25,14 @@
 .ti -1c
 .RI "group\fBtable_data: Helps you implement a table with datamatted storage.\fP"
 .br
-.RI "\fIThis 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. \fP"
+.RI "\fIThis helper is obsolete. \fP"
+.PP
+.in +1c
+
+.ti -1c
+.RI "group\fBgeneric_table_API\fP"
+.br
+.RI "\fIGeneral requirements for a table helper. \fP"
 .PP
 .in +1c
 
@@ -34,6 +41,13 @@
 .br
 .RI "\fIFunctionally, 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. \fP"
 .PP
+.in +1c
+
+.ti -1c
+.RI "group\fBtdata: Implement a table with datamatted storage.\fP"
+.br
+.RI "\fIThis helper helps you implement a table where all the rows are expected to be stored within the agent itself and not in some external storage location. \fP"
+.PP
 
 .in -1c
 .SS "Defines"
@@ -85,7 +99,7 @@
 .ti -1c
 .RI "int \fBnetsnmp_table_build_oid_from_index\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_request_info\fP *reqinfo, \fBnetsnmp_table_request_info\fP *table_info)"
 .br
-.RI "\fIBuilds an oid from index information. \fP"
+.RI "\fIgiven 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. \fP"
 .ti -1c
 .RI "int \fBnetsnmp_update_variable_list_from_index\fP (\fBnetsnmp_table_request_info\fP *tri)"
 .br
@@ -108,11 +122,9 @@
 .PP 
 .SS "int netsnmp_check_getnext_reply (\fBnetsnmp_request_info\fP * request, oid * prefix, size_t prefix_len, \fBnetsnmp_variable_list\fP * newvar, \fBnetsnmp_variable_list\fP ** outvar)"
 .PP
-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 864 of file table.c.
+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 880 of file table.c.
 .PP
 References variable_list::name, variable_list::name_length, netsnmp_request_info_s::requestvb, snmp_oid_compare(), snmp_set_var_typed_value(), variable_list::type, variable_list::val, and variable_list::val_len.
-.PP
-Referenced by netsnmp_table_iterator_helper_handler().
 .SS "NETSNMP_INLINE \fBnetsnmp_table_request_info\fP* netsnmp_extract_table_info (\fBnetsnmp_request_info\fP * request)"
 .PP
 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.
@@ -127,18 +139,16 @@
 populated netsnmp_table_request_info structure 
 .RE
 .PP
-Definition at line 128 of file table.c.
+Definition at line 124 of file table.c.
 .PP
 References netsnmp_request_get_list_data().
 .PP
-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().
+Referenced by _data_lookup(), netsnmp_container_table_row_insert(), netsnmp_insert_iterator_context(), netsnmp_insert_table_row(), and table_helper_handler().
 .SS "\fBnetsnmp_table_registration_info\fP* netsnmp_find_table_registration_info (\fBnetsnmp_handler_registration\fP * reginfo)"
 .PP
-extracts the registered netsnmp_table_registration_info object from a netsnmp_handler_registration object Definition at line 137 of file table.c.
+extracts the registered netsnmp_table_registration_info object from a netsnmp_handler_registration object Definition at line 133 of file table.c.
 .PP
 References netsnmp_find_handler_data_by_name(), and netsnmp_handler_registration.
-.PP
-Referenced by netsnmp_table_data_helper_handler(), and netsnmp_table_iterator_helper_handler().
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_table_handler (\fBnetsnmp_table_registration_info\fP * tabreq)"
 .PP
 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.
@@ -155,57 +165,63 @@
 Returns a pointer to a netsnmp_mib_handler struct which contains the handler's name and the access method 
 .RE
 .PP
-Definition at line 88 of file table.c.
+Definition at line 84 of file table.c.
 .PP
 References netsnmp_table_registration_info_s::indexes, netsnmp_mib_handler_s::myvoid, netsnmp_create_handler(), netsnmp_mib_handler, netsnmp_table_registration_info_s::number_indexes, and snmp_log().
 .PP
 Referenced by netsnmp_register_table(), and netsnmp_sparse_table_register().
 .SS "int netsnmp_register_table (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_table_registration_info\fP * tabreq)"
 .PP
-creates a table handler given the netsnmp_table_registration_info object, inserts it into the request chain and then calls \fBnetsnmp_register_handler()\fP to register the table into the agent. Definition at line 111 of file table.c.
+creates a table handler given the netsnmp_table_registration_info object, inserts it into the request chain and then calls \fBnetsnmp_register_handler()\fP to register the table into the agent. Definition at line 107 of file table.c.
 .PP
 References netsnmp_get_table_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), and netsnmp_register_handler().
 .PP
 Referenced by netsnmp_register_table_data(), netsnmp_register_table_iterator(), and netsnmp_table_container_register().
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_sparse_table_handler_get (void)"
 .PP
-create sparse table handler Definition at line 710 of file table.c.
+create sparse table handler Definition at line 718 of file table.c.
 .PP
 References netsnmp_create_handler().
 .SS "int netsnmp_sparse_table_register (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_table_registration_info\fP * tabreq)"
 .PP
-creates a table handler given the netsnmp_table_registration_info object, inserts it into the request chain and then calls \fBnetsnmp_register_handler()\fP to register the table into the agent. Definition at line 721 of file table.c.
+creates a table handler given the netsnmp_table_registration_info object, inserts it into the request chain and then calls \fBnetsnmp_register_handler()\fP to register the table into the agent. Definition at line 729 of file table.c.
 .PP
 References netsnmp_create_handler(), netsnmp_get_table_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), and netsnmp_register_handler().
 .SS "int netsnmp_table_build_oid (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_request_info\fP * reqinfo, \fBnetsnmp_table_request_info\fP * table_info)"
 .PP
-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. .Entry
+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
 .PP
-.column Definition at line 772 of file table.c.
+.column Definition at line 780 of file table.c.
 .PP
 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.
 .PP
 Referenced by netsnmp_table_build_result().
 .SS "int netsnmp_table_build_oid_from_index (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_request_info\fP * reqinfo, \fBnetsnmp_table_request_info\fP * table_info)"
 .PP
-Builds an oid from index information. Definition at line 806 of file table.c.
+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 817 of file table.c.
 .PP
 References netsnmp_table_request_info_s::colnum, netsnmp_table_request_info_s::index_oid, netsnmp_table_request_info_s::index_oid_len, variable_list::name, variable_list::name_length, variable_list::name_loc, netsnmp_handler_registration, netsnmp_request_info_s::requestvb, netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, and SNMP_FREE.
+.PP
+Referenced by _data_lookup().
 .SS "int netsnmp_table_build_result (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_request_info\fP * reqinfo, \fBnetsnmp_table_request_info\fP * table_info, u_char type, u_char * result, size_t result_len)"
 .PP
-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 739 of file table.c.
+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 747 of file table.c.
 .PP
 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().
 .SS "int netsnmp_update_indexes_from_variable_list (\fBnetsnmp_table_request_info\fP * tri)"
 .PP
-builds an oid given a set of indexes. Definition at line 846 of file table.c.
+builds an oid given a set of indexes. Definition at line 862 of file table.c.
 .PP
 References netsnmp_table_request_info_s::index_oid, netsnmp_table_request_info_s::index_oid_len, and netsnmp_table_request_info_s::indexes.
+.PP
+Referenced by _data_lookup().
 .SS "int netsnmp_update_variable_list_from_index (\fBnetsnmp_table_request_info\fP * tri)"
 .PP
-parses an OID into table indexses Definition at line 835 of file table.c.
+parses an OID into table indexses Definition at line 846 of file table.c.
 .PP
 References netsnmp_table_request_info_s::index_oid, netsnmp_table_request_info_s::index_oid_len, and netsnmp_table_request_info_s::indexes.
+.PP
+Referenced by _data_lookup().
 .SS "int table_helper_handler (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"
 .PP
 implements the table helper handler XXX-rks: memory leak. add cleanup handler?
@@ -214,6 +230,6 @@
 .PP
 got one ok
 .PP
-for loop Definition at line 145 of file table.c.
+for loop Definition at line 141 of file table.c.
 .PP
 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(), netsnmp_request_info_s::next, netsnmp_mib_handler_s::next, netsnmp_table_registration_info_s::number_indexes, netsnmp_table_request_info_s::number_indexes, netsnmp_request_info_s::processed, netsnmp_table_request_info_s::reg_info, netsnmp_request_info_s::requestvb, netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, snmp_log(), SNMP_MALLOC_TYPEDEF, snmp_oid_compare(), sprint_realloc_by_type(), netsnmp_request_info_s::status, variable_list::type, and netsnmp_table_registration_info_s::valid_columns.
diff --git a/man/netsnmp_table_array.3 b/man/netsnmp_table_array.3
index 2c5a9f3..bf25faa 100644
--- a/man/netsnmp_table_array.3
+++ b/man/netsnmp_table_array.3
@@ -1,4 +1,4 @@
-.TH "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." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "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." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -13,6 +13,9 @@
 .br
 .RI "\fIregister specified callbacks for the specified table/oid. \fP"
 .ti -1c
+.RI "int \fBnetsnmp_table_array_register\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_table_registration_info\fP *tabreg, netsnmp_table_array_callbacks *cb, netsnmp_container *container, int group_rows)"
+.br
+.ti -1c
 .RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_find_table_array_handler\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
 .br
 .RI "\fIfind the handler for the table_array helper. \fP"
@@ -54,19 +57,19 @@
 .PP 
 .SS "netsnmp_container* netsnmp_extract_array_context (\fBnetsnmp_request_info\fP * request)"
 .PP
-find the context data used by the table_array helper Definition at line 213 of file table_array.c.
+find the context data used by the table_array helper Definition at line 223 of file table_array.c.
 .PP
 References netsnmp_request_get_list_data().
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_find_table_array_handler (\fBnetsnmp_handler_registration\fP * reginfo)"
 .PP
-find the handler for the table_array helper. Definition at line 196 of file table_array.c.
+find the handler for the table_array helper. Definition at line 206 of file table_array.c.
 .PP
 References netsnmp_mib_handler_s::access_method, netsnmp_handler_registration_s::handler, netsnmp_handler_registration, netsnmp_mib_handler, and netsnmp_mib_handler_s::next.
 .SS "int netsnmp_table_array_check_row_status (netsnmp_table_array_callbacks * cb, netsnmp_request_group * ag, long * rs_new, long * rs_old)"
 .PP
-this function is called to validate RowStatus transitions. Definition at line 220 of file table_array.c.
+this function is called to validate RowStatus transitions. Definition at line 230 of file table_array.c.
 .SS "int netsnmp_table_container_register (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_table_registration_info\fP * tabreg, netsnmp_table_array_callbacks * cb, netsnmp_container * container, int group_rows)"
 .PP
-register specified callbacks for the specified table/oid. If the group_rows parameter is set, the row related callbacks will be called once for each unique row index. Otherwise, each callback will be called only once, for all objects. Definition at line 152 of file table_array.c.
+register specified callbacks for the specified table/oid. If the group_rows parameter is set, the row related callbacks will be called once for each unique row index. Otherwise, each callback will be called only once, for all objects. Definition at line 148 of file table_array.c.
 .PP
 References netsnmp_handler_registration_s::handler, netsnmp_mib_handler_s::myvoid, netsnmp_handler_registration, netsnmp_register_table(), snmp_log(), and SNMP_MALLOC_TYPEDEF.
diff --git a/man/netsnmp_table_container.3 b/man/netsnmp_table_container.3
index 6d8745f..965ec3e 100644
--- a/man/netsnmp_table_container.3
+++ b/man/netsnmp_table_container.3
@@ -1,4 +1,4 @@
-.TH "table_container: Helps you implement a table when data can be found via a netsnmp_container." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "table_container: Helps you implement a table when data can be found via a netsnmp_container." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -9,12 +9,53 @@
 
 .in +1c
 .ti -1c
+.RI "container_table_data * \fBnetsnmp_tcontainer_create_table\fP (const char *name, netsnmp_container *container, long flags)"
+.br
+.ti -1c
+.RI "void \fBnetsnmp_tcontainer_delete_table\fP (container_table_data *table)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_tcontainer_add_row\fP (container_table_data *table, netsnmp_index *row)"
+.br
+.ti -1c
+.RI "netsnmp_index * \fBnetsnmp_tcontainer_remove_row\fP (container_table_data *table, netsnmp_index *row)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_tcontainer_replace_row\fP (container_table_data *table, netsnmp_index *old_row, netsnmp_index *new_row)"
+.br
+.ti -1c
 .RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_container_table_handler_get\fP (\fBnetsnmp_table_registration_info\fP *tabreg, netsnmp_container *container, char key_type)"
 .br
-.RI "\fIregister specified callbacks for the specified table/oid. \fP"
+.RI "\fIreturns a netsnmp_mib_handler object for the table_container helper \fP"
 .ti -1c
 .RI "int \fBnetsnmp_container_table_register\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_table_registration_info\fP *tabreg, netsnmp_container *container, char key_type)"
 .br
+.ti -1c
+.RI "netsnmp_container * \fBnetsnmp_container_table_container_extract\fP (\fBnetsnmp_request_info\fP *request)"
+.br
+.RI "\fIretrieve the container used by the table_container helper \fP"
+.ti -1c
+.RI "void * \fBnetsnmp_container_table_row_extract\fP (\fBnetsnmp_request_info\fP *request)"
+.br
+.RI "\fIfind the context data used by the table_container helper \fP"
+.ti -1c
+.RI "void * \fBnetsnmp_container_table_extract_context\fP (\fBnetsnmp_request_info\fP *request)"
+.br
+.RI "\fIfind the context data used by the table_container helper \fP"
+.ti -1c
+.RI "void \fBnetsnmp_container_table_row_insert\fP (\fBnetsnmp_request_info\fP *request, netsnmp_index *row)"
+.br
+.RI "\fIinserts a newly created table_container entry into a request list \fP"
+.ti -1c
+.RI "NETSNMP_STATIC_INLINE void \fB_set_key\fP (container_table_data *tad, \fBnetsnmp_request_info\fP *request, \fBnetsnmp_table_request_info\fP *tblreq_info, void **key, netsnmp_index *index)"
+.br
+.ti -1c
+.RI "NETSNMP_STATIC_INLINE void \fB_data_lookup\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *agtreq_info, \fBnetsnmp_request_info\fP *request, container_table_data *tad)"
+.br
+.ti -1c
+.RI "netsnmp_index * \fBnetsnmp_table_index_find_next_row\fP (netsnmp_container *c, \fBnetsnmp_table_request_info\fP *tblreq)"
+.br
+.RI "\fIdeprecated, backwards compatability only \fP"
 .in -1c
 .SH "Detailed Description"
 .PP 
@@ -30,7 +71,7 @@
 .PP
 TABLE_CONTAINER_KEY_VARBIND_RAW (NOTE: unimplemented) While not yet implemented, future plans include passing the request varbind with the full OID to a container.
 .PP
-If a key type is not specified at registration time, the default ket type of TABLE_CONTAINER_KEY_NETSNMP_INDEX will be used. If a container is provided, or the handler name is aliased to a container type, the container must use a netsnmp index.
+If a key type is not specified at registration time, the default key type of TABLE_CONTAINER_KEY_NETSNMP_INDEX will be used. If a container is provided, or the handler name is aliased to a container type, the container must use a netsnmp index.
 .PP
 If no container is provided, a lookup will be made based on the sub-handler's name, or if that isn't found, 'table_container'. The table_container key type will be netsnmp_index.
 .PP
@@ -51,8 +92,49 @@
 This helper and it's API are still being tested and are subject to change. 
 .SH "Function Documentation"
 .PP 
+.SS "NETSNMP_STATIC_INLINE void _data_lookup (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * agtreq_info, \fBnetsnmp_request_info\fP * request, container_table_data * tad)"
+.PP
+Definition at line 447 of file table_container.c.
+.PP
+References netsnmp_agent_request_info_s::mode, netsnmp_handler_registration_s::modes, variable_list::name, variable_list::name_length, netsnmp_create_data_list(), netsnmp_extract_table_info(), netsnmp_handler_registration, netsnmp_request_add_list_data(), netsnmp_set_request_error(), netsnmp_table_build_oid_from_index(), netsnmp_update_indexes_from_variable_list(), netsnmp_update_variable_list_from_index(), netsnmp_request_info_s::requestvb, and variable_list::type.
+.SS "netsnmp_container* netsnmp_container_table_container_extract (\fBnetsnmp_request_info\fP * request)"
+.PP
+retrieve the container used by the table_container helper Definition at line 319 of file table_container.c.
+.PP
+References netsnmp_request_get_list_data().
+.SS "void* netsnmp_container_table_extract_context (\fBnetsnmp_request_info\fP * request)"
+.PP
+find the context data used by the table_container helper Definition at line 338 of file table_container.c.
+.PP
+References netsnmp_request_get_list_data().
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_container_table_handler_get (\fBnetsnmp_table_registration_info\fP * tabreg, netsnmp_container * container, char key_type)"
 .PP
-register specified callbacks for the specified table/oid. Definition at line 156 of file table_container.c.
+returns a netsnmp_mib_handler object for the table_container helper Definition at line 253 of file table_container.c.
 .PP
 References netsnmp_mib_handler_s::flags, netsnmp_mib_handler_s::myvoid, netsnmp_create_handler(), netsnmp_mib_handler, snmp_log(), and SNMP_MALLOC_TYPEDEF.
+.SS "void* netsnmp_container_table_row_extract (\fBnetsnmp_request_info\fP * request)"
+.PP
+find the context data used by the table_container helper Definition at line 328 of file table_container.c.
+.PP
+References netsnmp_request_get_list_data().
+.PP
+Referenced by netsnmp_tdata_extract_row().
+.SS "void netsnmp_container_table_row_insert (\fBnetsnmp_request_info\fP * request, netsnmp_index * row)"
+.PP
+inserts a newly created table_container entry into a request list Definition at line 350 of file table_container.c.
+.PP
+References netsnmp_table_request_info_s::indexes, netsnmp_create_data_list(), netsnmp_extract_table_info(), netsnmp_request_add_list_data(), netsnmp_request_info_s::next, netsnmp_request_info_s::prev, and snmp_oid_compare().
+.PP
+Referenced by netsnmp_insert_tdata_row().
+.SS "netsnmp_index* netsnmp_table_index_find_next_row (netsnmp_container * c, \fBnetsnmp_table_request_info\fP * tblreq)"
+.PP
+deprecated, backwards compatability only expected impact to remove: none
+.IP "\(bu" 2
+used between helpers, shouldn't have been used by end users
+.PP
+.PP
+replacement: none
+.IP "\(bu" 2
+never should have been a public method in the first place 
+.PP
+Definition at line 717 of file table_container.c.
diff --git a/man/netsnmp_table_data.3 b/man/netsnmp_table_data.3
index 30c331d..5b1aa06 100644
--- a/man/netsnmp_table_data.3
+++ b/man/netsnmp_table_data.3
@@ -1,8 +1,8 @@
-.TH "table_data: Helps you implement a table with datamatted storage." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "table_data: Helps you implement a table with datamatted storage." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
-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_data: Helps you implement a table with datamatted storage. \- This helper is obsolete.  
 
 .PP
 .SS "Modules"
@@ -11,7 +11,7 @@
 .ti -1c
 .RI "group\fBtable_dataset: Helps you implement a table with automatted storage.\fP"
 .br
-.RI "\fIThis handler helps you implement a table where all the data is expected to be stored within the agent itself and not in some external storage location. \fP"
+.RI "\fIThis helper is obsolete. \fP"
 .PP
 
 .in -1c
@@ -21,35 +21,53 @@
 .ti -1c
 .RI "void \fBnetsnmp_table_data_generate_index_oid\fP (netsnmp_table_row *row)"
 .br
-.RI "\fIgenerates the index portion of an table oid from a varlist. \fP"
 .ti -1c
-.RI "int \fBnetsnmp_table_data_add_row\fP (netsnmp_table_data *table, netsnmp_table_row *row)"
+.RI "netsnmp_table_data * \fBnetsnmp_create_table_data\fP (const char *name)"
 .br
-.RI "\fIAdds a row of data to a given table (stored in proper lexographical order). \fP"
+.RI "\fIcreates and returns a pointer to table data set \fP"
 .ti -1c
-.RI "netsnmp_table_row * \fBnetsnmp_table_data_remove_row\fP (netsnmp_table_data *table, netsnmp_table_row *row)"
+.RI "netsnmp_table_row * \fBnetsnmp_create_table_data_row\fP (void)"
 .br
-.RI "\fIremoves a row of data to a given table and returns it (no free's called) \fP"
+.RI "\fIcreates and returns a pointer to table data set \fP"
+.ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_clone_row\fP (netsnmp_table_row *row)"
+.br
+.RI "\fIclones a data row. \fP"
 .ti -1c
 .RI "void * \fBnetsnmp_table_data_delete_row\fP (netsnmp_table_row *row)"
 .br
 .RI "\fIdeletes a row's memory. \fP"
 .ti -1c
-.RI "void * \fBnetsnmp_table_data_remove_and_delete_row\fP (netsnmp_table_data *table, netsnmp_table_row *row)"
+.RI "int \fBnetsnmp_table_data_add_row\fP (netsnmp_table_data *table, netsnmp_table_row *row)"
 .br
-.RI "\fIremoves and frees a row of data to a given table and returns the void * \fP"
+.RI "\fIAdds a row of data to a given table (stored in proper lexographical order). \fP"
 .ti -1c
 .RI "NETSNMP_INLINE void \fBnetsnmp_table_data_replace_row\fP (netsnmp_table_data *table, netsnmp_table_row *origrow, netsnmp_table_row *newrow)"
 .br
 .RI "\fIswaps out origrow with newrow. \fP"
 .ti -1c
-.RI "netsnmp_table_row * \fBnetsnmp_table_data_get\fP (netsnmp_table_data *table, \fBnetsnmp_variable_list\fP *indexes)"
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_remove_row\fP (netsnmp_table_data *table, netsnmp_table_row *row)"
 .br
-.RI "\fIfinds the data in 'datalist' stored at 'indexes' \fP"
+.RI "\fIremoves a row of data to a given table and returns it (no free's called) \fP"
 .ti -1c
-.RI "netsnmp_table_row * \fBnetsnmp_table_data_get_from_oid\fP (netsnmp_table_data *table, oid *searchfor, size_t searchfor_len)"
+.RI "void * \fBnetsnmp_table_data_remove_and_delete_row\fP (netsnmp_table_data *table, netsnmp_table_row *row)"
 .br
-.RI "\fIfinds the data in 'datalist' stored at the searchfor oid \fP"
+.RI "\fIremoves and frees a row of data to a given table and returns the void * \fP"
+.ti -1c
+.RI "netsnmp_table_data * \fBnetsnmp_table_data_create_table\fP (const char *name, long flags)"
+.br
+.ti -1c
+.RI "void \fBnetsnmp_table_data_delete_table\fP (netsnmp_table_data *table)"
+.br
+.ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_create_row\fP (void *entry)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_table_data_copy_row\fP (netsnmp_table_row *old_row, netsnmp_table_row *new_row)"
+.br
+.ti -1c
+.RI "void * \fBnetsnmp_table_data_remove_delete_row\fP (netsnmp_table_data *table, netsnmp_table_row *row)"
+.br
 .ti -1c
 .RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_table_data_handler\fP (netsnmp_table_data *table)"
 .br
@@ -65,51 +83,100 @@
 .ti -1c
 .RI "int \fBnetsnmp_table_data_helper_handler\fP (\fBnetsnmp_mib_handler\fP *handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
 .br
-.RI "\fIThe helper handler that takes care of passing a specific row of data down to the lower handler(s). \fP"
-.ti -1c
-.RI "netsnmp_table_data * \fBnetsnmp_create_table_data\fP (const char *name)"
-.br
-.RI "\fIcreates and returns a pointer to table data set \fP"
-.ti -1c
-.RI "netsnmp_table_row * \fBnetsnmp_create_table_data_row\fP (void)"
-.br
-.RI "\fIcreates and returns a pointer to table data set \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_insert_table_row\fP (\fBnetsnmp_request_info\fP *request, netsnmp_table_row *row)"
-.br
-.RI "\fIinserts a newly created table_data row into a request \fP"
-.ti -1c
-.RI "netsnmp_table_row * \fBnetsnmp_extract_table_row\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIextracts the row being accessed passed from the table_data helper \fP"
 .ti -1c
 .RI "netsnmp_table_data * \fBnetsnmp_extract_table\fP (\fBnetsnmp_request_info\fP *request)"
 .br
 .RI "\fIextracts the table being accessed passed from the table_data helper \fP"
 .ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_extract_table_row\fP (\fBnetsnmp_request_info\fP *request)"
+.br
+.RI "\fIextracts the row being accessed passed from the table_data helper \fP"
+.ti -1c
 .RI "void * \fBnetsnmp_extract_table_row_data\fP (\fBnetsnmp_request_info\fP *request)"
 .br
 .RI "\fIextracts the data from the row being accessed passed from the table_data helper \fP"
 .ti -1c
+.RI "NETSNMP_INLINE void \fBnetsnmp_insert_table_row\fP (\fBnetsnmp_request_info\fP *request, netsnmp_table_row *row)"
+.br
+.RI "\fIinserts a newly created table_data row into a request \fP"
+.ti -1c
 .RI "int \fBnetsnmp_table_data_build_result\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *request, netsnmp_table_row *row, int column, u_char type, u_char *result_data, size_t result_data_len)"
 .br
-.RI "\fIbuilds a result given a row, a varbind to set and the data \fP"
 .ti -1c
-.RI "netsnmp_table_row * \fBnetsnmp_table_data_clone_row\fP (netsnmp_table_row *row)"
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_get_first_row\fP (netsnmp_table_data *table)"
 .br
-.RI "\fIclones a data row. \fP"
+.RI "\fIreturns the first row in the table \fP"
+.ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_get_next_row\fP (netsnmp_table_data *table, netsnmp_table_row *row)"
+.br
+.RI "\fIreturns the next row in the table \fP"
+.ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_get\fP (netsnmp_table_data *table, \fBnetsnmp_variable_list\fP *indexes)"
+.br
+.RI "\fIfinds the data in 'datalist' stored at 'indexes' \fP"
+.ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_get_from_oid\fP (netsnmp_table_data *table, oid *searchfor, size_t searchfor_len)"
+.br
+.RI "\fIfinds the data in 'datalist' stored at the searchfor oid \fP"
 .ti -1c
 .RI "int \fBnetsnmp_table_data_num_rows\fP (netsnmp_table_data *table)"
 .br
+.ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_row_first\fP (netsnmp_table_data *table)"
+.br
+.ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_row_get\fP (netsnmp_table_data *table, netsnmp_table_row *row)"
+.br
+.ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_row_next\fP (netsnmp_table_data *table, netsnmp_table_row *row)"
+.br
+.ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_row_get_byoid\fP (netsnmp_table_data *table, oid *instance, size_t len)"
+.br
+.ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_row_next_byoid\fP (netsnmp_table_data *table, oid *instance, size_t len)"
+.br
+.ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_row_get_byidx\fP (netsnmp_table_data *table, \fBnetsnmp_variable_list\fP *indexes)"
+.br
+.ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_row_next_byidx\fP (netsnmp_table_data *table, \fBnetsnmp_variable_list\fP *indexes)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_table_data_row_count\fP (netsnmp_table_data *table)"
+.br
+.ti -1c
+.RI "void * \fBnetsnmp_table_data_entry_first\fP (netsnmp_table_data *table)"
+.br
+.ti -1c
+.RI "void * \fBnetsnmp_table_data_entry_get\fP (netsnmp_table_data *table, netsnmp_table_row *row)"
+.br
+.ti -1c
+.RI "void * \fBnetsnmp_table_data_entry_next\fP (netsnmp_table_data *table, netsnmp_table_row *row)"
+.br
+.ti -1c
+.RI "void * \fBnetsnmp_table_data_entry_get_byidx\fP (netsnmp_table_data *table, \fBnetsnmp_variable_list\fP *indexes)"
+.br
+.ti -1c
+.RI "void * \fBnetsnmp_table_data_entry_next_byidx\fP (netsnmp_table_data *table, \fBnetsnmp_variable_list\fP *indexes)"
+.br
+.ti -1c
+.RI "void * \fBnetsnmp_table_data_entry_get_byoid\fP (netsnmp_table_data *table, oid *instance, size_t len)"
+.br
+.ti -1c
+.RI "void * \fBnetsnmp_table_data_entry_next_byoid\fP (netsnmp_table_data *table, oid *instance, size_t len)"
+.br
 .in -1c
 .SH "Detailed Description"
 .PP 
+This helper is obsolete. If you are writing a new module, please consider using the table_tdata helper instead.
+.PP
 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. It can be used to store a list of rows, where a row consists of the indexes to the table and a generic data pointer. You can then implement a subhandler which is passed the exact row definition and data it must return data for or accept data for. Complex GETNEXT handling is greatly simplified in this case. 
 .SH "Function Documentation"
 .PP 
 .SS "netsnmp_table_data* netsnmp_create_table_data (const char * name)"
 .PP
-creates and returns a pointer to table data set Definition at line 544 of file table_data.c.
+creates and returns a pointer to table data set Definition at line 51 of file table_data.c.
 .PP
 References SNMP_MALLOC_TYPEDEF.
 .PP
@@ -122,121 +189,112 @@
 .in +1c
 \fBdata_set.c\fP.
 .PP
-Definition at line 554 of file table_data.c.
+Definition at line 61 of file table_data.c.
 .PP
 References SNMP_MALLOC_TYPEDEF.
 .PP
 Referenced by netsnmp_table_data_set_create_row_from_defaults().
 .SS "netsnmp_table_data* netsnmp_extract_table (\fBnetsnmp_request_info\fP * request)"
 .PP
-extracts the table being accessed passed from the table_data helper Definition at line 635 of file table_data.c.
+extracts the table being accessed passed from the table_data helper Definition at line 648 of file table_data.c.
 .PP
 References netsnmp_request_get_list_data().
 .SS "netsnmp_table_row* netsnmp_extract_table_row (\fBnetsnmp_request_info\fP * request)"
 .PP
-extracts the row being accessed passed from the table_data helper Definition at line 627 of file table_data.c.
+extracts the row being accessed passed from the table_data helper Definition at line 656 of file table_data.c.
 .PP
 References netsnmp_request_get_list_data().
 .PP
-Referenced by netsnmp_extract_table_row_data(), and netsnmp_table_data_set_helper_handler().
+Referenced by netsnmp_extract_table_row_data().
 .SS "void* netsnmp_extract_table_row_data (\fBnetsnmp_request_info\fP * request)"
 .PP
-extracts the data from the row being accessed passed from the table_data helper Definition at line 644 of file table_data.c.
+extracts the data from the row being accessed passed from the table_data helper Definition at line 665 of file table_data.c.
 .PP
 References netsnmp_extract_table_row().
 .PP
 Referenced by netsnmp_extract_table_data_set_column().
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_table_data_handler (netsnmp_table_data * table)"
 .PP
-Creates a table_data handler and returns it. Definition at line 263 of file table_data.c.
+Creates a table_data handler and returns it. Definition at line 370 of file table_data.c.
 .PP
 References netsnmp_mib_handler_s::flags, netsnmp_mib_handler_s::myvoid, netsnmp_create_handler(), netsnmp_mib_handler, and snmp_log().
 .PP
 Referenced by netsnmp_register_table_data().
 .SS "NETSNMP_INLINE void netsnmp_insert_table_row (\fBnetsnmp_request_info\fP * request, netsnmp_table_row * row)"
 .PP
-inserts a newly created table_data row into a request Definition at line 562 of file table_data.c.
+inserts a newly created table_data row into a request Definition at line 677 of file table_data.c.
 .PP
 References netsnmp_table_request_info_s::indexes, netsnmp_create_data_list(), netsnmp_extract_table_info(), netsnmp_request_add_list_data(), netsnmp_request_info_s::next, netsnmp_request_info_s::prev, and snmp_oid_compare().
 .SS "int netsnmp_register_read_only_table_data (\fBnetsnmp_handler_registration\fP * reginfo, netsnmp_table_data * table, \fBnetsnmp_table_registration_info\fP * table_info)"
 .PP
-registers a handler as a read-only data table If table_info != NULL, it registers it as a normal table too. Definition at line 297 of file table_data.c.
+registers a handler as a read-only data table If table_info != NULL, it registers it as a normal table too. Definition at line 404 of file table_data.c.
 .PP
 References netsnmp_get_read_only_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), and netsnmp_register_table_data().
 .SS "int netsnmp_register_table_data (\fBnetsnmp_handler_registration\fP * reginfo, netsnmp_table_data * table, \fBnetsnmp_table_registration_info\fP * table_info)"
 .PP
-registers a handler as a data table. If table_info != NULL, it registers it as a normal table too. Definition at line 286 of file table_data.c.
+registers a handler as a data table. If table_info != NULL, it registers it as a normal table too. Definition at line 393 of file table_data.c.
 .PP
 References netsnmp_get_table_data_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), and netsnmp_register_table().
 .PP
 Referenced by netsnmp_register_read_only_table_data(), and netsnmp_register_table_data_set().
 .SS "int netsnmp_table_data_add_row (netsnmp_table_data * table, netsnmp_table_row * row)"
 .PP
-Adds a row of data to a given table (stored in proper lexographical order). returns SNMPERR_SUCCESS on successful addition. or SNMPERR_GENERR on failure (E.G., indexes already existed) xxx-rks: remove invalid row? Definition at line 51 of file table_data.c.
+Adds a row of data to a given table (stored in proper lexographical order). returns SNMPERR_SUCCESS on successful addition. or SNMPERR_GENERR on failure (E.G., indexes already existed) xxx-rks: remove invalid row? Definition at line 129 of file table_data.c.
 .PP
-References netsnmp_table_data_generate_index_oid(), snmp_log(), and snmp_oid_compare().
+References snmp_log(), and snmp_oid_compare().
 .PP
 Referenced by netsnmp_table_data_replace_row(), and netsnmp_table_dataset_add_row().
-.SS "int netsnmp_table_data_build_result (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * request, netsnmp_table_row * row, int column, u_char type, u_char * result_data, size_t result_data_len)"
-.PP
-builds a result given a row, a varbind to set and the data Definition at line 656 of file table_data.c.
-.PP
-References netsnmp_agent_request_info_s::mode, netsnmp_handler_registration, netsnmp_request_info_s::requestvb, netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, and snmp_set_var_typed_value().
-.PP
-Referenced by netsnmp_table_data_helper_handler(), and netsnmp_table_data_set_helper_handler().
 .SS "netsnmp_table_row* netsnmp_table_data_clone_row (netsnmp_table_row * row)"
 .PP
-clones a data row. DOES NOT CLONE THE CONTAINED DATA. Definition at line 690 of file table_data.c.
+clones a data row. DOES NOT CLONE THE CONTAINED DATA. Definition at line 69 of file table_data.c.
 .PP
 References memdup().
 .PP
 Referenced by netsnmp_table_data_set_clone_row().
 .SS "void* netsnmp_table_data_delete_row (netsnmp_table_row * row)"
 .PP
-deletes a row's memory. returns the void data that it doesn't know how to delete. Definition at line 177 of file table_data.c.
+deletes a row's memory. returns the void data that it doesn't know how to delete. Definition at line 100 of file table_data.c.
 .PP
 References SNMP_FREE.
 .PP
 Referenced by netsnmp_table_data_remove_and_delete_row(), and netsnmp_table_dataset_delete_row().
-.SS "void netsnmp_table_data_generate_index_oid (netsnmp_table_row * row)"
-.PP
-generates the index portion of an table oid from a varlist. Definition at line 39 of file table_data.c.
-.PP
-References build_oid().
-.PP
-Referenced by netsnmp_table_data_add_row().
 .SS "netsnmp_table_row* netsnmp_table_data_get (netsnmp_table_data * table, \fBnetsnmp_variable_list\fP * indexes)"
 .PP
-finds the data in 'datalist' stored at 'indexes' Definition at line 231 of file table_data.c.
+finds the data in 'datalist' stored at 'indexes' Definition at line 803 of file table_data.c.
 .PP
 References netsnmp_table_data_get_from_oid().
+.SS "netsnmp_table_row* netsnmp_table_data_get_first_row (netsnmp_table_data * table)"
+.PP
+returns the first row in the table Definition at line 784 of file table_data.c.
+.PP
+Referenced by netsnmp_table_data_set_get_first_row().
 .SS "netsnmp_table_row* netsnmp_table_data_get_from_oid (netsnmp_table_data * table, oid * searchfor, size_t searchfor_len)"
 .PP
-finds the data in 'datalist' stored at the searchfor oid Definition at line 245 of file table_data.c.
+finds the data in 'datalist' stored at the searchfor oid Definition at line 817 of file table_data.c.
 .PP
 References snmp_oid_compare().
 .PP
-Referenced by netsnmp_table_data_get(), and netsnmp_table_data_helper_handler().
-.SS "int netsnmp_table_data_helper_handler (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"
+Referenced by netsnmp_table_data_get().
+.SS "netsnmp_table_row* netsnmp_table_data_get_next_row (netsnmp_table_data * table, netsnmp_table_row * row)"
 .PP
-The helper handler that takes care of passing a specific row of data down to the lower handler(s). It sets request->processed if the request should not be handled. Definition at line 313 of file table_data.c.
+returns the next row in the table Definition at line 793 of file table_data.c.
 .PP
-References netsnmp_table_request_info_s::colnum, netsnmp_mib_handler_s::flags, 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, netsnmp_call_next_handler(), netsnmp_create_data_list(), netsnmp_extract_table_info(), netsnmp_find_table_registration_info(), netsnmp_handler_registration, netsnmp_mib_handler, netsnmp_request_add_list_data(), netsnmp_set_request_error(), netsnmp_table_data_build_result(), netsnmp_table_data_get_from_oid(), netsnmp_request_info_s::next, netsnmp_request_info_s::processed, netsnmp_request_info_s::requestvb, netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, SNMP_MIN, snmp_oid_compare(), and variable_list::type.
+Referenced by netsnmp_table_data_set_get_next_row().
 .SS "void* netsnmp_table_data_remove_and_delete_row (netsnmp_table_data * table, netsnmp_table_row * row)"
 .PP
-removes and frees a row of data to a given table and returns the void * returns the void * data on successful deletion. or NULL on failure (bad arguments) Definition at line 206 of file table_data.c.
+removes and frees a row of data to a given table and returns the void * returns the void * data on successful deletion. or NULL on failure (bad arguments) Definition at line 269 of file table_data.c.
 .PP
 References netsnmp_table_data_delete_row(), and netsnmp_table_data_remove_row().
 .PP
 Referenced by netsnmp_table_dataset_remove_and_delete_row(), and netsnmp_table_dataset_remove_row().
 .SS "netsnmp_table_row* netsnmp_table_data_remove_row (netsnmp_table_data * table, netsnmp_table_row * row)"
 .PP
-removes a row of data to a given table and returns it (no free's called) returns the row pointer itself on successful removing. or NULL on failure (bad arguments) Definition at line 155 of file table_data.c.
+removes a row of data to a given table and returns it (no free's called) returns the row pointer itself on successful removing. or NULL on failure (bad arguments) Definition at line 243 of file table_data.c.
 .PP
 Referenced by netsnmp_table_data_remove_and_delete_row(), and netsnmp_table_data_replace_row().
 .SS "NETSNMP_INLINE void netsnmp_table_data_replace_row (netsnmp_table_data * table, netsnmp_table_row * origrow, netsnmp_table_row * newrow)"
 .PP
-swaps out origrow with newrow. This does *not* delete/free anything! Definition at line 221 of file table_data.c.
+swaps out origrow with newrow. This does *not* delete/free anything! Definition at line 228 of file table_data.c.
 .PP
 References netsnmp_table_data_add_row(), and netsnmp_table_data_remove_row().
 .PP
diff --git a/man/netsnmp_table_dataset.3 b/man/netsnmp_table_dataset.3
index b11498c..1203730 100644
--- a/man/netsnmp_table_dataset.3
+++ b/man/netsnmp_table_dataset.3
@@ -1,8 +1,8 @@
-.TH "table_dataset: Helps you implement a table with automatted storage." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "table_dataset: Helps you implement a table with automatted storage." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
-table_dataset: Helps you implement a table with automatted storage. \- This handler helps you implement a table where all the data is expected to be stored within the agent itself and not in some external storage location.  
+table_dataset: Helps you implement a table with automatted storage. \- This helper is obsolete.  
 
 .PP
 .SS "Functions"
@@ -16,75 +16,10 @@
 .br
 .RI "\fICreate a netsnmp_table_data_set structure given a table_data definition. \fP"
 .ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_table_data_set_handler\fP (netsnmp_table_data_set *data_set)"
-.br
-.RI "\fIGiven a netsnmp_table_data_set definition, create a handler for it. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_table_data_set\fP (\fBnetsnmp_handler_registration\fP *reginfo, netsnmp_table_data_set *data_set, \fBnetsnmp_table_registration_info\fP *table_info)"
-.br
-.RI "\fIregister a given data_set at a given oid (specified in the netsnmp_handler_registration pointer). \fP"
-.ti -1c
-.RI "netsnmp_table_data_set_storage * \fBnetsnmp_table_data_set_find_column\fP (netsnmp_table_data_set_storage *start, unsigned int column)"
-.br
-.RI "\fIFinds a column within a given storage set, given the pointer to the start of the storage set list. \fP"
-.ti -1c
-.RI "netsnmp_table_data_set_storage * \fBnetsnmp_extract_table_data_set_column\fP (\fBnetsnmp_request_info\fP *request, unsigned int column)"
-.br
-.RI "\fIextracts a netsnmp_table_data_set pointer from a given request \fP"
-.ti -1c
-.RI "NETSNMP_INLINE netsnmp_table_data_set * \fBnetsnmp_extract_table_data_set\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIextracts a netsnmp_table_data_set pointer from a given request \fP"
-.ti -1c
-.RI "int \fBnetsnmp_mark_row_column_writable\fP (netsnmp_table_row *row, int column, int writable)"
-.br
-.RI "\fImarks a given column in a row as writable or not. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_set_row_column\fP (netsnmp_table_row *row, unsigned int column, int type, const char *value, size_t value_len)"
-.br
-.RI "\fIsets a given column in a row with data given a type, value, and length. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_table_set_add_default_row\fP (netsnmp_table_data_set *table_set, unsigned int column, int type, int writable, void *default_value, size_t default_value_len)"
-.br
-.RI "\fIadds a new default row to a table_set. \fP"
-.ti -1c
 .RI "netsnmp_table_row * \fBnetsnmp_table_data_set_clone_row\fP (netsnmp_table_row *row)"
 .br
 .RI "\fIclones a dataset row, including all data. \fP"
 .ti -1c
-.RI "netsnmp_table_row * \fBnetsnmp_table_data_set_create_row_from_defaults\fP (netsnmp_table_data_set_storage *defrow)"
-.br
-.RI "\fIcreates a new row from an existing defined default set \fP"
-.ti -1c
-.RI "newrow_stash * \fBnetsnmp_table_data_set_create_newrowstash\fP (netsnmp_table_data_set *datatable, \fBnetsnmp_table_request_info\fP *table_info)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_table_data_set_helper_handler\fP (\fBnetsnmp_mib_handler\fP *handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
-.br
-.RI "\fIimplements the table data helper. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_register_auto_data_table\fP (netsnmp_table_data_set *table_set, char *registration_name)"
-.br
-.RI "\fIregisters a table_dataset so that the 'add_row' snmpd.conf token can be used to add data to this table. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_config_parse_table_set\fP (const char *token, char *line)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_config_parse_add_row\fP (const char *token, char *line)"
-.br
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_add_index\fP (netsnmp_table_data_set *table, u_char type)"
-.br
-.RI "\fIadds an index to the table. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_add_row\fP (netsnmp_table_data_set *table, netsnmp_table_row *row)"
-.br
-.RI "\fIadds a new row to a dataset table \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_replace_row\fP (netsnmp_table_data_set *table, netsnmp_table_row *origrow, netsnmp_table_row *newrow)"
-.br
-.RI "\fIadds a new row to a dataset table \fP"
-.ti -1c
 .RI "NETSNMP_INLINE netsnmp_table_data_set_storage * \fBnetsnmp_table_dataset_delete_data\fP (netsnmp_table_data_set_storage *data)"
 .br
 .RI "\fIdeletes a single dataset table data. \fP"
@@ -97,6 +32,14 @@
 .br
 .RI "\fIdeletes all the data from this node and beyond in the linked list \fP"
 .ti -1c
+.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_add_row\fP (netsnmp_table_data_set *table, netsnmp_table_row *row)"
+.br
+.RI "\fIadds a new row to a dataset table \fP"
+.ti -1c
+.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_replace_row\fP (netsnmp_table_data_set *table, netsnmp_table_row *origrow, netsnmp_table_row *newrow)"
+.br
+.RI "\fIadds a new row to a dataset table \fP"
+.ti -1c
 .RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_remove_row\fP (netsnmp_table_data_set *table, netsnmp_table_row *row)"
 .br
 .RI "\fIremoves a row from the table, but doesn't delete/free anything \fP"
@@ -105,19 +48,85 @@
 .br
 .RI "\fIremoves a row from the table and then deletes it (and all it's data) \fP"
 .ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_set_create_row_from_defaults\fP (netsnmp_table_data_set_storage *defrow)"
+.br
+.RI "\fIcreates a new row from an existing defined default set \fP"
+.ti -1c
+.RI "int \fBnetsnmp_table_set_add_default_row\fP (netsnmp_table_data_set *table_set, unsigned int column, int type, int writable, void *default_value, size_t default_value_len)"
+.br
+.RI "\fIadds a new default row to a table_set. \fP"
+.ti -1c
 .RI "void \fBnetsnmp_table_set_multi_add_default_row\fP (va_dcl)"
 .br
 .RI "\fIadds multiple data column definitions to each row. \fP"
 .ti -1c
-.RI "void \fBnetsnmp_table_set_add_indexes\fP (va_alist)"
+.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_table_data_set_handler\fP (netsnmp_table_data_set *data_set)"
 .br
-.RI "\fIadds multiple indexes to a table_dataset helper object. \fP"
+.RI "\fIGiven a netsnmp_table_data_set definition, create a handler for it. \fP"
+.ti -1c
+.RI "int \fBnetsnmp_register_table_data_set\fP (\fBnetsnmp_handler_registration\fP *reginfo, netsnmp_table_data_set *data_set, \fBnetsnmp_table_registration_info\fP *table_info)"
+.br
+.RI "\fIregister a given data_set at a given oid (specified in the netsnmp_handler_registration pointer). \fP"
+.ti -1c
+.RI "newrow_stash * \fBnetsnmp_table_data_set_create_newrowstash\fP (netsnmp_table_data_set *datatable, \fBnetsnmp_table_request_info\fP *table_info)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_table_data_set_helper_handler\fP (\fBnetsnmp_mib_handler\fP *handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
+.br
+.ti -1c
+.RI "NETSNMP_INLINE netsnmp_table_data_set * \fBnetsnmp_extract_table_data_set\fP (\fBnetsnmp_request_info\fP *request)"
+.br
+.RI "\fIextracts a netsnmp_table_data_set pointer from a given request \fP"
+.ti -1c
+.RI "netsnmp_table_data_set_storage * \fBnetsnmp_extract_table_data_set_column\fP (\fBnetsnmp_request_info\fP *request, unsigned int column)"
+.br
+.RI "\fIextracts a netsnmp_table_data_set pointer from a given request \fP"
+.ti -1c
+.RI "void \fBnetsnmp_register_auto_data_table\fP (netsnmp_table_data_set *table_set, char *registration_name)"
+.br
+.RI "\fIregisters a table_dataset so that the 'add_row' snmpd.conf token can be used to add data to this table. \fP"
+.ti -1c
+.RI "void \fBnetsnmp_config_parse_table_set\fP (const char *token, char *line)"
+.br
+.ti -1c
+.RI "void \fBnetsnmp_config_parse_add_row\fP (const char *token, char *line)"
+.br
+.ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_set_get_first_row\fP (netsnmp_table_data_set *table)"
+.br
+.RI "\fIreturns the first row in the table \fP"
+.ti -1c
+.RI "netsnmp_table_row * \fBnetsnmp_table_data_set_get_next_row\fP (netsnmp_table_data_set *table, netsnmp_table_row *row)"
+.br
+.RI "\fIreturns the next row in the table \fP"
 .ti -1c
 .RI "int \fBnetsnmp_table_set_num_rows\fP (netsnmp_table_data_set *table)"
 .br
+.ti -1c
+.RI "netsnmp_table_data_set_storage * \fBnetsnmp_table_data_set_find_column\fP (netsnmp_table_data_set_storage *start, unsigned int column)"
+.br
+.RI "\fIFinds a column within a given storage set, given the pointer to the start of the storage set list. \fP"
+.ti -1c
+.RI "int \fBnetsnmp_mark_row_column_writable\fP (netsnmp_table_row *row, int column, int writable)"
+.br
+.RI "\fImarks a given column in a row as writable or not. \fP"
+.ti -1c
+.RI "int \fBnetsnmp_set_row_column\fP (netsnmp_table_row *row, unsigned int column, int type, const char *value, size_t value_len)"
+.br
+.RI "\fIsets a given column in a row with data given a type, value, and length. \fP"
+.ti -1c
+.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_add_index\fP (netsnmp_table_data_set *table, u_char type)"
+.br
+.RI "\fIadds an index to the table. \fP"
+.ti -1c
+.RI "void \fBnetsnmp_table_set_add_indexes\fP (va_alist)"
+.br
+.RI "\fIadds multiple indexes to a table_dataset helper object. \fP"
 .in -1c
 .SH "Detailed Description"
 .PP 
+This helper is obsolete. If you are writing a new module, please consider using the table_dataset2 helper instead.
+.PP
 This handler helps you implement a table where all the data is expected to be stored within the agent itself and not in some external storage location. It handles all MIB requests including GETs, GETNEXTs and SETs. It's possible to simply create a table without actually ever defining a handler to be called when SNMP requests come in. To use the data, you can either attach a sub-handler that merely uses/manipulates the data further when requests come in, or you can loop through it externally when it's actually needed. This handler is most useful in cases where a table is holding configuration data for something which gets triggered via another event.
 .PP
 NOTE NOTE NOTE: This helper isn't complete and is likely to change somewhat over time. Specifically, the way it stores data internally may change drastically. 
@@ -131,22 +140,22 @@
 .in +1c
 \fBdata_set.c\fP.
 .PP
-Definition at line 74 of file table_dataset.c.
+Definition at line 79 of file table_dataset.c.
 .PP
 References netsnmp_create_table_data(), and SNMP_MALLOC_TYPEDEF.
 .SS "NETSNMP_INLINE netsnmp_table_data_set* netsnmp_extract_table_data_set (\fBnetsnmp_request_info\fP * request)"
 .PP
-extracts a netsnmp_table_data_set pointer from a given request Definition at line 187 of file table_dataset.c.
+extracts a netsnmp_table_data_set pointer from a given request Definition at line 795 of file table_dataset.c.
 .PP
 References netsnmp_request_get_list_data().
 .SS "netsnmp_table_data_set_storage* netsnmp_extract_table_data_set_column (\fBnetsnmp_request_info\fP * request, unsigned int column)"
 .PP
-extracts a netsnmp_table_data_set pointer from a given request Definition at line 173 of file table_dataset.c.
+extracts a netsnmp_table_data_set pointer from a given request Definition at line 805 of file table_dataset.c.
 .PP
 References netsnmp_extract_table_row_data(), and netsnmp_table_data_set_find_column().
 .SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_table_data_set_handler (netsnmp_table_data_set * data_set)"
 .PP
-Given a netsnmp_table_data_set definition, create a handler for it. Definition at line 86 of file table_dataset.c.
+Given a netsnmp_table_data_set definition, create a handler for it. Definition at line 355 of file table_dataset.c.
 .PP
 References netsnmp_mib_handler_s::flags, netsnmp_mib_handler_s::myvoid, netsnmp_create_handler(), netsnmp_mib_handler, and snmp_log().
 .PP
@@ -159,7 +168,7 @@
 .in +1c
 \fBdata_set.c\fP.
 .PP
-Definition at line 197 of file table_dataset.c.
+Definition at line 1148 of file table_dataset.c.
 .PP
 References netsnmp_table_data_set_find_column(), snmp_log(), and SNMP_MALLOC_TYPEDEF.
 .PP
@@ -179,7 +188,7 @@
 .in +1c
 \fBdata_set.c\fP.
 .PP
-Definition at line 775 of file table_dataset.c.
+Definition at line 832 of file table_dataset.c.
 .PP
 References netsnmp_add_list_data(), netsnmp_create_data_list(), and SNMP_MALLOC_TYPEDEF.
 .SS "int netsnmp_register_table_data_set (\fBnetsnmp_handler_registration\fP * reginfo, netsnmp_table_data_set * data_set, \fBnetsnmp_table_registration_info\fP * table_info)"
@@ -190,7 +199,7 @@
 .in +1c
 \fBdata_set.c\fP.
 .PP
-Definition at line 113 of file table_dataset.c.
+Definition at line 381 of file table_dataset.c.
 .PP
 References netsnmp_table_registration_info_s::indexes, netsnmp_table_registration_info_s::max_column, netsnmp_table_registration_info_s::min_column, netsnmp_get_table_data_set_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), netsnmp_register_table_data(), SNMP_MALLOC_TYPEDEF, SNMP_MAX, and SNMP_MIN.
 .SS "int netsnmp_set_row_column (netsnmp_table_row * row, unsigned int column, int type, const char * value, size_t value_len)"
@@ -201,33 +210,36 @@
 .in +1c
 \fBdata_set.c\fP.
 .PP
-Definition at line 233 of file table_dataset.c.
+Definition at line 1183 of file table_dataset.c.
 .PP
 References memdup(), netsnmp_table_data_set_find_column(), SNMP_FREE, snmp_log(), and SNMP_MALLOC_TYPEDEF.
 .PP
 Referenced by netsnmp_table_data_set_create_row_from_defaults().
 .SS "netsnmp_table_row* netsnmp_table_data_set_clone_row (netsnmp_table_row * row)"
 .PP
-clones a dataset row, including all data. Definition at line 347 of file table_dataset.c.
+clones a dataset row, including all data. Definition at line 91 of file table_dataset.c.
 .PP
-References memdup(), and netsnmp_table_data_clone_row().
-.PP
-Referenced by netsnmp_table_data_set_helper_handler().
+References memdup(), netsnmp_table_data_clone_row(), and netsnmp_table_dataset_delete_row().
 .SS "netsnmp_table_row* netsnmp_table_data_set_create_row_from_defaults (netsnmp_table_data_set_storage * defrow)"
 .PP
-creates a new row from an existing defined default set Definition at line 381 of file table_dataset.c.
+creates a new row from an existing defined default set Definition at line 225 of file table_dataset.c.
 .PP
 References netsnmp_create_table_data_row(), netsnmp_mark_row_column_writable(), and netsnmp_set_row_column().
 .SS "netsnmp_table_data_set_storage* netsnmp_table_data_set_find_column (netsnmp_table_data_set_storage * start, unsigned int column)"
 .PP
-Finds a column within a given storage set, given the pointer to the start of the storage set list. Definition at line 161 of file table_dataset.c.
+Finds a column within a given storage set, given the pointer to the start of the storage set list. Definition at line 1136 of file table_dataset.c.
 .PP
-Referenced by netsnmp_extract_table_data_set_column(), netsnmp_mark_row_column_writable(), netsnmp_set_row_column(), netsnmp_table_data_set_helper_handler(), and netsnmp_table_set_add_default_row().
-.SS "int netsnmp_table_data_set_helper_handler (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"
+Referenced by netsnmp_extract_table_data_set_column(), netsnmp_mark_row_column_writable(), netsnmp_set_row_column(), and netsnmp_table_set_add_default_row().
+.SS "netsnmp_table_row* netsnmp_table_data_set_get_first_row (netsnmp_table_data_set * table)"
 .PP
-implements the table data helper. This is the routine that takes care of all SNMP requests coming into the table. Definition at line 419 of file table_dataset.c.
+returns the first row in the table Definition at line 1105 of file table_dataset.c.
 .PP
-References netsnmp_table_request_info_s::colnum, netsnmp_table_request_info_s::index_oid, netsnmp_table_request_info_s::index_oid_len, netsnmp_agent_request_info_s::mode, netsnmp_mib_handler_s::myvoid, netsnmp_create_data_list(), netsnmp_extract_table_info(), netsnmp_extract_table_row(), netsnmp_handler_registration, netsnmp_mib_handler, netsnmp_oid_stash_add_data(), netsnmp_oid_stash_get_data(), netsnmp_request_add_list_data(), netsnmp_set_request_error(), netsnmp_strdup_and_null(), netsnmp_table_data_build_result(), netsnmp_table_data_set_clone_row(), netsnmp_table_data_set_find_column(), netsnmp_table_dataset_add_row(), netsnmp_table_dataset_delete_row(), netsnmp_table_dataset_remove_and_delete_row(), netsnmp_table_dataset_replace_row(), netsnmp_request_info_s::next, netsnmp_request_info_s::processed, netsnmp_request_info_s::requestvb, netsnmp_handler_registration_s::rootoid_len, SNMP_FREE, snmp_log(), SNMP_MALLOC_TYPEDEF, variable_list::type, variable_list::val, and variable_list::val_len.
+References netsnmp_table_data_get_first_row().
+.SS "netsnmp_table_row* netsnmp_table_data_set_get_next_row (netsnmp_table_data_set * table, netsnmp_table_row * row)"
+.PP
+returns the next row in the table Definition at line 1112 of file table_dataset.c.
+.PP
+References netsnmp_table_data_get_next_row().
 .SS "NETSNMP_INLINE void netsnmp_table_dataset_add_index (netsnmp_table_data_set * table, u_char type)"
 .PP
 adds an index to the table. Call this repeatly for each index. 
@@ -236,7 +248,7 @@
 .in +1c
 \fBdata_set.c\fP.
 .PP
-Definition at line 961 of file table_dataset.c.
+Definition at line 1237 of file table_dataset.c.
 .PP
 Referenced by netsnmp_table_set_add_indexes().
 .SS "NETSNMP_INLINE void netsnmp_table_dataset_add_row (netsnmp_table_data_set * table, netsnmp_table_row * row)"
@@ -247,68 +259,62 @@
 .in +1c
 \fBdata_set.c\fP.
 .PP
-Definition at line 970 of file table_dataset.c.
+Definition at line 170 of file table_dataset.c.
 .PP
 References netsnmp_table_data_add_row().
-.PP
-Referenced by netsnmp_table_data_set_helper_handler().
 .SS "NETSNMP_INLINE void netsnmp_table_dataset_delete_all_data (netsnmp_table_data_set_storage * data)"
 .PP
-deletes all the data from this node and beyond in the linked list Definition at line 1006 of file table_dataset.c.
+deletes all the data from this node and beyond in the linked list Definition at line 147 of file table_dataset.c.
 .PP
 References netsnmp_table_dataset_delete_data().
 .PP
 Referenced by netsnmp_table_dataset_delete_row(), and netsnmp_table_dataset_remove_and_delete_row().
 .SS "NETSNMP_INLINE netsnmp_table_data_set_storage* netsnmp_table_dataset_delete_data (netsnmp_table_data_set_storage * data)"
 .PP
-deletes a single dataset table data. returns the (possibly still good) next pointer of the deleted data object. Definition at line 993 of file table_dataset.c.
+deletes a single dataset table data. returns the (possibly still good) next pointer of the deleted data object. Definition at line 134 of file table_dataset.c.
 .PP
 References SNMP_FREE.
 .PP
 Referenced by netsnmp_table_dataset_delete_all_data().
 .SS "NETSNMP_INLINE void netsnmp_table_dataset_delete_row (netsnmp_table_row * row)"
 .PP
-deletes all the data from this node and beyond in the linked list Definition at line 1016 of file table_dataset.c.
+deletes all the data from this node and beyond in the linked list Definition at line 157 of file table_dataset.c.
 .PP
 References netsnmp_table_data_delete_row(), and netsnmp_table_dataset_delete_all_data().
 .PP
-Referenced by netsnmp_table_data_set_helper_handler().
+Referenced by netsnmp_table_data_set_clone_row().
 .SS "NETSNMP_INLINE void netsnmp_table_dataset_remove_and_delete_row (netsnmp_table_data_set * table, netsnmp_table_row * row)"
 .PP
-removes a row from the table and then deletes it (and all it's data) Definition at line 1040 of file table_dataset.c.
+removes a row from the table and then deletes it (and all it's data) Definition at line 202 of file table_dataset.c.
 .PP
 References netsnmp_table_data_remove_and_delete_row(), and netsnmp_table_dataset_delete_all_data().
-.PP
-Referenced by netsnmp_table_data_set_helper_handler().
 .SS "NETSNMP_INLINE void netsnmp_table_dataset_remove_row (netsnmp_table_data_set * table, netsnmp_table_row * row)"
 .PP
-removes a row from the table, but doesn't delete/free anything Definition at line 1029 of file table_dataset.c.
+removes a row from the table, but doesn't delete/free anything Definition at line 191 of file table_dataset.c.
 .PP
 References netsnmp_table_data_remove_and_delete_row().
 .SS "NETSNMP_INLINE void netsnmp_table_dataset_replace_row (netsnmp_table_data_set * table, netsnmp_table_row * origrow, netsnmp_table_row * newrow)"
 .PP
-adds a new row to a dataset table Definition at line 980 of file table_dataset.c.
+adds a new row to a dataset table Definition at line 180 of file table_dataset.c.
 .PP
 References netsnmp_table_data_replace_row().
-.PP
-Referenced by netsnmp_table_data_set_helper_handler().
 .SS "int netsnmp_table_set_add_default_row (netsnmp_table_data_set * table_set, unsigned int column, int type, int writable, void * default_value, size_t default_value_len)"
 .PP
 adds a new default row to a table_set. Arguments should be the table_set, column number, variable type and finally a 1 if it is allowed to be writable, or a 0 if not. If the default_value field is not NULL, it will be used to populate new valuse in that column fro newly created rows. It is copied into the storage template (free your calling argument).
 .PP
-returns SNMPERR_SUCCESS or SNMPERR_FAILURE Definition at line 289 of file table_dataset.c.
+returns SNMPERR_SUCCESS or SNMPERR_FAILURE Definition at line 251 of file table_dataset.c.
 .PP
 References memdup(), netsnmp_table_data_set_find_column(), snmp_log(), and SNMP_MALLOC_TYPEDEF.
 .PP
 Referenced by netsnmp_table_set_multi_add_default_row().
 .SS "void netsnmp_table_set_add_indexes (va_alist)"
 .PP
-adds multiple indexes to a table_dataset helper object. To end the list, use a 0 after the list of ASN index types. Definition at line 1101 of file table_dataset.c.
+adds multiple indexes to a table_dataset helper object. To end the list, use a 0 after the list of ASN index types. Definition at line 1251 of file table_dataset.c.
 .PP
 References netsnmp_table_dataset_add_index().
 .SS "void netsnmp_table_set_multi_add_default_row (va_dcl)"
 .PP
-adds multiple data column definitions to each row. Functionally, this is a wrapper around calling netsnmp_table_set_add_default_row repeatedly for you. Definition at line 1062 of file table_dataset.c.
+adds multiple data column definitions to each row. Functionally, this is a wrapper around calling netsnmp_table_set_add_default_row repeatedly for you. Definition at line 314 of file table_dataset.c.
 .PP
 References netsnmp_table_set_add_default_row(), and netsnmp_table_set_multi_add_default_row().
 .PP
diff --git a/man/netsnmp_table_iterator.3 b/man/netsnmp_table_iterator.3
index 2bbbe00..c4079c2 100644
--- a/man/netsnmp_table_iterator.3
+++ b/man/netsnmp_table_iterator.3
@@ -1,4 +1,4 @@
-.TH "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." 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "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." 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -63,6 +63,12 @@
 
 .in +1c
 .ti -1c
+.RI "\fBnetsnmp_iterator_info\fP * \fBnetsnmp_iterator_create_table\fP (Netsnmp_First_Data_Point *firstDP, Netsnmp_Next_Data_Point *nextDP, Netsnmp_First_Data_Point *getidx, \fBnetsnmp_variable_list\fP *indexes)"
+.br
+.ti -1c
+.RI "void \fBnetsnmp_iterator_delete_table\fP (\fBnetsnmp_iterator_info\fP *iinfo)"
+.br
+.ti -1c
 .RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_table_iterator_handler\fP (\fBnetsnmp_iterator_info\fP *iinfo)"
 .br
 .RI "\fIreturns a netsnmp_mib_handler object for the table_iterator helper \fP"
@@ -81,7 +87,30 @@
 .ti -1c
 .RI "int \fBnetsnmp_table_iterator_helper_handler\fP (\fBnetsnmp_mib_handler\fP *handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
 .br
-.RI "\fIimplements the table_iterator helper \fP"
+.ti -1c
+.RI "void * \fBnetsnmp_iterator_row_first\fP (\fBnetsnmp_iterator_info\fP *iinfo)"
+.br
+.ti -1c
+.RI "void * \fBnetsnmp_iterator_row_get\fP (\fBnetsnmp_iterator_info\fP *iinfo, void *row)"
+.br
+.ti -1c
+.RI "void * \fBnetsnmp_iterator_row_next\fP (\fBnetsnmp_iterator_info\fP *iinfo, void *row)"
+.br
+.ti -1c
+.RI "void * \fBnetsnmp_iterator_row_get_byidx\fP (\fBnetsnmp_iterator_info\fP *iinfo, \fBnetsnmp_variable_list\fP *indexes)"
+.br
+.ti -1c
+.RI "void * \fBnetsnmp_iterator_row_next_byidx\fP (\fBnetsnmp_iterator_info\fP *iinfo, \fBnetsnmp_variable_list\fP *indexes)"
+.br
+.ti -1c
+.RI "void * \fBnetsnmp_iterator_row_get_byoid\fP (\fBnetsnmp_iterator_info\fP *iinfo, oid *instance, size_t len)"
+.br
+.ti -1c
+.RI "void * \fBnetsnmp_iterator_row_next_byoid\fP (\fBnetsnmp_iterator_info\fP *iinfo, oid *instance, size_t len)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_iterator_row_count\fP (\fBnetsnmp_iterator_info\fP *iinfo)"
+.br
 .in -1c
 .SS "Variables"
 
@@ -118,7 +147,7 @@
 .PP 
 .SS "struct \fBnetsnmp_iterator_info_s\fP \fBnetsnmp_iterator_info\fP"
 .PP
-Typedefs the \fBnetsnmp_iterator_info_s\fP struct into netsnmp_iterator_info. Referenced by netsnmp_get_table_iterator_handler(), netsnmp_register_table_iterator(), and netsnmp_table_iterator_helper_handler().
+Typedefs the \fBnetsnmp_iterator_info_s\fP struct into netsnmp_iterator_info. Referenced by netsnmp_get_table_iterator_handler(), and netsnmp_register_table_iterator().
 .SH "Function Documentation"
 .PP 
 .SS "void * netsnmp_extract_iterator_context (\fBnetsnmp_request_info\fP * request)"
@@ -135,19 +164,19 @@
 a void pointer(request->parent_data->data), otherwise NULL is returned if request is NULL or request->parent_data is NULL or request->parent_data object is not found.the net 
 .RE
 .PP
-Definition at line 163 of file table_iterator.c.
+Definition at line 228 of file table_iterator.c.
 .PP
 References netsnmp_request_get_list_data().
 .SS "\fBnetsnmp_mib_handler\fP * netsnmp_get_table_iterator_handler (\fBnetsnmp_iterator_info\fP * iinfo)"
 .PP
-returns a netsnmp_mib_handler object for the table_iterator helper Definition at line 106 of file table_iterator.c.
+returns a netsnmp_mib_handler object for the table_iterator helper Definition at line 168 of file table_iterator.c.
 .PP
 References netsnmp_mib_handler_s::myvoid, netsnmp_create_handler(), netsnmp_iterator_info, and netsnmp_mib_handler.
 .PP
 Referenced by netsnmp_register_table_iterator().
 .SS "void netsnmp_insert_iterator_context (\fBnetsnmp_request_info\fP * request, void * data)"
 .PP
-inserts table_iterator specific data for a newly created row into a request Definition at line 171 of file table_iterator.c.
+inserts table_iterator specific data for a newly created row into a request Definition at line 236 of file table_iterator.c.
 .PP
 References netsnmp_table_request_info_s::indexes, netsnmp_create_data_list(), netsnmp_extract_table_info(), netsnmp_request_add_list_data(), netsnmp_request_info_s::next, netsnmp_request_info_s::prev, and snmp_oid_compare().
 .SS "int netsnmp_register_table_iterator (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_iterator_info\fP * iinfo)"
@@ -166,11 +195,6 @@
 MIB_REGISTERED_OK is returned if the registration was a success. Failures are MIB_REGISTRATION_FAILED, MIB_DUPLICATE_REGISTRATION. If iinfo is NULL, SNMPERR_GENERR is returned. 
 .RE
 .PP
-Definition at line 138 of file table_iterator.c.
+Definition at line 199 of file table_iterator.c.
 .PP
-References netsnmp_get_table_iterator_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), netsnmp_iterator_info, netsnmp_register_table(), and netsnmp_iterator_info_s::table_reginfo.
-.SS "int netsnmp_table_iterator_helper_handler (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"
-.PP
-implements the table_iterator helper Definition at line 309 of file table_iterator.c.
-.PP
-References netsnmp_table_request_info_s::colnum, netsnmp_data_list_s::data, netsnmp_iterator_info_s::flags, netsnmp_iterator_info_s::free_data_context, netsnmp_iterator_info_s::free_loop_context, netsnmp_iterator_info_s::free_loop_context_at_end, netsnmp_iterator_info_s::get_first_data_point, netsnmp_iterator_info_s::get_next_data_point, netsnmp_handler_registration_s::handlerName, netsnmp_table_request_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, netsnmp_call_next_handler(), netsnmp_check_getnext_reply(), netsnmp_create_data_list(), netsnmp_extract_stash_cache(), netsnmp_extract_table_info(), netsnmp_find_table_registration_info(), netsnmp_free_request_data_sets(), netsnmp_get_list_node(), netsnmp_handler_registration, netsnmp_iterator_info, netsnmp_mib_handler, netsnmp_oid_stash_add_data(), netsnmp_request_add_list_data(), netsnmp_request_get_list_data(), netsnmp_request_info_s::next, netsnmp_request_info_s::parent_data, netsnmp_request_info_s::processed, netsnmp_request_info_s::requestvb, netsnmp_handler_registration_s::rootoid, netsnmp_handler_registration_s::rootoid_len, SNMP_FREE, snmp_log(), SNMP_MALLOC_TYPEDEF, snmp_oid_compare(), netsnmp_request_info_s::subtree, netsnmp_iterator_info_s::table_reginfo, and variable_list::type.
+References netsnmp_table_registration_info_s::indexes, netsnmp_iterator_info_s::indexes, netsnmp_handler_registration_s::modes, netsnmp_get_table_iterator_handler(), netsnmp_handler_registration, netsnmp_inject_handler(), netsnmp_iterator_info, netsnmp_register_table(), and netsnmp_iterator_info_s::table_reginfo.
diff --git a/man/netsnmp_util.3 b/man/netsnmp_util.3
index 59c7a39..335428d 100644
--- a/man/netsnmp_util.3
+++ b/man/netsnmp_util.3
@@ -1,4 +1,4 @@
-.TH "Memory Utility Routines" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "Memory Utility Routines" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -138,11 +138,11 @@
 .br
 .RI "\fIconverts binary to hexidecimal \fP"
 .ti -1c
-.RI "int \fBnetsnmp_hex_to_binary\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const char *hex, const char *delim)"
+.RI "int \fBnetsnmp_hex_to_binary\fP (u_char **buf, size_t *buf_len, size_t *offset, int allow_realloc, const char *hex, const char *delim)"
 .br
 .RI "\fIconvert an ASCII hex string (with specified delimiters) to binary \fP"
 .ti -1c
-.RI "int \fBsnmp_hex_to_binary\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const char *hex)"
+.RI "int \fBsnmp_hex_to_binary\fP (u_char **buf, size_t *buf_len, size_t *offset, int allow_realloc, const char *hex)"
 .br
 .RI "\fIconvert an ASCII hex string to binary \fP"
 .ti -1c
@@ -210,7 +210,7 @@
 .SS "#define DIFFTIMEVAL(now, then, diff)"
 .PP
 \fBValue:\fP.nf
-{                                                       \
+{                                                        \
         now.tv_sec--;                                   \
         now.tv_usec += 1000000L;                        \
         diff.tv_sec  = now.tv_sec  - then.tv_sec;       \
@@ -245,7 +245,7 @@
 .PP
 Frees a pointer only if it is !NULL and sets its value to NULL. Definition at line 54 of file tools.h.
 .PP
-Referenced by build_oid_segment(), fprint_description(), fprint_objid(), fprint_variable(), init_mib(), netsnmp_cache_reqinfo_extract(), netsnmp_cache_reqinfo_insert(), netsnmp_create_handler(), netsnmp_fixup_mib_directory(), netsnmp_free_all_list_data(), netsnmp_free_delegated_cache(), netsnmp_free_list_data(), netsnmp_getenv(), netsnmp_handler_free(), netsnmp_handler_registration_free(), netsnmp_register_old_api(), netsnmp_set_mib_directory(), netsnmp_set_row_column(), netsnmp_table_build_oid_from_index(), netsnmp_table_data_delete_row(), netsnmp_table_data_set_helper_handler(), netsnmp_table_dataset_delete_data(), netsnmp_table_iterator_helper_handler(), read_objid(), shutdown_mib(), snmp_unregister_callback(), and unregister_config_handler().
+Referenced by _sess_read(), build_oid_segment(), fprint_description(), fprint_objid(), fprint_variable(), init_mib(), netsnmp_cache_reqinfo_extract(), netsnmp_cache_reqinfo_insert(), netsnmp_create_handler(), netsnmp_fixup_mib_directory(), netsnmp_free_all_list_data(), netsnmp_free_delegated_cache(), netsnmp_free_list_data(), netsnmp_getenv(), netsnmp_handler_free(), netsnmp_handler_registration_free(), netsnmp_register_old_api(), netsnmp_row_merge_helper_handler(), netsnmp_set_mib_directory(), netsnmp_set_row_column(), netsnmp_table_build_oid_from_index(), netsnmp_table_data_delete_row(), netsnmp_table_dataset_delete_data(), netsnmp_tdata_delete_row(), netsnmp_tdata_delete_table(), netsnmp_wrap_up_request(), read_objid(), shutdown_mib(), snmp_unregister_callback(), and unregister_config_handler().
 .SS "#define SNMP_MALLOC_STRUCT(s)   (struct s *) calloc(1, sizeof(struct s))"
 .PP
 Mallocs memory of sizeof(struct s), zeros it and returns a pointer to it. Definition at line 65 of file tools.h.
@@ -255,7 +255,7 @@
 .PP
 Mallocs memory of sizeof(t), zeros it and returns a pointer to it. Definition at line 69 of file tools.h.
 .PP
-Referenced by netsnmp_baby_steps_handler_get(), netsnmp_cache_create(), netsnmp_container_table_handler_get(), netsnmp_create_data_list(), netsnmp_create_delegated_cache(), netsnmp_create_handler(), netsnmp_create_table_data(), netsnmp_create_table_data_row(), netsnmp_create_table_data_set(), netsnmp_handler_registration_create(), netsnmp_mark_row_column_writable(), netsnmp_mode_end_call_add_mode_callback(), netsnmp_oid_stash_create_sized_node(), netsnmp_old_api_helper(), netsnmp_register_auto_data_table(), netsnmp_register_mib_table_row(), netsnmp_register_old_api(), netsnmp_register_save_list(), netsnmp_register_table_data_set(), netsnmp_set_row_column(), netsnmp_table_container_register(), netsnmp_table_data_set_helper_handler(), netsnmp_table_iterator_helper_handler(), netsnmp_table_set_add_default_row(), and table_helper_handler().
+Referenced by netsnmp_baby_steps_handler_get(), netsnmp_cache_create(), netsnmp_container_table_handler_get(), netsnmp_create_data_list(), netsnmp_create_delegated_cache(), netsnmp_create_handler(), netsnmp_create_table_data(), netsnmp_create_table_data_row(), netsnmp_create_table_data_set(), netsnmp_handler_registration_create(), netsnmp_mark_row_column_writable(), netsnmp_mode_end_call_add_mode_callback(), netsnmp_oid_stash_create_sized_node(), netsnmp_old_api_helper(), netsnmp_register_auto_data_table(), netsnmp_register_mib_table_row(), netsnmp_register_old_api(), netsnmp_register_save_list(), netsnmp_register_table_data_set(), netsnmp_row_merge_status_get(), netsnmp_set_row_column(), netsnmp_table_container_register(), netsnmp_table_set_add_default_row(), netsnmp_tdata_create_row(), netsnmp_tdata_create_table(), and table_helper_handler().
 .SS "#define SNMP_MAX(a, b)   ((a) > (b) ? (a) : (b))"
 .PP
 Computers the maximum of a and b. Definition at line 86 of file tools.h.
@@ -265,7 +265,7 @@
 .PP
 Computers the minimum of a and b. Definition at line 90 of file tools.h.
 .PP
-Referenced by netsnmp_oid_find_prefix(), netsnmp_register_table_data_set(), and netsnmp_table_data_helper_handler().
+Referenced by netsnmp_oid_find_prefix(), and netsnmp_register_table_data_set().
 .SS "#define SNMP_SWIPE_MEM(n, s)   do { if (n) free((void *)n); n = s; s=NULL; } while(0)"
 .PP
 Frees pointer n only if it is !NULL, sets n to s and sets s to NULL. Definition at line 58 of file tools.h.
@@ -276,26 +276,24 @@
 .PP 
 .SS "long atime_diff (marker_t first, marker_t second)"
 .PP
-Returns the difference (in msec) between the two markers. Definition at line 792 of file tools.c.
+Returns the difference (in msec) between the two markers. Definition at line 795 of file tools.c.
 .PP
 Referenced by atime_ready(), and marker_tticks().
 .SS "marker_t atime_newMarker (void)"
 .PP
-create a new time marker. NOTE: Caller must free time marker when no longer needed. Definition at line 768 of file tools.c.
+create a new time marker. NOTE: Caller must free time marker when no longer needed. Definition at line 771 of file tools.c.
 .PP
-Referenced by atime_ready(), marker_tticks(), netsnmp_stash_cache_update(), and uatime_ready().
+Referenced by atime_ready(), marker_tticks(), and uatime_ready().
 .SS "int atime_ready (marker_t pm, int deltaT)"
 .PP
-Test: Has (marked time plus delta) exceeded current time (in msec) ? Returns 0 if test fails or cannot be tested (no marker). Definition at line 847 of file tools.c.
+Test: Has (marked time plus delta) exceeded current time (in msec) ? Returns 0 if test fails or cannot be tested (no marker). Definition at line 850 of file tools.c.
 .PP
 References atime_diff(), and atime_newMarker().
 .PP
-Referenced by netsnmp_cache_check_expired(), and netsnmp_stash_cache_update().
+Referenced by netsnmp_cache_check_expired().
 .SS "void atime_setMarker (marker_t pm)"
 .PP
-set a time marker. Definition at line 779 of file tools.c.
-.PP
-Referenced by netsnmp_stash_cache_update().
+set a time marker. Definition at line 782 of file tools.c.
 .SS "u_int binary_to_hex (const u_char * input, size_t len, char ** output)"
 .PP
 converts binary to hexidecimal \fBParameters:\fP
@@ -312,7 +310,7 @@
 olen Length of output string not including NULL terminator.
 .RE
 .PP
-FIX Is there already one of these in the UCD SNMP codebase? The old one should be used, or this one should be moved to snmplib/snmp_api.c. Definition at line 285 of file tools.c.
+FIX Is there already one of these in the UCD SNMP codebase? The old one should be used, or this one should be moved to snmplib/snmp_api.c. Definition at line 288 of file tools.c.
 .SS "void free_zero (void * buf, size_t size)"
 .PP
 zeros memory before freeing it. \fBParameters:\fP
@@ -322,7 +320,7 @@
 \fIsize\fP Number of bytes in buf. 
 .RE
 .PP
-Definition at line 183 of file tools.c.
+Definition at line 186 of file tools.c.
 .PP
 Referenced by hex_to_binary2(), and malloc_random().
 .SS "int hex_to_binary2 (const u_char * input, size_t len, char ** output)"
@@ -343,7 +341,7 @@
 .PP
 Input of an odd length is right aligned.
 .PP
-FIX Another version of 'hex-to-binary' which takes odd length input strings. It also allocates the memory to hold the binary data. Should be integrated with the official hex_to_binary() function. Definition at line 322 of file tools.c.
+FIX Another version of 'hex-to-binary' which takes odd length input strings. It also allocates the memory to hold the binary data. Should be integrated with the official hex_to_binary() function. Definition at line 325 of file tools.c.
 .PP
 References free_zero().
 .SS "u_char* malloc_random (size_t * size)"
@@ -360,12 +358,12 @@
 a malloced buffer 
 .RE
 .PP
-Definition at line 203 of file tools.c.
+Definition at line 206 of file tools.c.
 .PP
 References free_zero().
 .SS "int marker_tticks (marker_t pm)"
 .PP
-Return the number of timeTicks since the given marker. Definition at line 895 of file tools.c.
+Return the number of timeTicks since the given marker. Definition at line 898 of file tools.c.
 .PP
 References atime_diff(), and atime_newMarker().
 .SS "int memdup (u_char ** to, const u_char * from, size_t size)"
@@ -386,17 +384,17 @@
 SNMPERR_SUCCESS on success, SNMPERR_GENERR on failure. 
 .RE
 .PP
-Definition at line 234 of file tools.c.
+Definition at line 237 of file tools.c.
 .PP
-Referenced by netsnmp_handler_registration_create(), netsnmp_handler_registration_dup(), netsnmp_register_old_api(), netsnmp_set_row_column(), netsnmp_table_data_clone_row(), netsnmp_table_data_set_clone_row(), and netsnmp_table_set_add_default_row().
+Referenced by netsnmp_handler_registration_create(), netsnmp_handler_registration_dup(), netsnmp_instance_num_file_handler(), netsnmp_register_old_api(), netsnmp_set_row_column(), netsnmp_table_data_clone_row(), netsnmp_table_data_set_clone_row(), netsnmp_table_set_add_default_row(), netsnmp_tdata_clone_row(), and netsnmp_tdata_copy_row().
 .SS "char* netsnmp_getenv (const char * name)"
 .PP
-Non Windows: Returns a pointer to the desired environment variable or NULL if the environment variable does not exist. Windows: Returns a pointer to the desired environment variable if it exists. If it does not, the variable is looked up in the registry in HKCU-SNMP or HKLM-SNMP (whichever it finds first) and stores the result in the environment variable. It then returns a pointer to environment variable. Definition at line 923 of file tools.c.
+Non Windows: Returns a pointer to the desired environment variable or NULL if the environment variable does not exist. Windows: Returns a pointer to the desired environment variable if it exists. If it does not, the variable is looked up in the registry in HKCU-SNMP or HKLM-SNMP (whichever it finds first) and stores the result in the environment variable. It then returns a pointer to environment variable. Definition at line 926 of file tools.c.
 .PP
 References SNMP_FREE.
 .PP
 Referenced by init_mib(), netsnmp_fixup_mib_directory(), netsnmp_get_mib_directory(), and read_config_store().
-.SS "int netsnmp_hex_to_binary (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const char * hex, const char * delim)"
+.SS "int netsnmp_hex_to_binary (u_char ** buf, size_t * buf_len, size_t * offset, int allow_realloc, const char * hex, const char * delim)"
 .PP
 convert an ASCII hex string (with specified delimiters) to binary \fBParameters:\fP
 .RS 4
@@ -404,7 +402,7 @@
 .br
 \fIbuf_len\fP pointer to a size_t containing the initial size of buf.
 .br
-\fIout_len\fP On input, a pointer to a size_t indicating an offset into buf. The binary data will be stored at this offset. On output, this pointer will have updated the offset to be the first byte after the converted data.
+\fIoffset\fP On input, a pointer to a size_t indicating an offset into buf. The binary data will be stored at this offset. On output, this pointer will have updated the offset to be the first byte after the converted data.
 .br
 \fIallow_realloc\fP If true, the buffer can be reallocated. If false, and the buffer is not large enough to contain the string, an error will be returned.
 .br
@@ -420,17 +418,15 @@
 \fI0\fP error 
 .RE
 .PP
-Definition at line 423 of file tools.c.
+Definition at line 426 of file tools.c.
 .PP
 References snmp_realloc().
 .PP
 Referenced by snmp_hex_to_binary().
 .SS "char* netsnmp_strdup_and_null (const u_char * from, size_t from_len)"
 .PP
-copies a (possible) unterminated string of a given length into a new buffer and null terminates it as well (new buffer MAY be one byte longer to account for this Definition at line 253 of file tools.c.
-.PP
-Referenced by netsnmp_table_data_set_helper_handler().
-.SS "int snmp_hex_to_binary (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const char * hex)"
+copies a (possible) unterminated string of a given length into a new buffer and null terminates it as well (new buffer MAY be one byte longer to account for this Definition at line 256 of file tools.c.
+.SS "int snmp_hex_to_binary (u_char ** buf, size_t * buf_len, size_t * offset, int allow_realloc, const char * hex)"
 .PP
 convert an ASCII hex string to binary \fBNote:\fP
 .RS 4
@@ -446,7 +442,7 @@
 \fI0\fP error 
 .RE
 .PP
-Definition at line 482 of file tools.c.
+Definition at line 485 of file tools.c.
 .PP
 References netsnmp_hex_to_binary().
 .SS "int snmp_realloc (u_char ** buf, size_t * buf_len)"
@@ -465,19 +461,19 @@
 The current re-allocation algorithm is to increase the buffer size by whichever is the greater of 256 bytes or the current buffer size, up to a maximum increase of 8192 bytes. 
 .RE
 .PP
-Definition at line 119 of file tools.c.
+Definition at line 122 of file tools.c.
 .PP
 Referenced by _sprint_hexstring_line(), netsnmp_hex_to_binary(), sprint_realloc_asciistring(), sprint_realloc_ipaddress(), sprint_realloc_networkaddress(), and sprint_realloc_octet_string().
 .SS "u_long uatime_diff (marker_t first, marker_t second)"
 .PP
-Returns the difference (in u_long msec) between the two markers. Definition at line 809 of file tools.c.
+Returns the difference (in u_long msec) between the two markers. Definition at line 812 of file tools.c.
 .PP
 Referenced by uatime_ready().
 .SS "u_long uatime_hdiff (marker_t first, marker_t second)"
 .PP
-Returns the difference (in u_long 1/100th secs) between the two markers (functionally this is what sysUpTime needs). Definition at line 827 of file tools.c.
+Returns the difference (in u_long 1/100th secs) between the two markers (functionally this is what sysUpTime needs). Definition at line 830 of file tools.c.
 .SS "int uatime_ready (marker_t pm, unsigned int deltaT)"
 .PP
-Test: Has (marked time plus delta) exceeded current time (in msec) ? Returns 0 if test fails or cannot be tested (no marker). Definition at line 869 of file tools.c.
+Test: Has (marked time plus delta) exceeded current time (in msec) ? Returns 0 if test fails or cannot be tested (no marker). Definition at line 872 of file tools.c.
 .PP
 References atime_newMarker(), and uatime_diff().
diff --git a/man/netsnmp_utilities.3 b/man/netsnmp_utilities.3
index 995dbff..450acb0 100644
--- a/man/netsnmp_utilities.3
+++ b/man/netsnmp_utilities.3
@@ -1,4 +1,4 @@
-.TH "utility_handlers: simplify request processing" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "utility_handlers: simplify request processing" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -62,6 +62,13 @@
 .br
 .RI "\fIThis functionally passes in one request at a time into lower handlers rather than a whole bunch of requests at once. \fP"
 .PP
+.in +1c
+
+.ti -1c
+.RI "group\fBstash_to_next: convert GET_STASH requests into GETNEXT requests for the handler.\fP"
+.br
+.RI "\fIThe purpose of this handler is to convert a GET_STASH auto-cache request to a series of GETNEXT requests. \fP"
+.PP
 
 .in -1c
 .SH "Detailed Description"
diff --git a/man/netsnmp_variable_list.3 b/man/netsnmp_variable_list.3
index 38abf57..448b5b9 100644
--- a/man/netsnmp_variable_list.3
+++ b/man/netsnmp_variable_list.3
@@ -1,4 +1,4 @@
-.TH "variable_list" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "variable_list" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -66,36 +66,36 @@
 .PP
 \fBnotification.c\fP.
 .PP
-Definition at line 522 of file snmp_api.h.
+Definition at line 525 of file snmp_api.h.
 .SH "Field Documentation"
 .PP 
 .SS "u_char \fBvariable_list::buf\fP[40]"
 .PP
-90 percentile < 40. Definition at line 538 of file snmp_api.h.
+90 percentile < 40. Definition at line 541 of file snmp_api.h.
 .SS "void* \fBvariable_list::data\fP"
 .PP
-(Opaque) hook for additional data Definition at line 540 of file snmp_api.h.
+(Opaque) hook for additional data Definition at line 543 of file snmp_api.h.
 .SS "void(* \fBvariable_list::dataFreeHook\fP)(void *)"
 .PP
 callback to free above 
 .SS "oid* \fBvariable_list::name\fP"
 .PP
-Object identifier of variable. Definition at line 526 of file snmp_api.h.
+Object identifier of variable. Definition at line 529 of file snmp_api.h.
 .PP
-Referenced by build_oid_segment(), check_getnext_results(), netsnmp_add_varbind_to_cache(), netsnmp_bulk_to_next_fix_requests(), netsnmp_check_getnext_reply(), netsnmp_old_api_helper(), netsnmp_row_merge_helper_handler(), netsnmp_table_build_oid(), netsnmp_table_build_oid_from_index(), netsnmp_table_build_result(), netsnmp_table_data_helper_handler(), netsnmp_table_iterator_helper_handler(), and table_helper_handler().
+Referenced by _data_lookup(), build_oid_segment(), check_getnext_results(), netsnmp_add_varbind_to_cache(), netsnmp_bulk_to_next_fix_requests(), netsnmp_check_getnext_reply(), netsnmp_old_api_helper(), netsnmp_row_merge_helper_handler(), netsnmp_table_build_oid(), netsnmp_table_build_oid_from_index(), netsnmp_table_build_result(), netsnmp_wrap_up_request(), and table_helper_handler().
 .SS "size_t \fBvariable_list::name_length\fP"
 .PP
-number of subid's in name Definition at line 528 of file snmp_api.h.
+number of subid's in name Definition at line 531 of file snmp_api.h.
 .PP
-Referenced by build_oid_segment(), check_getnext_results(), netsnmp_add_varbind_to_cache(), netsnmp_bulk_to_next_fix_requests(), netsnmp_check_getnext_reply(), netsnmp_old_api_helper(), netsnmp_row_merge_helper_handler(), netsnmp_table_build_oid(), netsnmp_table_build_oid_from_index(), netsnmp_table_data_helper_handler(), netsnmp_table_iterator_helper_handler(), and table_helper_handler().
+Referenced by _data_lookup(), build_oid_segment(), check_getnext_results(), netsnmp_add_varbind_to_cache(), netsnmp_bulk_to_next_fix_requests(), netsnmp_check_getnext_reply(), netsnmp_old_api_helper(), netsnmp_row_merge_helper_handler(), netsnmp_table_build_oid(), netsnmp_table_build_oid_from_index(), netsnmp_wrap_up_request(), and table_helper_handler().
 .SS "oid \fBvariable_list::name_loc\fP[MAX_OID_LEN]"
 .PP
-90 percentile < 24. Definition at line 536 of file snmp_api.h.
+90 percentile < 24. Definition at line 539 of file snmp_api.h.
 .PP
 Referenced by build_oid_segment(), netsnmp_table_build_oid_from_index(), netsnmp_table_build_result(), and table_helper_handler().
 .SS "struct \fBvariable_list\fP* \fBvariable_list::next_variable\fP"
 .PP
-NULL for last variable. Definition at line 524 of file snmp_api.h.
+NULL for last variable. Definition at line 527 of file snmp_api.h.
 .PP
 Referenced by handle_getnext_loop(), handle_pdu(), netsnmp_bulk_to_next_fix_requests(), and netsnmp_wrap_up_request().
 .SS "u_char \fBvariable_list::type\fP"
@@ -106,9 +106,9 @@
 .in +1c
 \fBdelayed_instance.c\fP.
 .PP
-Definition at line 530 of file snmp_api.h.
+Definition at line 533 of file snmp_api.h.
 .PP
-Referenced by _request_set_error(), build_oid_segment(), check_getnext_results(), handle_pdu(), netsnmp_add_varbind_to_cache(), netsnmp_bulk_to_next_fix_requests(), netsnmp_check_getnext_reply(), netsnmp_old_api_helper(), netsnmp_table_data_helper_handler(), netsnmp_table_data_set_helper_handler(), netsnmp_table_iterator_helper_handler(), netsnmp_wrap_up_request(), snmp_set_var_typed_value(), sprint_realloc_bitstring(), sprint_realloc_by_type(), sprint_realloc_counter(), sprint_realloc_counter64(), sprint_realloc_gauge(), sprint_realloc_integer(), sprint_realloc_ipaddress(), sprint_realloc_networkaddress(), sprint_realloc_null(), sprint_realloc_object_identifier(), sprint_realloc_octet_string(), sprint_realloc_opaque(), sprint_realloc_timeticks(), sprint_realloc_uinteger(), and table_helper_handler().
+Referenced by _data_lookup(), _request_set_error(), build_oid_segment(), check_getnext_results(), handle_pdu(), netsnmp_add_varbind_to_cache(), netsnmp_bulk_to_next_fix_requests(), netsnmp_check_getnext_reply(), netsnmp_instance_num_file_handler(), netsnmp_old_api_helper(), netsnmp_wrap_up_request(), snmp_set_var_typed_value(), sprint_realloc_bitstring(), sprint_realloc_by_type(), sprint_realloc_counter(), sprint_realloc_counter64(), sprint_realloc_gauge(), sprint_realloc_integer(), sprint_realloc_ipaddress(), sprint_realloc_networkaddress(), sprint_realloc_null(), sprint_realloc_object_identifier(), sprint_realloc_octet_string(), sprint_realloc_opaque(), sprint_realloc_timeticks(), sprint_realloc_uinteger(), and table_helper_handler().
 .SS "netsnmp_vardata \fBvariable_list::val\fP"
 .PP
 value of variable 
@@ -117,14 +117,14 @@
 .in +1c
 \fBdelayed_instance.c\fP.
 .PP
-Definition at line 532 of file snmp_api.h.
+Definition at line 535 of file snmp_api.h.
 .PP
-Referenced by build_oid_segment(), netsnmp_check_getnext_reply(), netsnmp_old_api_helper(), netsnmp_table_data_set_helper_handler(), sprint_realloc_bitstring(), sprint_realloc_counter(), sprint_realloc_counter64(), sprint_realloc_gauge(), sprint_realloc_integer(), sprint_realloc_ipaddress(), sprint_realloc_networkaddress(), sprint_realloc_object_identifier(), sprint_realloc_octet_string(), sprint_realloc_opaque(), sprint_realloc_timeticks(), and sprint_realloc_uinteger().
+Referenced by build_oid_segment(), netsnmp_check_getnext_reply(), netsnmp_instance_num_file_handler(), netsnmp_old_api_helper(), sprint_realloc_bitstring(), sprint_realloc_counter(), sprint_realloc_counter64(), sprint_realloc_gauge(), sprint_realloc_integer(), sprint_realloc_ipaddress(), sprint_realloc_networkaddress(), sprint_realloc_object_identifier(), sprint_realloc_octet_string(), sprint_realloc_opaque(), sprint_realloc_timeticks(), and sprint_realloc_uinteger().
 .SS "size_t \fBvariable_list::val_len\fP"
 .PP
-the length of the value to be copied into buf Definition at line 534 of file snmp_api.h.
+the length of the value to be copied into buf Definition at line 537 of file snmp_api.h.
 .PP
-Referenced by build_oid_segment(), netsnmp_check_getnext_reply(), netsnmp_old_api_helper(), netsnmp_table_data_set_helper_handler(), sprint_realloc_bitstring(), sprint_realloc_networkaddress(), sprint_realloc_object_identifier(), sprint_realloc_octet_string(), and sprint_realloc_opaque().
+Referenced by build_oid_segment(), netsnmp_check_getnext_reply(), netsnmp_old_api_helper(), sprint_realloc_bitstring(), sprint_realloc_networkaddress(), sprint_realloc_object_identifier(), sprint_realloc_octet_string(), and sprint_realloc_opaque().
 
 .SH "Author"
 .PP 
diff --git a/man/netsnmp_watcher.3 b/man/netsnmp_watcher.3
index 7a80b7c..c6d27f9 100644
--- a/man/netsnmp_watcher.3
+++ b/man/netsnmp_watcher.3
@@ -1,4 +1,4 @@
-.TH "watcher: watch a specified variable and process" 3 "24 Nov 2004" "net-snmp" \" -*- nroff -*-
+.TH "watcher: watch a specified variable and process" 3 "31 Oct 2005" "net-snmp" \" -*- nroff -*-
 .ad l
 .nh
 .SH NAME
@@ -27,6 +27,9 @@
 .RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_watched_timestamp_handler\fP (void)"
 .br
 .ti -1c
+.RI "int \fBnetsnmp_watched_timestamp_register\fP (\fBnetsnmp_mib_handler\fP *whandler, \fBnetsnmp_handler_registration\fP *reginfo, marker_t timestamp)"
+.br
+.ti -1c
 .RI "int \fBnetsnmp_register_watched_timestamp\fP (\fBnetsnmp_handler_registration\fP *reginfo, marker_t timestamp)"
 .br
 .ti -1c
@@ -41,6 +44,27 @@
 .ti -1c
 .RI "int \fBnetsnmp_watched_spinlock_handler\fP (\fBnetsnmp_mib_handler\fP *handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
 .br
+.ti -1c
+.RI "int \fBnetsnmp_register_ulong_scalar\fP (const char *name, oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_read_only_ulong_scalar\fP (const char *name, oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_long_scalar\fP (const char *name, oid *reg_oid, size_t reg_oid_len, long *it, Netsnmp_Node_Handler *subhandler)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_read_only_long_scalar\fP (const char *name, oid *reg_oid, size_t reg_oid_len, long *it, Netsnmp_Node_Handler *subhandler)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_int_scalar\fP (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_read_only_int_scalar\fP (const char *name, oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler)"
+.br
+.ti -1c
+.RI "int \fBnetsnmp_register_read_only_counter32_scalar\fP (const char *name, oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler)"
+.br
 .in -1c
 .SH "Detailed Description"
 .PP