diff --git a/CHANGES b/CHANGES
index 72c5233..d02578f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,104 +4,104 @@
 listing of all changes made to the code.
 
 
-*5.5.2*
+*5.6.2*
 
     snmplib:
       - [PATCH 2835577]: Replace SNMP_ZERO of arrays with a memset.
-      - [PATCH 3183000]: Fix calculation of common OID prefix length
+      - [PATCH 3510454]: Allow the use of 0.0.0.0/0 as alias for default
       - [PATCH 3526599]: Don't hang on retried failing SNMPv3 responses
+      - [BUG 3134323]: Fix crash when comparing invalid OIDs
       - Avoid unnecessary casts when using netsnmp_set_row_column()
-      - Declare "type" argument of se_store_xxx() as const
-      - Make it explicit that MAX_SUBID is an unsigned constant
-      - Prevent gcc ped-warning for NETSNMP_REMOVE_CONST
-      - Simplify implementation of functions manipulating 64-bit numbers.
-      - Simplify the se_store_enum_list() implementation
+      - Eliminate assorted dead variables
 
     snmpd:
-      - [BUG 3439234]: Correct dependencies of ucd-snmp/{pass,pass_persist}
-      - [BUG 3439234]: Move netsnmp_pass_str_to_errno to pass_common
-      - [BUG 3440752]: Report speed correctly for unusual E'net interfaces
-      - [BUG 3463767]: Handle parsing subidentifiers > 2^31
+      - [PATCH 2941811]: Handle successful requests with reqID 0
+      - [PATCH 3096725]: sysORTable registation for notification log mib
+      - [PATCH 3479740]: Fix hrSWRunPerf statistics
+      - [PATCH 3487867]: Don't skip missing ifXTable entries (ifConnectorPresent FALSE)
+      - [PATCH 3487919]: Fix compilation when caching is disabled
+      - [PATCH 3495697]: Store persistent snmpTarget table changes
       - [BUG 3526549]: CVE-2012-2141 Array index error leading to crash
       - [BUG 3532090]: Fix high ifIndex values crashing hrDeviceDescr
-      - [PATCH 3175640]: Use IP_RECVDSTADDR sockopt where available (*BSD)
-      - [PATCH 3198781]: Fix compilation of disman/{ping,traceroute} modules
-      - [PATCH 3402376]: Recognise ReiserFS systems
-      - [PATCH 3410050]: Skip already-'processed' varbinds
-      - [PATCH 3410059]: Fix sparsely augmenting trigger tables
-      - [PATCH 3447444]: Fix SIG_PIPE handling
-      - [PATCH 3447671]: Fix override handling of OID values
-      - [PATCH 3453868]: Factor common code into pass_common
-      - [PATCH 3479740]: Fix hrSWRunPerf statistics
-      - [PATCH 3487919]: Fix compilation when caching is disabled
-      - [PATCH 3487867]: Don't skip missing ifXTable entries (ifConnectorPresent FALSE)
-      - [PATCH 3495697]: Store persistent snmpTarget table changes
       - Added OCFS2 (Oracle Cluster FS) to hrStorageTable and hrFSTable
-      - DISMAN-SCHEDULER-MIB: Handle 32-char contextName values correctly.
-      - IF-MIB::ifType: Report InfiniBand interfaces correctly
-      - UDP-MIB: Report proper address in udpLocalAddress instead of 0.0.0.0.
-      - Eliminate various dead variables
-      - Return error instead of exiting on init problems
-      - Make the configuration of the dlmod module fail rather than
-	generate a dummy module if the dlopen function isn't available.
-      - Smux: simplify smux_list_detach()
+      - Eliminate assorted dead variables
+      - UDP-MIB: Report proper udpLocalAddress (instead of 0.0.0.0)
 
     snmpdx:
       - [PATCH 3445437]: Log AgentX disconnections (in line with connections)
 
     snmptrapd:
-      - Add missing newline character in a log message
+      - [BUG 3151254]: Fix crash with invalid traphandle directive
       - Avoid crash during shutdown due to invoking perl_destruct(NULL)
-      - Invoke shutdown_perl() when shutting down
       - Don't invoke shutdown_perl() from SIGTERM handler
       - Handle changes to libmysqlclient API (affects Fedora 15/16)
+      - Remove superfluous casts
 
-    apps :
+    apps:
       - [PATCH 2835577]: Replace SNMP_ZERO of arrays with a memset.
 
+    build/install:
+      - [BUG 3152841]: Install util_funcs subheaders
+      - OpenBSD: Fix order of headers when checking <netinet/in_pcb.h>
+      - Add target to build agentxtrap from the toplevel
+      - Build fix for systems lacking field msg_control in struct msghdr
+      - Fix static builds using net-snmp-config and -*libs flags
+
+    man:
+      - [BUG 3190725]: Document snmp{,_sess}synch_response and snmp_async_send
+
     mib2c:
-      - [PATCH 3211484]: Support enumerations in notification varbinds
+      - Make the mib2c foreach ranges work as advertised in the comments.
 
     perl:
-      - Eliminate various dead variables
       - Fix spelling in the documentation of the SNMP module
       - Fixed segmentation fault when handler registration fails.
-      - Make sure constant SNMP_DEFAULT_RETRIES is recognized
-      - Add constants NETSNMP_CALLBACK_OP_{RECEIVED_MESSAGE,TIMED_OUT}
+      - Don't open stderr unnecessarily (affects embedded agent)
 
     python:
       - [PATCH 3185085]: Fix segfault on 64-bit systems
 
-    Build/install:
-      - Install util_funcs subheaders
-
-    man:
-      - [BUG 3190725]: Document snmp{,_sess}synch_response & snmp_async_send
-
     testing:
+      - [BUG 3474590]: Don't match underscores within the source root filename
+      - Add a test for se_store_list()
       - Fix Perl regression test failures
       - Don't fail skipped Perl tests.
+      - Remove unused variables
 
-    BSD:
-      - [PATCH 3383965]: Fix if-mib agent compile warnings on *BSD
+    AIX:
+      - Eliminate configure warning regarding libperfstat.h (AIX 6.1ff)
+
+    Cygwin:
+      - Make date_n_time() produce time zone information
+      - Fix get_uptime() / hrSystemUptime implementation
 
     FreeBSD:
       - [PATCH 3489387]: Install FreeBSD 10 header file (plus other missing versions)
+      - Restore IP_RECVDSTADDR functionality.
+
     Linux:
+      - [PATCH 3205811]: Option to skip fd/loop/ram devices in diskIOTable
       - [PATCH 3525998]: Don't use an uninitialised value in error message
 
     MinGW:
       - Avoid "pragma comment" warnings in <net-snmp/net-snmp-config.h>
-      - Header file <net-snmp/net-snmp-config.h> now usable with MinGW
       - Made regression test output independent of Windows registry settings
 
+    NetBSD:
+      - Update memory and CPU statistics handling
+
+    OpenBSD:
+      - Support updating the routing table
+
     Windows:
       - Avoid problems if Net-SNMP Perl modules are built with a different
-        version of Microsoft Visual Studio than that used for ActivePerl
-      - Avoid problems with PACKAGE_* macros, when using GNU autotools
-      - Now builds correctly with a 64-bit compiler
-      - build.bat: Generate PDB files in release mode
+	version of Microsoft Visual Studio than that used for ActivePerl
+      - Avoid problems with PACKAGE_* macros when using GNU autotools.
+      - Now builds correctly with a 64-bit compiler.
+      - build.bat: Generate PDB files in release mode.
       - build.bat: Install netsnmp.dll before running Perl regression tests
+      - Deprecated libsnmp.def - use NETSNMP_IMPORT instead
+      - Fix winExtDLL compiler warnings (following u_long oid typedef)
       - Make linking with recent OpenSSL binaries succeed.
       - Make netsnmp_large_fd_set_resize() robust against memalloc failures.
       - Perl modules build now with IPv6 enabled.
@@ -109,245 +109,1012 @@
       - Snmptrapd: Make the IP address to hostname conversion work
 
 
-*5.5.1*
+*5.6.1*
+
+    general:
+      - Upgraded DTLS support from alpha to full; mention that tsm is
+	needed for TLS too
 
     snmplib:
-      - [BUG 2838243]: Correct the output of unsigned values
-      - [BUG 2919320]: Avoid accessing freed memory Reported by Tomasz Lis
-      - [BUG 2922390]: Fix test for missing contextName parameter
-      - [BUG 3093199]: Fixed bugs in 64-bit integer parsing
-      - [BUG 3134323]: Fix crash when comparing invalid OIDs
-      - [BUG 3171878]: Using SNMPv3 context does not work
-      - [PATCH 2871747]: plug memory leak in OID processing
-      - [PATCH 2952140]: Fix overflow of counter32 and gauge32 on 64bit systems
-      - [PATCH 2971270]: refuse to parse ASN.1 tokens with wrong type field
-      - [PATCH 3067540]: Fix IPv4 OID indexes on 64-bit big-endian systems.
-      - [PATCH 3058645]: Use MSG_DONTWAIT for the unix domain socket
-      - [PATCH 3165878]: Catch buffer overrun on 64-bit systems
-      - [PATCH 3203806]: Add function netsnmp_large_fd_set_select()
-      - Added function netsnmp_delete_table_data_set()
-      - Added netsnmp_xxx() memory allocation functions
+      - Added function netsnmp_delete_table_data_set().
+      - Added function netsnmp_delete_table_data_set(). Added declaration
+	for the function netsnmp_table_data_delete_table() in a public
+	agent header file.
+      - Added function netsnmp_delete_table_data_set(). Added declaration
+	for the function netsnmp_table_data_delete_table() in a public
+	agent header file. Fixed memory leak in
+	netsnmp_table_data_delete_table(). (Backported r19450 and r19454
+	from trunk.)
       - Added macro netsnmp_static_assert().
       - Added snmp_sess_session_lookup().
-      - Avoid Valgrind complaints about uninitialized data
-      - Change the parsing of ranges to accept all valid values.
-      - Fix __cplusplus extern "C" wrapping
-      - Fix agent crash when sending encrypted SNMPv3 traps.
-      - Fix double free crash when releasing duplicated handlers
-      - Fix duplicate se_add_pair_to_list() memory leak
-      - Fix issue with USM using inactive users
-      - Fix potential buffer overflow when generating temp. file names
-      - Fix various problems with se_clear_slist()
-      - Force a ; at the end of the static_assert macro.
-      - Handle memory allocation failures in netsnmp_create_data_list
-      - Make sure that a mask is given to open when O_CREAT is specified
+      - Avoid that Valgrind complains about uninitialized data for the
+	buffers returned by netsnmp_callback_recv() and
+	netsnmp_callback_hook_build().
+      - Be const correct over calls to str* functions.
+      - Changed the argument type of debug_register_tokens() from char *
+	into const char *. (Backported r19665 and r19666 from the trunk.)
+      - Check the return value of strdup in netsnmp_create_data_list and
+	fail if strdup fails.
+      - Correct the extern "C" declarations to be consistent. Remove
+	commented out code.
+      - Fixed bugs in asn_parse_unsigned_int64(),
+	asn_build_unsigned_int64(), asn_parse_signed_int64() and
+	asn_build_signed_int64(). Most but not all of these bugs were
+	specific to 64-bit systems. Fixes bug #3093199.
+      - Fixed memory leak triggered by calling se_add_pair_to_list() with a
+	value that already existed in the list.
+      - Invoking se_clear_slist() does no longer create a dangling pointer.
+      - Invoking se_clear_slist() does no longer create a dangling pointer.
+	Fixed leaks-at-exit triggered by using the snmp_enum code.
+      - Invoking se_clear_slist() does no longer create a dangling pointer.
+	Fixed leaks-at-exit triggered by using the snmp_enum code.
+	Documented behavior of se_add_pair(), se_add_pair_to_slist() and
+	clear_snmp_enum(). Made snmp_enum example consistent with the rest
+	of the code by adding strdup() calls and added a call to
+	se_clear_all_lists().
+      - Invoking se_clear_slist() does no longer create a dangling pointer.
+	Fixed leaks-at-exit triggered by using the snmp_enum code.
+	Documented behavior of se_add_pair(), se_add_pair_to_slist() and
+	clear_snmp_enum(). Made snmp_enum example consistent with the rest
+	of the code by adding strdup() calls and added a call to
+	se_clear_all_lists(). Fixed a memory corruption problem triggered
+	by the (undocumented) snmpd.conf "enum" keyword handler - storing
+	pointers to strings allocated on the stack in a global list does
+	not work.
+      - Invoking se_clear_slist() does no longer create a dangling pointer.
+	Fixed leaks-at-exit triggered by using the snmp_enum code.
+	Documented behavior of se_add_pair(), se_add_pair_to_slist() and
+	clear_snmp_enum(). Made snmp_enum example consistent with the rest
+	of the code by adding strdup() calls and added a call to
+	se_clear_all_lists(). Fixed a memory corruption problem triggered
+	by the (undocumented) snmpd.conf "enum" keyword handler - storing
+	pointers to strings allocated on the stack in a global list does
+	not work. 
+      - force a ; at the end of the static_assert macro.
+      - netsnmp_handler_dup(): freeing the duplicated handler no longer
+	causes a crash (double free) when handler->myvoid of the original
+	handler was non-NULL.
 
     snmpd:
-      - [BUG 1840230]: Don't include the index object as (pseudo-)accessible column
-      - [BUG 2822360]: Fix memory leak when building table OIDs
-      - [BUG 2841008]: Protect against crash following failed AgentX response
-      - [BUG 2873858]: Fix handling of schedOwner index
-      - [BUG 2894059]: Handle errors when counting interfaces
-      - [BUG 2897000]: Suppress 32-bit counter truncation warnings
-      - [BUG 2900078]: Add support for OID variables with size in elements
-	               instead of bytes, correct sysObjectID to use this
-      - [BUG 2924140]: Fix termination of CPU/FPU types
-      - [BUG 2972579]: Fix checking of snmpTargetAddrRowStatus SET requests
-      - [BUG 3003981]: Protect against buffer overflow
-      - [BUG 3058101]: 64-bit systems only support writeable 'long' instances (not int)
+      - Patch 3141462: from fenner: fix agentx subagent issues with
+	multiple-object requests
+      - Patch from Niels to fix VACM persistant storage.
+      - Added snmp_sess_session_lookup(). Call shutdown_master_agent() and
+	shutdown_agent() during shutdown.
+      - Added snmp_sess_session_lookup(). Call shutdown_master_agent() and
+	shutdown_agent() during shutdown. The function clean_subtree() does
+	no longer trigger double frees and invalid memory reads. Note: this
+	function was already wrong at the time it was introduced (patch
+	#724925 / r8531, July 2003).
+      - Added snmp_sess_session_lookup(). Call shutdown_master_agent() and
+	shutdown_agent() during shutdown. The function clean_subtree() does
+	no longer trigger double frees and invalid memory reads. Note: this
+	function was already wrong at the time it was introduced (patch
+	#724925 / r8531, July 2003). Removed a comment in
+	netsnmp_handler_free() that is now obsolete because of the
+	clean_subtree() changes.
+      - Added snmp_sess_session_lookup(). Call shutdown_master_agent() and
+	shutdown_agent() during shutdown. The function clean_subtree() does
+	no longer trigger double frees and invalid memory reads. Note: this
+	function was already wrong at the time it was introduced (patch
+	#724925 / r8531, July 2003). Removed a comment in
+	netsnmp_handler_free() that is now obsolete because of the
+	clean_subtree() changes. Modified netsnmp_deregister_agent_nsap()
+	such that it never examines sessions that already have been closed.
+	It is for this change that it was necessary to introduce the new
+	function snmp_sess_session_lookup().
+      - Fixed a double free at exit that was triggered by cleaning up the
+	data structures used for embedded Perl support.
+      - Fixed order of rpmlib detection and agent module configuration
+	(backported r19621 from trunk).
+      - Removing the last cache via netsnmp_cache_remove() does no longer
+	trigger a crash.
+      - Update the length of sysObjectID as well as the data when it is set
+	from a configuration file.
+      - Use the same autoconf symbol to decide both if strcasecmp should be
+	declared and if it should be defined.
+      - [BUG 1840230]: Don't include the index object as
+	(pseudo-)accessible column.
+      - [BUG 3058101]: Writeable 'long' instances work on 64-bit systems,
+	but not writable 'int's
       - [BUG 3062538]: Fix com2sec* handling of non-default contexts
-      - [BUG 3178389]: Fix inconsistent handling of TZ offsets
-      - [BUG 3185528]: shutdown_master_agent didn't close UDP socket
-      - [PATCH 2119725]: Fix skipNFSInHostResources handling of hrStorageTable
-      - [PATCH 2825653]: Fix sendmail.cf parsing in certain conditions
-      - [PATCH 2835576]: Fix endianness issues in pass/pass_persist
-      - [PATCH 2877518]: Fix handling of scoped AgentX variables
-      - [PATCH 2883155]: Fix memory leak in proxy handling
-      - [PATCH 2883220]: Fix compilation problems when ifXTable is not included
-      - [PATCH 2887816]: Protect against division-by-zero crash
-      - [PATCH 2901029]: Fix compiler warning on CloseHandle()
-      - [PATCH 2903092]: Fix broken handling of broadcast entries.
-      - [PATCH 2904900]: Documentation plus assorted handler code fixes
-      - [PATCH 2911323]: Fix agent lockup when monitoring AgentX-delegated information
-      - [PATCH 2911361]: Remove redundant variables
-      - [PATCH 2911970]: Properly terminate linked list of registrations
-      - [PATCH 2941811]: Handle successful requests with reqID 0
-      - [PATCH 2967400]: Retrieve error counters for the EtherLike-MIB
-      - [PATCH 2968642]: Catch overflow of pass-through command buffer
-      - [PATCH 2975254]: Avoid callback re-use of closed sessions
-      - [PATCH 3044512]: Fix sysobjectid directive
-      - [PATCH 3053428]: Fix get_pid_from_inode when the inode is not found
-      - [PATCH 3053436]: Fix tcpConnectionTable_data_access invalid memory access
-      - [PATCH 3058140]: Check that inode is non-zero
-      - [PATCH 3062526]: Fix security engineID setting in 'trapsess' directive
-      - [PATCH 3074918]: Avoid memory leaks following CONTAINER_INSERT failures
-      - [PATCH 3096725]: Don't register v1Trap callback, if SNMPv1 not supported
-      - [PATCH 3096725]: Include SNMPv1 trap OIDs in nlmLogNotificationID column
-      - [PATCH 3096725]: sysORTable registation for notification log mib  
-      - [PATCH 3141462]: fix agentx subagent issues with multiple-object requests
-      - [PATCH 3152412]: Handle (and report) problems reading /proc/vmstat
-
-      - Add newly created/destroyed interfaces to ipv6IfTable
-      - Don't let MIB modules second-guess the cache handler
-      - Fix adding new addresses to ipAddressTable
-      - Fix engineID generation on outgoing v3 traps from the agent
-      - Fix erroneous "64bit wrap" warnings when computing ipSystemStats
-      - Fix invalid access to memory in TCP-MIB
-      - Fix IP-MIB::ipIfStatsReasmReqds value (typo)
-      - Fix IPv6 forwarding MIB object (boolean, not TruthValue)
-      - Fix rare race condition when reading RPM database
-      - Fixed race condition in hrSWRunTable
-      - Fix VACM persistant storage.
-      - Fix various memory & file-descriptor leaks
-      - Handle I/Fs without broadcast addresses (IF/IP-MIBs)
-      - Improve agent shutdown processing
-      - Improve error logging when freeing active caches
-      - Make sure that a mask is given to open when O_CREAT is specified
-      - Report GFS filesystems in hrStorageTable and hrFSTable
-      - Report real ifSpeed of (down) network interface (where possible)
-      - Skip non-AF_INET interfaces when loading ipv4 addrs
-      - Support N/W interfaces with HW address >6 bytes (e.g. InfiniBand)
-        in ipNetToMediaTable and ipNetToPhysicalTable.
-      - Support views with indexes values>255
-      - Suppress 32-bit truncation warnings (IP-MIB & TCP-MIB)
-      - Suppress missing iquerySecName warning if it won't be needed
-
-    snmpdx:
-      - changed default TCP target from 0.0.0.0:705 to localhost:705
+      - [BUG ]: enforce max length on TLS secName maps
+      - [PATCH 2119725]: Fix skipNFSInHostResources handling of
+	hrStorageTable
+      - [PATCH 3053436]: from: takevos: fix: tcpConnectionTable_data_access
+	invalid memory access
+      - [PATCH 3057090]: make ethtool support on linux use the high speed
+	struct info for 100G+.
+      - [PATCH 3096725]: Don't register v1Trap callback, if SNMPv1 is not
+	supported
+      - [PATCH 3096725]: Include SNMPv1 trap OIDs in nlmLogNotificationID
+	column
+      - add debug for cert find hint as string/int
+      - add debug for ssl ciphers, clarify fingerprint match debug
+      - com2sec6 directive: If configure has not found getaddrinfo(),
+	non-numeric IPv6 addresses do now trigger an error message.
+	(Backported r19650.)
+      - don't second-guess cache handler   (waves hand) this is not the
+	function you are looking for. netsnmp_cache_is_valid() is not meant
+	for mib modules
+      - fix double free in TLS error handling
+      - host/data_access/swinst_rpm: Fixed a memory leak in
+	netsnm_swinst_arch_init().
+      - host/data_access/swinst_rpm: Pass correct path to rpmdbOpen() such
+	that opening the database succeeds.
+      - host/data_access/swinst_rpm: Pass correct path to rpmdbOpen() such
+	that opening the database succeeds. host/data_access/swinst_rpm:
+	Log an error message if rpmdbOpen() fails.
+      - instead of relying on NETSNMP_DS_LIB_APPTYPE, break out cert table
+	inits to new agent cert init function, called from init_agent.
+      - netsnmp_cache_free(): A more detailed message is now logged when
+	attempting to free a cache that is still in the cache list.
+	(Backported r19524.)
+      - snmpd is again single-threaded. [PATCH 2959811]: Safranek:
+	Reimplement Linux Netlink IPv6 prefix listener.
+      - use cache-unique id instead of handler name for shared cache reload
+	protection
+      - Patch from Claus Klein to fix engineid generation on outgoing v3
+	traps from the agent
+      - add newly created/destroyed interfaces to ipv6IfTable	The list of
+	interfaces was never refreshed, now it is reloaded every time the
+	table is accessed. I've also fixed a memory leak and optimized the
+	loading of the list a bit.
 
     snmptrapd:
-      - [BUG 3151254]: Fix crash with invalid traphandle directive
-      - Fixed assorted double free at exit problems
+      - Fixed a double free at exit that was triggered by cleaning up the
+	data structures used for embedded Perl support. Fixed a double free
+	at exit that was triggered by cleaning up the data structures used
+	for embedded Perl support. Valgrind reported that double free as
+	follows: Invalid read of size 4 at 0x59D0501: perl_destruct (in
+	/usr/lib/perl5/5.12.1/x86_64-linux-thread-multi/CORE/libperl.so) by
+	0x544DF8E: shutdown_perl (snmp_perl.c:166) by 0x403966:
+	term_handler (snmptrapd.c:318) by 0x6D43A5F: ??? (in
+	/lib64/libc-2.11.2.so) Address 0x7660f88 is 56 bytes inside a block
+	of size 2,912 free'd at 0x4C26496: free (vg_replace_malloc.c:366)
+	by 0x544DF9A: shutdown_perl (snmp_perl.c:167) by 0x6DDADF2:
+	__select_nocancel (in /lib64/libc-2.11.2.so) by 0x404E20: main
+	(snmptrapd.c:1258)
+
+    snmpinform:
+      - fix contextEngineIDs for outgoing informs from snmpinform to
+        be the local engineID
+
+    build:
+      - [BUG 3088360]: Ensure python modules are built against the correct
+	libraries
+
+    building:
+      - Some systems do not support the -E flag to grep, use autoconf to
+	find the right egrep at all times.
+
+    perl:
+      - 0 patch 3049029: from fennec: fix a memory leak with snmp bulkwalks
+
+    testing:
+      - Generate a normal #line directive as per C99 instead of the
+	compiler-specific #<n>-directive.
+      - Introduced new test type next to capp and clib: cagentlib.
+      - It is again possible to run an individual test via the script
+	testing/RUNTESTS.
+      - It is now possible to analyze the unit tests with Valgrind by
+	setting the environment variables SNMP_SAVE_TMPDIR and
+	DYNAMIC_ANALYZER. An example: (export SNMP_SAVE_TMPDIR=yes
+	DYNAMIC_ANALYZER="valgrind --trace-children=yes --leak-check=full";
+	cd testing && ./RUNFULLTESTS -g unit-tests)
+      - Test 71 (com2sec6_simple) does now succeed even if IPv6 DNS
+	resolution is not available. (Backported r19648.)
+      - Test T030 does now pass on MinGW.
+      - Unit tests can now invoke functions from libagent.
+      - Unit tests can now invoke functions from libagent. Added unit test
+	for table_dataset. (Backported from r19450 from the trunk.)
+
+    unspecified:
+      - [BUG 3102904]: All Net-SNMP C source files are now compiled with
+	-fno-st rict-aliasing, at least if the configured compiler supports
+	this flag.
+      - [PATCH 3074918]: from weizheng: check for CONTAINER_INSERT failures
+	and react appropriately to avoid memory leaks
+
+    Cygwin:
+
+    Linux:
+      - [PATCH 3083027]: Fix RPM spec file to support CentOS
+      - agent: ipNetToPhysicalTable: Do not log an error message if one or
+	more interfaces are present that do not have such information
+	(NUD_NOARP), e.g. tunnels. Reported by Stephen Hemminger. See also
+	patch #3107003.
+      - snmpd is again single-threaded.
+
+    MinGW:
+      - configure: Detection of the functions gai_strerror(),
+	getaddrinfo(), gethostname() and gethostname() does now succeed.
+	(Backported r19646 from the trunk.)
+      - testing: If the agent has been asked to stop, wait until the snmpd
+	process disappeared before proceeding.
+
+    Win32:
+      - Avoid that MSVC reports a warning message about redefinition of the
+	malloc() macro during building the Net-SNMP source code.
+      - When snmpd.exe is started in a command prompt window, the snmpd
+	process now stops upon the first key press. This makes it easier to
+	debug snmpd.exe for memory leaks.
+      - [PATCH 3085187]: Building via the Microsoft Visual Studio project
+	file (.dsw/.dsp) works again.
+      - building: Avoid that MSVC 2010 prints a warning message about
+	redefining EADDRINUSE.
+      - building: Builds now correctly with a 64-bit compiler.
+      - building: batch build with OpenSSL enabled and with recent OpenSSL
+	development files works again.
+      - shutdown_snmpNotifyFilterTable() and shutdown_winExtDLL() are now
+	invoked when the Net-SNMP service is stopped. (Partially backported
+	r19515 from the trunk.)
+      - testing: Avoid that T200 fails on known Microsoft SNMP extension
+	DLL bugs.
+
+*5.6*
+
+    snmplib:
+      - Add const declarations to the disabled versions of the debugging
+	code as well.
+      - Add missing dependencies between transports.
+      - Add missing symbol netsnmp_snmpSSHDomain_len, make
+	netsnmp_snmpSSHDomain const.
+      - Change oid to be a 32-bit type on ILP64 and LP64 platforms.
+      - Change the parsing of ranges to accept all valid values.
+      - Correct dependencies between transports. Remove unnecessary
+	includes.
+      - Correct the spelling of __cplusplus when checking if the file
+	should be wrapped in extern "C".
+      - Do not require that the UDP transport is included.
+      - Fix agent crash when sending encrypted SNMPv3 traps. Reported by
+	Srikapilan Gandhi
+      - Fix responding to broadcast requests. UDP responses are sent with
+	source IP address which was destination of appropriate requests
+	(implemented in SVN rev. 15215). But if the destination of a
+	request is broadcast IP address, the request was sent with the
+	broadcast address as source. sendmsg() on Linux does not support
+	this and returns error -> response is not sent. In order to send
+	responses from the same interface, interface index of the
+	appropriate interface must be used.
+      - Install library/oid.h. Thanks to "Tomasz Lis" who spotted the bug.
+      - Make the context argument of send_v3trap,
+	send_trap_vars_with_context and netsnmp_send_traps refer to a const
+	char*.
+      - Make the name argument to find_varbind_in_list const
+      - Prevent gcc ped-warning for NETSNMP_REMOVE_CONST
+      - Remove declarations of functions that don't exist or are declared
+	elsewhere.
+      - Remove the oid typedef from <net-snmp/library/asn1.h>. It is still
+	present in <net-snmp/types.h>, use that file.
+      - Replace the debugging functions with dummies when debugging is
+	disabled.
+      - Revert 17808, instead factor out the declaration of oid to it's own
+	file and include that file from both types.h and asn1.h
+      - Use a void argument for the data argument of xdump.
+      - [BUG 2919320]: Avoid accessing freed memory Reported by Tomasz Lis
+      - [BUG 2922390]: Fix test for missing contextName parameter
+      - [PATCH 2871747]: plug memory leak in OID processing. The memory
+	leaked when small OID, which could fit pre-allocated vp->name_loc,
+	was placed in different (allocated) one.
+      - [PATCH 2942940]: Add a new function, netsnmp_parse_args, that is
+	like snmp_parse_args but takes an additional bitmask, flags, to
+	affect the behaviour. Also remove the magic handling of some
+	application names.
+      - [PATCH 2971270]: refuse to parse ASN.1 tokens with wrong type
+	field. This may yield to problems with third-party applications
+	which may depend on parsing ugly ASN.1 data - we'll see...
+      - add function to validate RowStatus and StorageType varbinds - also
+	remove some duplicate code and fix comments indent mangled
+      - add functions to remove list/row data from request list
+      - add interface for duplicating a container
+      - add interface for duplicating a container container changes: add
+	flags field to container meta-data; chg binary_array container to
+	use container meta-data flags
+      - add remove function to container iterator; implement it for
+	binary_array
+      - added the functions netsnmp_malloc(), netsnmp_calloc(),
+	netsnmp_realloc(), netsnmp_strdup() and netsnmp_free().
+      - builds again when HAVE_GETADDRINFO is not defined.
+      - conf files can now include other conf files - also tweaked debug
+	tokens here and there
+      - create indexes for certificates in config path
+      - directory container enhancements - fix potential memory leak - add
+	filter callback to filter files returned - add option to return
+	relative and not full paths - add option to sort returned list -
+	add option to return empty container instead of NULL if no files
+	found - change default container name to directory that was scanned
+	- tweak debug/log messages
+      - enhance file utils and dir utils - add optional stats struct to
+	netsnmp_file - generalize dir container filter, add context to
+	callback - add option to store netsnmp_files (w/stats) in container
+	instead of just name
+      - fix potential double free in CONTAINER_FREE - also added several
+	compare routines
+      - netsnmp_container enhancements: - add free_item function; defaults
+	to netsnmp_container_simple_free - add CONTAINER_FREE_ALL
+	macro/function (like CONTAINER_CLEAR but calls container free_item
+	for each item in primary container) - add ability to set options on
+	binary_array containers
+      - new certificate api to support tls/dtls
+      - new snmp token logOption allows specifying log destinations vi conf
+	files - if stderr log enabled because of no log destination, turn
+	it off when a log destination is enabled - don't call
+	netsnmp_enable_stderrlog() from apps anymore
+      - obsoleted NETSNMP_DS_LIB_ALARM_DONT_USE_SIG. From now on using
+	SIGALRM to trigger Net-SNMP alarm handlers is no longer supported.
+	Motivation: as known libnetsnmp supports time-based alarms via the
+	functions snmp_alarm_register(), run_alarms() and other functions.
+	Two different ways to trigger the function run_alarms() are
+	supported inside libnetsnmp: 1. By making sure that the timeout
+	argument of select() is small enough such that select() returns
+	before the next alarm must be handled (when the variable
+	NETSNMP_DS_LIB_ALARM_DONT_USE_SIG is set to one, which is the
+	default). 2. By making sure that the kernel fires SIGALRM at the
+	time when run_alarms() should be called (when the variable
+	NETSNMP_DS_LIB_ALARM_DONT_USE_SIG is set to zero, which has to be
+	configured explicitly). The following issues are associated with
+	the second approach: 1. Alarm functions are used inside Net-SNMP to
+	e.g. refresh cached table contents. As far as I can see there is
+	nothing in the Net-SNMP source code that prevents the following
+	from happening: a table refresh triggered via SIGALRM while a row
+	is being removed from a cached table. This can result in dangling
+	pointer dereferences and even a crash. 2. POSIX restricts signal
+	handlers to calling functions that are either reentrant or
+	non-interruptible
+	(http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02
+	_04.html#tag_02_04). Standard I/O functions like printf() and
+	fprintf() are neither reentrant nor non-interruptible. run_alarms()
+	is called from inside a signal handler, which means that this
+	restriction applies to the function run_alarms() itself and all
+	functions called by it (which includes the alarm callback
+	functions). Or: e.g. snmp_log() and its callers must not be called
+	from inside run_alarms() when this function is invoked from inside
+	a signal handler. This is a severe restriction, and one that is
+	hard to work with. 3. Not all software developers know how to make
+	sure that signal delivery works correctly in a multithreaded
+	context. POSIX does not guarantee to which thread a signal like
+	SIGALRM will be delivered, unless that signal has been blocked
+	before thread creation and is unblocked after thread creation (see
+	also
+	http://www.opengroup.org/onlinepubs/009695399/functions/pthread_sig
+	mask.html). This is relevant for the Net-SNMP project not only
+	because a worker thread is created inside
+	agent/mibgroup/if-mib/data_access/interface_linux.c but also
+	because libnetsnmp is often used inside multithreaded software.
+	Currently no attempt is made to make sure that SIGALRM is processed
+	by the Net-SNMP event processing loop thread. If SIGALRM is
+	processed by another thread, this will result in one or more data
+	races. Because all the difficulties associated with processing
+	alarms from inside a signal handler function, and because fixing
+	these would require more effort than it is worth,
+	NETSNMP_DS_LIB_ALARM_DONT_USE_SIG has been deprecated and from now
+	on approach (1) is the only supported approach to trigger alarm
+	handlers.
+      - plit snmpIPBaseDomain and move the IPv4 parts to IPv4Base and the
+	socket generic parts to SocketBase.
+      - when freeing a cache, stop timer and call cache free func - also
+	add netsnmp_cache_remove
+      - new experimental simple state machine
+      - new experimental simple state machine new experimental row creation
+	API which uses a state machine to try really hard to create a row
+	from a given varbind list
+      - fix issue with USM using inactive users
+      - fixed potential buffer overflow when generating temp. file names
+      - implemented a fix for the issue reported in patch #3042770. Created
+	a snmp_select_info_flags function, and similar, that allow for
+	alarms to not be run. This is then used in the synch_response
+	functions to avoid 100% CPU loops
+      - patch: 3042770: from mehaf: Made run_alarms() reentrant
+      - when displaying a byte as single digit hex value, default to
+	prefixing with 0 unless there is a seperator or addition hint data
+      - 0 patch 3058645: from jorisesaturnus: modified version of the patch
+	to use MSG_DONTWAIT for the unix domain socket
+      - [PATCH 3067540]: Fix IPv4 OID indexes on 64-bit big-endian systems.
+
+    snmplib, snmpd:
+      - Do not check if values of type size_t are less than 0.
+      - Make sure that a mask is given to open when O_CREAT is specified
+
+    snmplib, snmpd, snmpnetstat:
+      - Add correct size prefixes when printing variables of type oid.
+
+    snmpd:
+      - Add support of network interfaces with HW address bigger than 6
+	bytes to ipNetToMediaTable and ipNetToPhysicalTable. Some HW, like
+	InfiniBand, uses HW addresses with 9 and more bytes. Snmpd on Linux
+	was not able to parse /proc/net/arp then and produced ugly 'ioctl
+	35123 returned -1' to log.
+      - Check the range of oid values towards the maximum oid value,
+	notULONG_MAX
+      - Extract the Exit and restart* subroutines from util_func in order
+	to make it possible to build less code for the minimal case.
+      - Fixed creation of views using snmpusm, OIDs with indexes > 255 are
+	allowed now. This reverts SVN commit #7492.
+      - Fixed invalid access to memory in TCP-MIB This partly reverts patch
+	17719 - the entries *are* used after raw_data container is freed.
+	These entries should be freed when associated rowreq_ctx is freed.
+      - Fixed logging of 'truncating integer value > 32 bits' in IP-MIB and
+	TCP-MIB The counters, which grow fast are now cut to 32bits.
+      - Fixed udpTable indexes on big-endian 64bit Linux. The index was
+	always '0.0.0.0' instead of real local IP address.
+      - Made subtree_context_cache::context_name a const char*.
+      - Make all the oids and oid lengths in agent_trap.c const and use
+	them from everywhere.
+      - Make the enterprise argument of netsnmp_send_traps and
+	send_enterprise_trap_vars const
+      - Only enable hostSwInst rpm support on linux hosts with librpm. This
+	makes it possible to build on non-rpm linux distributions.
+      - Removed the unused function xx_tokenize_exec_command from
+	utilities/execute.
+      - [BUG 2822360]: Fix memory leak when building table OIDs
+      - [BUG 2841008]: Protect against crash following failed AgentX
+	response
+      - [BUG 2873858]: Fix handling of schedOwner index. Patch provided by
+	Max Schubert.
+      - [BUG 2894059]: Handle errors when counting interfaces
+      - [BUG 2897000]: Suppress 32-bit counter truncation warnings.
+      - [BUG 2900078]: Add support for OID variables with size in elements
+	instead of bytes, correct sysObjectID to use this.
+      - [PATCH 2835576]: Fix endianness issues in pass/pass_persist
+      - [PATCH 2877518]: Fix handling of scoped AgentX variables
+      - [PATCH 2883092]: Support monitoring processes that should not be
+	running. Patch provided by Christian (cg75). Qn: Should this
+	functionality be back-ported to earlier lines?
+      - [PATCH 2883220]: Fix compilation problems when ifXTable is not
+	included.
+      - [PATCH 2887816]: Protect against division-by-zero crash
+      - [PATCH 2901029]: Fix compiler warning on CloseHandle() Endian
+	problems already addressed by patch #2835576
+      - [PATCH 2903092]: Fix broken handling of broadcast entries.
+      - [PATCH 2911323]: Fix agent lockup when monitoring AgentX-delegated
+	information
+      - [PATCH 2911970]: Properly terminate linked list of registrations.
+	Patch provided by Mirko Deckert.
+      - [PATCH 2956657]: Handle over-length AgentX OIDs. Patch provided by
+	Rob West
+      - [PATCH 2967400]: Retrieve error counters for the EtherLike-MIB
+	Patch supplied by Josef Moellers.
+      - [PATCH 2968642]: Catch overflow of pass-through command buffer.
+	Patch from Andreas Jaeger/Leonardo Chiquitto
+      - agent will no longer call table handlers if a set request for the
+	handler has invalid indexes
+      - agent will no longer call table handlers if a set request for the
+	handler has invalid indexes don't call cleanup on first request on
+	bad indexes. instead, set actual error later, and free request data
+	sets on first request for sets
+      - define and use new NETSNMP_LOGONCE macro
+      - fix crash in IF-MIB and IP-MIB when there are some interfaces with
+	broadcast IP address and some without. Reset the bcastentry in the
+	loop, so it cannot be inserted to the twice. Without this patch,
+	when an interface without broadcast address is processed, the
+	bcastaddress from previous loop is inserted into the container.
+	This obviously fails and the bcastentry is freed, but the container
+	still contains reference to it -> SIGSEGV.
+      - fix memory leak in ipAddressPrefixTable -
+	net_snmp_search_update_prefix_info returns different code, when the
+	entry was not inserted to list and can be freed.
+      - fix rare race condition when reading RPM database. Old rpm versions
+	return NULL instead of Header when another RPM instance holds
+	database locks. I.e. snmpd sometimes crashes when reading hr_swInst
+	and rpm is installing/updating/removing another package. As a
+	solution, whole RPM cache is thrown away and re-read when we got an
+	error from librpm. The whole process is restarted only three times,
+	to prevent endless loop.
+      - fixed a memory leak in TCP-MIB.
+      - fixed filedescriptor leak in Etherlike-MIB and RMON-MIB
+      - fixed memory leak when reading sensors for LM-SENSORS-MIB.
+      - fixed one leak-at-exit.
+      - include local port number in packet dumps. An example: Received 36
+	byte packet from UDP: [127.0.0.1]:53909->[127.0.0.1]:1161 0000: 30
+	22 02 01 01 04 06 70 75 62 6C 69 63 A1 15 02 0".....public... 0016:
+	04 37 F2 D4 9B 02 01 00 02 01 00 30 07 30 05 06 .7.........0.0..
+	0032: 01 01 05 00 .... Received SNMP packet(s) from UDP: GETNEXT
+	message -- ccitt.1 Sending 118 bytes to UDP:
+	[127.0.0.1]:53909->[127.0.0.1]:1161 0000: 30 74 02 01 01 04 06 70
+	75 62 6C 69 63 A2 67 02 0t.....public.g. 0016: 04 37 F2 D4 9B 02 01
+	00 02 01 00 30 59 30 57 06 .7.........0Y0W. 0032: 08 2B 06 01 02 01
+	01 01 00 04 4B 4C 69 6E 75 78 .+........KLinux 0048: 20 61 73 75 73
+	20 32 2E 36 2E 33 33 2E 32 2D 73 asus 2.6.33.2-s 0064: 63 73 74 20
+	23 31 20 53 4D 50 20 50 52 45 45 4D cst #1 SMP PREEM 0080: 50 54 20
+	53 61 74 20 41 70 72 20 33 20 32 31 3A PT Sat Apr 3 21: 0096: 31 30
+	3A 35 38 20 43 45 53 54 20 32 30 31 30 20 10:58 CEST 2010 0112: 78
+	38 36 5F 36 34 x86_64
+      - made sure that handler registration failure does not create
+	dangling pointers in the MIB subtree registry.
+      - report real ifSpeed of network interface even it is down. Some
+	interfaces can report their real speed, even they are down. And if
+	they can't, the fallback to 10Mbps is still there.
+      - table_data/tdata next handler will not be called during get
+	processing if no valid rows are found for the handler
+      - tdata helper now saves flags passed during creation; add tdata flag
+	to NOT create the table container
+      - translate NOSUCH*/ENDOFMIB errors during RESERVE1 to NOCREATION
+      - utilities/execute do not need anything from util_funcs, so stop
+	depending on it.
+      - fixed value of IP-MIB::ipv6InterfaceForwarding on Linux   The value
+	was 0 (not forwarding) or 1 (forwarding), should be 2 and 1 instead
+	- netsnmp_interface_entry.forwarding_v6 is boolean, not TruthValue.
+      - new API for indicating that persistent store needs to be saved
+	after the current request finishes processing
+      - [BUG 3003981]: Protect against buffer overflow
+      - [BUG 3019243]: Register execFix compatability directive correctly.
+      - patch 2912520: from listom: Free kmem references on shutdown
+      - patch: 3028923: from jenso: new copy of the bridge-mib perl
+	implementation
+      - report gfs filesystems in hrStorageTable and hrFSTable.
+      - [PATCH 2904900]: Documentation plus assorted handler code fixes
+      - [PATCH 2911361]: Documentation (Provided by Tomasz Lis)
+      - [PATCH 2911361]: Re-order code to group related functions together
+      - [PATCH 2911361]: Remove redundant variables
+      - [PATCH 2931446]: make the load averages writable.
+      - [PATCH 3044512]: fix sysobjectid directive.
+      - patch 2790249: from willpwillp: reduce cache time for the iftable
+	to 3seconds to increase accuracy
+      - patch 2825653: from bru5ce: fix sendmail.cf parsing in certain
+	conditions
+      - Log before returning.
+      - [PATCH 3053428]: fix get_pid_from_inode when the inode is not
+	found.
+      - [PATCH 3058140]: check that inode is non-zero
+      - patch 3062526: from mariog85: fix security engineID setting in the
+	trapsess directive
+
+    snmpdlib:
+      - new functions to make stash ptr and newrow available to
+	table_dataset handlers nonews: fix typo; tabs to spaces; use sizeof
+	instead of constant
+
+    snmpdx:
+      - changed default TCP target from 0.0.0.0:705 to localhost:705. This
+	is not only a more secure choice but it also makes it possible on
+	Windows systems to let an AgentX subagent connect to an AgentX
+	master agent running on the same system without having to set the
+	variable NETSNMP_DS_AGENT_X_SOCKET.
 
     snmptable:
       - [BUG 2837998]: Handle missing instance subidentifiers in results
-      - [PATCH 2850067]: Suppress extraneous "index" header token
+      - [PATCH 2850067]: Suppress extraneous "index" header token Patch
+	supplied by Dan Nelson
+
+    snmpusm:
+      - Prefer to use a variable of the right type over an ugly cast.
+	Lessen the scope of the variable as well.
+      - patch from Martin Bjorklund to add a -Cw option to use
+	createAndWait for agents that are strict about not allowing a row
+	to be set to active until the authentication password has been
+	changed; plus white-space clean up, manual additions and help
+	output modifications by hardaker
+      - Correct ifdefs, remove dead variables.
+
+    man:
+      - clean up manual pages (from Debian patch 56_manpage)
+
+    snmpwalk:
+      - Handle the case when the end oid is longer than the current oid
+	correctly
+
+    apps:
+      - Add command to send AgentX notify requests to a master agent.
+      - Generic host-specific configuration snmp.conf files are now read.
+	See the HOST-SPECIFIC FILES section of the snmp.conf manual page.
+      - Only build agentxtrap if the agentx libraries are built. Add a test
+	case for agentxtrap. The enablement/disablement is inspired by
+	automake conditionals
+      - T command line flag can be used to configure transports
+      - A new 'snmptls' command for manipulating the agent's TLS configuration
+
+    apps, snmplib:
+      - [PATCH 2835577]: identified by "Bart Van Assche": Replace SNMP_ZERO
+	of arrays with a memset.
 
     snmptranslate:
       - fixed printing of ranges with UNSIGNED type.
 
-    snmpusm:
-      - Correct ifdefs, remove dead variables.
-
-    snmpwalk:
-      - Fix handling of end OID being longer than the starting OID
-
     build:
-      - [BUG 3102904]: Build with -fno-strict-aliasing (if supported)
-      - Add detection of lm_sensors version
-      - Avoid use of "tail -1" (non POSIX-compliant)
-      - Do not call VACM APIs if VACM module is not included
-      - Fix building static applications using net-snmp-config
-      - Fix compilation with rpm-4.6 (using legacy API)
-      - Fix 'make test TESTOPTS="-P tcp"'
-      - Fix order of rpmlib detection and agent module configuration
-      - Run rpm configure checks for (rpm-based) hr_swinst rewrite
-      - Use a sensible default for system location (if no domain name found)
+      - [PATCH 2952020]: Explicitly set permission on temporary testing
+	output directories. Patch provided by Leonardo Chiquitto.
+      - run rpm configure checks for hr_swinst rewrite (rpm version only)
+      - Do not call vacm_standard_views() or init_vacm_config_tokens() if
+	the corresponding module was not compiled (from Debian patch
+	61_vacm_missing_dependency_check)
+      - Fix ipv6 generic case so test matches verification
+
+    building:
+      - 'make test TESTOPTS="-P tcp"' works fine now
+      - 0 In case exec_prefix is unset then set it to '${prefix}' in order
+	to pick up overrides of $prefix in make install.
+      - Building Net-SNMP with dmalloc support enabled is again possible.
+      - Do not link with libnetsnmphelpers any more as it is empty.
+      - Fixed compilation with rpm-4.6. Turn on the legacy API when rpm-4.6
+	is detected.
+      - Introduced the variable 'with_socklib' in the configure script.
+	This variable is set to "winsock2" for MinGW and to "default" for
+	all other systems. Winsock2 tests are only run if this variable is
+	set to "winsock2" (MinGW).
+      - OS header detection check is now run before IPv6 stack detection.
+      - Use AC_REPLACE_FUNCS to handle code that is missing on some
+	platforms.
+      - Use autoconf to decide if inet_ntop.c and inet_pton.c are to be
+	compiled.
+      - Use the same compiler command and flags for building of tests as
+	for building of the code, thus enabling test of e.g. 32-bit code
+	compiled on a 64-bit platform.
+      - abort if the file program could not be found, since this is
+	essential for proper operation of libtool.
+      - added detection of lm_sensors version. I am not Autoconf guru, so I
+	hope I got it right. The goal is to define NETSNMP_USE_SENSORS_V3
+	*before* config_modules_agent processes
+	agent/mibgroup/hardware/sensors.h.
+      - made sure that the configure script does no longer invoke "tail
+	-1", which is not POSIX-compliant.
+      - save configure cache every once in while
+      - update Version-Munge for renamed configure.ac
+      - when generating a default value for the system location and no
+	domain name is found in /etc/resolv.conf, use "@no.where" instead
+	of "".
+      - Add new test* entries from the testing Makefile.in to the top-level
+	Makefile.in
+
+    building, Win32:
+      - Remove a few unused configure symbols
+
+    hpux:
+      - fix build error on HP-UX 10.20
+
+    libnetsnmp:
+      - Support for a stream-line stripped down version of internal OpenSSL
+	support using --with-openssl=internal
+
+    libnetsnmpagent, libnetsnmphelpers:
+      - moved the functions netsnmp_bulk_to_next_fix_requests(),
+	netsnmp_get_bulk_to_next_handler(), netsnmp_register_null(),
+	netsnmp_register_null_context() and netsnmp_register_old_api() from
+	libnetsnmphelpers to libnetsnmpagent. Notes: - This does not affect
+	backwards compatibility for applications that link with
+	$(net-snmp-config --agent-libs) since this involves linking with
+	both libnetsnmphelpers and libnetsnmpagent. - Functions have been
+	moved between libraries by moving entire source files.
+
+    library:
+      - [PATCH 2952140]: Overflow counter32 and gauge32 on 64bit systems
+	correctly Patch provided by Leonardo Chiquitto
+
+    libsnmp:
+      - changed the type of the fourth argument of netsnmp_set_row_column()
+	from const char* to const void* such that no cast is necessary when
+	passing another datatype then char* or const char*.
 
     man:
       - [BUG 2972860]: Update broken references
-      - Clean up manual pages (from Debian patch 56_manpage)
 
     mib2c:
-      - [BUG 2888569]: Fix generation of table columns array
       - Remove unnecessary casts to u_char*
-      - make the mib2c foreach ranges work as advertised in the comments
+      - [BUG 2888569]: Fix generation of table columns array
+      - mib2c can now optionally run sed on generated code
+      - table_data template enhancements - add error checks during table
+	init - create cache earlier so we can bail on failure - add option
+	to create/delete row w/out adding/removing from container
+      - update inline documentation; add storagetype test for columns
 
     mibs:
       - [BUG 2973890]: Fix imports, DiskIOEntry list and revision histories
-      - [PATCH 2974716]: Fix issues in the SMUX-MIB
+      - patch 2974716: from bvassche: fix issues in the SMUX-MIB
 
     misc:
-      - [PATCH 2836112]: Use the right modifier for size_t/ssize_t variables
-      - [PATCH 2952034]: Return of the Great SuSE 'sprintf' Hunt... 
+      - [PATCH 2836112]: Use the right modifier when printing size_t and
+	ssize_t variables.
+      - [PATCH 2952708]: Osterkamp: Added Perl implementation of BRIDGE-MIB
 
     perl:
-      - [PATCH 2890931]: Better handling of Counter64 values
-      - [PATCH 2995098]: Fix creation of SNMPv3 sessions with API_SINGLE
-      - [PATCH 3046371]: Fix memory leak in SNMPv1 trap handling
-      - [PATCH 3049029]: Fix memory leak with snmp bulkwalks
-      - Don't automatically open stderr (breaks embedded perl within the agent)
-      - Fix various other memory leaks, out-of-bounds array access
-            and uninitialized variable access issues
-      - Fix several "Free to wrong pool" errors
+      - NetSNMP::agent::netsnmp_request_infoPtr::getValue(): don't return a
+	pointer to a buffer on the stack. How can this have worked reliably
+	?? NetSNMP::agent::netsnmp_request_infoPtr::setValue(),
+	ASN_COUNTER64: fixed bug that could cause this method to fail even
+	when a valid number was provided.
+      - [PATCH 2890931]: Better handling of Counter64 values. Patch
+	provided by Max Romanov.
+      - fixed a memory leak triggered by destroying a
+	NetSNMP::agent::netsnmp_handler_registration object.
+      - fixed a memory leak triggered by destroying a
+	NetSNMP::agent::netsnmp_handler_registration object. fixed a memory
+	leak triggered by failure of creating a NetSNMP::OID object.
+      - fixed a memory leak triggered by destroying a
+	NetSNMP::agent::netsnmp_handler_registration object. fixed a memory
+	leak triggered by failure of creating a NetSNMP::OID object. fixed
+	a memory leak triggered by the NetSNMP::OID::gettable() subroutine.
+      - fixed a memory leak triggered by destroying a
+	NetSNMP::agent::netsnmp_handler_registration object. fixed a memory
+	leak triggered by failure of creating a NetSNMP::OID object. fixed
+	a memory leak triggered by the NetSNMP::OID::gettable() subroutine.
+	fixed an out-of-bounds array access triggered by the implementation
+	of NetSNMP::SNMP. fixed a memory leak triggered by a PDU processing
+	error in NetSNMP::SNMP. fixed memory leaks triggered by creating an
+	SNMPv3 session via NetSNMP::SNMP. Also fixed the uninitialized
+	variable accesses triggered by adding a varbind to a PDU via
+	NetSNMP::SNMP introduced a few days ago. The bugs mentioned above
+	have been found by inspecting the output of the following shell
+	command: cd perl && valgrind --trace-children=yes --leak-check=full
+	make test
 
     python:
-      - [BUG 2919379]: Initialise SNMP sessions properly
-      - [BUG 3088360]: Ensure python modules are built against the correct libraries
+      - [BUG 2919379]: Initialise SNMP sessions properly Provided by Diego
+	Billi
       - [PATCH 2001656]: Handle null-termination of string values properly.
-      - [PATCH 3035328]: Detect failures in session creation
-      - [PATCH 3035578]: Update error codes
-      - Support null-bytes in octet strings
+	Based on the principles of the patch from Tommy Beadle.
+      - Support null-bytes in octet strings Patch supplied by Tommy Beadle
+      - [PATCH 3035328]: from: sws: check the results of session creation
+	for a failure case.
+      - patch 3035578: from sws: keep error codes up to date
 
-    test:
-      - [PATCH 2952020]: Explicitly set permission on output directories
-      - Support dynamic analysis of regression tests
-      - Fix tests (T030) for MinGW
+    testing:
+      - Brand new test suite desigened to eventually test more
+	functionality, provide for support of unit-tests and support of API
+	tests
+      - Change the test suite to work even if mib lookup is disabled.
+      - Check the size of sun_path and use that to generate the maximal
+	size strings for stressing com2secunix.
+      - Make it possible to run the test suite from anywhere. Change the -D
+	option to expect the path of the top source directory. Add an
+	-srcdir option that is an alias for -D. Add an -builddir option to
+	designate the directory where the test object is. Put srcdir and
+	builddir in the environment for the test scripts Factor out the
+	grep part of SKIPIF and SKIPIFNOT to ISDEFINED Use more readable
+	keys in the opts hash in RUNFULLTESTS Adjust everything to use
+	srcdir and builddir
+      - Move the setting of MIBDIRS from the support script to the drivers
+	since it is needed for the C tests as well.
+      - Use olducd_run, not run_olducd. Change srcdir to refer to the top
+	directory and not the testing subdirectory as that is what is
+	expected in the test scripts.
+      - add the test name to the start of the file "invoked".
+      - made it possible to analyze all code covered by the regression
+	tests with a dynamic analyzer, at least if that analyzer supports
+	following child processes. An example:	 rm -rf /tmp/snmp-test-*
+	make -s SNMP_SAVE_TMPDIR=yes DYNAMIC_ANALYZER="valgrind
+	--trace-children=yes --track-origins=yes" make -s test grep -i
+	uninitialised /tmp/snmp-test-* | xargs less
+
+    unspecified:
+      - Change the types of the return values of netsnmp_*_getSecName from
+	char* to const char* since they point into internal structures.
+      - Hide most functions and variables in the logmatch module. Cleaned
+	up the header accordingly. Remove the need for forward declarations
+	by reordering the functions.
+      - Make the lists of com2Sec*Entries static
+      - [BUG 2838243]: Correct the output of unsigned values. Thanks to
+	Jack Huang of Qualcomm who pointed out this bug.
+      - [BUG 2969872]: made sure that SOCK_STARTUP is invoked before
+	init_agent() on Windows.
+      - [BUG 2971257]: Fixed winExtDLL handling of multi-varbind getNext
+	requests with OIDs in reverse lexicographical order.
+      - [PATCH 2926374]: from Ed Swierk: fixed reading of ipAddressTable
+	from /proc/net/if_inet6 on Linux The kernel might provide longer
+	fields, especially on 64-bit systems.
+      - [PATCH 2952034]: Return of the Great SuSE 'sprintf' Hunt... Patch
+	supplied by Leonardo Chiquitto
+      - add functions to get fingerprint from cert and log openssl errs
+      - added a new DEBUGTRACETOK() macro
+      - correctly calculate ifXTable.ifHCInUcastPkts on 32-bit Linux Linux
+	does not provide standalone counter for incoming unicast packets
+	(iucast) - it provides counter of all packets (iall) + separate
+	counter for the multicast ones (imcast). Previous implementation of
+	ifTable read these counters and calculated iucast = iall - imcast
+	*before* these values were expanded into 64bits. This produced
+	errors on 32bit systems when iall overflowed to zero and imcast was
+	nozero -> iucast got negative and 'c64 32 bit check failed' error
+	in snmpd log. Now the agent expands these values to 64bits first
+	and *	  *then* performs    the calculation, using a new flag. 
+	2010-05-27 08:18  magfr
+      - fixed memory leak in RMON-MIB and ETHERLIKE-MIB when there are
+	multiple aliases of an network interface Rationale: the aliased
+	interfaces have the same ifIndex -> CONTAINER_INSERT fails, but the
+	rejected entry was not freed.
+      - generate the transport initialization function list dynamically and
+	use it
+      - moved all functions defined in libnetsnmphelpers to
+	libnetsnmpagent. libnetsnmphelpers is now an empty library.
+      - moved transport code into a separate subdirectory in snmplib
+      - [BUG 3027900]: when cross-compiling it is now assumed that memcmp()
+	is available instead of assuming that it is not available.
+      - Do no double declare the index values.
+      - Handle embedded %'s in the result message.
+      - ilence some compilation warnings from test cases.
 
     Cygwin:
-      - [BUG 2997492]: byte order of udpLocalPort is now correct
-      - Enabled Unix transport
-      - Fix building with IPv6, OpenSSL & embedded Perl support
-      - Fix building with remotely mounted source files
-      - Fix free UDP port detection in regression tests
-      - Fix out-of-range array access in 'interfaces' table
-      - libnetsnmp now builds as a DLL when configured with --enable-shared
-      - Omit inet_ntop.c and inet_pton.c
-      - perl modules do now build (--with-perl-modules).
-      - Removed winpipe.c from the list of source files
-
-    HP-UX:
-      - fix build error on HP-UX 10.20
+      - IPv6 is only supported under Cygwin 1.7 or later. The old
+	implementation of IPv6 support in Net-SNMP under Cygwin involved a
+	strange mixture of Cygwin and Winsock2 socket calls, which was too
+	hard to maintain.
+      - IPv6 is only supported under Cygwin 1.7 or later. The old
+	implementation of IPv6 support in Net-SNMP under Cygwin involved a
+	strange mixture of Cygwin and Winsock2 socket calls, which was too
+	hard to maintain. builds again with IPv6 support enabled
+	(--enable-ipv6). At least Net-SNMP 5.5 doesn't build under Cygwin
+	with IPv6 support enabled. The configure script reported "checking
+	ipv6 stack type ... result: "unknown, no" ... error: IPv6
+	transports not available if IPv6 support is not enabled".
+      - [BUG 2939168]: byte order of udpLocalPort is now correct.
+      - [BUG 2939168]: fixed test infrastructure ("make test"). This has
+	been fixed by using the proper environment separator character and
+	by adding the path of the netstat executable for Cygwin in
+	testing/TESTCONF.sh.
+      - abort if the file program could not be found, since this is
+	essential for proper operation of libtool. neither compile nor link
+	winpipe.c.
+      - building with another OpenSSL package than the Cygwin-provided
+	packages openssl and openssl-devel is again possible.
+      - builds now also when the source files are located on a Samba
+	filesystem instead of a local filesystem.
+      - enabled Unix transport. (Forward-ported r18687 from the V5.5
+	branch).
+      - libnetsnmp does now build as a DLL when configured with
+	--enable-shared.
+      - libnetsnmp does now build as a DLL when configured with
+	--enable-shared. perl modules do now build (--with-perl-modules).
+	Note: the T060trapdperl_olducd, T061agentperl_olducd and
+	T115agentxperl_olducd tests still fail.
+      - libnetsnmpmibs, libnetsnmphelpers and libnetsnmpagent do now build
+	as a DLL when configured with --enable-shared.
+      - perl: building the Perl modules with the Cygwin Perl package is now
+	possible. (Forward-ported r18688 from the V5.5 branch.)
+      - the message "configure: WARNING: winsock.h: present but cannot be
+	compiled" does no longer appear when running the configure script.
+	Follow-up for r18050: re-enabled libiphlpapi and iphlpapi.h tests
+	for non-MinGW platforms since the Cygwin build needs these.
+      - corrected error handling in mibII/at.
 
     Linux:
-      - [BUG 2985915]: Fix build without embedded Perl
-      - [PATCH 2926374]: Fix reading of ipAddressTable from /proc/net/if_inet6
-      - [PATCH 2959811]: Reimplement Netlink IPv6 prefix listener
-      - [PATCH 3083027]: Fix RPM spec file to support CentOS
-      - [PATCH 3107003]: Suppress ipNetToPhysicalTable error messages
-                         for tunnel and similar (non-physical) interfaces
-      - Fix calculation of ifHCInUcastPkts on 32-bit Linux
-      - Fix udpTable indexes on big-endian 64bit Linux
-      - Fix value of IP-MIB::ipv6InterfaceForwarding
-      - Fixed 32-bit truncation warning on UCD-SNMP-MIB::systemStats
-      - Improved EtherLike-MIB support 
-      - Pass correct path to rpmdbOpen, and log errors
-      - snmpd is again single-threaded.
+      - Improved EtherLike-MIB support Patch supplied by Josef Moellers
+      - builds again with embedded Perl disabled (bug 2985915).
 
-    NetBSD:
-      - DragonFly support
-      - Retrieve MIB-II network statistics via sysctl
-      - Update memory and CPU statistics handling
-
-    OpenBSD:
-      - Fix order of headers when checking <netinet/in_pcb.h>
-      - Support updating the routing table
-      - Update SWRun code to use kvm_getproc2
+    MinGW:
+      - building with another OpenSSL package than the Cygwin-provided
+	packages openssl and openssl-devel is again possible. building with
+	OpenSSL works again.
+      - running the regression test suite is again possible ('make test').
+      - struct sockaddr_in6.sin6_scope_id configure test does now work.
+      - winExtDLL compiles now under MinGW. building Net-SNMP works again.
+	Detailed overview: * Changes in the configure script:
+      - refuse to run the regression tests if kill.exe cannot be found.
+      - run_shell_command() with either input or output (but not both) does
+	now work. This did not work until now because on MinGW mkstemp()
+	generates a MinGW-style path (/tmp/...) while system() invokes
+	cmd.exe and hence expects a Windows-style path (C:\...).
+      - testing: skip the tests that require SIGHUP since MinGW does not
+	support SIGHUP.
+      - tests T059 and T065 do now pass.
+      - tests T110, T111, T112, T120, T121 and T122 do now pass when snmpd
+	is built with winExtDLL support enabled.
 
     Solaris:
-      - Fix crash triggered by missing package version information 
+      - OS header detection check is now run before IPv6 stack detection.
+	sockaddr_in6.sin6_addr configure test does now work.
+      - Protect against missing package version information crashing the
+	agent. Problem reported by Inyaven Sakarai.
 
-    Windows:
-      - [BUG 2969872]: Ensure SOCK_STARTUP is invoked before init_agent
-      - [BUG 2971257]: Fixed winExtDLL handling of multi-varbind getNext
-	               requests with OIDs in reverse lexicographical order
-      - Avoid test failure (T200) on known MS SNMP extension DLL bugs
-      - Fix and improve batch build using recent versions of Visual Studio
-      - Fix build under MinGW
-      - Fix build with 64-bit compiler
-      - Fix building with IPv6 and OpenSSL support
-      - Fix handling of strtoull (both MSVC 6.0, and 2002 & above)
-      - Fix handling of winExtDLL multi-varbind SET requests
-      - Fix MIB output truncation with winExtDLL GETNEXT requests
-      - Fix out-of-range array access in 'interfaces' table
-      - Halt agent on key press, when run in command prompt window (to aid debugging)
-      - Improve Net-SNMP DLL build
-      - Improve support for winExtDLL build
-      - Suppress/remove various compilation warnings
-      - winExtDLL: Don't trigger an assertion if no extension DLLs loaded
-      - winExtDLL: Improve RFC-compliance of response error codes 
-      - winExtDLL: Log the reason why loading an extension DLL fails
-      - winExtDLL: Fix a memory leak when SnmpExtensionQuery(Ex) fails
+    Win32:
+      - Fix batch build using recent versions of Visual Studio. Partial
+	back port of SVN revisions 17573 and 17696.
+      - The header file <sys/timeb.h> is no longer included from
+	<net-snmp/types.h>. Or: the header file <sys/timeb.h> will have to
+	be included explicitly in source files that need the declaration of
+	the function ftime(). Note: compared to r18024 and before, this
+	change does not affect BSD systems -- <sys/timeb.h> was only
+	included from <net-snmp/types.h> on BSD systems in revisions
+	r18025..r18152.
+      - added #include <malloc.h> in win32/net-snmp/net-snmp-config.h such
+	that the MSVC compiler doesn't get confused by the malloc
+	redefinition when building libsnmp as a DLL.
+      - added the functions netsnmp_malloc(), netsnmp_calloc(),
+	netsnmp_realloc(), netsnmp_strdup() and netsnmp_free(). snmplib:
+	removed the troublesome #define malloc netsnmp_malloc etc. This
+	means that when calling functions from the Net-SNMP DLL from C or
+	C++ code that is being linked against another version of the MSVC
+	runtime DLL than the Net-SNMP DLL, and when allocating memory that
+	will be freed by the Net-SNMP DLL, you will either have to call the
+	Net-SNMP memory allocation functions explicitly or redefine
+	malloc() etc. yourself.
+      - batch build: replaced the obsolete /GX by the equivalent /EHsc.
+      - batch build: replaced the obsolete /GX by the equivalent /EHsc.
+	batch build: added /D "_CRT_SECURE_NO_WARNINGS" /D
+	"_CRT_NONSTDC_NO_WARNINGS" to make building with MSVC 2008 more
+	silent.
+      - batch build: replaced the obsolete /GX by the equivalent /EHsc.
+	batch build: added /D "_CRT_SECURE_NO_WARNINGS" /D
+	"_CRT_NONSTDC_NO_WARNINGS" to make building with MSVC 2008 more
+	silent. batch build: removed /Fp... and /YX. These options
+	influence how precompiled header files are generated, which are not
+	used inside the Net-SNMP project. /YX is not supported by MSVC
+	2008.
+      - batch build: replaced the obsolete /GX by the equivalent /EHsc.
+	batch build: added /D "_CRT_SECURE_NO_WARNINGS" /D
+	"_CRT_NONSTDC_NO_WARNINGS" to make building with MSVC 2008 more
+	silent. batch build: removed /Fp... and /YX. These options
+	influence how precompiled header files are generated, which are not
+	used inside the Net-SNMP project. /YX is not supported by MSVC
+	2008. batch build: removed a duplicate occurrence of strtoull.obj.
+      - building: Added libsnmp.def to the list of libsnmp_dll.dsp source
+	files such that the DLL is rebuilt when the .def file has been
+	modified.
+      - building: building NetSNMP.pm does no longer trigger compiler
+	warnings about redefining _WIN32_WINNT nor NTDDI_VERSION.
+      - building: converted .dsp/.dsw files to .vcproj/.sln files. This
+	implies that support for MSVC 6.0 has been dropped and the minimum
+	Microsoft Visual Studio version required to build the Net-SNMP
+	source code is Microsoft Visual Studio .NET (2002).
+      - building: made building NetSNMP.pm more silent by adding the MSVC
+	compiler flags -D_CRT_SECURE_NO_WARNINGS
+	-D_CRT_NONSTDC_NO_WARNINGS.
+      - building: made building more silent by not redefining malloc() or
+	free() during compilation of Perl extensions (resulted in warnings
+	about malloc() / free() redefinition in the Perl header
+	CORE/XSUB.h).
+      - building: renamed libsdll.dsw into win32dll.dsw.
+      - building: renamed libsdll.dsw into win32dll.dsw. building:
+	simplified linking the Net-SNMP applications with netsnmp.dll by
+	adding all application projects to the same workspace that is used
+	for building the DLL.
+      - building: renamed libsdll.dsw into win32dll.dsw. building:
+	simplified linking the Net-SNMP applications with netsnmp.dll by
+	adding all application projects to the same workspace that is used
+	for building the DLL. building: made building netsnmp.dll less
+	error prone by letting the compiler print an error message if the
+	preprocessor symbol NETSNMP_USE_DLL has not been defined.
+      - building: simplified the build process by removing the file
+	win32/libsnmp_dll/libsnmp.def.in. Which IPv6 functions are exported
+	from netsnmp.dll is now determined by which of the functions in
+	this DLL have been declared as NETSNMP_IMPORT.
+      - building: simplified the procedure for building with SNMPv3 support
+	enabled (OpenSSL).
+      - changed the type of the fourth argument of netsnmp_set_row_column()
+	from const char* to const void* such that no cast is necessary when
+	passing another datatype then char* or const char*. changed
+	in_addr_t from u_int to u_long such that it matches the datatype of
+	sockaddr_in::sin_addr. Also, fixed several compiler warnings
+	(mostly char * <> u_char * mismatches) and removed some casts.
+      - declared all functions that are exported from the Net-SNMP DLL as
+	NETSNMP_IMPORT. The result is a minor optimization: code that uses
+	the Net-SNMP DLL will now call the DLL-exported functions directly
+	instead of indirectly via the stub in the import library.
+      - exported netsnmp_read_module() from netsnmp.dll such that
+	NetSNMP.pm builds again.
+      - exported netsnmp_set_line_buffering() from netsnmp.dll.
+      - libsnmp builds again as a DLL when IPv6 is enabled.
+      - perl: fixed several "Free to wrong pool" errors. Note: since
+	calloc() is not redefined in <CORE/XSUB.h> using calloc() directly
+	or indirectly leads to "Free to wrong pool" errors, at least on
+	Windows.
+      - winExtDLL: don't trigger a netsnmp_assert() when no extension DLLs
+	have been loaded.
+      - winExtDLL: fixed a bug in getNext handling that could cause the MIB
+	output to be truncated.
+      - winExtDLL: multiple varbind set requests are now processed
+	correctly.
+      - winExtDLL: multiple varbind set requests are now processed
+	correctly. winExtDLL: made error codes in SNMP response PDUs as
+	RFC-compliant as possible.
+      - winExtDLL: multiple varbind set requests are now processed
+	correctly. winExtDLL: made error codes in SNMP response PDUs as
+	RFC-compliant as possible. winExtDLL: if loading an extension DLL
+	fails, the reason why loading failed is now logged.
+      - winExtDLL: multiple varbind set requests are now processed
+	correctly. winExtDLL: made error codes in SNMP response PDUs as
+	RFC-compliant as possible. winExtDLL: if loading an extension DLL
+	fails, the reason why loading failed is now logged. winExtDLL:
+	fixed a memory leak that occurred when SnmpExtensionQuery(Ex)
+	failed. This memory leak has been found via source reading. Note:
+	it is not clear whether it was possible to trigger this memory
+	leak. This leak is certainly not triggered by every request for
+	which a response with non-zero error status is sent back.
+      - Suppressed "implicit cast from int to u_char" warnings generated by
+	MSVC.
+      - made sure that accessing the mibII interfaces table does not
+	trigger out-of-range array accesses (was detected by
+	BoundsChecker).
+      - Fix build under MinGW back/forward port of revision 18631
+
+
 
 *5.5*
 
@@ -814,6 +1581,7 @@
       - Build fixes for embedded Perl
       - Fix default shared library building instead of forcing static
       - Use "-Wl,-brtl" when compiling with gcc
+      - [PATCH 2886598]: Header fixes for compiling on AIX6
 
     FreeBSD:
       - [BUG 1073782]: Restore PerfStat values for FreeBSD 5.x systems.
@@ -965,6 +1733,9 @@
       - fixes for 64-bit platforms
       - make perltest fixes for HP-UX
       - make perltest fixes for IRIX
+      - [PATCH 2995098]: Fix creation of SNMPv3 sessions with API_SINGLE
+      - patch 3046371: from christophb4: Fix memory leak in SNMPv1 trap
+	handling.
 
     mib2c:
       - [BUG 1479916]: Restore consistency in row creation code.
@@ -1002,3 +1773,5 @@
       - [BUG 1205300]: nlist err: neither nproc nor _nproc found (same for
 	rt_table, rthashsize, rthost, rtnet)
 
+    qnx6:
+      - [PATCH 2836895]: support for QNX6
diff --git a/ChangeLog b/ChangeLog
index 907caa1..79f948b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,24 @@
 ----------------------------------------------------------------------
 
-Changes: V5.5.1 -> V5.5.2
+Changes: V5.6.1 -> V5.6.2
+
+commit 976696a128e57b512bf7ad400d002368b4a9a871
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Wed Jul 18 14:34:31 2012 +0100
+
+    V5-6-patches out of Release Candidate
+
+commit 57c568d3d398172c5541fb31bb75d18fcce2e26f
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Wed Jul 18 14:34:15 2012 +0100
+
+    Version number update: 5.6.2
+
+commit 73d906bc7c98506fa2b4d6d290f7b3beba2e4a0d
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Wed Jul 18 11:12:58 2012 +0100
+
+    version update for 5.5.2
 
 commit 42b5afb3cd6d06adb426f1dbaa98358f2b2e8a53
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
@@ -56,12 +74,38 @@
 
     after pulling all the branches, switch back to the initial one
 
+commit 6a075ae494c76b82eea96327cf5242df048743db
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Fri Jun 22 14:21:08 2012 +0100
+
+    version update for 5.6.2.rc3
+
+commit a37e7e02945147bfe6cadb9571706c6b2ec743bf
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Fri Jun 22 14:17:42 2012 +0100
+
+    version update for 5.6.2.rc3
+
+
+commit 5953cfd855b7a565672cef9429497141c7d9be12
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Fri Jun 22 14:04:50 2012 +0100
+
+    Unpick merge conflict.
+    (Not sure why this wasn't flagged up earlier - or maybe I just missed it!)
+
 commit e72e205fdcef787ef840c8c928ed27351a69544b
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Fri Jun 22 13:58:07 2012 +0100
 
     Release Candidate for V5-6-patches
 
+commit feabef3e6ca35bc0f14341e4cd6dc9afd1955ba7
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Fri Jun 22 13:57:56 2012 +0100
+
+    Version number update: 5.6.2.rc3
+
 commit f79a54f2472508b167d977f367c3864b5621e89d
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Fri Jun 22 13:42:53 2012 +0100
@@ -74,18 +118,24 @@
 
     version update for 5.5.2.rc3
 
-commit fe107794e7400d239e8af3da8b4a3fbef06b5da9
+commit af1d00ab0246275dadb5f0cd3a23a77d5f5598cd
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Fri Jun 22 13:28:37 2012 +0100
 
     Release Candidate for V5-5-patches
 
-commit b6953b52c4ec426491146e1cc0f560b2173695b0
+commit f18776d63a516020317e58875ab24352d5db8651
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Fri Jun 22 13:28:26 2012 +0100
 
     Version number update: 5.5.2.rc3
 
+commit fe107794e7400d239e8af3da8b4a3fbef06b5da9
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Fri Jun 22 13:28:37 2012 +0100
+
+    Release Candidate for V5-5-patches
+
 commit 0f84fbcf71995bddafab500d87c9c5a6f461a734
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Fri Jun 22 12:29:34 2012 +0100
@@ -133,12 +183,37 @@
 
     Fix dist/release format
 
+commit fa7bd581e3783685db39c9b4eaf847be5ac86fd3
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Thu May 31 13:53:10 2012 +0100
+
+    version update for 5.6.2.rc2
+
+commit 0739e2382d31146aca3205244cf70788b40a428d
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Thu May 31 13:51:45 2012 +0100
+
+    version update for 5.6.2.rc2
+
+
+commit 5109ae77b6c1d549d91e32827f4a2cac05383d58
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Thu May 31 13:50:12 2012 +0100
+
+    make depend for 5.6.2.rc2
+
 commit 131429e7062fbaa65b82affed1fb92df2c0cc813
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Thu May 31 13:38:38 2012 +0100
 
     Release Candidate for V5-6-patches
 
+commit 1fbfe5ee3c4287345c51462775f39e1bd2735e2b
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Thu May 31 13:38:28 2012 +0100
+
+    Version number update: 5.6.2.rc2
+
 commit 1c8110b33b8105ca6190945a35fe7ae903252d68
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Thu May 31 13:21:38 2012 +0100
@@ -163,36 +238,54 @@
 
     version update for 5.5.2.rc2
 
-commit 2670ba6a5b0027d11ec3a5e18fe87db385f5e0e4
+commit 9f5a82a5afdbb3daeb2fd437a309f0b8d357cf4b
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Thu May 31 11:05:39 2012 +0100
 
     make depend for 5.5.2.rc2
 
-commit e79e387b3e18b487ef4172c9d24eb9523404d0ad
+commit 39203f29477a3bedf012d41135d8abd6bcad08b1
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Thu May 31 10:54:27 2012 +0100
 
     documentation update for 5.5.2.rc2
 
+commit 17e79ef0fad79609c5ba2feb4e8b9eb5d7db6886
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Thu May 31 10:46:11 2012 +0100
+
+    Release Candidate for V5-5-patches
+
+commit 5821be5bbb4018ded282fbbbd4830cf2eeadd9e1
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Thu May 31 10:45:59 2012 +0100
+
+    Version number update: 5.5.2.rc2
+
 commit 3f2111de6733a04e12d910d306a34d671e008762
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Thu May 31 10:46:11 2012 +0100
 
     Release Candidate for V5-5-patches
 
-commit cefc6f7bd4fee0f5057e49300a6b1d15d2fd4f58
-Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
-Date:   Thu May 31 10:45:59 2012 +0100
-
-    Version number update: 5.5.2.rc2
-
 commit ccf8ff2c4db60122d41302e4aeb700e0b868105f
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Mon May 28 10:18:43 2012 +0100
 
     CHANGES: snmplib: PATCHES: 3526599: Don't hang on retried failing SNMPv3 responses
 
+commit c81c8483990911f47435d3005255d91c37ab92b2
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Sun May 27 14:09:26 2012 +0200
+
+    Fix BSD that downnot always like IP_SENDSRCADDR - so retry without
+
+commit ffce1f2dc2f8b31abd01f93b26da78f4726a1e64
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Sun May 27 14:03:58 2012 +0200
+
+    Fix OS missing MSG_DONTWAIT (AIX). Backport from 5.7
+
 commit c575216850185b56454dad0253e3164979e13513
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Sun May 27 13:56:01 2012 +0200
@@ -219,6 +312,24 @@
 
     NEWS: snmp: BUG: 3526549: CVE-2012-2141 Array index error leading to crash
 
+commit 65dd83c2255ee58edbf0e25863e55b58a4113679
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Mon May 7 20:30:42 2012 +0100
+
+    version update for 5.6.2.rc1
+
+commit ac4bc65e2909f3bd85f32f04b504fa65d2f64553
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Mon May 7 20:28:06 2012 +0100
+
+    make depend for 5.6.2.rc1
+
+commit b74994864195119edb6e19c85147fac00bcb93e3
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Mon May 7 20:13:46 2012 +0100
+
+    Version number update: 5.6.2.rc1
+
 commit 91350092c46e66d06d74143f4816473db4d25160
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Mon May 7 19:56:33 2012 +0100
@@ -263,6 +374,14 @@
     modules may well be different to the version being built.
     That should not break the build.
 
+commit eba86b6f7aff261ee0e61334df70de7156e5c3cb
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Mon May 7 17:01:03 2012 +0100
+
+    When building a new release, the installed version of the perl
+    modules may well be different to the version being built.
+    That should not break the build.
+
 commit 5c0f64d6db2b593f7cc0ed2d4f55b7c592b774a8
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Mon Apr 23 22:25:15 2012 +0200
@@ -287,56 +406,24 @@
 
     Check need for -lm to use round/exp
 
-commit 137fe582d6cc5611430dab46ef144efd84cfc803
+commit e41fbaff18ac9095cf4a739a06ec39a1a6ccfdc1
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
-Date:   Fri Apr 6 20:46:56 2012 +0100
+Date:   Mon Apr 9 20:35:35 2012 +0100
 
-    Revert commit 1f4a829b18275e4956ca91e5ec370df015f06133
-    (snmp_store_needed() API is not available in 5.[45].x)
+    Version number update: 5.6.2.pre2
 
-commit 2b7e64288c01a8a062026c521ca31a5e885f30cc
+commit a79141a419953d010a6989e8b88f4df127394d38
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
-Date:   Mon Apr 2 16:12:12 2012 +0100
+Date:   Mon Apr 2 09:19:26 2012 +0100
 
-    FreeBSD-9: Fix for 'const'ifyed nlist arguments
-    Backport of ed65eca6e7f9cfa7380a78d56c01ed314745b169 from V5-6-patches
+    Header fiddling for FreeBSD,OpenBSD,Dragonfly
+    Backport of f7b0de1518002c6e8f9b94ef3deb8882e1e9338e from V5-7-patches
 
-commit 7e95d80b698051259645c074a53ffd264a6fa916
-Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
-Date:   Mon Apr 2 16:06:56 2012 +0100
+commit 9ca8d939ab393306a1d0f146c9cb70ea0cb19d49
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Thu Mar 29 22:30:38 2012 +0200
 
-    FreeBSD-9: Fix for 'const'ifyed nlist arguments
-    Backport of ed65eca6e7f9cfa7380a78d56c01ed314745b169 from V5-6-patches
-
-commit 1a9b7b7c02e2deefe994d595a7cc1dd2ffbeee1d
-Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
-Date:   Mon Apr 2 15:51:20 2012 +0100
-
-    Fix compilation on FreeBSD 9.x with 'recent' header shuffling
-    Backport of c53d8c3525f590f2213d35b0da94123862f3e366 from V5-5-patches
-    (Patch #3363308 - omitting tweaks to configure)
-
-commit 3d9ddb41e263bc1a78f9f9440b8d4ad4f86c82e1
-Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
-Date:   Mon Apr 2 10:36:18 2012 +0100
-
-    Fix typo
-    Backport of 5b702b024b60176d7f5699b92e55da50a8deae71 from V5-6-patches
-
-commit 0d35c609564b66a1ffe81556d37adf0503c389ce
-Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
-Date:   Mon Apr 2 10:15:08 2012 +0100
-
-    Provide missing definition of NETSNMP_PRIo
-    (used in agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c)
-
-commit adf74bf753d3970357afd633803256241d9c7b87
-Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
-Date:   Mon Apr 2 08:20:46 2012 +0100
-
-    Fix IPv6 TCP & UDP tables, *BSD support (including OpenBSD)
-    Backport of commits 5cd1573625471c0583e9087aec6802b77157d5a2
-      and 50d73f0d56fe22c590530b3e305d41dcdac3ce00 from V5-6-patches
+    Running autoheader / autoconf
 
 commit cecd4869deb68f3d4c71e768d5b40dd576446925
 Author: Niels Baggesen <nba@users.sourceforge.net>
@@ -344,6 +431,12 @@
 
     Running autoheader / autoconf
 
+commit a1a4513bd3e4e614200f6db5a02f61d6c8eefb32
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Wed Mar 28 09:47:45 2012 +0100
+
+    Doxygen-style documentation fixes (backport of git commit c09903a42e9d97331fd9e48ee831a85afdf9c70a)
+
 commit 9bdbcca122c37da304fc6aa6939729475f90f5fd
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Wed Mar 28 09:30:49 2012 +0100
@@ -380,6 +473,12 @@
 
     DragonFly needs _KERNEL_STRUCTURES to compile ipv6 code
 
+commit cd43bc09a39bd97ff5e719a2ce232ce424600a65
+Author: David Imhoff <dimhoff@users.sourceforge.net>
+Date:   Sat Mar 24 15:47:17 2012 +0100
+
+    CHANGES: snmplib: PATCH 3510454: Allow the use of 0.0.0.0/0 as alias for default
+
 commit e2fc15f9e5a6e3e36be5f489601cbf6bf731917f
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Sat Mar 24 15:21:38 2012 +0100
@@ -404,6 +503,12 @@
 
     Properly find pass helpers for testing.
 
+commit 5d74c01245523a9d8db1eda27d1efae2ebc104fb
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Mar 21 18:40:02 2012 +0100
+
+    New MIB: VRRPV3-MIB
+
 commit 5b38f062b99b6ef36708e2c7de4965a3192612e9
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Wed Mar 21 18:34:48 2012 +0100
@@ -472,6 +577,50 @@
 
     Allow make test where the source path contains the string Net-SNMP to succeed.
 
+commit 10fe6b83324ad37d18b937cc8c6de94de534d035
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Thu Mar 8 13:04:07 2012 +0000
+
+    version update for 5.6.2.pre1
+
+commit e1122edc1a5fe7976b065044134d39e7db5985ea
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Thu Mar 8 12:43:19 2012 +0000
+
+    version update for 5.6.2.pre1
+
+commit a613d3a834912206d1ba5971e441a3ea6b36af23
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Thu Mar 8 12:33:03 2012 +0000
+
+    make depend for 5.6.2.pre1
+
+commit 8e69742f143e4fc11196e5b2ed66c8f7f53fd02f
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Tue Mar 6 09:24:21 2012 +0000
+
+    Version number update: 5.6.2.pre1
+
+commit c4e00b8c3e1010cdcab5e6c02d60d75df9c6dcf2
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Tue Mar 6 09:24:05 2012 +0000
+
+    version update for 5.6.2.pre1
+
+commit 39490104a3ab58235aace2f9d871c266dc4485ee
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Mon Mar 5 09:06:52 2012 +0000
+
+    Mark the changes make as part of the release process as specific to
+    the particular branch being released.  Version tags, changelog entries
+    and the like shouldn't propagate to later branches.
+
+commit 4a2e5bcd56cd2afb36eb15d754e2fee888dd50c0
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Mar 5 20:59:38 2012 +0100
+
+    hrh_storage is a proper replacement for hr_storage
+
 commit ce85832932ccd916c42319114c40885a466a9d0e
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Mon Mar 5 20:56:40 2012 +0100
@@ -516,21 +665,17 @@
 
     perl/SNMP/SNMP.xs: Fix a compiler warning
 
-commit dae4e16be86117861f63d1a2f981ad361418f5c6
-Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
-Date:   Mon Mar 5 09:06:52 2012 +0000
+commit 40022a697958259ccfbb3fed44eb3c472f5e837e
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Sun Mar 4 10:37:41 2012 +0100
 
-    Mark the changes make as part of the release process as specific to
-    the particular branch being released.  Version tags, changelog entries
-    and the like shouldn't propagate to later branches.
+    Solaris sh does not understand "test -e"
 
-commit 28f6226f2e228b8ca248489735f86502b2cce0a1
-Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
-Date:   Mon Mar 5 09:06:52 2012 +0000
+commit 773af0c42e077bebdaecf1c0caf393285a7688f1
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Sat Mar 3 17:19:30 2012 +0100
 
-    Mark the changes make as part of the release process as specific to
-    the particular branch being released.  Version tags, changelog entries
-    and the like shouldn't propagate to later branches.
+    Clean up nsrollup complications
 
 commit ee71049c3e21c1d0e3424297136652bbe0e39d85
 Author: Niels Baggesen <nba@users.sourceforge.net>
@@ -538,6 +683,30 @@
 
     mibgroup/icmp.c: adjust ifdefs to make it compile on BSD's
 
+commit ce9600361e665dde17af9d8ab16d7ce85dc05643
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Fri Mar 2 21:39:55 2012 +0100
+
+    dot3StatsTable has bugs :-(
+
+commit dffacf6fa0755e1700cbac25b844185abd807a0a
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Fri Mar 2 21:38:10 2012 +0100
+
+    passpersist test needs /usr/bin/perl
+
+commit 1eb4745b23cc3a839864e7f6ea28355b0566eb67
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Fri Mar 2 21:35:49 2012 +0100
+
+    Solaris needs /usr/xpg4/bin/grep to understand -q
+
+commit 9954b4b741fd8c63d6128bd0527298c8e4e989fc
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Fri Mar 2 21:34:45 2012 +0100
+
+    Make sure we have the proper srcdir for out-of-source builds
+
 commit 44acd6c285fb5614b4c9611b1abdeca9dd28e4bb
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Fri Mar 2 21:12:47 2012 +0100
@@ -562,7 +731,6 @@
 
     version update for 5.5.2.pre1
 
-
 commit 364276a1c5aa66caa23eb5b7f111fdeb5af71fa7
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Thu Mar 1 11:45:10 2012 +0000
@@ -581,6 +749,12 @@
 
     version update for 5.5.2.pre1
 
+commit b7109646b95a70713d1ad991d41bccd57c0bb3eb
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Thu Mar 1 08:48:48 2012 +0100
+
+    CHANGES: Bug 3152841: Install util_funcs subheaders introduced in 5.6
+
 commit 432cbb7a5501ab90d66d0a83e731e7343bc04b37
 Author: Magnus Fromreide <magfr@lysator.liu.se>
 Date:   Sat Feb 25 10:13:15 2012 +0100
@@ -611,6 +785,24 @@
 
     CHANGES: man: BUGS: 3490708: Clarify use of common command-line options
 
+commit 65f7962f932c9b75c5bbbb047d1e26ae60978e53
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Tue Feb 28 12:23:34 2012 +0000
+
+    CHANGES: snmpd: BUGS: 3489631: Fix incorrect handling of UCD monitoring flag
+
+commit ac166051b6a092dd4a594326ec85e2f699b62547
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Tue Feb 28 11:57:41 2012 +0000
+
+    CHANGES: testing: BUGS: 3474590: Don't match underscores within the source root filename
+
+commit 879bf7079d34fa46f6fcf54a01c8500beaece59a
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Tue Feb 28 10:44:41 2012 +0000
+
+    CHANGES: snmpd: BUGS: 3460364: Fix use of block factor when detecting error conditions
+
 commit eed0bcbc43fea18259f0f63b2081b6d10535a052
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Tue Feb 28 09:27:11 2012 +0000
@@ -649,6 +841,12 @@
 
     Remove obsolete symbol NETSNMP_EXIT_ON_BAD_KLREAD
 
+commit d8978ecc8211be7c1e7905f1e215bb06ded266b6
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Tue Feb 21 12:32:25 2012 +0100
+
+    Fix snmplib/transports/snmpSocketBaseDomain.c file header
+
 commit aa766d196e5287f6ca79b58a345b024260aba354
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Mon Feb 20 17:07:13 2012 +0100
@@ -679,12 +877,48 @@
 
     Fix two compiler warnings in agent/mibgroup/disman/ping/pingCtlTable.c
 
+commit 46f0fc1b7fc26a225763bc65cca520a1c59f0251
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Feb 6 20:54:32 2012 +0100
+
+    sendmsg does not like IP_SENDSRCADDR if addr is INADDR_ANY
+
 commit debac498fe8410110107a2fe64f8afb748edaa07
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Mon Feb 6 16:48:09 2012 +0100
 
     CHANGES: added OCFS2 (Oracle Cluster FS) to hrStorageTable and hrFSTable
 
+commit bbd67f63530f5ef0bfc948fc58dfe6a93f8f8679
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Mon Feb 6 15:25:30 2012 +0100
+
+    Fix two compiler warnings in agent/mibgroup/disman/ping/pingCtlTable.c
+
+commit 42a66aeff25b9e9ef635a404ad2f5212f9e8cf0d
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Mon Feb 6 14:47:54 2012 +0100
+
+    Rename two function arguments
+
+commit 3fe72b3b99b7e4b2b982363dfc4f2d8d13f40592
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Mon Feb 6 13:49:22 2012 +0100
+
+    Convert snmp_select_info() documentation to Doxygen format
+
+commit e9db266ae48d05a7a6cb5d71b4bdea7ad808ef5e
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Mon Feb 6 11:17:57 2012 +0100
+
+    CHANGES: snmpd: Add netsnmp_get_next_alarm_time()
+
+commit d08044cb9e5702fbf549e14425f42794259d8a21
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Mon Feb 6 09:38:07 2012 +0100
+
+    CHANGES: snmpd: Add netsnmp_get_agent_runtime()
+
 commit a05c27c2711cb41582a3b4c31e38b0e93530b62d
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Mon Feb 6 14:51:33 2012 +0100
@@ -729,6 +963,12 @@
 
     Use SNMP_MIN() instead of min()
 
+commit ae452c77b411139d6b5800ffcf88d48e9b4792a8
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Thu Feb 2 15:23:38 2012 +0100
+
+    Restore commit dbb8795a7df595f0603f2ec61704799f4c482667.
+
 commit c7d11fa00f9995ddb9fe3d4994a3e9790da2e189
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Thu Feb 2 15:18:40 2012 +0100
@@ -787,6 +1027,14 @@
 
     .gitignore: Add python/build
 
+commit 13ada56558b44e28d1355c0dce1d921f3746d548
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Fri Jan 20 15:53:49 2012 +0100
+
+    Revert "Revert "Fix format specifiers to avoid warnings"" - there *is* NETSNMP_PRIo in V5-6+ branches
+    
+    This reverts commit aa528bd22c7493ca8d67e678fbf615ca0f63ea6d.
+
 commit aa528bd22c7493ca8d67e678fbf615ca0f63ea6d
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Fri Jan 20 14:13:18 2012 +0100
@@ -857,6 +1105,18 @@
 
     Fixed freeing reginfo twice on error in a template and all its instances.
 
+commit 496437430415fbafeb1ccd4774f1ca00d627ea1f
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Fri Jan 20 11:04:13 2012 +0100
+
+    python/netsnmp/client_intf.c: Fix compiler warnings introduced on V5.6 branch
+
+commit 5b4a24cdcee1bc3d82633ccafeb96fce95349c59
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Fri Jan 20 09:22:27 2012 +0100
+
+    unit tests: fix a 64-bit compiler warning
+
 commit cbf1c91baf7191be5fa27d81bcf8714331a2c12f
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Fri Jan 20 09:20:42 2012 +0100
@@ -889,6 +1149,30 @@
 
     Fix a typo
 
+commit 454122244122bfdb6f67cab31256d7b46372e9e1
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Thu Jan 19 14:30:18 2012 +0100
+
+    Free tmStateRef on errors.
+
+commit 0119022daa59c73bfec0da2386d0628f14e6dab7
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Thu Jan 19 14:09:12 2012 +0100
+
+    Free fingerprint when it's not needed.
+
+commit 0e84cd303a08267dec78f6d81c9bb07e3d83a11f
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Thu Jan 19 13:48:26 2012 +0100
+
+    Free previously allocated memory on errors.
+
+commit 63dc846a7949ce697b3e28c543dc1105e63a2250
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Thu Jan 19 13:08:28 2012 +0100
+
+    Free certificate fingerprint.
+
 commit ce1f284a63eb81644b3e32606cbe39b67e1dff2a
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Thu Jan 19 14:37:09 2012 +0100
@@ -1015,6 +1299,18 @@
 
     Don't dereference context if it's NULL.
 
+commit 7c4d459e8f1f652cc2098c3d4c81de90a84ed710
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Tue Jan 17 16:30:09 2012 +0100
+
+    Don't deference NULL.
+
+commit fc19b7f33b587927d2a01e72d23d21b9b1696ab3
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Tue Jan 17 16:25:26 2012 +0100
+
+    Don't close NULL file.
+
 commit 5e95ca6790076b788072a801ee7c82969d995bcb
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Tue Jan 17 16:17:09 2012 +0100
@@ -1119,6 +1415,12 @@
     
     See also commit b3c4982542e0ab151fb3884754cdfbcb472da52d.
 
+commit 04bf3e288158ee880edf237e4007fee37d2044dd
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Thu Jan 12 15:39:37 2012 +0100
+
+    Fixed endless loop when SSL_read returns error.
+
 commit c1526fccc0474c1db18caa9dbb833853cddde3cc
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Thu Jan 12 15:13:21 2012 +0100
@@ -1149,6 +1451,12 @@
 
     Removed duplicate code.
 
+commit 2a8a8f2ab7cd75826c5d41ec3cfd5ce3e9634cf3
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Thu Jan 12 14:39:28 2012 +0100
+
+    remove dead code, 'cp' is always != NULL here.
+
 commit 38fd6378cc3275180f63b8d9b9a4072b3dabf8e4
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Thu Jan 12 14:25:06 2012 +0100
@@ -1161,6 +1469,12 @@
 
     Removed unnecessary if (value) check - value is checked few lines before.
 
+commit c5cacf5caf979d018ea6cae1c03b8fdf0b118dfd
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Thu Jan 12 13:44:43 2012 +0100
+
+    Prevent double free(), 'dirname' is already freed inside se_add_pair_to_list() if it fails.
+
 commit acdceb50ea66d6b323c74ee021fb77e810e4e7af
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Thu Jan 12 13:43:19 2012 +0100
@@ -1186,6 +1500,25 @@
 
     Moved debug oputput before return.
 
+commit 45751967287d97640efdcdf8e77e8d490939d8eb
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Wed Jan 11 14:17:18 2012 +0100
+
+    Convert strtoull() unit test into a Net-SNMP unit test
+
+commit 2c2fa48336a4f1f177c2991d6515d29f39533c44
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Wed Jan 11 13:50:44 2012 +0100
+
+    Convert read_config_read_octet_string_const() unit test into a Net-SNMP unit test
+
+commit 07c666f6cea27f2b2ab9bc08aed0cb6133fe3758
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Wed Jan 11 13:17:45 2012 +0100
+
+    Fixed commit 73a523e468277f6df2e984891313b8be8bce1921:
+    Fidex dereferencing key->info when key is known to be NULL.
+
 commit 3b686566296dd87bc42b7f1169daacdb3c45cc58
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Mon Oct 18 06:25:56 2010 +0000
@@ -1333,6 +1666,12 @@
 
     Reduce the scope of the oldmask variable.
 
+commit 6680147b138ec114f81c5d128ac9350c8450d081
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Tue Jan 10 18:44:31 2012 +0000
+
+    Make test T015int64_clib pass on 64-bit systems
+
 commit 3aad15ae560ac857e73c90764e903e7ca02b3295
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Tue Jan 10 15:40:59 2012 +0100
@@ -1429,6 +1768,18 @@
 
     Secure mkstemp() with umask() - on some implementations it does not set 0600 permissions automatically.
 
+commit 202523ca704bd722dc1ac0e1e6b0e4b4e5424495
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Tue Jan 10 13:11:57 2012 +0100
+
+    Fixed dereferencing 'c' before NULL check.
+
+commit 73a523e468277f6df2e984891313b8be8bce1921
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Tue Jan 10 13:08:24 2012 +0100
+
+    Fixed dereferencing key->info when key is known to be NULL.
+
 commit 2f4e6acd714183f015b763657f8f084593357e26
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Tue Jan 10 10:38:16 2012 +0100
@@ -1501,6 +1852,30 @@
 
     Skip T066pass_simple and T067passpersist_simple on MinGW
 
+commit 35a92e693d133a5b11e9e9b599dbf47edef4933b
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Fri Jan 6 08:16:36 2012 +0100
+
+    Remove snmplib/snmpDTLSUDPDomain.c again, which was added accidentally while resolving merge conflicts (commit 1d78f7d5b58aed2b52c4d386a7ba80a44711baca)
+
+commit a9b073ea3b6cedf713e305e7b15f28ae57bfdf1b
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Thu Jan 5 17:47:11 2012 +0000
+
+    Fix 64-bit compiler warnings
+
+commit 7e890dad95f566069ee280215a4fea3f0e2e3980
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Thu Jan 5 16:38:50 2012 +0100
+
+    Avoid a SIGSEGV if cp == NULL. This is a follow-up for commit 089bcb360aa26790ad2a8ceddf583b7ba5ddfd48.
+
+commit 1f6200cfe1b0b27ebb093a1606b592f9e9684be8
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Thu Jan 5 15:53:34 2012 +0100
+
+    Convert strncpy() calls introduced in v5.6
+
 commit c3126b143921fabeac442166eca5b5b742fd42c0
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Thu Jan 5 15:02:39 2012 +0100
@@ -1529,6 +1904,24 @@
 
     Fix warnings triggered during compilation of the Perl xs source files
 
+commit bad0600f6ec944ef8455e327ce784b9b07d247c9
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Thu Jan 5 10:00:13 2012 +0100
+
+    Add configure test for sockaddr_un.sun_path such that the com2sec test is run
+
+commit 92a32ac4866a5edc7f347d37942bf028de02762f
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Thu Jan 5 10:00:29 2012 +0100
+
+    Get rid of a compiler warning
+
+commit 83e4c0e304f617ccac6610edd74d1706797bbf52
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Thu Jan 5 09:15:37 2012 +0100
+
+    CHANGES: testing: Add a test for se_store_list()
+
 commit 4fae5852103ec3893ad488bc0d905ca6914595ef
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Thu Jan 5 09:17:15 2012 +0100
@@ -1541,6 +1934,12 @@
 
     CHANGES: snmplib: Declare "type" argument of se_store_list() / se_store_slist() / se_store_enum_list() const
 
+commit 022f840fbfcb0e26b08f0e55728231f611495803
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Wed Jan 4 19:55:56 2012 +0000
+
+    Avoid that Valgrind complains about sending UDP data
+
 commit 672a809c228e9550b99b8910be75d0b161985402
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Wed Jan 4 17:33:09 2012 +0000
@@ -1573,6 +1972,12 @@
 
     SNMP.xs compiler warning fixes
 
+commit baceebb10d8caf5db63cc36935fed65ee931029d
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Wed Jan 4 16:22:44 2012 +0100
+
+    Add declaration for shutdown_snmpNotifyTable()
+
 commit f7f966abd6d2849b1331252afe5c473e5c40b32d
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Wed Jan 4 14:24:33 2012 +0100
@@ -1696,6 +2101,12 @@
 
     Add strlcat.c. Source: http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/string/strlcat.c.
 
+commit 089bcb360aa26790ad2a8ceddf583b7ba5ddfd48
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Wed Jan 4 10:50:56 2012 +0100
+
+    Added strrchr return value check, just to be sure.
+
 commit 199a0511f6eb0ef3ff1d9f922b790ab67dfde01e
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Wed Jan 4 10:31:26 2012 +0100
@@ -1739,6 +2150,12 @@
 
     Check open() result.
 
+commit a6648c5453e1ef8dac57a38efcc00cce53bf9e4f
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Tue Jan 3 14:20:27 2012 +0100
+
+    Fixed missing break.
+
 commit d68dcae0f18d554571aef321944a5290548dde86
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Tue Jan 3 14:16:11 2012 +0100
@@ -1770,6 +2187,12 @@
 
     Added 'fallthrough' comment for Coverity.
 
+commit dc6f0e2e549b4cd061ebc190084b1fc77a55f40f
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Tue Jan 3 13:32:59 2012 +0100
+
+    Fixed wrong operator
+
 commit dab32867ed0b99301efd7b8d852ad1288a184be0
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Tue Jan 3 13:30:33 2012 +0100
@@ -1812,6 +2235,12 @@
 
     Do not require ucd-snmp/dlmod unless it will work.
 
+commit 27dcea0d5f801df494ab2cb5c5c0ebe54eb0dcd3
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sat Dec 31 14:48:29 2011 +0100
+
+    Adjust paths for test restructure
+
 commit 14b60e85a1b5700e93d126e2f291d5c485f34e36
 Author: Magnus Fromreide <magfr@lysator.liu.se>
 Date:   Sat Dec 31 14:14:29 2011 +0100
@@ -1850,6 +2279,12 @@
 
     CHANGES: snmpd: BUG: 3463767: Handle parsing subidentifiers > 2^31
 
+commit bbc02e36e90c1aab7898562f963f5cadb26e10bd
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Wed Dec 28 17:15:16 2011 +0000
+
+    Move pass/pass_persist tests to the new location
+
 commit 3898c04fd6f89867062fdfebf36857ab619c0450
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Wed Dec 28 16:53:24 2011 +0000
@@ -1926,6 +2361,21 @@
 
     Skip SET-based tests when configured with --disable-set-support
 
+commit c96b3b4d8530ad5e0efb03f24dab5e5f1a460031
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sun Dec 25 11:18:21 2011 +0100
+
+    Correct use-after-free.
+
+commit c5978c89cde2440f4d20dadbc9d1dd8db562d56e
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sun Dec 25 11:15:44 2011 +0100
+
+    Correct double-free.
+    
+    netsnmp_tlstmAddr_add takes ownership of it's argument so calling free on the
+    argument on failure is incorrect.
+
 commit c139ca123b44bb3b9b6bf921e1609cc45f63a660
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Sat Dec 24 16:55:30 2011 +0000
@@ -1975,6 +2425,12 @@
 
     Fixed unterminated strings after strncpy
 
+commit 3d08345156c419333de969f13d21fcec7e18e94d
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Thu Dec 22 14:32:29 2011 +0100
+
+    Fixed unterminated strings after strncpy
+
 commit cd859ad51c4f18d5b0fc69dd669fcb051c798969
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Thu Dec 22 14:39:33 2011 +0100
@@ -2023,12 +2479,103 @@
 
     Fixed dereferencing unitialized iid in error cases and with debug info enabled.
 
+commit 9d58f81a9239cfbcfc8ebce367d21e9b3dcb028b
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Wed Dec 21 13:33:33 2011 +0100
+
+    Fixed dereferencing uninitialized variables in error cases
+
 commit 0bc8c08edeae7ae095f116258c20ae5767d60652
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Wed Dec 21 13:20:52 2011 +0100
 
     Fixed returning uninitialized variable 'status' when ss == NULL
 
+commit 8cd3be60d693c9c36ffb97d3d9bcb49c1b4abe35
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sat Dec 17 08:52:24 2011 +0100
+
+    Avoid repetition of the complex expression determining if it is possible to get the destination address.
+    
+    This also makes it possible to build on platforms like Solaris 10 that define
+    IP_RECVDSTADDR but lack either of msghdr.msg_control and msghdr.msg_flags.
+
+commit 953f2e3d425ede3b863a2e7ccb0b4bc862928b57
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sat Nov 5 22:13:07 2011 +0100
+
+    Move the use of _sendto and _recvfrom below their definitions.
+
+commit 68a1173c46cf77601426cf391d9a852794f2057e
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sun Nov 20 20:05:18 2011 +0100
+
+    CHANGES: snmplib: Separate out the cmesg buffer size
+
+commit 461dd16f3b2647322cdce6363081cc44ba5a49b5
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sat Nov 26 21:51:01 2011 +0100
+
+    CHANGES: snmplib: Merge together the Linux and *BSD version of src port sending.
+
+commit 7accb69baa1fc0b6a3439d2e549c86da3453bad2
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sun Dec 11 19:30:31 2011 +0100
+
+    Use a bare struct iovec in instead of a one element array.
+    
+    The purpose of this change is to make _recvfrom more similar to _sendto.
+
+commit 39852cd4c85ef2bfc75cdea2825261ee93e768c2
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sun Dec 11 19:29:20 2011 +0100
+
+    Add comment describing the purpose of the call to getsockname after almost removing it.
+
+commit 1b292ca27eab5caa73feaaa83dc9c12abc0f2e70
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sun Dec 11 19:27:59 2011 +0100
+
+    Reduce variable scope.
+
+commit bc879571eca9520bc132f840c3e659d3793144d7
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sun Dec 11 19:25:36 2011 +0100
+
+    Introduce temporary variables to ease the extraction of the server address.
+
+commit b7eea6cffbd872932ce2c04fefb6f43de339f374
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sun Dec 11 19:18:33 2011 +0100
+
+    Rename the cmesgptr variable to cm.
+    
+    The purpose of this is to increase the readability of the code.
+
+commit 0a7461e728805c62a1cab9d87bfc74c7927a9fcc
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sun Dec 11 19:15:22 2011 +0100
+
+    Factor out a common loop in recvmsg option processing.
+
+commit b3c6248d0201ab1610840d6d0e749b3b6c4ad792
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sun Dec 11 19:13:43 2011 +0100
+
+    Unify the structure of Linux and BSD recvmsg option parsing somewhat.
+
+commit 356400d6290a423b52ebeea5a5e976fb15bb73b4
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sun Dec 11 19:04:56 2011 +0100
+
+    Use CMSG_DATA on the result of CMSG_FIRST/NEXTHDR, not on the buffer.
+
+commit 3b351708c62de46aa1b90ed232cfd8c7c5b02231
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Thu Dec 8 12:00:32 2011 +0100
+
+    Remove a cast
+
 commit de9250d9dae9727a6cc7f647688dddf1b8597128
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Thu Dec 8 11:58:04 2011 +0100
@@ -2056,6 +2603,22 @@
     Move the code for pormatting and printing values from pass and pass_persist
     into pass_common.
 
+commit b6568c83f1756e9a65434edeeeb40d23ddbbb652
+Author: ccchiu <ccchiu@sourceforge.net>
+Date:   Wed Dec 7 16:25:27 2011 +0100
+
+    CHANGES: BUG: 3452069: Fix snmptrap_oid declaration in mib2c generated code
+    
+    This bug was introduced considerable time ago. It did already exist at the
+    time the 5.6 branch was created (see also commit
+    0ec088afa27cfda4e6ea78aae7cfc5507564edde).
+
+commit 3efefbc0024399786f8b68b1e93b0a8fddddc7da
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Thu Dec 1 10:41:01 2011 +0100
+
+    CHANGES: snmptrapd: Remove superfluous casts
+
 commit 7f05daa8e0e0f533b0f12a3e1cf07641519909d6
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Thu Dec 1 11:58:32 2011 +0100
@@ -2116,12 +2679,47 @@
 
     CHANGES: perl: Fix spelling in the documentation of the SNMP module
 
+commit 5df2bac6bd717799311f001ac7b73db88f11bdda
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Tue Nov 29 08:59:58 2011 +0100
+
+    CHANGES: snmplib: Only transform the address to printable form when needed.
+
+commit 171e8d48d4af04013cff8fd28f5341a2aef21d88
+Author: Mijo Safradin <safradin@linux.vnet.ibm.com>
+Date:   Tue Nov 29 16:49:46 2011 +0100
+
+    CHANGES: snmp-bridge-mib: Fix index interpretation.
+    
+    This patch corrects a wrong data interpretation.
+    snmp-bridge-mib obtains the ifindex value from the sysfs
+    attribute 'ifindex' The value given by the sysfs attribute
+    is an integer, which is handled as hex and leads to
+    incorrect data displayed to the user.
+    
+    e.g.
+        $ > snmpwalk localhost BRIDGE-MIB::dot1dBasePortIfIndex.2
+        BRIDGE-MIB::dot1dBasePortIfIndex.2 = INTEGER: 54
+    
+    according to the sysfs attribute the value is 36
+    
+        $ > cat /sys/class/net/<device>/ifindex
+        36
+    
+    Signed-off-by: Mijo Safradin <safradin@linux.vnet.ibm.com>
+
 commit 82e39fb6706df90ecf2fc9e10ada2b962ee196f3
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Tue Nov 29 12:27:46 2011 +0000
 
     Fix multi-line case testing of incoming OID
 
+commit b15da1a4516061105a1eac7450cf650ec44266b2
+Author: Nikolay Denev <ndenev@gmail.com>
+Date:   Tue Nov 29 08:29:49 2011 +0100
+
+    CHANGES: FreeBSD: Restore IP_RECVDSTADDR functionality.
+
 commit 8867fd1dcfe72b59d07322ff38a699b66ec4f326
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Tue Nov 22 09:44:38 2011 +0100
@@ -2158,6 +2756,20 @@
     CHANGES: snmpd: Call snmp_oidtree_compare instead of snmp_oid_min_compare
     CHANGES: snmpd: Remove snmp_oid_min_compare since it is internal and unused
 
+commit 85f893e2b605e67f9bd0443c74e2ed269aa68564
+Author: Niki Denev <niki_d@users.sourceforge.net>
+Date:   Thu Nov 17 22:42:32 2011 +0100
+
+    CHANGES: snmpd: PATCHES: 3175640: Use IP_RECVDSTADDR sockopt where available (*BSD)
+    
+    This hunk fell of when the rest of the patch was merged.
+
+commit 5c913e54656ae0096b1feb6da98b5fc9ca81f276
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Nov 16 23:33:07 2011 +0100
+
+    Define the full NetBSD hierarchy downwards
+
 commit b881841bd0493dd71d63259bdded449b06f02c32
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Wed Nov 16 23:30:33 2011 +0100
@@ -2176,6 +2788,12 @@
 
     More needs for NETSNMP_PRIo format specifier
 
+commit b8084a7ccc909b6d6db7c0e8e596d78671f5678b
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Nov 16 23:14:26 2011 +0100
+
+    Fix using char as array index (ctype.h)
+
 commit 4bd0352955a2551bfe02308dd134b9128c98b9e9
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Wed Nov 16 22:59:36 2011 +0100
@@ -2194,6 +2812,12 @@
 
     Fix format specifiers to avoid warnings
 
+commit 25cfc1962ae576ccb1558da1e3ef8b6c17f63c16
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Nov 16 11:27:53 2011 +0100
+
+    Really up-to-date mibs
+
 commit 0e86c781f3989bf022c8993a118617b74a75420c
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Wed Nov 16 09:17:19 2011 +0100
@@ -2212,6 +2836,18 @@
 
     disman/ping, disman/traceroute: Close sockets in error situations
 
+commit 8a2502a15c3217b95939a3c836167d230ac35f02
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Nov 16 09:13:53 2011 +0100
+
+    Up-to-date list of RFCs wit mibs
+
+commit dcdd702111d8da5f53804cfcf0dfdad731468bde
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Tue Nov 15 10:57:34 2011 +0000
+
+    Don't try to install an empty list of man pages (MAN3)
+
 commit 434bfc1f7457550b6f87d5bcd511276b270b5964
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Mon Nov 14 11:22:53 2011 +0100
@@ -2220,6 +2856,12 @@
     
     On 32-bit systems, snmpd dies with aforementioned message when using file descriptions > 32, e.g. when having >32 AgentX subagents.
 
+commit ed65eca6e7f9cfa7380a78d56c01ed314745b169
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Fri Nov 11 19:01:21 2011 +0100
+
+    FreeBSD-9: Fix for const'ifyed nlist arguments
+
 commit eaca7983e3655ab696fcc4461ca0cedbac6ce69a
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Fri Nov 11 19:00:12 2011 +0100
@@ -2232,12 +2874,38 @@
 
     Fix bug #3436528: swinst_pkginfo: recover from NULL return from opendir
 
+commit d7ad8f5f9f3f67f16f65c2515d11e194d2cdd12c
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Thu Nov 10 14:04:41 2011 +0100
+
+    CHANGES: Cygwin: Make date_n_time() produce time zone information
+
+commit ba35c50b2f459bd9c11ed59cc7d1b16215644fa3
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Thu Nov 10 14:17:04 2011 +0100
+
+    Replace AC_TRY_LINK() by AC_LINK_IFELSE()
+    
+    Note: these changes do not affect the generated configure script.
+
+commit f615bf24f5d0f23ce9301da556184d6460740456
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Nov 9 20:32:49 2011 +0100
+
+    Fis Bug #3434824: SIGSEGV when reading disk directive after SIGHUP
+
 commit a94a179d9340f51fa7c23431630bc0ffd6d759e8
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Wed Nov 9 20:30:51 2011 +0100
 
     Fix bug #3433616: dont treat DateAndTime as a string
 
+commit b29e4164531d258fe34a6fe2b9e1ec60c56f9544
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Mon Nov 7 01:25:57 2011 +0100
+
+    CHANGES: testing: Remove unused variable
+
 commit 2e7e9eda0b0d62a7645a9a8f70ef3fb6f3dd6941
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Thu Nov 3 11:17:48 2011 +0100
@@ -2258,18 +2926,37 @@
     
     After 30 days, values from /proc/stat (on Linux) can get bigger than 32bits and snmpd calculations might render counters like ssCpuUser negative or zero, while the real value is higher. Therefore the counters should be tracked as the largest integer available.
 
+commit 0fc8221b24988c4ae6180ed42b86b9852fd586ad
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Nov 2 22:59:08 2011 +0100
+
+    dskIndex was off by one
+
 commit 2801a2139f27021e1ab15e362e2d3d624ffaa494
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Mon Oct 31 22:55:53 2011 +0100
 
     Patch #3406364: Fix unstable data for NetBSD.
 
+commit 821a58d112d7ac495149e262d704412ba2800438
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Oct 31 22:43:52 2011 +0100
+
+    Fix ipv6 statistics looping too far when scanning interfaces.
+    Fix TCP session table repeating data from first entry for all.
+
 commit 349591d03e17a55b43eacc6a687b02fd8d4e9528
 Author: Magnus Fromreide <magfr@lysator.liu.se>
 Date:   Mon Oct 31 08:59:37 2011 +0100
 
     CHANGES: perl: Make it possible to build perl support without support for opaque types.
 
+commit 1ec7110e72bce1561f746517459d6f043016b60e
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sun Oct 30 19:05:30 2011 +0100
+
+    CHANGES: testing: Make the asn1 test pass even if support for opaque types are removed.
+
 commit 6d26918af55aa3662a720542de77bbf39b0a3e91
 Author: Magnus Fromreide <magfr@lysator.liu.se>
 Date:   Sat Oct 29 08:34:33 2011 +0200
@@ -2284,6 +2971,24 @@
     
     This is a backport of commit 9f653f7.
 
+commit 2c45f92cfcb5b05e049226a5a7883a0b106011ae
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Wed Oct 26 10:42:29 2011 +0200
+
+    Fix compiler warnings about passing a const pointer to a function accepting a non-const pointer.
+
+commit 275d23edfdebe0577b08421e4c6c936ae39b7fdc
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Wed Oct 26 09:33:09 2011 +0200
+
+    Fix compiler warnings about set-but-not-used variables
+
+commit 4495e17c078ac6997a9c7fa1a88db0644e919491
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Wed Oct 26 09:32:46 2011 +0200
+
+    Fix compiler warnings about casting away const
+
 commit 13952f6bee9f408867ab6d2fdfdde4f284074957
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Wed Oct 26 14:05:16 2011 +0200
@@ -2357,6 +3062,24 @@
 
     CHANGES: snmpd: Remove spurious #endif that seems to be the result of a mismerge.
 
+commit 6810ed42f9bc560750d6dbfb7e50b6e2ac11899c
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Fri Sep 30 11:01:23 2011 +0200
+
+    CHANGES: Cywin: agent: Implement get_uptime() such that querying HOST-RESOURCES-MIB::hrSystemUptime returns a non-zero value.
+
+commit 97172b311d20f4441c7a7e90092b59c1e0da99f7
+Author: Thomas Jarosch <tjarosch@users.sourceforge.net>
+Date:   Wed Oct 5 08:46:39 2011 +0200
+
+    CHANGES: PATCH: 3418649: HOST-RESOURCES-MIB: Use pclose() instead of fclose() to close a pipe.
+
+commit b9c8012ec035bc084f175876fecc375195f9be81
+Author: Magnus Fromreide <magfr@lysator.liu.se>
+Date:   Sun Oct 2 14:02:58 2011 +0200
+
+    CHANGES: building: Add target to build agentxtrap from the toplevel
+
 commit 995647c0cfe00412262cc5797bdfae9d00b70c76
 Author: Magnus Fromreide <magfr@lysator.liu.se>
 Date:   Sun Oct 2 15:44:36 2011 +0200
@@ -2428,6 +3151,14 @@
     Fix the code for populating the table_tdata cache,
     and clarify areas needing MIB-specific additions.
 
+commit ee0d3adb078291b743c9ecb76d20b591b7b15972
+Author: Steve Friedl <steve@unixwiz.net>
+Date:   Thu Sep 22 09:58:39 2011 +0100
+
+    CHANGES: snmpd: 3409692: Calculate disk percentage usage via floating-point arithmetic
+    to avoid integer overflow errors.
+    (Code based on the submitted patch, rather than applied verbatim)
+
 commit bbe2c19a01ecec024f741e2e54701ae6212f4c3e
 Author: Magnus Fromreide <magfr@lysator.liu.se>
 Date:   Sun Sep 4 14:44:38 2011 +0200
@@ -2474,6 +3205,14 @@
 
     make it so the git commit line can be cut/paste without linebreaks
 
+commit 3fe36f7ad71c08e1286ce8e487e9352e27cd96cc
+Author: Ronald Wahl <rwa-co@users.sourceforge.net>
+Date:   Tue Aug 30 10:12:11 2011 -0700
+
+    CHANGES: libnetsnmp: PATCH 3394586: from rwa-co: file descriptor leak in read_config (+fix)
+    
+    Signed-off-by: Wes Hardaker <hardaker@users.sourceforge.net>
+
 commit 6e54c4131af731ff90467a75bcc817c957f8f72a
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Tue Aug 30 09:55:14 2011 -0700
@@ -2516,12 +3255,36 @@
 
     make sure that _KERNEL is defined to 1 so that "#if _KERNEL" works on systems that need it (e.g. IRIX)
 
+commit fc5560c05f848321da0ca0c2e87001d5f2295167
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Mon Aug 22 18:54:30 2011 +0200
+
+    CHANGES: building: build fix for systems lacking field msg_flags in struct msghdr (e.g. IRIX)
+
 commit 96ea2d1a8ebffb348673a865d486f31e635e62bd
 Author: Thomas Anders <tanders@users.sourceforge.net>
 Date:   Sun Aug 21 01:51:49 2011 +0200
 
     autoreconf
 
+commit 3f2f61b0e613d6105ecf2ceb395de0bde37f3ce3
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Sun Aug 21 01:47:13 2011 +0200
+
+    autoreconf
+
+commit b62cb0864f577ba85573d0d250d12a39387c07b4
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Sun Aug 21 00:55:33 2011 +0200
+
+    CHANGES: aix: eliminate configure warning regarding libperfstat.h on AIX 6.1 and up
+
+commit 71b90b6f217944b4ffc1836e5160d40e33b4423d
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Sun Aug 21 00:40:28 2011 +0200
+
+    fix broken line wrap
+
 commit 28b54070514753e8d8abb718b224d657ab7a8ab8
 Author: Garrett Cooper <yaberauneya@users.sourceforge.net>
 Date:   Thu Aug 18 11:49:56 2011 -0700
@@ -2530,6 +3293,14 @@
     
     Signed-off-by: Wes Hardaker <hardaker@users.sourceforge.net>
 
+commit f73e6364bb34070622e9f4488cd0487d2fb7402a
+Author: Vladimir Kondratiev <wulf2001@users.sourceforge.net>
+Date:   Thu Aug 18 11:45:29 2011 -0700
+
+    CHANGES: agent: PATCH 3389228: from wulf2001: incomplete commit (patch 3386633: fix integer overflow)
+    
+    Signed-off-by: Wes Hardaker <hardaker@users.sourceforge.net>
+
 commit e6cf8206f0c67650001e34b526b37f64e4a5929c
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Thu Aug 18 09:46:33 2011 -0700
@@ -2697,6 +3468,12 @@
 
     .gitignore: Ignore *.exe files generated by the Win32 build
 
+commit 0344df92e462f3bec994608c3381fca5348abcdb
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Mon Aug 8 15:12:55 2011 -0700
+
+    fix C++ comments
+
 commit 09a661d5dc60c730fe0384b02ed672830ef74e30
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Mon Aug 8 15:12:55 2011 -0700
@@ -2709,6 +3486,13 @@
 
     fix C++ comments
 
+commit d538bcbcce63e1893572d8f1583fdc02f351f84f
+Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
+Date:   Mon Aug 8 22:07:43 2011 +0100
+
+    Define _BIND_TO_CURRENT_VCLIBS_VERSION token
+    (as per Alex' build instructions)
+
 commit 447ddc66d90dd9e5c3105b268b6a63bfc580b924
 Author: Dave Shield <D.T.Shield@liverpool.ac.uk>
 Date:   Mon Aug 8 22:03:58 2011 +0100
@@ -2749,6 +3533,22 @@
 
     display the branch we'll commit to
 
+commit d43729befe12bdefc870889bdfe182e7693f1f3b
+Author: Vladimir Kondratiev <wulf2001@users.sourceforge.net>
+Date:   Mon Aug 8 11:20:30 2011 -0700
+
+    CHANGES: snmpd: PATCH 3386633: from wulf2001: fix integer overflow in disk percent calculations
+    
+    Signed-off-by: Wes Hardaker <hardaker@users.sourceforge.net>
+
+commit 3bc5683334e5663c58924196edd66496ff8170c2
+Author: Garrett Cooper <yaberauneya@users.sourceforge.net>
+Date:   Mon Aug 8 11:12:27 2011 -0700
+
+    CHANGES: libnetsnmp: PATCH 3387139: from yaberauneya: Avoid segfault if trapsess transport element cant be parsed
+    
+    Signed-off-by: Wes Hardaker <hardaker@users.sourceforge.net>
+
 commit 1d1bfd5f451c2bc420b710c98c79d04bdef4391b
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Mon Aug 8 11:10:52 2011 -0700
@@ -2797,6 +3597,12 @@
 
     separate nssync into nspull and nspush
 
+commit e46b170117fe78a2faabef1adcc3d6d4d5696036
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Mon Aug 8 17:23:43 2011 +0200
+
+    CHANGES: snmplib: Fix a crash that could be triggered by calling _mibindex_add() with the second argument not equal to -1.
+
 commit 7f42d0d93320484152271427cc9808cbda49bbd0
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Mon Aug 8 09:50:51 2011 +0200
@@ -2963,6 +3769,44 @@
 
     nssync supports --merge now
 
+commit 0078e22470eb0fdd6dc02e20813351acdc158964
+Author: Garrett Cooper <yaberauneya@users.sourceforge.net>
+Date:   Thu Aug 4 08:23:22 2011 -0700
+
+    CHANGES: libnetsnmp: PATCH 3362233: from yaberauneya: Mute unnecessary cannot find module noise
+    
+    Signed-off-by: Wes Hardaker <hardaker@users.sourceforge.net>
+
+commit eb78db2b6e2774a4497d8768c138b4f14c5f5a7f
+Author: Garrett Cooper <yaberauneya@users.sourceforge.net>
+Date:   Thu Aug 4 08:19:16 2011 -0700
+
+    CHANGES: freebsd: PATCH 3363308: from yaberauneya: Fix compilation on FreeBSD 9.x with recent header shuffling
+    
+    Signed-off-by: Wes Hardaker <hardaker@users.sourceforge.net>
+
+commit 8204a64f0ff2f6945c324ee9fc1be3af6e1b850f
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Thu Aug 4 08:15:17 2011 -0700
+
+    allow nsrollup to take a --merge flag for merging instead of rebasing
+
+commit 99f6360296d4459af99affffac89708a581c3ce0
+Author: Sachin Surendran <sachinsurendran@users.sourceforge.net>
+Date:   Thu Aug 4 08:12:09 2011 -0700
+
+    CHANGES: snmptrapd: PATCH 3383441: from sachinsurendran: Fix crash on 5.4.4 due to access of freed memory
+    
+    Signed-off-by: Wes Hardaker <hardaker@users.sourceforge.net>
+
+commit f7a88bc6f738f77cb9c43081e1f62f27e3b6ef98
+Author: Garrett Cooper <yaberauneya@users.sourceforge.net>
+Date:   Thu Aug 4 08:09:18 2011 -0700
+
+    CHANGES: freebsd: PATCH 3363328: from yaberauneya: Add FreeBSD 9.x to supported OSes list
+    
+    Signed-off-by: Wes Hardaker <hardaker@users.sourceforge.net>
+
 commit e7dd1c437afe6e26a55aa772d468012655741d31
 Author: Garrett Cooper <yaberauneya@users.sourceforge.net>
 Date:   Thu Aug 4 08:23:22 2011 -0700
@@ -3015,6 +3859,14 @@
     
     Signed-off-by: Wes Hardaker <hardaker@users.sourceforge.net>
 
+commit efa3135a250ae1fff308496d22e7782abc0c391e
+Author: Garrett Cooper <yaberauneya@users.sourceforge.net>
+Date:   Thu Aug 4 08:04:27 2011 -0700
+
+    CHANGES: building: PATCH 3383951: from yaberauneya: Fix -Wunused compile warnings with FreeBSD/NetBSD
+    
+    Signed-off-by: Wes Hardaker <hardaker@users.sourceforge.net>
+
 commit 25988be836924a33020113c94aa02614d1dbf1be
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Thu Aug 4 07:36:36 2011 -0700
@@ -3065,6 +3917,42 @@
 
     CHANGES: agent: Avoid that a MIB walk on the host resources MIB triggers a crash on Fedora 15
 
+commit b056ee6eb53909ad04f16ec26d2690d7a083192a
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Thu Aug 4 07:59:04 2011 +0200
+
+    Fix a compiler warning in agent/mibgroup/host/data_access/swinst_pkginfo.c
+
+commit 171f9580fffa6041afc862ef9440d949f0aa79bf
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Wed Aug 3 21:38:26 2011 +0200
+
+    CHANGES: snmplib, snmpd, perl: Eliminate dead variables
+
+commit 794f9a69d7eb642268200b0a4b199151def66ed0
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Wed Aug 3 14:36:25 2011 -0700
+
+    manual pre-merge
+
+commit 73187ce8341ee30b95204d22b69bce515012c0c5
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Wed Aug 3 11:06:23 2011 -0700
+
+    added a comment
+
+commit 438c210876dbf7d1f77cb14d22f8ec8ea4f0e78d
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Wed Aug 3 11:00:31 2011 -0700
+
+    at end of nsrollup mention that now would be a good time to run nssync
+
+commit 39c2e253a2aa1de128c78505c909cc8ae54d0e16
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Wed Aug 3 10:56:14 2011 -0700
+
+    a new nssync() function for push/pulling active branches
+
 commit d8b2052a0359ad9d1a68d8d587bc6be156158d20
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Wed Aug 3 11:00:31 2011 -0700
@@ -3095,6 +3983,38 @@
 
     a new nssync() function for push/pulling active branches
 
+commit 49f5f7af6657e161d9712fc1f62be187abd6a194
+Author: Garrett Cooper <yaberauneya@users.sourceforge.net>
+Date:   Wed Aug 3 10:28:15 2011 -0700
+
+    Reenable IP-MIB::ipDefaultRouterTable
+    
+    Signed-off-by: Wes Hardaker <hardaker@users.sourceforge.net>
+
+commit b61aa0906ad6d0ced5ef3868c26db536a2769879
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Wed Aug 3 10:23:00 2011 -0700
+
+    A new function: nssfpatchapply that auto-pulls git command line info from SF
+
+commit 868cdfcb6ec4220bcdd9a0ded4b84eb4fceeb53a
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue Aug 2 14:43:52 2011 -0700
+
+    added variables names to the generated error messages.
+
+commit afa9732521f1ae6d4e0c9a91745dadb63ace540f
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue Aug 2 13:22:38 2011 -0700
+
+    Wording changes to help describe contexts better
+
+commit 8e72fbe840b8932578dc92f9113598f600cb0590
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue Aug 2 13:22:21 2011 -0700
+
+    Added the missing U64 m2i file
+
 commit 2fa7d87d3979ec0fbb835bcfff898e6bec2abbd9
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Wed Aug 3 10:23:00 2011 -0700
@@ -3166,6 +4086,12 @@
 
     CHANGES: Windows: Perl modules build now with IPv6 enabled.
 
+commit f2832e3407877e71a7ea6dea659e3e20a0c5fa78
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Wed Aug 3 17:43:01 2011 +0200
+
+    Whitespace-only change: fix indentation of an #include directive
+
 commit 7fcc0b8032f8da5b7bc30059af0ba656eae71091
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Mon Aug 1 14:11:28 2011 +0200
@@ -3208,18 +4134,48 @@
 
     suppress "ok" test output in nsb
 
+commit 40125d8539cd89f952fbc24588c5e81e9cd821fe
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Mon Aug 1 13:58:33 2011 +0200
+
+    Detect SMUX recvfrom() errors properly.
+
+commit 5acf0d2ceb3977964ed39f003073ba64138c2ebd
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Sun Jul 31 23:57:41 2011 +0200
+
+    Follow-up for: build fix for systems lacking field msg_control in struct msghdr
+
 commit ae9ac6c9812824bf5b848dc1f3ccf7227c436d0d
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Sun Jul 31 09:11:28 2011 +0200
 
     Fix an incorrect source code comment: there is no requirement in the ANSI C standard that stack variables should be initialized to zero.
 
+commit 242e1797b2694a0689856ae36d05d3413aaf8d77
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Sun Jul 31 01:44:09 2011 +0200
+
+    Follow-up for: build fix for systems lacking field msg_control in struct msghdr
+
 commit 82d73fb11be3ae31f39c9d618d5388dc9b1006d7
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Fri Jul 29 20:51:27 2011 +0200
 
     Unbreak the Windows build
 
+commit 54a44cb7dd71de6616a5ccbfed34a8b796346d51
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Sat Jul 30 14:28:29 2011 +0200
+
+    autoreconf
+
+commit 109f6694d788f48ebd9fc0a1e90c45abc37bea20
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Sat Jul 30 14:22:19 2011 +0200
+
+    CHANGES: building: build fix for systems lacking field msg_control in struct msghdr
+
 commit 9e47ac439333d2bb7c80686241db7331a88770fb
 Author: Thomas Anders <tanders@users.sourceforge.net>
 Date:   Sat Jul 30 00:18:14 2011 +0200
@@ -3345,6 +4301,24 @@
 
     CHANGES: python: PATCH: 3310375: from Erinn Looney-Triggs: fixed parsing of varbinds with MIB names
 
+commit f9ccbc772666134d1d178b505af9ddcdd9ed4244
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Mon Jul 25 15:02:15 2011 +0200
+
+    CHANGES: snmpd: avoid division by zero in UCD-SNMP::dskTable
+
+commit c14fc38614baf10d517136f0480907b7f03d8d74
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Wed Jul 20 13:44:59 2011 -0700
+
+    Updated the wording choices a bit and listed the handler types its producing
+
+commit 45ff778f57164f1e2e5502370743debd7eabf2be
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue Jul 19 18:36:11 2011 -0700
+
+    remove broken whitespace lines that leads to reading confusion
+
 commit ebdd216c074bf41cd3a084bd14689cf01c887b31
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Tue Jul 19 18:36:11 2011 -0700
@@ -3363,12 +4337,24 @@
 
     remove broken whitespace lines that leads to reading confusion
 
+commit df5f70055cf9be33f05fb50abe2f5a81eac092ad
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Tue Jul 19 11:07:19 2011 +0200
+
+    Reran autoreconf
+
 commit 70dee4b8dd37e8b1d59db03cd7f631fe356f19e4
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Tue Jul 19 09:38:16 2011 +0200
 
     CHANGES: snmpd: PATCH: 3369680: from Ilya Yanok: change snmp_enableauthentraps from int to long such that modifying the corresponding MIB object does not overwrite memory in 64-bit builds.
 
+commit 0f309b493c21d3c6914487514b41560754ffcdf9
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Tue Jul 19 08:37:50 2011 +0200
+
+    CHANGES: snmptrapd: Fix a rare crash triggered by SIGTERM by moving shutdown_perl() from the SIGTERM signal handler to the cleanup code section in main().
+
 commit 690ea7dc45c6fe1a7bbfa1584ed9bf921f19b28f
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Tue Jul 19 08:28:59 2011 +0200
@@ -3393,6 +4379,30 @@
 
     Run autoreconf. Fixes build breakage caused by patch d588ec853bd0531f212fcbf51b962b96c6828b59 (RPM 4.9 support)
 
+commit d617d84f83fa69ed9fa9f98efc4afaf880d121f2
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Thu Jul 14 16:43:47 2011 +0200
+
+    Spelling fix: branket -> bracket
+
+commit c48ceef941ce036d2675ae942dead854cf5a1e0d
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Thu Jul 14 16:42:00 2011 +0200
+
+    CHANGES: snmplib: Make netsnmp_ipv6_fmtaddr() show the IPv6 scope ID
+
+commit 7bad78e51941576904afd62cc913666708f8f46c
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Sun Jul 17 11:04:34 2011 +0200
+
+    CHANGES: Win32: Add support for IPv6 address scope ID
+
+commit 4fb1f0eda7909aada6abc5bd8dbf014d115fdb4e
+Author: Bart Van Assche <bvanassche@acm.org>
+Date:   Sun Jul 17 11:07:10 2011 +0200
+
+    Run autoreconf
+
 commit a56721a3e7754e389daa7e8a3d5792899edc9de3
 Author: Bart Van Assche <bvanassche@acm.org>
 Date:   Thu Jul 14 16:18:32 2011 +0200
@@ -3606,6 +4616,18 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20514 06827809-a52a-0410-b366-d66718629ded
 
+commit c4ad27824f9c6e91a9fc11d6619656c36d5d6612
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jun 21 14:28:48 2011 +0000
+
+    Provide a framework for reading RPM package information from
+    a cache directory (rather than querying the RPMdb directly).
+    
+    My apologies to Jeff Johnson for the delay in adding this functionality.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20513 06827809-a52a-0410-b366-d66718629ded
+
 commit 8a5ac775de575416070665c30bc3d77336e12bcb
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Tue Jun 21 14:28:48 2011 +0000
@@ -3618,6 +4640,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20513 06827809-a52a-0410-b366-d66718629ded
 
+commit 594937db755eb380fcf6cd220ce62f6e4a3103c3
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Sun Jun 19 07:52:26 2011 +0000
+
+    Follow-up for r20511: really use the proper format specification.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20512 06827809-a52a-0410-b366-d66718629ded
+
 commit 4524255ba6083d25c03f6436ecbe398836f4a0f8
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Sun Jun 19 07:52:26 2011 +0000
@@ -3627,6 +4658,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20512 06827809-a52a-0410-b366-d66718629ded
 
+commit 105de0219ca2aa79ed6585ff8d0ce455a186d10a
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Fri Jun 17 19:09:52 2011 +0000
+
+    Fix a bug in a debug statement introduced by patch 3310250 / r20494: use %ld to print a value of type oid instead of %d.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20511 06827809-a52a-0410-b366-d66718629ded
+
 commit 621c9eda1282b7f562b3777b5fb57fd355c1a206
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Fri Jun 17 19:09:52 2011 +0000
@@ -3652,6 +4692,23 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20510 06827809-a52a-0410-b366-d66718629ded
 
+commit 7909f60e2df06d65526e940ea3286c24bc36c7ff
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Fri Jun 10 06:05:43 2011 +0000
+
+    Include stdlib.h to make dmalloc happy
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20502 06827809-a52a-0410-b366-d66718629ded
+
+commit 12f26c5ee0689144d46bd34f36a2805222d3761d
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Thu Jun 9 14:35:08 2011 +0000
+
+    CHANGES: BUG: 3151845: fix multiple registrations of snmp transport handler
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20499 06827809-a52a-0410-b366-d66718629ded
+
 commit 374af0758644e9abcc4998fb291ca373869048f8
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Fri Jun 3 06:30:33 2011 +0000
@@ -3660,6 +4717,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20495 06827809-a52a-0410-b366-d66718629ded
 
+commit 4850812f5afaaa7286ccb7b81bc0523f2b7de37c
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Wed Jun 1 22:24:23 2011 +0000
+
+    CHANGES: snmpd: patch 3310250: from fenner: misc fixes for debugging output of agentx
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20494 06827809-a52a-0410-b366-d66718629ded
+
 commit 7189356d88b4cbd920fd934111e4b6d690513f50
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Wed Jun 1 22:24:23 2011 +0000
@@ -3767,6 +4832,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20475 06827809-a52a-0410-b366-d66718629ded
 
+commit eb015c5dffd47a38c977923676d1c4ec8b57bbec
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue May 31 22:49:32 2011 +0000
+
+    CHANGES: snmpd: PATCH 3066862: from fhew: fix the agent for comparing unsigned large indexes of the disk and extend tables.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20471 06827809-a52a-0410-b366-d66718629ded
+
 commit 7fa30fce08ac494c358e6a31b9702e12ffebd461
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Tue May 31 22:49:32 2011 +0000
@@ -3791,6 +4864,16 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20471 06827809-a52a-0410-b366-d66718629ded
 
+commit ab16828ad69c54e068c038a9a94491fdbc6e799f
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Tue May 31 12:30:30 2011 +0000
+
+    CHANGES: snmpd: fixed hrSWRunPath of swapped-out processes on Linux.
+    
+    fgets() returns NULL both when /proc/PID/cmdline is empty (= swapped out) and when the process exited after fopen(), so check /proc/PID/status in both cases.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20470 06827809-a52a-0410-b366-d66718629ded
+
 commit c07d59bd92cc34bc96964b5e743cfdee79875b7a
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Tue May 31 12:30:30 2011 +0000
@@ -3819,6 +4902,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20458 06827809-a52a-0410-b366-d66718629ded
 
+commit 1d20d733f17406247c80c30c47b882839e0eac04
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Thu May 26 16:12:48 2011 +0000
+
+    CHANGES: snmpd: patch 3299384: fix INFORMs so they retry probing for an engineID.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20458 06827809-a52a-0410-b366-d66718629ded
+
 commit a5a9d1e8a24f02dfe4e97af04d6f5e0b590a52ae
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Thu May 26 16:12:48 2011 +0000
@@ -3843,6 +4934,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20457 06827809-a52a-0410-b366-d66718629ded
 
+commit 374b81fffda446f6499decb6f048b19238a9f6b4
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Thu May 26 16:06:11 2011 +0000
+
+    Applied (roughly) patch 3299370 to avoid rewriting existing authkey/privkey/etcs
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20457 06827809-a52a-0410-b366-d66718629ded
+
 commit 1d331375d86282e23b4ae602052753aa4a4f87ac
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Thu May 26 16:06:11 2011 +0000
@@ -3859,6 +4958,22 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20457 06827809-a52a-0410-b366-d66718629ded
 
+commit 962c9eb3965563c5a313d41d8992998d7e603351
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Wed May 25 19:44:15 2011 +0000
+
+    CHANGES: snmpd: patch 3306476: from tinypyramids: fix memory leak in the swrun container loading
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20454 06827809-a52a-0410-b366-d66718629ded
+
+commit ec2bb4451908054669fd2fb1d44126a579059e55
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Wed May 25 16:17:04 2011 +0000
+
+    Follow-up for r20449: use NETSNMP_PRIo "u" for printing subids instead of only NETSNMP_PRIo.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20453 06827809-a52a-0410-b366-d66718629ded
+
 commit 880132daf2f53dadfe41b22ad322d70650a82cc1
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Wed May 25 13:07:23 2011 +0000
@@ -3867,6 +4982,22 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20451 06827809-a52a-0410-b366-d66718629ded
 
+commit 23ef2f10843c9a87789a614abdf526350c4d8443
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Wed May 25 13:07:23 2011 +0000
+
+    CHANGES: Win32: Microsoft Visual Studio: Link with gdi32.lib if OpenSSL has been enabled because gdi32.lib is a dependency of OpenSSL.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20451 06827809-a52a-0410-b366-d66718629ded
+
+commit 9b870372b74a7af5b7726a6051b4f3db5043a77e
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Wed May 25 09:24:08 2011 +0000
+
+    Follow-up for r20448: since the "oid" typedef has been changed back from uint32_t to u_long, change NETSNMP_PRIo from NETSNMP_PRI32 into "l".
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20450 06827809-a52a-0410-b366-d66718629ded
+
 commit 885d1f55cefa82d95356e3e35ecae81158af3b59
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Wed May 25 09:21:05 2011 +0000
@@ -3883,6 +5014,22 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20449 06827809-a52a-0410-b366-d66718629ded
 
+commit de890870de08eacfb25ab818c4d1352f5dcc09c9
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Wed May 25 09:21:05 2011 +0000
+
+    CHANGES: snmpd: Use proper format specifier in debug statements for printing values of type 'oid'.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20449 06827809-a52a-0410-b366-d66718629ded
+
+commit 30b4c36498879b490c15d50030d0b2c18820282d
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue May 24 23:49:57 2011 +0000
+
+    revert OID typedef to u_long as agreed to on -coders and in the admin meeting
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20448 06827809-a52a-0410-b366-d66718629ded
+
 commit 0f2ecd6f05dee37f93ea9a9ac9e7276d6b478dd0
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Tue May 24 12:51:39 2011 +0000
@@ -3899,6 +5046,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20446 06827809-a52a-0410-b366-d66718629ded
 
+commit 05886207042ac2c90aa319165780d17676ed68f4
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Tue May 24 12:51:39 2011 +0000
+
+    Added NULL-checks after malloc
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20446 06827809-a52a-0410-b366-d66718629ded
+
 commit e3b20caabc313d888ca4cc9544e7ecf2e1ab09d4
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Sun May 22 19:34:10 2011 +0000
@@ -3926,6 +5081,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20444 06827809-a52a-0410-b366-d66718629ded
 
+commit 23a2b940e2656268bef30015f782ee6d038f9265
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun May 22 19:07:56 2011 +0000
+
+    CHANGES: python: BUG: 3295407: Fix handling of void pointer
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20444 06827809-a52a-0410-b366-d66718629ded
+
 commit 6e2bf91aba562ccaeb130419893a7170bb2312f9
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Sun May 22 19:07:56 2011 +0000
@@ -3953,6 +5117,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20443 06827809-a52a-0410-b366-d66718629ded
 
+commit a6cadd0098b16a1e9ffa813818b0e9f8fbbc0eb8
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun May 22 18:57:53 2011 +0000
+
+    CHANGES: snmplib: BUG: 3264852: Recognise missing report types (snmp{Unavailable,Unknown}Contexts,snmpUnknownPDUHandlers)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20443 06827809-a52a-0410-b366-d66718629ded
+
 commit 98815003f345ece93fcf836fb0c3ea5997c8f900
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Sun May 22 18:57:53 2011 +0000
@@ -3971,6 +5144,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20442 06827809-a52a-0410-b366-d66718629ded
 
+commit 7d2fe9dcaedca866cdce6178b606b8f06189bf3a
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri May 20 15:41:06 2011 +0000
+
+    CHANGES: snmplib: BUG: 3234754: Ensure old f_create_from_tstring hook is initialized to NULL
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20442 06827809-a52a-0410-b366-d66718629ded
+
 commit 56c74c5a49386330a581564a6ee1579bcf6c509e
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Fri May 20 15:41:06 2011 +0000
@@ -3996,6 +5178,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20441 06827809-a52a-0410-b366-d66718629ded
 
+commit 58382e4885f387e3ffcb8feba936a578c69459ee
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Thu May 19 19:46:20 2011 +0000
+
+    use #ifdef rather than #if for define checks.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20441 06827809-a52a-0410-b366-d66718629ded
+
 commit b588d1a1da681b26f35f2bbf0492242cf4d83c96
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Thu May 19 19:46:20 2011 +0000
@@ -4022,6 +5212,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20440 06827809-a52a-0410-b366-d66718629ded
 
+commit af3dea110d079be1468abc7e01cec6be6c11e9cf
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu May 19 17:19:31 2011 +0000
+
+    CHANGES: man: BUG: 3190725: Document snmp{,_sess}synch_response and snmp_async_send
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20440 06827809-a52a-0410-b366-d66718629ded
+
 commit c00f88f33888edd480acc9ec9312d6b61e170a76
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Thu May 19 17:19:31 2011 +0000
@@ -4031,6 +5230,57 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20440 06827809-a52a-0410-b366-d66718629ded
 
+commit 32945a7a167b4d56e2940626b709ab111905d21a
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Thu May 19 08:55:26 2011 +0000
+
+    CHANGES: snmpd: fixed race condition in hrSWRunTable
+    Treat the reads from /proc/<pid>/* carefuly, processes can exit in the middle of processing.
+    (already fixed in V5-5-patches and V5-4-patches in SVN rev. 20115, dunno why I did not patch trunk)
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20438 06827809-a52a-0410-b366-d66718629ded
+
+commit 27a55953f0bb57aa1aeccf718f34a7d4ae63c43e
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu May 19 08:26:57 2011 +0000
+
+    CHANGES: snmplib: BUG: 3184697: Don't reference internal MD5 when it's explicitly disabled
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20437 06827809-a52a-0410-b366-d66718629ded
+
+commit 90ee782ca4ea8534b8b43ff1dd67fba7d5f569e1
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Sun May 15 16:21:31 2011 +0000
+
+    Follow-up for r20432: testing/RUNTESTS without arguments works again as it should.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20435 06827809-a52a-0410-b366-d66718629ded
+
+commit d5fa70134261af78453f0e03123cfb5fa28cd663
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Sat May 14 19:38:30 2011 +0000
+
+    Fixed a typo in a comment.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20433 06827809-a52a-0410-b366-d66718629ded
+
+commit 191cdb7b2a6e9842af1b93b772a9fdcbf4c35a31
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Sat May 14 19:36:56 2011 +0000
+
+    RUNTESTS works again for tests with a four-digit number.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20432 06827809-a52a-0410-b366-d66718629ded
+
+commit 041e67bfbc07d2f4884e632eeac71a95ca357e54
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Sat May 14 18:47:56 2011 +0000
+
+    Document that the ucd-snmp diskio code still has to be modified such that diskio_free_config() gets invoked upon SIGHUP.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20430 06827809-a52a-0410-b366-d66718629ded
+
 commit ca053996022e3c1de3e2d5b558fadf6d79e9fdd3
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Fri May 13 12:05:19 2011 +0000
@@ -4040,6 +5290,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20424 06827809-a52a-0410-b366-d66718629ded
 
+commit 7f115df8336e3b9ea952300b3d4d104eb2140cdb
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Fri May 13 12:05:19 2011 +0000
+
+    Follow-up for r20417: replaced a malloc()/free() pair by a call to realloc().
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20424 06827809-a52a-0410-b366-d66718629ded
+
 commit 06869520856976ff4590a0bb61c4e96f16c35d6e
 Author: Jan Safranek <jsafranek@users.sourceforge.net>
 Date:   Thu May 12 11:47:36 2011 +0000
@@ -4066,6 +5325,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20418 06827809-a52a-0410-b366-d66718629ded
 
+commit ff03bfad6d0cc54e58cee4d4f8f67fe12910518c
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu May 12 09:03:02 2011 +0000
+
+    CHANGES: snmplib: Fixed a memory leak in snmp_free_session().
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20418 06827809-a52a-0410-b366-d66718629ded
+
 commit cc78d06239755c6ebb831903b6cedd3e1dbab583
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Thu May 12 08:25:33 2011 +0000
@@ -4075,6 +5343,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20417 06827809-a52a-0410-b366-d66718629ded
 
+commit 924cbe3d693a793c20536e80e91510c959acc9a7
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu May 12 08:25:33 2011 +0000
+
+    CHANGES: snmplib: _mibindex_add() no longer reads past the end of the dynamically allocated array _mibindexes.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20417 06827809-a52a-0410-b366-d66718629ded
+
 commit adced4a84876a2e3cb8687b5ffa5830a3b5003aa
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Thu May 12 08:12:47 2011 +0000
@@ -4091,6 +5368,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20414 06827809-a52a-0410-b366-d66718629ded
 
+commit 8d83f95381c8190e64c89d20b76c46ad388c421c
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu May 12 08:12:47 2011 +0000
+
+    CHANGES: Win32: Fixed a memory leak in the Net-SNMP (non-winExtDLL) implementation of the MIB-II ipNetToMediaTable.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20414 06827809-a52a-0410-b366-d66718629ded
+
 commit 8ecd298dbccee1e327ce65852f98928d7bc041d7
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Thu May 12 08:08:41 2011 +0000
@@ -4107,6 +5392,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20413 06827809-a52a-0410-b366-d66718629ded
 
+commit ca38942908ac74fdf1f1f1de779ca5cdd4defa2d
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu May 12 08:08:41 2011 +0000
+
+    CHANGES: Win32: Fixed a memory leak in the Net-SNMP (non-winExtDLL) implementation of the MIB-II ifTable.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20413 06827809-a52a-0410-b366-d66718629ded
+
 commit aa032769bc3da8302c38dd9d62d53f7f054eb2c7
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Thu May 12 07:33:02 2011 +0000
@@ -4123,6 +5416,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20412 06827809-a52a-0410-b366-d66718629ded
 
+commit a21bdf7164490f21f7ee1d3dfec6a9d38e24dd78
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu May 12 07:33:02 2011 +0000
+
+    CHANGES: Win32: Fixed a memory leak in the Net-SNMP (non-winExtDLL) implementation of the MIB-II ipAddrTable.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20412 06827809-a52a-0410-b366-d66718629ded
+
 commit 271914512dc8268d8bc49ba7ec38cc2acec656c3
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Thu May 12 06:54:33 2011 +0000
@@ -4139,6 +5440,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20411 06827809-a52a-0410-b366-d66718629ded
 
+commit 6c8aee7f8a34d7da229f45908c8f331e7254422e
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu May 12 06:54:33 2011 +0000
+
+    Documentation / source code comment spelling fix: exitent -> existent.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20411 06827809-a52a-0410-b366-d66718629ded
+
 commit c2d35bd5c322d7a8536a1ff31d73e41f77c85b97
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Tue May 10 15:02:51 2011 +0000
@@ -4155,6 +5464,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20402 06827809-a52a-0410-b366-d66718629ded
 
+commit 193e3984924bdea9bbb70308062baee3732abba4
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Tue May 10 15:02:51 2011 +0000
+
+    MinGW: avoid that gcc complains about pasing a (char *) argument while (unsigned char *) is expected.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20402 06827809-a52a-0410-b366-d66718629ded
+
 commit 94b5238d88a027306aa9115758111c785a4abad8
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Mon May 9 20:52:01 2011 +0000
@@ -4179,6 +5496,22 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20375 06827809-a52a-0410-b366-d66718629ded
 
+commit f6586aecfa2d2bc49defd3d21f471aa9a3c5436d
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon May 9 20:52:01 2011 +0000
+
+    Use symbolic named for ifType values
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20375 06827809-a52a-0410-b366-d66718629ded
+
+commit 5d338f7b9459346cc0c255abb71e093ff3eaa838
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon May 9 20:43:51 2011 +0000
+
+    IANA has fixed the IANA-IPPM-METRICS-REGISTRY-MIB
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20374 06827809-a52a-0410-b366-d66718629ded
+
 commit 5bb1c9a8fdc47b3ef355cb42e9e18ad88ce496fb
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Sun May 8 20:01:26 2011 +0000
@@ -4230,6 +5563,23 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20363 06827809-a52a-0410-b366-d66718629ded
 
+commit c4f5d9b94b4895bb9c9a050b1a88b201f901f973
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Sun May 8 20:01:26 2011 +0000
+
+    Fix warnings and data format for DateAndTime objects.
+    These modules work, but:
+    - They are Linux only
+    - Rows must be created with rowStatus createAndWait before they are populated
+    - Agent must run as root
+    - Agent is blocked while tests run
+    - Data format for InetAddress objects is wrong. It is ASCII, not binary
+      (making it easier to use from the command line, but ...)
+    
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20363 06827809-a52a-0410-b366-d66718629ded
+
 commit e3db95e1619dd57dfb55ac7494f48d2add56d973
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Sat May 7 15:22:27 2011 +0000
@@ -4246,6 +5596,50 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20362 06827809-a52a-0410-b366-d66718629ded
 
+commit 099945bb2f82ea6cb503c7486c64be087164123d
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Sat May 7 15:22:27 2011 +0000
+
+    Removed an unused label from perl/SNMP/SNMP.xs.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20362 06827809-a52a-0410-b366-d66718629ded
+
+commit e6a1bdae4f7bf625ab607b4f2807470cd2777771
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Sat May 7 13:15:44 2011 +0000
+
+    Win32: improved source code consistency by using LPCTSTR instead of LPCSTR. Note: this does not mean that Unicode builds are supported.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20358 06827809-a52a-0410-b366-d66718629ded
+
+commit 4ebfcea41964a8742a02c68785124bc24da506be
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Sat May 7 13:11:44 2011 +0000
+
+    Reverted a change that was committed accidentally in r20276.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20356 06827809-a52a-0410-b366-d66718629ded
+
+commit 8186cf3c3fccd0226a07614659f3e8fc7d3aeb7a
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Sat May 7 12:54:11 2011 +0000
+
+    Fixed two compiler warnings.
+    (Backported r20236 from the trunk.)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20355 06827809-a52a-0410-b366-d66718629ded
+
+commit c76e2c76985ab7a40d6dbefd2e47323857649735
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Sat May 7 12:51:04 2011 +0000
+
+    Commented out an unused function because the compiler complained about it.
+    (Backported r20237 from the trunk.)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20354 06827809-a52a-0410-b366-d66718629ded
+
 commit a58969eddb3b669877d7229f719087bbd727d033
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Fri May 6 21:32:01 2011 +0000
@@ -4270,6 +5664,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20352 06827809-a52a-0410-b366-d66718629ded
 
+commit d0f22dd10b7a0d3dbf795c2d48e3fa96366aef1b
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Fri May 6 21:32:01 2011 +0000
+
+    NEWS: PATCH 3198781: from fenner: Get disman/ping and disman/traceroute to at least compile
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20352 06827809-a52a-0410-b366-d66718629ded
+
 commit fcb8a8d27c2cc379dce263dbee6720d7b4e02d74
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Fri May 6 17:46:29 2011 +0000
@@ -4361,6 +5763,17 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20335 06827809-a52a-0410-b366-d66718629ded
 
+commit 1d091c5792826e39ec72b6bbfb5c7077a4a7d8eb
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri May 6 13:50:06 2011 +0000
+
+    Fix incomplete uninstall configuration:
+    - broken removal of Microsoft DLL
+    - remove assorted new MIBs and header files
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20335 06827809-a52a-0410-b366-d66718629ded
+
 commit dac102bd5b63a21181a8030adaf5ff96b9f826c3
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Fri May 6 13:50:06 2011 +0000
@@ -4392,6 +5805,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20334 06827809-a52a-0410-b366-d66718629ded
 
+commit 24ebfa48204f83846a71662db921d83c9730bd6a
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri May 6 12:58:28 2011 +0000
+
+    Support Tar/GZip command paths containing spaces
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20334 06827809-a52a-0410-b366-d66718629ded
+
 commit eec17876a653fd052ff62424a87958fa8d029442
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Fri May 6 12:57:07 2011 +0000
@@ -4401,6 +5823,31 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20333 06827809-a52a-0410-b366-d66718629ded
 
+commit 2a4c2aa17c1aab19f7bd2c0cfc1211a714cc2a55
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri May 6 12:57:07 2011 +0000
+
+    Report GZip command correctly
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20333 06827809-a52a-0410-b366-d66718629ded
+
+commit 710434c4e7511e266b7eed5af532e23dc495c97a
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Thu May 5 21:48:24 2011 +0000
+
+    Fix for DragonFly BSD (does not define IP_SENDSRCADDR)
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20332 06827809-a52a-0410-b366-d66718629ded
+
+commit 7f7cd796e08d9421f0c907a97ec89636a9756a88
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Thu May 5 20:29:38 2011 +0000
+
+    Fix spelling of SO_RECVDSTADDR
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20331 06827809-a52a-0410-b366-d66718629ded
+
 commit c1fb3722914741fa998e6b7cee9ce8e07cd4700e
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Thu May 5 06:07:51 2011 +0000
@@ -4417,6 +5864,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20329 06827809-a52a-0410-b366-d66718629ded
 
+commit 379cdf3a96cf27f47f411223b53f8005f0432a11
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu May 5 06:07:51 2011 +0000
+
+    CHANGES: MinGW: Made regression test output independent of the Net-SNMP variables defined in the Windows registry. Some tests that failed previously after the Net-SNMP binaries (MSVC build) had been installed do now pass.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20329 06827809-a52a-0410-b366-d66718629ded
+
 commit f67c150fb05ed38df44f8b526091d6e9b88d9f30
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Tue May 3 19:15:27 2011 +0000
@@ -4427,6 +5882,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20279 06827809-a52a-0410-b366-d66718629ded
 
+commit eebea683a8026137a708e5cc4996dbaa41558090
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Tue May 3 18:55:02 2011 +0000
+
+    CHANGES: snmplib: Guard netsnmp_udp_recvfrom() etc. declarations consistently.
+    CHANGES: Win32: Builds with Visual Studio 2010.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20278 06827809-a52a-0410-b366-d66718629ded
+
 commit 0981e600a62d524bba0fc8784435d76d275d7f33
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Tue May 3 15:29:46 2011 +0000
@@ -4443,6 +5907,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20277 06827809-a52a-0410-b366-d66718629ded
 
+commit d1761537b11b70ba9f5c55d68d03b14bfe329925
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Tue May 3 15:29:46 2011 +0000
+
+    CHANGES: Win32: PATCH: 3293842: Eliminate registry argument limit of 127 characters (this limitation was reported by Sylvain Dery).
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20277 06827809-a52a-0410-b366-d66718629ded
+
 commit a2900c45d1d927e1d891800a1422a922b376d85c
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Mon May 2 11:22:34 2011 +0000
@@ -4459,6 +5931,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20276 06827809-a52a-0410-b366-d66718629ded
 
+commit 0fd7b060699b9047fcac9a15d6c4de1c0944c5c0
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Mon May 2 11:22:34 2011 +0000
+
+    CHANGES: Win32: header file <net-snmp/net-snmp-config.h> can now be used in the MinGW environment.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20276 06827809-a52a-0410-b366-d66718629ded
+
 commit 2e00914d408b0ef9a45d2b317b03329e81456586
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Mon May 2 11:13:23 2011 +0000
@@ -4468,6 +5948,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20275 06827809-a52a-0410-b366-d66718629ded
 
+commit 259c224843e6dd713ae677688d417b0078b0a370
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Mon May 2 11:13:23 2011 +0000
+
+    Win32 DLL build fixes.
+    (Backported r20184 from trunk.)
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20275 06827809-a52a-0410-b366-d66718629ded
+
 commit e7864207f888230de679acfda1fd9b657d792610
 Author: Bart Van Assche <bvassche@users.sourceforge.net>
 Date:   Fri Apr 29 11:17:11 2011 +0000
@@ -4484,6 +5973,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20274 06827809-a52a-0410-b366-d66718629ded
 
+commit c17622ee7ee806f02e4ea99d64cc7eabcd4608d4
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Fri Apr 29 11:17:11 2011 +0000
+
+    Spelling and grammar fixes for the source code comments in snmplib/winservice.c.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20274 06827809-a52a-0410-b366-d66718629ded
+
 commit 311ade23de4a0014fe0fc23cf83d077cd663ad05
 Author: Wes Hardaker <hardaker@users.sourceforge.net>
 Date:   Wed Apr 27 21:16:23 2011 +0000
@@ -4508,6 +6005,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20241 06827809-a52a-0410-b366-d66718629ded
 
+commit 6373ef09add5b2a2cd1d8e136c674e86910b90a5
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Wed Apr 27 21:16:23 2011 +0000
+
+    Don't free the ifXTable row found on load failure as we don't own it
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20241 06827809-a52a-0410-b366-d66718629ded
+
 commit 40abd8e5ab11a07c496ab25f1ad54cc3e58327a4
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Sun Apr 17 20:56:48 2011 +0000
@@ -4517,6 +6022,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20183 06827809-a52a-0410-b366-d66718629ded
 
+commit d2f6f55136b3983fab1640c031d5e7bf32a48535
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun Apr 17 20:56:48 2011 +0000
+
+    CHANGES: snmpd: PATCHES: 3175640: Use IP_RECVDSTADDR sockopt where available (*BSD)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20183 06827809-a52a-0410-b366-d66718629ded
+
 commit c048f2ce43bfa82e8d3ad8a2bd312290c6ba27f0
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Fri Apr 15 13:42:14 2011 +0000
@@ -4547,6 +6061,25 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20182 06827809-a52a-0410-b366-d66718629ded
 
+commit 6b3fbbad913a8d75a8ae50a6d5320e1fafe0e10d
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Apr 15 13:42:14 2011 +0000
+
+    CHANGES: snmplib: PATCHES: 3183000: Fix calculation of common OID prefix length
+    CHANGES: snmplib: BUGS: 3182985: Fix calculation of common OID prefix length
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20182 06827809-a52a-0410-b366-d66718629ded
+
+commit 0f1b78755f9d92d39b10bb6f0ac32493206b3684
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Apr 15 13:17:37 2011 +0000
+
+    CHANGES: Linux: PATCHES: 3205811: Option to skip fd/loop/ram devices in diskIOTable
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20181 06827809-a52a-0410-b366-d66718629ded
+
 commit e4574372e478d37efa3975ca0fc718fcda30608f
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Thu Apr 14 21:31:09 2011 +0000
@@ -4565,6 +6098,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20180 06827809-a52a-0410-b366-d66718629ded
 
+commit 257f4d73702fc4c7ba2f7e1321a9655946b0e803
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Apr 14 21:31:09 2011 +0000
+
+    CHANGES: python: PATCHES: 3185085: Fix segfault on 64-bit systems
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20180 06827809-a52a-0410-b366-d66718629ded
+
 commit 7e899b5cf2db2164e0c1d58706b9502e86596970
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Thu Apr 14 21:10:56 2011 +0000
@@ -4592,6 +6134,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20179 06827809-a52a-0410-b366-d66718629ded
 
+commit 93b32e28ef5519933f502decf99c68ea85a0dea5
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Apr 14 21:10:56 2011 +0000
+
+    CHANGES: mib2c: PATCHES: 3175323: Fix handling of 'while (false)' blocks
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20179 06827809-a52a-0410-b366-d66718629ded
+
 commit 5d5d6fd481528adf7ca01ec0790849ca73196dc2
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Thu Apr 14 20:52:59 2011 +0000
@@ -4619,6 +6170,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20178 06827809-a52a-0410-b366-d66718629ded
 
+commit 59d4d9dc2e42a299c58b80c7ce8983683bd2a772
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Apr 14 20:52:59 2011 +0000
+
+    CHANGES: mib2c: PATCHES: 3204883: Fix handling of non-table objects named fooTable
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20178 06827809-a52a-0410-b366-d66718629ded
+
 commit 6a29968cbdc0166a47a93d1c14d39a2e39fa98d2
 Author: Dave Shield <dts12@users.sourceforge.net>
 Date:   Thu Apr 14 20:44:37 2011 +0000
@@ -4646,6 +6206,15 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20177 06827809-a52a-0410-b366-d66718629ded
 
+commit 5287f5d14631d4084eee24031746c54225267122
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Apr 14 20:44:37 2011 +0000
+
+    CHANGES: mib2c: PATCHES: 3211484: Support enumerations in notification varbinds
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20177 06827809-a52a-0410-b366-d66718629ded
+
 commit f08a1998071b6d4f4ec8d9f5fbf8aefe5629ce7a
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Tue Apr 12 20:01:55 2011 +0000
@@ -4670,6 +6239,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20176 06827809-a52a-0410-b366-d66718629ded
 
+commit 0a185a9d306b6816a26e3508dcb098b91861dc0b
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Apr 12 20:01:55 2011 +0000
+
+    Add missing system oids to mib
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20176 06827809-a52a-0410-b366-d66718629ded
+
 commit d9477251d154fbb526f53367b0b6ebcd1d2674ac
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Tue Apr 12 19:53:10 2011 +0000
@@ -4700,6 +6277,16 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20175 06827809-a52a-0410-b366-d66718629ded
 
+commit 54787d25b2fbaad047a54fc30efeecc2d2805ce7
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Apr 12 19:53:10 2011 +0000
+
+    Fix for garbage output when agent presents more columns in bulk
+    response than our local MIB file  specified.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20175 06827809-a52a-0410-b366-d66718629ded
+
 commit 007e76d6dc38acdfab756fe9bd8e23d82095b4c6
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Tue Apr 12 19:50:08 2011 +0000
@@ -4724,6 +6311,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20174 06827809-a52a-0410-b366-d66718629ded
 
+commit 33b9405d1203046a4590634c592c7181c133b7f2
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Apr 12 19:50:08 2011 +0000
+
+    Fix wrong name for config token 'doNotRetainNotificationLogs'
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20174 06827809-a52a-0410-b366-d66718629ded
+
 commit 2fb0b89c2323db309b162d60a943c1e3a0a17d07
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Sat Apr 9 21:59:11 2011 +0000
@@ -4732,6 +6327,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20173 06827809-a52a-0410-b366-d66718629ded
 
+commit 4f3da767b0f87c99c4c1f5b741203d7d696beeea
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Sat Apr 9 21:59:11 2011 +0000
+
+    Remove bogus (Linux) defines
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20173 06827809-a52a-0410-b366-d66718629ded
+
 commit c3dbbd9fc57acbca999356cdf9be958cc11735ef
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Sat Apr 9 21:56:33 2011 +0000
@@ -4740,6 +6343,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20172 06827809-a52a-0410-b366-d66718629ded
 
+commit 184848f6a5362a4501974a5cf2e5771d2864ff78
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Sat Apr 9 21:56:33 2011 +0000
+
+    HAVE_TM_TM_GMTOFF is HAVE_STRUCT_TM_TM_GMTOFF
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20172 06827809-a52a-0410-b366-d66718629ded
+
 commit b1cd21a4d71c17c122134ac3284917f65363e4d2
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Sat Apr 9 20:04:29 2011 +0000
@@ -4748,6 +6359,14 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20170 06827809-a52a-0410-b366-d66718629ded
 
+commit cce304193098f7573807c82a708bcbe0347a7a2b
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Sat Apr 9 20:04:29 2011 +0000
+
+    Solaris support for SCTP-MIB
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20170 06827809-a52a-0410-b366-d66718629ded
+
 commit c6659c94ad9ba8060dde18942761ce85d1a5cc19
 Author: Niels Baggesen <nba@users.sourceforge.net>
 Date:   Sat Apr 9 19:50:30 2011 +0000
@@ -4757,1211 +6376,3057 @@
     
     git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20169 06827809-a52a-0410-b366-d66718629ded
 
+commit 9fa64f27ac5198e54fef2df58dc094af237faf1e
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Sat Apr 9 19:50:30 2011 +0000
+
+    TZ is one hour off if HAVE_TM_TM_GMTOFF and SYSV (such is Linux)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20169 06827809-a52a-0410-b366-d66718629ded
+
+commit a9a619e0d17303c9ee7d5a7e7106ea0af33b9e96
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Fri Apr 1 01:11:07 2011 +0000
+
+    CHANGES: snmplib: dtls: overhaul of debug
+    
+      - drastic reduction in number of messages and msg complexity
+        for basic dtlsudp token
+      - previous level of detail available by adding 9:dtlsdup token
+    
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20168 06827809-a52a-0410-b366-d66718629ded
+
+commit 1fad987eec1def7cd86c65ac27901373e7a63d0b
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Fri Apr 1 00:53:29 2011 +0000
+
+    CHANGES: snmplib: dtls: clean up close; catch 'connect'/'disconnect'
+    
+      connect = we get successfully decoded snmp data
+      disconnect = 0 byte read, ssh shutdown flag set
+      add bio_cache flags for connected/disconnected
+      check for null ptr before dereferencing
+      close handling:
+      -  only send queued data if we got to connected state
+      -  seriously reduce timeout to wait for junk read. i think
+         we shouldn't even bother
+      - return early if cachep is NULL, so we don't have to test it
+        repeatedly
+      - use correct nfds value in select call
+    
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20167 06827809-a52a-0410-b366-d66718629ded
+
+commit 806326b58a91683ea2a642f6c32a18b0987645df
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Thu Mar 31 05:17:40 2011 +0000
+
+    make trunk and v5-6-patches closely aligned
+    
+      mostly changes in debug, cookie tracking
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20166 06827809-a52a-0410-b366-d66718629ded
+
+commit 0d7e7e42ee3ba0faf215400900434d6024c250f8
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Thu Mar 31 03:53:33 2011 +0000
+
+    add cookie handling; remove ifdef'd code
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20165 06827809-a52a-0410-b366-d66718629ded
+
+commit 9888d444388e3f6b0f69eaaaa2258b314b377057
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Mar 18 11:23:24 2011 +0000
+
+    version update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20147 06827809-a52a-0410-b366-d66718629ded
+
+commit a2b453bda72373dbbb115f7a9c04a635d9339e09
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Mar 18 11:18:22 2011 +0000
+
+    version update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20146 06827809-a52a-0410-b366-d66718629ded
+
+commit b5d549a2e179cb18d5ab3440305310841161ff1f
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Mar 18 11:15:55 2011 +0000
+
+    make depend
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20145 06827809-a52a-0410-b366-d66718629ded
+
+commit bda22e0bc5d482c5c303e31ba5c432c091fa0dd8
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Mar 18 10:36:22 2011 +0000
+
+    documentation update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20144 06827809-a52a-0410-b366-d66718629ded
+
+commit 7345322e2812588b13a4c81b3cdc87729cc3d8f7
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Mar 18 10:32:49 2011 +0000
+
+    Version number update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20143 06827809-a52a-0410-b366-d66718629ded
+
+commit 4aea5866f15f965da7264b9c123a728c9cfa873d
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Thu Mar 17 21:09:10 2011 +0000
+
+    Formatting botch
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20142 06827809-a52a-0410-b366-d66718629ded
+
+commit 0ef8dcd01d1540b8fc77163845f01e3e2d9b5101
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Thu Mar 17 21:07:27 2011 +0000
+
+    Install required mibs
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20141 06827809-a52a-0410-b366-d66718629ded
+
+commit 767936a375c4a97fd22951dfd2ea7b85aeafd96c
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Thu Mar 17 21:05:21 2011 +0000
+
+    New RFC mibs
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20140 06827809-a52a-0410-b366-d66718629ded
+
+commit 9e5056f124f1546f6f506d86169bc8cf0f505e02
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Mar 15 12:37:20 2011 +0000
+
+    version update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20138 06827809-a52a-0410-b366-d66718629ded
+
+commit 66628aa7e040d6a8a3e618dcf72843ea0b81e116
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Mar 15 10:57:59 2011 +0000
+
+    version update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20137 06827809-a52a-0410-b366-d66718629ded
+
+commit 7ea517905a81784c78e7fcae8e72348524166ab8
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Mar 15 10:56:00 2011 +0000
+
+    make depend
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20136 06827809-a52a-0410-b366-d66718629ded
+
+commit 6b8b4168f9ee82a6b25a1af7e007cd0e75547d53
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Mar 15 10:42:06 2011 +0000
+
+    Version number update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20135 06827809-a52a-0410-b366-d66718629ded
+
+commit ec44f7ce43c362b86e3fd1c8ba99dd514df98231
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Mar 15 10:41:27 2011 +0000
+
+    version update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20134 06827809-a52a-0410-b366-d66718629ded
+
+commit a3716193fe4cf2e82c4be0e9e8e6f4e67d4d06bd
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Tue Mar 15 10:31:12 2011 +0000
+
+    Spelling fix: reginerated -> regenerated.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20133 06827809-a52a-0410-b366-d66718629ded
+
+commit bed9272ff9fa6ffb7513a82ec6d423e6a4de5b26
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Tue Mar 15 09:59:30 2011 +0000
+
+    Fixed a compiler warning that was introduced in r20113.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20131 06827809-a52a-0410-b366-d66718629ded
+
+commit 69d6815b6544f47d39291191e9deb5bbae1134e2
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Mar 14 15:21:36 2011 +0000
+
+    version update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20128 06827809-a52a-0410-b366-d66718629ded
+
+commit 9cc8c72e676f0e46d784d15f1ab072c192a54bf7
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Mar 14 14:14:07 2011 +0000
+
+    version update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20127 06827809-a52a-0410-b366-d66718629ded
+
+commit b079a0a3d1cff4f4a30a56ffd55bdce1ea5ddee8
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Mar 14 14:11:14 2011 +0000
+
+    make depend
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20126 06827809-a52a-0410-b366-d66718629ded
+
+commit 0697d0ada97474613233a69b57330333e75b1886
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Mar 14 14:00:52 2011 +0000
+
+    documentation update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20125 06827809-a52a-0410-b366-d66718629ded
+
+commit edfcfe076f707d0d74fb8e1c7f5642dc8d889519
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Mar 14 13:57:00 2011 +0000
+
+    Version number update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20124 06827809-a52a-0410-b366-d66718629ded
+
+commit b5e9c8dd4272b67f9877648d445a074c4e405b28
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Mar 14 13:47:05 2011 +0000
+
+    version update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20123 06827809-a52a-0410-b366-d66718629ded
+
+commit 05b37281d00ed0ca1278042c05021084c7b9a354
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Mar 14 09:31:57 2011 +0000
+
+    Fix main agent select call to use the renamed API routine.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20122 06827809-a52a-0410-b366-d66718629ded
+
+commit 7a61f832523eaba60397e7bd5673667e03ff28ea
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun Mar 13 20:09:52 2011 +0000
+
+    Bring the naming of the large_fd_set select call into
+    line with the rest of the API.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20121 06827809-a52a-0410-b366-d66718629ded
+
+commit 6e5bdc5cba4347922f68ca15a37c3321ac986552
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun Mar 13 20:09:52 2011 +0000
+
+    Bring the naming of the large_fd_set select call into
+    line with the rest of the API.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20121 06827809-a52a-0410-b366-d66718629ded
+
+commit 6deb3600cdedbb800d0d4b180bd4a0cd85629fec
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun Mar 13 20:06:24 2011 +0000
+
+    CHANGES: snmplib: PATCH: 3203806: Add the function netsnmp_large_select()
+    (plus tweaks to netsnmp_large_fd_set_resize)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20120 06827809-a52a-0410-b366-d66718629ded
+
+commit 711e33babb208a90623ecf6b424ed11c3309f987
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Sat Mar 12 06:59:56 2011 +0000
+
+    CHANGES: snmplib: realloc+init instead of calloc
+    
+     inspired by patch 3195532 from Stephen Hemminger
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20119 06827809-a52a-0410-b366-d66718629ded
+
+commit 1e7a6b47c8d7d7717189a9466d1721de88a7a877
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Sat Mar 12 06:59:56 2011 +0000
+
+    CHANGES: snmplib: realloc+init instead of calloc
+    
+     inspired by patch 3195532 from Stephen Hemminger
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20119 06827809-a52a-0410-b366-d66718629ded
+
+commit 18f125f9f3f3f3cfcf71ea75294353a06ca1f42e
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Sat Mar 12 05:47:58 2011 +0000
+
+    CHANGES: snmpd: PATCH: optimizations for large route tables from Stephen Hemminger
+    
+     applied parts 1-3 of 4 from him (msgs to coders on 2/28/11; subject
+     ip-forward-mib performance improvements; part 4 needs more work
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20118 06827809-a52a-0410-b366-d66718629ded
+
+commit a24d79b70473b1dc2664470afd79ce6318046558
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Sat Mar 12 05:47:58 2011 +0000
+
+    CHANGES: snmpd: PATCH: optimizations for large route tables from Stephen Hemminger
+    
+     applied parts 1-3 of 4 from him (msgs to coders on 2/28/11; subject
+     ip-forward-mib performance improvements; part 4 needs more work
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20118 06827809-a52a-0410-b366-d66718629ded
+
+commit 0598b77e1c3ac730ac07d92f79c1b0245b79352e
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Fri Mar 11 14:43:16 2011 +0000
+
+    CHANGES: snmplib: add more openssl error cases where we check for local cert
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20117 06827809-a52a-0410-b366-d66718629ded
+
+commit 51dd623ee467e3b97dac4c5ccdbce42c2707e007
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Fri Mar 11 12:01:23 2011 +0000
+
+    MinGW: dskTable: Report zero for unimplemented fields instead of random data.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20116 06827809-a52a-0410-b366-d66718629ded
+
+commit 84c2412f0022a96eac2f2948caa188036a945036
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Fri Mar 11 11:11:28 2011 +0000
+
+    CHANGES: snmpd: fixed race condition in hrSWRunTable
+    Treat the reads from /proc/<pid>/* carefuly, processes can exit in the middle of processing.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20115 06827809-a52a-0410-b366-d66718629ded
+
+commit 2d48ccf6cc93c0e44eec55edf559d9f1523c74f9
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Fri Mar 11 11:11:28 2011 +0000
+
+    CHANGES: snmpd: fixed race condition in hrSWRunTable
+    Treat the reads from /proc/<pid>/* carefuly, processes can exit in the middle of processing.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20115 06827809-a52a-0410-b366-d66718629ded
+
+commit b818fcedcc3b57a288a5274b993edcbb0ffbad07
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Fri Mar 11 08:42:05 2011 +0000
+
+    CHANGES: snmpd: Builds with most recent MinGW (having #define localtime_r).
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20114 06827809-a52a-0410-b366-d66718629ded
+
+commit c0822105a39c11181629185ee6d7348aecfb5f18
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Fri Mar 11 03:08:50 2011 +0000
+
+    CHANGES: snmplib: refine cert debugging; remove unused function
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20113 06827809-a52a-0410-b366-d66718629ded
+
+commit 5a1641eba1c85f24ea7461e7185c8042d76653dc
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Thu Mar 10 21:21:32 2011 +0000
+
+    CHANGES: snmpd: BUG: 3205765: handle reconfig for certSecName token
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20112 06827809-a52a-0410-b366-d66718629ded
+
+commit f5b7127f42c454a2d91a1a923a9e4822354df61b
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu Mar 10 20:01:33 2011 +0000
+
+    Spelling fix in a source code comment: messges -> messages.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20111 06827809-a52a-0410-b366-d66718629ded
+
+commit 0b196dfd42d6690e4f5be7ee3e2064f0372747e4
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu Mar 10 19:55:26 2011 +0000
+
+    CHANGES: snmplib: PATCH: 3203806: Minor performance optimization of netsnmp_large_fd_set_resize().
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20110 06827809-a52a-0410-b366-d66718629ded
+
+commit c4e8bb759286e731559f1b82ab7fafbafd2d7ea3
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu Mar 10 19:48:43 2011 +0000
+
+    CHANGES: snmpd: PATCH: 3203806: Avoid that the main agent processing loop - when using more than FD_SETSIZE file descriptors - can cause memory corruption by invoking select().
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20109 06827809-a52a-0410-b366-d66718629ded
+
+commit dbb0f7b979f0762185ee5ee184ba3cf23b5b31a1
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu Mar 10 19:43:16 2011 +0000
+
+    CHANGES: snmplib: PATCH: 3203806: Add the function netsnmp_large_select().
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20108 06827809-a52a-0410-b366-d66718629ded
+
+commit a752a8626ff20fa56c959e60945530e582c929ea
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu Mar 10 18:57:24 2011 +0000
+
+    Fixed two compiler warnings (backported r20098 from the trunk).
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20107 06827809-a52a-0410-b366-d66718629ded
+
+commit de6c522cbc61a728ff737fee1e4f4479133013ea
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu Mar 10 18:55:53 2011 +0000
+
+    Added a minimal unit test for netsnmp_large_fd_set.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20106 06827809-a52a-0410-b366-d66718629ded
+
+commit 64f176a9db16993eae1c1a31c98fd4c73474b153
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu Mar 10 18:52:34 2011 +0000
+
+    CHANGES: snmplib: PATCH: 3203806: Make netsnmp_large_fd_set_resize() clear all relevant file descriptors.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20105 06827809-a52a-0410-b366-d66718629ded
+
+commit 3c0fc360d0e8ba1fcf0c3185980e5baf6fc93ef7
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Mar 10 15:51:27 2011 +0000
+
+    CHANGES: snmpd: BUG: 3178389: Fix inconsistent handling of TZ offsets
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@20104 06827809-a52a-0410-b366-d66718629ded
+
+commit 3e69fa5a2fb2b2486ef282e3ba2c8ffd58b0ad71
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Mar 10 15:51:27 2011 +0000
+
+    CHANGES: snmpd: BUG: 3178389: Fix inconsistent handling of TZ offsets
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20104 06827809-a52a-0410-b366-d66718629ded
+
+commit b9a1469898aa515c68972608cbbf01a82f2a9882
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Mar 10 15:51:27 2011 +0000
+
+    CHANGES: snmpd: BUG: 3178389: Fix inconsistent handling of TZ offsets
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20104 06827809-a52a-0410-b366-d66718629ded
+
+commit f8a852104af67c6cfad820665eca2dc73d9b51ff
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Mar 10 15:51:27 2011 +0000
+
+    CHANGES: snmpd: BUG: 3178389: Fix inconsistent handling of TZ offsets
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20104 06827809-a52a-0410-b366-d66718629ded
+
+commit d0e8e6f4d211eb55d05e619650be655dfa9394e5
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Mon Mar 7 17:19:46 2011 +0000
+
+    CHANGES: snmplib: PATCH: 3195537: Minor binary_array container sort optimization
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20077 06827809-a52a-0410-b366-d66718629ded
+
+commit eb03c48e355e08ae5624d6059466659b40bd985c
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Sun Mar 6 19:47:06 2011 +0000
+
+    Tabs to spaces
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20076 06827809-a52a-0410-b366-d66718629ded
+
+commit 6bd2b0bb01c74283534edcfc1cb08790861e0d74
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Sun Mar 6 11:28:04 2011 +0000
+
+    Configure check for gethostname2
+    Use getaddrinfo if available. Now works for Solaris (and Windows?)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20075 06827809-a52a-0410-b366-d66718629ded
+
+commit d868436215c0e70bde3c44e4c926daa6ab880078
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Sat Mar 5 12:50:44 2011 +0000
+
+    Clean up, and cosolidate result table row creation into a new function.
+    Saves 200 lines of code, with (hopefully) no functionality change
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20073 06827809-a52a-0410-b366-d66718629ded
+
+commit c82102d9e2a62db4628b2c5dd9ffb6d7077f02c5
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Fri Mar 4 15:09:26 2011 +0000
+
+    CHANGES: snmpd: fixed 'truncating integer value > 32 bits' in UCD-SNMP-MIB::systemStats on Linux
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@20061 06827809-a52a-0410-b366-d66718629ded
+
+commit 476cca83a283335780a84ec0b873441f114863da
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Fri Mar 4 15:09:26 2011 +0000
+
+    CHANGES: snmpd: fixed 'truncating integer value > 32 bits' in UCD-SNMP-MIB::systemStats on Linux
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@20061 06827809-a52a-0410-b366-d66718629ded
+
+commit 15af0adf81f255463b908859b383f4a515bec36d
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Fri Mar 4 15:09:26 2011 +0000
+
+    CHANGES: snmpd: fixed 'truncating integer value > 32 bits' in UCD-SNMP-MIB::systemStats on Linux
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20061 06827809-a52a-0410-b366-d66718629ded
+
+commit 65791ed6034b4495dff67e0bd775a2c577d13f67
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu Mar 3 10:56:21 2011 +0000
+
+    CHANGES: Win32: Deprecated libsnmp.def - add NETSNMP_IMPORT to function declarations instead to export a function from netsnmp.dll.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20056 06827809-a52a-0410-b366-d66718629ded
+
+commit 5a4f9eab6bf211f0a0917c592cde2e5e84d0c4dc
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu Mar 3 10:50:23 2011 +0000
+
+    Moved a source code comment such that it is again immediately above the function declarations it applies to.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20055 06827809-a52a-0410-b366-d66718629ded
+
+commit e64f510ffb17961911268a845d69bba7adadbf85
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu Mar 3 10:48:34 2011 +0000
+
+    Added missing NETSNMP_IMPORT declarations.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20054 06827809-a52a-0410-b366-d66718629ded
+
+commit 461d2d09038e321b59d831905ac9b765bb4a3c8e
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu Mar 3 10:24:01 2011 +0000
+
+    Removed two obsolete Win32 files.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20053 06827809-a52a-0410-b366-d66718629ded
+
+commit 2886d02c72769fa969f0a117dc72cb5d6b40b2d5
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu Mar 3 10:09:14 2011 +0000
+
+    Trivial comment fix: snmpIPv6BaseDomain.c contains IPv6 base transport support functions instead of IPv4.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@20052 06827809-a52a-0410-b366-d66718629ded
+
+commit 2f54f5b39d96aa7b484d0c994434bd929b172763
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Feb 25 12:55:04 2011 +0000
+
+    Fix the command to create a new SVN tag line
+    
+    (Having brought the structure of the 5.5.x branch
+     into line with the other branches, the previous
+     command is now wrong for *all* branches, rather
+     than just most of them!)
+    
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@19997 06827809-a52a-0410-b366-d66718629ded
+
+commit a691c2f7451e401f4fb8d74bff8bf1168f0a6ff1
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Feb 25 12:55:04 2011 +0000
+
+    Fix the command to create a new SVN tag line
+    
+    (Having brought the structure of the 5.5.x branch
+     into line with the other branches, the previous
+     command is now wrong for *all* branches, rather
+     than just most of them!)
+    
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19997 06827809-a52a-0410-b366-d66718629ded
+
+commit c6ce5a8becf3ee52216d160f5c73a17935eaf791
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Feb 25 12:55:04 2011 +0000
+
+    Fix the command to create a new SVN tag line
+    
+    (Having brought the structure of the 5.5.x branch
+     into line with the other branches, the previous
+     command is now wrong for *all* branches, rather
+     than just most of them!)
+    
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19997 06827809-a52a-0410-b366-d66718629ded
+
+commit bea9033d6a583a1d9f8274af4ce1565dfff0f090
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Feb 25 11:49:17 2011 +0000
+
+    documentation update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@19995 06827809-a52a-0410-b366-d66718629ded
+
+commit 5229a066f234f70f5b0894f0f3617b4f9ed1fcc1
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Feb 25 11:41:31 2011 +0000
+
+    Version number update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@19994 06827809-a52a-0410-b366-d66718629ded
+
+commit be2a9185b6f4adfc4c81d542af7e3b654f553b16
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Feb 25 11:39:24 2011 +0000
+
+    version update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@19993 06827809-a52a-0410-b366-d66718629ded
+
+commit 15a456e1d2ed112a07838caf7f3456521c17fdf9
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Feb 25 11:15:52 2011 +0000
+
+    Version number update
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@19992 06827809-a52a-0410-b366-d66718629ded
+
+commit 1c4fe3a1b91b837869d82e3d8143e6be569a0966
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Feb 25 11:10:00 2011 +0000
+
+    Avoid a possible crash if the engineID is not available or set.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19991 06827809-a52a-0410-b366-d66718629ded
+
+commit d2fd77d862803e3ad50f21067430a71f1ece9d8d
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Feb 25 11:10:00 2011 +0000
+
+    Avoid a possible crash if the engineID is not available or set.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19991 06827809-a52a-0410-b366-d66718629ded
+
+commit 5771c225da96b496b8db2f4784e7b85c4bb523c1
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Feb 25 11:10:00 2011 +0000
+
+    Avoid a possible crash if the engineID is not available or set.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19991 06827809-a52a-0410-b366-d66718629ded
+
+commit 41e26abde2b5d6f40caf684a7a309f7a611c631f
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Feb 25 11:10:00 2011 +0000
+
+    Avoid a possible crash if the engineID is not available or set.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@19991 06827809-a52a-0410-b366-d66718629ded
+
+commit 9889082e3252e02caf5cc4f3bc1c4b4d1c134c52
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Feb 23 21:04:34 2011 +0000
+
+    Include required prototype
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19977 06827809-a52a-0410-b366-d66718629ded
+
+commit 3130166226d00364d607ba9e8743abb7aa42ecc1
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Feb 23 15:23:37 2011 +0000
+
+    unsigned juggling to remove warnings
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19975 06827809-a52a-0410-b366-d66718629ded
+
+commit 5aaa4b3f6893ae412e74d0caed26f473dc38b435
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Feb 23 15:20:11 2011 +0000
+
+    Enable (probably forgotten) ipAddressPrefixTable
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19974 06827809-a52a-0410-b366-d66718629ded
+
+commit 5daec12de442a22ff298235e1250be996103cd89
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Feb 23 09:54:16 2011 +0000
+
+    Loading IPv6 data is a no-no when IPv6 not enabled
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19972 06827809-a52a-0410-b366-d66718629ded
+
+commit 8ab6ce95db7bcda44291f07eb83a2bc3b91d262a
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Feb 23 09:36:22 2011 +0000
+
+    Fix bug 3118631: snmptable segfaults if index contains : character
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19971 06827809-a52a-0410-b366-d66718629ded
+
+commit 965a77b923f14097b91edb89ba36bc0b569078c9
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Feb 23 09:36:22 2011 +0000
+
+    Fix bug 3118631: snmptable segfaults if index contains : character
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19971 06827809-a52a-0410-b366-d66718629ded
+
+commit c5b742d9355843e84100c977a9abc151e2d78afd
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Feb 23 09:36:22 2011 +0000
+
+    Fix bug 3118631: snmptable segfaults if index contains : character
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@19971 06827809-a52a-0410-b366-d66718629ded
+
+commit 7a61223f4cf7a389b87face247a7a65734900c66
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Feb 23 09:36:22 2011 +0000
+
+    Fix bug 3118631: snmptable segfaults if index contains : character
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19971 06827809-a52a-0410-b366-d66718629ded
+
+commit 6ccb54e9457279d8c2b0c030aced215e7036010e
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Feb 23 09:30:52 2011 +0000
+
+    FreeBSD 8 support
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19970 06827809-a52a-0410-b366-d66718629ded
+
+commit f9c70dd16befe8728ef2ab3f103dd83e8c33eace
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Feb 23 09:30:52 2011 +0000
+
+    FreeBSD 8 support
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@19970 06827809-a52a-0410-b366-d66718629ded
+
+commit 91b95881eddc25a885b0b4711b52b11278990e7a
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Feb 23 09:30:52 2011 +0000
+
+    FreeBSD 8 support
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19970 06827809-a52a-0410-b366-d66718629ded
+
+commit 583e7b1454a27cac89907d44325a1432fd0b9a88
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Feb 22 15:25:35 2011 +0000
+
+    Revert a bogus change that crept into the code.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@19966 06827809-a52a-0410-b366-d66718629ded
+
+commit 00ef569e00d164d9e1070cd705c65e4a7390a162
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Feb 22 08:55:48 2011 +0000
+
+    Fix 5.5.x branch structure (part 2)
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-5-patches@19965 06827809-a52a-0410-b366-d66718629ded
+
+commit 727a2f21c3cc74d3c3be8a4707ef1ec49ab6bf7c
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Feb 21 22:40:06 2011 +0000
+
+    proper process status values for netbsd
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19962 06827809-a52a-0410-b366-d66718629ded
+
+commit 0d820fcf95e444dd8a531cc6f82cc7b8a69866b8
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Feb 21 22:39:05 2011 +0000
+
+    conditionalize variable
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19961 06827809-a52a-0410-b366-d66718629ded
+
+commit a49d0d8082c1912733a8775a73817adf4ab3ebef
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Feb 21 22:20:04 2011 +0000
+
+    tcp-mib/udp-mib support for the *bsds
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19960 06827809-a52a-0410-b366-d66718629ded
+
+commit 5f729d4809785ae0c75db2a831ea9441622cf7f7
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Feb 21 22:16:56 2011 +0000
+
+    tcp-mib/udp-mib support for the *bsds
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19959 06827809-a52a-0410-b366-d66718629ded
+
+commit 2b4f0706c3c1433069d566bcb48892f451ca60d8
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Feb 21 22:05:56 2011 +0000
+
+    Properly end debug message with newline
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19958 06827809-a52a-0410-b366-d66718629ded
+
+commit 53b3596496b3d7858298320ef3e83e4a26a7aa3e
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Feb 21 22:04:24 2011 +0000
+
+    remove var that shadows the useful one
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19957 06827809-a52a-0410-b366-d66718629ded
+
+commit 50d73f0d56fe22c590530b3e305d41dcdac3ce00
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Feb 21 22:02:30 2011 +0000
+
+    major fiddling to get things working for openbsd too. This should really be reworked to use the tcp-mib/udp-mib/data_access
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19956 06827809-a52a-0410-b366-d66718629ded
+
+commit 27607e31f7454dbc1d70a106d0531f43559a31ba
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Feb 21 21:59:50 2011 +0000
+
+    fix tcp states for dragonflybsd
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19955 06827809-a52a-0410-b366-d66718629ded
+
+commit 60d549566a90494043537d58ec847afc487d66d0
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Feb 21 21:57:59 2011 +0000
+
+    enable new tcp/udp mibs for solaris
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19954 06827809-a52a-0410-b366-d66718629ded
+
+commit 8a2408c16fab83d6b4010e477cf660dc18fbb33b
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Mon Feb 21 19:08:00 2011 +0000
+
+    Updated comment about where makerelease comes from (now github)
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19952 06827809-a52a-0410-b366-d66718629ded
+
+commit 3abbcaa091da41e40f82081f61b24bbf0cfd218b
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Mon Feb 21 19:08:00 2011 +0000
+
+    Updated comment about where makerelease comes from (now github)
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19952 06827809-a52a-0410-b366-d66718629ded
+
+commit 19ea88631e5fff7e048de38eff352a9f004d62e9
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Mon Feb 21 11:14:01 2011 +0000
+
+    Backported r19454 from the trunk and thereby fixed this Valgrind complaint:
+    
+    ==6287== Invalid read of size 8
+    ==6287==    at 0x4E6CCAE: netsnmp_delete_table_data_set (table_dataset.c:186)
+    ==6287==    by 0x5121974: shutdown_notification_log (notification_log.c:564)
+    ==6287==    by 0x51941DB: _shutdown_mib_modules (mib_module_shutdown.h:32)
+    ==6287==    by 0x54B14F4: snmp_call_callbacks (callback.c:344)
+    ==6287==    by 0x548B58B: snmp_shutdown (snmp_api.c:862)
+    ==6287==    by 0x404C06: main (snmpd.c:1060)
+    ==6287==  Address 0x686f318 is 24 bytes inside a block of size 40 free'd
+    ==6287==    at 0x4A060E0: free (vg_replace_malloc.c:366)
+    ==6287==    by 0x4E6AB16: netsnmp_table_data_delete_table (table_data.c:320)
+    ==6287==    by 0x4E6CC84: netsnmp_delete_table_data_set (table_dataset.c:180)
+    ==6287==    by 0x5121974: shutdown_notification_log (notification_log.c:564)
+    ==6287==    by 0x51941DB: _shutdown_mib_modules (mib_module_shutdown.h:32)
+    ==6287==    by 0x54B14F4: snmp_call_callbacks (callback.c:344)
+    ==6287==    by 0x548B58B: snmp_shutdown (snmp_api.c:862)
+    ==6287==    by 0x404C06: main (snmpd.c:1060)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19944 06827809-a52a-0410-b366-d66718629ded
+
+commit a951c20a6865920949f4504cb076906c23cab485
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Mon Feb 21 07:13:33 2011 +0000
+
+    Fixed a MinGW-specific compiler warning (backported r19922 from trunk).
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19943 06827809-a52a-0410-b366-d66718629ded
+
+commit 71b615e38a5af0c07ab98994d94058ded1ef006d
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Sun Feb 20 09:24:29 2011 +0000
+
+    CHANGES: snmpd: BUG: 3185528: shutdown_master_agent doesn't close UDP socket
+    (Fixes a bug introduced in r19511.)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19942 06827809-a52a-0410-b366-d66718629ded
+
+commit 92a6919e6a975d668c7af11f788fbb3551cf186b
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Sun Feb 20 09:24:29 2011 +0000
+
+    CHANGES: snmpd: BUG: 3185528: shutdown_master_agent doesn't close UDP socket
+    (Fixes a bug introduced in r19511.)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19942 06827809-a52a-0410-b366-d66718629ded
+
+commit 3654fcd0aa9d4609bafc7e877958f5e234e1b1c9
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Thu Feb 17 11:28:27 2011 +0000
+
+    Fixed snmp-bridge-mib in standalone (agentx) version.
+    Don't declare local variables inside block. Patch provided by Jens Osterkamp.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19939 06827809-a52a-0410-b366-d66718629ded
+
+commit dacbe63c18b61f7e7dd73681b78bfbea3e221af9
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Wed Feb 16 14:56:33 2011 +0000
+
+    Fixed snmp-bridge-mib when working in the embedded perl.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19938 06827809-a52a-0410-b366-d66718629ded
+
+commit c8da341a64bd199529a9e59ac3523547cc2fe1f6
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Wed Feb 16 13:16:57 2011 +0000
+
+    Fixed GETNEXT processing in snmp-bridge-mib.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19937 06827809-a52a-0410-b366-d66718629ded
+
+commit bcc68f7378c29efcf81daa0c2996c4ede80e55bc
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 22:24:06 2011 +0000
+
+    Properly save entries for NetBSD and DragonFly
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19936 06827809-a52a-0410-b366-d66718629ded
+
+commit 10050c94209b0a9dfe45ab710c928b656d906a3a
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 22:24:06 2011 +0000
+
+    Properly save entries for NetBSD and DragonFly
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19936 06827809-a52a-0410-b366-d66718629ded
+
+commit 5402248cd46dcc22e8e5d30af7770ab8fa01dfdb
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 22:18:43 2011 +0000
+
+    remove redundant includes
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19935 06827809-a52a-0410-b366-d66718629ded
+
+commit df649ccaf843ed76cbd8f96564f57176a8a61ba8
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 22:18:43 2011 +0000
+
+    remove redundant includes
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19935 06827809-a52a-0410-b366-d66718629ded
+
+commit b5655cc10721e9ddc23d8ea0a54007b1ab0680e1
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 21:48:05 2011 +0000
+
+    rerun autoheader/autoconf
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19934 06827809-a52a-0410-b366-d66718629ded
+
+commit ce8e87458775c2809ed8f920ce80421ad6f14cba
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 21:48:05 2011 +0000
+
+    rerun autoheader/autoconf
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19934 06827809-a52a-0410-b366-d66718629ded
+
+commit 9cfbd8b144d6595e988f33ca484382c7082bb6ed
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 21:26:30 2011 +0000
+
+    Too much quoting is bad
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19931 06827809-a52a-0410-b366-d66718629ded
+
+commit 88dc144bc6ba2ab2377f9d7182a1c2c03375459e
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 21:11:37 2011 +0000
+
+    Fix IPv6 TCP and UDP tables, *BSD support
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19930 06827809-a52a-0410-b366-d66718629ded
+
+commit 5cd1573625471c0583e9087aec6802b77157d5a2
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 21:11:37 2011 +0000
+
+    Fix IPv6 TCP and UDP tables, *BSD support
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19930 06827809-a52a-0410-b366-d66718629ded
+
+commit b00595c7b8728786cd843f2687779b11f0e6196b
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 20:45:34 2011 +0000
+
+    Kill compiler warnings
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19929 06827809-a52a-0410-b366-d66718629ded
+
+commit b76a54f7ee6644a9636d98d960fefecabb74bc29
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 20:45:34 2011 +0000
+
+    Kill compiler warnings
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19929 06827809-a52a-0410-b366-d66718629ded
+
+commit 65558935e9b2718757366e8b3b10a91412b96ae8
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 20:44:22 2011 +0000
+
+    Filter IPv6 entries from IPv4 table
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19928 06827809-a52a-0410-b366-d66718629ded
+
+commit e88f9222c99ebdb11e94aef394c84d6cf67bc751
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 20:44:22 2011 +0000
+
+    Filter IPv6 entries from IPv4 table
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19928 06827809-a52a-0410-b366-d66718629ded
+
+commit 8fdc21faa1f41851df7e00d0e05b5883cc32182e
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 20:42:47 2011 +0000
+
+    Proper use of getproc2 and dragonfly support
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19927 06827809-a52a-0410-b366-d66718629ded
+
+commit edd5de6c7c004d1164ae2c51d9b7f1b3b7c53067
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 20:41:09 2011 +0000
+
+    getvfsstat is only for NetBSD
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19926 06827809-a52a-0410-b366-d66718629ded
+
+commit d02e5daf238f08b50704319ed444060589dceba2
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Feb 15 20:39:53 2011 +0000
+
+    Detect need for -lkvm in proper time
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19925 06827809-a52a-0410-b366-d66718629ded
+
+commit 4de84884041e23ac8c1b6dfc33153a6fcca4e6d1
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Mon Feb 14 14:38:00 2011 +0000
+
+    Fixed a MinGW-specific compiler warning.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19922 06827809-a52a-0410-b366-d66718629ded
+
+commit f71e16d38ddc9902be613d37498eaad525757cdc
+Author: Magnus Fromreide <magfr@users.sourceforge.net>
+Date:   Sun Feb 13 16:28:16 2011 +0000
+
+    CHANGES: Make it possible to build static applications using net-snmp-config and the -*libs flags once more.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19921 06827809-a52a-0410-b366-d66718629ded
+
+commit 1c4dea25b0e51f542517d52cd7bad941f8d01ed7
+Author: Magnus Fromreide <magfr@users.sourceforge.net>
+Date:   Sun Feb 13 16:28:16 2011 +0000
+
+    CHANGES: Make it possible to build static applications using net-snmp-config and the -*libs flags once more.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19921 06827809-a52a-0410-b366-d66718629ded
+
+commit 13fdf6c496ba94908702ac18fc05f9762f0ff313
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Feb 10 15:13:59 2011 +0000
+
+    CHANGES: snmplib: PATCHES: 3165878: Catch buffer overrun on 64-bit systems
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19920 06827809-a52a-0410-b366-d66718629ded
+
+commit e5d33f93047f73761102b642dfeaa93ebb284cf1
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Feb 10 15:13:59 2011 +0000
+
+    CHANGES: snmplib: PATCHES: 3165878: Catch buffer overrun on 64-bit systems
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19920 06827809-a52a-0410-b366-d66718629ded
+
+commit f3026316c6832b05bd364928e4bc5f95a71252b1
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Feb 10 15:13:59 2011 +0000
+
+    CHANGES: snmplib: PATCHES: 3165878: Catch buffer overrun on 64-bit systems
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19920 06827809-a52a-0410-b366-d66718629ded
+
+commit ed5f7c37f89964c1f7dd16e622cd63c63bd33574
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Feb 10 15:06:46 2011 +0000
+
+    CHANGES: snmpd: PATCHES: 3152412: Handle (and report) problems reading /proc/vmstat
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19919 06827809-a52a-0410-b366-d66718629ded
+
+commit d128ddd4ae5919b9bf82e244a57294115cfd1859
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Feb 10 15:06:46 2011 +0000
+
+    CHANGES: snmpd: PATCHES: 3152412: Handle (and report) problems reading /proc/vmstat
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19919 06827809-a52a-0410-b366-d66718629ded
+
+commit 02713342654efc4099f6a653801846b300bbfa84
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Feb 10 15:06:46 2011 +0000
+
+    CHANGES: snmpd: PATCHES: 3152412: Handle (and report) problems reading /proc/vmstat
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19919 06827809-a52a-0410-b366-d66718629ded
+
+commit 7ce8e225787e4d07092a634b803fba635578760f
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue Feb 8 17:41:37 2011 +0000
+
+    CHANGES: perl: patch from Martin Buck: don't always open stderr as the calls to snmp_log already do this and it messes up the agent when embedded
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19916 06827809-a52a-0410-b366-d66718629ded
+
+commit 118cd42bda1d60a81f0e449563110fa8c3889e2c
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue Feb 8 17:41:37 2011 +0000
+
+    CHANGES: perl: patch from Martin Buck: don't always open stderr as the calls to snmp_log already do this and it messes up the agent when embedded
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19916 06827809-a52a-0410-b366-d66718629ded
+
+commit 98a23f0c8f1d052218d296ad1fed5692bb0c5478
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue Feb 8 17:41:37 2011 +0000
+
+    CHANGES: perl: patch from Martin Buck: don't always open stderr as the calls to snmp_log already do this and it messes up the agent when embedded
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19916 06827809-a52a-0410-b366-d66718629ded
+
+commit b43eab32031d7a58fad48883aba648b000338de5
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue Feb 8 17:37:01 2011 +0000
+
+    CHANGES: snmpd: Fix a strlen calculation as pointed out by Konstantin Baydarov
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19915 06827809-a52a-0410-b366-d66718629ded
+
+commit 3cd24222397721ca55203b41458df9bc3bb5b633
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue Feb 8 17:37:01 2011 +0000
+
+    CHANGES: snmpd: Fix a strlen calculation as pointed out by Konstantin Baydarov
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19915 06827809-a52a-0410-b366-d66718629ded
+
+commit ff39fa775f8f6f0407bc4c7fcf8c1de830196080
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue Feb 8 17:37:01 2011 +0000
+
+    CHANGES: snmpd: Fix a strlen calculation as pointed out by Konstantin Baydarov
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19915 06827809-a52a-0410-b366-d66718629ded
+
+commit f0d6bf03d5fe6dbfce4430f0af2040f00ce14e45
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Thu Feb 3 22:42:29 2011 +0000
+
+    CHANGES: snmplib: BUG: 3171878: Using SNMPv3 context does not work
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-2-patches@19910 06827809-a52a-0410-b366-d66718629ded
+
+commit 1cf9c456b3ca4317d1d7d220adeccd84d0535ddb
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Thu Feb 3 22:42:29 2011 +0000
+
+    CHANGES: snmplib: BUG: 3171878: Using SNMPv3 context does not work
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19910 06827809-a52a-0410-b366-d66718629ded
+
+commit 9ed7ba42fc22977229a6e431b309031ef8f8cca4
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Thu Feb 3 22:42:29 2011 +0000
+
+    CHANGES: snmplib: BUG: 3171878: Using SNMPv3 context does not work
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19910 06827809-a52a-0410-b366-d66718629ded
+
+commit 9c07d48562145807f72180a7b213cc599d8a6be5
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Thu Feb 3 22:42:29 2011 +0000
+
+    CHANGES: snmplib: BUG: 3171878: Using SNMPv3 context does not work
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19910 06827809-a52a-0410-b366-d66718629ded
+
+commit 69c4075530c657a28fa45283e964a3c1a12f980e
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Tue Feb 1 13:07:55 2011 +0000
+
+    Don't check for 32/64bit wrap in calculated entries.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19908 06827809-a52a-0410-b366-d66718629ded
+
+commit 0a42003eb18fc0511048d0ac26e5de420b4e1dc4
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Tue Feb 1 09:41:28 2011 +0000
+
+    CHANGES: snmpd: fixed the agent writing 'looks like a 64bit wrap, but prev!=new' in syslog when computing ipSystemStats
+    
+    Without the memcpy, prev_vals->stats and new_vals->stats could get different,
+    which could much much later (when a counter gets bigger than 32 bits) result
+    in 'prev!=new' message in syslog. Typically this happens after long time of
+    uptime and it is very hard to reproduce.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19907 06827809-a52a-0410-b366-d66718629ded
+
+commit fffc3002a0f7580cb441df760bd3dd4b549015e4
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Tue Feb 1 09:41:28 2011 +0000
+
+    CHANGES: snmpd: fixed the agent writing 'looks like a 64bit wrap, but prev!=new' in syslog when computing ipSystemStats
+    
+    Without the memcpy, prev_vals->stats and new_vals->stats could get different,
+    which could much much later (when a counter gets bigger than 32 bits) result
+    in 'prev!=new' message in syslog. Typically this happens after long time of
+    uptime and it is very hard to reproduce.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19907 06827809-a52a-0410-b366-d66718629ded
+
+commit 0c99af240416bcd6d5c51596c310d57b0aff4c5c
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Tue Feb 1 09:41:28 2011 +0000
+
+    CHANGES: snmpd: fixed the agent writing 'looks like a 64bit wrap, but prev!=new' in syslog when computing ipSystemStats
+    
+    Without the memcpy, prev_vals->stats and new_vals->stats could get different,
+    which could much much later (when a counter gets bigger than 32 bits) result
+    in 'prev!=new' message in syslog. Typically this happens after long time of
+    uptime and it is very hard to reproduce.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19907 06827809-a52a-0410-b366-d66718629ded
+
+commit 3b1d30c7391055d5367597d0d7dce71aa2a284cd
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Jan 31 22:39:38 2011 +0000
+
+    addprototypes and remove unused vars
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19905 06827809-a52a-0410-b366-d66718629ded
+
+commit a60812829f2c93698f0c42a79049a55133a059a5
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Jan 31 22:39:38 2011 +0000
+
+    addprototypes and remove unused vars
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19905 06827809-a52a-0410-b366-d66718629ded
+
+commit 901664620c4988e5e9f4be6f1fdb934da9b23852
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Jan 31 22:37:58 2011 +0000
+
+    const juggling to remove warnings
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19904 06827809-a52a-0410-b366-d66718629ded
+
+commit 9e324634be7b0dc0086349eb6c0f7542883eb15d
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Jan 31 22:37:58 2011 +0000
+
+    const juggling to remove warnings
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19904 06827809-a52a-0410-b366-d66718629ded
+
+commit c23aa4d90d92f5c4986a8dca0b182523dc58590b
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Jan 31 22:30:54 2011 +0000
+
+    diskio for dragonfly
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19903 06827809-a52a-0410-b366-d66718629ded
+
+commit 28513f12a72a9a0de4a95450479ac54a681ad8a9
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Jan 31 22:30:54 2011 +0000
+
+    diskio for dragonfly
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19903 06827809-a52a-0410-b366-d66718629ded
+
+commit 0d4f8d6119b2eb6fdf569090c2a34fc96424c0f7
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Jan 31 22:28:30 2011 +0000
+
+    properly name initalizer function for cpu_kinfo
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19902 06827809-a52a-0410-b366-d66718629ded
+
+commit 5943c59441393ebdcd9b1cb6b832a428024f9145
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Mon Jan 31 22:28:30 2011 +0000
+
+    properly name initalizer function for cpu_kinfo
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19902 06827809-a52a-0410-b366-d66718629ded
+
+commit e6969b993b20951ccd8232ebd5101c6694e9887f
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Sun Jan 30 01:06:21 2011 +0000
+
+    CHANGES: snmpd: BUG: 3151897: fd leak w/ /proc/partitions
+    read in diskio
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-2-patches@19899 06827809-a52a-0410-b366-d66718629ded
+
+commit 55eea37241a599898ce61f364a6a07d856202fad
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Sun Jan 30 01:06:21 2011 +0000
+
+    CHANGES: snmpd: BUG: 3151897: fd leak w/ /proc/partitions
+    read in diskio
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19899 06827809-a52a-0410-b366-d66718629ded
+
+commit 7f2c7ffa020ea57f854a27129a683ecca3bd69c6
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Sun Jan 30 01:06:21 2011 +0000
+
+    CHANGES: snmpd: BUG: 3151897: fd leak w/ /proc/partitions
+    read in diskio
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19899 06827809-a52a-0410-b366-d66718629ded
+
+commit 9051303409341f8b151acd33d53ca763c4e85d0e
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Sun Jan 30 01:06:21 2011 +0000
+
+    CHANGES: snmpd: BUG: 3151897: fd leak w/ /proc/partitions
+    read in diskio
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19899 06827809-a52a-0410-b366-d66718629ded
+
+commit e63da79b1b62b7b061c05c4e7a2ad8386b47661d
+Author: Thomas Anders <tanders@users.sourceforge.net>
+Date:   Sat Jan 29 23:36:29 2011 +0000
+
+    NEWS: snmpd: BUG: 3166568: hrSystemProcesses missing in 5.6/5.6.1
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19898 06827809-a52a-0410-b366-d66718629ded
+
+commit 791d420e4874d03acc25374f79eb2aa19db72a9c
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 27 09:35:24 2011 +0000
+
+    After ten years intensive use, an "experimental"
+    feature can probably be released for general use.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19897 06827809-a52a-0410-b366-d66718629ded
+
+commit cee25426b4ccc59bd3d592a73182caf7603014d8
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 27 09:35:24 2011 +0000
+
+    After ten years intensive use, an "experimental"
+    feature can probably be released for general use.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19897 06827809-a52a-0410-b366-d66718629ded
+
+commit 08958f69ac6a8450c7133c052c47c90ba35ee9eb
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 27 09:35:24 2011 +0000
+
+    After ten years intensive use, an "experimental"
+    feature can probably be released for general use.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19897 06827809-a52a-0410-b366-d66718629ded
+
+commit 8a06f9d4d9b0890a5f93af00cf8ae4a45da83cfc
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Wed Jan 26 16:50:52 2011 +0000
+
+    CHANGES: mib2c: make the mib2c foreach ranges work as advertised in the comments.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19896 06827809-a52a-0410-b366-d66718629ded
+
+commit 0cf1ba6ca5d5ad3278caa8879bc46d25ed1d5554
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Wed Jan 26 16:50:52 2011 +0000
+
+    CHANGES: mib2c: make the mib2c foreach ranges work as advertised in the comments.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19896 06827809-a52a-0410-b366-d66718629ded
+
+commit 3bbde5f3cf8dff99bd806f1fcdaa384eceb18857
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Wed Jan 26 16:50:52 2011 +0000
+
+    CHANGES: mib2c: make the mib2c foreach ranges work as advertised in the comments.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19896 06827809-a52a-0410-b366-d66718629ded
+
+commit 3e972de97427b664852258aececa2a4d95cc30b7
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Wed Jan 26 09:12:20 2011 +0000
+
+    CHANGES: snmpd: fixed rare race condition when counting processes for UCD-SNMP-MIB::prTable
+    
+    The XX process can exit after fopen(/proc/XX/status) and before fgets() from it. snmpd should continue with other processes and not to stop.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19893 06827809-a52a-0410-b366-d66718629ded
+
+commit bcee037c71f006e2be3b446e3e81c509d49c65cd
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Wed Jan 26 09:12:20 2011 +0000
+
+    CHANGES: snmpd: fixed rare race condition when counting processes for UCD-SNMP-MIB::prTable
+    
+    The XX process can exit after fopen(/proc/XX/status) and before fgets() from it. snmpd should continue with other processes and not to stop.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19893 06827809-a52a-0410-b366-d66718629ded
+
+commit 2e5f5640db999783b8398116f8462a5b0a3247e4
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Wed Jan 19 13:57:47 2011 +0000
+
+    Make us compatible with rpm-4.9, rpmGetFilesystemList does not exist anymore, so the configure script should not check it.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19892 06827809-a52a-0410-b366-d66718629ded
+
+commit 8424efd97e002d534c81d4bc687329d723a9e18b
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Jan 19 06:31:01 2011 +0000
+
+    diskIOLAx requires exp which may require -lm
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19891 06827809-a52a-0410-b366-d66718629ded
+
+commit 32334038970c5af6a1c19815204d1cd484052493
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Jan 19 06:20:45 2011 +0000
+
+    Define DRAGONFLYID
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19890 06827809-a52a-0410-b366-d66718629ded
+
+commit 6a0c352e91cfce95d4d4cbbe555895c266da7456
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Wed Jan 19 06:20:45 2011 +0000
+
+    Define DRAGONFLYID
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19890 06827809-a52a-0410-b366-d66718629ded
+
+commit 5b702b024b60176d7f5699b92e55da50a8deae71
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Jan 18 22:01:24 2011 +0000
+
+    typo
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19885 06827809-a52a-0410-b366-d66718629ded
+
+commit bcb59726874500ba3704f0b487a0390835822ca9
+Author: Niels Baggesen <nba@users.sourceforge.net>
+Date:   Tue Jan 18 21:54:24 2011 +0000
+
+    Find proper if-mib interface for NetBSD
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19883 06827809-a52a-0410-b366-d66718629ded
+
+commit 97ce3858698b3bf0e13389940a58c7a3df0ff268
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Fri Jan 14 12:28:40 2011 +0000
+
+    CHANGES: snmpd: from Robert Story: fixed adding new addresses to ipAddressTable
+    
+    Long time ago, there was a bugreport[1] regarding ipAddressTable on
+    net-snmp-coders list and rstory's experimental patch without any feedback.
+    Now I've got few complaints that SNMP SET on ipAddressTable produces the
+    same errors and guess what, the patch fixes them.
+    
+    [1]: http://sourceforge.net/mailarchive/forum.php?thread_name=20060920134935.35b36ed6%40dev.futz.org&forum_name=net-snmp-coders
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19881 06827809-a52a-0410-b366-d66718629ded
+
+commit f1bddec2c276cbadc2761c438d6e9c0decf11ebf
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Fri Jan 14 12:28:40 2011 +0000
+
+    CHANGES: snmpd: from Robert Story: fixed adding new addresses to ipAddressTable
+    
+    Long time ago, there was a bugreport[1] regarding ipAddressTable on
+    net-snmp-coders list and rstory's experimental patch without any feedback.
+    Now I've got few complaints that SNMP SET on ipAddressTable produces the
+    same errors and guess what, the patch fixes them.
+    
+    [1]: http://sourceforge.net/mailarchive/forum.php?thread_name=20060920134935.35b36ed6%40dev.futz.org&forum_name=net-snmp-coders
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19881 06827809-a52a-0410-b366-d66718629ded
+
+commit 65f4fed313714c42caccb67a5f671db62ee46efd
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Fri Jan 14 06:25:59 2011 +0000
+
+    remove completely useless and nonsensical code
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19878 06827809-a52a-0410-b366-d66718629ded
+
+commit a70966a2f8b3649ea1c717b5e8835ee85510bf6e
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Fri Jan 14 06:25:59 2011 +0000
+
+    remove completely useless and nonsensical code
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19878 06827809-a52a-0410-b366-d66718629ded
+
+commit 64aad8e91cb4e0c1f62c12de96e1a648660a56c5
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 13 15:56:37 2011 +0000
+
+    Ensure releases are installed to the correct path within the /tags SVN tree
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19876 06827809-a52a-0410-b366-d66718629ded
+
+commit e75458fe5e84ba29209c477bbf7423c92033d5ae
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 13 15:56:37 2011 +0000
+
+    Ensure releases are installed to the correct path within the /tags SVN tree
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19876 06827809-a52a-0410-b366-d66718629ded
+
+commit e4d96dcec0933820733fa589cee62875edf6cde3
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 13 15:15:57 2011 +0000
+
+    Remove C++ comments
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19868 06827809-a52a-0410-b366-d66718629ded
+
+commit 4ec8b431b58c5cded16794a4be92f883769391a8
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 13 15:15:57 2011 +0000
+
+    Remove C++ comments
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19868 06827809-a52a-0410-b366-d66718629ded
+
+commit 3bc482a9104ba69dcb2bf1f6f573742977376c70
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 13 13:17:41 2011 +0000
+
+    Fix broken patch
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19864 06827809-a52a-0410-b366-d66718629ded
+
+commit ca7ae5c3f29014066d55662f59e33825d1f73e47
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 13 12:14:19 2011 +0000
+
+    Configure fixes for DragonFly support
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19863 06827809-a52a-0410-b366-d66718629ded
+
+commit a4dd1b4dafb8970041c1f38cf26da2a006e4dde3
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 13 12:14:19 2011 +0000
+
+    Configure fixes for DragonFly support
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19863 06827809-a52a-0410-b366-d66718629ded
+
+commit a514118047950a6da3e82cc5d07d4530cfef8286
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 13 12:04:53 2011 +0000
+
+    Code fixes for DragonFly support
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19862 06827809-a52a-0410-b366-d66718629ded
+
+commit 986b2deda5792a244ffda5e007412bb5e43a673f
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 13 12:04:53 2011 +0000
+
+    Code fixes for DragonFly support
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19862 06827809-a52a-0410-b366-d66718629ded
+
+commit 19f970699aa06639378861b6d6a5e27f4c3fc967
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 13 11:33:14 2011 +0000
+
+    Fix typo
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19861 06827809-a52a-0410-b366-d66718629ded
+
+commit 36e5d6db9b9bcf31ad754d207ab8a589b1259e40
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 13 11:33:14 2011 +0000
+
+    Fix typo
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19861 06827809-a52a-0410-b366-d66718629ded
+
+commit abaf0254111aac0853d3ec4347b0ffc843daec22
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Wed Jan 12 19:20:23 2011 +0000
+
+    Get rid of a compiler warning in agent/mibgroup/snmp-usm-dh-objects-mib/usmDHParameters/usmDHParameters.c.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19857 06827809-a52a-0410-b366-d66718629ded
+
+commit be804c7be847692cb808c19efc0603bb5660fd5b
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Wed Jan 12 19:20:23 2011 +0000
+
+    Get rid of a compiler warning in agent/mibgroup/snmp-usm-dh-objects-mib/usmDHParameters/usmDHParameters.c.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19857 06827809-a52a-0410-b366-d66718629ded
+
+commit 4dc6aa686dc7f6bb36c054532ef2662b262ce5c5
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Wed Jan 12 19:04:39 2011 +0000
+
+    Fixed a compiler warning (format specification mismatch) that was introduced
+    in r19808 ("snmpd: PATCHES: 2975254: Avoid callback re-use of closed sessions").
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19856 06827809-a52a-0410-b366-d66718629ded
+
+commit f2d73454ba07347b41cfed7751ec6f921bdbd801
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Wed Jan 12 19:04:39 2011 +0000
+
+    Fixed a compiler warning (format specification mismatch) that was introduced
+    in r19808 ("snmpd: PATCHES: 2975254: Avoid callback re-use of closed sessions").
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19856 06827809-a52a-0410-b366-d66718629ded
+
+commit d66f88ff4f0a669f5c5de7027e1eb0c7cd9aafbc
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Wed Jan 12 19:04:39 2011 +0000
+
+    Fixed a compiler warning (format specification mismatch) that was introduced
+    in r19808 ("snmpd: PATCHES: 2975254: Avoid callback re-use of closed sessions").
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19856 06827809-a52a-0410-b366-d66718629ded
+
+commit 8f58dae2a1b3e745ee1e8b944f7ea7e5ae1c4cf0
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Wed Jan 12 15:03:11 2011 +0000
+
+    CHANGES: snmp: patch: 3096725: sysORTable registation for notification log mib
+    
+      original patch fixed several issues, other parts applied earlier
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19855 06827809-a52a-0410-b366-d66718629ded
+
+commit 8905c98db6de880b3bc992edd94ef70fa4d51773
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Wed Jan 12 15:03:11 2011 +0000
+
+    CHANGES: snmp: patch: 3096725: sysORTable registation for notification log mib
+    
+      original patch fixed several issues, other parts applied earlier
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19855 06827809-a52a-0410-b366-d66718629ded
+
+commit 159530ea5fe3ad623db821c8b793cd0465dab0b2
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Wed Jan 12 14:37:09 2011 +0000
+
+    CHANGES: agent: MIB-specific leak-at-exit fixes.
+    
+      backport applicable parts of r19533 from trunk
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19854 06827809-a52a-0410-b366-d66718629ded
+
+commit 956c849530e59c0451d9643247e4348e2ab09584
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Wed Jan 12 14:37:09 2011 +0000
+
+    CHANGES: agent: MIB-specific leak-at-exit fixes.
+    
+      backport applicable parts of r19533 from trunk
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19854 06827809-a52a-0410-b366-d66718629ded
+
+commit 165c8badda697067df8faac0db12455b812cc5a9
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 16:04:16 2011 +0000
+
+    Recognise Agent OID for DragonFly systems (and general tidying up)
+    [From NetBSD patch archive]
+    
+    Qn: Should these be updated to refer to Net-SNMP (rather than UCD)?
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19852 06827809-a52a-0410-b366-d66718629ded
+
+commit 9b6d276a2cbc3f1864ae96ae1bd7aa430642c865
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 16:04:16 2011 +0000
+
+    Recognise Agent OID for DragonFly systems (and general tidying up)
+    [From NetBSD patch archive]
+    
+    Qn: Should these be updated to refer to Net-SNMP (rather than UCD)?
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19852 06827809-a52a-0410-b366-d66718629ded
+
+commit b2faeb0ecd6c30a03f9de2daf37325910d2fd00f
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 16:01:22 2011 +0000
+
+    Define Agent OID for DragonFly systems
+    (and general tidying up)
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19851 06827809-a52a-0410-b366-d66718629ded
+
+commit dd01deba7fed58549f3478091a794112075f929f
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 16:01:22 2011 +0000
+
+    Define Agent OID for DragonFly systems
+    (and general tidying up)
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19851 06827809-a52a-0410-b366-d66718629ded
+
+commit a6e53908be48e8b0fea5aa3961ded3d7184dc461
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 16:01:22 2011 +0000
+
+    Define Agent OID for DragonFly systems
+    (and general tidying up)
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19851 06827809-a52a-0410-b366-d66718629ded
+
+commit 1cb1c20ecaa254d12461a6a2c035f55a9034bc98
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 15:27:50 2011 +0000
+
+    NetBSD DragonFly support for UDP & TCP tables
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19850 06827809-a52a-0410-b366-d66718629ded
+
+commit 25349cf839cfcf1cc7e83ecdbeca5761cb91ea7a
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 15:27:50 2011 +0000
+
+    NetBSD DragonFly support for UDP & TCP tables
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19850 06827809-a52a-0410-b366-d66718629ded
+
+commit a8be80412fb47ede5a25b5a6ac606f3233bfa89c
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 14:41:26 2011 +0000
+
+    CHANGES: NetBSD: DragonFly support
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19849 06827809-a52a-0410-b366-d66718629ded
+
+commit b443cbd85a65e355ff0101fe68142d49b8cc4e57
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 14:41:26 2011 +0000
+
+    CHANGES: NetBSD: DragonFly support
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19849 06827809-a52a-0410-b366-d66718629ded
+
+commit 0932b04910ec670112e216e64789ca2f4b5b0761
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 14:36:25 2011 +0000
+
+    NetBSD/DragonFly 'struct ifnet' requires KERNEL, but not _KERNEL
+    [From NetBSD patch archive]
+        (I hope I've got this one right!)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19848 06827809-a52a-0410-b366-d66718629ded
+
+commit a52f8c3f8563189bd0d1dfe49d0c809ef08d7de2
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 14:36:25 2011 +0000
+
+    NetBSD/DragonFly 'struct ifnet' requires KERNEL, but not _KERNEL
+    [From NetBSD patch archive]
+        (I hope I've got this one right!)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19848 06827809-a52a-0410-b366-d66718629ded
+
+commit c7588e871bfa91426984021690afda76b231f5fb
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Tue Jan 11 14:14:07 2011 +0000
+
+    revert PATCH 3053436: tcpConnectionTable_data_access invalid memory access
+    
+      the bug this is fixing was introduced in r17719, and fixed in r17861.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19847 06827809-a52a-0410-b366-d66718629ded
+
+commit ca270b95495d637bca9d21658c0295d5e0cbe3b6
+Author: Robert Story <rstory@users.sourceforge.net>
+Date:   Tue Jan 11 14:14:07 2011 +0000
+
+    revert PATCH 3053436: tcpConnectionTable_data_access invalid memory access
+    
+      the bug this is fixing was introduced in r17719, and fixed in r17861.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19847 06827809-a52a-0410-b366-d66718629ded
+
+commit ae99704f5cd9b85e93fe4a8ddf18f1700f73062f
+Author: Jan Safranek <jsafranek@users.sourceforge.net>
+Date:   Tue Jan 11 13:34:22 2011 +0000
+
+    CHANGES: snmplib: from Bill Fenner: fix sending of UDP responses from multihomed agents.
+    
+    Try to send the response as it was before Net-SNMP 5.6 (assuming the appropriate request was unicast) and only if it fails try to set if_index (the request must be broadcast).
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19846 06827809-a52a-0410-b366-d66718629ded
+
+commit c3fe2f7200fb00be1f3c232051938ea87847c258
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 13:22:10 2011 +0000
+
+    Really handle systems with 'struct timespec ifnet.if_lastchange'
+    (missing element from SVN revision 19841)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19845 06827809-a52a-0410-b366-d66718629ded
+
+commit f483c9b99de034e98a91489f2c65cfad9ac8836f
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 13:22:10 2011 +0000
+
+    Really handle systems with 'struct timespec ifnet.if_lastchange'
+    (missing element from SVN revision 19841)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19845 06827809-a52a-0410-b366-d66718629ded
+
+commit 5b10b4b0c8444b0432e1fcb5b335d885b01f4873
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 12:24:12 2011 +0000
+
+    Additional headers when testing for IPv6 headers
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19844 06827809-a52a-0410-b366-d66718629ded
+
+commit 4aebbff707bf0cd4b5172474143aa1b302c31bef
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 12:24:12 2011 +0000
+
+    Additional headers when testing for IPv6 headers
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19844 06827809-a52a-0410-b366-d66718629ded
+
+commit c40ed6ee39840f3729f93ee7f3c792dde922570e
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 12:24:12 2011 +0000
+
+    Additional headers when testing for IPv6 headers
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19844 06827809-a52a-0410-b366-d66718629ded
+
+commit 3f43fcedfab013adb62bbdc919c519d023df9cf2
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 12:14:25 2011 +0000
+
+    Missing type under darwin
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19843 06827809-a52a-0410-b366-d66718629ded
+
+commit 96d131f9a66c334a57ca504a0269523bd016a960
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 12:14:25 2011 +0000
+
+    Missing type under darwin
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19843 06827809-a52a-0410-b366-d66718629ded
+
+commit f089052d69036e3287a5f4525b38855a0c1a6631
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 12:10:56 2011 +0000
+
+    NetBSD support for Disk I/O stats
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19842 06827809-a52a-0410-b366-d66718629ded
+
+commit 3557ef70f0ca8617d787b4bfc1bf7ad91be0202f
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 12:01:27 2011 +0000
+
+    Handle systems with 'struct timespec ifnet.if_lastchange' (rather than struct timeval)
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19841 06827809-a52a-0410-b366-d66718629ded
+
+commit 79e8b3f958a977d5e9ceb994815446652c089fdb
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 12:01:27 2011 +0000
+
+    Handle systems with 'struct timespec ifnet.if_lastchange' (rather than struct timeval)
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19841 06827809-a52a-0410-b366-d66718629ded
+
+commit 5aa3a33621df89bf1f5567e1cd9a6677ae9f20db
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 11:27:06 2011 +0000
+
+    Pull in kernel_netbsd module when required
+    [Based on fix from NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19840 06827809-a52a-0410-b366-d66718629ded
+
+commit b329dc9ffc6a7d14ccb0277f763cfda750a57eca
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 11:27:06 2011 +0000
+
+    Pull in kernel_netbsd module when required
+    [Based on fix from NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19840 06827809-a52a-0410-b366-d66718629ded
+
+commit 7b57bdb515471612396c5f711b9fe04a69da0d50
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 10:36:08 2011 +0000
+
+    CHANGES: NetBSD: Retrieve MIB-II network statistics via sysctl
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19839 06827809-a52a-0410-b366-d66718629ded
+
+commit 83b1cab8b8dcbcaeb1a68d03cb0e0c4c19696560
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Tue Jan 11 10:36:08 2011 +0000
+
+    CHANGES: NetBSD: Retrieve MIB-II network statistics via sysctl
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19839 06827809-a52a-0410-b366-d66718629ded
+
+commit d52121d7c95a6ef2afe86c2bbc435f4e49c7f28b
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Jan 10 16:56:11 2011 +0000
+
+    Add support for darwin
+    (The patch from the NetBSD archive appears to be essentially the
+    same as the equivalent code from the OpenBSD patch archive)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19837 06827809-a52a-0410-b366-d66718629ded
+
+commit ea05f39d271e36e4a1d1f018e65fd18920219f8c
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Jan 10 16:56:11 2011 +0000
+
+    Add support for darwin
+    (The patch from the NetBSD archive appears to be essentially the
+    same as the equivalent code from the OpenBSD patch archive)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19837 06827809-a52a-0410-b366-d66718629ded
+
+commit 2d96be70eb7cb46e2898c957ed87676706a6d6df
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Jan 10 16:56:11 2011 +0000
+
+    Add support for darwin
+    (The patch from the NetBSD archive appears to be essentially the
+    same as the equivalent code from the OpenBSD patch archive)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19837 06827809-a52a-0410-b366-d66718629ded
+
+commit 30f6836d044c33a5595b62d16ffc596f0ac2c90a
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Jan 10 16:54:02 2011 +0000
+
+    Add support for darwin
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19836 06827809-a52a-0410-b366-d66718629ded
+
+commit 1a6ad19705069fc8cb4f70c30c962af38d541d26
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Jan 10 16:54:02 2011 +0000
+
+    Add support for darwin
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19836 06827809-a52a-0410-b366-d66718629ded
+
+commit 74d30b631467ac1778ec71231c55a3cc858a5c6a
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Jan 10 16:54:02 2011 +0000
+
+    Add support for darwin
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19836 06827809-a52a-0410-b366-d66718629ded
+
+commit b4fd01aa074e4b749a96f9ca439289f384cb80c3
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Jan 10 14:55:57 2011 +0000
+
+    CHANGES: NetBSD: Update memory and CPU statistics handling
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19835 06827809-a52a-0410-b366-d66718629ded
+
+commit ce854d19635821aea1a8cf5f9095e14068f3fb9b
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Jan 10 14:55:57 2011 +0000
+
+    CHANGES: NetBSD: Update memory and CPU statistics handling
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19835 06827809-a52a-0410-b366-d66718629ded
+
+commit 98c39b6876dd530c9ace76a86e91723631fea69e
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Jan 10 14:22:44 2011 +0000
+
+    Fix divide-by-zero error in CPU performance statistics
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19834 06827809-a52a-0410-b366-d66718629ded
+
+commit b61ddc4fc6dcb331c6921c825b93b60c8b257fb4
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Mon Jan 10 14:22:44 2011 +0000
+
+    Fix divide-by-zero error in CPU performance statistics
+    [From NetBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19834 06827809-a52a-0410-b366-d66718629ded
+
+commit 8a49cadb5e2a8e4f1a3f20bf72b9db4a04fa30c9
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun Jan 9 22:54:50 2011 +0000
+
+    CHANGES: OpenBSD: Update SWRun code to use kvm_getproc2
+    [From OpenBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19833 06827809-a52a-0410-b366-d66718629ded
+
+commit 27161932a3ccc28fc26427c76408b86f3b708003
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun Jan 9 21:30:38 2011 +0000
+
+    CHANGES: build: OpenBSD: Fix order of headers when checking <netinet/in_pcb.h>
+    [From OpenBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19832 06827809-a52a-0410-b366-d66718629ded
+
+commit 8d29d40de4ba5f257f6bf46e2b39b11b2781c884
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun Jan 9 19:44:57 2011 +0000
+
+    Amend how multi-CPU statistics are retreived using sysctl on OpenBSD systems
+    (if this block was active, which it isn't, but that's not important right not)
+    [Based on OpenBSD patch archive, amended (probably wrongly) by DTS]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19831 06827809-a52a-0410-b366-d66718629ded
+
+commit 4afec7f88ab840c6b8bc0b96c6aa777cc33cbb3c
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun Jan 9 19:44:57 2011 +0000
+
+    Amend how multi-CPU statistics are retreived using sysctl on OpenBSD systems
+    (if this block was active, which it isn't, but that's not important right not)
+    [Based on OpenBSD patch archive, amended (probably wrongly) by DTS]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19831 06827809-a52a-0410-b366-d66718629ded
+
+commit e377e89305194e19ffc39d6d88d84d236faca559
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun Jan 9 18:13:50 2011 +0000
+
+    sysctl takes a 'size_t' variable for the size parameter
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19830 06827809-a52a-0410-b366-d66718629ded
+
+commit 77af899aedeb8541123ff889c2f9f45265d8dbae
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun Jan 9 18:13:50 2011 +0000
+
+    sysctl takes a 'size_t' variable for the size parameter
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19830 06827809-a52a-0410-b366-d66718629ded
+
+commit d20906cb685da29dcea71b893d2721142186bd6f
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun Jan 9 18:13:50 2011 +0000
+
+    sysctl takes a 'size_t' variable for the size parameter
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19830 06827809-a52a-0410-b366-d66718629ded
+
+commit 90c140ce893e8a6c2fd97cd339654a36c36e682a
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun Jan 9 18:11:01 2011 +0000
+
+    sysctl takes a 'size_t' variable for the size parameter
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19829 06827809-a52a-0410-b366-d66718629ded
+
+commit 294a2da95679d66822ff39d4696ce6f4035dfde3
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Sun Jan 9 18:11:01 2011 +0000
+
+    sysctl takes a 'size_t' variable for the size parameter
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19829 06827809-a52a-0410-b366-d66718629ded
+
+commit 0e59c14c5cf2f87f53afb98b3705bede14823618
+Author: Magnus Fromreide <magfr@users.sourceforge.net>
+Date:   Sat Jan 8 00:47:22 2011 +0000
+
+    Update acconfig.h with changes from r19819.
+    Rerun autoheader.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19827 06827809-a52a-0410-b366-d66718629ded
+
+commit 39b9a0abcbba0cafea5a6324e1c576e6588a1cd5
+Author: Magnus Fromreide <magfr@users.sourceforge.net>
+Date:   Sat Jan 8 00:47:22 2011 +0000
+
+    Update acconfig.h with changes from r19819.
+    Rerun autoheader.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19827 06827809-a52a-0410-b366-d66718629ded
+
+commit c64a0629d3d3263d86ac51ea198672dd307dd4f5
+Author: Magnus Fromreide <magfr@users.sourceforge.net>
+Date:   Sat Jan 8 00:47:22 2011 +0000
+
+    Update acconfig.h with changes from r19819.
+    Rerun autoheader.
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19827 06827809-a52a-0410-b366-d66718629ded
+
+commit 0c8970ec23c1064a81cfc5c362e3b348afb02070
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 20:56:26 2011 +0000
+
+    CHANGES: OpenBSD: Support updating the routing table
+    [From OpenBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19826 06827809-a52a-0410-b366-d66718629ded
+
+commit 834cc128af7fd5422a9eda73aa48987774f2435d
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 20:56:26 2011 +0000
+
+    CHANGES: OpenBSD: Support updating the routing table
+    [From OpenBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19826 06827809-a52a-0410-b366-d66718629ded
+
+commit 1143754a4c1853cbc82e9c026be2d2c8faebbd88
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 20:56:26 2011 +0000
+
+    CHANGES: OpenBSD: Support updating the routing table
+    [From OpenBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19826 06827809-a52a-0410-b366-d66718629ded
+
+commit b2d8f102666e226ff186d1a53e0f598bb4a3c84c
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 20:29:39 2011 +0000
+
+    Set 'next' field for udp entry linked list on OpenBSD4
+    [From OpenBSD patch archive]
+    
+    This should probably be set in <net-snmp/system/openbsd.h>
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19825 06827809-a52a-0410-b366-d66718629ded
+
+commit 1b5c9c0030f7a8309fe886044add16a244628b4e
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 20:29:39 2011 +0000
+
+    Set 'next' field for udp entry linked list on OpenBSD4
+    [From OpenBSD patch archive]
+    
+    This should probably be set in <net-snmp/system/openbsd.h>
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19825 06827809-a52a-0410-b366-d66718629ded
+
+commit 1e2c6641720e0bd496034a4f2543a984ae5a5041
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 20:29:39 2011 +0000
+
+    Set 'next' field for udp entry linked list on OpenBSD4
+    [From OpenBSD patch archive]
+    
+    This should probably be set in <net-snmp/system/openbsd.h>
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19825 06827809-a52a-0410-b366-d66718629ded
+
+commit eecb69f26a44fd7e7c8f3ef9682546d6380db519
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 20:12:25 2011 +0000
+
+    Use a suitable constant for CWD buffer size
+    [Based on OpenBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19824 06827809-a52a-0410-b366-d66718629ded
+
+commit ece033355f7d69a9def4b8d2307bd5db3308a28e
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 20:12:25 2011 +0000
+
+    Use a suitable constant for CWD buffer size
+    [Based on OpenBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19824 06827809-a52a-0410-b366-d66718629ded
+
+commit 1433360c0c3ab03ddfd14961796b1fd9cd0ce1b9
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 20:12:25 2011 +0000
+
+    Use a suitable constant for CWD buffer size
+    [Based on OpenBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19824 06827809-a52a-0410-b366-d66718629ded
+
+commit d829ed65255cdc620bc2638e68ab2f7efe593705
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 20:07:17 2011 +0000
+
+    Move global variable into the method where it's used.
+    [From OpenBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19823 06827809-a52a-0410-b366-d66718629ded
+
+commit 8a238b5983589cba474d875571dde2a51a8f8273
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 20:07:17 2011 +0000
+
+    Move global variable into the method where it's used.
+    [From OpenBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19823 06827809-a52a-0410-b366-d66718629ded
+
+commit 983e5f2b7ea8d1b8263c70e2d4bfba2b56b9a5c0
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 20:07:17 2011 +0000
+
+    Move global variable into the method where it's used.
+    [From OpenBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19823 06827809-a52a-0410-b366-d66718629ded
+
+commit 2546ec2d474cde54e853f40ef689bf46c52e47d4
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 16:48:56 2011 +0000
+
+    Handle systems without IFM_TOKEN
+    [From OpenBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19822 06827809-a52a-0410-b366-d66718629ded
+
+commit 7913236176a001246b0a7bd4249052102cee70db
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 16:48:56 2011 +0000
+
+    Handle systems without IFM_TOKEN
+    [From OpenBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19822 06827809-a52a-0410-b366-d66718629ded
+
+commit 8e4bf4b53a13dc97df18ddd818d02a43a80bcfa6
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 14:38:37 2011 +0000
+
+    Update retrieval of cache usage statistics on FreeBSD
+    [From FreeBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19821 06827809-a52a-0410-b366-d66718629ded
+
+commit 38281777115f27e050a6633d3dd581a90ae7c6e3
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 14:38:37 2011 +0000
+
+    Update retrieval of cache usage statistics on FreeBSD
+    [From FreeBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19821 06827809-a52a-0410-b366-d66718629ded
+
+commit 2dbdc5cb6761501a6b9e12ec92d77849c5470d70
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 14:20:30 2011 +0000
+
+    Increase maximum size of execute output cache
+    [From FreeBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19819 06827809-a52a-0410-b366-d66718629ded
+
+commit 549a77f72200d44707359a8e49ff8c5bd53a3f30
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 14:20:30 2011 +0000
+
+    Increase maximum size of execute output cache
+    [From FreeBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19819 06827809-a52a-0410-b366-d66718629ded
+
+commit b540d3c9971045890bddd3de50f40f1468f1b03c
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 14:20:30 2011 +0000
+
+    Increase maximum size of execute output cache
+    [From FreeBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19819 06827809-a52a-0410-b366-d66718629ded
+
+commit cc459f69fba68b6332b9ad27b4bc81a3df13bc1a
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 14:09:15 2011 +0000
+
+    Remove duplicate include directives
+    [From FreeBSD patches archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19817 06827809-a52a-0410-b366-d66718629ded
+
+commit 7f7151632dea5ad894530ee58476564241d95807
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 14:09:15 2011 +0000
+
+    Remove duplicate include directives
+    [From FreeBSD patches archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19817 06827809-a52a-0410-b366-d66718629ded
+
+commit f8d6b46c2c32a7221716ef533bfaaed89590384e
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:47:23 2011 +0000
+
+    Handle systems where RTF_LLINFO is not defined
+    [From FreeBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19816 06827809-a52a-0410-b366-d66718629ded
+
+commit ba81b1dfb488e5602af131a9239a9ab8d3d35e1e
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:47:23 2011 +0000
+
+    Handle systems where RTF_LLINFO is not defined
+    [From FreeBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19816 06827809-a52a-0410-b366-d66718629ded
+
+commit 2ff46fe697d9c3af9106515c41b7e6a98126aa09
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:47:23 2011 +0000
+
+    Handle systems where RTF_LLINFO is not defined
+    [From FreeBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19816 06827809-a52a-0410-b366-d66718629ded
+
+commit f02312aaebff55f040476a1c7103e991a11c6aa2
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:40:40 2011 +0000
+
+    Include zfs mount points for disk reports under FreeBSD
+    [From FreeBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19815 06827809-a52a-0410-b366-d66718629ded
+
+commit 83bf444f076ed2b921223959586a4ee383595623
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:40:40 2011 +0000
+
+    Include zfs mount points for disk reports under FreeBSD
+    [From FreeBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19815 06827809-a52a-0410-b366-d66718629ded
+
+commit bd6cdca26f9469611303356bbdaedd8237d3d1ba
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:40:40 2011 +0000
+
+    Include zfs mount points for disk reports under FreeBSD
+    [From FreeBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19815 06827809-a52a-0410-b366-d66718629ded
+
+commit e2d771b727e60af1045af2871a8f4a9e0107ccb5
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:34:53 2011 +0000
+
+    Protect against multiple-inclusion
+    [From FreeBSD patches archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19814 06827809-a52a-0410-b366-d66718629ded
+
+commit 65c0f39beca4b23211cd217ade7ca196d4ee9efc
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:34:53 2011 +0000
+
+    Protect against multiple-inclusion
+    [From FreeBSD patches archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19814 06827809-a52a-0410-b366-d66718629ded
+
+commit 90afcdaad908440ad8a00dbf7b71132e3e631e8e
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:34:53 2011 +0000
+
+    Protect against multiple-inclusion
+    [From FreeBSD patches archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19814 06827809-a52a-0410-b366-d66718629ded
+
+commit 349facd5ac5556b9f9eb6b2fbba9c0ed8fda16e2
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:24:31 2011 +0000
+
+    Include <unistd.h>
+    [From BSD patches archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19813 06827809-a52a-0410-b366-d66718629ded
+
+commit 5451067dffa01f991eb2f91bbd5ed5b655989a1c
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:24:31 2011 +0000
+
+    Include <unistd.h>
+    [From BSD patches archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19813 06827809-a52a-0410-b366-d66718629ded
+
+commit a8f492a9fbeb4f13357e7a759107dffcc5e9c491
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:24:31 2011 +0000
+
+    Include <unistd.h>
+    [From BSD patches archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19813 06827809-a52a-0410-b366-d66718629ded
+
+commit 6450a984519b8bc87727ec7cf08ce5b7c10e3c50
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:21:48 2011 +0000
+
+    Avoid callback re-use of closed sessions.
+    (Part of patch #2975254 - see SVN revision 19808)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19812 06827809-a52a-0410-b366-d66718629ded
+
+commit ff477751ddc86c7a8ef5882d38d42e3a8db199b1
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:21:48 2011 +0000
+
+    Avoid callback re-use of closed sessions.
+    (Part of patch #2975254 - see SVN revision 19808)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19812 06827809-a52a-0410-b366-d66718629ded
+
+commit cf61a312638716b097e583be09fa521763e45bee
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 13:21:48 2011 +0000
+
+    Avoid callback re-use of closed sessions.
+    (Part of patch #2975254 - see SVN revision 19808)
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19812 06827809-a52a-0410-b366-d66718629ded
+
+commit 9c5417d15b4cedca95483b44a9dcf1b3812ccb69
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 12:55:31 2011 +0000
+
+    FreeBSD uses a slightly different naming scheme for struct ifreq
+    [From FreeBSD patches archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19811 06827809-a52a-0410-b366-d66718629ded
+
+commit 38b291b096a5d1ddf6d803a4336475d3b7ad9236
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 12:55:31 2011 +0000
+
+    FreeBSD uses a slightly different naming scheme for struct ifreq
+    [From FreeBSD patches archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19811 06827809-a52a-0410-b366-d66718629ded
+
+commit 685a7dd9d5eec998aa7c5ea050c6987af4220f0b
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 12:55:31 2011 +0000
+
+    FreeBSD uses a slightly different naming scheme for struct ifreq
+    [From FreeBSD patches archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19811 06827809-a52a-0410-b366-d66718629ded
+
+commit b0eb15a23d9c87b8a41114e36f84bbaada6a12ce
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 12:22:03 2011 +0000
+
+    Ensure TCP table information is loaded before counting connections
+    [From FreeBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19810 06827809-a52a-0410-b366-d66718629ded
+
+commit f512f80d7fdd76dd092e70ea8fc1703b019e62c3
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 12:22:03 2011 +0000
+
+    Ensure TCP table information is loaded before counting connections
+    [From FreeBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19810 06827809-a52a-0410-b366-d66718629ded
+
+commit e5a21937bceb17a610cb638e5f5fbd1bb7b73c42
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Fri Jan 7 12:22:03 2011 +0000
+
+    Ensure TCP table information is loaded before counting connections
+    [From FreeBSD patch archive]
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19810 06827809-a52a-0410-b366-d66718629ded
+
+commit 4f7c52b58c2b79578a077adfdb63e2872a10ee11
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Thu Jan 6 19:35:06 2011 +0000
+
+    Fix documentation bug pointed out in cpan bug #52618
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19809 06827809-a52a-0410-b366-d66718629ded
+
+commit e3a59ae5669b461e0b107e7c2e9fec2410ef73ac
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Thu Jan 6 19:35:06 2011 +0000
+
+    Fix documentation bug pointed out in cpan bug #52618
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19809 06827809-a52a-0410-b366-d66718629ded
+
+commit cfc92ec84506bc1699eded558f035a94005a1bc9
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Thu Jan 6 19:35:06 2011 +0000
+
+    Fix documentation bug pointed out in cpan bug #52618
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19809 06827809-a52a-0410-b366-d66718629ded
+
+commit 70ea9bb61012a75bb6a62a8c95c861c4d7a6d03f
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 6 14:11:22 2011 +0000
+
+    CHANGES: snmpd: PATCHES: 2975254: Avoid callback re-use of closed sessions
+    
+    Qn: Should this also be applied when main session is NULL?
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19808 06827809-a52a-0410-b366-d66718629ded
+
+commit 3c50754319664dda889f6bfb216792dbc3005b76
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 6 14:11:22 2011 +0000
+
+    CHANGES: snmpd: PATCHES: 2975254: Avoid callback re-use of closed sessions
+    
+    Qn: Should this also be applied when main session is NULL?
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19808 06827809-a52a-0410-b366-d66718629ded
+
+commit fbbe2c75868110cbb3aaaef809fdd57322684954
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 6 14:11:22 2011 +0000
+
+    CHANGES: snmpd: PATCHES: 2975254: Avoid callback re-use of closed sessions
+    
+    Qn: Should this also be applied when main session is NULL?
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19808 06827809-a52a-0410-b366-d66718629ded
+
+commit 97b0e915dabbae4e9b878d9a3c0e01761f4ed9b6
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 6 13:21:39 2011 +0000
+
+    Fix misleading indentation
+    
+    Qn: Should this call 'subagent_startup' rather than 'agentx_reopen_session'?
+    Qn: Why doesn't this attempt to re-open the session if it was originally NULL?
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19807 06827809-a52a-0410-b366-d66718629ded
+
+commit b7dcf87fc5e9ed4fc78a3dda0c4f1725573b0438
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 6 13:21:39 2011 +0000
+
+    Fix misleading indentation
+    
+    Qn: Should this call 'subagent_startup' rather than 'agentx_reopen_session'?
+    Qn: Why doesn't this attempt to re-open the session if it was originally NULL?
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19807 06827809-a52a-0410-b366-d66718629ded
+
+commit ecceb51dfaf230c89cdb2cb2d10439e2e0e241a6
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 6 13:21:39 2011 +0000
+
+    Fix misleading indentation
+    
+    Qn: Should this call 'subagent_startup' rather than 'agentx_reopen_session'?
+    Qn: Why doesn't this attempt to re-open the session if it was originally NULL?
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19807 06827809-a52a-0410-b366-d66718629ded
+
+commit e550998c4211daff394a2f772575f9e469d1854a
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 6 12:46:19 2011 +0000
+
+    CHANGES: snmpd: PATCHES: 2941811: Handle successful requests with reqID 0
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19806 06827809-a52a-0410-b366-d66718629ded
+
+commit 86ff535e2766b5f5ab237e7002a7ec0784e9f806
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 6 12:46:19 2011 +0000
+
+    CHANGES: snmpd: PATCHES: 2941811: Handle successful requests with reqID 0
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19806 06827809-a52a-0410-b366-d66718629ded
+
+commit b420e1b69bf2313b6ce75cdee20d6225860a4cb1
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Thu Jan 6 12:46:19 2011 +0000
+
+    CHANGES: snmpd: PATCHES: 2941811: Handle successful requests with reqID 0
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19806 06827809-a52a-0410-b366-d66718629ded
+
+commit 48525a0ef53a85d1f0294205d41c9d9179a007df
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Thu Jan 6 09:38:50 2011 +0000
+
+    Spelling fix: Initialzies -> Initializes.
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19805 06827809-a52a-0410-b366-d66718629ded
+
+commit adda36da776486d072c4dcf9eaa8e57d78384bc2
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Wed Jan 5 16:31:50 2011 +0000
+
+    Use the appropriate API call for reporting config errors.
+    ("Don't be so impatient, Dave....")
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19802 06827809-a52a-0410-b366-d66718629ded
+
+commit 6ff8f22fd7b57cf0945d0f15b0433a476a67d9bd
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Wed Jan 5 16:31:50 2011 +0000
+
+    Use the appropriate API call for reporting config errors.
+    ("Don't be so impatient, Dave....")
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19802 06827809-a52a-0410-b366-d66718629ded
+
+commit c12ab5edbd8765d633f328ff468fc1e8dcf6e2a0
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Wed Jan 5 14:06:52 2011 +0000
+
+    CHANGES: snmplib: BUGS: 3134323: Fix crash when comparing invalid OIDs
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19801 06827809-a52a-0410-b366-d66718629ded
+
+commit c92f28604d13baf2ab0a6b3d7100730d33949f0f
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Wed Jan 5 14:06:52 2011 +0000
+
+    CHANGES: snmplib: BUGS: 3134323: Fix crash when comparing invalid OIDs
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19801 06827809-a52a-0410-b366-d66718629ded
+
+commit 9ab15fc6e426e5e08a3374ec3da7be42827bdc52
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Wed Jan 5 14:06:52 2011 +0000
+
+    CHANGES: snmplib: BUGS: 3134323: Fix crash when comparing invalid OIDs
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19801 06827809-a52a-0410-b366-d66718629ded
+
+commit 08985b591471b9b47908bfbb7ebc63ad5b74b1e2
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Wed Jan 5 14:04:59 2011 +0000
+
+    CHANGES: snmptrapd: BUGS: 3151254: Fix crash with invalid traphandle directive
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19800 06827809-a52a-0410-b366-d66718629ded
+
+commit fbac8b726dbc9a4d0f734c6d5d3b7762f27f2edf
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Wed Jan 5 14:04:59 2011 +0000
+
+    CHANGES: snmptrapd: BUGS: 3151254: Fix crash with invalid traphandle directive
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19800 06827809-a52a-0410-b366-d66718629ded
+
+commit 2ef02ec033b92a000e801cc39702983df87ef412
+Author: Dave Shield <dts12@users.sourceforge.net>
+Date:   Wed Jan 5 14:04:59 2011 +0000
+
+    CHANGES: snmptrapd: BUGS: 3151254: Fix crash with invalid traphandle directive
+    
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19800 06827809-a52a-0410-b366-d66718629ded
+
+commit 1b8628a2f5a006e6f32b120d2334788df5801038
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue Jan 4 18:24:55 2011 +0000
+
+    Copyright update for 2011
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-2-patches@19795 06827809-a52a-0410-b366-d66718629ded
+
+commit bc9bf08395f987d1d39d1651a2586ee067227089
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue Jan 4 18:24:55 2011 +0000
+
+    Copyright update for 2011
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19795 06827809-a52a-0410-b366-d66718629ded
+
+commit 574502a3c71f5f9760c20e42c38d3e96716aa7ea
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue Jan 4 18:24:55 2011 +0000
+
+    Copyright update for 2011
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-3-patches@19795 06827809-a52a-0410-b366-d66718629ded
+
+commit a7e6757dd9218ddc0fb4591eb4999998e9b0afcc
+Author: Wes Hardaker <hardaker@users.sourceforge.net>
+Date:   Tue Jan 4 18:24:55 2011 +0000
+
+    Copyright update for 2011
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-4-patches@19795 06827809-a52a-0410-b366-d66718629ded
+
+commit dffd621ab05ee2ad4f189255aefd42bf2cb5eb70
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Tue Jan 4 12:19:13 2011 +0000
+
+    Fix compiler warnings triggered by the Win32 MIB-II implementation (backported r19790 from the trunk).
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19793 06827809-a52a-0410-b366-d66718629ded
+
+commit c4ec540f63c5e184d947b6eba51148257c416796
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Tue Jan 4 12:17:51 2011 +0000
+
+    Removed two unused variables from the sctp-mib implementation (backported r19780 from the trunk).
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19792 06827809-a52a-0410-b366-d66718629ded
+
+commit e286996a581242befdf0fcfe37d9e503538d204e
+Author: Bart Van Assche <bvassche@users.sourceforge.net>
+Date:   Tue Jan 4 12:15:27 2011 +0000
+
+    Fixed a recently introduced mismatch between format specification and argument list in the ip-mib implementation (backported r19779 from the trunk).
+    
+    git-svn-id: file:///home/hardaker/lib/sf-bkups/net-snmp-convert-svnrepo/branches/V5-6-patches@19791 06827809-a52a-0410-b366-d66718629ded
+
 ----------------------------------------------------------------------
 
-Changes: V5.5 -> V5.5.1
+Changes: V5.6 -> V5.6.1
 
-2011-03-18 11:15  dts12
+2011-01-03 22:28  hardaker
 
-   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
-      agent/mibgroup/Makefile.depend, apps/snmpnetstat/Makefile.depend, 
-        snmplib/Makefile.depend:
+   * NEWS:
 
-   make depend
+   NEWS update
 
-2011-03-18 10:36  dts12
+2011-01-03 22:26  hardaker
 
-   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
-      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
-      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
-      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
-      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
-      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
-      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
-      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
-      man/netsnmp_handler.3, man/netsnmp_instance.3,   
-      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
-      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
-      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
-      man/netsnmp_multiplexer.3,   
-      man/netsnmp_netsnmp_agent_request_info_s.3,   
-      man/netsnmp_netsnmp_column_info_t.3,   
-      man/netsnmp_netsnmp_data_list_s.3,   
-      man/netsnmp_netsnmp_handler_registration_s.3,   
-      man/netsnmp_netsnmp_iterator_info_s.3,   
-      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
-      man/netsnmp_netsnmp_mib_handler_methods.3,   
-      man/netsnmp_netsnmp_mib_handler_s.3,   
-      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
-      man/netsnmp_netsnmp_request_info_s.3,   
-      man/netsnmp_netsnmp_table_registration_info_s.3,   
-      man/netsnmp_netsnmp_table_request_info_s.3,   
-      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
-      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
-      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
-      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
-      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
-      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
-      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
-      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
-      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
-      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
-      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
-      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
-      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
-      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
-      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
-      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
-      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
-      man/netsnmp_watcher.3:
+   * configure, configure.d/config_project_with_enable:
 
-   documentation update
+   CHANGES: Upgraded DTLS support from alpha to full; mention that
+   tsm is needed for TLS too
 
-2011-03-18 10:32  dts12
+2011-01-03 22:24  hardaker
 
    *  FAQ, README, configure, configure.ac, dist/Makefile,   
       dist/net-snmp.spec:
 
    Version number update
 
-2011-03-13 20:09  dts12
-
-   * include/net-snmp/library/large_fd_set.h, snmplib/large_fd_set.c:
-
-   Bring the naming of the large_fd_set select call into
-   line with the rest of the API.
-
-2011-03-13 20:06  dts12
-
-   * include/net-snmp/library/large_fd_set.h, snmplib/large_fd_set.c:
-
-   CHANGES: snmplib: PATCH: 3203806: Add the function
-   netsnmp_large_select()
-   (plus tweaks to netsnmp_large_fd_set_resize)
-
-2011-03-11 11:11  jsafranek
-
-   * agent/mibgroup/host/hr_swrun.c:
-
-   CHANGES: snmpd: fixed race condition in hrSWRunTable
-   Treat the reads from /proc/<pid>/* carefuly, processes can exit
-   in the middle of processing.
-
-2011-03-10 15:51  dts12
-
-   * snmplib/snmp-tc.c:
-
-   CHANGES: snmpd: BUG: 3178389: Fix inconsistent handling of TZ
-   offsets
-
-2011-03-04 15:09  jsafranek
-
-   * agent/mibgroup/ucd-snmp/vmstat_linux.c:
-
-   CHANGES: snmpd: fixed 'truncating integer value > 32 bits' in
-   UCD-SNMP-MIB::systemStats on Linux
-
-2011-02-25 12:55  dts12
-
-   * dist/makerelease.xml:
-
-   Fix the command to create a new SVN tag line
-   
-   (Having brought the structure of the 5.5.x branch
-   into line with the other branches, the previous
-   command is now wrong for *all* branches, rather
-   than just most of them!)
-
-2011-02-25 11:49  dts12
-
-   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
-      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
-      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
-      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
-      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
-      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
-      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
-      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
-      man/netsnmp_handler.3, man/netsnmp_instance.3,   
-      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
-      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
-      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
-      man/netsnmp_multiplexer.3,   
-      man/netsnmp_netsnmp_agent_request_info_s.3,   
-      man/netsnmp_netsnmp_column_info_t.3,   
-      man/netsnmp_netsnmp_data_list_s.3,   
-      man/netsnmp_netsnmp_handler_registration_s.3,   
-      man/netsnmp_netsnmp_iterator_info_s.3,   
-      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
-      man/netsnmp_netsnmp_mib_handler_methods.3,   
-      man/netsnmp_netsnmp_mib_handler_s.3,   
-      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
-      man/netsnmp_netsnmp_request_info_s.3,   
-      man/netsnmp_netsnmp_table_registration_info_s.3,   
-      man/netsnmp_netsnmp_table_request_info_s.3,   
-      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
-      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
-      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
-      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
-      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
-      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
-      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
-      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
-      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
-      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
-      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
-      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
-      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
-      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
-      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
-      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
-      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
-      man/netsnmp_watcher.3:
-
-   documentation update
-
-2011-02-25 11:41  dts12
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile,   
-      dist/net-snmp.spec, perl/ASN/ASN.pm,   
-      perl/AnyData_SNMP/Storage.pm, perl/OID/OID.pm, perl/SNMP/SNMP.pm, 
-        perl/TrapReceiver/TrapReceiver.pm,
-      perl/agent/Support/Support.pm,    perl/agent/agent.pm,
-      perl/agent/default_store/default_store.pm,   
-      perl/default_store/default_store.pm:
-
-   Version number update
-
-2011-02-25 11:39  dts12
-
-   * ChangeLog:
-
-   version update
-
-2011-02-25 11:15  dts12
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile,   
-      dist/net-snmp.spec, perl/ASN/ASN.pm,   
-      perl/AnyData_SNMP/Storage.pm, perl/OID/OID.pm, perl/SNMP/SNMP.pm, 
-        perl/TrapReceiver/TrapReceiver.pm,
-      perl/agent/Support/Support.pm,    perl/agent/agent.pm,
-      perl/agent/default_store/default_store.pm,   
-      perl/default_store/default_store.pm:
-
-   Version number update
-
-2011-02-25 11:10  dts12
-
-   * snmplib/snmpv3.c:
-
-   Avoid a possible crash if the engineID is not available or set.
-
-2011-02-23 09:36  nba
-
-   * apps/snmptable.c:
-
-   Fix bug 3118631: snmptable segfaults if index contains : character
-
-2011-02-23 09:30  nba
-
-   * include/net-snmp/system/freebsd8.h:
-
-   FreeBSD 8 support
-
-2011-02-22 15:25  dts12
-
-   * agent/mibgroup/host/hr_swinst.c:
-
-   Revert a bogus change that crept into the code.
-
-2011-02-22 08:55  dts12
-
-   * {everything}:
-
-   Fix 5.5.x branch structure
-
-2011-02-21 13:44  dts12
+2010-12-29 01:41  hardaker
 
    * configure:
 
-   Version number update
+   autoconf using the right version
 
-2011-02-21 13:24  dts12
-
-   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
-      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
-      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
-      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
-      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
-      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
-      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
-      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
-      man/netsnmp_handler.3, man/netsnmp_instance.3,   
-      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
-      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
-      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
-      man/netsnmp_multiplexer.3,   
-      man/netsnmp_netsnmp_agent_request_info_s.3,   
-      man/netsnmp_netsnmp_column_info_t.3,   
-      man/netsnmp_netsnmp_data_list_s.3,   
-      man/netsnmp_netsnmp_handler_registration_s.3,   
-      man/netsnmp_netsnmp_iterator_info_s.3,   
-      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
-      man/netsnmp_netsnmp_mib_handler_methods.3,   
-      man/netsnmp_netsnmp_mib_handler_s.3,   
-      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
-      man/netsnmp_netsnmp_request_info_s.3,   
-      man/netsnmp_netsnmp_table_registration_info_s.3,   
-      man/netsnmp_netsnmp_table_request_info_s.3,   
-      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
-      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
-      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
-      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
-      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
-      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
-      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
-      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
-      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
-      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
-      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
-      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
-      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
-      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
-      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
-      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
-      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
-      man/netsnmp_watcher.3:
-
-   documentation update
-
-2011-02-21 13:17  dts12
-
-   *  FAQ, README, agent/mibgroup/host/hr_swinst.c, configure,   
-      configure.ac, dist/Makefile, dist/net-snmp.spec:
-
-   Version number update
-
-2011-02-21 11:14  bvassche
-
-   * agent/helpers/table_dataset.c:
-
-   Backported r19454 from the trunk and thereby fixed this Valgrind
-   complaint:
-   
-   ==6287== Invalid read of size 8
-   ==6287== at 0x4E6CCAE: netsnmp_delete_table_data_set
-   (table_dataset.c:186)
-   ==6287== by 0x5121974: shutdown_notification_log
-   (notification_log.c:564)
-   ==6287== by 0x51941DB: _shutdown_mib_modules
-   (mib_module_shutdown.h:32)
-   ==6287== by 0x54B14F4: snmp_call_callbacks (callback.c:344)
-   ==6287== by 0x548B58B: snmp_shutdown (snmp_api.c:862)
-   ==6287== by 0x404C06: main (snmpd.c:1060)
-   ==6287== Address 0x686f318 is 24 bytes inside a block of size 40
-   free'd
-   ==6287== at 0x4A060E0: free (vg_replace_malloc.c:366)
-   ==6287== by 0x4E6AB16: netsnmp_table_data_delete_table
-   (table_data.c:320)
-   ==6287== by 0x4E6CC84: netsnmp_delete_table_data_set
-   (table_dataset.c:180)
-   ==6287== by 0x5121974: shutdown_notification_log
-   (notification_log.c:564)
-   ==6287== by 0x51941DB: _shutdown_mib_modules
-   (mib_module_shutdown.h:32)
-   ==6287== by 0x54B14F4: snmp_call_callbacks (callback.c:344)
-   ==6287== by 0x548B58B: snmp_shutdown (snmp_api.c:862)
-   ==6287== by 0x404C06: main (snmpd.c:1060)
-
-2011-02-20 09:24  bvassche
-
-   * agent/snmp_agent.c:
-
-   CHANGES: snmpd: BUG: 3185528: shutdown_master_agent doesn't close
-   UDP socket
-   (Fixes a bug introduced in r19511.)
-
-2011-02-15 22:24  nba
-
-   * agent/mibgroup/mibII/udpTable.c:
-
-   Properly save entries for NetBSD and DragonFly
-
-2011-02-15 22:18  nba
-
-   * agent/mibgroup/mibII/udp.c:
-
-   remove redundant includes
-
-2011-02-15 21:48  nba
-
-   * configure, include/net-snmp/net-snmp-config.h.in:
-
-   rerun autoheader/autoconf
-
-2011-02-15 21:26  nba
-
-   * m4/netsnmp_search_libs.m4:
-
-   Too much quoting is bad
-
-2011-02-15 21:11  nba
-
-   *  agent/mibgroup/mibII.h, agent/mibgroup/mibII/ipv6.c,   
-      agent/mibgroup/mibII/ipv6.h:
-
-   Fix IPv6 TCP and UDP tables, *BSD support
-
-2011-02-15 20:45  nba
-
-   *  agent/mibgroup/disman/expr/expObjectConf.c,   
-      agent/mibgroup/disman/expr/expValue.c,   
-      agent/mibgroup/disman/nslookup/lookupResultsTable.c:
-
-   Kill compiler warnings
-
-2011-02-15 20:44  nba
-
-   * agent/mibgroup/mibII/tcpTable.c:
-
-   Filter IPv6 entries from IPv4 table
-
-2011-02-15 20:42  nba
-
-   *  agent/mibgroup/host/data_access/swrun.h,   
-      agent/mibgroup/host/data_access/swrun_kinfo.c:
-
-   Proper use of getproc2 and dragonfly support
-
-2011-02-15 20:41  nba
-
-   * agent/mibgroup/hardware/fsys/fsys_getfsstats.c:
-
-   getvfsstat is only for NetBSD
-
-2011-02-15 20:39  nba
-
-   * configure.d/config_os_libs1, configure.d/config_os_libs2:
-
-   Detect need for -lkvm in proper time
-
-2011-02-14 14:38  bvassche
-
-   * agent/snmpd.c:
-
-   Fixed a MinGW-specific compiler warning.
-
-2011-02-13 16:28  magfr
-
-   * net-snmp-config.in:
-
-   CHANGES: Make it possible to build static applications using
-   net-snmp-config and the -*libs flags once more.
-
-2011-02-10 15:13  dts12
-
-   * snmplib/mib.c:
-
-   CHANGES: snmplib: PATCHES: 3165878: Catch buffer overrun on
-   64-bit systems
-
-2011-02-10 15:06  dts12
-
-   *  agent/mibgroup/hardware/cpu/cpu_linux.c,   
-      agent/mibgroup/ucd-snmp/vmstat_linux.c:
-
-   CHANGES: snmpd: PATCHES: 3152412: Handle (and report) problems
-   reading /proc/vmstat
-
-2011-02-08 17:41  hardaker
-
-   * perl/SNMP/SNMP.xs, perl/agent/agent.pm:
-
-   CHANGES: perl: patch from Martin Buck: don't always open stderr
-   as the calls to snmp_log already do this and it messes up the
-   agent when embedded
-
-2011-02-08 17:37  hardaker
-
-   * agent/mibgroup/if-mib/data_access/interface_linux.c:
-
-   CHANGES: snmpd: Fix a strlen calculation as pointed out by
-   Konstantin Baydarov
-
-2011-02-03 22:42  tanders
-
-   * snmplib/snmp_api.c:
-
-   CHANGES: snmplib: BUG: 3171878: Using SNMPv3 context does not
-   work
-
-2011-02-01 09:41  jsafranek
-
-   * agent/mibgroup/ip-mib/data_access/systemstats_common.c:
-
-   CHANGES: snmpd: fixed the agent writing 'looks like a 64bit wrap,
-   but prev!=new' in syslog when computing ipSystemStats
-   
-   Without the memcpy, prev_vals->stats and new_vals->stats could
-   get different,
-   which could much much later (when a counter gets bigger than 32
-   bits) result
-   in 'prev!=new' message in syslog. Typically this happens after
-   long time of
-   uptime and it is very hard to reproduce.
-
-2011-01-31 22:39  nba
-
-   * agent/mibgroup/disman/nslookup/lookupCtlTable.c:
-
-   addprototypes and remove unused vars
-
-2011-01-31 22:37  nba
-
-   *  agent/mibgroup/disman/expr/expExpression.c,   
-      agent/mibgroup/disman/expr/expExpression.h,   
-      agent/mibgroup/disman/expr/expObject.c,   
-      agent/mibgroup/disman/expr/expObject.h,   
-      agent/mibgroup/disman/expr/expValueTable.c,   
-      apps/snmpnetstat/inet6.c:
-
-   const juggling to remove warnings
-
-2011-01-31 22:30  nba
-
-   * agent/mibgroup/ucd-snmp/diskio.c:
-
-   diskio for dragonfly
-
-2011-01-31 22:28  nba
-
-   * agent/mibgroup/hardware/cpu/cpu_kinfo.c:
-
-   properly name initalizer function for cpu_kinfo
-
-2011-01-30 01:06  tanders
-
-   * agent/mibgroup/ucd-snmp/diskio.c:
-
-   CHANGES: snmpd: BUG: 3151897: fd leak w/ /proc/partitions
-   read in diskio
-
-2011-01-29 23:36  tanders
-
-   * agent/mibgroup/host/hr_system.c:
-
-   NEWS: snmpd: BUG: 3166568: hrSystemProcesses missing in 5.6/5.6.1
-
-2011-01-27 09:35  dts12
-
-   * include/net-snmp/library/snmp_api.h, snmplib/snmp_api.c:
-
-   After ten years intensive use, an "experimental"
-   feature can probably be released for general use.
-
-2011-01-26 16:50  hardaker
-
-   * local/mib2c:
-
-   CHANGES: mib2c: make the mib2c foreach ranges work as advertised
-   in the comments.
-
-2011-01-26 09:12  jsafranek
-
-   * agent/mibgroup/ucd-snmp/proc.c:
-
-   CHANGES: snmpd: fixed rare race condition when counting processes
-   for UCD-SNMP-MIB::prTable
-   
-   The XX process can exit after fopen(/proc/XX/status) and before
-   fgets() from it. snmpd should continue with other processes and
-   not to stop.
-
-2011-01-19 13:57  jsafranek
-
-   * configure.d/config_os_libs1:
-
-   Make us compatible with rpm-4.9, rpmGetFilesystemList does not
-   exist anymore, so the configure script should not check it.
-
-2011-01-19 06:31  nba
-
-   * configure.d/config_os_libs1:
-
-   diskIOLAx requires exp which may require -lm
-
-2011-01-19 06:20  nba
-
-   * acconfig.h:
-
-   Define DRAGONFLYID
-
-2011-01-18 22:01  nba
-
-   * agent/mibgroup/host/hr_swrun.c:
-
-   typo
-
-2011-01-18 21:56  nba
-
-   * configure.d/config_os_libs1:
-
-   Check for -lkinfo
-
-2011-01-18 21:54  nba
-
-   * agent/mibgroup/if-mib/data_access/interface.h:
-
-   Find proper if-mib interface for NetBSD
-
-2011-01-14 12:28  jsafranek
-
-   * agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c:
-
-   CHANGES: snmpd: from Robert Story: fixed adding new addresses to
-   ipAddressTable
-   
-   Long time ago, there was a bugreport[1] regarding ipAddressTable
-   on
-   net-snmp-coders list and rstory's experimental patch without any
-   feedback.
-   Now I've got few complaints that SNMP SET on ipAddressTable
-   produces the
-   same errors and guess what, the patch fixes them.
-   
-   [1]:
-   http://sourceforge.net/mailarchive/forum.php?thread_name=20060920134935.35b36ed6%40dev.futz.org&forum_name=net-snmp-coders
-
-2011-01-14 08:39  bvassche
-
-   *  configure, configure.d/config_os_progs, net-snmp-config.in,   
-      snmplib/Makefile.in:
-
-   CHANGES: Cygwin: libnetsnmp does now build as a DLL when
-   configured with --enable-shared.
-   CHANGES: Cygwin: perl modules do now build (--with-perl-modules).
-   (Backported r18825 from the trunk.)
-
-2011-01-14 08:22  bvassche
-
-   * include/net-snmp/net-snmp-config.h.in:
-
-   Regenerated with autoreconf -iv.
-
-2011-01-14 06:25  rstory
-
-   * agent/mibgroup/agentx/protocol.c:
-
-   remove completely useless and nonsensical code
-
-2011-01-13 15:56  dts12
-
-   * dist/makerelease.xml:
-
-   Ensure releases are installed to the correct path within the
-   /tags SVN tree
-
-2011-01-13 15:45  dts12
-
-   * CHANGES, NEWS:
-
-   version update
-
-2011-01-13 15:33  dts12
-
-   * ChangeLog:
-
-   version update
-
-2011-01-13 15:26  dts12
-
-   * agent/mibgroup/Makefile.depend, snmplib/Makefile.depend:
-
-   make depend
-
-2011-01-13 15:15  dts12
-
-   * agent/mibgroup/mibII/kernel_netbsd.c:
-
-   Remove C++ comments
-
-2011-01-13 14:55  dts12
-
-   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
-      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
-      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
-      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
-      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
-      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
-      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
-      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
-      man/netsnmp_handler.3, man/netsnmp_instance.3,   
-      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
-      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
-      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
-      man/netsnmp_multiplexer.3,   
-      man/netsnmp_netsnmp_agent_request_info_s.3,   
-      man/netsnmp_netsnmp_column_info_t.3,   
-      man/netsnmp_netsnmp_data_list_s.3,   
-      man/netsnmp_netsnmp_handler_registration_s.3,   
-      man/netsnmp_netsnmp_iterator_info_s.3,   
-      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
-      man/netsnmp_netsnmp_mib_handler_methods.3,   
-      man/netsnmp_netsnmp_mib_handler_s.3,   
-      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
-      man/netsnmp_netsnmp_request_info_s.3,   
-      man/netsnmp_netsnmp_table_registration_info_s.3,   
-      man/netsnmp_netsnmp_table_request_info_s.3,   
-      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
-      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
-      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
-      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
-      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
-      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
-      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
-      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
-      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
-      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
-      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
-      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
-      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
-      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
-      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
-      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
-      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
-      man/netsnmp_watcher.3:
-
-   documentation update
-
-2011-01-13 14:42  dts12
-
-   * configure:
-
-   Version number update
-
-2011-01-13 14:41  dts12
+2010-12-29 01:40  hardaker
 
    *  FAQ, README, configure, configure.ac, dist/Makefile,   
       dist/net-snmp.spec:
 
    Version number update
 
-2011-01-13 13:17  dts12
-
-   * agent/auto_nlist.c:
-
-   Fix broken patch
-
-2011-01-13 12:14  dts12
-
-   *  configure, configure.d/config_os_functions,   
-      configure.d/config_os_headers:
-
-   Configure fixes for DragonFly support
-
-2011-01-13 12:04  dts12
-
-   *  agent/auto_nlist.c, agent/mibgroup/host/hr_filesys.c,   
-      agent/mibgroup/if-mib/data_access/interface.h,   
-      agent/mibgroup/mibII/ip.c, agent/mibgroup/mibII/ip.h,   
-      agent/mibgroup/mibII/tcp.c, include/net-snmp/system/dragonfly.h:
-
-   Code fixes for DragonFly support
-
-2011-01-13 11:33  dts12
-
-   * agent/mibgroup/hardware/memory/memory_netbsd.c:
-
-   Fix typo
-
-2011-01-12 19:20  bvassche
-
-   * 
-      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHParameters/usmDHParameters.c:
-
-   Get rid of a compiler warning in
-   agent/mibgroup/snmp-usm-dh-objects-mib/usmDHParameters/usmDHParameters.c.
-
-2011-01-12 19:04  bvassche
-
-   * agent/mibgroup/agentx/subagent.c:
-
-   Fixed a compiler warning (format specification mismatch) that was
-   introduced
-   in r19808 ("snmpd: PATCHES: 2975254: Avoid callback re-use of
-   closed sessions").
-
-2011-01-12 15:03  rstory
-
-   *  agent/mibgroup/notification-log-mib/notification_log.c,   
-      agent/mibgroup/notification/snmpNotifyTable.c:
-
-   CHANGES: snmp: patch: 3096725: sysORTable registation for
-   notification log mib
-   
-   original patch fixed several issues, other parts applied earlier
-
-2011-01-12 14:37  rstory
-
-   *  agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable.c,   
-      agent/mibgroup/if-mib/ifTable/ifTable.c,   
-      agent/mibgroup/if-mib/ifXTable/ifXTable.c,   
-      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c,
-        
-      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c,
-        
-      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.c,  
-      
-      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c,
-         agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c,   
-      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.c,
-         agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.c,   
-      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c,   
-      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.c,   
-      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.c,   
-      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.c,
-         agent/mibgroup/notification-log-mib/notification_log.c,   
-      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable.c,   
-      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c,
-         agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable.c:
-
-   CHANGES: agent: MIB-specific leak-at-exit fixes.
-   
-   backport applicable parts of r19533 from trunk
-
-2011-01-11 16:04  dts12
-
-   * ov/UCD-fields, ov/oid_to_sym.in, ov/oid_to_type.in:
-
-   Recognise Agent OID for DragonFly systems (and general tidying
-   up)
-   [From NetBSD patch archive]
-   
-   Qn: Should these be updated to refer to Net-SNMP (rather than
-   UCD)?
-
-2011-01-11 16:01  dts12
-
-   *  include/net-snmp/net-snmp-config.h.in, mibs/NET-SNMP-TC.txt,   
-      mibs/UCD-SNMP-MIB.txt, sedscript.in:
-
-   Define Agent OID for DragonFly systems
-   (and general tidying up)
-   [From NetBSD patch archive]
-
-2011-01-11 15:27  dts12
-
-   * agent/mibgroup/mibII/tcpTable.c, agent/mibgroup/mibII/udpTable.c:
-
-   NetBSD DragonFly support for UDP & TCP tables
-   [From NetBSD patch archive]
-
-2011-01-11 14:41  dts12
-
-   *  agent/mibgroup/hardware/cpu.h,   
-      agent/mibgroup/hardware/cpu/cpu_kinfo.c,   
-      agent/mibgroup/hardware/cpu/cpu_kinfo.h,   
-      agent/mibgroup/host/hr_swrun.c, agent/mibgroup/ucd-snmp/disk.c,   
-      agent/mibgroup/ucd-snmp/errormib.c,   
-      agent/mibgroup/ucd-snmp/loadave.c,   
-      agent/mibgroup/ucd-snmp/memory_freebsd2.c,   
-      agent/mibgroup/ucd-snmp/vmstat_freebsd2.c:
-
-   NEWS: NetBSD: DragonFly support
-   [From NetBSD patch archive]
-
-2011-01-11 14:36  dts12
-
-   * configure, configure.d/config_os_struct_members:
-
-   NetBSD/DragonFly 'struct ifnet' requires KERNEL, but not _KERNEL
-   [From NetBSD patch archive]
-   (I hope I've got this one right!)
-
-2011-01-11 14:14  rstory
-
-   * 
-      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c,
-        
-      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.c:
-
-   revert PATCH 3053436: tcpConnectionTable_data_access invalid
-   memory access
-   
-   the bug this is fixing was introduced in r17719, and fixed in
-   r17861.
-
-2011-01-11 13:22  dts12
-
-   * agent/mibgroup/mibII/interfaces.c:
-
-   Really handle systems with 'struct timespec ifnet.if_lastchange'
-   (missing element from SVN revision 19841)
-
-2011-01-11 12:24  dts12
-
-   * configure, configure.d/config_os_headers:
-
-   Additional headers when testing for IPv6 headers
-   [From NetBSD patch archive]
-
-2011-01-11 12:14  dts12
-
-   * snmplib/snmpUDPIPv6Domain.c:
-
-   Missing type under darwin
-   [From NetBSD patch archive]
-
-2011-01-11 12:10  dts12
-
-   * agent/mibgroup/ucd-snmp/diskio.c:
-
-   NetBSD support for Disk I/O stats
-   [From NetBSD patch archive]
-
-2011-01-11 12:01  dts12
-
-   *  configure, configure.d/config_os_struct_members,   
-      include/net-snmp/net-snmp-config.h.in:
-
-   Handle systems with 'struct timespec ifnet.if_lastchange' (rather
-   than struct timeval)
-   [From NetBSD patch archive]
-
-2011-01-11 11:27  dts12
-
-   *  agent/mibgroup/mibII/icmp.h, agent/mibgroup/mibII/ip.h,   
-      agent/mibgroup/mibII/tcp.h, agent/mibgroup/mibII/udp.h:
-
-   Pull in kernel_netbsd module when required
-   [Based on fix from NetBSD patch archive]
-
-2011-01-11 10:36  dts12
-
-   *  agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/ip.c,   
-      agent/mibgroup/mibII/kernel_netbsd.c,   
-      agent/mibgroup/mibII/kernel_netbsd.h,   
-      agent/mibgroup/mibII/mibII_common.h, agent/mibgroup/mibII/tcp.c,  
-       agent/mibgroup/mibII/udp.c, include/net-snmp/system/netbsd.h:
-
-   CHANGES: NetBSD: Retrieve MIB-II network statistics via sysctl
-   [From NetBSD patch archive]
-
-2011-01-10 16:56  dts12
-
-   * agent/mibgroup/mibII/route_write.c:
-
-   Add support for darwin
-   (The patch from the NetBSD archive appears to be essentially the
-   same as the equivalent code from the OpenBSD patch archive)
-
-2011-01-10 16:54  dts12
-
-   * agent/mibgroup/host/hr_network.c:
-
-   Add support for darwin
-   [From NetBSD patch archive]
-
-2011-01-10 14:55  dts12
-
-   *  agent/mibgroup/hardware/cpu/cpu_sysctl.c,   
-      agent/mibgroup/hardware/memory/memory_netbsd.c:
-
-   CHANGES: NetBSD: Update memory and CPU statistics handling
-   [From NetBSD patch archive]
-
-2011-01-10 14:22  dts12
-
-   * agent/mibgroup/ucd-snmp/vmstat.c:
-
-   Fix divide-by-zero error in CPU performance statistics
-   [From NetBSD patch archive]
-
-2011-01-09 22:54  dts12
-
-   *  agent/mibgroup/host/data_access/swrun_kinfo.c,   
-      agent/mibgroup/host/hr_swrun.c, configure,   
-      configure.d/config_os_libs2:
-
-   CHANGES: OpenBSD: Update SWRun code to use kvm_getproc2
-   [From OpenBSD patch archive]
-
-2011-01-09 21:30  dts12
-
-   * configure, configure.d/config_os_headers:
-
-   CHANGES: build: OpenBSD: Fix order of headers when checking
-   <netinet/in_pcb.h>
-   [From OpenBSD patch archive]
-
-2011-01-09 19:44  dts12
-
-   * agent/mibgroup/hardware/cpu/cpu_sysctl.c:
-
-   Amend how multi-CPU statistics are retreived using sysctl on
-   OpenBSD systems
-   (if this block was active, which it isn't, but that's not
-   important right not)
-   [Based on OpenBSD patch archive, amended (probably wrongly) by
-   DTS]
-
-2011-01-09 18:13  dts12
-
-   *  agent/mibgroup/host/hr_system.c,   
-      agent/mibgroup/ucd-snmp/diskio.c, agent/mibgroup/ucd-snmp/proc.c, 
-        agent/mibgroup/ucd-snmp/vmstat_bsdi4.c,   
-      agent/mibgroup/ucd-snmp/vmstat_netbsd1.c:
-
-   sysctl takes a 'size_t' variable for the size parameter
-
-2011-01-09 18:11  dts12
-
-   *  agent/mibgroup/hardware/cpu/cpu_nlist.c,   
-      agent/mibgroup/hardware/cpu/cpu_sysctl.c,   
-      agent/mibgroup/hardware/memory/memory_netbsd.c,   
-      agent/mibgroup/host/data_access/swrun_kinfo.c:
-
-   sysctl takes a 'size_t' variable for the size parameter
-
-2011-01-08 00:47  magfr
-
-   * acconfig.h, include/net-snmp/net-snmp-config.h.in:
-
-   Update acconfig.h with changes from r19819.
-   Rerun autoheader.
-
-2011-01-07 20:56  dts12
-
-   * agent/mibgroup/mibII/route_write.c:
-
-   CHANGES: OpenBSD: Support updating the routing table
-   [From OpenBSD patch archive]
-
-2011-01-07 20:29  dts12
-
-   * agent/mibgroup/mibII/udpTable.c:
-
-   Set 'next' field for udp entry linked list on OpenBSD4
-   [From OpenBSD patch archive]
-   
-   This should probably be set in <net-snmp/system/openbsd.h>
-
-2011-01-07 20:12  dts12
-
-   * agent/mibgroup/mibII/mta_sendmail.c:
-
-   Use a suitable constant for CWD buffer size
-   [Based on OpenBSD patch archive]
-
-2011-01-07 20:07  dts12
-
-   * agent/mibgroup/mibII/interfaces.c:
-
-   Move global variable into the method where it's used.
-   [From OpenBSD patch archive]
-
-2011-01-07 16:48  dts12
-
-   * agent/mibgroup/if-mib/data_access/interface_sysctl.c:
-
-   Handle systems without IFM_TOKEN
-   [From OpenBSD patch archive]
-
-2011-01-07 14:38  dts12
-
-   * agent/mibgroup/hardware/memory/memory_freebsd.c:
-
-   Update retrieval of cache usage statistics on FreeBSD
-   [From FreeBSD patch archive]
-
-2011-01-07 14:31  dts12
-
-   * agent/mibgroup/mibII/system_mib.c:
-
-   Fix handling of sysObjectID length
-   (backport of revisions 19382 & 19404)
-
-2011-01-07 14:20  dts12
-
-   * include/net-snmp/net-snmp-config.h.in:
-
-   Increase maximum size of execute output cache
-   [From FreeBSD patch archive]
-
-2011-01-07 14:10  dts12
-
-   * agent/mibgroup/sctp-mib/sctpTables_freebsd.c:
-
-   Add missing standard Net-SNMP header files
-
-2011-01-07 14:09  dts12
-
-   *  agent/mibgroup/sctp-mib/sctpAssocRemAddrTable.c,   
-      agent/mibgroup/sctp-mib/sctpAssocTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupLocalPortTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupRemHostNameTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupRemIPAddrTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupRemPortTable.c,   
-      agent/mibgroup/sctp-mib/sctpLookupRemPrimIPAddrTable.c:
-
-   Remove duplicate include directives
-   [From FreeBSD patches archive]
-
-2011-01-07 13:47  dts12
-
-   * agent/mibgroup/mibII/at.c:
-
-   Handle systems where RTF_LLINFO is not defined
-   [From FreeBSD patch archive]
-
-2011-01-07 13:40  dts12
-
-   * agent/mibgroup/ucd-snmp/disk.c:
-
-   Include zfs mount points for disk reports under FreeBSD
-   [From FreeBSD patch archive]
-
-2011-01-07 13:34  dts12
-
-   * include/net-snmp/system/generic.h:
-
-   Protect against multiple-inclusion
-   [From FreeBSD patches archive]
-
-2011-01-07 13:24  dts12
-
-   *  snmplib/callback.c, snmplib/default_store.c, snmplib/keytools.c,  
-       snmplib/lcd_time.c, snmplib/mib.c, snmplib/parse.c,   
-      snmplib/scapi.c, snmplib/snmp_auth.c, snmplib/snmp_debug.c,   
-      snmplib/snmp_logging.c, snmplib/snmp_transport.c,   
-      snmplib/snmpusm.c, snmplib/tools.c:
-
-   Include <unistd.h>
-   [From BSD patches archive]
-
-2011-01-07 13:21  dts12
-
-   * snmplib/snmp_api.c:
-
-   Avoid callback re-use of closed sessions.
-   (Part of patch #2975254 - see SVN revision 19808)
-
-2011-01-07 12:55  dts12
-
-   * agent/mibgroup/if-mib/data_access/interface_ioctl.c:
-
-   FreeBSD uses a slightly different naming scheme for struct ifreq
-   [From FreeBSD patches archive]
-
-2011-01-07 12:22  dts12
-
-   * agent/mibgroup/mibII/tcpTable.c:
-
-   Ensure TCP table information is loaded before counting
-   connections
-   [From FreeBSD patch archive]
-
-2011-01-06 19:35  hardaker
-
-   * perl/agent/agent.pm:
-
-   Fix documentation bug pointed out in cpan bug #52618
-
-2011-01-06 14:11  dts12
-
-   * agent/mibgroup/agentx/subagent.c:
-
-   CHANGES: snmpd: PATCHES: 2975254: Avoid callback re-use of closed
-   sessions
-   
-   Qn: Should this also be applied when main session is NULL?
-
-2011-01-06 13:21  dts12
-
-   * agent/mibgroup/agentx/subagent.c:
-
-   Fix misleading indentation
-   
-   Qn: Should this call 'subagent_startup' rather than
-   'agentx_reopen_session'?
-   Qn: Why doesn't this attempt to re-open the session if it was
-   originally NULL?
-
-2011-01-06 12:46  dts12
-
-   * agent/snmp_agent.c:
-
-   CHANGES: snmpd: PATCHES: 2941811: Handle successful requests with
-   reqID 0
-
-2011-01-06 09:38  bvassche
-
-   *  agent/mibgroup/agent/nsModuleTable.c,   
-      agent/mibgroup/agent/nsTransactionTable.c:
-
-   Spelling fix: Initialzies -> Initializes.
-
-2011-01-05 14:06  dts12
-
-   * snmplib/snmp_api.c:
-
-   CHANGES: snmplib: BUGS: 3134323: Fix crash when comparing invalid
-   OIDs
-
-2011-01-05 14:04  dts12
-
-   * apps/snmptrapd_handlers.c:
-
-   CHANGES: snmptrapd: BUGS: 3151254: Fix crash with invalid
-   traphandle directive
-
-2011-01-04 18:24  hardaker
-
-   * COPYING:
-
-   Copyright update for 2011
-
-2011-01-04 12:19  bvassche
-
-   * agent/mibgroup/mibII/var_route.c:
-
-   Fix compiler warnings triggered by the Win32 MIB-II
-   implementation (backported r19790 from the trunk).
-
-2011-01-04 12:17  bvassche
-
-   * agent/mibgroup/sctp-mib/sctpScalars.c:
-
-   Removed two unused variables from the sctp-mib implementation
-   (backported r19780 from the trunk).
-
-2011-01-04 12:15  bvassche
-
-   * agent/mibgroup/ip-mib/data_access/arp_linux.c:
-
-   Fixed a recently introduced mismatch between format specification
-   and argument list in the ip-mib implementation (backported r19779
-   from the trunk).
-
-2011-01-02 05:42  rstory
-
-   * agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c:
-
-   CHANGES: snmpd: skip non-AF_INET interfaces when loading ipv4
-   addrs
-
 2010-12-29 01:37  hardaker
 
    * agent/mibgroup/agentx/protocol.c:
 
-   CHANGES: snmpd: PATCHES: 3141462: fix agentx subagent
+   NEWS: snmpd: Patch 3141462: from fenner: fix agentx subagent
    issues with multiple-object requests
 
 2010-12-29 01:33  hardaker
 
    * snmplib/vacm.c:
 
-   CHANGES: snmpd: Patch from Niels to fix VACM persistant storage.
+   NEWS: snmpd: Patch from Niels to fix VACM persistant storage.
+
+2010-12-21 16:33  hardaker
+
+   * CHANGES:
+
+   fixed the NEWS file to mention 5.6.1 instead of 5.7
+
+2010-12-21 16:32  hardaker
+
+   * NEWS:
+
+   fixed the NEWS file to mention 5.6.1 instead of 5.7
+
+2010-12-21 15:50  hardaker
+
+   * CHANGES:
+
+   version update
+
+2010-12-21 15:08  hardaker
+
+   * configure:
+
+   fixed autoconf version
+
+2010-12-21 15:07  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
 
 2010-12-21 11:29  dts12
 
@@ -5969,145 +9434,25 @@
 
    Bring all versions of makerelease.xml into line
 
-2010-12-21 09:44  dts12
+2010-12-21 06:14  nba
 
-   * ChangeLog:
+   * agent/mibgroup/agent_mibs.h:
 
-   version update
+   fix configuring with --disable-debugging
 
-2010-12-21 09:25  dts12
+2010-12-20 23:27  hardaker
 
-	* man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,
-	  man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,
-	  man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,
-	  man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,
-	  man/netsnmp_cache_handler.3, man/netsnmp_callback.3,
-	  man/netsnmp_container.3, man/netsnmp_container_iterator.3,
-	  man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,
-	  man/netsnmp_debug.3, man/netsnmp_default_store.3,
-	  man/netsnmp_handler.3, man/netsnmp_instance.3,
-	  man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,
-	  man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,
-	  man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,
-	  man/netsnmp_multiplexer.3,
-	  man/netsnmp_netsnmp_agent_request_info_s.3,
-	  man/netsnmp_netsnmp_column_info_t.3,
-	  man/netsnmp_netsnmp_data_list_s.3,
-	  man/netsnmp_netsnmp_handler_registration_s.3,
-	  man/netsnmp_netsnmp_iterator_info_s.3,
-	  man/netsnmp_netsnmp_mib_handler_access_methods.3,
-	  man/netsnmp_netsnmp_mib_handler_methods.3,
-	  man/netsnmp_netsnmp_mib_handler_s.3,
-	  man/netsnmp_netsnmp_monitor_callback_header_s.3,
-	  man/netsnmp_netsnmp_request_info_s.3,
-	  man/netsnmp_netsnmp_table_registration_info_s.3,
-	  man/netsnmp_netsnmp_table_request_info_s.3,
-	  man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,
-	  man/netsnmp_old_api.3, man/netsnmp_read_config.3,
-	  man/netsnmp_read_only.3, man/netsnmp_row_merge.3,
-	  man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,
-	  man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,
-	  man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,
-	  man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,
-	  man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,
-	  man/netsnmp_stash_to_next.3, man/netsnmp_table.3,
-	  man/netsnmp_table_array.3, man/netsnmp_table_container.3,
-	  man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,
-	  man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,
-	  man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,
-	  man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,
-	  man/netsnmp_table_rows.3, man/netsnmp_tdata.3,
-	  man/netsnmp_tools.h.3, man/netsnmp_util.3,
-	  man/netsnmp_utilities.3, man/netsnmp_variable_list.3,
-	  man/netsnmp_watcher.3:
-	  documentation update
-	  (re-running makerelease)
+   *  testing/fulltests/default/T200snmpv2cwalkall_simple,   
+      testing/fulltests/support/simple_eval_tools.sh,   
+      testing/fulltests/support/simple_run:
 
-2010-12-21 09:16  dts12
+   Patch from Magnus to fix if ! tests on solaris
 
-	* CHANGES, NEWS, configure:
-	  Version number update
-	  (re-running makerelease)
-	  Actually log of recent significant changes
+2010-12-14 20:10  rstory
 
-2010-12-20 16:10  dts12
+   * man/snmpcmd.1.def:
 
-	* ChangeLog:
-	  version update
-
-2010-12-20 16:07  dts12
-
-   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
-      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
-      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
-
-   make depend
-
-2010-12-20 15:45  dts12
-
-   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
-      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
-      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
-      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
-      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
-      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
-      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
-      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
-      man/netsnmp_handler.3, man/netsnmp_instance.3,   
-      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
-      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
-      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
-      man/netsnmp_multiplexer.3,   
-      man/netsnmp_netsnmp_agent_request_info_s.3,   
-      man/netsnmp_netsnmp_column_info_t.3,   
-      man/netsnmp_netsnmp_data_list_s.3,   
-      man/netsnmp_netsnmp_handler_registration_s.3,   
-      man/netsnmp_netsnmp_iterator_info_s.3,   
-      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
-      man/netsnmp_netsnmp_mib_handler_methods.3,   
-      man/netsnmp_netsnmp_mib_handler_s.3,   
-      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
-      man/netsnmp_netsnmp_request_info_s.3,   
-      man/netsnmp_netsnmp_table_registration_info_s.3,   
-      man/netsnmp_netsnmp_table_request_info_s.3,   
-      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
-      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
-      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
-      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
-      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
-      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
-      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
-      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
-      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
-      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
-      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
-      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
-      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
-      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
-      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
-      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
-      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
-      man/netsnmp_watcher.3:
-
-   documentation update
-
-2010-12-20 15:23  dts12
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile,   
-      dist/net-snmp.spec, perl/ASN/ASN.pm,   
-      perl/AnyData_SNMP/Storage.pm, perl/OID/OID.pm, perl/SNMP/SNMP.pm, 
-        perl/TrapReceiver/TrapReceiver.pm,
-      perl/agent/Support/Support.pm,    perl/agent/agent.pm,
-      perl/agent/default_store/default_store.pm,   
-      perl/default_store/default_store.pm:
-
-   Version number update
-
-2010-12-20 14:07  dts12
-
-   * Makefile.top:
-
-   version update
+   fix typo in man page
 
 2010-12-10 15:50  hardaker
 
@@ -6116,6 +9461,12 @@
    CHANGES: snmpd: Patch from Claus Klein to fix engineid generation
    on outgoing v3 traps from the agent
 
+2010-12-10 05:19  hardaker
+
+   * dist/makerelease.xml:
+
+   fix make test options
+
 2010-12-08 13:17  jsafranek
 
    * agent/mibgroup/mibII/ipv6.c:
@@ -6129,6 +9480,25 @@
    the loading
    of the list a bit.
 
+2010-12-08 06:17  hardaker
+
+   * CHANGES, ChangeLog:
+
+   update for 5.6.1.pre2
+
+2010-12-08 06:01  hardaker
+
+   * configure:
+
+   Version number update
+
+2010-12-06 23:27  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
 2010-12-06 23:23  hardaker
 
    * agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c:
@@ -6136,6 +9506,20 @@
    Patch from Niels to remove extra headers from the linux dot3stats
    implementation
 
+2010-12-06 22:08  hardaker
+
+   * configure, configure.d/config_os_functions:
+
+   Check for the minimum required function in OpenSSL for DTLS
+   support
+
+2010-12-06 16:34  rstory
+
+   * agent/snmp_vars.c:
+
+   call netsnmp_certs_agent_init sooner, fixing snmptrapd (D)TLS
+   support
+
 2010-12-06 16:24  hardaker
 
    * apps/snmptrap.c:
@@ -6143,12 +9527,43 @@
    fix contextEngineIDs for outgoing informs from snmpinform to be
    the local engineID
 
+2010-12-01 14:30  hardaker
+
+   * configure:
+
+   generate with the proper autoconf
+
+2010-12-01 01:06  hardaker
+
+   *  agent/Makefile.depend, agent/mibgroup/Makefile.depend,   
+      apps/Makefile.depend, snmplib/Makefile.depend:
+
+   make depend
+
 2010-12-01 01:06  hardaker
 
    * agent/snmpd.c:
 
    use netsnmp_assert instead of assert
 
+2010-12-01 00:46  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec, perl/ASN/ASN.pm,   
+      perl/AnyData_SNMP/Storage.pm, perl/OID/OID.pm, perl/SNMP/SNMP.pm, 
+        perl/TrapReceiver/TrapReceiver.pm,
+      perl/agent/Support/Support.pm,    perl/agent/agent.pm,
+      perl/agent/default_store/default_store.pm,   
+      perl/default_store/default_store.pm:
+
+   Version number update
+
+2010-12-01 00:46  hardaker
+
+   * Makefile.top:
+
+   version update
+
 2010-11-30 23:27  hardaker
 
    * perl/SNMP/SNMP.xs:
@@ -6172,6 +9587,24 @@
    CHANGES: snmpd: PATCH: 3053436: from: takevos: fix:
    tcpListenerTable_data_access invalid memory access
 
+2010-11-30 21:08  nba
+
+   * apps/snmptls.c, apps/snmptrapd_sql.c:
+
+   u_int32_t is less portable than uint32_t (Solaris 11)
+
+2010-11-30 20:52  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   remove a compile warning about a nested if without a block
+
+2010-11-30 19:57  rstory
+
+   * snmplib/cert_util.c:
+
+   error check the right pointer after attempting allocation
+
 2010-11-30 05:56  hardaker
 
    *  agent/mibgroup/if-mib/data_access/interface_linux.c, configure,   
@@ -6188,15 +9621,30 @@
    CHANGES: PATCH 3074918: from weizheng: check for CONTAINER_INSERT
    failures and react appropriately to avoid memory leaks
 
-2010-11-29 22:14  rstory
+2010-11-30 04:34  rstory
 
-   * agent/helpers/cache_handler.c:
+   * snmplib/cert_util.c:
 
-   CHANGES: snmpd: use cache-unique id instead of handler name for
-   shared
-   cache reload protection
+   CHANGES: snmpd: add debug for cert find hint as string/int
 
-2010-11-18 03:49  rstory
+2010-11-30 04:30  rstory
+
+   *  agent/snmp_vars.c, include/net-snmp/library/cert_util.h,   
+      snmplib/cert_util.c:
+
+   CHANGES: snmpd: instead of relying on NETSNMP_DS_LIB_APPTYPE,
+   break out
+   cert table inits to new agent cert init function, called from
+   init_agent.
+
+2010-11-30 04:21  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   CHANGES: snmpd: BUG: enforce max length on TLS secName maps
+   CHANGES: snmpd: add priority to secname debugging
+
+2010-11-30 04:04  rstory
 
    *  agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/ip.c,   
       agent/mibgroup/mibII/tcp.c, agent/mibgroup/mibII/udp.c,   
@@ -6208,6 +9656,112 @@
    
    netsnmp_cache_is_valid() is not meant for mib modules
 
+2010-11-29 22:20  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   CHANGES: snmpd: add debug for ssl ciphers, clarify fingerprint
+   match debug
+
+2010-11-29 22:14  rstory
+
+   * agent/helpers/cache_handler.c:
+
+   CHANGES: snmpd: use cache-unique id instead of handler name for
+   shared
+   cache reload protection
+
+2010-11-19 15:25  nba
+
+   * 
+      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c:
+
+   Niels, Niels, you should know better than making last minute
+   changes to a
+   patch and then commit it without testing :-(
+
+2010-11-18 10:55  bvassche
+
+   *  ., include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   Compiler warning fixes for the TLS transport code: backported
+   r19546 from the trunk.
+
+2010-11-18 10:53  bvassche
+
+   * 
+      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c:
+
+   Fixed what was broken by r19685: dividing the return value of
+   snmp_log() does not make sense.
+
+2010-11-17 19:59  nba
+
+   *  agent/mibgroup/host/data_access/swinst_darwin.c,   
+      agent/mibgroup/host/data_access/swinst_pkginfo.c:
+
+   More proction against overflowing snprintf
+
+2010-11-17 19:57  nba
+
+   *  agent/mibgroup/ip-forward-mib/data_access/route_linux.c,   
+      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c,
+         include/net-snmp/data_access/route.h:
+
+   Dont use first element of oid to save ifIndex - it can only be
+   0..2
+   Second element is only 0..39, so we have to use a third element.
+
+2010-11-17 19:39  nba
+
+   *  agent/mibgroup/hardware/fsys.h, configure.d/config_os_functions,  
+       configure.d/config_os_libs1, configure.d/config_os_libs2:
+
+   Test getfsstat/getvfsstat in time for module selection
+
+2010-11-17 19:37  nba
+
+   * snmplib/file_utils.c:
+
+   Remove bogus test for flags==0 (O_RDONLY==0). Makes
+   udpEndpointTable work again
+
+2010-11-17 04:55  rstory
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   CHANGES: snmpd: fix double free in TLS error handling
+
+2010-11-16 12:43  bvassche
+
+   * win32/Makefile-apps.in:
+
+   Follow-up for r19422.
+
+2010-11-16 12:38  bvassche
+
+   * win32/mib_module_shutdown.h:
+
+   CHANGES: Win32: shutdown_snmpNotifyFilterTable() and
+   shutdown_winExtDLL() are now invoked when the Net-SNMP service is
+   stopped.
+   (Partially backported r19515 from the trunk.)
+
+2010-11-16 10:41  bvassche
+
+   *  testing/fulltests/support/simple_TESTCONF.sh,   
+      testing/fulltests/support/simple_eval_tools.sh:
+
+   Backported test infrastructure changes from the trunk.
+
+2010-11-16 10:39  bvassche
+
+   * testing/fulltests/default/T065agentextend_simple:
+
+   Reverted MinGW-specific changes from r19549 such that test T065
+   passes again on MinGW.
+
 2010-11-16 10:04  bvassche
 
    * agent/mibgroup/ip-mib/data_access/arp_linux.c:
@@ -6217,6 +9771,39 @@
    such information (NUD_NOARP), e.g. tunnels. Reported by Stephen
    Hemminger. See also patch #3107003.
 
+2010-11-16 08:49  bvassche
+
+   * configure, configure.d/config_os_functions:
+
+   MinGW: Backported r19652 from the trunk.
+
+2010-11-16 08:01  bvassche
+
+   *  configure, configure.d/config_os_functions,   
+      configure.d/config_os_progs:
+
+   CHANGES: MinGW: configure: Detection of the functions
+   gai_strerror(), getaddrinfo(), gethostname() and gethostname()
+   does now succeed.
+   (Backported r19646 from the trunk.)
+
+2010-11-16 07:55  bvassche
+
+   * snmplib/transports/snmpUDPIPv6Domain.c:
+
+   CHANGES: agent: com2sec6 directive: If configure has not found
+   getaddrinfo(), non-numeric IPv6 addresses do now trigger an error
+   message.
+   (Backported r19650.)
+
+2010-11-16 07:51  bvassche
+
+   * include/net-snmp/output_api.h, snmplib/snmp_debug.c:
+
+   CHANGES: snmplib: Changed the argument type of
+   debug_register_tokens() from char * into const char *.
+   (Backported r19665 and r19666 from the trunk.)
+
 2010-11-15 14:15  bvassche
 
    * snmplib/asn1.c:
@@ -6226,6 +9813,19 @@
    asn_build_signed_int64(). Most but not all of these bugs were
    specific to 64-bit systems. Fixes bug #3093199.
 
+2010-11-15 14:09  bvassche
+
+   *  testing/fulltests/unit-tests/T007inet_pton_clib.c,   
+      testing/fulltests/unit-tests/T008asn1_clib.c:
+
+   Copied two unit-tests from the trunk.
+
+2010-11-15 14:09  bvassche
+
+   * testing/fulltests/support/clib_build:
+
+   Merged recent clib_build changes from the trunk.
+
 2010-11-11 22:48  nba
 
    * agent/mibgroup/notification-log-mib/notification_log.c:
@@ -6252,10 +9852,37 @@
 
 2010-11-09 13:47  bvassche
 
-   * testing/tests/T030snmpv3usercreation:
+   * testing/fulltests/default/T030snmpv3usercreation_simple:
 
    CHANGES: testing: Test T030 does now pass on MinGW.
 
+2010-11-09 13:40  bvassche
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   simple_eval_tools.sh: Removed a superfluous ISDEFINED invocation.
+
+2010-11-09 12:04  bvassche
+
+   * testing/fulltests/default/T160snmpnetstat_simple:
+
+   Backported r19653.
+
+2010-11-09 11:30  bvassche
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   CHANGES: MinGW: testing: If the agent has been asked to stop,
+   wait until the snmpd process disappeared before proceeding.
+
+2010-11-08 15:39  bvassche
+
+   * testing/fulltests/default/T071com2sec6_simple:
+
+   CHANGES: testing: Test 71 (com2sec6_simple) does now succeed even
+   if IPv6 DNS resolution is not available.
+   (Backported r19648.)
+
 2010-11-08 08:46  bvassche
 
    * agent/mibgroup/struct.h, agent/mibgroup/util_funcs.c:
@@ -6297,19 +9924,6 @@
    CHANGES: snmpd: PATCHES: 3096725: Include SNMPv1 trap OIDs in
    nlmLogNotificationID column
 
-2010-11-07 19:26  dts12
-
-   * agent/helpers/table_dataset.c:
-
-   Support holes in dataset tables.
-   (Partial back-port of revision 17929)
-
-2010-11-07 19:22  dts12
-
-   * agent/agent_trap.c:
-
-   Fix a typo, and drop a couple of redundant variables.
-
 2010-11-07 16:35  magfr
 
    * include/net-snmp/library/snmp_assert.h:
@@ -6323,22 +9937,36 @@
 
    Made sure that rpmGetPath() can be found by configure.
 
+2010-11-05 14:58  bvassche
+
+   * configure, configure.d/config_os_libs2:
+
+   Removed more code that was accidentially inserted by the patch
+   tool.
+
+2010-11-05 14:57  bvassche
+
+   * include/net-snmp/net-snmp-config.h.in:
+
+   Reverted r19622.
+
 2010-11-05 14:52  bvassche
 
+   *  configure, configure.d/config_os_libs1,   
+      configure.d/config_os_libs2:
+
+   Cleaned up r19624: removed garbage added by the patch tool.
+
+2010-11-05 13:55  bvassche
+
    *  Makefile.in, configure, configure.ac,   
       configure.d/config_os_headers, configure.d/config_os_libs,   
       configure.d/config_os_libs1, configure.d/config_os_libs2:
 
    CHANGES: agent: Fixed order of rpmlib detection and agent module
-   configuration (backported r19621 from the trunk).
+   configuration (backported r19621 from trunk).
 
-2010-11-05 14:36  bvassche
-
-   * include/net-snmp/net-snmp-config.h.in:
-
-   Reverted r19623.
-
-2010-11-05 13:42  bvassche
+2010-11-05 13:37  bvassche
 
    * include/net-snmp/net-snmp-config.h.in:
 
@@ -6373,18 +10001,19 @@
    CHANGES: Linux: PATCHES: 3083027: Fix RPM spec file to support
    CentOS
 
-2010-11-04 07:09  bvassche
+2010-11-04 12:45  bvassche
 
-   * agent/helpers/table.c:
+   * agent/snmpd.c:
 
-   Backported r19602, which fixes the double free at exit that was
-   introduced by r19462.
+   Reverted r19601 and thereby reenabled the invocation of
+   shutdown_master_agent() and shutdown_agent() during
+   snmp_shutdown().
 
-2010-11-03 14:51  bvassche
+2010-11-03 13:22  rstory
 
-   * include/net-snmp/agent/instance.h:
+   * testing/fulltests/tls/T200TlsIpv6_simple:
 
-   Forward-ported r19608.
+   skip tlsipv6 test if not tlstcp/tcpipv6 domains
 
 2010-11-01 16:50  dts12
 
@@ -6395,41 +10024,72 @@
 
 2010-11-01 16:47  dts12
 
-   * man/snmpget.1.def, man/snmpgetnext.1.def:
+   * man/snmpget.1.def:
 
    Document -Cf in the two man pages separately.
 
 2010-11-01 16:30  dts12
 
-   *  man/session_api.3.def, man/snmp_sess_api.3.def,   
-      man/snmpbulkget.1.def, man/snmpbulkwalk.1.def, man/snmpget.1.def, 
-        man/snmpgetnext.1.def, man/snmpset.1.def, man/snmptrap.1.def,   
-      man/snmptrapd.8.def, man/snmpwalk.1.def:
+   *  man/netsnmp_session_api.3.def, man/snmpbulkwalk.1.def,   
+      man/snmpget.1.def, man/snmpgetnext.1.def, man/snmpset.1.def,   
+      man/snmptrap.1.def, man/snmptrapd.8.def, man/snmpwalk.1.def:
 
    Remove CMU copyright notice from man pages that
    were not inherited from CMU-SNMP
    (and qualify the copyright for those that were).
 
+2010-11-01 16:23  bvassche
+
+   * agent/helpers/table.c:
+
+   Partially reverted r19485 because it triggered double frees
+   during snmpd exit (this change is already present on the trunk).
+   An example:
+   
+   ==18709== Invalid read of size 8
+   ==18709== at 0x4E76D54: netsnmp_table_registration_info_free
+   (table.c:1008)
+   ==18709== by 0x50DBEB2: shutdown_sysORTable (sysORTable.c:286)
+   ==18709== by 0x518E37C: _shutdown_mib_modules
+   (mib_module_shutdown.h:3)
+   ==18709== by 0x603CA7C: snmp_call_callbacks (callback.c:338)
+   ==18709== by 0x600EAE4: snmp_shutdown (snmp_api.c:898)
+   ==18709== by 0x40517F: main (snmpd.c:1066)
+   ==18709== Address 0x7322960 is 0 bytes inside a block of size 32
+   free'd
+   ==18709== at 0x4C26496: free (vg_replace_malloc.c:366)
+   ==18709== by 0x4E767C7:
+   netsnmp_free_netsnmp_table_registration_info (table.c:74)
+   ==18709== by 0x4E4416B: netsnmp_handler_free
+   (agent_handler.c:685)
+   ==18709== by 0x4E4414F: netsnmp_handler_free
+   (agent_handler.c:680)
+   ==18709== by 0x4E442AF: netsnmp_handler_registration_free
+   (agent_handler.c:742)
+   ==18709== by 0x4E46F7C: netsnmp_subtree_free
+   (agent_registry.c:468)
+   ==18709== by 0x4E486B9: unregister_mib_context
+   (agent_registry.c:1745)
+   ==18709== by 0x4E430FC: netsnmp_unregister_handler
+   (agent_handler.c:326)
+   ==18709== by 0x4E76891: netsnmp_unregister_table (table.c:137)
+   ==18709== by 0x4E7B124: netsnmp_container_table_unregister
+   (table_container.c:334)
+   ==18709== by 0x50DBE90: shutdown_sysORTable (sysORTable.c:283)
+   ==18709== by 0x518E37C: _shutdown_mib_modules
+   (mib_module_shutdown.h:3)
+
+2010-11-01 15:27  bvassche
+
+   * agent/snmpd.c:
+
+   Partially reverted r19511: disabled invocation of
+   shutdown_master_agent() and shutdown_agent() during
+   snmp_shutdown() again.
+
 2010-11-01 13:55  dts12
 
-   *  man/config_api.3.def, man/encode_keychange.1.def,   
-      man/fixproc.1.def, man/mib2c-update.1.def, man/mib2c.1.def,   
-      man/mib_api.3.def, man/net-snmp-config.1.def,   
-      man/net-snmp-create-v3-user.1.def, man/pdu_api.3.def,   
-      man/session_api.3.def, man/snmp.conf.5.def,   
-      man/snmp_agent_api.3.def, man/snmp_alarm.3.def,   
-      man/snmp_config.5.def, man/snmp_sess_api.3.def,   
-      man/snmp_trap_api.3.def, man/snmpbulkget.1.def,   
-      man/snmpbulkwalk.1.def, man/snmpcmd.1.def, man/snmpconf.1.def,   
-      man/snmpd.8.def, man/snmpd.conf.5.def, man/snmpd.examples.5.def,  
-       man/snmpd.internal.5.def, man/snmpdelta.1.def, man/snmpdf.1.def, 
-        man/snmpget.1.def, man/snmpgetnext.1.def, man/snmpnetstat.1.def,
-         man/snmpset.1.def, man/snmpstatus.1.def, man/snmptable.1.def,  
-       man/snmptest.1.def, man/snmptranslate.1.def, man/snmptrap.1.def, 
-        man/snmptrapd.8.def, man/snmptrapd.conf.5.def,
-      man/snmpusm.1.def,    man/snmpvacm.1.def, man/snmpwalk.1.def,
-      man/tkmib.1.def,    man/traptoemail.1.def, man/varbind_api.3.def, 
-        man/variables.5.def:
+   * man/tkmib.1.def:
 
    Suppress forcing of "Berkeley Distribution" footer
    (Allows Net-SNMP version information to be displayed in the man
@@ -6437,25 +10097,21 @@
 
 2010-11-01 13:42  dts12
 
-   *  man/config_api.3.def, man/mib2c.1.def, man/mib_api.3.def,   
-      man/session_api.3.def, man/snmp.conf.5.def,   
-      man/snmp_agent_api.3.def, man/snmp_alarm.3.def,   
-      man/snmp_sess_api.3.def, man/snmp_trap_api.3.def,   
-      man/snmpbulkget.1.def, man/snmpbulkwalk.1.def, man/snmpcmd.1.def, 
-        man/snmpconf.1.def, man/snmpd.8.def, man/snmpd.conf.5.def,   
-      man/snmpd.examples.5.def, man/snmpd.internal.5.def,   
-      man/snmpget.1.def, man/snmpgetnext.1.def, man/snmpnetstat.1.def,  
-       man/snmpset.1.def, man/snmptable.1.def, man/snmptest.1.def,   
-      man/snmptranslate.1.def, man/snmptrap.1.def, man/snmptrapd.8.def, 
-        man/snmptrapd.conf.5.def, man/snmpusm.1.def, man/snmpvacm.1.def,
-         man/snmpwalk.1.def, man/variables.5.def:
+   * man/snmptable.1.def, man/snmptest.1.def:
 
    Update man page datestamps to match the latest (non-trivial)
    content change.
 
+2010-10-29 22:31  rstory
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   null out bio pointers after being freed; bail on connection
+   with no ssl pointer
+
 2010-10-29 12:18  bvassche
 
-   * snmplib/container_binary_array.c:
+   * snmplib/cert_util.c, snmplib/container_binary_array.c:
 
    Spelling fix in log texts: containter -> container.
 
@@ -6473,11 +10129,54 @@
 
    More compiler warning fixes.
 
-2010-10-29 07:55  bvassche
+2010-10-28 18:31  nba
 
-   * testing/eval_tools.sh:
+   * snmplib/snmp_openssl.c:
 
-   Backported ISDEFINED from the trunk.
+   Fix const qualifier warning
+
+2010-10-28 17:53  nba
+
+   *  agent/mibgroup/hardware/cpu/cpu_kstat.c,   
+      agent/mibgroup/kernel_sunos5.c:
+
+   Clean out Solaris warnings
+
+2010-10-28 17:52  nba
+
+   * agent/mibgroup/host/hr_disk.c:
+
+   LVM is Linux only
+
+2010-10-28 17:51  nba
+
+   *  agent/mibgroup/host/hr_filesys.c,   
+      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c:
+
+   Avoid char subscripts (signed chars\!)
+
+2010-10-28 17:43  nba
+
+   *  agent/mibgroup/host/data_access/swinst_pkginfo.c,   
+      agent/mibgroup/host/data_access/swrun_procfs_psinfo.c,   
+      agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c,   
+      agent/mibgroup/mibII/at.c, snmplib/snmptsm.c:
+
+   casts and format specifiers in debug output
+
+2010-10-28 17:41  nba
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   Cast to sockaddr to avoid warning
+
+2010-10-28 17:40  nba
+
+   *  agent/mibgroup/hardware/sensors/picld_sensors.c,   
+      agent/mibgroup/ucd-snmp/lmSensors.c:
+
+   Untangle picl from kstat access so it compiles on x86 Solrais
+   10/OpenSolaris
 
 2010-10-28 14:02  dts12
 
@@ -6486,6 +10185,13 @@
    Fix logic of testing for out-of-range enum values.
    Reported by Boris Zweimueller.
 
+2010-10-28 12:23  bvassche
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   Get rid of OpenSSL-related compilation warnings. Should work for
+   both OpenSSL versions 0.9.x and 1.0.x.
+
 2010-10-28 11:46  bvassche
 
    * agent/mibgroup/examples/scalar_int.c:
@@ -6493,6 +10199,12 @@
    Fixed a compiler warning (mismatch between format specification
    and argument) that was introduced in r6562.
 
+2010-10-28 11:41  bvassche
+
+   * agent/mibgroup/mibII/vacm_conf.c:
+
+   Fixed a compiler warning that was introduced in r19550.
+
 2010-10-28 11:32  bvassche
 
    * include/net-snmp/library/tools.h, snmplib/tools.c:
@@ -6508,6 +10220,76 @@
    longer necessary to cast these two arguments (has been reverted
    via r19568).
 
+2010-10-28 09:47  bvassche
+
+   * agent/helpers/cache_handler.c:
+
+   Fixed yet another crash in netsnmp_cache_remove().
+
+2010-10-27 20:37  nba
+
+   * agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c:
+
+   Sizeof has type size_t
+
+2010-10-27 20:35  nba
+
+   * snmplib/snmp_transport.c:
+
+   Remove superfluous cast
+
+2010-10-27 18:40  nba
+
+   * 
+      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_access.c,
+        
+      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_get.c,
+        
+      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_get.h,
+        
+      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_set.c,
+        
+      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_set.h,
+        
+      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_interface.c:
+
+   Sprinkle some unsignedness so vars and params agree on type
+
+2010-10-27 18:38  nba
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c:
+
+   Initialize vars that gcc thinks are uninitialized
+
+2010-10-27 18:36  nba
+
+   * agent/mibgroup/mibII/icmp.c:
+
+   A more meaningful test for MLD_LISTENER_QUERY
+
+2010-10-27 18:35  nba
+
+   *  agent/mibgroup/if-mib/ifTable/ifTable_data_access.c,   
+      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h,   
+      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c,
+         agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h, 
+       
+      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.h:
+
+   prototypes and includes were missing
+
+2010-10-27 18:33  nba
+
+   * apps/encode_keychange.c, apps/snmptest.c:
+
+   Check fgets return
+
 2010-10-25 20:59  dts12
 
    * Makefile.in:
@@ -6522,6 +10304,14 @@
    CHANGES: snmpd: BUG: 3058101: Writeable 'long' instances work on
    64-bit systems, but not writable 'int's
 
+2010-10-25 16:05  dts12
+
+   * snmplib/read_config.c:
+
+   Don't attempt to process unrecognised "ignore*" directives.
+   Pass these through to the appropriate registered config handlers
+   (if any)
+
 2010-10-25 15:56  dts12
 
    * agent/mibgroup/mibII/vacm_conf.c:
@@ -6537,7 +10327,8 @@
 
 2010-10-25 12:54  bvassche
 
-   * testing/tests/T200snmpv2cwalkall:
+   *  testing/fulltests/default/T065agentextend_simple,   
+      testing/fulltests/default/T200snmpv2cwalkall_simple:
 
    CHANGES: Win32: testing: Avoid that T200 fails on known Microsoft
    SNMP extension DLL bugs.
@@ -6553,6 +10344,70 @@
    CHANGES: agent: PATCH: 2959811: from Jan Safranek: Reimplement
    Linux Netlink IPv6 prefix listener.
 
+2010-10-25 07:42  bvassche
+
+   * include/net-snmp/net-snmp-config.h.in:
+
+   Regenerated include/net-snmp/net-snmp-config.h.in.
+
+2010-10-25 06:28  nba
+
+   * agent/mibgroup/if-mib/ifTable/ifTable.h:
+
+   include needed prototypes
+
+2010-10-25 06:16  nba
+
+   *  apps/snmptls.c, include/net-snmp/library/cert_util.h,   
+      snmplib/cert_util.c:
+
+   Adjust types to better match usage
+
+2010-10-25 06:15  nba
+
+   * man/snmpcmd.1.def:
+
+   Reveal hidden -e and -u options
+
+2010-10-25 06:14  nba
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   include needed prototypes
+
+2010-10-25 06:01  nba
+
+   * 
+      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c,
+         agent/mibgroup/sctp-mib/sctpTables_freebsd.c, apps/snmptrapd.c,
+         snmplib/transports/snmpUnixDomain.c:
+
+   include needed prototypes
+
+2010-10-25 06:00  nba
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h,
+         apps/snmptrapd_sql.c:
+
+   const-juggling - we dont like warnings
+
+2010-10-23 11:04  bvassche
+
+   * agent/helpers/cache_handler.c:
+
+   Fixed another crash in netsnmp_cache_remove().
+
+2010-10-23 11:00  bvassche
+
+   * agent/helpers/cache_handler.c:
+
+   CHANGES: agent: Removing the last cache via
+   netsnmp_cache_remove() does no longer trigger a crash.
+
 2010-10-22 09:20  bvassche
 
    * agent/helpers/cache_handler.c:
@@ -6569,11 +10424,11 @@
    Backported r19525: made sure that clean_subtree() deallocates all
    context cache nodes.
 
-2010-10-20 12:51  rstory
+2010-10-20 13:12  nba
 
-   * agent/mibgroup/ip-forward-mib/data_access/route_linux.c:
+   * agent/mibgroup/mibII/tcpTable.c:
 
-   fix ipCidrRouteTable (mask) for little endian systems
+   Fix non-ANSI function heading
 
 2010-10-20 10:34  bvassche
 
@@ -6595,15 +10450,6 @@
    is for this change that it was necessary to introduce the new
    function snmp_sess_session_lookup().
 
-2010-10-20 07:54  bvassche
-
-   * testing/eval_tools.sh:
-
-   CHANGES: testing: Made it possible to analyze all code covered by
-   the regression tests with a dynamic analyzer, at least if that
-   analyzer supports following child processes.
-   (Backported r19283 from the trunk.)
-
 2010-10-19 21:13  nba
 
    * snmplib/parse.c:
@@ -6611,6 +10457,55 @@
    BUG 3079072 from Dave Beal: fix buffer overflow from bad use of
    strncat
 
+2010-10-19 20:55  nba
+
+   * agent/mibgroup/mibII/tcpTable.c:
+
+   PATCH: 3085295 from Bill Fenner: recognize LISTEN state again
+
+2010-10-19 20:09  nba
+
+   * agent/mibgroup/host/data_access/swinst_rpm.c:
+
+   Fix compiler warnings
+
+2010-10-19 20:08  nba
+
+   * agent/mibgroup/host/data_access/swinst_rpm.c:
+
+   Fix returning garbage in hrSWInstalledName (see rev 19484 for
+   further notes)
+
+2010-10-19 19:58  nba
+
+   * agent/mibgroup/host/hrh_filesys.c:
+
+   Protect against unsafe (%) device names
+
+2010-10-19 19:57  nba
+
+   * agent/mibgroup/ucd-snmp/diskio.c:
+
+   Solaris does not use getstat, so dont declare it
+
+2010-10-19 19:56  nba
+
+   * snmplib/transports/snmpTCPIPv6Domain.c:
+
+   udp/tcp confusion in debug handle
+
+2010-10-19 19:54  nba
+
+   * apps/snmptable.c:
+
+   Abort after bad -C? option
+
+2010-10-19 19:53  nba
+
+   * apps/snmptrapd_handlers.c:
+
+   Delete redundant extern declarations
+
 2010-10-19 18:08  bvassche
 
    *  win32/net-snmp/net-snmp-config.h,   
@@ -6619,6 +10514,20 @@
    CHANGES: Win32: building: Avoid that MSVC 2010 prints a warning
    message about redefining EADDRINUSE.
 
+2010-10-19 18:05  bvassche
+
+   * snmplib/tools.c:
+
+   CHANGES: Win32: Avoid that MSVC reports a warning message about
+   redefinition of the malloc() macro during building the Net-SNMP
+   source code.
+
+2010-10-18 10:35  bvassche
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   Backported r19491 to the V5.6 branch (compiler warning fix).
+
 2010-10-18 08:52  bvassche
 
    * agent/snmpd.c:
@@ -6627,6 +10536,13 @@
    window, the snmpd process now stops upon the first key press.
    This makes it easier to debug snmpd.exe for memory leaks.
 
+2010-10-18 06:25  bvassche
+
+   *  win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   Win32: builds again without warnings with MSVC 6.
+
 2010-10-18 06:15  magfr
 
    * include/net-snmp/library/system.h:
@@ -6662,12 +10578,23 @@
 
 2010-10-17 17:33  bvassche
 
-   * snmplib/snmpCallbackDomain.c:
+   * snmplib/transports/snmpCallbackDomain.c:
 
    CHANGES: snmplib: Avoid that Valgrind complains about
    uninitialized data for the buffers returned by
    netsnmp_callback_recv() and netsnmp_callback_hook_build().
 
+2010-10-17 16:57  bvassche
+
+   * agent/helpers/table.c:
+
+   CHANGES: agent: table_helper_handler(), 64-bit architectures:
+   avoid passing a pointer to a 32-bit value to a function that
+   expects a pointer to a 64-bit value (parse_one_oid_index()). Not
+   sure what the implications of this bug were. It might have caused
+   very strange table behavior on 64-bit big endian systems.
+   Found this via Valgrind.
+
 2010-10-17 16:51  bvassche
 
    *  agent/mibgroup/host/data_access/swrun_procfs_psinfo.c,   
@@ -6695,6 +10622,13 @@
    was encountered.
    </quote>
 
+2010-10-17 14:31  bvassche
+
+   * testing/RUNTESTS:
+
+   CHANGES: testing: It is again possible to run an individual test
+   via the script testing/RUNTESTS.
+
 2010-10-17 14:24  bvassche
 
    * agent/mibgroup/agentx/protocol.h:
@@ -6702,12 +10636,70 @@
    Removed an obsolete declaration: the function agentx_build() has
    been removed a long time ago.
 
+2010-10-17 12:01  bvassche
+
+   * snmplib/snmp_openssl.c:
+
+   Follow-up for r19477: made the inserted typecasts portable.
+
+2010-10-17 11:04  bvassche
+
+   *  win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   Follow-up for r19476: fixed a typo.
+
+2010-10-17 09:36  bvassche
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/snmp_openssl.c, snmplib/transports/snmpTLSBaseDomain.c:
+
+   Fixed a few compiler warnings by inserting appropriate casts.
+
+2010-10-17 09:25  bvassche
+
+   *  include/net-snmp/library/tools.h,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   NETSNMP_REMOVE_CONST()-related cleanup.
+
 2010-10-16 08:37  bvassche
 
-   * configure, configure.d/config_modules_agent:
+   *  agent/agent_handler.c, configure,   
+      configure.d/config_modules_agent:
 
    Spelling fix: dulpicate -> duplicate.
 
+2010-10-15 19:17  bvassche
+
+   *  testing/fulltests/support/cagentlib_build,   
+      testing/fulltests/support/cagentlib_run,   
+      testing/fulltests/unit-tests/T005table_dataset_cagentlib.c,   
+      testing/fulltests/unit-tests/T005table_dataset_clib.c,   
+      testing/fulltests/unit-tests/T006snmp_handler_registration_cagentlib.c,
+        
+      testing/fulltests/unit-tests/T006snmp_handler_registration_clib.c:
+
+   CHANGES: testing: Introduced new test type next to capp and clib:
+   cagentlib.
+
+2010-10-15 18:32  bvassche
+
+   * agent/mibgroup/ucd-snmp/loadave.c:
+
+   Fixed a compiler warning.
+
+2010-10-15 12:54  bvassche
+
+   *  testing/fulltests/support/clib_build,   
+      testing/fulltests/unit-tests/T005table_dataset_clib.c:
+
+   CHANGES: testing: Unit tests can now invoke functions from
+   libagent.
+   CHANGES: testing: Added unit test for table_dataset.
+   (Backported from r19450 from the trunk.)
+
 2010-10-15 12:53  bvassche
 
    *  agent/helpers/table.c, agent/helpers/table_data.c,   
@@ -6724,7 +10716,8 @@
 
 2010-10-15 12:30  bvassche
 
-   * agent/agent_handler.c:
+   *  agent/agent_handler.c,   
+      testing/fulltests/unit-tests/T006snmp_handler_registration_clib.c:
 
    Reverted r19460 because it makes some regression tests fail
    (T120proxyget_simple, T121proxyset_simple,
@@ -6740,26 +10733,71 @@
    handler no longer causes a crash (double free) when
    handler->myvoid of the original handler was non-NULL.
 
+2010-10-15 11:32  bvassche
+
+   * testing/fulltests/unit-tests/T006snmp_handler_registration_clib.c:
+
+   Added a unit test for handler registration and deregistration.
+
 2010-10-15 10:56  bvassche
 
-   *  win32/net-snmp/net-snmp-config.h,   
+   *  include/net-snmp/library/tools.h,   
+      win32/net-snmp/net-snmp-config.h,   
       win32/net-snmp/net-snmp-config.h.in:
 
    CHANGES: Win32: building: Builds now correctly with a 64-bit
    compiler.
 
-2010-10-15 10:02  bvassche
+2010-10-14 23:01  magfr
 
-   *  agent/agent_handler.c, man/netsnmp_agent_handler.h.3,   
-      man/netsnmp_handler.3:
+   *  snmplib/snmp_logging.c, snmplib/snmp_transport.c,   
+      snmplib/transports/snmpIPXDomain.c:
 
-   Spelling fix: dulpicates -> duplicates.
+   CHANGES: snmplib: Be const correct over calls to str* functions.
 
-2010-10-15 09:53  bvassche
+2010-10-14 22:57  magfr
 
-   * agent/agent_handler.c:
+   * testing/fulltests/support/clib_build:
 
-   Fixed a spelling error in a source code comment.
+   CHANGES: testing: Generate a normal #line directive as per C99
+   instead of the compiler-specific #<n>-directive.
+
+2010-10-14 14:05  bvassche
+
+   * testing/fulltests/unit-tests/T001defaultstore_clib.c:
+
+   Unit test T001defaultstore_clib.c: Fixed leaks-at-exit.
+
+2010-10-14 08:43  bvassche
+
+   *  testing/fulltests/support/capp_run,   
+      testing/fulltests/support/clib_run:
+
+   CHANGES: testing: It is now possible to analyze the unit tests
+   with Valgrind by setting the environment variables
+   SNMP_SAVE_TMPDIR and DYNAMIC_ANALYZER. An example: (export
+   SNMP_SAVE_TMPDIR=yes DYNAMIC_ANALYZER="valgrind
+   --trace-children=yes --leak-check=full"; cd testing &&
+   ./RUNFULLTESTS -g unit-tests)
+
+2010-10-14 08:40  bvassche
+
+   * testing/fulltests/unit-tests/T004snmp_enum_clib.c:
+
+   Unit test T004snmp_enum_clib.c: added test header / added a test
+   case.
+
+2010-10-14 08:39  bvassche
+
+   * testing/fulltests/unit-tests/T002containers_clib.c:
+
+   Fixed leaks-at-exit in unit test T002containers_clib.c.
+
+2010-10-14 08:38  bvassche
+
+   * testing/fulltests/unit-tests/T001defaultstore_clib.c:
+
+   Fixed a leak-at-exit in unit test T001defaultstore_clib.c.
 
 2010-10-14 08:36  bvassche
 
@@ -6769,13 +10807,92 @@
    se_add_pair_to_list() with a value that already existed in the
    list.
 
+2010-10-14 07:16  bvassche
+
+   * testing:
+
+   Updated Subversion ignore list.
+
+2010-10-14 07:12  bvassche
+
+   *  testing/fulltests/default/T000configure,   
+      testing/fulltests/default/T000configure_simple:
+
+   Made sure that the variable $SNMP_BASEDIR is available in the
+   T000configure test.
+
+2010-10-14 05:36  nba
+
+   * agent/mibgroup/ucd-snmp/lmSensors.c:
+
+   Quell warnings
+
+2010-10-14 03:28  rstory
+
+   *  snmplib/snmptsm.c, snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   set transportSecurityLevel based on ssl session algorithms
+
+2010-10-14 03:26  rstory
+
+   * include/net-snmp/library/snmp_openssl.h, snmplib/snmp_openssl.c:
+
+   add netsnmp_openssl_null_checks
+
+2010-10-14 03:23  rstory
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   cleanup ssl/bio on failed connection
+
+2010-10-14 03:21  rstory
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   quiet compiler warning
+
+2010-10-14 03:18  rstory
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   remove unused var
+
+2010-10-14 03:16  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   fix typo
+
+2010-10-14 03:12  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   check for null before deref
+
 2010-10-13 16:55  hardaker
 
-   * dist/autoconf-version, testing/tests/T000configure:
+   * dist/autoconf-version, testing/fulltests/default/T000configure:
 
    added a autoconf version checking test to catch developers and
    scripts that fail to use the correct autoconf version
 
+2010-10-13 16:30  hardaker
+
+   * include/net-snmp/library/snmp_api.h:
+
+   Patch from Bill Fenner to fix only including the session_api.h
+   file
+
+2010-10-13 16:29  bvassche
+
+   * testing/fulltests/support/clib_build:
+
+   Follow-up for r19421: Made sure that the compiler again reports
+   the proper filename and line number information while compiling
+   unit tests.
+
 2010-10-13 11:53  bvassche
 
    *  win32/libsnmp_dll/Makefile.in, win32/snmpd/Makefile.in,   
@@ -6784,12 +10901,47 @@
    CHANGES: Win32: building: batch build with OpenSSL enabled and
    with recent OpenSSL development files works again.
 
+2010-10-13 09:58  bvassche
+
+   *  net-snmp-config.in, testing/RUNFULLTESTS,   
+      testing/fulltests/support/capp_build,   
+      testing/fulltests/support/capp_run,   
+      testing/fulltests/support/clib_build,   
+      testing/fulltests/support/clib_run:
+
+   CHANGES: Cygwin: Running the unit tests does now work (cd testing
+   && ./RUNFULLTESTS -g unit-tests).
+   CHANGES: MinGW: Running the unit tests does now work (cd testing
+   && ./RUNFULLTESTS -g unit-tests).
+
+2010-10-13 08:00  bvassche
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   Fixed a spelling error in a source code comment.
+
 2010-10-13 07:43  bvassche
 
    * net-snmp-config.in:
 
    Spelling fixes.
 
+2010-10-12 14:02  bvassche
+
+   * include/net-snmp/library/snmp_enum.h:
+
+   Added declaration for se_clear_slist().
+
+2010-10-12 11:12  bvassche
+
+   * testing/fulltests/unit-tests/T004snmp_enum_clib.c:
+
+   Added more test cases to
+   testing/fulltests/unit-tests/T004snmp_enum_clib.c.
+   Verified with Valgrind that everything does now work correctly
+   and that the
+   test program is free of leaks-at-exit.
+
 2010-10-12 11:11  bvassche
 
    * include/net-snmp/library/snmp_enum.h, snmplib/snmp_enum.c:
@@ -6808,13 +10960,195 @@
    not work.
    CHANGES: snmplib:
 
-2010-09-21 00:06  hardaker
+2010-10-12 06:27  bvassche
+
+   *  README.win32, win32/libhelpers, win32/snmptrapd/snmptrapd.dsp,   
+      win32/win32.dsw:
+
+   CHANGES: Win32: PATCH: 3085187: Building via the Microsoft Visual
+   Studio project file (.dsw/.dsp) works again.
+
+2010-10-12 05:35  magfr
+
+   *  include/net-snmp/library/snmp_api.h,   
+      include/net-snmp/library/snmp_client.h,   
+      include/net-snmp/library/snmp_debug.h,   
+      include/net-snmp/library/snmp_logging.h,   
+      include/net-snmp/output_api.h:
+
+   CHANGES: snmplib: Correct the extern "C" declarations to be
+   consistent. Remove commented out code.
+
+2010-10-11 21:41  nba
+
+   * configure:
+
+   run autoconf
+
+2010-10-11 21:39  nba
+
+   *  agent/mibgroup/host/data_access/swinst.h,   
+      agent/mibgroup/host/data_access/swinst_apt.c,   
+      configure.d/config_os_progs:
+
+   Support for hrSWInstalledTable for dpkg/apt-based systems
+
+2010-10-11 20:46  nba
+
+   * mibs/Makefile.mib, mibs/rfclist:
+
+   Update sources for SNMP-TLS-TM-MIB
+
+2010-10-11 20:42  nba
+
+   * configure.d/config_os_headers:
+
+   Check early for picl.h
+
+2010-10-11 20:31  nba
+
+   *  agent/mibgroup/hardware/sensors/hw_sensors.c,   
+      agent/mibgroup/hardware/sensors/hw_sensors.h,   
+      agent/mibgroup/ucd-snmp/lmsensorsMib.c,   
+      include/net-snmp/agent/hardware/sensors.h:
+
+   Fix warnings from lmsensorMib
+
+2010-10-11 20:30  nba
+
+   *  agent/mibgroup/hardware/sensors.h,   
+      agent/mibgroup/hardware/sensors/picld_sensors.c:
+
+   Fix new style lmsensorMib for Solaris (was it ever compiled
+   before)
+
+2010-10-11 20:28  nba
+
+   * agent/mibgroup/ucd-snmp/lmSensors.c:
+
+   Fix lmSensors for Solaris
+
+2010-10-11 20:27  nba
+
+   * agent/mibgroup/hardware/sensors/kstat_sensors.c:
+
+   Fix a Solaris file descriptor leak
+
+2010-10-11 20:25  nba
+
+   * configure.d/config_project_with_enable:
+
+   Make --disable-developer work
+
+2010-10-11 18:23  magfr
+
+   * agent/mibgroup/mibII/system_mib.c:
+
+   CHANGES: snmpd: Update the length of sysObjectID as well as the
+   data when it is set from a configuration file.
+
+2010-10-11 17:58  magfr
+
+   * man/Makefile.in:
+
+   CHANGES: building: from "Niels Baggesen": Some systems do not
+   support the -E flag to grep, use autoconf to find the right egrep
+   at all times.
+
+2010-10-11 14:11  hardaker
+
+   * .:
+
+   create patch branch copy
+
+----------------------------------------------------------------------
+
+Changes: V5.6.RC3 -> V5.6
+
+2010-10-07 20:33  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
+2010-10-06 11:31  nba
+
+   * configure, configure.d/config_project_ipv6_types:
+
+   Fix ipv6 generic case so test matches verification
+
+2010-10-01 16:44  dts12
+
+   * man/variables.5.def:
+
+   Rework description of OID name handling to be
+   not quite so incredibly out of date.
+
+2010-09-22 14:02  hardaker
+
+   * configure:
+
+   erg... really use the right autoconf version by setting the path
+   right
+
+----------------------------------------------------------------------
+
+Changes: V5.6.rc2 -> V5.6.rc3
+
+2010-09-21 23:53  hardaker
+
+   * configure:
+
+   regenerated with proper autoconf version
+
+2010-09-21 23:49  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
+2010-09-21 23:45  hardaker
+
+   * snmplib/cert_util.c:
+
+   verified patch from rstory to fix certificate loading of
+   incomplete chains
+
+2010-09-21 18:07  hardaker
+
+   * snmplib/read_config.c:
+
+   CHANGES: snmplib: patch 3058388: from chrisbolt: don't parse
+   includeAllDisks in the main snmplib routines
+
+2010-09-21 18:06  hardaker
 
    * agent/agent_trap.c:
 
    CHANGES: snmpd: patch 3062526: from mariog85: fix security
    engineID setting in the trapsess directive
 
+2010-09-21 15:13  bvassche
+
+   * README.win32:
+
+   Updated Win32 documentation.
+
+2010-09-20 23:20  hardaker
+
+   * agent/mibgroup/mibII/system_mib.c:
+
+   Patch from Fulko Hew to fix patch 2900078 which broke sysObjectID
+   lengths
+
+2010-09-20 21:32  dts12
+
+   * man/snmpget.1.def, man/snmpgetnext.1.def:
+
+   Document -Cf in the two man pages separately.
+
 2010-09-20 20:23  bvassche
 
    * snmplib/mib.c:
@@ -6822,9 +11156,158 @@
    CHANGES: snmplib: PATCH: 3067540: from joyceanmachine: Fix IPv4
    OID indexes on 64-bit big-endian systems.
 
+2010-09-20 19:25  bvassche
+
+   *  apps/snmpnetstat/main.h,   
+      include/net-snmp/library/snmp_transport.h,   
+      include/net-snmp/library/ucd_compat.h, win32/Configure,   
+      win32/Makefile.in, win32/libagent/Makefile.in,   
+      win32/libagent/libagent.dsp, win32/libhelpers/Makefile.in,   
+      win32/libhelpers/libhelpers.dsp, win32/netsnmpmibs/Makefile.in,   
+      win32/snmpd/Makefile.in, win32/snmpd/snmpd.dsp,   
+      win32/snmptrapd/Makefile.in, win32/snmptrapd/snmptrapd.dsp,   
+      win32/win32.dsw, win32/win32dll.dsw:
+
+   Un-break the MSVC build.
+
+2010-09-20 09:18  bvassche
+
+   * dist/generation-scripts, man, testing, win32:
+
+   Updated Subversion ignore lists.
+
+2010-09-17 10:34  dts12
+
+   *  man/agentxtrap.1.def, man/netsnmp_sess_api.3.def,   
+      man/netsnmp_session_api.3.def, man/snmpbulkget.1.def,   
+      man/snmpbulkwalk.1.def, man/snmpget.1.def, man/snmpgetnext.1.def, 
+        man/snmpset.1.def, man/snmptrap.1.def, man/snmptrapd.8.def,   
+      man/snmpwalk.1.def:
+
+   Remove CMU copyright notice from man pages that were not
+   inherited from CMU-SNMP (and qualify the copyright for
+   those that were).
+
+2010-09-17 09:51  dts12
+
+   *  man/default_store.3.bot, man/netsnmp_agent_api.3.def,   
+      man/snmp.conf.5.def, man/snmp_alarm.3.def, man/snmp_config.5.def, 
+        man/snmpd.conf.5.def, man/snmpd.examples.5.def,   
+      man/snmpd.internal.5.def, man/snmptrapd.conf.5.def:
+
+   Update man page references to reflect new API documentation
+   structure.
+
+2010-09-10 04:23  magfr
+
+   * Makefile.in:
+
+   CHANGES: building: Add new test* entries from the testing
+   Makefile.in to the top-level Makefile.in
+
+2010-09-08 15:41  dts12
+
+   *  man/agentxtrap.1.def, man/default_store.3.top,   
+      man/encode_keychange.1.def, man/fixproc.1.def,   
+      man/mib2c-update.1.def, man/mib2c.1.def, man/mib2c.conf.5.in,   
+      man/net-snmp-config.1.def, man/net-snmp-create-v3-user.1.def,   
+      man/netsnmp_agent_api.3.def, man/netsnmp_config_api.3.def,   
+      man/netsnmp_mib_api.3.def, man/netsnmp_pdu_api.3.def,   
+      man/netsnmp_sess_api.3.def, man/netsnmp_session_api.3.def,   
+      man/netsnmp_trap_api.3.def, man/netsnmp_varbind_api.3.def,   
+      man/snmp-bridge-mib.1, man/snmp.conf.5.def, man/snmp_alarm.3.def, 
+        man/snmp_config.5.def, man/snmpbulkget.1.def,   
+      man/snmpbulkwalk.1.def, man/snmpcmd.1.def, man/snmpconf.1.def,   
+      man/snmpd.8.def, man/snmpd.conf.5.def, man/snmpd.examples.5.def,  
+       man/snmpd.internal.5.def, man/snmpdelta.1.def, man/snmpdf.1.def, 
+        man/snmpget.1.def, man/snmpgetnext.1.def, man/snmpnetstat.1.def,
+         man/snmpset.1.def, man/snmpstatus.1.def, man/snmptable.1.def,  
+       man/snmptest.1.def, man/snmptranslate.1.def, man/snmptrap.1.def, 
+        man/snmptrapd.8.def, man/snmptrapd.conf.5.def,
+      man/snmpusm.1.def,    man/snmpvacm.1.def, man/snmpwalk.1.def,
+      man/tkmib.1.def,    man/traptoemail.1.def, man/variables.5.def:
+
+   Update man page datestamps to match the latest (non-trivial)
+   content change.
+   Suppress forcing of "Berkeley Distribution" footer
+   (Allows Net-SNMP version information to be displayed in the man
+   page)
+
+2010-09-08 05:37  magfr
+
+   * configure, include/net-snmp/net-snmp-config.h.in:
+
+   Regenerated
+
+2010-09-04 06:38  bvassche
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   Fixed a compiler warning that was introduced in r19356 by
+   changing the return
+   type of netsnmp_tlsbase_free_tlsdata() from void* to void.
+
+2010-09-04 06:37  bvassche
+
+   * agent/mibgroup/mibII/system_mib.c:
+
+   Fixed a compiler warning that was introduced in r19322 (patch
+   3044512).
+   The third argument passed to read_objid() was an int instead of
+   size_t.
+   This could have caused memory corruption on 64-bit systems.
+
+2010-09-04 03:09  hardaker
+
+   * CHANGES:
+
+   version update
+
+2010-09-04 03:08  hardaker
+
+   * ChangeLog:
+
+   version update
+
+2010-09-04 01:57  hardaker
+
+   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
+      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
+
+   make depend
+
+2010-09-04 00:59  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
+2010-09-03 22:14  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   fix tlstcp parsing of host names.
+
+2010-09-03 22:13  hardaker
+
+   * agent/mibgroup/host/data_access/swrun_procfs_status.c:
+
+   check the return code of fgets and fopen before inserting the
+   results.
+
+2010-09-03 22:12  hardaker
+
+   * snmplib/snmp_alarm.c:
+
+   Patch from tanders to fix broken alarms after the previous
+   re-entrant patch
+
 2010-09-03 22:05  hardaker
 
-   * snmplib/snmpUnixDomain.c:
+   * snmplib/transports/snmpUnixDomain.c:
 
    CHANGES: snmplib: patch 3058645: from jorisesaturnus: modified
    version of the patch to use MSG_DONTWAIT for the unix domain
@@ -6844,12 +11327,140 @@
    CHANGES: snmpd: PATCH: 3053428: from takevos: fix
    get_pid_from_inode when the inode is not found.
 
+2010-09-03 20:20  hardaker
+
+   * snmplib/snmp_api.c:
+
+   remove the duplicate return before the error codes get set.
+
+2010-09-01 18:04  magfr
+
+   * agent/mibgroup/hardware/cpu/cpu.c:
+
+   CHANGES: snmpd: Log before returning.
+
+2010-09-01 02:43  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   TLS send_notify on closure and some memory clean-up patches
+
+2010-08-31 17:58  hardaker
+
+   * snmplib/snmp_api.c:
+
+   Only print the security/context EngineID mismatch note under USM
+
+2010-08-25 15:13  rstory
+
+   * CHANGES:
+
+   remove reference to reverted patch 3042765
+
+2010-08-25 15:13  rstory
+
+   * acconfig.h:
+
+   add note on where to find content used to generate
+   net-snmp-config.h.in
+
+2010-08-25 02:45  rstory
+
+   * snmplib/snmp_client.c:
+
+   revert r19342, patch 3042765, which broke client tcp disconnect
+   handling
+
+2010-08-25 02:45  rstory
+
+   * snmplib/cert_util.c:
+
+   fix more code broken by 'compiler warning fix' in r19179
+
+2010-08-25 02:45  rstory
+
+   * testing/fulltests/tls/STlsUsers:
+
+   check for conf errors after agent startup; enable logTimestamp;
+   make sure
+   all cert name/tags are unique
+
+2010-08-24 21:04  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   fix error string to discuss the right failed openssl new
+   invocation
+
 2010-08-24 05:37  magfr
 
    * apps/snmpusm.c:
 
    CHANGES: snmpusm: Correct ifdefs, remove dead variables.
 
+2010-08-19 21:22  hardaker
+
+   * CHANGES, NEWS:
+
+   version update
+
+2010-08-19 21:20  hardaker
+
+   * ChangeLog:
+
+   version update
+
+2010-08-19 21:11  hardaker
+
+   * agent/Makefile.depend, agent/mibgroup/Makefile.depend:
+
+   make depend
+
+2010-08-19 21:10  hardaker
+
+   * include/net-snmp/system/nto-qnx6.h:
+
+   // -> C comments
+
+2010-08-19 20:36  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
+2010-08-19 20:14  hardaker
+
+   * snmplib/snmp_client.c:
+
+   CHANGES: snmplib: PATCH 3042765: from mehaf: make
+   snmp_synch_response_cb() re-entrant
+
+2010-08-19 20:14  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   turn off cookie exchanges until a complete code set can be
+   written to support it based on the required function callbacks
+
+2010-08-17 18:31  rstory
+
+   * agent/snmpd.c:
+
+   add missing call to store persistent data as needed
+
+2010-08-17 18:31  rstory
+
+   * snmplib/mib.c:
+
+   CHANGES: snmplib: when displaying a byte as single digit hex
+   value, default to
+   prefixing with 0 unless there is a seperator or addition hint
+   data
+
 2010-08-17 10:31  bvassche
 
    * apps/snmpusm.c:
@@ -6858,6 +11469,13 @@
    when
    compiling without SSL support.
 
+2010-08-16 23:11  hardaker
+
+   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.h:
+
+   CHANGES: snmpd: patch 2790249: from willpwillp: reduce cache time
+   for the iftable to 3seconds to increase accuracy
+
 2010-08-16 16:26  hardaker
 
    * perl/TrapReceiver/TrapReceiver.xs:
@@ -6872,6 +11490,26 @@
    CHANGES: snmpd: patch 2825653: from bru5ce: fix sendmail.cf
    parsing in certain conditions
 
+2010-08-16 10:16  dts12
+
+   * man/Makefile.in:
+
+   Build netsnmp_agent_api.3 man page from template
+
+2010-08-16 09:20  dts12
+
+   * agent/agent_registry.c:
+
+   CHANGES: snmpd: PATCH: 2911361: Documentation (Provided by Tomasz
+   Lis)
+
+2010-08-16 08:06  dts12
+
+   * agent/agent_registry.c:
+
+   CHANGES: snmpd: PATCH: 2911361: Re-order code to group related
+   functions together
+
 2010-08-16 07:42  dts12
 
    * perl/SNMP/SNMP.xs:
@@ -6892,6 +11530,47 @@
    CHANGES: snmpd: PATCH: 2904900: Documentation plus assorted
    handler code fixes
 
+2010-08-14 09:28  dts12
+
+   *  man/Makefile.in, man/netsnmp_config_api.3.def,   
+      man/netsnmp_mib_api.3.def, man/netsnmp_pdu_api.3.def,   
+      man/netsnmp_sess_api.3.def, man/netsnmp_session_api.3.def,   
+      man/netsnmp_trap_api.3.def, man/netsnmp_varbind_api.3.def,   
+      man/snmp_alarm.3.def:
+
+   Restore agent API man page
+   Don't try to extract multiple man page links per line
+   (which runs into problems with OS-specific line endings).
+   Instead, ensure the man page NAME section lists one
+   routine per line
+
+2010-08-13 23:50  hardaker
+
+   * man/Makefile.in:
+
+   fix broken Makefile after man page moves
+
+2010-08-13 23:50  hardaker
+
+   * mibs/SNMP-TLS-TM-MIB.txt, mibs/rfclist:
+
+   updated TLS MIB to current copy
+
+2010-08-13 23:50  hardaker
+
+   *  snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   replaced RFC comment number
+
+2010-08-13 23:50  hardaker
+
+   * include/net-snmp/library/snmp_alarm.h, snmplib/snmp_alarm.c:
+
+   CHANGES: snmplib: patch: 3042770: from mehaf: Made run_alarms()
+   reentrant
+
 2010-08-13 23:44  hardaker
 
    * agent/mibgroup/mibII/system_mib.c:
@@ -6899,38 +11578,497 @@
    CHANGES: snmpd: PATCH: 3044512: from philwebster: fix sysobjectid
    directive.
 
-2010-08-13 12:22  dts12
+2010-08-13 19:00  rstory
 
-   * local/mib2c.table_data.conf:
+   *  testing/fulltests/support/simple_TESTCONF.sh,   
+      testing/fulltests/tls/STsmPrefix:
 
-   Fix handling of index values in cache load function.
+   use 127.0.0.1 instead of localhost as default SNMP_TEST_DEST so
+   TLS tests work
 
-2010-08-10 04:59  magfr
+2010-08-13 18:50  hardaker
+
+   *  include/net-snmp/session_api.h, snmplib/snmp_api.c,   
+      snmplib/snmp_client.c:
+
+   CHANGES: snmplib: implemented a fix for the issue reported in
+   patch #3042770. Created a snmp_select_info_flags function, and
+   similar, that allow for alarms to not be run. This is then used
+   in the synch_response functions to avoid 100% CPU loops
+
+2010-08-13 18:50  hardaker
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h,
+         apps/snmptrapd.c:
+
+   make snmptrapd register the certtosecname table in the agentx
+   registrations
+
+2010-08-13 18:49  hardaker
+
+   * local/mib2c.conf:
+
+   minor wording additions
+
+2010-08-13 15:04  hardaker
+
+   *  agent/mibgroup/hardware/cpu/cpu_perfstat.c,   
+      agent/mibgroup/hardware/memory/memory_aix.c,   
+      agent/mibgroup/host/hr_storage.c, agent/mibgroup/mibII/icmp.c,   
+      agent/mibgroup/mibII/ip.c, agent/mibgroup/mibII/tcp.c,   
+      agent/mibgroup/mibII/udp.c, agent/mibgroup/ucd-snmp/diskio.c,   
+      agent/mibgroup/ucd-snmp/loadave.c,   
+      agent/mibgroup/ucd-snmp/memory_aix4.c,   
+      agent/mibgroup/ucd-snmp/vmstat_aix4.c:
+
+   CHANGES: aix: PATCH: 2886598: from exsnafu: Header fixes for
+   compiling on AIX6
+
+2010-08-13 15:04  hardaker
+
+   *  agent/mibgroup/host/hr_filesys.c,   
+      agent/mibgroup/host/hr_storage.c, apps/snmpnetstat/inet6.c,   
+      configure, configure.d/config_os_functions,   
+      configure.d/config_os_headers, configure.d/config_os_libs,   
+      configure.d/config_os_struct_members,   
+      include/net-snmp/net-snmp-config.h.in,   
+      include/net-snmp/system/nto-qnx6.h:
+
+   NEWS: ports: PATCH: 2836895: from seanboudreau: support for QNX6
+
+2010-08-13 14:33  dts12
+
+   *  man/Makefile.in, man/netsnmp_agent_api.3.def,   
+      man/netsnmp_config_api.3.def, man/netsnmp_mib_api.3.def,   
+      man/netsnmp_pdu_api.3.def, man/netsnmp_sess_api.3.def,   
+      man/netsnmp_session_api.3.def, man/netsnmp_trap_api.3.def,   
+      man/netsnmp_varbind_api.3.def:
+
+   'enforce netsnmp prefixes
+
+2010-08-13 14:29  dts12
+
+   * man/netsnmp_varbind_api.3.def, man/varbind_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:29  dts12
+
+   * man/netsnmp_trap_api.3.def, man/snmp_trap_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:28  dts12
+
+   * man/netsnmp_sess_api.3.def, man/snmp_sess_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:28  dts12
+
+   * man/netsnmp_agent_api.3.def, man/snmp_agent_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:28  dts12
+
+   * man/netsnmp_session_api.3.def, man/session_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:27  dts12
+
+   * man/netsnmp_pdu_api.3.def, man/pdu_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:27  dts12
+
+   * man/mib_api.3.def, man/netsnmp_mib_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:27  dts12
+
+   * man/config_api.3.def, man/netsnmp_config_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:20  dts12
+
+   * Makefile.in, doxygen.conf:
+
+   Don't automatically generate man pages
+
+2010-08-13 14:18  dts12
+
+   *  man/snmp_api_errstring.3, man/snmp_close.3, man/snmp_error.3,   
+      man/snmp_free_pdu.3, man/snmp_open.3, man/snmp_perror.3,   
+      man/snmp_read.3, man/snmp_select_info.3, man/snmp_send.3,   
+      man/snmp_sess_async_send.3, man/snmp_sess_close.3,   
+      man/snmp_sess_error.3, man/snmp_sess_init.3,   
+      man/snmp_sess_open.3, man/snmp_sess_perror.3,   
+      man/snmp_sess_read.3, man/snmp_sess_select_info.3,   
+      man/snmp_sess_send.3, man/snmp_sess_session.3,   
+      man/snmp_sess_timeout.3, man/snmp_set_mib_warnings.3,   
+      man/snmp_set_save_descriptions.3, man/snmp_timeout.3:
+
+   Remove redundant man page links
+   (Should be generated automatically, but don't exist any more
+   anyway)
+
+2010-08-13 14:13  dts12
+
+   *  man/Makefile.in, man/add_mibdir.3, man/add_module_replacement.3,  
+       man/get_module_node.3, man/init_mib.3, man/init_mib_internals.3, 
+        man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_example_scalar_int.3, man/netsnmp_handler.3,   
+      man/netsnmp_instance.3, man/netsnmp_iterator_info_s.3,   
+      man/netsnmp_leaf.3, man/netsnmp_library.3,   
+      man/netsnmp_mib_handler_methods.3, man/netsnmp_mib_maintenance.3, 
+        man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_set_data.3,   
+      man/netsnmp_snmp_agent.3, man/netsnmp_snmp_alarm.3,   
+      man/netsnmp_snmp_client.3, man/netsnmp_snmp_logging.3,   
+      man/netsnmp_snmp_pdu.3, man/netsnmp_snmp_session.3,   
+      man/netsnmp_stash_cache.3, man/netsnmp_stash_to_next.3,   
+      man/netsnmp_table.3, man/netsnmp_table_array.3,   
+      man/netsnmp_table_container.3, man/netsnmp_table_data.3,   
+      man/netsnmp_table_dataset.3, man/netsnmp_table_generic.3,   
+      man/netsnmp_table_indexes.3, man/netsnmp_table_iterator.3,   
+      man/netsnmp_table_iterator.h.3, man/netsnmp_table_maintenance.3,  
+       man/netsnmp_table_row.3, man/netsnmp_table_rows.3,   
+      man/netsnmp_tdata.3, man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3, man/print_description.3, man/print_mib.3,  
+       man/print_objid.3, man/print_value.3, man/print_variable.3,   
+      man/read_all_mibs.3, man/read_mib.3, man/read_module.3,   
+      man/read_module_node.3, man/read_objid.3, man/shutdown_mib.3:
+
+   Remove Doxygen-generated man pages, and those linking
+   individual routines to the appropriate man page.
+   (These are better generated dynamically)
+
+2010-08-13 12:19  dts12
+
+   * local/mib2c.iterate.conf, local/mib2c.table_data.conf:
+
+   Prompt for whether to generate caching code or not.
+
+2010-08-13 12:19  dts12
+
+   * local/mib2c.conf:
+
+   Rework guidance questions when selecting the best table framework
+   to use.
+   Ensure table handling code doesn't overwrite scalar handling
+   code.
+   Check that the starting point is suitable for MfD framework.
+
+2010-08-12 15:40  rstory
+
+   * snmplib/cert_util.c:
+
+   fix code broken by 'compiler warning fix' in r19179
+
+2010-08-12 15:39  rstory
+
+   * agent/mibgroup/snmpv3mibs.h:
+
+   fix typo in comment
+
+2010-08-11 22:08  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   remove a duplicate value check
+
+2010-08-11 22:08  hardaker
+
+   * testing/fulltests/tls/STlsUsers:
+
+   add a test where we can trust a CA-signed cert and we don't trust
+   the CA
+
+2010-08-11 22:08  hardaker
+
+   * testing/fulltests/tls/STlsUsers:
+
+   test a directly mapped CA certificate
+
+2010-08-11 22:08  hardaker
+
+   * mibs/UCD-SNMP-MIB.txt:
+
+   change the laConfig to read-write to match the patch
+
+2010-08-11 22:07  hardaker
+
+   * agent/mibgroup/ucd-snmp/loadave.c:
+
+   NEWS: snmpd: PATCH: 2931446: from ahmake: make the load averages
+   writable.
+
+2010-08-11 06:43  magfr
+
+   *  testing/fulltests/snmpv3/T010scapitest_capp.c,   
+      testing/fulltests/snmpv3/T020hashtests_capp.c,   
+      testing/fulltests/snmpv3/T040keymanagetest_capp.c:
+
+   CHANGES: Silence some compilation warnings from test cases.
+
+2010-08-09 21:09  magfr
 
    * perl/SNMP/SNMP.xs:
 
    CHANGES: Handle embedded %'s in the result message.
 
+2010-08-09 21:07  magfr
+
+   * local/mib2c.raw-table.conf:
+
+   CHANGES: Do no double declare the index values.
+
 2010-08-05 11:49  dts12
 
    * agent/mibgroup/mibII/vacm_conf.c:
 
    Update "auth*" usage message with context support
 
-2010-08-03 07:27  dts12
+2010-08-02 20:08  dts12
+
+   * agent/mibgroup/hardware/fsys/fsys_mntctl.c:
+
+   Fix two silly mistakes.
+
+2010-08-02 14:18  dts12
 
    * agent/mibgroup/hardware/fsys/fsys_mntctl.c:
 
    AIX filesystem types are tagged as integers, not strings.
-   Fix a silly mistake.
+
+2010-08-02 13:49  tanders
+
+   * configure, configure.d/config_os_progs:
+
+   fix Perl system() configure check to work reliably on systems
+   that lack
+   Perl
+
+2010-08-02 11:08  bvassche
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   CHANGES: testing: made it possible to analyze all code covered by
+   the regression tests with a dynamic analyzer, at least if that
+   analyzer supports following child processes. An example:
+   
+   rm -rf /tmp/snmp-test-*
+   make -s
+   SNMP_SAVE_TMPDIR=yes DYNAMIC_ANALYZER="valgrind
+   --trace-children=yes --track-origins=yes" make -s test
+   grep -i uninitialised /tmp/snmp-test-* | xargs less
+
+2010-08-02 11:02  bvassche
+
+   * snmplib/snmp_transport.c, snmplib/transports/snmpTCPDomain.c:
+
+   Fixed the following two Valgrind complaints:
+   
+   Conditional jump or move depends on uninitialised value(s)
+   at 0x6D702E0: vfprintf (in /lib64/libc-2.11.2.so)
+   by 0x6D99D11: vsnprintf (in /lib64/libc-2.11.2.so)
+   by 0x6D7A412: snprintf (in /lib64/libc-2.11.2.so)
+   by 0x6E14437: inet_ntoa (in /lib64/libc-2.11.2.so)
+   by 0x5E5E219: netsnmp_ipv4_fmtaddr (snmpIPv4BaseDomain.c:215)
+   by 0x5E65717: netsnmp_tcp_fmtaddr (snmpTCPDomain.c:70)
+   by 0x5E567EC: netsnmp_transport_peer_string
+   (snmp_transport.c:224)
+   by 0x5E2479A: _sess_process_packet (snmp_api.c:5441)
+   by 0x5E25E37: _sess_read (snmp_api.c:6037)
+   by 0x5E261DA: snmp_sess_read2 (snmp_api.c:6149)
+   by 0x5E26282: snmp_read2 (snmp_api.c:5740)
+   by 0x404DE4: main (snmpd.c:1227)
+   Uninitialised value was created by a heap allocation
+   at 0x4C270A5: malloc (vg_replace_malloc.c:236)
+   by 0x5E65739: netsnmp_tcp_accept (snmpTCPDomain.c:82)
+   by 0x5E25383: _sess_read (snmp_api.c:5786)
+   by 0x5E261DA: snmp_sess_read2 (snmp_api.c:6149)
+   by 0x5E26282: snmp_read2 (snmp_api.c:5740)
+   by 0x404DE4: main (snmpd.c:1227)
+   
+   Conditional jump or move depends on uninitialised value(s)
+   at 0x6F7B2E0: vfprintf (in /lib64/libc-2.11.2.so)
+   by 0x6FA4D11: vsnprintf (in /lib64/libc-2.11.2.so)
+   by 0x6F85412: snprintf (in /lib64/libc-2.11.2.so)
+   by 0x701F437: inet_ntoa (in /lib64/libc-2.11.2.so)
+   by 0x56FA219: netsnmp_ipv4_fmtaddr (snmpIPv4BaseDomain.c:215)
+   by 0x5701717: netsnmp_tcp_fmtaddr (snmpTCPDomain.c:70)
+   by 0x56F27EC: netsnmp_transport_peer_string
+   (snmp_transport.c:224)
+   by 0x56F294F: netsnmp_transport_send (snmp_transport.c:248)
+   by 0x56BC487: snmp_sess_async_send (snmp_api.c:5204)
+   by 0x56BC651: snmp_async_send (snmp_api.c:4998)
+   by 0x56BC677: snmp_send (snmp_api.c:4984)
+   by 0x5698440: snmp_synch_response_cb (snmp_client.c:1006)
+   Uninitialised value was created by a heap allocation
+   at 0x4C270A5: malloc (vg_replace_malloc.c:236)
+   by 0x5701B3E: netsnmp_tcp_transport (snmpTCPDomain.c:163)
+   by 0x5701E6F: netsnmp_tcp_create_tstring (snmpTCPDomain.c:305)
+   by 0x56F3804: netsnmp_tdomain_transport_full
+   (snmp_transport.c:601)
+   by 0x56F3ACC: netsnmp_transport_open_client
+   (snmp_transport.c:669)
+   by 0x54344F6: subagent_open_master_session (subagent.c:758)
+   by 0x54349C8: agentx_reopen_session (subagent.c:869)
+   by 0x5434D00: subagent_startup (subagent.c:99)
+   by 0x56EAEB7: snmp_call_callbacks (callback.c:338)
+   by 0x56DE6FB: read_configs (read_config.c:1018)
+   by 0x56C287E: init_snmp (snmp_api.c:850)
+   by 0x40477B: main (snmptrapd.c:1048)
+
+2010-08-01 06:11  bvassche
+
+   * CHANGES, NEWS:
+
+   Fixed spelling errors reported by ispell -l.
 
 2010-08-01 06:00  bvassche
 
-   * snmplib/snmp_enum.c:
+   *  snmplib/snmp_enum.c,   
+      testing/fulltests/unit-tests/T004snmp_enum_clib.c:
 
    Fixed a typo in a text string in a unit test: resturant ->
    restaurant.
 
+2010-08-01 05:53  bvassche
+
+   * include/net-snmp/library/snmp_enum.h:
+
+   Documented behavior of se_add_pair_to_slist().
+
+2010-07-31 23:50  tanders
+
+   * include/net-snmp/system/darwin10.h:
+
+   Follow-up for r19266: add missing header file to support Mac OS X
+   10.6
+   (Snow Leopard - "darwin10")
+
+2010-07-31 20:38  hardaker
+
+   * CHANGES:
+
+   version update
+
+2010-07-31 20:35  hardaker
+
+   * ChangeLog:
+
+   version update
+
+2010-07-31 20:31  hardaker
+
+   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
+      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
+
+   make depend
+
+2010-07-31 20:24  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+2010-07-31 20:16  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
+2010-07-31 20:11  hardaker
+
+   * dist/makerelease.xml:
+
+   changed the name of the readme section to call out NEWS-too
+
+2010-07-31 20:10  hardaker
+
+   * NEWS:
+
+   added missing news items
+
 2010-07-30 13:06  hardaker
 
    * snmplib/snmp_client.c:
@@ -6945,6 +12083,87 @@
    CHANGES: python: patch 3035578: from sws: keep error codes up to
    date
 
+2010-07-29 15:48  dts12
+
+   * configure:
+
+   Add support for Mac OS X 10.6 (Snow Leopard - "darwin10")
+   (On the assumption that this is the same as Mac OS X 10.5
+   (Leopard - "darwin9"))
+
+2010-07-29 15:47  dts12
+
+   *  Makefile.in, configure.d/config_os_progs,   
+      configure.d/config_project_perl_python:
+
+   Add support for Mac OS X 10.6 (Snow Leopard - "darwin10")
+   (On the assumption that this is the same as Mac OS X 10.5
+   (Leopard - "darwin9"))
+
+2010-07-29 15:03  dts12
+
+   * include/net-snmp/output_api.h:
+
+   Provide a definition of 'va_list' for varargs-based APIs
+
+2010-07-29 14:58  dts12
+
+   *  acconfig.h, agent/auto_nlist.c, agent/mibgroup/hardware/cpu.h,   
+      agent/mibgroup/hardware/fsys.h, agent/mibgroup/hardware/memory.h, 
+        agent/mibgroup/host/data_access/swrun.h,   
+      agent/mibgroup/host/hr_filesys.c,   
+      agent/mibgroup/host/hr_storage.c, agent/mibgroup/host/hr_swrun.c, 
+        agent/mibgroup/host/hrh_filesys.c, agent/mibgroup/mibII/icmp.c, 
+        agent/mibgroup/mibII/interfaces.c, agent/mibgroup/mibII/ip.c,   
+      agent/mibgroup/mibII/tcp.c, agent/mibgroup/mibII/udp.c,   
+      agent/mibgroup/ucd-snmp/diskio.c,   
+      agent/mibgroup/ucd-snmp/loadave.c,   
+      agent/mibgroup/ucd-snmp/proc.c, configure,   
+      configure.d/config_os_progs,   
+      include/net-snmp/net-snmp-config.h.in, snmplib/system.c:
+
+   Add preliminary support for AIX 7
+   (on the assumption that this is identical to AIX 6)
+
+2010-07-29 14:56  dts12
+
+   * configure, configure.d/config_project_perl_python:
+
+   Disable embedded perl by default on architecures where
+   this seems to cause problems (HP-UX & Mac OS X)
+
+2010-07-29 11:13  dts12
+
+   * snmplib/read_config.c:
+
+   Guard against blank 'include*' lines.
+   Handle relative 'includeFile' paths
+
+2010-07-29 10:47  dts12
+
+   * include/net-snmp/library/read_config.h, snmplib/read_config.c:
+
+   Return an indication of whether config files are actually
+   processed.
+   Report problems with failing to include config files.
+
+2010-07-28 14:44  dts12
+
+   *  include/net-snmp/config_api.h,   
+      include/net-snmp/library/snmp_api.h,   
+      include/net-snmp/library/snmp_client.h,   
+      include/net-snmp/library/snmp_debug.h,   
+      include/net-snmp/library/snmp_logging.h,   
+      include/net-snmp/mib_api.h, include/net-snmp/output_api.h,   
+      include/net-snmp/pdu_api.h, include/net-snmp/session_api.h,   
+      include/net-snmp/varbind_api.h, man/config_api.3.def,   
+      man/mib_api.3.def, man/session_api.3.def, man/varbind_api.3.def,  
+       win32/libsnmp_dll/libsnmp.def:
+
+   Bring man page documentation, header files and Windows DLL
+   definitions
+   of top-level public API calls into line with each other.
+
 2010-07-28 14:40  dts12
 
    * snmplib/snmp_api.c:
@@ -6962,6 +12181,30 @@
    Use newer SMIv2 versions (which include suitable display hints)
    rather than the original RFC1213 MIB (which doesn't)
 
+2010-07-28 14:10  dts12
+
+   * snmplib/read_config.c:
+
+   Fix indentation for 'includeSearch' processing code.
+
+2010-07-28 14:09  dts12
+
+   * snmplib/read_config.c:
+
+   Extend 'include' config file processing to cover three
+   different modes of working:
+   - look for the file on the config search path
+   - include the specified file by name
+   - ioad the contents of the specified directory
+   Use different config tokens to distinguish these cases.
+
+2010-07-27 11:12  hardaker
+
+   * agent/kernel.c, agent/kernel.h, agent/snmp_vars.c:
+
+   CHANGES: snmpd: patch 2912520: from listom: Free kmem references
+   on shutdown
+
 2010-07-27 10:54  hardaker
 
    * mibs/SMUX-MIB.txt:
@@ -6969,6 +12212,48 @@
    CHANGES: mibs: patch 2974716: from bvassche: fix issues in the
    SMUX-MIB
 
+2010-07-27 08:54  hardaker
+
+   * configure.d/config_modules_lib:
+
+   include the new security-hedaers module
+
+2010-07-27 08:54  hardaker
+
+   * local/snmp-bridge-mib:
+
+   remote debugging/processing stderr output
+
+2010-07-27 08:54  hardaker
+
+   * local/snmp-bridge-mib:
+
+   CHANGES: snmpd: patch: 3028923: from jenso: new copy of the
+   bridge-mib perl implementation
+
+2010-07-27 08:31  hardaker
+
+   *  Makefile.in, configure.d/config_modules_security_modules,   
+      dist/generation-scripts/gen-security-headers.in:
+
+   separate out the security header/init generation
+
+2010-07-27 08:31  hardaker
+
+   * configure.d/config_modules_transports:
+
+   transport configure portion
+
+2010-07-27 08:30  hardaker
+
+   *  Makefile.in, configure, configure.ac,   
+      configure.d/config_modules_lib, dist/generation-scripts,   
+      dist/generation-scripts/gen-transport-headers.in,   
+      dist/generation-scripts/gen-variables.in:
+
+   move transport header generation to a separate file and create an
+   external separate script for generating it
+
 2010-07-27 08:14  jsafranek
 
    *  agent/mibgroup/hardware/fsys/fsys_mntent.c,   
@@ -6977,6 +12262,14 @@
    CHANGES: snmpd: report gfs filesystems in hrStorageTable and
    hrFSTable.
 
+2010-07-24 15:42  dts12
+
+   * snmplib/read_config.c:
+
+   Don't lose track of which config file was being parsed,
+   when processing an included config file.
+   Fixes a bug with reporting later config errors.
+
 2010-07-24 15:36  dts12
 
    * snmplib/snmp_transport.c:
@@ -6985,7 +12278,74 @@
    when opening a new SNMP session.
    Fixes a bug with reporting later config errors.
 
-2010-07-21 18:03  nba
+2010-07-23 03:12  hardaker
+
+   * dist/makerelease.xml:
+
+   add the TLS modules to the list of test modules
+
+2010-07-21 19:25  nba
+
+   * agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c:
+
+   Fix typo in doxygen comment
+
+2010-07-21 19:24  nba
+
+   * agent/mibgroup/if-mib/data_access/interface_sysctl.c:
+
+   Fix typo in speed computation
+
+2010-07-21 19:21  nba
+
+   * snmplib/snmp_secmod.c:
+
+   Include generated security-includes.h
+
+2010-07-21 19:20  nba
+
+   *  include/net-snmp/library/snmpksm.h,   
+      include/net-snmp/library/snmptsm.h:
+
+   Fix init func name (copy-paste glitch)
+
+2010-07-21 19:18  nba
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   Remove superfluous semicolon
+
+2010-07-21 19:18  nba
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   Out of order declaration
+
+2010-07-21 19:17  nba
+
+   * snmplib/snmp_logging.c:
+
+   Log error on file open error
+
+2010-07-21 19:16  nba
+
+   * configure.d/config_modules_lib:
+
+   Speling error
+
+2010-07-21 18:10  nba
+
+   * mibs/ianalist, mibs/rfclist, mibs/rfcmibs.diff:
+
+   Update for current RFCs
+
+2010-07-21 18:08  nba
+
+   * mibs/IANAifType-MIB.txt:
+
+   Current version from IANA
+
+2010-07-21 18:05  nba
 
    * agent/mibgroup/ucd-snmp/diskio.c:
 
@@ -7000,18 +12360,160 @@
 
 2010-07-20 07:32  jsafranek
 
-   *  agent/snmpd.c, apps/snmptranslate.c, apps/snmptrapd.c,   
-      man/snmpcmd.1.def, man/snmptranslate.1.def, man/snmptrapd.8.def,  
-       snmplib/snmp_parse_args.c:
+   *  agent/snmpd.c, apps/agentxtrap.c, apps/snmptranslate.c,   
+      apps/snmptrapd.c, man/snmpcmd.1.def, man/snmptranslate.1.def,   
+      man/snmptrapd.8.def, snmplib/snmp_parse_args.c:
 
    Describe -D usage as -D[TOKEN] instead of -D [TOKEN]
 
+2010-07-17 15:10  rstory
+
+   * mibs/SNMP-TLS-TM-MIB.txt:
+
+   update display hint to some less ambiguous (and that works with
+   our lib)
+
+2010-07-17 04:13  rstory
+
+   * testing/Makefile.in:
+
+   fix testsimple for builddir!=srcdir
+
+2010-07-17 04:12  rstory
+
+   * testing/Makefile.in:
+
+   add testsimple target
+
+2010-07-16 19:21  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   release iterator when done with it
+
 2010-07-15 18:28  hardaker
 
    * snmplib/snmpusm.c:
 
    CHANGES: snmplib: fix issue with USM using inactive users
 
+2010-07-15 01:35  rstory
+
+   * agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c:
+
+   don't use strndup (portability)
+
+2010-07-15 01:35  rstory
+
+   * snmplib/cert_util.c:
+
+   include appropriate string header; define NAME_MAX if not already
+   defined;
+   don't use strndup (portability)
+
+2010-07-15 01:35  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   check that some newer openssl macros are defined before using
+   them; include
+   appropriate string header
+
+2010-07-15 01:35  rstory
+
+   *  configure, configure.d/config_os_libs,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   check for dtls support in openssl
+
+2010-07-15 01:34  rstory
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   don't compile dtls domain if no dtls support in openssl
+
+2010-07-15 01:34  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   ifdef protection for later sha algorithms
+
+2010-07-15 01:34  rstory
+
+   *  include/net-snmp/system/darwin.h,   
+      include/net-snmp/system/darwin7.h,   
+      include/net-snmp/system/darwin8.h,   
+      include/net-snmp/system/darwin9.h:
+
+   darwin openssl does not support more recent sha algorithms
+
+2010-07-15 01:33  rstory
+
+   * agent/mibgroup/target/target.c:
+
+   fix typo in ifdef test
+
+2010-07-15 01:33  rstory
+
+   * agent/mibgroup/if-mib/ifTable/ifTable.c:
+
+   fix cut-n-paste error in included file name
+
+2010-07-14 15:08  rstory
+
+   * agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c:
+
+   fix the fix: put PRIz spec in correct place
+
+2010-07-14 15:03  rstory
+
+   * testing/fulltests/tls/STlsUsers:
+
+   specify SNMP version on commandline
+
+2010-07-14 15:03  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c:
+
+   quiet compiler
+
+2010-07-14 15:02  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c:
+
+   quiet compiler warnings
+
+2010-07-13 20:03  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c,
+         apps/snmptls.c, include/net-snmp/library/cert_util.h:
+
+   include ssl.h before cert_util.h
+
+2010-07-13 20:03  rstory
+
+   * snmplib/cert_util.c:
+
+   add debug output for found cert
+
+2010-07-13 16:24  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   fix typo in log msg
+
 2010-07-12 10:26  bvassche
 
    * agent/mibgroup/mibII/interfaces.c:
@@ -7020,6 +12522,52 @@
    interfaces table does not trigger out-of-range array accesses
    (was detected by BoundsChecker).
 
+2010-07-12 10:21  bvassche
+
+   * agent/mibgroup/mibII/vacm_vars.c:
+
+   Fixed a dangling-pointer-read that was introduced in r19018. In
+   r19018 the type of groupSubtreeLen was changed from int to
+   size_t, which changed the behavior of the loop "while
+   (groupSubtreeLen-- > 0) ...": instead of not executing the loop
+   body when groupSubtreeLen was negative, r19018 caused the body of
+   that loop to be executed. Detected by running snmpd under
+   BoundsChecker while performing a MIB walk.
+
+2010-07-12 10:12  bvassche
+
+   * agent/mibgroup/mibII/at.c:
+
+   Reverted r19047 (which was wrong) and implemented a proper fix
+   for the compiler warnings about signed/unsigned mismatches.
+
+2010-07-12 10:09  bvassche
+
+   * agent/snmp_agent.c:
+
+   Removed an obsolete comment.
+
+2010-07-12 10:08  bvassche
+
+   * agent/helpers/table_container.c, win32/mib_module_includes.h:
+
+   Suppressed more MSVC compiler warnings.
+
+2010-07-12 04:45  rstory
+
+   * testing/fulltests/tls/STlsVars:
+
+   add comment with object name for numeric ids
+
+2010-07-12 04:45  rstory
+
+   *  agent/mibgroup/target/target.c,   
+      include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   new function to get serverId from snmpTlstmAddrTable data; use
+   new api
+   to config serviceId for trap transport when sending traps
+
 2010-07-11 11:18  bvassche
 
    * configure, configure.d/config_os_functions:
@@ -7028,6 +12576,55 @@
    that memcmp() is available instead of assuming that it is not
    available.
 
+2010-07-11 10:30  bvassche
+
+   * agent/mibgroup/disman/event/mteTriggerConf.c:
+
+   Fixed compiler warnings triggered by r19197.
+
+2010-07-10 20:00  rstory
+
+   * testing/RUNFULLTESTS:
+
+   sync up help output and options processing
+
+2010-07-09 15:13  bvassche
+
+   * README.win32:
+
+   Updated Cygwin section in README.win32.
+
+2010-07-09 15:13  bvassche
+
+   *  agent/helpers/instance.c, agent/helpers/table_dataset.c,   
+      agent/mibgroup/disman/event/mteTriggerConf.c:
+
+   CHANGES: Win32: Suppressed "implicit cast from int to u_char"
+   warnings generated by MSVC.
+
+2010-07-09 15:11  bvassche
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   Testing: made the debug output that appears in the "invoked" file
+   even more verbose.
+
+2010-07-09 15:10  bvassche
+
+   *  win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   Win32 MSVC build fixes.
+
+2010-07-08 19:30  marz
+
+   *  local/certgen-test.pl, local/net-snmp-cert,   
+      local/net-snmp-cert.conf:
+
+   adds per identity configuration file support so defaults can be
+   customised on cmdline w -i <identity> - see net-snmp-cert.conf
+   for examples and some help info
+
 2010-07-08 12:17  dts12
 
    * agent/agent_read_config.c:
@@ -7041,12 +12638,614 @@
    CHANGES: snmpd: BUG: 3019243: Register execFix compatability
    directive correctly.
 
+2010-07-07 10:19  bvassche
+
+   *  testing/fulltests/default/T110agentxget_simple,   
+      testing/fulltests/default/T111agentxset_simple,   
+      testing/fulltests/default/T112agentxsetfail_simple,   
+      testing/fulltests/default/T120proxyget_simple,   
+      testing/fulltests/default/T121proxyset_simple,   
+      testing/fulltests/default/T122proxysetfail_simple:
+
+   CHANGES: Cygwin and MinGW: tests T110, T111, T112, T120, T121 and
+   T122 do now pass when snmpd is built with winExtDLL support
+   enabled.
+
+2010-07-06 18:59  bvassche
+
+   *  ChangeLog, agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c,   
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
+         local/mib2c-conf.d/mfd-persistence.m2i,   
+      testing/fulltests/support/simple_eval_tools.sh:
+
+   Made regression tests easier to debug by including ok / not ok
+   status in the "invoked" file.
+   Spelling fixes: remeber -> remember; seperator -> separator.
+
+2010-07-06 15:04  bvassche
+
+   *  testing/fulltests/default/T065agentextend_simple,   
+      testing/fulltests/support/simple_TESTCONF.sh:
+
+   Test T065 does now really pass on MinGW.
+
+2010-07-05 10:01  bvassche
+
+   * testing/Makefile.in:
+
+   Added curly braces such that '||' and '&&' are evaluated in the
+   correct order.
+
+2010-07-04 11:37  bvassche
+
+   * apps:
+
+   Updated Subversion ignore list.
+
+2010-07-04 11:34  bvassche
+
+   * testing/Makefile.in:
+
+   Fall back from RUNFULLTESTS to RUNTESTS if neither TAP::Harness
+   nor Test::Harness is available.
+
+2010-07-04 11:21  bvassche
+
+   * testing/fulltests/support/simple_run:
+
+   Made sure that the test number in /tmp/snmp-tests-$testnum is set
+   to something more meaningful than just "0".
+
+2010-07-04 11:20  bvassche
+
+   * testing/RUNTESTS:
+
+   Split a long comment line.
+
+2010-07-04 10:52  bvassche
+
+   * testing/RUNTESTS:
+
+   Bug fix: made sure that srcdir is computed correctly if `dirname
+   $0` = .
+
+2010-07-02 16:27  bvassche
+
+   * apps/Makefile.in, configure, configure.d/config_os_libs:
+
+   Simplified r19181 (Fixed TLSTCP-enabled build for platforms with
+   non-empty $(EXEEXT), i.e. Cygwin and MinGW).
+
+2010-07-01 18:15  bvassche
+
+   * apps/Makefile.in, configure, configure.d/config_os_libs:
+
+   Fixed TLSTCP-enabled build for platforms with non-empty
+   $(EXEEXT), i.e. Cygwin and MinGW.
+
+2010-07-01 18:11  bvassche
+
+   * apps/snmptls.c:
+
+   Fixed yet another recently introduced compiler warning.
+
+2010-07-01 17:53  bvassche
+
+   * snmplib/cert_util.c:
+
+   Fixed two recently introduced compiler warnings.
+
+2010-07-01 00:19  hardaker
+
+   * CHANGES, NEWS:
+
+   version update
+
+2010-07-01 00:13  hardaker
+
+   * ChangeLog:
+
+   version update
+
+2010-07-01 00:03  hardaker
+
+   *  agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      snmplib/Makefile.depend:
+
+   make depend
+
+2010-06-30 23:55  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+2010-06-30 23:48  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec, python/netsnmp/tests/snmpd.conf:
+
+   Version number update
+
+2010-06-30 23:45  hardaker
+
+   * man/snmpd.conf.5.def:
+
+   missed two tokens in the man pgaes
+
+2010-06-30 23:45  hardaker
+
+   *  man/snmpcmd.1.def, man/snmpd.8.def,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      testing/fulltests/tls/SCipherTests, testing/fulltests/tls/SCrl,   
+      testing/fulltests/tls/STlsAgentTrap,   
+      testing/fulltests/tls/STlsServer,   
+      testing/fulltests/tls/STlsServerSession,   
+      testing/fulltests/tls/STlsTrapdUser,   
+      testing/fulltests/tls/STlsUsers,   
+      testing/fulltests/tls/STsmPrefix,   
+      testing/fulltests/transports/Stlstests:
+
+   rename the defX509 tokens to something more friendly: clientCert
+   and serverCert
+
+2010-06-30 23:44  hardaker
+
+   *  snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   top-file comment updates
+
+2010-06-30 23:44  hardaker
+
+   * snmplib/cert_util.c:
+
+   don't call cert_find with a NULL argument
+
+2010-06-30 23:44  hardaker
+
+   * snmplib/cert_util.c:
+
+   allow def certs to be specified using a filename
+
+2010-06-30 23:41  tanders
+
+   * testing/fulltests/support/simple_run:
+
+   fix syntax error
+
+2010-06-30 23:01  hardaker
+
+   * snmplib/cert_util.c:
+
+   turn a couple of non-critical errors into debug statements per
+   discussion with rstory
+
+2010-06-30 23:00  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   make the regexp pattern match for tests to run case insensitive
+
+2010-06-30 23:00  hardaker
+
+   * python/netsnmp/client.py:
+
+   import stderr from sys, per discussion on -users
+
+2010-06-30 22:17  hardaker
+
+   *  snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   add back in the default port specifier
+
+2010-06-30 22:17  hardaker
+
+   * local/net-snmp-cert:
+
+   enable pulling the private key over http
+
+2010-06-30 22:17  hardaker
+
+   * local/net-snmp-cert:
+
+   move URL collection into a sub function
+
+2010-06-30 22:16  hardaker
+
+   * local/net-snmp-cert:
+
+   added ability to pull a cert from a URL
+
+2010-06-30 22:16  hardaker
+
+   * local/net-snmp-cert:
+
+   fix argument bug in the is_url function
+
+2010-06-30 20:49  hardaker
+
+   * apps/snmptls.c:
+
+   remove debugging code
+
+2010-06-30 20:27  hardaker
+
+   *  testing/fulltests/tls/T117DtlsCNSession_simple,   
+      testing/fulltests/tls/T117dtlsCNSession_simple:
+
+   rename file for consistency
+
+2010-06-30 20:01  rstory
+
+   * configure:
+
+   update for new snmptls app
+
+2010-06-30 20:00  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c:
+
+   remove accidentally checked int debug code
+
+2010-06-30 19:59  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h:
+
+   define OIDs based on SNMP_TLS_TM_BASE
+
+2010-06-30 19:59  rstory
+
+   * agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c:
+
+   auto-transistion between notReady/notInService
+
+2010-06-30 19:57  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h:
+
+   auto-transistion between notReady/notInService; add
+   snmp_store_needed on commit
+
+2010-06-30 19:56  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c:
+
+   use new fingerprint parse/build functions; remove bad length
+   check; auto
+   transition between notReady and notInService
+
+2010-06-30 19:55  rstory
+
+   * mibs/TLSTM-MIB.txt:
+
+   remove pre-rfc mib; see SNMP-TLS-TM-MIB.txt instead
+
+2010-06-30 19:54  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_internal.h,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c:
+
+   consolidate multiple files
+
+2010-06-30 19:53  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   make hash type parse routine public; add routines to build/parse
+   SnmpTLSFingerprint
+
+2010-06-30 19:51  rstory
+
+   *  Makefile.in, apps/Makefile.in, apps/snmptls.c,   
+      configure.d/config_os_libs:
+
+   NEWS: snmptls: new app for managing (D)TLS config via
+   SNMP-TLS-TM-MIB tables
+
+2010-06-30 19:50  rstory
+
+   *  agent/mibgroup/disman/event/mteObjectsTable.c,   
+      agent/mibgroup/disman/event/mteTriggerTable.c,   
+      agent/mibgroup/disman/expression/expExpressionTable.c,   
+      agent/mibgroup/disman/expression/expObjectTable.c,   
+      agent/mibgroup/disman/mteObjectsTable.c,   
+      agent/mibgroup/disman/mteTriggerTable.c,   
+      agent/mibgroup/disman/nslookup/lookupCtlTable.c,   
+      agent/mibgroup/disman/ping/pingCtlTable.c,   
+      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c,   
+      agent/mibgroup/if-mib/ifTable/ifTable.c,   
+      agent/mibgroup/if-mib/ifXTable/ifXTable.c,   
+      agent/mibgroup/notification/snmpNotifyFilterProfileTable.c,   
+      agent/mibgroup/notification/snmpNotifyTable.c,   
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c:
+
+   call new snmp_store_needed() function after a commit in tables
+   that
+   have persistent store
+
+2010-06-30 19:49  rstory
+
+   * include/net-snmp/library/snmp_client.h, snmplib/snmp_client.c:
+
+   NEWS: snmplib: new experimental simple state machine
+   NEWS: snmplib: new experimental row creation API which uses a
+   state machine
+   to try really hard to create a row from a given varbind list
+
+2010-06-30 19:48  rstory
+
+   *  agent/snmp_agent.c, include/net-snmp/library/snmp_api.h,   
+      snmplib/snmp_api.c:
+
+   NEWS: snmpd: new API for indicating that persistent store needs
+   to be saved after the current request finishes processing
+
+2010-06-30 19:46  rstory
+
+   * include/net-snmp/library/snmp_assert.h:
+
+   add some new wrapper macros
+
+2010-06-30 15:59  hardaker
+
+   *  testing/fulltests/tls/STlsCNSession,   
+      testing/fulltests/tls/STlsSanSession,   
+      testing/fulltests/tls/STlsServerSession,   
+      testing/fulltests/tls/T115DtlsSanSession_simple,   
+      testing/fulltests/tls/T116TlsSanSession_simple,   
+      testing/fulltests/tls/T117dtlsCNSession_simple,   
+      testing/fulltests/tls/T118TlsCNSession_simple:
+
+   added checks for checking direct passing of localhost to the
+   expected name
+
+2010-06-30 15:59  hardaker
+
+   * testing/fulltests/tls/STlsServer:
+
+   check for wildcard support
+
+2010-06-30 15:58  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   support SAN and CN wildcard matching per spec
+
+2010-06-30 15:00  hardaker
+
+   *  testing/fulltests/tls/SCipherTests, testing/fulltests/tls/SCrl,   
+      testing/fulltests/tls/STlsAgentTrap,   
+      testing/fulltests/tls/STlsName, testing/fulltests/tls/STlsSan,   
+      testing/fulltests/tls/STlsServer,   
+      testing/fulltests/tls/STlsTrapdUser,   
+      testing/fulltests/tls/STlsUsers, testing/fulltests/tls/STlsVars,  
+       testing/fulltests/tls/STsmPrefix,   
+      testing/fulltests/tls/ScipherTests,   
+      testing/fulltests/tls/Scrltests,   
+      testing/fulltests/tls/Stlsagenttraptests,   
+      testing/fulltests/tls/Stlsnametests,   
+      testing/fulltests/tls/Stlssantests,   
+      testing/fulltests/tls/Stlsservertests,   
+      testing/fulltests/tls/Stlstrapdusertests,   
+      testing/fulltests/tls/Stlsuserstests,   
+      testing/fulltests/tls/Stlsvars, testing/fulltests/tls/Stsmprefix, 
+        testing/fulltests/tls/T101DtlsUser_simple,   
+      testing/fulltests/tls/T101dtlsudpusertests_simple,   
+      testing/fulltests/tls/T102TlsUser_simple,   
+      testing/fulltests/tls/T102tlstcpusertests_simple,   
+      testing/fulltests/tls/T111DtlsServer_simple,   
+      testing/fulltests/tls/T111dtlsudpservertests_simple,   
+      testing/fulltests/tls/T112TlsServer_simple,   
+      testing/fulltests/tls/T112tlstcpservertests_simple,   
+      testing/fulltests/tls/T113DtlsSan_simple,   
+      testing/fulltests/tls/T113dtlsudpsan_simple,   
+      testing/fulltests/tls/T114TlsSan_simple,   
+      testing/fulltests/tls/T114tlstcpsan_simple,   
+      testing/fulltests/tls/T121DtlsTrap_simple,   
+      testing/fulltests/tls/T121dtlsudptraptests_simple,   
+      testing/fulltests/tls/T122TlsTrap_simple,   
+      testing/fulltests/tls/T122tlstcptraptests_simple,   
+      testing/fulltests/tls/T131DtlsAgentTrap_simple,   
+      testing/fulltests/tls/T131dtlsudpagenttraptests_simple,   
+      testing/fulltests/tls/T132TlsAgentTrap_simple,   
+      testing/fulltests/tls/T132tlstcpagenttraptests_simple,   
+      testing/fulltests/tls/T141DtlsCrl_simple,   
+      testing/fulltests/tls/T141dtlsudpcrl_simple,   
+      testing/fulltests/tls/T142TlsCrl_simple,   
+      testing/fulltests/tls/T142tlstcpcrl_simple,   
+      testing/fulltests/tls/T151DtlsCiphers_simple,   
+      testing/fulltests/tls/T151dtlsciphers_simple,   
+      testing/fulltests/tls/T152TlsCiphers_simple,   
+      testing/fulltests/tls/T152tlsciphers_simple,   
+      testing/fulltests/tls/T200TlsIpv6_simple,   
+      testing/fulltests/tls/T200tlsipv6_simple,   
+      testing/fulltests/tls/T300TlsPerl.t,   
+      testing/fulltests/tls/T300tlstcpperl.t,   
+      testing/fulltests/tls/T301DtlsPerl.t,   
+      testing/fulltests/tls/T301dtlsperl.t,   
+      testing/fulltests/tls/T401DtlsTsmPrefix_simple,   
+      testing/fulltests/tls/T401dtlstsmprefix_simple,   
+      testing/fulltests/tls/T402TlsTsmPrefix_simple,   
+      testing/fulltests/tls/T402tlstsmprefix_simple:
+
+   moved test files around for better naming
+
+2010-06-30 14:58  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   copy dtls transport address to the expected hostname
+
+2010-06-30 14:58  hardaker
+
+   *  snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   set the expected hostname from the transport string if possible
+
+2010-06-30 14:58  hardaker
+
+   * local/net-snmp-cert:
+
+   a bit more help output by default
+
 2010-06-29 22:29  tanders
 
    * apps/snmptrapd_auth.c:
 
    Follow-up for r19116: make sure we include agent config
 
+2010-06-29 22:18  magfr
+
+   *  agent/mibgroup/host/hr_print.h,   
+      agent/mibgroup/if-mib/data_access/interface.h,   
+      agent/mibgroup/ip-mib/data_access/ipaddress_linux.h,   
+      agent/mibgroup/ucd-snmp/extensible.h:
+
+   Add missing config_requires
+
+2010-06-29 17:33  hardaker
+
+   * man/snmpcmd.1.def:
+
+   rework the snmpcmd manual page to separate out the flags into
+   sections appropriate for their usage type
+
+2010-06-29 16:51  marz
+
+   * local/net-snmp-cert:
+
+   pod docs, some default val fixes, info output normalized
+
+2010-06-29 16:32  hardaker
+
+   * agent/mibgroup/target/target.c:
+
+   added ssh.h include
+
+2010-06-29 16:27  hardaker
+
+   * man/snmpd.conf.5.def:
+
+   reorganize the manual page a bit for SNMPv3 and TLS
+
+2010-06-29 16:27  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   fix default tls registrations
+
+2010-06-29 16:26  hardaker
+
+   * agent/snmp_agent.c:
+
+   check for NULL transports after an open fails
+
+2010-06-29 16:26  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   moving logging around so that openssl errors are printed on
+   failures
+
+2010-06-29 16:26  hardaker
+
+   *  testing/fulltests/tls/Scrltests,   
+      testing/fulltests/tls/Stsmprefix:
+
+   fix some non-interactive invocation issues
+
+2010-06-29 16:26  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   move some common code into a common function
+
+2010-06-28 19:13  hardaker
+
+   *  include/net-snmp/library/default_store.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      testing/fulltests/tls/ScipherTests,   
+      testing/fulltests/tls/T151dtlsciphers_simple,   
+      testing/fulltests/tls/T152tlsciphers_simple:
+
+   cipher suite selection and tests for it
+
+2010-06-28 19:12  hardaker
+
+   * python/LICENSE:
+
+   license updates
+
+2010-06-28 19:12  hardaker
+
+   *  python/README, python/netsnmp/client.py,   
+      python/netsnmp/client_intf.c:
+
+   SNMPv3 over TLS support
+
+2010-06-28 19:12  hardaker
+
+   * python/netsnmp/tests/test.py:
+
+   better output showing test types
+
 2010-06-28 00:54  tanders
 
    *  man/mib_api.3.def, man/netsnmp_agent.3, man/netsnmp_container.3,  
@@ -7057,13 +13256,6 @@
    CHANGES: man: clean up manual pages
    (from Debian patch 56_manpage)
 
-2010-06-28 00:20  tanders
-
-   * man/config_api.3:
-
-   remove generated manual page from repository (partly revert
-   r17558)
-
 2010-06-27 23:29  tanders
 
    * apps/snmptrapd.c, apps/snmptrapd_auth.c:
@@ -7073,6 +13265,155 @@
    compiled
    (from Debian patch 61_vacm_missing_dependency_check)
 
+2010-06-27 03:23  marz
+
+   * local/net-snmp-cert:
+
+   fix app tag completions
+
+2010-06-27 00:56  marz
+
+   * local/net-snmp-cert, local/net-snmp-cert.conf:
+
+   handle config file setting interactive, true/false values handled
+   in config
+
+2010-06-26 20:58  marz
+
+   * local/net-snmp-cert:
+
+   fix some bugs w/ spaces in names and app tag help
+
+2010-06-26 19:38  marz
+
+   *  testing/fulltests/tls/S300tlsperl.pl,   
+      testing/fulltests/tls/Stlsvars,   
+      testing/fulltests/transports/Stlstests:
+
+   fix tests to use non-interactive -I
+
+2010-06-26 17:46  marz
+
+   * local/certgen-test.pl, local/net-snmp-cert:
+
+   better interactive, ?=help, <tab> compl, more help, SAN loop
+   format and termination fix, tolerate spaces in fields and
+   filenames, more complete error output, embryonic import from url
+
+2010-06-26 13:48  bvassche
+
+   *  snmplib/snmp_transport.c, snmplib/transports/snmpDTLSUDPDomain.c, 
+        snmplib/transports/snmpTLSTCPDomain.c:
+
+   More compiler warning fixes.
+
+2010-06-26 13:47  bvassche
+
+   * acconfig.h, include/net-snmp/net-snmp-config.h.in:
+
+   Fixed the errors in acconfig.h and regenerated
+   net-snmp-config.h.in.
+
+2010-06-26 13:44  bvassche
+
+   * agent/mibgroup/smux/smux.c:
+
+   Fixed compiler warnings triggered by SMUX MIB implementation.
+
+2010-06-26 00:45  hardaker
+
+   *  snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      testing/fulltests/tls/Stlssantests,   
+      testing/fulltests/tls/T113dtlsudpsan_simple,   
+      testing/fulltests/tls/T114tlstcpsan_simple:
+
+   fixes and testing for checking SAN DNS names from the server
+
+2010-06-26 00:44  hardaker
+
+   *  testing/fulltests/tls/Stlsnametests,   
+      testing/fulltests/tls/Stlsservertests,   
+      testing/fulltests/tls/T111dtlsudpservertests_simple,   
+      testing/fulltests/tls/T112tlstcpservertests_simple:
+
+   genericize the server name tests
+
+2010-06-25 23:01  hardaker
+
+   *  agent/mibgroup/tsm-mib.h,   
+      agent/mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.c,   
+      agent/mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.h,   
+      snmplib/snmptsm.c, snmplib/transports/snmpDTLSUDPDomain.c,   
+      testing/fulltests/tls/Scrltests,   
+      testing/fulltests/tls/Stsmprefix,   
+      testing/fulltests/tls/T401dtlstsmprefix_simple,   
+      testing/fulltests/tls/T402tlstsmprefix_simple:
+
+   useprefix scalar testing and support
+
+2010-06-25 23:01  hardaker
+
+   * testing/fulltests/tls/Scrltests:
+
+   remove debugging lines
+
+2010-06-25 23:00  hardaker
+
+   * testing/fulltests/tls/Scrltests:
+
+   put in only minimial debug flags
+
+2010-06-25 23:00  hardaker
+
+   *  include/net-snmp/library/default_store.h,   
+      include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/cert_util.c, snmplib/transports/snmpTLSBaseDomain.c,   
+      testing/fulltests/tls/Scrltests,   
+      testing/fulltests/tls/T141dtlsudpcrl_simple,   
+      testing/fulltests/tls/T142tlstcpcrl_simple:
+
+   code and test cases for CRL handling
+
+2010-06-25 15:24  bvassche
+
+   * testing/fulltests/default/T060trapdperl_simple:
+
+   Added a newline at the end of each line printed by the Perl
+   interpreter.
+
+2010-06-25 13:08  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   reduce number of resend attempts and timeout
+
+2010-06-25 13:08  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      include/net-snmp/library/snmpTLSTCPDomain.h, snmplib/cert_util.c, 
+        snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   warning fixes
+
+2010-06-25 13:08  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   remove logic typo from previous commit
+
+2010-06-25 13:08  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      include/net-snmp/library/snmpTLSTCPDomain.h,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c,   
+      testing/fulltests/tls/T200tlsipv6_simple:
+
+   IPv6 fixes for TCP
+
 2010-06-25 13:01  jsafranek
 
    * snmplib/snmp_api.c:
@@ -7086,6 +13427,84 @@
    CHANGES: snmptranslate: fixed printing of ranges with UNSIGNED
    type.
 
+2010-06-24 23:55  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   fix function names for stat increases
+
+2010-06-24 23:52  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   fix errors in comments
+
+2010-06-24 23:44  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   comments for 5.4 for dtls
+
+2010-06-24 23:44  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   comments for 5.3.2
+
+2010-06-24 23:43  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   client side connect comments
+
+2010-06-24 23:43  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   counter and comment improvements
+
+2010-06-24 23:43  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   update counter calls and comment text
+
+2010-06-24 19:03  bvassche
+
+   *  testing/fulltests/default/T061agentperl_simple,   
+      testing/fulltests/default/T115agentxperl_simple,   
+      testing/fulltests/support/simple_TESTCONF.sh:
+
+   Moved LD_LIBRARY_PATH setup from individual tests scripts to
+   simple_TESTCONF.sh.
+
+2010-06-24 19:02  bvassche
+
+   * testing/fulltests/support/simple_run:
+
+   Fixed a comment.
+
+2010-06-24 17:48  bvassche
+
+   * include/net-snmp/library/snmpTLSBaseDomain.h:
+
+   Should have been included in r19084.
+
+2010-06-24 17:47  bvassche
+
+   *  snmplib/cert_util.c, snmplib/snmp_transport.c,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   Fixed several recently introduced compiler warnings.
+
+2010-06-24 12:30  tanders
+
+   * configure, configure.d/config_os_progs:
+
+   "test -e" isn't portable; use "test -x" instead for the Perl
+   system()
+   check
+
 2010-06-23 11:14  jsafranek
 
    * agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.c:
@@ -7098,12 +13517,120 @@
    instead - netsnmp_interface_entry.forwarding_v6 is boolean, not
    TruthValue.
 
+2010-06-22 23:06  hardaker
+
+   * snmplib/cert_util.c, testing/fulltests/tls/Stlsuserstests:
+
+   support for certSecName mapping from a local cert file name and a
+   test for it
+
+2010-06-22 22:44  hardaker
+
+   * perl/SNMP/SNMP.pm:
+
+   documenation update to clean up and include TLS parameters
+
+2010-06-22 22:44  hardaker
+
+   * perl/SNMP/SNMP.pm, perl/SNMP/SNMP.xs:
+
+   support for passing identities and full working version
+
+2010-06-22 22:44  hardaker
+
+   *  testing/fulltests/tls/S300tlsperl.pl,   
+      testing/fulltests/tls/T300tlstcpperl.t,   
+      testing/fulltests/tls/T301dtlsperl.t:
+
+   perl TLS/DTLS tests
+
+2010-06-22 22:43  hardaker
+
+   * perl/SNMP/SNMP.pm, perl/SNMP/SNMP.xs:
+
+   first ptach on SNMP/TLS creating a new session function
+
+2010-06-22 22:43  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   first working support for a delayed close() to attempt to sending
+   outstanding packets in the queue; this is required for snmptrap
+   to work at all when sending traps (not informs) over DTLS
+
+2010-06-22 19:03  bvassche
+
+   *  testing/fulltests/default/T059trapdtraphandle_simple,   
+      testing/fulltests/default/T065agentextend_simple,   
+      testing/fulltests/support/simple_TESTCONF.sh:
+
+   CHANGES: MinGW: tests T059traphandle_simple and
+   T065agentextend_simple do now pass.
+
+2010-06-22 19:01  bvassche
+
+   * apps/snmpnetstat/inet6.c:
+
+   The width argument for %.*d must have type int, not size_t. This
+   bug was introduced in r19014.
+
+2010-06-22 18:57  bvassche
+
+   * agent/mibgroup/utilities/execute.c:
+
+   NEWS: MinGW: the snmpd.conf keyword extend does now work.
+   NEWS: MinGW: the snmptrapd.conf keyword traphandle does now work.
+   CHANGES: MinGW: run_shell_command() with either input or output
+   (but not both) does now work.
+   This did not work until now because on MinGW mkstemp() generates
+   a MinGW-style path (/tmp/...) while system() invokes cmd.exe and
+   hence expects a Windows-style path (C:\...).
+
+2010-06-22 17:39  bvassche
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   Also report the port specification if [ $SNMP_VERBOSE -gt 0 ].
+
+2010-06-22 17:38  bvassche
+
+   *  testing/fulltests/default/T053agentv1trap_simple,   
+      testing/fulltests/default/T060trapdperl_simple,   
+      testing/fulltests/default/T061agentperl_simple,   
+      testing/fulltests/default/T100agenthup_simple,   
+      testing/fulltests/default/T115agentxperl_simple:
+
+   Replaced an explicit test for MinGW by a test on HAVE_SIGHUP.
+
+2010-06-22 17:36  bvassche
+
+   *  configure, configure.d/config_os_misc4,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   Added configure test for SIGHUP.
+
+2010-06-22 17:35  bvassche
+
+   * testing/RUNTESTS:
+
+   Report which tests failed, if any.
+
 2010-06-22 08:37  bvassche
 
    * agent/mibgroup/mibII/var_route.c:
 
    Fixed an error in a comment block.
 
+2010-06-21 19:26  bvassche
+
+   * testing/fulltests/default/T059trapdtraphandle_simple:
+
+   Rearranged the implementation of this test such that it is no
+   longer necessary
+   to invoke simple_eval_tools.sh when this script is invoked as a
+   trap handler
+   by snmptrapd.
+
 2010-06-21 08:01  dts12
 
    * snmplib/large_fd_set.c:
@@ -7112,20 +13639,405 @@
    to accomodate the specified socket ID.
    Problem reported by Shiyalei.
 
-2010-06-21 07:56  dts12
+2010-06-20 19:32  dts12
 
-   * agent/mibgroup/host/hr_proc.c:
+   *  snmplib/cert_util.c, snmplib/cmu_compat.c, snmplib/pkcs.c,   
+      snmplib/snprintf.c:
 
-   Reverting rev. 17616, the necessary check is already in rev.
-   17415.
+   Avoid duplicate (unused) symbols.
 
-2010-06-18 17:04  bvassche
+2010-06-20 19:31  bvassche
 
-   * configure, configure.d/config_os_libs:
+   * testing/fulltests/default/T059trapdtraphandle_simple:
 
-   CHANGES: Linux: builds again with embedded Perl disabled (bug
-   2985915).
-   (Backported r18721)
+   Commented out debug code.
+
+2010-06-20 19:30  bvassche
+
+   * testing/RUNTESTS, testing/fulltests/support/simple_run:
+
+   Restored summary success/failure count reporting.
+   Also, moved kill.exe test back to RUNTESTS.
+
+2010-06-20 19:29  bvassche
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   CHANGES: testing: add the test name to the start of the file
+   "invoked".
+
+2010-06-20 19:27  bvassche
+
+   *  testing/fulltests/default/T053agentv1trap_simple,   
+      testing/fulltests/default/T060trapdperl_simple,   
+      testing/fulltests/default/T061agentperl_simple,   
+      testing/fulltests/default/T100agenthup_simple,   
+      testing/fulltests/default/T115agentxperl_simple:
+
+   CHANGES: MinGW: testing: skip the tests that require SIGHUP since
+   MinGW does not support SIGHUP.
+
+2010-06-20 15:19  bvassche
+
+   * configure, configure.d/config_os_progs, testing/Makefile.in:
+
+   Added a configure test that detects whether or not Perl's
+   system() function
+   invokes a POSIX shell. "make test" does now fall back to RUNTESTS
+   if not.
+
+2010-06-20 15:16  bvassche
+
+   *  snmplib/snmp_transport.c, snmplib/transports/snmpAliasDomain.c,   
+      snmplib/transports/snmpIPv4BaseDomain.c,   
+      snmplib/transports/snmpIPv6BaseDomain.c,   
+      snmplib/transports/snmpSocketBaseDomain.c,   
+      snmplib/transports/snmpTCPBaseDomain.c,   
+      snmplib/transports/snmpTCPDomain.c,   
+      snmplib/transports/snmpTCPIPv6Domain.c,   
+      snmplib/transports/snmpUDPBaseDomain.c,   
+      snmplib/transports/snmpUDPDomain.c,   
+      snmplib/transports/snmpUDPIPv4BaseDomain.c:
+
+   Builds again on MinGW -- added #include <net-snmp/types.h> where
+   necessary.
+   Note: although <net-snmp/types.h> is included indirectly from the
+   *     *transport.h    header files, these #include statements are
+      necessary because of    a pesky    circular dependence between
+      <net-snmp/types.h> and    <net-snmp/library/snmp_api.h>. 
+      2010-06-20 15:12  bvassche
+
+
+   * testing/fulltests/support/simple_run:
+
+   CHANGES: MinGW: refuse to run the regression tests if kill.exe
+   cannot be found.
+
+2010-06-20 15:11  bvassche
+
+   * testing/RUNTESTS:
+
+   Shortened the srcdir path by making sure that it does not contain
+   /..
+
+2010-06-19 18:30  bvassche
+
+   * testing/RUNFULLTESTS:
+
+   Added support for running RUNFULLTESTS with Test::Harness in
+   another directory than the source directory.
+
+2010-06-19 16:41  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h:
+
+   complete rewrite of params to use table_dataset instead of
+   create-dataset
+
+2010-06-19 16:41  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c:
+
+   use text for hash type in persistent store
+
+2010-06-19 16:40  rstory
+
+   *  agent/mibgroup/Rmon/rows.c,   
+      agent/mibgroup/examples/ucdDemoPublic.c:
+
+   quiet compiler warnings
+
+2010-06-19 16:40  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   fix missing specifier in debug
+
+2010-06-19 16:39  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c:
+
+   use define instead of constant; fix check for rows to save
+
+2010-06-19 16:39  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   add remove/find function for maps/addrs/params; rename params
+   tag->name;
+   destroy -> free; group recent trust functions together in src;
+   don't store
+   params fp as binary; hand text args for hash type (e.g --sha1)
+
+2010-06-18 15:35  bvassche
+
+   * agent/mibgroup/mibII/at.c:
+
+   CHANGES: Cygwin: corrected error handling in mibII/at.
+
+2010-06-18 07:23  bvassche
+
+   * include/net-snmp/library/snmp_api.h:
+
+   Fixed a compiler warning.
+
+2010-06-18 01:42  magfr
+
+   * snmplib/keytools.c:
+
+   Do not define ret twice when NETSNMP_USE_INTERNAL_CRYPTO is set.
+
+2010-06-18 01:39  magfr
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   Corrected typo.
+
+2010-06-18 00:31  hardaker
+
+   * CHANGES, NEWS:
+
+   better NEWS and CHANGES files
+
+2010-06-17 20:39  hardaker
+
+   * ChangeLog:
+
+   version update
+
+2010-06-17 20:31  hardaker
+
+   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
+      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
+
+   make depend
+
+2010-06-17 18:59  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+2010-06-17 18:55  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
+2010-06-17 18:54  hardaker
+
+   * Makefile.top:
+
+   version update
+
+2010-06-17 18:39  hardaker
+
+   * dist/makerelease.xml:
+
+   re-enable some commands
+
+2010-06-17 17:46  hardaker
+
+   * testing/fulltests/tls/Stlsvars:
+
+   forgot missing quotes in SET output
+
+2010-06-17 17:46  hardaker
+
+   *  testing/fulltests/tls/Stlsagenttraptests,   
+      testing/fulltests/tls/Stlsvars:
+
+   tls testing cleanup
+
+2010-06-17 17:45  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   more fixes for address printing; more to come
+
+2010-06-17 17:45  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   mostly properly set remote/local transport parameters
+
+2010-06-17 17:45  hardaker
+
+   *  testing/fulltests/tls/Stlsagenttraptests,   
+      testing/fulltests/tls/T131dtlsudpagenttraptests_simple,   
+      testing/fulltests/tls/T132tlstcpagenttraptests_simple:
+
+   tests for agents sending of traps over (D)TLS
+
+2010-06-17 17:45  hardaker
+
+   *  testing/fulltests/tls/Stlsvars,   
+      testing/fulltests/tls/T101dtlsudpusertests_simple,   
+      testing/fulltests/tls/T102tlstcpusertests_simple,   
+      testing/fulltests/tls/T111dtlsudpservertests_simple,   
+      testing/fulltests/tls/T112tlstcpservertests_simple,   
+      testing/fulltests/tls/T121dtlsudptraptests_simple,   
+      testing/fulltests/tls/T122tlstcptraptests_simple:
+
+   move export statements to the support file for simplicity
+
+2010-06-17 17:44  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   move tls bootstrapping to post_premib so other config tokens can
+   use the cert loading results
+
+2010-06-17 17:44  hardaker
+
+   * testing/fulltests/unit-tests/T004snmp_enum_clib.c:
+
+   added snmp_enum tests pulled from the main() test at the bottom
+   of the original .c file
+
+2010-06-17 16:00  dts12
+
+   * agent/mibgroup/ucd-snmp/lmSensors.c:
+
+   Eliminate "differ in signedness" warning
+
+2010-06-17 00:14  hardaker
+
+   * snmplib/transports/snmpUDPBaseDomain.c:
+
+   revert UDP changes from r18984 since it broke the UDP transport;
+   the struct probably needs to match another struct somewhere else
+
+2010-06-16 23:26  hardaker
+
+   * snmplib/cert_util.c:
+
+   add a new KEYWORD output for debugging purposes
+
+2010-06-16 23:26  hardaker
+
+   * agent/agent_trap.c:
+
+   use config_and_open for opening the transport
+
+2010-06-16 23:26  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   extra debugging statements
+
+2010-06-16 22:14  hardaker
+
+   * testing/fulltests/tls/Stlsuserstests:
+
+   explicitly declare trust certificates to transport
+
+2010-06-16 22:14  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   cleanup some lost memory on closing
+
+2010-06-16 21:56  hardaker
+
+   *  snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   fix typos
+
+2010-06-16 21:34  dts12
+
+   *  agent/agent_registry.c, agent/helpers/row_merge.c,   
+      agent/helpers/table.c, agent/helpers/table_dataset.c,   
+      agent/mibgroup/agent/extend.c,   
+      agent/mibgroup/disman/schedule/schedCore.c,   
+      agent/mibgroup/if-mib/data_access/interface.c,   
+      agent/mibgroup/if-mib/data_access/interface_ioctl.c,   
+      agent/mibgroup/if-mib/ifTable/ifTable.c,   
+      agent/mibgroup/if-mib/ifXTable/ifXTable.c,   
+      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c,
+         agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
+      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c,   
+      agent/mibgroup/ip-mib/ip_scalars.c,   
+      agent/mibgroup/mibII/vacm_conf.c,   
+      agent/mibgroup/mibII/vacm_vars.c,   
+      agent/mibgroup/mibII/var_route.c,   
+      agent/mibgroup/notification-log-mib/notification_log.c,   
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c,
+         agent/mibgroup/ucd-snmp/disk.c,
+      agent/mibgroup/ucd-snmp/dlmod.c,   
+      agent/mibgroup/ucd-snmp/pass.c, agent/mibgroup/ucd-snmp/proxy.c,  
+       agent/snmp_agent.c:
+
+   Eliminate (most) "signed and unsigned comparison" warnings from
+   agent code [-Wsign-compare]
+
+2010-06-16 20:16  dts12
+
+   *  snmplib/asn1.c, snmplib/check_varbind.c,   
+      snmplib/container_binary_array.c, snmplib/dir_utils.c,   
+      snmplib/keytools.c, snmplib/large_fd_set.c, snmplib/parse.c,   
+      snmplib/read_config.c, snmplib/scapi.c, snmplib/snmp_api.c,   
+      snmplib/snmp_client.c, snmplib/snmpusm.c, snmplib/snmpv3.c,   
+      snmplib/text_utils.c, snmplib/vacm.c:
+
+   Eliminate (most) "signed and unsigned comparison" warnings from
+   library code [-Wsign-compare]
+
+2010-06-16 19:36  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   remove older no-longer-needed-duplicate-config entries
 
 2010-06-16 19:14  dts12
 
@@ -7133,6 +14045,764 @@
 
    Fix processing of view masks (misplaced parentheses)
 
+2010-06-16 18:45  dts12
+
+   *  apps/agentxtrap.c, apps/snmpnetstat/if.c,   
+      apps/snmpnetstat/inet.c, apps/snmpnetstat/inet6.c,   
+      apps/snmptable.c, apps/snmptrapd_log.c, apps/snmpusm.c:
+
+   Eliminate "signed and unsigned comparison" from app code
+   [-Wsign-compare]
+
+2010-06-16 17:22  hardaker
+
+   * testing/fulltests/tls/Stlstrapdusertests:
+
+   check for informs sent over tls transports
+
+2010-06-16 17:22  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   copy other valuse from parent tlsbase data
+
+2010-06-16 17:21  hardaker
+
+   *  testing/fulltests/tls/Stlstrapdusertests,   
+      testing/fulltests/tls/Stlsvars,   
+      testing/fulltests/tls/T121dtlsudptraptests_simple,   
+      testing/fulltests/tls/T122tlstcptraptests_simple:
+
+   added basic trap sending and receiving tests
+
+2010-06-16 17:21  hardaker
+
+   * testing/fulltests/tls/Stlsuserstests:
+
+   remove no longer needed temp file touches
+
+2010-06-16 17:20  hardaker
+
+   *  agent/snmp_agent.c, include/net-snmp/library/snmp_transport.h,   
+      snmplib/cert_util.c, snmplib/snmp_api.c:
+
+   added a new function and transport flag to indicate if the f_open
+   call has been called yet
+
+2010-06-16 17:20  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   unused var warning cleanup
+
+2010-06-16 17:19  hardaker
+
+   *  include/net-snmp/library/cert_util.h, snmplib/cert_util.c,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   added trustCert configuration token
+
+2010-06-16 17:19  hardaker
+
+   * testing/fulltests/tls/Stlsuserstests:
+
+   minor tweaks for testing clarity
+
+2010-06-16 17:18  hardaker
+
+   *  testing/fulltests/tls/Stlsuserstests,   
+      testing/fulltests/tls/T101dtlsudpusertests_simple,   
+      testing/fulltests/tls/T102tlstcpusertests_simple,   
+      testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests,   
+      testing/fulltests/transports/T360dtlsudp_simple,   
+      testing/fulltests/transports/T361tlstcp_simple:
+
+   moved complex (D)TLS to a separate section and made the transport
+   tests only test minimal support
+
+2010-06-16 17:17  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   add mechanisms for specifying and expecting the hostname of the
+   far side
+
+2010-06-16 17:17  hardaker
+
+   *  testing/fulltests/tls/Stlsservertests,   
+      testing/fulltests/tls/Stlsvars:
+
+   tests for verifying server certificate check failures
+
+2010-06-16 17:17  hardaker
+
+   *  testing/fulltests/tls, testing/fulltests/tls/Stlsservertests,   
+      testing/fulltests/tls/Stlsvars,   
+      testing/fulltests/tls/T111dtlsudpservertests_simple,   
+      testing/fulltests/tls/T112tlstcpservertests_simple:
+
+   testing for checking client side verification of server
+   certificates
+
+2010-06-16 17:16  hardaker
+
+   * include/net-snmp/library/snmpTLSBaseDomain.h:
+
+   setup for a hostname config option
+
+2010-06-16 17:16  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   setup for a hostname config option
+
+2010-06-16 17:15  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   check to make suer ssl pointer has been created via f_open call
+
+2010-06-16 15:02  dts12
+
+   * agent/snmp_perl.h, apps/snmptrapd.c:
+
+   Declare 'shutdown_perl' properly.
+
+2010-06-16 14:37  dts12
+
+   * agent/snmpd.c, snmplib/keytools.c, snmplib/lcd_time.c:
+
+   Eliminate "signed and unsigned type in conditional expression"
+   warnings [-Wsign-compare]
+
+2010-06-16 14:27  dts12
+
+   * agent/mibgroup/target/target.c:
+
+   Eliminate "unused variable" warning
+
+2010-06-16 14:22  dts12
+
+   *  agent/helpers/old_api.c, agent/helpers/row_merge.c,   
+      agent/helpers/table_dataset.c,   
+      agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
+      agent/snmpd.c, snmplib/transports/snmpUDPBaseDomain.c:
+
+   Eliminate various "implicit conversion" warnings [-Wc++-compat]
+
+2010-06-16 13:13  dts12
+
+   *  agent/mibgroup/ip-forward-mib/data_access/route_linux.c,   
+      agent/mibgroup/ip-mib/data_access/arp_linux.c,   
+      agent/mibgroup/ip-mib/data_access/scalars_linux.c,   
+      agent/mibgroup/mibII/at.c, agent/mibgroup/mibII/tcpTable.c,   
+      agent/mibgroup/mibII/vacm_conf.c,   
+      agent/mibgroup/mibII/var_route.c,   
+      agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c,   
+      apps/snmpvacm.c, snmplib/tools.c:
+
+   Eliminate (most) signed-vs-unsigned warnings from numeric scanf
+   processing [-pedantic]
+
+2010-06-16 03:28  rstory
+
+   *  agent/helpers/table_tdata.c,   
+      agent/mibgroup/ip-forward-mib/data_access/route_common.c,   
+      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c,
+        
+      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c,
+         agent/mibgroup/ip-mib/data_access/arp_common.c,   
+      agent/mibgroup/ip-mib/data_access/ipv6scopezone_common.c,   
+      agent/mibgroup/ip-mib/data_access/systemstats_common.c,   
+      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.c,
+         agent/mibgroup/mibII/sysORTable.c,   
+      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c,
+        
+      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c,
+         snmplib/container.c:
+
+   the great un-named container hunt
+
+2010-06-16 03:27  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c:
+
+   share cache between table and count scalar; when reading config,
+   add to
+   library containers for active rows, table containers for inactive
+   rows;
+   user cert_util apis instead of direct container manipulation;
+   when
+   saving inactive map rows, skip all but nonVolatile
+
+2010-06-16 03:26  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   fix debug token typo
+
+2010-06-16 03:25  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   add api for adding entries to tltsm addr, params and cert map
+   containers;
+   register se slist pair earlier so they are available during
+   config parsing;
+   make sure config strings are null terminated
+
+2010-06-15 21:42  dts12
+
+   * agent/mibgroup/ip-mib/data_access/arp_linux.c:
+
+   Suppress warnings:
+   'struct nlmsghdr defined inside parameter list' and
+   'function _load_v6 declared but never defined'
+
+2010-06-15 21:30  dts12
+
+   *  agent/kernel.c, apps/snmptrapd_sql.c, snmplib/cert_util.c,   
+      snmplib/cmu_compat.c, snmplib/pkcs.c, snmplib/snprintf.c:
+
+   Eliminate "empty translation unit" warnings [-pedantic]
+
+2010-06-15 07:07  magfr
+
+   * testing/fulltests/unit-tests/T003copy_nword_clib.c:
+
+   Add test of copy_nword
+
+2010-06-14 21:32  dts12
+
+   *  agent/mibgroup/disman/event/mteEvent.h,   
+      agent/mibgroup/disman/event/mteTrigger.h,   
+      agent/mibgroup/disman/schedule/schedConf.c,   
+      agent/mibgroup/disman/schedule/schedCore.c:
+
+   Eliminate "overflow in implicit constant conversion" warnings
+   [-Wc++-compat]
+
+2010-06-14 15:51  dts12
+
+   * agent/snmpd.c, apps/encode_keychange.c, snmplib/read_config.c:
+
+   Eliminate "string length greater than 509" warnings [-pedantic]
+
+2010-06-14 15:19  dts12
+
+   * snmplib/transports/snmpUDPBaseDomain.c:
+
+   Eliminate "initializer element is not computable" warnings
+   [-pedantic]
+
+2010-06-14 05:27  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c:
+
+   update count handlers to count non-active rows too
+
+2010-06-14 05:12  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c:
+
+   only tweak storageType for active rows; reset entry flags when
+   removing from
+   cert_util maps; when createing rows from cert_util maps, set
+   stragetType to
+   volatile if nonVolatile flag not set; dont free cache in
+   cache_load on err
+
+2010-06-14 05:10  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_internal.h,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c:
+
+   move tlstmAddr table config parsing to cert_util; add cache to
+   merge cert_util
+   addrs (active) and non-active rows;
+
+2010-06-14 05:10  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   add nonVolatile flag to tlstmAddr table; set container name; skip
+   '0x' in fp
+
+2010-06-14 05:09  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   change LOG_ERR to LOG_INFO for non-error log msg
+
+2010-06-13 21:02  dts12
+
+   *  agent/mibgroup/if-mib/data_access/interface.c,   
+      agent/mibgroup/if-mib/data_access/interface_ioctl.c,   
+      agent/mibgroup/if-mib/data_access/interface_openbsd.c,   
+      agent/mibgroup/if-mib/data_access/interface_solaris2.c,   
+      agent/mibgroup/if-mib/data_access/interface_sysctl.c,   
+      agent/mibgroup/if-mib/ifTable/ifTable.c,   
+      agent/mibgroup/if-mib/ifTable/ifTable_data_access.c,   
+      agent/mibgroup/if-mib/ifTable/ifTable_interface.c,   
+      agent/mibgroup/if-mib/ifXTable/ifXTable.c,   
+      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c,   
+      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c,
+        
+      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c,
+        
+      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c,
+         agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
+      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c,
+         agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c,   
+      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c,  
+      
+      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c,  
+      
+      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.c,
+        
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c,
+        
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
+        
+      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c,
+        
+      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c,
+        
+      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c,
+        
+      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c,
+         local/mib2c-conf.d/mfd-interface.m2c:
+
+   Eliminate (most) "implicit conversion" warnings from
+   MfD-based MIB module code, and MfD template [-Wc++-compat]
+
+2010-06-12 21:33  dts12
+
+   *  agent/mibgroup/agent/extend.c,   
+      agent/mibgroup/disman/event/mteEventConf.c,   
+      agent/mibgroup/disman/event/mteObjectsConf.c,   
+      agent/mibgroup/disman/event/mteTriggerConf.c,   
+      agent/mibgroup/disman/expr/expExpressionConf.c,   
+      agent/mibgroup/disman/expr/expObjectConf.c,   
+      agent/mibgroup/disman/schedule/schedConf.c,   
+      agent/mibgroup/hardware/cpu/cpu.c,   
+      agent/mibgroup/hardware/cpu/cpu_linux.c,   
+      agent/mibgroup/hardware/cpu/cpu_perfstat.c,   
+      agent/mibgroup/hardware/cpu/cpu_sysctl.c,   
+      agent/mibgroup/hardware/fsys/fsys_getfsstats.c,   
+      agent/mibgroup/hardware/memory/memory_linux.c,   
+      agent/mibgroup/hardware/memory/memory_solaris.c,   
+      agent/mibgroup/host/data_access/swrun.c,   
+      agent/mibgroup/host/hr_disk.c, agent/mibgroup/mibII/sysORTable.c, 
+        agent/mibgroup/notification/snmpNotifyFilterProfileTable.c,   
+      agent/mibgroup/notification/snmpNotifyTable.c,   
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c,
+         agent/mibgroup/target/snmpTargetAddrEntry.c,   
+      agent/mibgroup/ucd-snmp/disk.c, agent/mibgroup/ucd-snmp/proxy.c,  
+       agent/mibgroup/utilities/override.c:
+
+   Eliminate (most) "implicit conversion" warnings from (non-MfD)
+   MIB module code. [-Wc++-compat]
+
+2010-06-12 10:26  dts12
+
+   *  agent/agent_handler.c, agent/agent_index.c,   
+      agent/agent_registry.c, agent/agent_sysORTable.c,   
+      agent/helpers/baby_steps.c, agent/helpers/cache_handler.c,   
+      agent/helpers/mode_end_call.c, agent/helpers/row_merge.c,   
+      agent/helpers/scalar.c, agent/helpers/stash_cache.c,   
+      agent/helpers/table_array.c, agent/helpers/table_container.c,   
+      agent/helpers/table_dataset.c, agent/helpers/table_iterator.c,   
+      agent/helpers/table_tdata.c, agent/helpers/watcher.c,   
+      agent/snmp_agent.c, apps/snmptrapd.c, apps/snmptrapd_log.c,   
+      snmplib/dir_utils.c, snmplib/file_utils.c,   
+      snmplib/large_fd_set.c, snmplib/snmp_api.c:
+
+   Eliminate (most) "implicit conversion" warnings from library,
+   apps and agent framework+helpers code. [-Wc++-compat]
+
+2010-06-10 20:01  rstory
+
+   * agent/mibgroup/target/target.c:
+
+   lookup cert keys for tls domains; use SEC_MODEL define instead of
+   hardcoded
+   constant; add SEC_MODEL_TSM to allowed sec models for mpModel
+   SNMP_VERSION_3
+
+2010-06-10 20:00  rstory
+
+   * agent/mibgroup/notification/snmpNotifyTable.c:
+
+   default to readOnly/active for bad config
+
+2010-06-10 20:00  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   add debug; switch to SEC_MODEL_TSM and warn if other secmode set,
+   instead
+   of simply logging that it won't work
+
+2010-06-10 19:59  rstory
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   check ptrs before dereference
+
+2010-06-10 19:58  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   move snmpTlstmAddrTable data management to cert_util; implement
+   TARGET_ADDR
+   and TARGET_PARAMS lookup in cert API
+
+2010-06-10 19:47  rstory
+
+   * snmplib/snmp_api.c:
+
+   update sec model define missed in earlier checkin
+
+2010-06-10 19:46  rstory
+
+   * agent/agent_trap.c:
+
+   config trapsess transports on creation; simplify ifdefs for
+   DISABLE_SNMPV1
+
+2010-06-10 19:46  rstory
+
+   *  include/net-snmp/library/snmp.h,   
+      include/net-snmp/library/snmp_secmod.h,   
+      include/net-snmp/library/snmpusm.h, snmplib/snmpksm.c,   
+      snmplib/snmptsm.c, snmplib/transports/snmpTLSBaseDomain.c:
+
+   auto switch to v3 for (d)tls sessions instead of logging that
+   others wont
+   work; define TSM sec model with other sec models; consistently
+   use
+   SNMP_SEC_MODEL_* in the code, using #defines for backwards
+   compatibility
+   w/*_SECURITY_MODEL
+
+2010-06-10 19:46  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c,
+         include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   certToTSN: move mib related persistence back into mib module;
+   cert_util: add tlstmParams persistence; use slist for cert map
+   type name
+   mapping;
+
+2010-06-10 19:45  rstory
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   fix compiler warning (const)
+
+2010-06-10 04:58  magfr
+
+   * agent/agent_handler.c:
+
+   Add missing indentation of a do-while loop to make the code
+   readable.
+
+2010-06-09 22:57  hardaker
+
+   * local/net-snmp-cert:
+
+   comment out keyUsage so proper self-signed certs are generated
+
+2010-06-09 22:57  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   solidify certificate acceptance for the client side
+
+2010-06-09 22:57  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   fix array typo
+
+2010-06-09 22:56  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   log openssl errors on accept failure
+
+2010-06-09 22:56  hardaker
+
+   * snmplib/snmp_api.c:
+
+   register default ports for tls/dtls
+
+2010-06-09 22:56  hardaker
+
+   * snmplib/cert_util.c:
+
+   do proper STORE loading of trusted certificates rather than file
+   based loading
+
+2010-06-09 22:56  hardaker
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   added two new APIs: netsnmp_cert_trust and netsnmp_cert_trust_ca
+
+2010-06-09 22:55  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   added straight 'tls' transport name
+
+2010-06-09 22:55  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   added straight 'dtls' transport name
+
+2010-06-08 21:05  magfr
+
+   * agent/Makefile.in:
+
+   Install agent_read_config.h in 5.6 as well. It disappeared in
+   r18843.
+
+2010-06-08 09:25  dts12
+
+   *  agent/mibgroup/hardware/fsys/hw_fsys.h,   
+      agent/mibgroup/host/hrh_filesys.c,   
+      agent/mibgroup/ucd-snmp/disk_hw.c:
+
+   Remove (or activate) unused variables.
+   Fix misnamed function declaration.
+
+2010-06-08 07:11  dts12
+
+   * include/net-snmp/agent/hardware/fsys.h:
+
+   API changes for preliminary HAL_based implementation of UCD disk
+   module.
+   (Omitted from revision 18932 checkin)
+
+2010-06-08 04:18  rstory
+
+   * agent/Makefile.in:
+
+   update makefile for moved helper headers
+
+2010-06-07 20:18  jsafranek
+
+   * agent/mibgroup/host/hr_proc.c:
+
+   Reverting rev. 17616, the necessary check is already in rev.
+   17415.
+
+2010-06-06 03:45  magfr
+
+   * configure, configure.d/config_project_paths:
+
+   CHANGES: building: In case exec_prefix is unset then set it to
+   '${prefix}' in order to pick up overrides of $prefix in make
+   install.
+
+2010-06-04 04:06  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   do a better job of verifying fingerprints of remote servers
+   pulling fingerprints from a number of possible places
+
+2010-06-04 04:05  hardaker
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   go ahead and log output file for easier debugging in errors
+
+2010-06-04 04:05  hardaker
+
+   * testing/fulltests/transports/Stlstests:
+
+   fix typo
+
+2010-06-04 04:05  hardaker
+
+   * snmplib/scapi.c:
+
+   remove comment about random being inadequate; we're doing the
+   best we can based on what we have
+
+2010-06-04 04:04  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   use another user for testing snmpapp default certificate
+
+2010-06-04 04:04  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   run a default test without a local key to ensure the snmpapp type
+   is picked up
+
+2010-06-04 04:04  hardaker
+
+   * snmplib/cert_util.c:
+
+   add a special case for the local identity and pull it from a
+   filename of the init_snmp() registered type name
+
+2010-06-04 04:03  hardaker
+
+   * testing/fulltests/support/NetSNMPTest.pm:
+
+   doc update
+
+2010-06-04 04:03  hardaker
+
+   * testing/fulltests/perl/T105unix.t:
+
+   unix socket test
+
+2010-06-04 04:03  hardaker
+
+   *  testing/fulltests/perl/T103udp6.t,   
+      testing/fulltests/perl/T104tcp6.t:
+
+   ipv6 tests
+
+2010-06-04 04:02  hardaker
+
+   *  testing/fulltests/perl/T101udp.t,   
+      testing/fulltests/perl/T102tcp.t:
+
+   mention test name is IPv4
+
+2010-06-04 04:02  hardaker
+
+   *  testing/fulltests/perl/T101udp.t,   
+      testing/fulltests/perl/T102tcp.t:
+
+   check that transport was configured
+
+2010-06-04 04:02  hardaker
+
+   * testing/fulltests/support/NetSNMPTest.pm:
+
+   add support for net-snmp-config.h checks
+
+2010-06-04 04:01  hardaker
+
+   *  testing/fulltests/perl/NetSNMPTestTransport.pm,   
+      testing/fulltests/perl/T101udp.t,   
+      testing/fulltests/perl/T102tcp.t:
+
+   some basic transport checking for perl: udp and tcp
+
+2010-06-04 04:01  hardaker
+
+   * testing/fulltests/perl, testing/fulltests/perl/T001basic.t:
+
+   basic tests for perl
+
+2010-06-04 04:01  hardaker
+
+   * testing/fulltests/support/NetSNMPTest.pm:
+
+   infrastructure module for testing perl support
+
+2010-06-03 15:56  dts12
+
+   * dist/makerelease.xml:
+
+   Point LIB{CURRENT,AGE,REVISION} documentation to the correct
+   file.
+   Warn about 'makedepend' picking up testing module code.
+   Emphasis update of 'download.html' page
+   Mention update of Official Patches
+   Suppress broken commands
+
+2010-06-03 15:16  dts12
+
+   *  agent/mibgroup/ucd-snmp/disk_hw.c,   
+      agent/mibgroup/ucd-snmp/disk_hw.h, agent/mibgroup/ucd_snmp.h:
+
+   Preliminary HAL_based implementation of UCD disk module.
+   Ensures consistent reporting between UCD and HostRes FSys usage
+   and extends 'skipNFSInHostResources' config to UCD disk stats.
+
+2010-06-03 15:13  dts12
+
+   * agent/mibgroup/hardware/fsys/hw_fsys.c:
+
+   Fix broken size calculations.
+   Support 64-bit size/usage values.
+
+2010-06-02 14:52  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   use --with-ca instead of --ca
+
+2010-06-02 14:51  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   use the new -brief option for fingerprint capturing
+
+2010-06-02 14:40  marz
+
+   * local/net-snmp-cert:
+
+   fix --with-ca handling, fix CA newcerts bookkeeping
+
 2010-06-02 10:57  jsafranek
 
    *  agent/mibgroup/disman/mteEventTable.c,   
@@ -7141,6 +14811,73 @@
    CHANGES: snmpd: fixed potential buffer overflow in parsing OIDs
    in config files.
 
+2010-06-02 00:24  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   check that CA certificates created after snmpd starts are still
+   usable; check all output fingerprints to ensure they were
+   properly created
+
+2010-06-02 00:23  hardaker
+
+   * local/net-snmp-cert:
+
+   add missing directory and file suffix to ca invocations
+
+2010-06-02 00:21  hardaker
+
+   * testing/fulltests/transports/Stls:
+
+   check that certificate output fingerprints were found
+
+2010-06-02 00:20  hardaker
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   two new functions for value comparison test output
+
+2010-06-02 00:16  hardaker
+
+   *  include/net-snmp/library/default_store.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      testing/fulltests/transports/Stls:
+
+   remove no-longer-used self-signed certificate token specifier (we
+   require a copy of the key)
+
+2010-06-02 00:08  hardaker
+
+   *  include/net-snmp/library/cert_util.h,   
+      include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/cert_util.c, snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c,   
+      testing/fulltests/transports/Stlstests:
+
+   - changed 'fingerprint' token to more generic 'identity' keyword
+   - added the ability for netsnmp_cert_find to try multiple types
+   (FP & file)
+   - and provide test suite test for it.
+
+2010-06-01 20:12  bvassche
+
+   *  testing/fulltests/default/T060trapdperl_simple,   
+      testing/fulltests/default/T061agentperl_simple,   
+      testing/fulltests/default/T115agentxperl_simple:
+
+   Made sure that the Perl extension modules can load the Net-SNMP
+   DLLs while running the Net-SNMP regression tests.
+
+2010-06-01 16:47  marz
+
+   * local/certgen-test.pl, local/net-snmp-cert:
+
+   major update bug fixes and features - interactive mode, separate
+   CA dirs, gen csr from cert, fingerprint display --brief,
+   eliminate sed, openssl.conf overwrite and templating
+
 2010-06-01 14:48  bvassche
 
    * agent/helpers/table.c:
@@ -7155,6 +14892,457 @@
    
    Just fixing a stupid typo.
 
+2010-05-31 10:43  bvassche
+
+   * configure, configure.d/config_modules_lib:
+
+   CHANGES: Cygwin: enabled Unix transport.
+   (Forward-ported r18687 from the V5.5 branch).
+
+2010-05-30 22:52  tanders
+
+   * testing/RUNFULLTESTS:
+
+   enable to run with older Perl (e.g. Perl 5.00405 as shipped with
+   IRIX
+   6.5)
+
+2010-05-30 22:49  tanders
+
+   * testing/RUNFULLTESTS:
+
+   polish documentation
+
+2010-05-30 20:19  magfr
+
+   *  agent/Makefile.in, agent/helpers/Makefile.in, apps/Makefile.in,   
+      net-snmp-config.in, net-snmp-create-v3-user.in,   
+      perl/TrapReceiver/Makefile.PL, perl/agent/Makefile.PL:
+
+   CHANGES: building: Do not link with libnetsnmphelpers any more as
+   it is empty.
+
+2010-05-30 19:18  magfr
+
+   * include/net-snmp/library/snmp.h, snmplib/snmp.c:
+
+   CHANGES: snmplib: Use a void argument for the data argument of
+   xdump.
+
+2010-05-30 19:18  bvassche
+
+   * agent/snmp_perl.c:
+
+   CHANGES: BUG: 2051742: added missing PERL_SYS_INIT3() call (see
+   also man perlembed).
+
+2010-05-30 19:16  bvassche
+
+   * include/net-snmp/library/container.h:
+
+   Fixed a compiler warning (free() called without being declared
+   first).
+
+2010-05-30 16:56  magfr
+
+   *  acconfig.h, agent/mibgroup/mibII/vacm_conf.c,   
+      agent/mibgroup/smux/smux.h, configure,   
+      configure.d/config_modules_lib,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   NEWS: snmplib: Do not require that the UDP transport is included.
+
+2010-05-30 12:00  magfr
+
+   *  include/net-snmp/library/snmpCallbackDomain.h,   
+      include/net-snmp/library/snmpDTLSUDPDomain.h,   
+      include/net-snmp/library/snmpIPv4BaseDomain.h,   
+      include/net-snmp/library/snmpIPv6BaseDomain.h,   
+      include/net-snmp/library/snmpSSHDomain.h,   
+      include/net-snmp/library/snmpSTDDomain.h,   
+      include/net-snmp/library/snmpTCPBaseDomain.h,   
+      include/net-snmp/library/snmpTCPDomain.h,   
+      include/net-snmp/library/snmpTCPIPv6Domain.h,   
+      include/net-snmp/library/snmpTLSTCPDomain.h,   
+      include/net-snmp/library/snmpUDPBaseDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h,   
+      include/net-snmp/library/snmpUnixDomain.h,   
+      include/net-snmp/library/snmp_transport.h,   
+      snmplib/snmp_transport.c, snmplib/transports/snmpAAL5PVCDomain.c, 
+        snmplib/transports/snmpAliasDomain.c,   
+      snmplib/transports/snmpCallbackDomain.c,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpIPXDomain.c,   
+      snmplib/transports/snmpIPv4BaseDomain.c,   
+      snmplib/transports/snmpIPv6BaseDomain.c,   
+      snmplib/transports/snmpSSHDomain.c,   
+      snmplib/transports/snmpSTDDomain.c,   
+      snmplib/transports/snmpSocketBaseDomain.c,   
+      snmplib/transports/snmpTCPBaseDomain.c,   
+      snmplib/transports/snmpTCPDomain.c,   
+      snmplib/transports/snmpTCPIPv6Domain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c,   
+      snmplib/transports/snmpUDPBaseDomain.c,   
+      snmplib/transports/snmpUDPDomain.c,   
+      snmplib/transports/snmpUDPIPv4BaseDomain.c,   
+      snmplib/transports/snmpUDPIPv6Domain.c,   
+      snmplib/transports/snmpUnixDomain.c:
+
+   CHANGES: snmplib: Correct dependencies between transports. Remove
+   unnecessary includes.
+
+2010-05-30 06:21  bvassche
+
+   * agent/helpers/Makefile.in, agent/helpers/dummy.c:
+
+   Made sure that libnetsnmphelpers is not empty such that building
+   Net-SNMP on AIX and IRIX is again possible.
+
+2010-05-29 09:52  bvassche
+
+   * testing/RUNFULLTESTS:
+
+   Follow-up for r18902: works again without TAP::Harness.
+
+2010-05-28 23:23  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   fix long-ago broken verbosity
+
+2010-05-28 23:05  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   fix more previously broken option renames; change -d to
+   master-directory and add as a real argument
+
+2010-05-28 23:05  hardaker
+
+   *  testing/fulltests/default/T001snmpv1get_simple,   
+      testing/fulltests/default/T014snmpv2cget_simple,   
+      testing/fulltests/default/T015snmpv2cgetnext_simple,   
+      testing/fulltests/default/T0160snmpv2cbulkget_simple,   
+      testing/fulltests/default/T016snmpv2cgetfail_simple,   
+      testing/fulltests/default/T017snmpv2ctov1getfail_simple,   
+      testing/fulltests/default/T018snmpv1tov2cgetfail_simple,   
+      testing/fulltests/default/T019snmpv2cnosuch_simple,   
+      testing/fulltests/default/T020snmpv3get_simple,   
+      testing/fulltests/default/T021snmpv3getnext_simple,   
+      testing/fulltests/default/T0220snmpv3bulkget_simple,   
+      testing/fulltests/default/T022snmpv3getMD5_simple,   
+      testing/fulltests/default/T023snmpv3getMD5AES_simple,   
+      testing/fulltests/default/T023snmpv3getMD5DES_simple,   
+      testing/fulltests/default/T024snmpv3getSHA1_simple,   
+      testing/fulltests/default/T025snmpv3getSHADES_simple,   
+      testing/fulltests/default/T026snmpv3getSHAAES_simple,   
+      testing/fulltests/default/T028snmpv3getfail_simple,   
+      testing/fulltests/default/T030snmpv3usercreation_simple,   
+      testing/fulltests/default/T035snmpv3trapdusermgmt_simple,   
+      testing/fulltests/default/T049snmpv3inform_simple,   
+      testing/fulltests/default/T049snmpv3informauth_simple,   
+      testing/fulltests/default/T049snmpv3informpriv_simple,   
+      testing/fulltests/default/T050snmpv3trap_simple,   
+      testing/fulltests/default/T051snmpv2ctrap_simple,   
+      testing/fulltests/default/T052snmpv2cinform_simple,   
+      testing/fulltests/default/T053agentv1trap_simple,   
+      testing/fulltests/default/T054agentv2ctrap_simple,   
+      testing/fulltests/default/T055agentv1mintrap_simple,   
+      testing/fulltests/default/T056agentv2cmintrap_simple,   
+      testing/fulltests/default/T057trapdauthtest2_simple,   
+      testing/fulltests/default/T057trapdauthtest3_simple,   
+      testing/fulltests/default/T057trapdauthtest_simple,   
+      testing/fulltests/default/T058agentauthtrap_simple,   
+      testing/fulltests/default/T059trapdtraphandle_simple,   
+      testing/fulltests/default/T060trapdperl_simple,   
+      testing/fulltests/default/T061agentperl_simple,   
+      testing/fulltests/default/T065agentextend_simple,   
+      testing/fulltests/default/T070com2sec_simple,   
+      testing/fulltests/default/T071com2sec6_simple,   
+      testing/fulltests/default/T072com2secunix_simple,   
+      testing/fulltests/default/T100agenthup_simple,   
+      testing/fulltests/default/T110agentxget_simple,   
+      testing/fulltests/default/T111agentxset_simple,   
+      testing/fulltests/default/T112agentxsetfail_simple,   
+      testing/fulltests/default/T113agentxtrap_simple,   
+      testing/fulltests/default/T114agentxagentxtrap_simple,   
+      testing/fulltests/default/T115agentxperl_simple,   
+      testing/fulltests/default/T120proxyget_simple,   
+      testing/fulltests/default/T121proxyset_simple,   
+      testing/fulltests/default/T122proxysetfail_simple,   
+      testing/fulltests/default/T130snmpv1vacmget_simple,   
+      testing/fulltests/default/T131snmpv2cvacmget_simple,   
+      testing/fulltests/default/T132snmpv3vacmget_simple,   
+      testing/fulltests/default/T140snmpv1vacmgetfail_simple,   
+      testing/fulltests/default/T141snmpv2cvacmgetfail_simple,   
+      testing/fulltests/default/T142snmpv3vacmgetfail_simple,   
+      testing/fulltests/default/T150solarishostcpu_simple,   
+      testing/fulltests/default/T151solarishostdisk_simple,   
+      testing/fulltests/default/T152hostuptime_simple,   
+      testing/fulltests/default/T153solarisswap_simple,   
+      testing/fulltests/default/T160snmpnetstat_simple,   
+      testing/fulltests/default/T200snmpv2cwalkall_simple,   
+      testing/fulltests/transports/T300udp_simple,   
+      testing/fulltests/transports/T310tcp_simple,   
+      testing/fulltests/transports/T320udpv6_simple,   
+      testing/fulltests/transports/T330tcpv6_simple,   
+      testing/fulltests/transports/T350unix_simple,   
+      testing/fulltests/transports/T360dtlsudp_simple,   
+      testing/fulltests/transports/T361tlstcp_simple,   
+      testing/fulltests/transports/T399alias_simple:
+
+   more missing olducd renames
+
+2010-05-28 22:57  hardaker
+
+   *  testing/RUNTESTS, testing/fulltests/default/T001snmpv1get_olducd, 
+        testing/fulltests/default/T001snmpv1get_simple,   
+      testing/fulltests/default/T014snmpv2cget_olducd,   
+      testing/fulltests/default/T014snmpv2cget_simple,   
+      testing/fulltests/default/T015snmpv2cgetnext_olducd,   
+      testing/fulltests/default/T015snmpv2cgetnext_simple,   
+      testing/fulltests/default/T0160snmpv2cbulkget_olducd,   
+      testing/fulltests/default/T0160snmpv2cbulkget_simple,   
+      testing/fulltests/default/T016snmpv2cgetfail_olducd,   
+      testing/fulltests/default/T016snmpv2cgetfail_simple,   
+      testing/fulltests/default/T017snmpv2ctov1getfail_olducd,   
+      testing/fulltests/default/T017snmpv2ctov1getfail_simple,   
+      testing/fulltests/default/T018snmpv1tov2cgetfail_olducd,   
+      testing/fulltests/default/T018snmpv1tov2cgetfail_simple,   
+      testing/fulltests/default/T019snmpv2cnosuch_olducd,   
+      testing/fulltests/default/T019snmpv2cnosuch_simple,   
+      testing/fulltests/default/T020snmpv3get_olducd,   
+      testing/fulltests/default/T020snmpv3get_simple,   
+      testing/fulltests/default/T021snmpv3getnext_olducd,   
+      testing/fulltests/default/T021snmpv3getnext_simple,   
+      testing/fulltests/default/T0220snmpv3bulkget_olducd,   
+      testing/fulltests/default/T0220snmpv3bulkget_simple,   
+      testing/fulltests/default/T022snmpv3getMD5_olducd,   
+      testing/fulltests/default/T022snmpv3getMD5_simple,   
+      testing/fulltests/default/T023snmpv3getMD5AES_olducd,   
+      testing/fulltests/default/T023snmpv3getMD5AES_simple,   
+      testing/fulltests/default/T023snmpv3getMD5DES_olducd,   
+      testing/fulltests/default/T023snmpv3getMD5DES_simple,   
+      testing/fulltests/default/T024snmpv3getSHA1_olducd,   
+      testing/fulltests/default/T024snmpv3getSHA1_simple,   
+      testing/fulltests/default/T025snmpv3getSHADES_olducd,   
+      testing/fulltests/default/T025snmpv3getSHADES_simple,   
+      testing/fulltests/default/T026snmpv3getSHAAES_olducd,   
+      testing/fulltests/default/T026snmpv3getSHAAES_simple,   
+      testing/fulltests/default/T028snmpv3getfail_olducd,   
+      testing/fulltests/default/T028snmpv3getfail_simple,   
+      testing/fulltests/default/T030snmpv3usercreation_olducd,   
+      testing/fulltests/default/T030snmpv3usercreation_simple,   
+      testing/fulltests/default/T035snmpv3trapdusermgmt_olducd,   
+      testing/fulltests/default/T035snmpv3trapdusermgmt_simple,   
+      testing/fulltests/default/T049snmpv3inform_olducd,   
+      testing/fulltests/default/T049snmpv3inform_simple,   
+      testing/fulltests/default/T049snmpv3informauth_olducd,   
+      testing/fulltests/default/T049snmpv3informauth_simple,   
+      testing/fulltests/default/T049snmpv3informpriv_olducd,   
+      testing/fulltests/default/T049snmpv3informpriv_simple,   
+      testing/fulltests/default/T050snmpv3trap_olducd,   
+      testing/fulltests/default/T050snmpv3trap_simple,   
+      testing/fulltests/default/T051snmpv2ctrap_olducd,   
+      testing/fulltests/default/T051snmpv2ctrap_simple,   
+      testing/fulltests/default/T052snmpv2cinform_olducd,   
+      testing/fulltests/default/T052snmpv2cinform_simple,   
+      testing/fulltests/default/T053agentv1trap_olducd,   
+      testing/fulltests/default/T053agentv1trap_simple,   
+      testing/fulltests/default/T054agentv2ctrap_olducd,   
+      testing/fulltests/default/T054agentv2ctrap_simple,   
+      testing/fulltests/default/T055agentv1mintrap_olducd,   
+      testing/fulltests/default/T055agentv1mintrap_simple,   
+      testing/fulltests/default/T056agentv2cmintrap_olducd,   
+      testing/fulltests/default/T056agentv2cmintrap_simple,   
+      testing/fulltests/default/T057trapdauthtest2_olducd,   
+      testing/fulltests/default/T057trapdauthtest2_simple,   
+      testing/fulltests/default/T057trapdauthtest3_olducd,   
+      testing/fulltests/default/T057trapdauthtest3_simple,   
+      testing/fulltests/default/T057trapdauthtest_olducd,   
+      testing/fulltests/default/T057trapdauthtest_simple,   
+      testing/fulltests/default/T058agentauthtrap_olducd,   
+      testing/fulltests/default/T058agentauthtrap_simple,   
+      testing/fulltests/default/T059trapdtraphandle_olducd,   
+      testing/fulltests/default/T059trapdtraphandle_simple,   
+      testing/fulltests/default/T060trapdperl_olducd,   
+      testing/fulltests/default/T060trapdperl_simple,   
+      testing/fulltests/default/T061agentperl_olducd,   
+      testing/fulltests/default/T061agentperl_simple,   
+      testing/fulltests/default/T065agentextend_olducd,   
+      testing/fulltests/default/T065agentextend_simple,   
+      testing/fulltests/default/T070com2sec_olducd,   
+      testing/fulltests/default/T070com2sec_simple,   
+      testing/fulltests/default/T071com2sec6_olducd,   
+      testing/fulltests/default/T071com2sec6_simple,   
+      testing/fulltests/default/T072com2secunix_olducd,   
+      testing/fulltests/default/T072com2secunix_simple,   
+      testing/fulltests/default/T100agenthup_olducd,   
+      testing/fulltests/default/T100agenthup_simple,   
+      testing/fulltests/default/T110agentxget_olducd,   
+      testing/fulltests/default/T110agentxget_simple,   
+      testing/fulltests/default/T111agentxset_olducd,   
+      testing/fulltests/default/T111agentxset_simple,   
+      testing/fulltests/default/T112agentxsetfail_olducd,   
+      testing/fulltests/default/T112agentxsetfail_simple,   
+      testing/fulltests/default/T113agentxtrap_olducd,   
+      testing/fulltests/default/T113agentxtrap_simple,   
+      testing/fulltests/default/T114agentxagentxtrap_olducd,   
+      testing/fulltests/default/T114agentxagentxtrap_simple,   
+      testing/fulltests/default/T115agentxperl_olducd,   
+      testing/fulltests/default/T115agentxperl_simple,   
+      testing/fulltests/default/T120proxyget_olducd,   
+      testing/fulltests/default/T120proxyget_simple,   
+      testing/fulltests/default/T121proxyset_olducd,   
+      testing/fulltests/default/T121proxyset_simple,   
+      testing/fulltests/default/T122proxysetfail_olducd,   
+      testing/fulltests/default/T122proxysetfail_simple,   
+      testing/fulltests/default/T130snmpv1vacmget_olducd,   
+      testing/fulltests/default/T130snmpv1vacmget_simple,   
+      testing/fulltests/default/T131snmpv2cvacmget_olducd,   
+      testing/fulltests/default/T131snmpv2cvacmget_simple,   
+      testing/fulltests/default/T132snmpv3vacmget_olducd,   
+      testing/fulltests/default/T132snmpv3vacmget_simple,   
+      testing/fulltests/default/T140snmpv1vacmgetfail_olducd,   
+      testing/fulltests/default/T140snmpv1vacmgetfail_simple,   
+      testing/fulltests/default/T141snmpv2cvacmgetfail_olducd,   
+      testing/fulltests/default/T141snmpv2cvacmgetfail_simple,   
+      testing/fulltests/default/T142snmpv3vacmgetfail_olducd,   
+      testing/fulltests/default/T142snmpv3vacmgetfail_simple,   
+      testing/fulltests/default/T150solarishostcpu_olducd,   
+      testing/fulltests/default/T150solarishostcpu_simple,   
+      testing/fulltests/default/T151solarishostdisk_olducd,   
+      testing/fulltests/default/T151solarishostdisk_simple,   
+      testing/fulltests/default/T152hostuptime_olducd,   
+      testing/fulltests/default/T152hostuptime_simple,   
+      testing/fulltests/default/T153solarisswap_olducd,   
+      testing/fulltests/default/T153solarisswap_simple,   
+      testing/fulltests/default/T160snmpnetstat_olducd,   
+      testing/fulltests/default/T160snmpnetstat_simple,   
+      testing/fulltests/default/T200snmpv2cwalkall_olducd,   
+      testing/fulltests/default/T200snmpv2cwalkall_simple,   
+      testing/fulltests/support/olducd_TESTCONF.sh,   
+      testing/fulltests/support/olducd_eval_tools.sh,   
+      testing/fulltests/support/olducd_run,   
+      testing/fulltests/support/simple_TESTCONF.sh,   
+      testing/fulltests/support/simple_eval_tools.sh,   
+      testing/fulltests/support/simple_run,   
+      testing/fulltests/transports/T300udp_olducd,   
+      testing/fulltests/transports/T300udp_simple,   
+      testing/fulltests/transports/T310tcp_olducd,   
+      testing/fulltests/transports/T310tcp_simple,   
+      testing/fulltests/transports/T320udpv6_olducd,   
+      testing/fulltests/transports/T320udpv6_simple,   
+      testing/fulltests/transports/T330tcpv6_olducd,   
+      testing/fulltests/transports/T330tcpv6_simple,   
+      testing/fulltests/transports/T350unix_olducd,   
+      testing/fulltests/transports/T350unix_simple,   
+      testing/fulltests/transports/T360dtlsudp_olducd,   
+      testing/fulltests/transports/T360dtlsudp_simple,   
+      testing/fulltests/transports/T361tlstcp_olducd,   
+      testing/fulltests/transports/T361tlstcp_simple,   
+      testing/fulltests/transports/T399alias_olducd,   
+      testing/fulltests/transports/T399alias_simple:
+
+   renamed 'olducd' to 'simple' to put a more positive spin on them
+
+2010-05-28 22:54  hardaker
+
+   * testing/README, testing/RUNFULLTESTS:
+
+   documentation for the test suite
+
+2010-05-28 22:53  hardaker
+
+   * python/netsnmp/tests/test.py:
+
+   revert unintentionanally committed test test
+
+2010-05-28 22:53  hardaker
+
+   * python/netsnmp/client_intf.c, python/netsnmp/tests/test.py:
+
+   free variables again
+
+2010-05-28 22:53  hardaker
+
+   * python/netsnmp/client_intf.c:
+
+   fix walks so that multiple walks terminate properly
+
+2010-05-28 22:53  hardaker
+
+   * python/netsnmp/client_intf.c:
+
+   patch to handle testing of looping of multiple varbinds in a walk
+
+2010-05-28 22:53  hardaker
+
+   * python/netsnmp/client_intf.c:
+
+   inital patch to prevent looping walks
+
+2010-05-28 20:53  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   implement cert lookup by filename
+
+2010-05-28 07:02  magfr
+
+   * snmplib/snmp_debug.c:
+
+   CHANGES: snmplib: Add const declarations to the disabled versions
+   of the debugging code as well.
+
+2010-05-28 02:12  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c:
+
+   add persistence; check for col mods while row active
+
+2010-05-28 02:11  rstory
+
+   *  agent/helpers/table_dataset.c,   
+      include/net-snmp/agent/table_dataset.h:
+
+   CHANGES: agentlib: new functions to make stash ptr and newrow
+   available to
+   table_dataset handlers
+   nonews: fix typo; tabs to spaces; use sizeof instead of constant
+
+2010-05-27 18:59  bvassche
+
+   *  include/net-snmp/library/check_varbind.h,   
+      include/net-snmp/library/read_config.h,   
+      include/net-snmp/library/snmp_client.h,   
+      win32/libsnmp/Makefile.in, win32/libsnmp/libsnmp.dsp,   
+      win32/libsnmp_dll/Makefile.in, win32/libsnmp_dll/libsnmp_dll.dsp:
+
+   Win32 build fixes.
+
+2010-05-27 18:24  bvassche
+
+   * testing/RUNFULLTESTS:
+
+   "make test" without TAP::Harness (was broken by r18802).
+
+2010-05-27 15:15  bvassche
+
+   *  agent/mibgroup/mibII/interfaces.c,   
+      include/net-snmp/library/lcd_time.h,   
+      include/net-snmp/library/md5.h, include/net-snmp/library/scapi.h, 
+        include/net-snmp/library/snmp_debug.h, snmplib/lcd_time.c,   
+      snmplib/md5.c, snmplib/scapi.c, snmplib/snmp_debug.c,   
+      snmplib/transports/snmpIPv4BaseDomain.c:
+
+   Fixed several compiler warnings. Most fixes involved adding the
+   "const" keyword.
+
 2010-05-27 13:52  jsafranek
 
    * agent/mibgroup/target/snmpTargetAddrEntry.c:
@@ -7162,6 +15350,14 @@
    CHANGES: snmpd: BUG: 2972579: fixed checking of
    snmpTargetAddrRowStatus SET requests.
 
+2010-05-27 13:41  hardaker
+
+   *  testing/fulltests/support/olducd_TESTCONF.sh,   
+      testing/fulltests/support/olducd_run:
+
+   revert part of 18885: test files should be able to be run by
+   themselves too
+
 2010-05-27 11:19  jsafranek
 
    *  agent/mibgroup/if-mib/data_access/interface.c,   
@@ -7185,15 +15381,552 @@
    failed' error in
    snmpd log. Now the agent expands these values to 64bits first and
    *     *then* performs    the calculation, using a new flag. 
-      2010-05-24 10:10  jsafranek
+      2010-05-27 08:18  magfr
 
 
+   *  testing/RUNFULLTESTS, testing/RUNTESTS,   
+      testing/fulltests/support/olducd_TESTCONF.sh,   
+      testing/fulltests/support/olducd_run:
+
+   CHANGES: testing: Move the setting of MIBDIRS from the support
+   script to the drivers since it is needed for the C tests as well.
+
+2010-05-27 08:09  magfr
+
+   * testing/RUNTESTS:
+
+   CHANGES: testing: Use olducd_run, not run_olducd. Change srcdir
+   to refer to the top directory and not the testing subdirectory as
+   that is what is expected in the test scripts.
+
+2010-05-27 05:17  hardaker
+
+   *  testing/fulltests/snmpv3/T020hashtests_capp.c,   
+      testing/fulltests/snmpv3/T040keymanagetest_capp.c,   
+      testing/fulltests/snmpv3/T050etimetest_capp.c:
+
+   warning squashing
+
+2010-05-27 05:16  hardaker
+
+   *  include/net-snmp/library/keytools.h,   
+      include/net-snmp/library/lcd_time.h, snmplib/keytools.c,   
+      snmplib/lcd_time.c:
+
+   more const correctness
+
+2010-05-27 04:18  hardaker
+
+   * testing/fulltests/transports/Stlstests:
+
+   tests for agent-not-known-user-certificates
+
+2010-05-27 04:16  hardaker
+
+   * README.snmpv3:
+
+   reference the itnernal support and related documentation
+
+2010-05-27 04:16  hardaker
+
+   * snmplib/openssl/OPENSSL-LICENSE, snmplib/openssl/README:
+
+   internal OpenSSL support documentation
+
+2010-05-27 04:16  hardaker
+
+   * configure, configure.d/config_project_with_enable:
+
+   NEWS: libnetsnmp: Support for a stream-line stripped down version
+   of internal OpenSSL support using --with-openssl=internal
+
+2010-05-27 04:15  hardaker
+
+   *  include/net-snmp/library/openssl_aes.h,   
+      include/net-snmp/library/openssl_des.h,   
+      include/net-snmp/openssl_md5.h,   
+      snmplib/openssl/openssl_aes_cfb.c,   
+      snmplib/openssl/openssl_aes_local.h,   
+      snmplib/openssl/openssl_des_local.h,   
+      snmplib/openssl/openssl_set_key.c, snmplib/openssl/openssl_spr.h, 
+        snmplib/scapi.c:
+
+   remove more dependencies for external openssl headers
+
+2010-05-27 04:15  hardaker
+
+   *  configure, configure.d/config_os_libs, snmplib/openssl,   
+      snmplib/openssl/openssl_aes_cfb.c,   
+      snmplib/openssl/openssl_aes_core.c,   
+      snmplib/openssl/openssl_aes_local.h,   
+      snmplib/openssl/openssl_cbc_enc.c,   
+      snmplib/openssl/openssl_cfb128.c,   
+      snmplib/openssl/openssl_des_enc.c,   
+      snmplib/openssl/openssl_des_local.h,   
+      snmplib/openssl/openssl_md32_common.h,   
+      snmplib/openssl/openssl_md5.c,   
+      snmplib/openssl/openssl_md5_local.h,   
+      snmplib/openssl/openssl_modes.h,   
+      snmplib/openssl/openssl_ncbc_enc.c,   
+      snmplib/openssl/openssl_set_key.c, snmplib/openssl/openssl_sha.h, 
+        snmplib/openssl/openssl_sha1.c,   
+      snmplib/openssl/openssl_sha_local.h,   
+      snmplib/openssl/openssl_spr.h, snmplib/openssl_aes_cfb.c,   
+      snmplib/openssl_aes_core.c, snmplib/openssl_aes_local.h,   
+      snmplib/openssl_cbc_enc.c, snmplib/openssl_cfb128.c,   
+      snmplib/openssl_des_enc.c, snmplib/openssl_des_local.h,   
+      snmplib/openssl_md32_common.h, snmplib/openssl_md5.c,   
+      snmplib/openssl_md5_local.h, snmplib/openssl_modes.h,   
+      snmplib/openssl_ncbc_enc.c, snmplib/openssl_set_key.c,   
+      snmplib/openssl_sha.h, snmplib/openssl_sha1.c,   
+      snmplib/openssl_sha_local.h, snmplib/openssl_spr.h:
+
+   move openssl code into a subdirectory
+
+2010-05-27 04:13  hardaker
+
+   *  testing/fulltests/default/Sv3usmconfigbase,   
+      testing/fulltests/default/T023snmpv3getMD5AES_olducd,   
+      testing/fulltests/default/T023snmpv3getMD5DES_olducd,   
+      testing/fulltests/default/T024snmpv3getSHA1_olducd,   
+      testing/fulltests/default/T025snmpv3getSHADES_olducd,   
+      testing/fulltests/default/T026snmpv3getSHAAES_olducd,   
+      testing/fulltests/default/T030snmpv3usercreation_olducd,   
+      testing/fulltests/default/T035snmpv3trapdusermgmt_olducd,   
+      testing/fulltests/default/T049snmpv3informpriv_olducd,   
+      testing/fulltests/default/T050snmpv3trap_olducd:
+
+   fix testing so it uses multiple types of crypto
+
+2010-05-27 04:13  hardaker
+
+   *  acconfig.h, configure, configure.d/config_os_libs,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   definitions and files for doing internal crypto support
+
+2010-05-27 04:12  hardaker
+
+   * snmplib/scapi.c:
+
+   include internal aes/des headers
+
+2010-05-27 04:12  hardaker
+
+   * snmplib/openssl_cfb128.c:
+
+   localize
+
+2010-05-27 04:12  hardaker
+
+   * snmplib/openssl_cfb128.c, snmplib/openssl_modes.h:
+
+   inital copies of cfb128 modes from openssl
+
+2010-05-27 04:11  hardaker
+
+   * snmplib/openssl_aes_core.c:
+
+   localize
+
+2010-05-27 04:11  hardaker
+
+   * snmplib/openssl_aes_core.c, snmplib/openssl_aes_local.h:
+
+   initial versions of aes_core.c and aes_locl.h
+
+2010-05-27 04:10  hardaker
+
+   * include/net-snmp/library/openssl_aes.h:
+
+   initial copy of aes.h from openssl
+
+2010-05-27 04:10  hardaker
+
+   * snmplib/openssl_aes_cfb.c:
+
+   initial copy of the openssl aes_cfb.c file
+
+2010-05-27 04:10  hardaker
+
+   * snmplib/openssl_des_enc.c:
+
+   include localized copies of the files
+
+2010-05-27 04:09  hardaker
+
+   * snmplib/scapi.c:
+
+   use internal DES
+
+2010-05-27 04:09  hardaker
+
+   * snmplib/openssl_cbc_enc.c:
+
+   localized copy of the cbc_enc.c file from openssl
+
+2010-05-27 04:09  hardaker
+
+   * snmplib/openssl_spr.h:
+
+   des/spr.h from openssl
+
+2010-05-27 04:08  hardaker
+
+   * snmplib/openssl_des_enc.c:
+
+   added des_enc.c from openssl
+
+2010-05-27 04:08  hardaker
+
+   *  include/net-snmp/library/openssl_des.h,   
+      include/net-snmp/library/openssl_md5.h,   
+      include/net-snmp/library/openssl_sha.h:
+
+   local copies of the openssl headers
+
+2010-05-27 04:07  hardaker
+
+   * include/net-snmp/library/openssl_des.h:
+
+   initial copy of openssl's des.h
+
+2010-05-27 04:07  hardaker
+
+   * snmplib/openssl_ncbc_enc.c, snmplib/openssl_set_key.c:
+
+   localized header files
+
+2010-05-27 04:07  hardaker
+
+   *  snmplib/openssl_des_local.h, snmplib/openssl_ncbc_enc.c,   
+      snmplib/openssl_set_key.c:
+
+   inital copies of some of the openssl DES files
+
+2010-05-27 04:06  hardaker
+
+   * snmplib/keytools.c, snmplib/scapi.c:
+
+   finishing porting of internal auth support
+
+2010-05-27 04:06  hardaker
+
+   * configure, configure.d/config_os_libs, snmplib/Makefile.in:
+
+   add internal crypto files to the check/use list
+
+2010-05-27 04:06  hardaker
+
+   *  snmplib/md32_common.h, snmplib/md5_locl.h,   
+      snmplib/openssl_md32_common.h, snmplib/openssl_md5.c,   
+      snmplib/openssl_md5_local.h, snmplib/openssl_sha1.c,   
+      snmplib/openssl_sha_local.h, snmplib/sha_locl.h:
+
+   localized file names with openssl prefixes
+
+2010-05-27 04:05  hardaker
+
+   *  include/net-snmp/openssl_md5.h, snmplib/md5_locl.h,   
+      snmplib/openssl_md5.c:
+
+   localize the md5 implementation
+
+2010-05-27 04:05  hardaker
+
+   *  snmplib/openssl_sha.h, snmplib/openssl_sha1.c,   
+      snmplib/sha_locl.h:
+
+   completely localize the openssl SHA support
+
+2010-05-27 04:04  hardaker
+
+   * snmplib/openssl_sha.h:
+
+   initial verison of sha.h copy
+
+2010-05-27 04:04  hardaker
+
+   *  snmplib/md32_common.h, snmplib/md5_locl.h, snmplib/openssl_md5.c, 
+        snmplib/openssl_sha1.c, snmplib/sha_locl.h:
+
+   added local copies of the openssl crypto functions
+
+2010-05-27 04:04  hardaker
+
+   * snmplib/keytools.c:
+
+   make use of internal crypto hash functions
+
+2010-05-27 04:03  hardaker
+
+   *  configure, configure.d/config_os_libs,   
+      configure.d/config_os_misc2,   
+      configure.d/config_project_with_enable,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   configure checks for internal-crypto support
+
+2010-05-26 22:17  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      include/net-snmp/library/snmp_api.h,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      testing/fulltests/transports/Stlstests:
+
+   properly verify expected server certificates under DTLS; add a
+   new flag in tlsbase to indicate verification has occurred
+
+2010-05-26 21:02  hardaker
+
+   *  testing/fulltests/snmpv3/T010scapitest_capp.c,   
+      testing/fulltests/snmpv3/T050etimetest_capp.c:
+
+   compiler warning squashing
+
+2010-05-26 21:02  hardaker
+
+   *  include/net-snmp/library/lcd_time.h,   
+      include/net-snmp/library/scapi.h, snmplib/lcd_time.c,   
+      snmplib/scapi.c:
+
+   add const qualifiers to a few places
+
+2010-05-26 19:46  bvassche
+
+   *  agent/Makefile.in, agent/helpers/Makefile.in,   
+      snmplib/Makefile.in:
+
+   CHANGES: Cygwin: libnetsnmpmibs, libnetsnmphelpers and
+   libnetsnmpagent do now build as a DLL when configured with
+   --enable-shared.
+
+2010-05-26 17:47  bvassche
+
+   * agent/Makefile.in, agent/helpers/Makefile.in:
+
+   NEWS: moved all functions defined in libnetsnmphelpers to
+   libnetsnmpagent. libnetsnmphelpers is now an empty library.
+
+2010-05-26 17:20  bvassche
+
+   *  agent/Makefile.in, agent/bulk_to_next.c,   
+      agent/helpers/Makefile.in, agent/helpers/bulk_to_next.c,   
+      agent/helpers/null.c, agent/helpers/old_api.c, agent/null.c,   
+      agent/old_api.c:
+
+   Reverted r18829 in order to minimize diffs with older branches.
+
+2010-05-25 07:23  magfr
+
+   * testing/fulltests/transports/Stls:
+
+   Tell net-snmp-cert where net-snmp-config is located
+
+2010-05-25 07:14  magfr
+
+   * testing/fulltests/support/clib_build:
+
+   Correct the signature of main. Use #include instead of sourcing
+   to get the code under test in order to get better error messages
+
+2010-05-25 07:11  magfr
+
+   * testing/fulltests/unit-tests/T001defaultstore_clib.c:
+
+   Add arguments to sprintf statements to make the test work
+
+2010-05-25 07:07  magfr
+
+   *  testing/fulltests/snmpv3/T010scapitest_capp.c,   
+      testing/fulltests/snmpv3/T020hashtests_capp.c,   
+      testing/fulltests/snmpv3/T050etimetest_capp.c,   
+      testing/fulltests/unit-tests/T002containers_clib.c:
+
+   Remove unused variables and disabled code
+
+2010-05-25 05:20  magfr
+
+   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
+      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      apps/snmpnetstat/Makefile.depend,   
+      include/net-snmp/library/snmpIPBaseDomain.h,   
+      include/net-snmp/library/snmpIPv4BaseDomain.h,   
+      include/net-snmp/library/snmpIPv6BaseDomain.h,   
+      include/net-snmp/library/snmpSocketBaseDomain.h,   
+      include/net-snmp/library/snmpTLSTCPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
+      snmplib/Makefile.depend, snmplib/transports/snmpIPBaseDomain.c,   
+      snmplib/transports/snmpIPv4BaseDomain.c,   
+      snmplib/transports/snmpSocketBaseDomain.c:
+
+   CHANGES: snmplib: Split snmpIPBaseDomain and move the IPv4 parts
+   to IPv4Base and the socket generic parts to SocketBase.
+
+2010-05-24 20:24  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c:
+
+   fix compiler warning; finish tlstmParamsTable lastChanged scalar
+
+2010-05-24 19:28  magfr
+
+   *  testing/fulltests/support/capp_build,   
+      testing/fulltests/support/clib_build:
+
+   Add --external-libs in order to support building the tests on
+   solaris
+
+2010-05-24 13:33  rstory
+
+   *  agent/mibgroup/tlstm-mib.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c:
+
+   argh.. fix fallout from manually (mis)applying patch
+
+2010-05-24 12:59  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmParamsTable,   
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h:
+
+   first pass at tlstmParamsTable
+
+2010-05-24 12:59  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_internal.h,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h:
+
+   update defines to match MIB names, per grand-poobah
+
+2010-05-24 12:58  rstory
+
+   * agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.c:
+
+   update OID to match upcoming RFC
+
+2010-05-24 11:48  bvassche
+
+   *  agent/Makefile.in, agent/bulk_to_next.c,   
+      agent/helpers/Makefile.in, agent/helpers/bulk_to_next.c,   
+      agent/helpers/null.c, agent/helpers/old_api.c, agent/null.c,   
+      agent/old_api.c:
+
+   CHANGES: libnetsnmpagent, libnetsnmphelpers: moved the functions
+   netsnmp_bulk_to_next_fix_requests(),
+   netsnmp_get_bulk_to_next_handler(), netsnmp_register_null(),
+   netsnmp_register_null_context() and netsnmp_register_old_api()
+   from libnetsnmphelpers to libnetsnmpagent.
+   Notes:
+   - This does not affect backwards compatibility for applications
+   that link with $(net-snmp-config --agent-libs) since this
+   involves linking with both libnetsnmphelpers and libnetsnmpagent.
+   - Functions have been moved between libraries by moving entire
+   source files.
+
+2010-05-24 10:10  jsafranek
+
    *  agent/mibgroup/hardware/fsys/fsys_getfsstats.c,   
       agent/mibgroup/hardware/fsys/fsys_mntent.c:
 
    Use proper string sizes and make sure strings are
    zero-terminated.
 
+2010-05-24 08:01  bvassche
+
+   *  configure, configure.d/config_os_progs, net-snmp-config.in,   
+      snmplib/Makefile.in:
+
+   CHANGES: Cygwin: libnetsnmp does now build as a DLL when
+   configured with --enable-shared.
+   CHANGES: Cygwin: perl modules do now build (--with-perl-modules).
+   Note: the T060trapdperl_olducd, T061agentperl_olducd and
+   T115agentxperl_olducd tests still fail.
+
+2010-05-23 23:06  rstory
+
+   *  agent/mibgroup/tlstm-mib.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c:
+
+   update filenames/patsh for recent file renames; fix typos
+
+2010-05-23 22:08  magfr
+
+   *  net-snmp-config.in, testing/fulltests/support/capp_build,   
+      testing/fulltests/support/clib_build:
+
+   CHANGES: building: Use the same compiler command and flags for
+   building of tests as for building of the code, thus enabling test
+   of e.g. 32-bit code compiled on a 64-bit platform.
+
+2010-05-23 21:41  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c,
+         agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h:
+
+   update include/config file/paths for recent renames
+
+2010-05-23 21:31  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_internal.h,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c,
+         agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/tlstmAddrTable.c,  
+       agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/tlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/tlstmAddrTable_internal.h,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/tlstmAddrTable_persist.c,
+         agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/tlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/tlstmCertToTSNTable.h,
+         agent/mibgroup/tlstm-mib/tlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable.h:
+
+   rename files for MIB renames
+
+2010-05-23 21:25  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable,   
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable,   
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable:
+
+   rename directories to match renames in MIB
+
 2010-05-20 08:48  bvassche
 
    * net-snmp-config.in:
@@ -7201,6 +15934,95 @@
    Swapped link order of -lnetsnmphelpers -lnetsnmpmibs: netsnmpmibs
    depends on netsnmphelpers and not the other way around.
 
+2010-05-20 08:42  bvassche
+
+   *  apps/snmptrapd_log.c, snmplib/snmp_transport.c,   
+      snmplib/transports/snmpUDPIPv4BaseDomain.c:
+
+   Fixed more compiler warnings.
+
+2010-05-19 18:26  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   fix stashing
+
+2010-05-19 18:25  hardaker
+
+   *  testing/RUNFULLTESTS,   
+      testing/fulltests/transports/T361tlstcp_olducd,   
+      testing/fulltests/unit-tests/T001defaultstore_clib.c,   
+      testing/fulltests/unit-tests/T002containers_clib.c:
+
+   output filenames of failed tests
+
+2010-05-19 18:25  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   wipe trailing comment C marker if it exists
+
+2010-05-19 18:25  hardaker
+
+   *  testing/fulltests/snmpv3/T010scapitest_capp.c,   
+      testing/fulltests/snmpv3/T020hashtests_capp.c,   
+      testing/fulltests/snmpv3/T040keymanagetest_capp.c,   
+      testing/fulltests/snmpv3/T050etimetest_capp.c:
+
+   title the SNMPv3 tests
+
+2010-05-19 18:25  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   fix testing of built titles
+
+2010-05-19 18:24  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   only print failure header if there was at least one
+
+2010-05-19 18:24  hardaker
+
+   *  testing/RUNFULLTESTS,   
+      testing/fulltests/default/T049snmpv3inform_olducd,   
+      testing/fulltests/default/T049snmpv3informauth_olducd,   
+      testing/fulltests/default/T049snmpv3informpriv_olducd:
+
+   make descriptive titles work again
+
+2010-05-19 18:24  hardaker
+
+   *  testing/RUNFULLTESTS, testing/fulltests/support/build_capp,   
+      testing/fulltests/support/build_clib,   
+      testing/fulltests/support/capp_build,   
+      testing/fulltests/support/clib_build,   
+      testing/fulltests/support/olducd_run,   
+      testing/fulltests/support/run_olducd:
+
+   rename files so prefixing is based on the suite name, not file
+   type
+
+2010-05-19 17:52  bvassche
+
+   *  perl/ASN/Makefile.PL, perl/Makefile.PL, perl/Makefile.subs.pl,   
+      perl/OID/Makefile.PL, perl/SNMP/Makefile.PL,   
+      perl/TrapReceiver/Makefile.PL, perl/agent/Makefile.PL,   
+      perl/agent/Support/Makefile.PL,   
+      perl/agent/default_store/Makefile.PL,   
+      perl/default_store/Makefile.PL:
+
+   CHANGES: Cygwin: perl: building the Perl modules with the Cygwin
+   Perl package is now possible.
+   (Forward-ported r18688 from the V5.5 branch.)
+
+2010-05-19 17:50  bvassche
+
+   * agent/mibgroup/examples/delayed_instance.c:
+
+   Fixed yet another compiler warning.
+
 2010-05-19 12:05  dts12
 
    *  agent/mibgroup/hardware/fsys.h,   
@@ -7230,12 +16052,97 @@
 
    Fix missing/broken API declarations.
 
-2010-05-18 23:47  tanders
+2010-05-19 08:46  bvassche
 
-   *  agent/mibgroup/host/data_access/swinst_pkginfo.c,   
-      agent/object_monitor.c:
+   * testing/fulltests/support/run_olducd:
 
-   fix syntax errors: #elsif -> #elif
+   Made error messages more clear in case of failure or wrong
+   invocation.
+
+2010-05-19 00:01  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   added test for using a certificate signed by a CA certificate
+
+2010-05-18 23:31  tanders
+
+   * testing/Makefile.in:
+
+   make sure we call the right Perl
+
+2010-05-18 20:39  bvassche
+
+   *  include/net-snmp/library/snmpUDPBaseDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
+      include/net-snmp/library/snmp_transport.h,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpIPv4BaseDomain.c,   
+      snmplib/transports/snmpUDPBaseDomain.c,   
+      snmplib/transports/snmpUDPDomain.c,   
+      snmplib/transports/snmpUDPIPv4BaseDomain.c:
+
+   CHANGES: agent: include local port number in packet dumps. An
+   example:
+   
+   Received 36 byte packet from UDP:
+   [127.0.0.1]:53909->[127.0.0.1]:1161
+   0000: 30 22 02 01 01 04 06 70 75 62 6C 69 63 A1 15 02
+   0".....public...
+   0016: 04 37 F2 D4 9B 02 01 00 02 01 00 30 07 30 05 06
+   .7.........0.0..
+   0032: 01 01 05 00 ....
+   
+   Received SNMP packet(s) from UDP:
+   [127.0.0.1]:53909->[127.0.0.1]:1161
+   GETNEXT message
+   -- ccitt.1
+   
+   Sending 118 bytes to UDP: [127.0.0.1]:53909->[127.0.0.1]:1161
+   0000: 30 74 02 01 01 04 06 70 75 62 6C 69 63 A2 67 02
+   0t.....public.g.
+   0016: 04 37 F2 D4 9B 02 01 00 02 01 00 30 59 30 57 06
+   .7.........0Y0W.
+   0032: 08 2B 06 01 02 01 01 01 00 04 4B 4C 69 6E 75 78
+   .+........KLinux
+   0048: 20 61 73 75 73 20 32 2E 36 2E 33 33 2E 32 2D 73 asus
+   2.6.33.2-s
+   0064: 63 73 74 20 23 31 20 53 4D 50 20 50 52 45 45 4D cst #1 SMP
+   PREEM
+   0080: 50 54 20 53 61 74 20 41 70 72 20 33 20 32 31 3A PT Sat Apr
+   3 21:
+   0096: 31 30 3A 35 38 20 43 45 53 54 20 32 30 31 30 20 10:58 CEST
+   2010
+   0112: 78 38 36 5F 36 34 x86_64
+
+2010-05-18 19:42  rstory
+
+   *  agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.c,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable_internal.h,
+        
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable_persist.c, 
+       
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable/tlstmCertToTSNTable.c:
+
+   update tlstmAddrTable
+   - deal with hash type properly for get/set and persistence
+   - add count and last changed scalars
+
+2010-05-18 19:08  rstory
+
+   * agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.c:
+
+   update to offical OID from upcoming rfc
+
+2010-05-18 16:16  rstory
+
+   *  agent/mibgroup/tlstm-mib.h,   
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable/tlstmCertToTSNTable.c:
+
+   update to official OIDs from upcoming RFC; add count/last changed
+   scalars
 
 2010-05-18 14:56  dts12
 
@@ -7258,6 +16165,97 @@
 
    Working(?) HAL-based version of hrFSTable.
 
+2010-05-18 14:12  bvassche
+
+   * snmplib/tools.c:
+
+   Fixed a compiler warning.
+
+2010-05-17 21:03  hardaker
+
+   * include/net-snmp/library/snmp_secmod.h:
+
+   use proper TSM security code (4) now that it's official
+
+2010-05-17 18:43  hardaker
+
+   * testing/fulltests/unit-tests/T002containers_clib.c:
+
+   beginning of a container unit test
+
+2010-05-17 18:43  hardaker
+
+   * include/net-snmp/library/testing.h:
+
+   a basic C-code based test reporting mechanism
+
+2010-05-17 18:42  hardaker
+
+   *  testing/fulltests/unit-tests,   
+      testing/fulltests/unit-tests/T001defaultstore_clib.c:
+
+   basic default_store tests
+
+2010-05-17 18:42  hardaker
+
+   * testing/fulltests/support/build_clib:
+
+   a build system for basic libnetsnmp tests
+
+2010-05-17 18:14  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable/tlstmCertToTSNTable.c,
+         include/net-snmp/library/cert_util.h:
+
+   fix fingerprint bin/hex conversion; add/remove cert sec maps via
+   mib now works
+
+2010-05-17 18:13  rstory
+
+   * include/net-snmp/library/tools.h, snmplib/tools.c:
+
+   new function netsnmp_binary_to_hex
+
+2010-05-17 18:13  rstory
+
+   * snmplib/snmptsm.c:
+
+   fprintf(stderr -> DEBUGMSGTL((
+
+2010-05-17 18:12  rstory
+
+   * snmplib/cert_util.c:
+
+   move check for hash type
+
+2010-05-17 16:34  hardaker
+
+   * testing/RUNTESTS:
+
+   make RUNTESTS work outside the sourcedir
+
+2010-05-17 15:37  hardaker
+
+   * testing/Makefile.in, testing/RUNTESTS:
+
+   made a limited run test possible again without perl
+
+2010-05-17 15:32  dts12
+
+   *  win32/mib_module_includes.h, win32/mib_module_inits.h,   
+      win32/net-snmp/agent/mib_module_config.h,   
+      win32/netsnmpmibs/Makefile.in, win32/netsnmpmibs/netsnmpmibs.dsp:
+
+   Use newer DisMan Event MIB code for MSVC-based builds
+   (in line with all configure-based builds)
+
+2010-05-17 15:23  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   move the return outside the if statement
+
 2010-05-17 15:18  dts12
 
    *  agent/mibgroup/hardware/fsys/hw_fsys.c,   
@@ -7265,28 +16263,81 @@
 
    Provide missing public interface to HAL-based filestore module.
 
-2010-05-17 07:46  jsafranek
+2010-05-17 10:41  bvassche
 
-   * configure, configure.ac:
+   * win32/transports/snmp_transport_inits.h:
 
-   Check configure.d/config_os_headers before
-   configure.d/config_modules_* and fix lm_sensors version detection
+   Follow-up for r18754 (revert r18738): r18754 only partially
+   reverted r18738
+   and hence broke the Win32-build. Finished reversal of r18738 by
+   restoring
+   win32/transports/snmp_transport_inits.h.
 
-2010-05-17 06:53  bvassche
+2010-05-16 18:17  bvassche
 
-   * configure, configure.d/config_modules_lib:
+   * ltmain.sh:
 
-   CHANGES: Cygwin: do neither compile nor link inet_ntop.c and
-   inet_pton.c.
+   Follow-up for r18726: only pass -fstack-protector* flags to the
+   linker instead of all -f* flags such that it becomes less likely
+   that this modification causes trouble with non-GNU toolchains.
 
-2010-05-16 10:05  bvassche
+2010-05-16 18:14  bvassche
 
-   *  win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
+   * testing/fulltests/default/T059trapdtraphandle_olducd:
 
-   CHANGES: Win32: building: don't warn about signed/unsigned
-   mismatches in comparisons, just like for the Unix builds.
-   (Backported this change from the trunk.)
+   Made shell code for converting a relative path to an absolute
+   path more
+   robust and converted "${...#...}" construct into echo + cut.
+
+2010-05-16 18:12  bvassche
+
+   *  agent/mibgroup/agent/extend.c, agent/mibgroup/util_funcs.c,   
+      apps/snmptrapd_handlers.c:
+
+   More USING_UCD_SNMP_EXTENSIBLE_MODULE to
+   USING_UTILITIES_EXECUTE_MODULE substitutions, necessary to make
+   test 059 and 065 pass.
+
+2010-05-16 17:32  hardaker
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   fix tests for checking shutdown of applications to not report
+   false negatives
+
+2010-05-16 12:15  bvassche
+
+   * testing/fulltests/default/T059trapdtraphandle_olducd:
+
+   Made test T059 pass again. This test was recently broken by
+   passing arguments to it with absolute paths instead of relative
+   paths.
+
+2010-05-16 12:14  bvassche
+
+   * testing/fulltests/default/T065agentextend_olducd:
+
+   Added 'SKIPIFNOT USING_UTILITIES_EXECUTE_MODULE'.
+
+2010-05-16 11:42  bvassche
+
+   *  include/net-snmp/library/cert_util.h,   
+      include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/snmp_openssl.c:
+
+   Fixed several recently introduced compiler warnings.
+
+2010-05-16 11:41  bvassche
+
+   *  agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c,   
+      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c,
+         agent/mibgroup/host/hrSWInstalledTable.c,   
+      agent/mibgroup/host/hrSWRunPerfTable.c,   
+      agent/mibgroup/rmon-mib/data_access/etherstats_linux.c,   
+      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c,
+         apps/sshtosnmp.c:
+
+   Fixed several compiler warnings in old code.
 
 2010-05-16 09:59  bvassche
 
@@ -7295,12 +16346,98 @@
    CHANGES: Win32: winExtDLL: don't trigger a netsnmp_assert() when
    no extension DLLs have been loaded.
 
-2010-05-14 11:04  bvassche
+2010-05-15 17:31  tanders
 
-   * agent/mibgroup/winExtDLL.c:
+   * testing/RUNFULLTESTS:
 
-   Changed assert() into netsnmp_assert() (backported r18353
-   partially).
+   stop-gap fix to unbreak "make test" for the nightly builds
+
+2010-05-15 10:59  bvassche
+
+   *  agent/Makefile.in, agent/helpers/Makefile.in,   
+      snmplib/Makefile.in:
+
+   Reverted r18727 because it caused build errors on Solaris, AIX
+   and HP-UX.
+
+2010-05-15 00:42  hardaker
+
+   *  Makefile.in, configure, configure.d/config_modules_lib,   
+      snmplib/Makefile.depend, snmplib/snmp_transport.c,   
+      win32/build.pl:
+
+   revert r18738 since new transport require dynamicly built header
+   files
+
+2010-05-15 00:40  hardaker
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   log env variables used to the invoked file
+
+2010-05-14 21:29  hardaker
+
+   * testing/fulltests/support/run_olducd:
+
+   fix script so it can be invoked outside the test environment
+   again
+
+2010-05-14 21:28  hardaker
+
+   * mibs/SNMP-TLS-TM-MIB.txt:
+
+   added the SNMP-TLS-TM-MIB with final IANA assignment slots
+
+2010-05-14 21:27  hardaker
+
+   * snmplib/snmptsm.c:
+
+   use final IANA assigned TSM prefixes
+
+2010-05-14 21:26  hardaker
+
+   *  include/net-snmp/library/snmpDTLSUDPDomain.h,   
+      include/net-snmp/library/snmpTLSTCPDomain.h:
+
+   use final IANA assigned Domain numbers
+
+2010-05-14 21:25  hardaker
+
+   * snmplib/snmp_api.c, snmplib/transports/snmpTLSBaseDomain.c:
+
+   set default version and seclevel if tls/dtls
+
+2010-05-14 15:25  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   check rc from secname mapping; clarify comment
+
+2010-05-14 15:22  rstory
+
+   * snmplib/cert_util.c:
+
+   don't use unsorted container; don't free caller's container
+
+2010-05-14 15:22  rstory
+
+   * snmplib/container_binary_array.c:
+
+   add linear_search for unsorted containers
+
+2010-05-14 11:56  bvassche
+
+   *  Makefile.in, configure, configure.d/config_modules_lib,   
+      snmplib/Makefile.depend, snmplib/snmp_transport.c,   
+      win32/build.pl, win32/transports/snmp_transport_inits.h:
+
+   Improved portability by removing the generated file
+   snmplib/transports/snmp_transport_inits.h.
+   Commented out the code in the configure script for generating
+   this header file.
+   Added configure-time code for checking whether the constructors
+   for all configured
+   transports are invoked from snmplib/snmp_transport.c.
 
 2010-05-14 11:00  bvassche
 
@@ -7308,25 +16445,89 @@
 
    Documentation: updated Cygwin build instructions.
 
-2010-05-14 08:54  bvassche
+2010-05-14 09:15  bvassche
 
-   * net-snmp-config.in:
+   *  agent/mibgroup/host/data_access/swinst_null.c,   
+      include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/cert_util.c, snmplib/snmp_api.c, snmplib/snmp_openssl.c,  
+       snmplib/snmpusm.c, snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c:
 
-   Reverted net-snmp-config.in changes from r18688 because although
-   these changes made the Perl modules build, the Perl module
-   regression tests still failed.
+   Fixed several compiler warnings.
 
-2010-05-13 14:35  jsafranek
+2010-05-14 08:50  bvassche
 
-   * include/net-snmp/library/snmp_logging.h:
+   *  agent/Makefile.in, agent/helpers/Makefile.in,   
+      snmplib/Makefile.in:
 
-   add NETSNMP_LOGONCE macro from trunk
+   Added -no-undefined flag to library link commands such that
+   libtool can build DLLs on Win32.
+   Note: building DLLs on Win32 does not yet work because of the
+   circular dependency between
+   libnetsnmphelpers and libnetsnmpagent
+   (see also
+   http://www.net-snmp.org/wiki/index.php/Library_layering).
 
-2010-05-13 09:18  bvassche
+2010-05-14 08:42  bvassche
+
+   * ltmain.sh:
+
+   libtool bug fix: also pass flags starting with -f to the linker
+   since these can affect linking. The flag -fstack-protector e.g.
+   triggers inclusion of libssp.
+
+2010-05-14 08:40  bvassche
+
+   *  configure, configure.d/config_modules_lib,   
+      configure.d/config_os_progs:
+
+   CHANGES: building: abort if the file program could not be found,
+   since this is essential for proper operation of libtool.
+   CHANGES: Cygwin: neither compile nor link winpipe.c.
+
+2010-05-13 08:58  bvassche
 
    * configure, include/net-snmp/net-snmp-config.h.in:
 
-   Ran autoreconf -i.
+   Ran autoreconf.
+
+2010-05-12 20:16  bvassche
+
+   * configure, configure.d/config_os_libs:
+
+   CHANGES: Linux: builds again with embedded Perl disabled (bug
+   2985915).
+
+2010-05-12 19:47  bvassche
+
+   *  agent/mibgroup/util_funcs/restart.c,   
+      win32/netsnmpmibs/Makefile.in, win32/netsnmpmibs/netsnmpmibs.dsp:
+
+   Follow-up for r18684: un-break the Win32 MSVC build.
+
+2010-05-12 19:43  bvassche
+
+   * include/net-snmp/types.h:
+
+   Win32: fixed a typo and made indentation consistent.
+
+2010-05-12 19:11  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   construct temp build files in a separate directory
+
+2010-05-12 19:10  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   fix recently broken old perl functionality
+
+2010-05-12 18:01  hardaker
+
+   * local/net-snmp-cert:
+
+   added a --short option to shorten the show output to minimalistic
 
 2010-05-12 14:14  jsafranek
 
@@ -7359,6 +16560,137 @@
    define NETSNMP_USE_SENSORS_V3 *before* config_modules_agent
    processes agent/mibgroup/hardware/sensors.h.
 
+2010-05-12 07:03  magfr
+
+   *  include/net-snmp/library/snmpTLSTCPDomain.h,   
+      include/net-snmp/library/snmpUDPBaseDomain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h,   
+      include/net-snmp/library/snmpUnixDomain.h:
+
+   CHANGES: snmplib: Add missing dependencies between transports.
+
+2010-05-12 03:08  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   fix title generation after change to what srcdir meant
+
+2010-05-12 02:30  hardaker
+
+   * local/net-snmp-cert:
+
+   undo last change which turned out to only cause errors if you had
+   a old .conf file around
+
+2010-05-12 02:13  hardaker
+
+   * local/net-snmp-cert:
+
+   fix v3_ca creation extension name
+
+2010-05-12 02:05  rstory
+
+   * snmplib/cert_util.c:
+
+   keep format version # in cert indexes; don't store hash type
+   string in index;
+
+2010-05-12 02:05  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   fix inverted conversion call; less verbose default debug
+
+2010-05-12 02:05  rstory
+
+   * snmplib/snmp_parse_args.c:
+
+   fix parsing of -T name/value pairs
+
+2010-05-11 23:33  tanders
+
+   * testing/RUNFULLTESTS:
+
+   bug fixing and better error messages for "make test" with
+   Test::Harness
+   (still doesn't work for me, though)
+
+2010-05-11 22:34  tanders
+
+   * testing/RUNFULLTESTS:
+
+   Do NOT hardcode /usr/bin/perl as the Perl path
+
+2010-05-11 20:16  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   fix stash file handling
+
+2010-05-11 20:16  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   long options suck ;-). prefer double dashes for long options to
+   match the rest of the Net-SNMP code base
+
+2010-05-11 20:16  hardaker
+
+   * testing/Makefile.in, testing/RUNFULLTESTS:
+
+   added ability to run only the failed tests from the last run
+
+2010-05-11 20:16  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   don't force color
+
+2010-05-11 20:16  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   cleanup of older
+
+2010-05-11 20:15  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   Minimally support the older Test::Harness perl module for running
+   the older tests at least
+
+2010-05-11 20:15  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      include/net-snmp/library/snmp_transport.h, snmplib/snmp_api.c,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   set a default securityName and securityModel if TLS or DTLS is in
+   use on the client side
+
+2010-05-11 20:15  hardaker
+
+   *  include/net-snmp/library/snmp_secmod.h,   
+      include/net-snmp/library/snmpusm.h, snmplib/snmp_api.c,   
+      snmplib/snmpusm.c:
+
+   allow security models to perform more of the session setup; moved
+   more USM specific setup into it's setup routine
+
+2010-05-11 18:02  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   fix param to lookup peer cert
+
+2010-05-11 16:10  rstory
+
+   * snmplib/snmp_transport.c:
+
+   allow '-' in fqdn; add debug output for host specific config
+
 2010-05-11 15:46  dts12
 
    * win32/libsnmp_dll/libsnmp.def:
@@ -7371,48 +16703,217 @@
 
    Fix perl build under Windows (strtoull not available)
 
-2010-05-11 10:14  bvassche
+2010-05-10 07:07  magfr
 
-   *  net-snmp-config.in, perl/ASN/Makefile.PL, perl/Makefile.PL,   
-      perl/Makefile.subs.pl, perl/OID/Makefile.PL,   
-      perl/SNMP/Makefile.PL, perl/TrapReceiver/Makefile.PL,   
-      perl/agent/Makefile.PL, perl/agent/Support/Makefile.PL,   
-      perl/agent/default_store/Makefile.PL,   
-      perl/default_store/Makefile.PL:
+   *  include/net-snmp/library/snmpSSHDomain.h,   
+      snmplib/transports/snmpSSHDomain.c:
 
-   CHANGES: Cygwin: builds now with embedded Perl support enabled
-   (embedded Perl regression tests do not yet pass however).
+   CHANGES: snmplib: Add missing symbol netsnmp_snmpSSHDomain_len,
+   make netsnmp_snmpSSHDomain const.
 
-2010-05-10 20:31  bvassche
+2010-05-09 22:03  magfr
 
-   * configure, configure.d/config_modules_lib:
+   * testing/fulltests/default/T150solarishostcpu_olducd:
 
-   CHANGES: Cygwin: removed winpipe.c from the list of source files.
-   CHANGES: Cygwin: enabled Unix transport.
+   Do not require quotes around the CPU string as that depends on
+   how the agent is configured.
 
-2010-05-09 16:46  bvassche
+2010-05-09 21:43  magfr
+
+   *  agent/mibgroup/default_modules.h, agent/mibgroup/util_funcs.c,   
+      agent/mibgroup/util_funcs.h, agent/mibgroup/util_funcs/Exit.c,   
+      agent/mibgroup/util_funcs/Exit.h,   
+      agent/mibgroup/util_funcs/restart.c,   
+      agent/mibgroup/util_funcs/restart.h:
+
+   CHANGES: snmpd: Extract the Exit and restart* subroutines from
+   util_func in order to make it possible to build less code for the
+   minimal case.
+
+2010-05-09 16:47  bvassche
+
+   * agent/mibgroup/util_funcs.c:
+
+   Fixed a compiler warning: made sure that the function
+   get_exec_output() returns a value when the preprocessor symbol
+   USING_UCD_SNMP_EXTENSIBLE_MODULE has not been defined.
+
+2010-05-09 16:45  bvassche
 
    *  configure, configure.d/config_modules_agent,   
-      configure.d/config_os_headers, configure.d/config_os_libs,   
-      configure.d/config_os_misc2, configure.d/config_os_progs,   
-      configure.d/config_os_struct_members,   
-      configure.d/config_project_ipv6_types,   
-      include/net-snmp/net-snmp-config.h.in:
+      configure.d/config_modules_lib:
 
-   CHANGES: Cygwin: builds now with OpenSSL enabled.
-   CHANGES: Cygwin: builds now with IPv6 support enabled.
-   CHANGES: MinGW: builds now with IPv6 support enabled.
    CHANGES: Cygwin: builds now also when the source files are
    located on a Samba filesystem instead of a local filesystem.
-   Note: all the above changes are backports from the trunk.
 
-2010-05-09 16:34  bvassche
+2010-05-09 13:05  magfr
 
-   * include/net-snmp/system/cygwin.h:
+   * include/net-snmp/library/snmp_debug.h:
 
-   NEWS: Cygwin: BUG: 2997492: byte order of udpLocalPort is now
-   correct.
-   (Backported r18074 from trunk.)
+   Correct the if that tries to figure out if a sufficiently new gcc
+   is in use.
+
+2010-05-09 12:50  magfr
+
+   * apps/snmptrapd_handlers.c:
+
+   Check for the needed module and not some other one.
+   Log the correct missing symbol.
+
+2010-05-09 09:21  magfr
+
+   *  agent/mibgroup/utilities/execute.c,   
+      agent/mibgroup/utilities/execute.h:
+
+   CHANGES: snmpd: utilities/execute do not need anything from
+   util_funcs, so stop depending on it.
+
+2010-05-09 09:12  magfr
+
+   * agent/mibgroup/utilities/execute.c:
+
+   NEWS: snmpd: Removed the unused function xx_tokenize_exec_command
+   from utilities/execute.
+
+2010-05-09 09:01  magfr
+
+   * include/net-snmp/library/snmp_debug.h, snmplib/snmp_debug.c:
+
+   CHANGES: snmplib: Replace the debugging functions with dummies
+   when debugging is disabled.
+
+2010-05-09 08:02  magfr
+
+   * testing/fulltests/transports/T300udp_olducd:
+
+   Check that the UDP transport is enabled
+
+2010-05-09 08:01  magfr
+
+   *  testing/fulltests/transports/Stransport,   
+      testing/fulltests/transports/T300udp_olducd,   
+      testing/fulltests/transports/T310tcp_olducd,   
+      testing/fulltests/transports/T320udpv6_olducd,   
+      testing/fulltests/transports/T330tcpv6_olducd,   
+      testing/fulltests/transports/T350unix_olducd,   
+      testing/fulltests/transports/T360dtlsudp_olducd,   
+      testing/fulltests/transports/T361tlstcp_olducd:
+
+   Factor out check for mibII/system_mib
+
+2010-05-09 07:59  magfr
+
+   *  testing/fulltests/snmpv3/T040keymanagetest_capp.c,   
+      testing/fulltests/snmpv3/T050etimetest_capp.c:
+
+   Add missing includes
+
+2010-05-08 23:16  magfr
+
+   * testing/RUNFULLTESTS:
+
+   Additionally fix make test for the uncommon case where builddir
+   == srcdir
+
+2010-05-08 22:55  magfr
+
+   *  testing/Makefile.in, testing/RUNFULLTESTS,   
+      testing/fulltests/support/build_capp,   
+      testing/fulltests/support/olducd_TESTCONF.sh,   
+      testing/fulltests/support/olducd_eval_tools.sh,   
+      testing/fulltests/support/run_olducd:
+
+   CHANGES: testing: Make it possible to run the test suite from
+   anywhere.
+   Change the -D option to expect the path of the top source
+   directory.
+   Add an -srcdir option that is an alias for -D.
+   Add an -builddir option to designate the directory where the test
+   object is.
+   Put srcdir and builddir in the environment for the test scripts
+   Factor out the grep part of SKIPIF and SKIPIFNOT to ISDEFINED
+   Use more readable keys in the opts hash in RUNFULLTESTS
+   Adjust everything to use srcdir and builddir
+
+2010-05-08 22:42  magfr
+
+   * testing/fulltests/snmpv3/T040keymanagetest_capp.c:
+
+   Use correct argument types
+
+2010-05-08 22:07  magfr
+
+   * Makefile.in:
+
+   Consolidate the test and test-mibs targets.
+   Expose the testall target in the top makefile.
+
+2010-05-08 22:05  magfr
+
+   * snmplib/snmp_transport.c:
+
+   Do not abort when str is NULL as that is a perfectly valid input.
+
+2010-05-08 22:03  magfr
+
+   * testing/fulltests/snmpv3/T010scapitest_capp.c:
+
+   Use correct argument types
+
+2010-05-08 22:02  magfr
+
+   * testing/fulltests/snmpv3/T050etimetest_capp.c:
+
+   Add missing newline
+
+2010-05-07 21:11  rstory
+
+   * configure:
+
+   update for new configure.ac
+
+2010-05-07 19:21  rstory
+
+   * agent/mibgroup/tlstm-mib/tlstmCertToTSNTable/tlstmCertToTSNTable.c:
+
+   fix handling of cert algorithm in fingerprints; convert in/out
+   fingerpints
+   from/to hex
+
+2010-05-07 19:21  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   dont specify hash type for fingerprint
+
+2010-05-07 19:21  rstory
+
+   *  include/net-snmp/library/cert_util.h,   
+      include/net-snmp/library/snmp_openssl.h, snmplib/cert_util.c,   
+      snmplib/snmp_openssl.c:
+
+   handle fingerprint types; drop san fields from cert struct;
+   consider directory
+   when partnering keys/certs
+
+2010-05-07 19:20  rstory
+
+   * configure.ac:
+
+   move default prompts earlier
+
+2010-05-06 15:40  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   better SAN extraction; tweak dubgus messages; quiet compiler
+   warnings
+
+2010-05-06 15:39  rstory
+
+   * snmplib/cert_util.c:
+
+   reduce cert debug output; debug instead of log_info in dumps
 
 2010-05-06 14:49  dts12
 
@@ -7421,12 +16922,6 @@
    Don't assume the presence of <string.h>
    (bring into line with all other occurances)
 
-2010-05-06 14:44  dts12
-
-   * win32/win32.dsw:
-
-   Add project dependencies for MSVC builds.
-
 2010-05-06 14:41  dts12
 
    * apps/snmptrapd.c, apps/snmptrapd_log.c, snmplib/callback.c:
@@ -7434,24 +16929,668 @@
    CHANGES: Windows: Fix build under MinGW
    back/forward port of revision 18631
 
-2010-05-06 07:21  bvassche
+2010-05-05 17:43  rstory
 
-   *  configure, configure.d/config_project_ipv6_types,   
-      snmplib/inet_ntop.c, snmplib/inet_pton.c,   
-      snmplib/snmpTCPIPv6Domain.c, snmplib/snmpUDPIPv6Domain.c:
+   * snmplib/transports/snmpTLSTCPDomain.c:
 
-   CHANGES: Cygwin: building: --enable-ipv6 does now work.
-   (ported the patches r18060 and r18619 to the V5.5 branch).
+   fix type in log msg
 
-2010-05-06 06:33  bvassche
+2010-05-05 17:43  rstory
 
-   *  net-snmp-config.in, testing/TESTCONF.sh,   
+   * local/net-snmp-cert:
+
+   remove import for unused function
+
+2010-05-04 07:12  magfr
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   Negate reason given from SKIPIF
+
+2010-05-03 22:38  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   fix len in email cmp; more extract debugging
+
+2010-05-03 22:38  rstory
+
+   * snmplib/cert_util.c:
+
+   copy ocert to addional maps
+
+2010-05-03 14:20  marz
+
+   * local/net-snmp-cert:
+
+   remove dependency on perl module not present in CentOS
+
+2010-05-03 03:49  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   don't access struct internals directly
+
+2010-05-03 03:48  rstory
+
+   *  agent/mibgroup/agent/extend.c, agent/mibgroup/util_funcs.c,   
+      apps/snmptrapd_handlers.c:
+
+   fix compiling with-out-mibmodules=utilities/execute
+
+2010-05-01 19:08  magfr
+
+   * testing/fulltests/default/T150solarishostcpu_olducd:
+
+   Correct the sought string to make the test pass when ok.
+
+2010-05-01 17:15  marz
+
+   * local/net-snmp-cert:
+
+   more consistent treatment of keyUsage, basicConstraints, other
+   x509v3 options
+
+2010-04-30 23:37  marz
+
+   * local/certgen-test.pl:
+
+   lame test script but covers a chunk of the code
+
+2010-04-30 23:00  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   mkinstalldirs instead instead of File::Path
+
+2010-04-30 23:00  hardaker
+
+   *  testing/fulltests/support/olducd_TESTCONF.sh,   
+      testing/fulltests/support/run_olducd:
+
+   ensure net-snmp-config script can be run from the build dir
+
+2010-04-30 21:31  marz
+
+   * local/net-snmp-cert:
+
+   handle gencert --ca
+
+2010-04-30 21:01  rstory
+
+   * snmplib/cert_util.c:
+
+   add help for certSecName; continue building cert indexes even if
+   we cant save
+   to persistent dir
+
+2010-04-30 20:48  hardaker
+
+   * testing/fulltests/transports/Stlstests:
+
+   fix check count for 822 names in the snmpd.log
+
+2010-04-30 20:48  hardaker
+
+   * snmplib/snmp_openssl.c, testing/fulltests/transports/Stlstests:
+
+   fix malloc unnderlength by 1 error
+
+2010-04-30 20:48  hardaker
+
+   * testing/fulltests/transports/Stlstests:
+
+   comment out the 822 tests; they're broken at the moment
+
+2010-04-30 19:36  marz
+
+   * local/net-snmp-cert:
+
+   don't lose SAN when signing w/ CA
+
+2010-04-30 18:46  hardaker
+
+   * snmplib/cert_util.c:
+
+   make name change to rfc822 from typoed 8220
+
+2010-04-30 18:46  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   added tests to do other subjectAltName mapping
+
+2010-04-30 17:31  marz
+
+   * local/net-snmp-cert:
+
+   fix issues 1,2,4 and -C handling
+
+2010-04-29 03:32  rstory
+
+   * agent/mibgroup/tlstm-mib/tlstmCertToTSNTable/tlstmCertToTSNTable.c:
+
+   update tlstmCertToTSNTable to use cache + cert_util maps
+   container
+
+2010-04-29 03:31  rstory
+
+   * agent/helpers/table_tdata.c:
+
+   check insert return
+
+2010-04-29 03:31  rstory
+
+   *  include/net-snmp/library/container.h,   
+      snmplib/container_binary_array.c:
+
+   NEWS: snmplib: add remove function to container iterator;
+   implement it for
+   binary_array
+
+2010-04-29 03:31  rstory
+
+   * snmplib/container_binary_array.c:
+
+   make sure container sync incremented on sort, insert and remove
+
+2010-04-28 07:20  bvassche
+
+   * snmplib/inet_ntop.c:
+
+   Removed an obsolete comment.
+
+2010-04-28 00:33  hardaker
+
+   * testing/Makefile.in:
+
+   fix makefile for test target
+
+2010-04-28 00:33  hardaker
+
+   *  testing/Makefile.in, testing/RUNFULLTESTS,   
+      testing/fulltests/support/build_capp:
+
+   make the test suite run outside the source directory again.
+
+2010-04-28 00:33  hardaker
+
+   * testing/fulltests/transports/Stls:
+
+   deal with out-of-source tree building
+
+2010-04-28 00:32  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   testing to check certificate to securityname mappings and denials
+
+2010-04-28 00:32  hardaker
+
+   * testing/fulltests/transports/Stls:
+
+   created a mapped user
+
+2010-04-28 00:32  hardaker
+
+   * testing/fulltests/support/build_capp:
+
+   generate object code with -g debugging
+
+2010-04-28 00:32  hardaker
+
+   * testing/fulltests/snmpv3/T010scapitest_capp.c:
+
+   more accurate current API usage for scapi code
+
+2010-04-27 21:13  rstory
+
+   * snmplib/cert_util.c:
+
+   fix cert init duplicate call check
+
+2010-04-27 20:58  rstory
+
+   * snmplib/cert_util.c, snmplib/snmp_api.c:
+
+   convert user fingerprint to lower and strip colons; add extern
+   prototype
+   for cert init so we don't need header
+
+2010-04-27 20:15  rstory
+
+   *  include/net-snmp/library/cert_util.h, man/snmpd.conf.5.def,   
+      snmplib/cert_util.c, snmplib/snmp_api.c,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   separate cert init and cert loading; add certSecName config token
+
+2010-04-27 03:18  rstory
+
+   * include/net-snmp/library/snmp_assert.h:
+
+   merge NETSNMP_FUNCTION and !NETSNMP_FUNCTION assert cases
+
+2010-04-27 03:02  rstory
+
+   *  include/net-snmp/library/cert_util.h,   
+      include/net-snmp/library/snmp_openssl.h, snmplib/cert_util.c,   
+      snmplib/snmp_openssl.c, snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   lots of new cert functionality
+   - add ssl funcs for cert extensions and ssl cert chains
+   - functions and new netsmp_cert_map struct for looking up cert
+   mappings
+   - add certificate mapping for secname
+   - add code to build cert chains
+   - add subject to cert index cache
+   - rebuild indexes if any error while parsing index
+   - reformat dump output
+   - add NS_CERT_CA allowed_use flag
+   - add subject, issuer and issuer_cert to netsnmp_cert
+   - move cert container setup to its own function
+   - add cert subject name subcontainer
+
+2010-04-27 03:02  rstory
+
+   * agent/mibgroup/ip-mib/data_access/ipv6scopezone_linux.c:
+
+   move ipv6 specific var decl inside ifdef
+
+2010-04-27 03:02  rstory
+
+   *  agent/helpers/table_tdata.c,   
+      include/net-snmp/agent/table_tdata.h:
+
+   CHANGES: agent: tdata helper now saves flags passed during
+   creation; add tdata
+   flag to NOT create the table container
+
+2010-04-27 03:01  rstory
+
+   *  include/net-snmp/library/container.h, snmplib/container.c,   
+      snmplib/container_binary_array.c:
+
+   NEWS: snmplib: add interface for duplicating a container
+   CHANGES: snmplib: container changes: add flags field to container
+   meta-data;
+   chg binary_array container to use container meta-data flags
+
+2010-04-26 22:32  hardaker
+
+   * testing/fulltests/transports/Stlstests:
+
+   added a test to verify that when the transport is configured with
+   a remote certificate fingerprint the connection is denied
+
+2010-04-26 22:32  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests,   
+      testing/fulltests/transports/T360dtlsudp_olducd,   
+      testing/fulltests/transports/T361tlstcp_olducd:
+
+   added tests for -T flag usage and invalid user usage
+
+2010-04-26 20:54  hardaker
+
+   * testing/fulltests/transports/T399alias_olducd:
+
+   have the alias transport source the right Sv3config file
+
+2010-04-26 20:50  hardaker
+
+   *  testing/fulltests/transports/T360dtlsudp_olducd,   
+      testing/fulltests/transports/T361tlstcp_olducd:
+
+   working support of TLS/DTLS testing including cert generation
+
+2010-04-26 20:49  hardaker
+
+   * local/net-snmp-cert:
+
+   honor the config dir if specified via -C
+
+2010-04-26 20:49  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   fix realloc call for buffered packets
+
+2010-04-26 20:49  hardaker
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   proper skip output for reporting reason
+
+2010-04-26 20:49  hardaker
+
+   *  testing/fulltests/snmpv3/T010scapitest_capp.c,   
+      testing/fulltests/snmpv3/T040keymanagetest_capp.c,   
+      testing/fulltests/snmpv3/T050etimetest_capp.c:
+
+   remove trailing whitespace after backslash in macro
+
+2010-04-26 20:48  hardaker
+
+   *  testing/fulltests/transports,   
+      testing/fulltests/transports/Stransport,   
+      testing/fulltests/transports/T300udp_olducd,   
+      testing/fulltests/transports/T310tcp_olducd,   
+      testing/fulltests/transports/T320udpv6_olducd,   
+      testing/fulltests/transports/T330tcpv6_olducd,   
+      testing/fulltests/transports/T350unix_olducd,   
+      testing/fulltests/transports/T360dtlsudp_olducd,   
+      testing/fulltests/transports/T361tlstcp_olducd,   
+      testing/fulltests/transports/T399alias_olducd,   
+      testing/fulltests/transports/test-localhost.cert,   
+      testing/fulltests/transports/test-localhost.priv,   
+      testing/fulltests/transports/test-user.cert,   
+      testing/fulltests/transports/test-user.priv:
+
+   tests for minimally testing all the transports
+
+2010-04-26 20:48  hardaker
+
+   * testing/README:
+
+   minimally document new RUNFULLTESTS script
+
+2010-04-26 20:48  hardaker
+
+   *  testing/T.c, testing/T2.sh, testing/data.keychange-md5,   
+      testing/data.keychange-sha1, testing/data.keychange-sha1-des,   
+      testing/data.kul-md5, testing/data.kul-sha1, testing/misctest.c,  
+       testing/test_keychange.sh, testing/test_kul.sh:
+
+   deleted old files not worth restoring
+
+2010-04-26 20:48  hardaker
+
+   * testing/eval_testlist:
+
+   remove obsolute test list
+
+2010-04-26 20:47  hardaker
+
+   * testing/fulltests/snmpv3/T020hashtests_capp.c:
+
+   a hash-testing .c file I had laying around
+
+2010-04-26 20:47  hardaker
+
+   * testing/Makefile.in:
+
+   make testall target
+
+2010-04-26 20:47  hardaker
+
+   *  testing/RUNFULLTESTS, testing/etimetest.c,   
+      testing/fulltests/snmpv3,   
+      testing/fulltests/snmpv3/T010scapitest_capp.c,   
+      testing/fulltests/snmpv3/T040keymanagetest_capp.c,   
+      testing/fulltests/snmpv3/T050etimetest_capp.c,   
+      testing/fulltests/support/build_capp,   
+      testing/fulltests/support/olducd_eval_tools.sh,   
+      testing/keymanagetest.c, testing/scapitest.c:
+
+   move old C-code tests in place
+
+2010-04-26 20:47  hardaker
+
+   *  testing/fulltests/default/T150solarishostcpu_olducd,   
+      testing/fulltests/default/T151solarishostdisk_olducd,   
+      testing/fulltests/default/T153solarisswap_olducd:
+
+   skip solaris comments
+
+2010-04-26 20:46  hardaker
+
+   * testing/Makefile.in:
+
+   fix invocation of RUNFULLTESTS
+
+2010-04-26 20:46  hardaker
+
+   *  testing/Makefile.in, testing/fulltests/default,   
+      testing/fulltests/default/Sv1config,   
+      testing/fulltests/default/Sv2cconfig,   
+      testing/fulltests/default/Sv3config,   
+      testing/fulltests/default/Sv3usmconfigagent,   
+      testing/fulltests/default/Sv3usmconfigbase,   
+      testing/fulltests/default/Sv3usmconfigtrapd,   
+      testing/fulltests/default/Sv3vacmconfig,   
+      testing/fulltests/default/Svacmconfig,   
+      testing/fulltests/default/Svanyconfig,   
+      testing/fulltests/default/T001snmpv1get_olducd,   
+      testing/fulltests/default/T014snmpv2cget_olducd,   
+      testing/fulltests/default/T015snmpv2cgetnext_olducd,   
+      testing/fulltests/default/T0160snmpv2cbulkget_olducd,   
+      testing/fulltests/default/T016snmpv2cgetfail_olducd,   
+      testing/fulltests/default/T017snmpv2ctov1getfail_olducd,   
+      testing/fulltests/default/T018snmpv1tov2cgetfail_olducd,   
+      testing/fulltests/default/T019snmpv2cnosuch_olducd,   
+      testing/fulltests/default/T020snmpv3get_olducd,   
+      testing/fulltests/default/T021snmpv3getnext_olducd,   
+      testing/fulltests/default/T0220snmpv3bulkget_olducd,   
+      testing/fulltests/default/T022snmpv3getMD5_olducd,   
+      testing/fulltests/default/T023snmpv3getMD5AES_olducd,   
+      testing/fulltests/default/T023snmpv3getMD5DES_olducd,   
+      testing/fulltests/default/T024snmpv3getSHA1_olducd,   
+      testing/fulltests/default/T025snmpv3getSHADES_olducd,   
+      testing/fulltests/default/T026snmpv3getSHAAES_olducd,   
+      testing/fulltests/default/T028snmpv3getfail_olducd,   
+      testing/fulltests/default/T030snmpv3usercreation_olducd,   
+      testing/fulltests/default/T035snmpv3trapdusermgmt_olducd,   
+      testing/fulltests/default/T049snmpv3inform_olducd,   
+      testing/fulltests/default/T049snmpv3informauth_olducd,   
+      testing/fulltests/default/T049snmpv3informpriv_olducd,   
+      testing/fulltests/default/T050snmpv3trap_olducd,   
+      testing/fulltests/default/T051snmpv2ctrap_olducd,   
+      testing/fulltests/default/T052snmpv2cinform_olducd,   
+      testing/fulltests/default/T053agentv1trap_olducd,   
+      testing/fulltests/default/T054agentv2ctrap_olducd,   
+      testing/fulltests/default/T055agentv1mintrap_olducd,   
+      testing/fulltests/default/T056agentv2cmintrap_olducd,   
+      testing/fulltests/default/T057trapdauthtest2_olducd,   
+      testing/fulltests/default/T057trapdauthtest3_olducd,   
+      testing/fulltests/default/T057trapdauthtest_olducd,   
+      testing/fulltests/default/T058agentauthtrap_olducd,   
+      testing/fulltests/default/T059trapdtraphandle_olducd,   
+      testing/fulltests/default/T060trapdperl_olducd,   
+      testing/fulltests/default/T061agentperl_olducd,   
+      testing/fulltests/default/T065agentextend_olducd,   
+      testing/fulltests/default/T070com2sec_olducd,   
+      testing/fulltests/default/T071com2sec6_olducd,   
+      testing/fulltests/default/T072com2secunix_olducd,   
+      testing/fulltests/default/T100agenthup_olducd,   
+      testing/fulltests/default/T110agentxget_olducd,   
+      testing/fulltests/default/T111agentxset_olducd,   
+      testing/fulltests/default/T112agentxsetfail_olducd,   
+      testing/fulltests/default/T113agentxtrap_olducd,   
+      testing/fulltests/default/T114agentxagentxtrap_olducd,   
+      testing/fulltests/default/T115agentxperl_olducd,   
+      testing/fulltests/default/T120proxyget_olducd,   
+      testing/fulltests/default/T121proxyset_olducd,   
+      testing/fulltests/default/T122proxysetfail_olducd,   
+      testing/fulltests/default/T130snmpv1vacmget_olducd,   
+      testing/fulltests/default/T131snmpv2cvacmget_olducd,   
+      testing/fulltests/default/T132snmpv3vacmget_olducd,   
+      testing/fulltests/default/T140snmpv1vacmgetfail_olducd,   
+      testing/fulltests/default/T141snmpv2cvacmgetfail_olducd,   
+      testing/fulltests/default/T142snmpv3vacmgetfail_olducd,   
+      testing/fulltests/default/T150solarishostcpu_olducd,   
+      testing/fulltests/default/T151solarishostdisk_olducd,   
+      testing/fulltests/default/T152hostuptime_olducd,   
+      testing/fulltests/default/T153solarisswap_olducd,   
+      testing/fulltests/default/T160snmpnetstat_olducd,   
+      testing/fulltests/default/T200snmpv2cwalkall_olducd,   
+      testing/tests/Stransport, testing/tests/Sv1config,   
+      testing/tests/Sv2cconfig, testing/tests/Sv3config,   
+      testing/tests/Sv3usmconfigagent, testing/tests/Sv3usmconfigbase,  
+       testing/tests/Sv3usmconfigtrapd, testing/tests/Sv3vacmconfig,   
+      testing/tests/Svacmconfig, testing/tests/Svanyconfig,   
+      testing/tests/T001snmpv1get, testing/tests/T014snmpv2cget,   
+      testing/tests/T015snmpv2cgetnext,   
+      testing/tests/T0160snmpv2cbulkget,   
+      testing/tests/T016snmpv2cgetfail,   
+      testing/tests/T017snmpv2ctov1getfail,   
+      testing/tests/T018snmpv1tov2cgetfail,   
+      testing/tests/T019snmpv2cnosuch, testing/tests/T020snmpv3get,   
+      testing/tests/T021snmpv3getnext,   
+      testing/tests/T0220snmpv3bulkget, testing/tests/T022snmpv3getMD5, 
+        testing/tests/T023snmpv3getMD5AES,   
+      testing/tests/T023snmpv3getMD5DES,   
+      testing/tests/T024snmpv3getSHA1,   
+      testing/tests/T025snmpv3getSHADES,   
+      testing/tests/T026snmpv3getSHAAES,   
+      testing/tests/T028snmpv3getfail,   
       testing/tests/T030snmpv3usercreation,   
-      testing/tests/T115agentxperl:
+      testing/tests/T035snmpv3trapdusermgmt,   
+      testing/tests/T049snmpv3inform,   
+      testing/tests/T049snmpv3informauth,   
+      testing/tests/T049snmpv3informpriv, testing/tests/T050snmpv3trap, 
+        testing/tests/T051snmpv2ctrap, testing/tests/T052snmpv2cinform, 
+        testing/tests/T053agentv1trap, testing/tests/T054agentv2ctrap,  
+       testing/tests/T055agentv1mintrap,   
+      testing/tests/T056agentv2cmintrap,   
+      testing/tests/T057trapdauthtest,   
+      testing/tests/T057trapdauthtest2,   
+      testing/tests/T057trapdauthtest3,   
+      testing/tests/T058agentauthtrap,   
+      testing/tests/T059trapdtraphandle, testing/tests/T060trapdperl,   
+      testing/tests/T061agentperl, testing/tests/T065agentextend,   
+      testing/tests/T070com2sec, testing/tests/T071com2sec6,   
+      testing/tests/T072com2secunix, testing/tests/T100agenthup,   
+      testing/tests/T110agentxget, testing/tests/T111agentxset,   
+      testing/tests/T112agentxsetfail, testing/tests/T113agentxtrap,   
+      testing/tests/T114agentxagentxtrap, testing/tests/T115agentxperl, 
+        testing/tests/T120proxyget, testing/tests/T121proxyset,   
+      testing/tests/T122proxysetfail, testing/tests/T130snmpv1vacmget,  
+       testing/tests/T131snmpv2cvacmget,   
+      testing/tests/T132snmpv3vacmget,   
+      testing/tests/T140snmpv1vacmgetfail,   
+      testing/tests/T141snmpv2cvacmgetfail,   
+      testing/tests/T142snmpv3vacmgetfail,   
+      testing/tests/T150solarishostcpu,   
+      testing/tests/T151solarishostdisk, testing/tests/T152hostuptime,  
+       testing/tests/T153solarisswap, testing/tests/T160snmpnetstat,   
+      testing/tests/T200snmpv2cwalkall,   
+      testing/tests/test-localhost.cert,   
+      testing/tests/test-localhost.priv, testing/tests/test-user.cert,  
+       testing/tests/test-user.priv:
 
-   CHANGES: Cygwin: fixed bug in regression test infrastructure
-   which made detection of a free UDP port fail.
-   (Backported trunk r18073 and r18080).
+   NEWS: testing: Brand new test suite desigened to eventually test
+   more functionality, provide for support of unit-tests and support
+   of API tests
+
+2010-04-26 20:43  hardaker
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   removed a debugging echo
+
+2010-04-26 20:43  hardaker
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   more bug fixes for string searches
+
+2010-04-26 20:43  hardaker
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   added a new macro to check a trapd count
+
+2010-04-26 20:42  hardaker
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   use individual output files and fix some tests
+
+2010-04-26 20:42  hardaker
+
+   *  testing/RUNFULLTESTS,   
+      testing/fulltests/support/olducd_eval_tools.sh:
+
+   made existing test suite put out TAP output
+
+2010-04-26 20:42  hardaker
+
+   *  testing/RUNTESTS, testing/TESTCONF.sh,   
+      testing/eval_oneprogram.sh, testing/eval_onescript.sh,   
+      testing/eval_suite.sh, testing/eval_tools.sh, testing/fulltests,  
+       testing/fulltests/support,   
+      testing/fulltests/support/olducd_TESTCONF.sh,   
+      testing/fulltests/support/olducd_eval_tools.sh,   
+      testing/fulltests/support/run_olducd:
+
+   beginning of moving UCD test suite into a larger subdirectory
+
+2010-04-26 20:41  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   allow running tests that match a regexp
+
+2010-04-26 20:41  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   summarize tests that failed
+
+2010-04-26 20:41  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   created the ability to have run_ scripts for executing certain
+   types
+
+2010-04-26 20:41  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   made the build-script-check routine generic
+
+2010-04-26 20:41  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   support for build scripts
+
+2010-04-26 20:40  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   provide infrastructure for building and renaming tests
+
+2010-04-26 20:40  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   more test infrastructure setup
+
+2010-04-26 20:40  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   support the keyword 'all'
+
+2010-04-26 20:40  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   enable group gathering
+
+2010-04-26 20:39  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   creatino of a new testing harness
 
 2010-04-25 17:37  bvassche
 
@@ -7459,21 +17598,63 @@
 
    Documentation update.
 
-2010-04-25 17:01  bvassche
+2010-04-25 15:21  bvassche
 
-   *  snmplib/winservice.c, win32/net-snmp/net-snmp-config.h,   
+   *  win32/net-snmp/net-snmp-config.h,   
       win32/net-snmp/net-snmp-config.h.in:
 
-   Win32: builds again with MSVC 6 without PSDK.
+   Win32: reverted a recent unnecessary modification.
 
-2010-04-25 15:06  bvassche
+2010-04-25 15:00  marz
 
-   *  win32/libnetsnmptrapd/Makefile.in,   
-      win32/net-snmp/agent/mib_module_config.h,   
-      win32/netsnmpmibs/Makefile.in, win32/snmpd/Makefile.in,   
-      win32/snmptrapd/Makefile.in:
+   * local/net-snmp-cert:
 
-   Win32: builds again with HAVE_WIN32_PLATFORM_SDK disabled.
+   handle multiple --san args, check error codes on openssl cmds and
+   die on failure
+
+2010-04-25 14:18  bvassche
+
+   * win32/net-snmp/agent/mib_module_config.h:
+
+   Win32: builds again with SDK support disabled.
+
+2010-04-25 14:18  bvassche
+
+   *  win32/libnetsnmptrapd/Makefile.in, win32/netsnmpmibs/Makefile.in, 
+        win32/snmpd/Makefile.in, win32/snmptrapd/Makefile.in:
+
+   Win32: restored consistency between workspace-build and batch
+   build -- made sure that notification_log.c is only included in
+   the netsnmpmibs project.
+
+2010-04-25 13:58  bvassche
+
+   *  include/net-snmp/library/snmpTCPIPv6Domain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h,   
+      win32/libsnmp_dll/libsnmp.def, win32/net-snmp/net-snmp-config.h,  
+       win32/net-snmp/net-snmp-config.h.in,   
+      win32/transports/snmp_transport_inits.h:
+
+   Win32: fixes for recently introduced build breakage.
+
+2010-04-25 13:51  bvassche
+
+   * win32/libsnmp/Makefile.in, win32/libsnmp_dll/Makefile.in:
+
+   Win32: builds again with SDK support disabled.
+
+2010-04-25 13:48  bvassche
+
+   *  include/net-snmp/types.h, snmplib/closedir.c, snmplib/opendir.c,  
+       snmplib/readdir.c, snmplib/winservice.c:
+
+   Made sure that the Win32 MSVC 6 non-SDK build works again.
+
+2010-04-25 13:42  bvassche
+
+   * win32/Configure:
+
+   Removed an obsolete transformation rule.
 
 2010-04-25 12:05  bvassche
 
@@ -7482,6 +17663,76 @@
    Made it again possible to disable HAVE_WIN32_PLATFORM_SDK when
    building via win32/build.bat.
 
+2010-04-23 13:14  marz
+
+   * local/net-snmp-cert:
+
+   added --san DNS:a.b.c handling, help text fixes, other bug fixes.
+   Note multiple --san not supported yet
+
+2010-04-21 22:31  hardaker
+
+   * local/Makefile.in:
+
+   build the .made version of net-snmp-cert
+
+2010-04-21 22:31  hardaker
+
+   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
+      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
+
+   make depend after moving all the files around
+
+2010-04-21 20:16  rstory
+
+   *  include/net-snmp/library/cert_util.h,   
+      include/net-snmp/library/snmp_openssl.h, snmplib/cert_util.c,   
+      snmplib/snmp_openssl.c, snmplib/transports/snmpTLSBaseDomain.c:
+
+   build trust chain for client cert; add subject to index cache;
+   rebuild indexes
+   if any error while parsing index; reformat dump output
+   - add NS_CERT_CA allowed_use flag
+   - add subject, issuer and issuer_cert to netsnmp_cert
+   - move certToTSN_entry to cert_util header
+   - move container setup to its own function
+   - add subject name subcontainer
+   - add netsnmp_openssl_cert_dump_extensions,
+   netsnmp_openssl_cert_issued_by
+
+2010-04-21 16:16  hardaker
+
+   * man/snmpcmd.1.def:
+
+   document the single-dash / snmp.conf / double-dash precidence
+
+2010-04-21 16:15  hardaker
+
+   * man/snmp.conf.5.def:
+
+   document in the snmp.conf file that the tokens can be used for
+   command line applications too
+
+2010-04-21 16:15  hardaker
+
+   * man/snmp.conf.5.def:
+
+   document the file loading order and how to turn off host-specific
+   config
+
+2010-04-21 15:52  hardaker
+
+   *  include/net-snmp/library/default_store.h,   
+      include/net-snmp/library/read_config.h,   
+      include/net-snmp/library/snmp_transport.h, man/snmp.conf.5.def,   
+      snmplib/read_config.c, snmplib/snmp_api.c,   
+      snmplib/snmp_transport.c:
+
+   NEWS: apps: Generic host-specific configuration snmp.conf files
+   are now read. See the HOST-SPECIFIC FILES section of the
+   snmp.conf manual page.
+
 2010-04-20 12:44  jsafranek
 
    * snmplib/asn1.c:
@@ -7491,15 +17742,255 @@
    This may yield to problems with third-party applications which
    may depend on parsing ugly ASN.1 data - we'll see...
 
-2010-04-18 13:40  bvassche
+2010-04-20 00:12  hardaker
 
-   * snmplib/winpipe.c:
+   * snmplib/transports/snmpTLSBaseDomain.c:
 
-   Added #include <net-snmp/net-snmp-config.h> in file
-   snmplib/winpipe.c such
-   that building on Windows doesn't trigger a warning about
-   including both
-   <stdargs.h> and <varargs.h> in the same source file.
+   combine remote fingerprint checking and check both sides
+
+2010-04-20 00:05  hardaker
+
+   *  include/net-snmp/library/cert_util.h, snmplib/cert_util.c,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   if the remote fingerprint is specified, require an exact match
+
+2010-04-19 23:44  hardaker
+
+   *  snmplib/fd_event_manager.c, snmplib/snmp_api.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   fix various minor bugs, especially in output messages
+
+2010-04-19 21:14  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   more documentation and prototyping of needed RFC steps
+
+2010-04-19 21:14  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   convert if error check to return immediately so other code can be
+   outdented
+
+2010-04-19 21:13  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   more comments from the RFC text
+
+2010-04-18 15:25  bvassche
+
+   *  include/net-snmp/library/snmp_api.h, snmplib/transports,   
+      win32/build.pl, win32/libsnmp/Makefile.in,   
+      win32/libsnmp/libsnmp.dsp, win32/libsnmp_dll/Makefile.in,   
+      win32/libsnmp_dll/libsnmp_dll.dsp, win32/netsnmpmibs/Makefile.in, 
+        win32/transports, win32/transports/snmp_transport_inits.h:
+
+   Win32: builds again.
+
+2010-04-16 18:53  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   created a function to extract the securityName from the cert
+
+2010-04-16 18:53  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   don't need to set the accept state for TLS (just DTLS)
+
+2010-04-16 18:53  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   more TLS comment documentation and steps taken from the RFC
+
+2010-04-16 13:55  marz
+
+   * local/net-snmp-cert:
+
+   numerous fixes, more verbose default output, additive show flags,
+   arbitrary config param handling, better help text
+
+2010-04-16 13:08  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   don't double declare a struct
+
+2010-04-16 03:30  rstory
+
+   * snmplib/cert_util.c:
+
+   cert util fixes
+   - remove unused vars and duplicate code
+   - check prt before free
+   - new func for type from filename
+   - new functions for finding subsets from filename
+   - fix types in key search function but then ifdef if (unused
+   function)
+
+2010-04-15 22:57  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   use a structure reference to predeclare the structure
+
+2010-04-15 21:25  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   correct declaration of the f_open command now requiring returning
+   a transport
+
+2010-04-15 21:02  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   remove unneeded config container
+
+2010-04-15 21:02  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   copy fingerprint transport information into new tls structure
+   within DTLSUDP so per-transport fingerprints can be specified
+
+2010-04-15 21:01  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   properly check for tlsbase pointers in dtlsudp_send()
+
+2010-04-15 21:01  hardaker
+
+   * configure.d/config_os_libs:
+
+   grep the transport list for TLS not just DTLS for checking for
+   -lssl
+
+2010-04-15 21:01  hardaker
+
+   *  snmplib/snmp_api.c, snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   more bug fixes and made TLSTCP work with the -T flag
+
+2010-04-15 21:01  hardaker
+
+   * snmplib/snmp_api.c, snmplib/transports/snmpTLSTCPDomain.c:
+
+   make the f_open call assign the new transport pointer to use (and
+   check if NULL as a failure condition
+
+2010-04-15 21:00  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpDTLSUDPDomain.c:
+
+   begin work moving DTLS config routine in place
+
+2010-04-15 21:00  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   pass the entire tlsbase to the client_setup
+
+2010-04-15 21:00  hardaker
+
+   *  include/net-snmp/library/container.h,   
+      include/net-snmp/library/snmpTLSBaseDomain.h, snmplib/snmp_api.c, 
+        snmplib/transports/snmpTLSBaseDomain.c:
+
+   starting the storing of config data into the tlsbase
+
+2010-04-15 20:59  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   change client ssl setup to allow for direct fingerprint
+   specification of my/their certs
+
+2010-04-15 20:59  hardaker
+
+   *  agent/snmp_agent.c, include/net-snmp/library/snmpTLSBaseDomain.h, 
+        snmplib/snmp_api.c, snmplib/transports/snmpTLSTCPDomain.c:
+
+   split TLS into creation/close functions for eventual config
+   passing support
+
+2010-04-15 20:59  hardaker
+
+   * include/net-snmp/library/snmp_transport.h, snmplib/snmp_api.c:
+
+   pass transport config data to the transport f_config() function
+
+2010-04-15 20:59  hardaker
+
+   * snmplib/snmp_api.c:
+
+   return NULL on transport config error
+
+2010-04-15 20:58  hardaker
+
+   *  include/net-snmp/library/snmp_transport.h,   
+      snmplib/snmp_parse_args.c, snmplib/snmp_transport.c:
+
+   NEWS: apps: -T command line flag can be used to configure
+   transports
+
+2010-04-15 20:58  hardaker
+
+   * snmplib/snmp_api.c:
+
+   check transport NULLness before using
+
+2010-04-15 20:58  hardaker
+
+   *  include/net-snmp/library/snmp_api.h,   
+      include/net-snmp/library/snmp_transport.h,   
+      include/net-snmp/types.h, snmplib/snmp_api.c:
+
+   beginning of work to make transports configurable with
+   supplimental configuration data and new calls for f_open/f_config
+
+2010-04-15 20:58  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   added text in comments from future RFC to document the
+   implementation
+
+2010-04-15 18:51  rstory
+
+   * snmplib/cert_util.c:
+
+   mark pem w/key as identity; tweak partner debug; compare file
+   ctime against index too
+
+2010-04-15 17:09  rstory
+
+   * snmplib/cert_util.c:
+
+   use local space to reformat cert for search
 
 2010-04-15 16:55  bvassche
 
@@ -7517,12 +18008,47 @@
    or V5.5 branches and hence there was no reason to disable this
    preprocessor symbol.
 
+2010-04-15 15:08  marz
+
+   * local/Makefile.in:
+
+   add net-snmp-cert to make/install
+
 2010-04-15 10:52  jsafranek
 
    * testing/tests/T120proxyget, testing/tests/T121proxyset:
 
    Tests not working for TCP should be skipped also for TCP6.
 
+2010-04-14 18:13  rstory
+
+   * snmplib/cert_util.c:
+
+   fix vars/text from cut-n-paste
+
+2010-04-14 17:45  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   fix comments
+
+2010-04-14 17:45  rstory
+
+   * snmplib/cert_util.c:
+
+   lots of cert updates
+   - change cert subdir searching to match net-snmp-cert
+   - update key type handling
+   - ignore world readable keys
+   - keep type in indexes
+   - tweak cert/key print format
+
+2010-04-14 17:44  rstory
+
+   * local/net-snmp-cert:
+
+   make net-snmp-cert executable
+
 2010-04-14 13:12  jsafranek
 
    *  testing/tests/Svacmconfig, testing/tests/T120proxyget,   
@@ -7564,12 +18090,232 @@
    Studio.
    Partial back port of SVN revisions 17573 and 17696.
 
+2010-04-14 01:47  marz
+
+   * local/net-snmp-cert:
+
+   fix perms on created files -rw-------, umask(077)
+
+2010-04-13 22:15  marz
+
+   * local/net-snmp-cert, local/net-snmp-cert.conf:
+
+   fix perms, add --cn/-c, better dates defaults, snmp-tls org_unit,
+   added initial dummy config file
+
+2010-04-13 14:21  marz
+
+   * local/net-snmp-cert:
+
+   fixes for show cmds, cmdline, help
+
+2010-04-13 02:17  rstory
+
+   * snmplib/cert_util.c:
+
+   add support for key+cert in .pem files; misc tweaks
+
+2010-04-10 23:24  tanders
+
+   * snmplib/read_config.c:
+
+   build fix for C89 compilers (e.g. on HP-UX 10.20)
+
+2010-04-10 22:25  rstory
+
+   *  agent/mibgroup/tlstm-mib.h,   
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable,   
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable.h,   
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable/tlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable/tlstmCertToTSNTable.h:
+
+   initial cut at tlstmCertToTSNTable
+
+2010-04-10 22:24  rstory
+
+   * include/net-snmp/library/cert_util.h:
+
+   add define of max hash constant
+
+2010-04-10 22:24  rstory
+
+   * agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.c:
+
+   use cert util check for fingerprint len/algorithm
+
+2010-04-10 12:59  marz
+
+   * local/net-snmp-cert:
+
+   show cmd fixes
+
+2010-04-09 21:32  marz
+
+   * local/net-snmp-cert:
+
+   fairly functional (non-interactive) - be it known: there are bugs
+
+2010-04-09 20:54  rstory
+
+   *  agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.c,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable_internal.h:
+
+   merge some table_data.conf changes; remove unused code and a
+   bunch of verbose comments
+
+2010-04-08 14:57  rstory
+
+   * local/mib2c-update:
+
+   use full path
+
+2010-04-08 10:55  jsafranek
+
+   *  agent/mibgroup/if-mib/data_access/interface.c,   
+      agent/mibgroup/ip-mib/data_access/systemstats_common.c,   
+      agent/mibgroup/ip-mib/data_access/systemstats_linux.c,   
+      agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c,   
+      agent/mibgroup/sctp-mib/sctpScalars_common.c,   
+      include/net-snmp/data_access/systemstats.h:
+
+   Check results of calls to netsnmp_c64_check32_and_update and log
+   an error.
+   This allows users to relate various 'c64 32 bit check failed'
+   errors with specific counter.
+
+2010-04-08 01:09  rstory
+
+   * include/net-snmp/agent/table_tdata.h:
+
+   add prototype for new function
+
+2010-04-08 01:05  rstory
+
+   * agent/snmp_agent.c:
+
+   CHANGES: snmpd: translate NOSUCH*/ENDOFMIB errors during RESERVE1
+   to NOCREATION
+
+2010-04-08 00:56  rstory
+
+   * agent/helpers/table_tdata.c:
+
+   NEWS: snmpd: table_data/tdata next handler will not be called
+   during get
+   processing if no valid rows are found for the handler
+
+2010-04-08 00:56  rstory
+
+   * agent/helpers/table.c:
+
+   NEWS: snmpd: agent will no longer call table handlers if a set
+   request for
+   the handler has invalid indexes
+   CHANGES: snmpd: don't call cleanup on first request on bad
+   indexes. instead,
+   set actual error later, and free request data sets on first
+   request for sets
+
+2010-04-08 00:56  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   add function to validate fingerprint varbind
+
+2010-04-07 22:56  magfr
+
+   * configure, configure.d/config_modules_lib:
+
+   Solaris tr doesn't support character ranges reliably (see the
+   autoconf manual), change the expression to one that is simple
+   enough to b supported.
+
 2010-04-07 14:05  dts12
 
    * local/mib2c.table_data.conf:
 
    Insert the cache helper correctly.
 
+2010-04-07 10:40  rstory
+
+   *  agent/helpers/table_container.c, agent/helpers/table_tdata.c,   
+      include/net-snmp/agent/agent_handler.h,   
+      include/net-snmp/agent/table_container.h:
+
+   CHANGES: snmplib: add functions to remove list/row data from
+   request list
+
+2010-04-07 10:40  rstory
+
+   * agent/mibgroup/mibII/icmp.c:
+
+   ifdef var decl for vars only used in later ifdef block
+
+2010-04-07 10:40  rstory
+
+   *  include/net-snmp/library/check_varbind.h,   
+      include/net-snmp/library/snmp-tc.h, snmplib/check_varbind.c,   
+      snmplib/snmp-tc.c:
+
+   CHANGES: snmplib: add function to validate RowStatus and
+   StorageType varbinds
+   - also remove some duplicate code and fix comments indent mangled
+
+2010-04-07 10:39  rstory
+
+   * local/mib2c-update, man/mib2c-update.1.def:
+
+   update man page; fix shell redirect; create example rcfile if
+   missing
+
+2010-04-07 07:15  magfr
+
+   * apps/agentxtrap.c:
+
+   Use NETSNMP_DISABLE_MIB_LOADING instead of DISABLE_MIB_LOADING
+
+2010-04-07 00:38  magfr
+
+   * agent/mibgroup/host/data_access/swinst.h:
+
+   CHANGES: snmpd: Only enable hostSwInst rpm support on linux hosts
+   with librpm. This makes it possible to build on non-rpm linux
+   distributions.
+
+2010-04-07 00:14  magfr
+
+   *  testing/tests/T021snmpv3getnext,   
+      testing/tests/T035snmpv3trapdusermgmt,   
+      testing/tests/T049snmpv3inform,   
+      testing/tests/T049snmpv3informauth,   
+      testing/tests/T049snmpv3informpriv, testing/tests/T050snmpv3trap, 
+        testing/tests/T051snmpv2ctrap, testing/tests/T052snmpv2cinform, 
+        testing/tests/T053agentv1trap, testing/tests/T054agentv2ctrap,  
+       testing/tests/T055agentv1mintrap,   
+      testing/tests/T056agentv2cmintrap,   
+      testing/tests/T059trapdtraphandle, testing/tests/T100agenthup,   
+      testing/tests/T111agentxset, testing/tests/T112agentxsetfail,   
+      testing/tests/T113agentxtrap, testing/tests/T120proxyget,   
+      testing/tests/T121proxyset, testing/tests/T122proxysetfail,   
+      testing/tests/T141snmpv2cvacmgetfail:
+
+   CHANGES: testing: Change the test suite to work even if mib
+   lookup is disabled.
+
+2010-04-07 00:11  magfr
+
+   * testing/tests/T071com2sec6:
+
+   Check for com2sec6, not com2sec.
+
+2010-04-06 22:51  magfr
+
+   * configure, configure.d/config_modules_lib:
+
+   Move directory creation before the directories are used.
+
 2010-04-06 11:03  dts12
 
    * FAQ:
@@ -7590,21 +18336,412 @@
    Document large-disk statistics as latching at 2Tb (rather than
    wrapping).
 
-2010-03-29 17:17  bvassche
+2010-04-06 01:52  rstory
 
-   * configure, configure.d/config_os_progs:
+   * local/mib2c, man/mib2c.1.def:
 
-   Removed -Winline and -Wno-char-subscripts (backported r18286 from
-   the trunk).
+   NEWS: mib2c: mib2c can now optionally run sed on generated code
 
-2010-03-29 15:26  dts12
+2010-04-06 01:49  rstory
 
-   * agent/mibgroup/mibII/vacm_conf.c, snmplib/parse.c:
+   * snmplib/transports/snmpTLSBaseDomain.c:
 
-   Include MIB directory search path in reports of missing MIB
-   files.
-   Include config file search path in reports of missing access
-   control settings.
+   convert C++ comments to C comments
+
+2010-04-06 01:49  rstory
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   move ptr check before prt use
+
+2010-04-06 01:49  rstory
+
+   * snmplib/cert_util.c:
+
+   add filename to debug on new certs; make static func to return
+   mode names
+
+2010-04-06 00:47  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   allow a found fingerprint self-signed cert for now; eventually
+   need to respect the MIB config table
+
+2010-04-06 00:12  hardaker
+
+   * configure, configure.d/config_modules_lib:
+
+   mkdir snmplib/transports when DNE for building outside the source
+   dir
+
+2010-04-06 00:11  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   remove unused vars
+
+2010-04-06 00:11  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   remove unused variable
+
+2010-04-06 00:11  hardaker
+
+   *  snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   error code cleanup for tlsbase_wrapup_recv
+
+2010-04-05 23:12  hardaker
+
+   * snmplib/cert_util.c:
+
+   more better error/debug codes
+
+2010-04-05 23:08  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      include/net-snmp/library/snmp_transport.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   more comments from the future-RFC about the implementation; use
+   flags for server/client specification for expansion
+
+2010-04-05 23:08  hardaker
+
+   * snmplib/cert_util.c:
+
+   better error messages for usage constraints
+
+2010-04-05 23:08  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   move function protection logic in a top-level check
+
+2010-04-02 16:36  hardaker
+
+   * configure, configure.d/config_modules_lib:
+
+   fix init ordering
+
+2010-04-02 16:36  hardaker
+
+   *  snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   mv tlsbase init function to a proper ctor for auto-calling
+
+2010-04-02 16:36  hardaker
+
+   *  Makefile.in, configure, configure.d/config_modules_lib,   
+      snmplib/snmp_transport.c, snmplib/transports/snmpTCPIPv6Domain.c, 
+        snmplib/transports/snmpUDPIPv6Domain.c:
+
+   CHANGES: generate the transport initialization function list
+   dynamically and use it
+
+2010-04-02 16:35  hardaker
+
+   *  configure, configure.d/config_modules_lib,   
+      snmplib/snmpAAL5PVCDomain.c, snmplib/snmpAliasDomain.c,   
+      snmplib/snmpCallbackDomain.c, snmplib/snmpDTLSUDPDomain.c,   
+      snmplib/snmpIPBaseDomain.c, snmplib/snmpIPXDomain.c,   
+      snmplib/snmpIPv4BaseDomain.c, snmplib/snmpIPv6BaseDomain.c,   
+      snmplib/snmpSSHDomain.c, snmplib/snmpSTDDomain.c,   
+      snmplib/snmpSocketBaseDomain.c, snmplib/snmpTCPBaseDomain.c,   
+      snmplib/snmpTCPDomain.c, snmplib/snmpTCPIPv6Domain.c,   
+      snmplib/snmpTLSBaseDomain.c, snmplib/snmpTLSTCPDomain.c,   
+      snmplib/snmpUDPBaseDomain.c, snmplib/snmpUDPDomain.c,   
+      snmplib/snmpUDPIPv4BaseDomain.c, snmplib/snmpUDPIPv6Domain.c,   
+      snmplib/snmpUnixDomain.c, snmplib/transports,   
+      snmplib/transports/snmpAAL5PVCDomain.c,   
+      snmplib/transports/snmpAliasDomain.c,   
+      snmplib/transports/snmpCallbackDomain.c,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpIPBaseDomain.c,   
+      snmplib/transports/snmpIPXDomain.c,   
+      snmplib/transports/snmpIPv4BaseDomain.c,   
+      snmplib/transports/snmpIPv6BaseDomain.c,   
+      snmplib/transports/snmpSSHDomain.c,   
+      snmplib/transports/snmpSTDDomain.c,   
+      snmplib/transports/snmpSocketBaseDomain.c,   
+      snmplib/transports/snmpTCPBaseDomain.c,   
+      snmplib/transports/snmpTCPDomain.c,   
+      snmplib/transports/snmpTCPIPv6Domain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c,   
+      snmplib/transports/snmpUDPBaseDomain.c,   
+      snmplib/transports/snmpUDPDomain.c,   
+      snmplib/transports/snmpUDPIPv4BaseDomain.c,   
+      snmplib/transports/snmpUDPIPv6Domain.c,   
+      snmplib/transports/snmpUnixDomain.c:
+
+   CHANGES: moved transport code into a separate subdirectory in
+   snmplib
+
+2010-04-02 09:02  magfr
+
+   * agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c:
+
+   Do not attempt to check sizeof void to obtain the amount of
+   memory to copy.
+
+2010-04-01 17:11  rstory
+
+   *  agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.c,   
+      include/net-snmp/library/cert_util.h:
+
+   instead of fwd declares, require other header
+
+2010-04-01 17:10  rstory
+
+   * snmplib/snmpTLSTCPDomain.c:
+
+   fix compiler warning
+
+2010-04-01 17:10  rstory
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   remove outdated debug msg
+
+2010-04-01 17:09  rstory
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   use certapi to find certs/keys
+
+2010-04-01 14:40  rstory
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   register extraX509SubDir token
+
+2010-04-01 14:18  rstory
+
+   * local/mib2c.table_data.conf:
+
+   check ptr before use
+
+2010-04-01 14:18  rstory
+
+   * agent/helpers/table_tdata.c:
+
+   check ptr before use
+
+2010-04-01 13:13  rstory
+
+   *  agent/mibgroup/tlstm-mib/tlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.c,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable_internal.h,
+        
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable_persist.c:
+
+   add persistent storage; token for creating entries in snmpd.conf;
+   fix index
+
+2010-04-01 13:12  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   NEWS: snmplib: new certificate api to support tls/dtls
+
+2010-04-01 13:12  rstory
+
+   * include/net-snmp/library/snmp_openssl.h, snmplib/snmp_openssl.c:
+
+   CHANGES: add functions to get fingerprint from cert and log
+   openssl errs
+
+2010-04-01 12:46  rstory
+
+   * include/net-snmp/library/snmp_debug.h:
+
+   fix typo
+
+2010-04-01 10:33  bvassche
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   Builds again with pre-C90 compilers.
+
+2010-04-01 10:01  rstory
+
+   * local/mib2c.table_data.conf:
+
+   CHANGES: mib2c: table_data template enhancements
+   - add error checks during table init
+   - create cache earlier so we can bail on failure
+   - add option to create/delete row w/out adding/removing from
+   container
+
+2010-04-01 10:00  rstory
+
+   * include/net-snmp/agent/agent_read_config.h:
+
+   add helpful param names as hints in prototype
+
+2010-04-01 10:00  rstory
+
+   * agent/helpers/table_tdata.c:
+
+   search for container specific container before generic
+
+2010-04-01 10:00  rstory
+
+   *  include/net-snmp/library/dir_utils.h,   
+      include/net-snmp/library/file_utils.h, snmplib/dir_utils.c,   
+      snmplib/file_utils.c:
+
+   NEWS: snmplib: enhance file utils and dir utils
+   - add optional stats struct to netsnmp_file
+   - generalize dir container filter, add context to callback
+   - add option to store netsnmp_files (w/stats) in container
+   instead of just name
+
+2010-04-01 10:00  rstory
+
+   *  include/net-snmp/library/container.h,   
+      snmplib/container_binary_array.c:
+
+   add prototype to header; check ptr before dereferencing
+
+2010-03-31 15:34  jsafranek
+
+   *  local/Makefile.in, local/snmp-bridge-mib, man/Makefile.in,   
+      man/snmp-bridge-mib.1, mibs/BRIDGE-MIB.txt, mibs/Makefile.in,   
+      mibs/Makefile.mib:
+
+   NEWS: misc: PATCH: 2952708: from Jens Osterkamp: Added Perl
+   implementation of BRIDGE-MIB
+
+2010-03-31 02:12  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c:
+
+   proper packet labeling for DTLSUDP
+
+2010-03-31 02:11  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c, snmplib/snmpTLSBaseDomain.c:
+
+   use common context creation code
+
+2010-03-30 23:24  hardaker
+
+   * snmplib/snmpTLSTCPDomain.c:
+
+   change TLS method to TLSv1 from SSLv23
+
+2010-03-30 23:23  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpTLSBaseDomain.c,   
+      snmplib/snmpTLSTCPDomain.c:
+
+   move more common data and functionality into the TLS base
+
+2010-03-30 23:20  hardaker
+
+   * snmplib/snmpTLSTCPDomain.c:
+
+   minor TLS code cleanup
+
+2010-03-30 20:28  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   rework if() wrapping for less confusion in error handling
+
+2010-03-30 20:27  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   code consolidation in start_new_cached_connectio
+
+2010-03-30 20:27  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   rename generic 'bio' pointer to 'read_bio' for better readability
+
+2010-03-30 20:26  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   move buffered data creation to a separate function for reuse
+
+2010-03-30 17:52  marz
+
+   * local/net-snmp-cert:
+
+   initial cert gen wrapper script - not working
+
+2010-03-30 17:27  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   clean up error output so it doesn't report want_read and
+   want_write errors
+
+2010-03-30 17:27  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   renaming of sending function for clarity and check one more
+   location for needed outgoing packets
+
+2010-03-30 17:27  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   added dtlsudp tracing tokens
+
+2010-03-30 17:27  hardaker
+
+   * include/net-snmp/library/snmp_debug.h:
+
+   CHANGES: added a new DEBUGTRACETOK() macro
+
+2010-03-30 17:27  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   better comments and more work on sending buffered data in the
+   right spots
+
+2010-03-30 17:26  hardaker
+
+   * snmplib/snmpTLSTCPDomain.c:
+
+   fix arguments to get_commonName
+
+2010-03-30 17:26  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   beginning of caching of packets before they can be sent via DTLS
+
+2010-03-30 17:26  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   handle SSL_WANT_READ/WRITE better; still need to buffer outgoing
+   write data
+
+2010-03-30 17:26  hardaker
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   minor change to output error printing
 
 2010-03-29 15:20  dts12
 
@@ -7690,14 +18827,6 @@
    Do not only save snmpd / snmptrapd logs but also the stdout /
    stderr output generated by these processes.
 
-2010-03-28 18:00  bvassche
-
-   *  win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   Partially reverted r18382 on the 5.5 branch in order to preserve
-   backwards compatibility with already released Windows-headers.
-
 2010-03-28 16:09  bvassche
 
    * perl/SNMP/t/startagent.pl:
@@ -7732,40 +18861,11 @@
 
    Fixed a recently reintroduced compiler warning.
 
-2010-03-28 12:04  bvassche
+2010-03-27 18:42  bvassche
 
-   * perl/default_store/test.pl:
+   * Makefile.in:
 
-   Backported r18287 from the trunk.
-
-2010-03-27 19:19  bvassche
-
-   * perl/OID/OID.xs, perl/SNMP/SNMP.xs:
-
-   Builds again.
-
-2010-03-27 18:57  bvassche
-
-   *  perl/ASN/ASN.xs, perl/OID/OID.xs, perl/SNMP/SNMP.xs,   
-      perl/TrapReceiver/TrapReceiver.xs, perl/TrapReceiver/ppport.h,   
-      perl/agent/agent.xs:
-
-   Backported r18282, r18283 and r18312 from trunk, which fix most
-   compiler warnings triggered by compilation of the XSUBs.
-
-2010-03-27 18:52  bvassche
-
-   *  perl/ASN/ASN.xs, perl/ASN/Makefile.PL, perl/OID/Makefile.PL,   
-      perl/OID/OID.xs, perl/TrapReceiver/Makefile.PL,   
-      perl/TrapReceiver/TrapReceiver.xs, perl/agent/Makefile.PL,   
-      perl/agent/Support/Makefile.PL, perl/agent/agent.xs,   
-      perl/agent/default_store/Makefile.PL,   
-      perl/agent/default_store/default_store.xs,   
-      perl/default_store/Makefile.PL,   
-      perl/default_store/default_store.xs:
-
-   Backported r18248, which makes compilation of the Perl XSUBs more
-   silent.
+   Added a check for invocation of calloc() from XSUBs.
 
 2010-03-26 19:16  bvassche
 
@@ -7777,11 +18877,43 @@
    redefining malloc etc. nor trigger "Free to wrong pool" errors on
    Windows.
 
-2010-03-26 12:04  bvassche
+2010-03-26 14:44  bvassche
+
+   *  include/net-snmp/library/snmpIPBaseDomain.h,   
+      snmplib/snmpIPBaseDomain.c, snmplib/snmpTCPDomain.c,   
+      snmplib/snmpTCPIPv6Domain.c:
+
+   Refactoring: introduced a new function:
+   netsnmp_set_non_blocking_mode().
+
+2010-03-26 11:58  bvassche
+
+   *  agent/mibgroup/disman/event/mteTriggerConf.c,   
+      agent/mibgroup/disman/schedule/schedConf.c,   
+      agent/mibgroup/mibII/vacm_conf.c,   
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
+         agent/mibgroup/target/snmpTargetAddrEntry.c,   
+      agent/mibgroup/target/snmpTargetParamsEntry.c,   
+      agent/mibgroup/ucd-snmp/pass.c,   
+      agent/mibgroup/ucd-snmp/pass_persist.c,   
+      agent/mibgroup/util_funcs.c, agent/mibgroup/utilities/execute.c,  
+       apps/snmpbulkget.c, apps/snmpbulkwalk.c, apps/snmpdelta.c,   
+      apps/snmptest.c, apps/snmptrapd_handlers.c, apps/snmptrapd_log.c, 
+        snmplib/int64.c, snmplib/mib.c, snmplib/parse.c,   
+      snmplib/read_config.c, snmplib/snmp_logging.c,   
+      snmplib/snmp_parse_args.c, snmplib/snmpv3.c,   
+      snmplib/text_utils.c:
+
+   Fixed compiler warnings about using variables of type char as an
+   array subscript. Note: as far as I know these warnings are only
+   reported when using the Cygwin glibc headers.
+
+2010-03-26 10:41  bvassche
 
    * snmplib/strtoull.c:
 
-   Removed a superfluous #include directive.
+   Added missing #include directive (on Windows MSVC was complaining
+   about size_t while processing <net-snmp/library/system.h>).
 
 2010-03-25 20:07  bvassche
 
@@ -7815,14 +18947,25 @@
 
 2010-03-25 15:06  bvassche
 
-   *  configure, configure.d/config_os_functions,   
-      include/net-snmp/library/system.h,   
-      include/net-snmp/net-snmp-config.h.in, perl/SNMP/SNMP.xs,   
+   *  include/net-snmp/library/system.h, perl/SNMP/SNMP.xs,   
       perl/agent/agent.xs:
 
    CHANGES: BUG: 2969872: made sure that SOCK_STARTUP is invoked
    before init_agent() on Windows.
 
+2010-03-25 13:39  jsafranek
+
+   *  apps/snmpbulkget.c, apps/snmpbulkwalk.c, apps/snmpdelta.c,   
+      apps/snmpdf.c, apps/snmpget.c, apps/snmpgetnext.c,   
+      apps/snmpnetstat/main.c, apps/snmpset.c, apps/snmpstatus.c,   
+      apps/snmptable.c, apps/snmptest.c, apps/snmptrap.c,   
+      apps/snmpusm.c, apps/snmpvacm.c, apps/snmpwalk.c,   
+      include/net-snmp/library/snmp_parse_args.h,   
+      snmplib/snmp_parse_args.c:
+
+   Use macros instead of magic numbers as netsnmp_parse_args return
+   codes.
+
 2010-03-25 13:30  bvassche
 
    *  win32/Configure, win32/libsnmp_dll/libsnmp.def,   
@@ -7834,11 +18977,64 @@
    which of the functions in this DLL have been declared as
    NETSNMP_IMPORT.
 
-2010-03-25 13:27  bvassche
+2010-03-24 20:11  rstory
 
-   * include/net-snmp/library/snmpUDPIPv6Domain.h:
+   * snmplib/snmp_enum.c:
 
-   Windows DLL build fix.
+   don't use passed ptr as temp var; use snmp_enum_lists in init
+   test
+
+2010-03-24 20:10  rstory
+
+   * include/net-snmp/library/default_store.h:
+
+   add NETSNMP_DS_LIB_CERT_EXTRA_SUBDIR
+
+2010-03-24 20:10  rstory
+
+   * snmplib/snmpTLSBaseDomain.c, snmplib/snmp_api.c:
+
+   move cert init earlier (have tls_bootstrap call it)
+
+2010-03-24 20:10  rstory
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   fix compiler warnings; add cert debug msgs in server setup; free
+   ssl log data
+
+2010-03-24 10:47  jsafranek
+
+   *  apps/snmpbulkget.c, apps/snmpbulkwalk.c, apps/snmpdelta.c,   
+      apps/snmpdf.c, apps/snmpget.c, apps/snmpgetnext.c,   
+      apps/snmpnetstat/main.c, apps/snmpset.c, apps/snmpstatus.c,   
+      apps/snmptable.c, apps/snmptest.c, apps/snmptrap.c,   
+      apps/snmpusm.c, apps/snmpvacm.c, apps/snmpwalk.c,   
+      include/net-snmp/library/snmp_parse_args.h,   
+      snmplib/snmp_parse_args.c:
+
+   CHANGES: apps: return nozero exit code when parsing of certain
+   parameter fails.
+   E.g. '-A' parameter with too short passphrase or Ku key
+   generation in general.
+
+2010-03-24 07:11  magfr
+
+   * apps/agentxtrap.c:
+
+   Correct the type of the id/description of the Open-PDU.
+
+2010-03-22 18:29  bvassche
+
+   * Makefile.in:
+
+   Updates for "make checks":
+   - Made sure that exit code 0 is generated when the check is
+   successful and that
+   exit code 1 is generated when the check failed.
+   - Made "makefilecheck" skip Subversion bookkeeping files and also
+   the makefile
+   that contains "makefilecheck".
 
 2010-03-22 16:10  dts12
 
@@ -7847,6 +19043,16 @@
    Fix typo in default IpAddress value
    (See Bug #2972141)
 
+2010-03-22 15:44  rstory
+
+   *  Makefile.in, agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/winExtDLL.c, agent/snmp_agent.c,   
+      apps/snmpnetstat/main.c, snmplib/callback.c,   
+      snmplib/read_config.c, snmplib/strtok_r.c, snmplib/strtoull.c:
+
+   change all assert() to netsnmp_assert(); add assertcheck to top
+   level makefile
+
 2010-03-22 15:24  bvassche
 
    * mibs/UCD-DISKIO-MIB.txt:
@@ -7854,6 +19060,14 @@
    Follow-up for r18349: added missing comma such that it is again
    possible to compile UCD-DISKIO-MIB.
 
+2010-03-22 14:36  dts12
+
+   * agent/snmpd.c, snmplib/snmp_parse_args.c:
+
+   Fix build when MIB loading is disabled (broken by SVN revision
+   18341)
+   Report default MIB path for client apps too.
+
 2010-03-22 13:59  dts12
 
    *  man/snmp_api_errstring.3, man/snmp_close.3, man/snmp_error.3,   
@@ -7880,18 +19094,87 @@
    ASN varbinds with ASN type zero. Note: this code change does not
    change the agent behavior.
 
+2010-03-20 20:21  bvassche
+
+   *  include/net-snmp/library/mib.h,   
+      include/net-snmp/library/read_config.h:
+
+   Builds again with MSVC.
+
+2010-03-20 20:20  bvassche
+
+   * agent/mibgroup/ucd-snmp/loadave.c:
+
+   Added a trailing backslash (should have been added in the
+   previous commit).
+
+2010-03-20 19:36  bvassche
+
+   *  agent/agent_registry.c, agent/helpers/table_dataset.c,   
+      agent/mibgroup/agent/extend.c, agent/mibgroup/agent/nsDebug.c,   
+      agent/mibgroup/agent/nsLogging.c, agent/mibgroup/agentx/master.c, 
+       
+      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access.c,
+         agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
+      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c,
+         agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c,   
+      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c,
+         agent/mibgroup/mibII/at.c, agent/mibgroup/mibII/interfaces.c,  
+       agent/mibgroup/mibII/route_write.c,   
+      agent/mibgroup/mibII/vacm_conf.c, agent/mibgroup/misc/ipfwacc.c,  
+       agent/mibgroup/notification-log-mib/notification_log.c,   
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
+         agent/mibgroup/target/snmpTargetAddrEntry.c,   
+      agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c,   
+      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c,   
+      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.h,   
+      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.c,
+         agent/mibgroup/ucd-snmp/disk.c,   
+      agent/mibgroup/ucd-snmp/loadave.c,   
+      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c,
+         agent/mibgroup/util_funcs.c, agent/snmpd.c,   
+      apps/snmpnetstat/route.c, apps/snmptrapd.c,   
+      include/net-snmp/agent/table_dataset.h, include/net-snmp/types.h, 
+        snmplib/snmpIPv6BaseDomain.c, snmplib/snmpTCPDomain.c,   
+      snmplib/snmpTCPIPv6Domain.c, snmplib/snmpUDPDomain.c,   
+      snmplib/snmpUDPIPv6Domain.c, snmplib/system.c, snmplib/tools.c,   
+      snmplib/winpipe.c, snmplib/winservice.c:
+
+   CHANGES: libsnmp: changed the type of the fourth argument of
+   netsnmp_set_row_column() from const char* to const void* such
+   that no cast is necessary when passing another datatype then
+   char* or const char*.
+   CHANGES: Win32: changed in_addr_t from u_int to u_long such that
+   it matches the datatype of sockaddr_in::sin_addr.
+   Also, fixed several compiler warnings (mostly char * <> u_char *
+   mismatches) and removed some casts.
+
 2010-03-20 19:16  bvassche
 
    * agent/mibgroup/winExtDLL.c:
 
    Fixed the compiler warnings reported by gcc (MinGW).
 
+2010-03-20 19:05  bvassche
+
+   *  configure, configure.d/config_os_functions,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   Added configure test for sigprocmask.
+
 2010-03-20 09:14  bvassche
 
    * agent/mibgroup/winExtDLL.c:
 
    Refactoring: moved duplicated code into a new function.
 
+2010-03-19 22:56  dts12
+
+   * agent/mibgroup/mibII/vacm_conf.c, agent/snmpd.c, snmplib/parse.c:
+
+   Report MIB and config directories search paths on errors
+   (and in the help message)
+
 2010-03-19 13:12  bvassche
 
    * agent/agent_registry.c:
@@ -7927,11 +19210,94 @@
    by every request for which a response with non-zero error status
    is sent back.
 
-2010-03-17 13:41  bvassche
+2010-03-18 16:29  rstory
+
+   *  agent/mibgroup/agent/nsLogging.c,   
+      include/net-snmp/library/snmp_logging.h, snmplib/snmp_logging.c:
+
+   keep count of enabled logs; use this count to determine when to
+   log to stderr
+
+2010-03-18 16:28  rstory
+
+   *  apps/snmptranslate.c, apps/snmptrapd.c, snmplib/cert_util.c,   
+      snmplib/snmp_logging.c, snmplib/snmp_parse_args.c:
+
+   NEWS: snmplib: new snmp token logOption allows specifying log
+   destinations vi conf files
+   - if stderr log enabled because of no log destination, turn it
+   off when a
+   log destination is enabled
+   - don't call netsnmp_enable_stderrlog() from apps anymore
+
+2010-03-18 15:31  rstory
+
+   *  include/net-snmp/library/snmpUDPBaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpUDPBaseDomain.c,   
+      snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv4BaseDomain.c:
+
+   udp transport inheritance tweaks
+   - move basic udp recvfrom/sendto code from UDPDomain to
+   UDPBaseDomain
+   - tweak upd recvfrom/sendto to call udpbase verstion
+   - tweak udpipv4 recvfrom/sendto to call udpbase version
+   - also fixed netsnmp_ipv4_* -> netsnmp_udpipv4_*
+   - tweak DTLSUDPDomain ot use udpbase_* instead of udp_*
+
+2010-03-18 15:21  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/snmp_api.c:
+
+   protect cert header and init call with ifdefs
+
+2010-03-17 19:01  rstory
+
+   * snmplib/snmpDTLSUDPDomain.c, snmplib/snmpTLSTCPDomain.c:
+
+   use new utility routine for cert names
+
+2010-03-17 19:01  rstory
+
+   * snmplib/cert_util.c:
+
+   move snmp_openssl header after openssl headers
+
+2010-03-17 19:00  rstory
+
+   * include/net-snmp/library/snmp_openssl.h, snmplib/snmp_openssl.c:
+
+   add routines to pull/dump names from X509 certs
+
+2010-03-17 19:00  rstory
+
+   * snmplib/cert_util.c:
+
+   use enum lists to manage directory indexes
+
+2010-03-17 19:00  rstory
+
+   * snmplib/snmp_enum.c:
+
+   initialize static storage before use; protect enum init from
+   multiple calls
+
+2010-03-17 18:54  rstory
+
+   * README.agent-mibs:
+
+   add info about new tsm/tls mibs
+
+2010-03-17 18:54  rstory
+
+   * snmplib/snmpTLSBaseDomain.c, snmplib/snmp_api.c:
+
+   move cert init to snmp init
+
+2010-03-17 13:37  bvassche
 
    * mibs/NET-SNMP-AGENT-MIB.txt, mibs/NET-SNMP-EXTEND-MIB.txt:
 
-   Minor MIB fixes (backported r18320, r18321 and r18325).
+   Updated MIB revision history.
 
 2010-03-17 13:29  bvassche
 
@@ -7946,6 +19312,25 @@
    CHANGES: BUG: 2971257: Fixed winExtDLL handling of multi-varbind
    getNext requests with OIDs in reverse lexicographical order.
 
+2010-03-17 10:25  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   More winExtDLL debug output tuning.
+
+2010-03-16 19:31  bvassche
+
+   * mibs/NET-SNMP-AGENT-MIB.txt:
+
+   Compiles now with MIB compilers that do not recognize a double
+   dash as the end of a MIB comment.
+
+2010-03-16 19:27  bvassche
+
+   * mibs/NET-SNMP-EXTEND-MIB.txt:
+
+   Fixed two syntax errors.
+
 2010-03-16 19:18  bvassche
 
    * agent/mibgroup/winExtDLL.c:
@@ -7953,6 +19338,272 @@
    CHANGES: Win32: winExtDLL: fixed a bug in getNext handling that
    could cause the MIB output to be truncated.
 
+2010-03-16 18:50  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Made winExtDLL debug output more detailed.
+
+2010-03-16 15:24  bvassche
+
+   *  include/net-snmp/library/snmpSocketBaseDomain.h,   
+      include/net-snmp/library/snmpUDPBaseDomain.h:
+
+   Made sure that C++ programs that include Net-SNMP header files
+   compile again.
+
+2010-03-15 07:20  magfr
+
+   * agent/helpers/instance.c:
+
+   Make it compile with --disable-deprecated again.
+
+2010-03-15 07:19  magfr
+
+   * agent/helpers/debug_handler.c:
+
+   Disable all the printing if debug output is off.
+
+2010-03-15 00:17  tanders
+
+   * perl/TrapReceiver/TrapReceiver.xs, perl/agent/agent.xs:
+
+   fix compiler warnings regarding printf format
+
+2010-03-15 00:07  tanders
+
+   * 
+      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c,
+         agent/mibgroup/ucd-snmp/lmSensors.c:
+
+   fix compiler warnings regarding printf format
+
+2010-03-14 21:05  rstory
+
+   * agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h:
+
+   make sure header ifdef name is unique
+
+2010-03-14 21:04  rstory
+
+   *  agent/mibgroup/host/data_access/swinst.h,   
+      agent/mibgroup/host/data_access/swrun.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.h,   
+      agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h:
+
+   add missing init/shutdown prototypes to fix compiler warnings
+
+2010-03-14 21:03  rstory
+
+   * snmplib/data_list.c:
+
+   move debug message earlier
+
+2010-03-14 21:02  rstory
+
+   *  include/net-snmp/library/container.h,   
+      snmplib/container_list_ssll.c:
+
+   add prototype for netsnmp_init_container; fix compler warning
+
+2010-03-14 20:51  magfr
+
+   * include/net-snmp/library/snmp_assert.h:
+
+   Correct netsnmp_assert_or_return and netsnmp_assert_or_msgreturn
+   for the NETSNMP_NO_DEBUGGING case
+
+2010-03-14 19:10  rstory
+
+   *  include/net-snmp/library/cert_util.h, snmplib/cert_util.c,   
+      snmplib/snmpTLSBaseDomain.c:
+
+   rename cert init/shutdown funcs; only compile cert_utils if
+   using/have SSL; init certs from tls base
+
+2010-03-14 19:09  rstory
+
+   * snmplib/cert_util.c:
+
+   call netsnmp_init_openssl instead of netsnmp_init_tlsbase
+
+2010-03-14 19:09  rstory
+
+   * include/net-snmp/library/snmp_api.h:
+
+   update for renamed objects in version 08 of the dtls draft
+
+2010-03-14 19:08  rstory
+
+   *  agent/mibgroup/tlstm-mib, agent/mibgroup/tlstm-mib.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmSession,   
+      agent/mibgroup/tlstm-mib/snmpTlstmSession.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.c,   
+      agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.h,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.c,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.h,   
+      agent/mibgroup/tsm-mib, agent/mibgroup/tsm-mib.h,   
+      agent/mibgroup/tsm-mib/snmpTsmStats,   
+      agent/mibgroup/tsm-mib/snmpTsmStats.h,   
+      agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.c,   
+      agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h:
+
+   import initial code for dtls mibs
+
+2010-03-14 19:08  rstory
+
+   * mibs/TLSTM-MIB.txt:
+
+   TLSTM-MIB from draft-ietf-isms-dtls-tm-09.txt
+
+2010-03-14 17:21  bvassche
+
+   * agent/helpers/snmp_get_statistic.c, agent/mibgroup/mibII/icmp.c:
+
+   Fixed a few more compiler warnings.
+
+2010-03-14 14:10  bvassche
+
+   * perl/default_store/test.pl:
+
+   Follow-up for r17384: changed NETSNMP_DS_MAX_SUBIDS from 40 to
+   48.
+
+2010-03-14 13:53  bvassche
+
+   * configure, configure.d/config_os_progs:
+
+   Changes:
+   - Removed -Wno-char-subscripts from DEVFLAGS. Using a variable or
+   expression of
+   type char as an array index is almost always an error.
+   Furthermore,
+   -Wchar-subscript does not trigger any warnings on the Net-SNMP
+   code base.
+   - Removed -Winline from DEVFLAGS. Not only was nobody paying
+   attention to the
+   messages triggered by -Winline, but recent versions of the gcc
+   compiler are
+   better than humans at deciding which functions should be inlined
+   and which
+   ones not.
+
+2010-03-14 13:39  bvassche
+
+   * include/net-snmp/net-snmp-config.h.in:
+
+   Reran autoreconf.
+
+2010-03-14 13:39  bvassche
+
+   *  agent/mibgroup/host/data_access/swrun.c,   
+      agent/mibgroup/host/data_access/swrun_procfs_status.c,   
+      agent/mibgroup/host/hrSWRunPerfTable.c,   
+      agent/mibgroup/host/hrSWRunTable.c,   
+      agent/mibgroup/if-mib/data_access/interface_linux.c,   
+      agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c:
+
+   Fixed several compiler warnings.
+
+2010-03-14 13:36  bvassche
+
+   * perl/SNMP/SNMP.xs:
+
+   Removed the '0x' prefix again from a debug statement that was
+   introduced in r18282.
+
+2010-03-13 19:07  bvassche
+
+   *  perl/ASN/ASN.xs, perl/OID/OID.xs, perl/SNMP/SNMP.xs,   
+      perl/TrapReceiver/TrapReceiver.xs, perl/TrapReceiver/ppport.h,   
+      perl/agent/agent.xs:
+
+   Fixed most compiler warnings triggered by the source code in the
+   perl subdirectory.
+   Note: these changes may contain some real bug fixes.
+
+2010-03-13 09:57  bvassche
+
+   * snmplib/cert_util.c, snmplib/snmp_api.c:
+
+   Fixed several recently introduced compiler warnings.
+
+2010-03-13 01:16  hardaker
+
+   * acconfig.h, configure, include/net-snmp/net-snmp-config.h.in:
+
+   define the TLSTCP DOMAIN
+
+2010-03-13 01:16  hardaker
+
+   * snmplib/snmp_transport.c:
+
+   fix ifdef typo
+
+2010-03-12 20:26  hardaker
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   change debugging symbol names to a generic tls string
+
+2010-03-12 20:22  hardaker
+
+   * snmplib/snmpTLSTCPDomain.c:
+
+   initial working SNMP over TLS over TCP connection
+
+2010-03-12 20:22  hardaker
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   print a more complete OpenSSL stack
+
+2010-03-12 20:22  hardaker
+
+   * snmplib/snmptsm.c:
+
+   fix assert statements
+
+2010-03-12 20:21  hardaker
+
+   * include/net-snmp/library/snmpTLSBaseDomain.h:
+
+   added an accepted_bio pointer for the bio after SSL_accept
+
+2010-03-12 20:21  hardaker
+
+   * snmplib/snmp_transport.c:
+
+   add the ability for f_copy and f_config
+
+2010-03-12 20:21  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   missing ;
+
+2010-03-12 20:21  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   add a f_copy pointer
+
+2010-03-12 20:20  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   return int not int * on error
+
+2010-03-12 20:20  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   added a f_config function for transports
+
 2010-03-12 11:53  dts12
 
    * apps/snmptable.c:
@@ -7968,18 +19619,36 @@
    Remove duplicate definition of
    getulongfromsysclassnetstatistics()
 
+2010-03-11 16:52  dts12
+
+   * man/snmpcmd.1.def:
+
+   Document the format of the -e/-E command line options.
+
 2010-03-11 16:47  dts12
 
    * agent/helpers/table_dataset.c:
 
    Remove mention of the (abandoned) 'dataset2' helper.
 
-2010-03-11 16:03  dts12
+2010-03-11 15:59  dts12
+
+   * snmplib/cert_util.c:
+
+   Don't initialise the TLS transport unless it's actually been
+   configured in.
+
+2010-03-11 15:47  rstory
 
    * testing/eval_suite.sh:
 
-   Use SNMP_TMPDIR instead of TMPDIR
-   Backport of revision 18262
+   use SNMP_TMPDIR instead of TMPDIR
+
+2010-03-11 15:31  rstory
+
+   * snmplib/snmptsm.c:
+
+   query right bool (tsm prefix is lib bool, not app)
 
 2010-03-11 15:08  dts12
 
@@ -8081,6 +19750,130 @@
    CHANGES: snmpd: PATCH: 2950845: Fix ifHighSpeed calculation
    Patch provided by Leonardo Chiquitto
 
+2010-03-11 08:26  bvassche
+
+   *  perl/ASN/ASN.xs, perl/ASN/Makefile.PL, perl/OID/Makefile.PL,   
+      perl/OID/OID.xs, perl/TrapReceiver/Makefile.PL,   
+      perl/TrapReceiver/TrapReceiver.xs, perl/agent/Makefile.PL,   
+      perl/agent/Support/Makefile.PL, perl/agent/agent.xs,   
+      perl/agent/default_store/Makefile.PL,   
+      perl/agent/default_store/default_store.xs,   
+      perl/default_store/Makefile.PL,   
+      perl/default_store/default_store.xs:
+
+   Made compilation of the Perl module NetSNMP.pm on Windows more
+   silent: added compiler flags -D_CRT_SECURE_NO_WARNINGS
+   -D_CRT_NONSTDC_NO_WARNINGS and made sure that #include
+   <net-snmp/net-snmp-config.h> occurs before any other include file
+   that defines _WIN32_WINNT.
+
+2010-03-10 23:31  rstory
+
+   *  include/net-snmp/library/cert_util.h, snmplib/Makefile.in,   
+      snmplib/cert_util.c:
+
+   NEWS: snmplib: create indexes for certificates in config path
+
+2010-03-10 18:48  bvassche
+
+   * snmplib/snmpSocketBaseDomain.c:
+
+   Added "#include <unistd.h>" such that on Unix systems the
+   compiler does not print a warning about a missing declaration for
+   the function close().
+
+2010-03-10 18:30  rstory
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec, perl/ASN/ASN.pm,   
+      perl/AnyData_SNMP/Storage.pm, perl/OID/OID.pm, perl/SNMP/SNMP.pm, 
+        perl/TrapReceiver/TrapReceiver.pm,
+      perl/agent/Support/Support.pm,    perl/agent/agent.pm,
+      perl/agent/default_store/default_store.pm,   
+      perl/default_store/default_store.pm:
+
+   update version to 5.6.dev
+
+2010-03-10 18:29  rstory
+
+   * local/Version-Munge.pl:
+
+   CHANGES: building: update Version-Munge for renamed configure.ac
+
+2010-03-10 18:29  rstory
+
+   * configure.ac:
+
+   CHANGES: building: save configure cache every once in while
+
+2010-03-10 16:12  bvassche
+
+   * win32/libsnmp/Makefile.in:
+
+   Reordered some of the Makefile rules in order to minimize the
+   diffs with libsnmp_dll/Makefile.in.
+
+2010-03-10 16:10  bvassche
+
+   * win32/libsnmp_dll/Makefile.in:
+
+   Win32, batch building: DLL builds again.
+
+2010-03-10 16:07  bvassche
+
+   * agent/helpers/cache_handler.c:
+
+   Fixed a recently introduced compiler warning by adding a forward
+   declaration for the function _cache_free().
+
+2010-03-10 16:06  bvassche
+
+   * snmplib/container.c:
+
+   Builds again on Win32.
+
+2010-03-10 04:17  rstory
+
+   * README:
+
+   add missing contributors
+
+2010-03-10 04:17  rstory
+
+   * include/net-snmp/library/container.h, snmplib/container.c:
+
+   CHANGES: snmplib: fix potential double free in CONTAINER_FREE
+   - also added several compare routines
+
+2010-03-10 04:17  rstory
+
+   *  agent/helpers/cache_handler.c,   
+      include/net-snmp/agent/cache_handler.h:
+
+   CHANGES: snmplib: when freeing a cache, stop timer and call cache
+   free func
+   - also add netsnmp_cache_remove
+
+2010-03-10 03:52  rstory
+
+   *  README, agent/helpers/cache_handler.c,   
+      include/net-snmp/agent/cache_handler.h,   
+      include/net-snmp/library/cert_util.h,   
+      include/net-snmp/library/container.h, snmplib/Makefile.in,   
+      snmplib/cert_util.c, snmplib/container.c:
+
+   undo commit 18234
+
+2010-03-10 03:41  rstory
+
+   *  README, agent/helpers/cache_handler.c,   
+      include/net-snmp/agent/cache_handler.h,   
+      include/net-snmp/library/cert_util.h,   
+      include/net-snmp/library/container.h, snmplib/Makefile.in,   
+      snmplib/cert_util.c, snmplib/container.c:
+
+   Merge branch 'pullme' of ../trunk-staging
+
 2010-03-09 17:48  bvassche
 
    * include/net-snmp/mib_api.h:
@@ -8094,15 +19887,6 @@
 
    Simplified two makefiles used by build.bat (Win32).
 
-2010-03-09 17:44  bvassche
-
-   *  win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
-
-   CHANGES: Win32: building: libsnmp.dll builds now with MSVC 2002
-   and above without triggering a linker error about strtoull.
-   (Backported trunk r17886.)
-
 2010-03-09 17:24  bvassche
 
    * perl/SNMP/SNMP.xs:
@@ -8119,6 +19903,89 @@
    adding the MSVC compiler flags -D_CRT_SECURE_NO_WARNINGS
    -D_CRT_NONSTDC_NO_WARNINGS.
 
+2010-03-09 17:09  rstory
+
+   * snmplib/read_config.c:
+
+   remove debug msg used during debugging
+
+2010-03-09 17:02  marz
+
+   * local/net-snmp-cert:
+
+   initial cert wrapper - testing repo write privs
+
+2010-03-09 10:20  bvassche
+
+   * win32/netsnmpmibs/Makefile.in:
+
+   Removed duplicate build rules. These duplicate rules were
+   harmless but triggered a warning.
+
+2010-03-09 02:38  rstory
+
+   * include/net-snmp/library/dir_utils.h, snmplib/dir_utils.c:
+
+   CHANGES: snmplib: directory container enhancements
+   - fix potential memory leak
+   - add filter callback to filter files returned
+   - add option to return relative and not full paths
+   - add option to sort returned list
+   - add option to return empty container instead of NULL if no
+   files found
+   - change default container name to directory that was scanned
+   - tweak debug/log messages
+
+2010-03-08 23:07  rstory
+
+   *  agent/mibgroup/if-mib/data_access/interface.c,   
+      agent/mibgroup/if-mib/data_access/interface_linux.c,   
+      agent/mibgroup/if-mib/ifTable/ifTable_data_access.c,   
+      agent/mibgroup/ip-forward-mib/data_access/route_linux.c,   
+      agent/mibgroup/ip-mib/data_access/arp_linux.c,   
+      agent/mibgroup/ip-mib/data_access/systemstats_linux.c,   
+      agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/mibII/tcpTable.c, agent/mibgroup/mibII/udpTable.c, 
+        agent/mibgroup/mibII/var_route.c,   
+      agent/mibgroup/ucd-snmp/loadave.c,   
+      agent/mibgroup/util_funcs/get_pid_from_inode.c,   
+      include/net-snmp/library/snmp_logging.h:
+
+   CHANGES: snmpd: define and use new NETSNMP_LOGONCE macro
+
+2010-03-08 22:44  rstory
+
+   * man/snmp_config.5.def, snmplib/read_config.c:
+
+   NEWS: snmplib: conf files can now include other conf files
+   - also tweaked debug tokens here and there
+
+2010-03-08 22:43  rstory
+
+   * snmplib/snmp_transport.c:
+
+   fix typo (caused external reference when DTLSUDP configured
+   without dtlstcp)
+
+2010-03-06 02:27  rstory
+
+   *  include/net-snmp/library/container.h, snmplib/container.c,   
+      snmplib/container_binary_array.c, snmplib/container_list_ssll.c:
+
+   NEWS: snmplib: netsnmp_container enhancements:
+   - add free_item function; defaults to
+   netsnmp_container_simple_free
+   - add CONTAINER_FREE_ALL macro/function (like CONTAINER_CLEAR but
+   calls container free_item for each item in primary container)
+   - add ability to set options on binary_array containers
+
+2010-03-02 17:55  bvassche
+
+   * win32/libsnmp/Makefile.in:
+
+   Made sure that win32/build.bat works again by adding missing
+   source file names. Sorted source file names alphabetically too.
+
 2010-03-02 16:54  bvassche
 
    *  win32/Configure, win32/netsnmpmibs/Makefile.in,   
@@ -8172,12 +20039,187 @@
    netsnmpmibs and netsnmpmibssdk): applied the necessary changes to
    the win32/Configure script and win32/Makefile.in.
 
-2010-02-28 11:40  bvassche
+2010-02-27 13:11  bvassche
 
-   * win32/net-snmp/net-snmp-config.h.in:
+   *  agent/mibgroup/agent/nsCache.c, include/net-snmp/config_api.h,   
+      include/net-snmp/library/asn1.h,   
+      include/net-snmp/library/callback.h,   
+      include/net-snmp/library/check_varbind.h,   
+      include/net-snmp/library/container.h,   
+      include/net-snmp/library/container_list_ssll.h,   
+      include/net-snmp/library/container_null.h,   
+      include/net-snmp/library/data_list.h,   
+      include/net-snmp/library/default_store.h,   
+      include/net-snmp/library/fd_event_manager.h,   
+      include/net-snmp/library/int64.h,   
+      include/net-snmp/library/keytools.h,   
+      include/net-snmp/library/large_fd_set.h,   
+      include/net-snmp/library/md5.h, include/net-snmp/library/mib.h,   
+      include/net-snmp/library/mt_support.h,   
+      include/net-snmp/library/oid_stash.h,   
+      include/net-snmp/library/parse.h,   
+      include/net-snmp/library/read_config.h,   
+      include/net-snmp/library/scapi.h,   
+      include/net-snmp/library/snmp-tc.h,   
+      include/net-snmp/library/snmp.h,   
+      include/net-snmp/library/snmpCallbackDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h,   
+      include/net-snmp/library/snmp_alarm.h,   
+      include/net-snmp/library/snmp_api.h,   
+      include/net-snmp/library/snmp_client.h,   
+      include/net-snmp/library/snmp_debug.h,   
+      include/net-snmp/library/snmp_enum.h,   
+      include/net-snmp/library/snmp_logging.h,   
+      include/net-snmp/library/snmp_parse_args.h,   
+      include/net-snmp/library/snmp_secmod.h,   
+      include/net-snmp/library/snmp_service.h,   
+      include/net-snmp/library/snmp_transport.h,   
+      include/net-snmp/library/snmpusm.h,   
+      include/net-snmp/library/snmpv3.h,   
+      include/net-snmp/library/system.h,   
+      include/net-snmp/library/tools.h,   
+      include/net-snmp/library/ucd_compat.h,   
+      include/net-snmp/library/vacm.h,   
+      include/net-snmp/library/winpipe.h, include/net-snmp/mib_api.h,   
+      include/net-snmp/pdu_api.h, include/net-snmp/session_api.h,   
+      include/net-snmp/varbind_api.h, include/net-snmp/version.h,   
+      snmplib/getopt.c, snmplib/gettimeofday.c, snmplib/mib.c,   
+      snmplib/parse.c, snmplib/snmp_alarm.c, snmplib/snmp_api.c,   
+      snmplib/snmp_client.c, snmplib/snmp_debug.c, snmplib/snmpv3.c,   
+      snmplib/strlcpy.c, snmplib/strtok_r.c, snmplib/strtoull.c,   
+      snmplib/tools.c, snmplib/ucd_compat.c, snmplib/winpipe.c,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
 
-   Follow-up for r18181: synchronized net-snmp-config.h.in with
-   net-snmp-config.h.
+   CHANGES: Win32: declared all functions that are exported from the
+   Net-SNMP DLL as NETSNMP_IMPORT. The result is a minor
+   optimization: code that uses the Net-SNMP DLL will now call the
+   DLL-exported functions directly instead of indirectly via the
+   stub in the import library.
+
+2010-02-27 11:50  bvassche
+
+   * agent/mibgroup/ucd-snmp/extensible.c:
+
+   Removed a redundant strncasecmp() declaration.
+
+2010-02-27 09:57  bvassche
+
+   * snmplib/strtok_r.c:
+
+   Fixed a typo in a source code comment.
+
+2010-02-27 09:56  bvassche
+
+   * snmplib/snmp_transport.c:
+
+   Follow-up for r18189 (rstory): builds again on Windows.
+
+2010-02-25 17:53  bvassche
+
+   *  win32/encode_keychange/encode_keychange.dsp,   
+      win32/encode_keychange/encode_keychange.vcproj,   
+      win32/libagent/libagent.dsp, win32/libagent/libagent.vcproj,   
+      win32/libhelpers/libhelpers.dsp,   
+      win32/libhelpers/libhelpers.vcproj,   
+      win32/libnetsnmptrapd/libnetsnmptrapd.dsp,   
+      win32/libnetsnmptrapd/libnetsnmptrapd.vcproj,   
+      win32/libsnmp/libsnmp.dsp, win32/libsnmp/libsnmp.vcproj,   
+      win32/libsnmp_dll/libsnmp_dll.dsp,   
+      win32/libsnmp_dll/libsnmp_dll.vcproj,   
+      win32/netsnmpmibs/netsnmpmibs.dsp,   
+      win32/netsnmpmibs/netsnmpmibs.vcproj,   
+      win32/snmpbulkget/snmpbulkget.dsp,   
+      win32/snmpbulkget/snmpbulkget.vcproj,   
+      win32/snmpbulkwalk/snmpbulkwalk.dsp,   
+      win32/snmpbulkwalk/snmpbulkwalk.vcproj, win32/snmpd/snmpd.dsp,   
+      win32/snmpd/snmpd.vcproj, win32/snmpdelta/snmpdelta.dsp,   
+      win32/snmpdelta/snmpdelta.vcproj, win32/snmpdf/snmpdf.dsp,   
+      win32/snmpdf/snmpdf.vcproj, win32/snmpget/snmpget.dsp,   
+      win32/snmpget/snmpget.vcproj, win32/snmpgetnext/snmpgetnext.dsp,  
+       win32/snmpgetnext/snmpgetnext.vcproj,   
+      win32/snmpnetstat/snmpnetstat.dsp,   
+      win32/snmpnetstat/snmpnetstat.vcproj, win32/snmpset/snmpset.dsp,  
+       win32/snmpset/snmpset.vcproj, win32/snmpstatus/snmpstatus.dsp,   
+      win32/snmpstatus/snmpstatus.vcproj,   
+      win32/snmptable/snmptable.dsp, win32/snmptable/snmptable.vcproj,  
+       win32/snmptest/snmptest.dsp, win32/snmptest/snmptest.vcproj,   
+      win32/snmptranslate/snmptranslate.dsp,   
+      win32/snmptranslate/snmptranslate.vcproj,   
+      win32/snmptrap/snmptrap.dsp, win32/snmptrap/snmptrap.vcproj,   
+      win32/snmptrapd/snmptrapd.dsp, win32/snmptrapd/snmptrapd.vcproj,  
+       win32/snmpusm/snmpusm.dsp, win32/snmpusm/snmpusm.vcproj,   
+      win32/snmpvacm/snmpvacm.dsp, win32/snmpvacm/snmpvacm.vcproj,   
+      win32/snmpwalk/snmpwalk.dsp, win32/snmpwalk/snmpwalk.vcproj,   
+      win32/win32.dsw, win32/win32.sln, win32/win32dll.dsw,   
+      win32/win32dll.sln:
+
+   Reverted r18207 (dsp/dsw to vcproj/sln conversion) except the
+   suppression
+   list changes. The goal of this conversion was twofold: not only
+   to be able
+   to load the project files in MSVC 2002 - 2008 but also to be able
+   to commit
+   changes made from inside the MSVC 2008 IDE. Unfortunately
+   converting dsp/dsw
+   files to vcproj/sln files with MSVC 2008 makes it impossible to
+   load the
+   vcproj/sln files with earlier MSVC versions. Why on earth did
+   Microsoft
+   decide to put a version number in XML files ?
+
+2010-02-24 19:41  bvassche
+
+   *  win32, win32/encode_keychange,   
+      win32/encode_keychange/encode_keychange.dsp,   
+      win32/encode_keychange/encode_keychange.vcproj, win32/libagent,   
+      win32/libagent/libagent.dsp, win32/libagent/libagent.vcproj,   
+      win32/libhelpers, win32/libhelpers/libhelpers.dsp,   
+      win32/libhelpers/libhelpers.vcproj, win32/libnetsnmptrapd,   
+      win32/libnetsnmptrapd/libnetsnmptrapd.dsp,   
+      win32/libnetsnmptrapd/libnetsnmptrapd.vcproj, win32/libsnmp,   
+      win32/libsnmp/libsnmp.dsp, win32/libsnmp/libsnmp.vcproj,   
+      win32/libsnmp_dll, win32/libsnmp_dll/libsnmp_dll.dsp,   
+      win32/libsnmp_dll/libsnmp_dll.vcproj, win32/netsnmpmibs,   
+      win32/netsnmpmibs/netsnmpmibs.dsp,   
+      win32/netsnmpmibs/netsnmpmibs.vcproj, win32/snmpbulkget,   
+      win32/snmpbulkget/snmpbulkget.dsp,   
+      win32/snmpbulkget/snmpbulkget.vcproj, win32/snmpbulkwalk,   
+      win32/snmpbulkwalk/snmpbulkwalk.dsp,   
+      win32/snmpbulkwalk/snmpbulkwalk.vcproj, win32/snmpd,   
+      win32/snmpd/snmpd.dsp, win32/snmpd/snmpd.vcproj, win32/snmpdelta, 
+        win32/snmpdelta/snmpdelta.dsp, win32/snmpdelta/snmpdelta.vcproj,
+         win32/snmpdf, win32/snmpdf/snmpdf.dsp,   
+      win32/snmpdf/snmpdf.vcproj, win32/snmpget,   
+      win32/snmpget/snmpget.dsp, win32/snmpget/snmpget.vcproj,   
+      win32/snmpgetnext, win32/snmpgetnext/snmpgetnext.dsp,   
+      win32/snmpgetnext/snmpgetnext.vcproj, win32/snmpnetstat,   
+      win32/snmpnetstat/snmpnetstat.dsp,   
+      win32/snmpnetstat/snmpnetstat.vcproj, win32/snmpset,   
+      win32/snmpset/snmpset.dsp, win32/snmpset/snmpset.vcproj,   
+      win32/snmpstatus, win32/snmpstatus/snmpstatus.dsp,   
+      win32/snmpstatus/snmpstatus.vcproj, win32/snmptable,   
+      win32/snmptable/snmptable.dsp, win32/snmptable/snmptable.vcproj,  
+       win32/snmptest, win32/snmptest/snmptest.dsp,   
+      win32/snmptest/snmptest.vcproj, win32/snmptranslate,   
+      win32/snmptranslate/snmptranslate.dsp,   
+      win32/snmptranslate/snmptranslate.vcproj, win32/snmptrap,   
+      win32/snmptrap/snmptrap.dsp, win32/snmptrap/snmptrap.vcproj,   
+      win32/snmptrapd, win32/snmptrapd/snmptrapd.dsp,   
+      win32/snmptrapd/snmptrapd.vcproj, win32/snmpusm,   
+      win32/snmpusm/snmpusm.dsp, win32/snmpusm/snmpusm.vcproj,   
+      win32/snmpvacm, win32/snmpvacm/snmpvacm.dsp,   
+      win32/snmpvacm/snmpvacm.vcproj, win32/snmpwalk,   
+      win32/snmpwalk/snmpwalk.dsp, win32/snmpwalk/snmpwalk.vcproj,   
+      win32/win32.dsw, win32/win32.sln, win32/win32dll.dsw,   
+      win32/win32dll.sln:
+
+   (reverted) CHANGES: Win32: building: converted .dsp/.dsw files to
+   .vcproj/.sln files. This implies that support for MSVC 6.0 has
+   been dropped and the minimum Microsoft Visual Studio version
+   required to build the Net-SNMP source code is Microsoft Visual
+   Studio .NET (2002).
 
 2010-02-23 19:03  bvassche
 
@@ -8194,6 +20236,67 @@
    CHANGES: building: made sure that the configure script does no
    longer invoke "tail -1", which is not POSIX-compliant.
 
+2010-02-23 18:45  hardaker
+
+   *  testing/tests/T300udp, testing/tests/T310tcp,   
+      testing/tests/T320udpv6, testing/tests/T330tcpv6,   
+      testing/tests/T350unix, testing/tests/T360dtlsudp,   
+      testing/tests/T399alias:
+
+   Removed all transport tests since it's impossible to determine
+   where they can safely operate (was stopping tanders' nightly
+   tests from succeeding)
+
+2010-02-23 18:41  hardaker
+
+   * snmplib/snmpTLSTCPDomain.c:
+
+   more error and debugging output
+
+2010-02-23 18:40  hardaker
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   fix the server context generator to actually, um, return the
+   context.
+
+2010-02-23 18:40  hardaker
+
+   * agent/agent_trap.c:
+
+   initialize the 'res' variable since it's checked
+
+2010-02-23 18:39  hardaker
+
+   * snmplib/snmpTLSTCPDomain.c:
+
+   more progress toward a real implementation
+
+2010-02-23 18:38  hardaker
+
+   * snmplib/snmp_transport.c:
+
+   tlstcp ctor invocation
+
+2010-02-23 18:38  hardaker
+
+   * include/net-snmp/library/snmpTLSTCPDomain.h:
+
+   require TLSBase
+
+2010-02-23 18:37  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   added host identifier as output
+
+2010-02-23 18:35  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/snmpTLSTCPDomain.c:
+
+   significant more work on the TLS TCP domain
+
 2010-02-23 17:43  bvassche
 
    * configure, include/net-snmp/net-snmp-config.h.in:
@@ -8201,6 +20304,12 @@
    Follow-up for r18193 (jsafranek): reran autoreconf for the trunk
    and the 5.5 branch.
 
+2010-02-23 14:58  rstory
+
+   * snmplib/snmp_api.c:
+
+   use NETSNMP_PRIz instead of %z
+
 2010-02-23 12:27  jsafranek
 
    * configure.d/config_os_libs:
@@ -8208,6 +20317,38 @@
    CHANGES: building: Fixed compilation with rpm-4.6.
    Turn on the legacy API when rpm-4.6 is detected.
 
+2010-02-23 07:38  bvassche
+
+   * snmplib/snmp_alarm.c, snmplib/snmp_api.c:
+
+   Reverted r18000 (disabling SIGALRM support) because this involves
+   a backwards-incompatible change.
+
+2010-02-23 00:36  rstory
+
+   * snmplib/snmpTCPDomain.c:
+
+   fix typo in comment
+
+2010-02-23 00:34  rstory
+
+   * snmplib/snmp_api.c:
+
+   debug msg tweaks; use new tranport functions
+   - add debug header for snmp version
+   - add length to debug send/receive messages
+   - use new tranport functions for send/recv/finding peer address
+
+2010-02-23 00:25  rstory
+
+   *  include/net-snmp/library/snmp_transport.h,   
+      snmplib/snmp_transport.c:
+
+   add netsnmp_transport_peer_string, netsnmp_transport_send &
+   netsnmp_transport_recv
+   - moves transport manipulation into transport code
+   - central place for logging/debugging sent/received data
+
 2010-02-22 19:33  bvassche
 
    *  configure, configure.d/config_modules_agent,   
@@ -8216,25 +20357,45 @@
    CHANGES: building: made sure that the configure script does no
    longer invoke "tail -1", which is not POSIX-compliant.
 
-2010-02-21 19:23  bvassche
+2010-02-22 19:21  bvassche
 
-   *  snmplib/tools.c, win32/net-snmp/net-snmp-config.h,   
-      win32/net-snmp/net-snmp-config.h.in:
+   * agent/agent_registry.c:
 
-   CHANGES: Win32: made sure that redefining malloc() etc. in
-   win32/net-snmp/net-snmp-config.h does not trigger strange
-   compiler and linker errors.
-   
-   (Backported trunk r17910 and r18165).
+   Follow-up for r18186. Regression test 34 (whether authentication
+   failure traps are sent by snmpd) passes now again.
 
-2010-02-21 19:20  bvassche
+2010-02-22 09:18  bvassche
 
-   * win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
+   * agent/agent_registry.c:
 
-   CHANGES: Win32: exported
-   netsnmp_query_get_default_session_unchecked() from netsnmp.dll.
-   
-   (Backported trunk r17918.)
+   CHANGES: snmpd: made sure that handler registration failure does
+   not create dangling pointers in the MIB subtree registry.
+
+2010-02-22 09:11  bvassche
+
+   * agent, apps, apps/snmpnetstat:
+
+   Updated Subversion ignore list.
+
+2010-02-22 08:42  bvassche
+
+   * configure:
+
+   Follow-up for r18084: fixed libeay32 (OpenSSL) configure test for
+   MinGW.
+
+2010-02-22 08:31  bvassche
+
+   * configure.d/config_os_libs:
+
+   Follow-up for r18084: fixed libeay32 (OpenSSL) configure test for
+   MinGW.
+
+2010-02-22 08:13  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Builds again with MinGW when IPv6 support is enabled.
 
 2010-02-21 18:58  bvassche
 
@@ -8267,7 +20428,8 @@
 
 2010-02-21 17:39  bvassche
 
-   *  snmplib/snmpUDPIPv6Domain.c, win32/net-snmp/net-snmp-config.h,   
+   *  snmplib/snmpIPv6BaseDomain.c, snmplib/snmpUDPIPv6Domain.c,   
+      win32/net-snmp/net-snmp-config.h,   
       win32/net-snmp/net-snmp-config.h.in:
 
    More Win32 IPv6 source code consistency improvements:
@@ -8280,27 +20442,12 @@
    - Replaced '#if NETSNMP_ENABLE_IPV6' by '#ifdef
    NETSNMP_ENABLE_IPV6'.
 
-2010-02-20 09:10  bvassche
+2010-02-21 08:30  tanders
 
-   * apps/snmptable.c:
+   * snmplib/snmpIPBaseDomain.c:
 
-   Backported trunk r17883, which fixes a typo introduced in r17881.
-
-2010-02-19 20:23  bvassche
-
-   *  agent/mibgroup/utilities/iquery.c,   
-      include/net-snmp/library/snmp_client.h, snmplib/snmp_client.c:
-
-   CHANGES: agent: do not complain that iquerySecName is missing in
-   snmpd.conf when its value won't be used.
-   
-   (Backported trunk r17917.)
-
-2010-02-19 19:44  bvassche
-
-   * win32/bin, win32/lib:
-
-   Updated Subversion ignore list.
+   make sure that INADDR_NONE is defined (fixes build error on
+   Solaris)
 
 2010-02-19 19:39  bvassche
 
@@ -8309,58 +20456,109 @@
    Synchronized win32/net-snmp/net-snmp-config.h and
    win32/net-snmp/net-snmp-config.h.in.
 
-2010-02-19 19:36  bvassche
-
-   *  agent/mibgroup/disman/traceroute/traceRouteCtlTable.c,   
-      agent/snmpd.c, apps/snmptable.c, apps/snmptrapd.c,   
-      include/net-snmp/library/snmp_logging.h, snmplib/snmp_logging.c:
-
-   CHANGES: Win32: line buffering does now work when Net-SNMP is
-   built with MSVC. This makes it a lot easier to debug Net-SNMP on
-   Win32 since each line does now appear in the output as soon as it
-   has been generated.
-   
-   This is a backport of r17881 from the trunk.
-
 2010-02-19 14:18  bvassche
 
-   *  include/net-snmp/library/system.h, win32/libsnmp_dll/libsnmp.def, 
-        win32/libsnmp_dll/libsnmp.def.in:
+   * include/net-snmp/library/system.h:
 
    CHANGES: Win32: libsnmp builds again as a DLL when IPv6 is
    enabled.
 
-2010-02-19 13:02  bvassche
+2010-02-19 13:22  bvassche
 
-   *  README.win32, agent/mibgroup/winExtDLL.c, snmplib/winservice.c,   
-      win32/MgmtApi-winExtDLL.h, win32/Snmp-winExtDLL.h,   
+   * win32/libsnmp_dll/libsnmp.def.in:
+
+   Follow up for r18164: synchronized libsnmp.def.in with
+   libsnmp.def
+
+2010-02-19 09:05  bvassche
+
+   * win32/net-snmp/net-snmp-config.h:
+
+   CHANGES: Win32: added #include <malloc.h> in
+   win32/net-snmp/net-snmp-config.h such that the MSVC compiler
+   doesn't get confused by the malloc redefinition when building
+   libsnmp as a DLL.
+
+2010-02-19 08:59  bvassche
+
+   *  include/net-snmp/library/snmp_parse_args.h,   
+      win32/libsnmp_dll/libsnmp.def:
+
+   Exported netsnmp_parse_args() such that the Net-SNMP applications
+   build again when libsnmp is built as a DLL.
+
+2010-02-19 08:56  bvassche
+
+   * snmplib/keytools.c, win32/net-snmp/net-snmp-config.h:
+
+   CHANGES: Win32: building: moved MSVC OpenSSL linker settings from
+   snmplib/keytools.c to win32/net-snmp/net-snmp-config.h such that
+   these settings are not only effective when building snmplib as a
+   static library but also when any Net-SNMP application is built
+   that links with snmplib as a static library or as a DLL.
+
+2010-02-19 08:32  bvassche
+
+   * snmplib/keytools.c:
+
+   Win32 cleanup: MSVC / DLL tests now use the officially endorsed
+   macro names.
+
+2010-02-19 07:50  bvassche
+
+   * win32/libsnmp_dll/libsnmp_dll.dsp:
+
+   Builds again.
+
+2010-02-19 06:47  magfr
+
+   *  agent/agent_trap.c, agent/mibgroup/ucd-snmp/proxy.c,   
+      include/net-snmp/library/snmp_parse_args.h,   
+      snmplib/snmp_parse_args.c:
+
+   NEWS: snmplib: PATCH: 2942940: from "Bill Fenner": Add a new
+   function, netsnmp_parse_args, that is like snmp_parse_args but
+   takes an additional bitmask, flags, to affect the behaviour. Also
+   remove the magic handling of some application names.
+
+2010-02-18 14:22  bvassche
+
+   * win32/bin:
+
+   Updated Subversion ignore list.
+
+2010-02-18 14:20  bvassche
+
+   *  win32/libhelpers/libhelpers.dsp,   
+      win32/libnetsnmptrapd/libnetsnmptrapd.dsp,   
+      win32/libsnmp/libsnmp.dsp, win32/netsnmpmibs/netsnmpmibs.dsp:
+
+   Sorted names of source files alphabetically.
+
+2010-02-18 13:03  bvassche
+
+   *  README.win32, snmplib/winservice.c, win32/libsnmp/libsnmp.dsp,   
       win32/net-snmp/net-snmp-config.h,   
       win32/netsnmpmibs/netsnmpmibs.dsp, win32/netsnmpmibssdk,   
-      win32/snmpdsdk, win32/win32.dsw, win32/win32sdk.dsw:
+      win32/snmpdsdk, win32/snmpnetstat/snmpnetstat.dsp,   
+      win32/win32.dsw, win32/win32sdk.dsw:
 
-   CHANGES: Win32: building: winExtDLL module is only built if
-   USING_WINEXTDLL_MODULE is defined.
-   CHANGES: Win32: building: simplified building winExtDLL by
-   including a copy of the MinGW headers <snmp.h> and <mgmtapi.h>.
-   CHANGES: Win32: building: dropped support for building Net-SNMP
-   with MSVC 6.0 without Platform SDK.
-   CHANGES: Win32: building: added project dependencies in win32.dsw
-   such that the Microsoft Visual Studio IDE can figure out the
-   proper project build order.
+   CHANGES: Win32: dropped support for building Net-SNMP with
+   Microsoft Visual Studio 6.0 without platform SDK. Building
+   Net-SNMP with Microsoft Visual Studio 6.0 + PSDK or any later
+   version of MSVC is still possible however.
    
-   (these changes have been backported from trunk revisions 17884,
-   18157 and 18163).
+   Note: if in the future for whatever reason it should become
+   necessary again to be able to build Net-SNMP with MSVC without
+   relying on the platform SDK headers, please #ifdef out the MIB
+   code that relies on the PSDK headers instead of splitting the
+   workspace files again.
 
-2010-02-19 12:35  bvassche
+2010-02-18 12:57  bvassche
 
-   * include/net-snmp/library/system.h:
+   * snmplib/snmpIPv6BaseDomain.c:
 
-   CHANGES: Win32: building: builds again with MSVC 6.0.
-   
-   Backported r17869: changed the return type of strtoull() from
-   'unsigned
-   long long' (which is not valid C89) to 'uint64_t' (declared in
-   <net-snmp/net-snmp-config.h>).
+   dos2unix.
 
 2010-02-18 09:45  bvassche
 
@@ -8377,6 +20575,119 @@
    on typedefs or struct definitions.
    - Ran this header file through indent.
 
+2010-02-18 09:26  bvassche
+
+   *  snmplib/snmpIPBaseDomain.c, snmplib/snmpIPV6BaseDomain.c,   
+      snmplib/snmpIPv6BaseDomain.c, snmplib/snmpTLSBaseDomain.c,   
+      win32/libsnmp/libsnmp.dsp:
+
+   Changes:
+   - Builds again with MSVC.
+   - Fixed a few compiler warnings reported by MSVC (passing int
+   instead of u_short to htons() / function declarations that were
+   missing because of missing #include directives).
+
+2010-02-16 17:16  bvassche
+
+   * include/net-snmp/types.h:
+
+   CHANGES: Win32: The header file <sys/timeb.h> is no longer
+   included from <net-snmp/types.h>. Or: the header file
+   <sys/timeb.h> will have to be included explicitly in source files
+   that need the declaration of the function ftime().
+   
+   Note: compared to r18024 and before, this change does not affect
+   BSD systems -- <sys/timeb.h> was only included from
+   <net-snmp/types.h> on BSD systems in revisions r18025..r18152.
+
+2010-02-14 19:29  bvassche
+
+   * include/net-snmp/system/freebsd8.h:
+
+   Builds now on FreeBSD version 8.0.
+
+2010-02-13 20:59  magfr
+
+   *  include/net-snmp/library/snmpIPv4BaseDomain.h,   
+      include/net-snmp/library/snmpIPv6BaseDomain.h,   
+      include/net-snmp/library/snmpTCPBaseDomain.h,   
+      include/net-snmp/library/snmpTCPDomain.h,   
+      include/net-snmp/library/snmpTCPIPv6Domain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h:
+
+   Adjust the placement of ;'s in order to
+   a) Avoid warnings about spurious semicolons
+   b) Not have unterminated declarations in headers
+
+2010-02-12 02:57  rstory
+
+   * local/mib2c:
+
+   CHANGES: mib2c: update inline documentation; add storagetype test
+   for columns
+
+2010-02-12 01:50  rstory
+
+   * include/net-snmp/library/snmp_api.h:
+
+   fix typo in define
+
+2010-02-12 01:05  hardaker
+
+   * configure, configure.d/config_modules_lib:
+
+   fix sed processing on white-space adding solaris machines
+
+2010-02-10 23:56  hardaker
+
+   * configure, configure.d/config_modules_lib:
+
+   add top srcdir to cpp search path
+
+2010-02-10 23:52  hardaker
+
+   * include/net-snmp/types.h:
+
+   freebsd needs time.h above timeb.h
+
+2010-02-10 23:37  hardaker
+
+   * configure, configure.d/config_modules_lib:
+
+   use sed with multireplace on a line to fix possible whitespace
+   issue on solaris
+
+2010-02-10 23:22  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      include/net-snmp/library/snmpTLSTCPDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpTLSBaseDomain.c,   
+      snmplib/snmpTLSTCPDomain.c:
+
+   beginning work for TLS separation into separate files with a base
+   file
+
+2010-02-10 23:21  hardaker
+
+   * include/net-snmp/library/snmpUDPIPv4BaseDomain.h:
+
+   move base transport creation function out of linux ifdefs
+
+2010-02-10 23:21  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpTLSBaseDomain.c:
+
+   moved another error logging function
+
+2010-02-10 23:20  hardaker
+
+   * mibs/NET-SNMP-TC.txt:
+
+   added TLS over TCP
+
 2010-02-10 16:39  dts12
 
    *  agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c,   
@@ -8392,6 +20703,274 @@
    CHANGES: python: Support null-bytes in octet strings
    Patch supplied by Tommy Beadle
 
+2010-02-10 00:59  hardaker
+
+   *  include/net-snmp/library/snmpDTLSUDPDomain.h,   
+      include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpTLSBaseDomain.c:
+
+   moved TLS infrastructure into a base domain file
+
+2010-02-10 00:04  hardaker
+
+   *  include/net-snmp/library/snmpIPv6BaseDomain.h,   
+      include/net-snmp/library/snmpTCPIPv6Domain.h,   
+      snmplib/snmpIPv6BaseDomain.c, snmplib/snmpUDPIPv6Domain.c:
+
+   moved socket6 functions to the ipv6 base
+
+2010-02-10 00:03  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   white space formatting
+
+2010-02-10 00:03  hardaker
+
+   *  include/net-snmp/library/snmpUDPBaseDomain.h,   
+      snmplib/snmpUDPBaseDomain.c, snmplib/snmpUDPDomain.c:
+
+   moved udp_send/recv to udpbase
+
+2010-02-10 00:02  hardaker
+
+   *  include/net-snmp/library/snmpSocketBaseDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      snmplib/snmpSocketBaseDomain.c, snmplib/snmpUDPDomain.c:
+
+   move netsnmp_sock_buffer_set into socketbase
+
+2010-02-10 00:02  hardaker
+
+   *  include/net-snmp/library/snmpUDPBaseDomain.h,   
+      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpUDPBaseDomain.c,   
+      snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv4BaseDomain.c:
+
+   move ipv4 specific UDP transport creation to udpipv4 base
+
+2010-02-10 00:01  hardaker
+
+   *  snmplib/snmpTCPDomain.c, snmplib/snmpTCPIPv6Domain.c,   
+      snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c:
+
+   made common functions be referenced directly by the transports
+   and removed original functionality; they were static so there is
+   no backwards compat issues
+
+2010-02-10 00:00  hardaker
+
+   *  include/net-snmp/library/snmpSocketBaseDomain.h,   
+      include/net-snmp/library/snmpTCPBaseDomain.h,   
+      include/net-snmp/library/snmpUDPBaseDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpSocketBaseDomain.c,   
+      snmplib/snmpTCPDomain.c, snmplib/snmpUDPBaseDomain.c,   
+      snmplib/snmpUDPDomain.c:
+
+   moved socket based close to a socket based domain common to many
+   things
+
+2010-02-09 23:59  hardaker
+
+   *  include/net-snmp/library/snmpTCPBaseDomain.h,   
+      include/net-snmp/library/snmpTCPDomain.h,   
+      include/net-snmp/library/snmpTCPIPv6Domain.h,   
+      snmplib/snmpTCPBaseDomain.c, snmplib/snmpTCPDomain.c,   
+      snmplib/snmpTCPIPv6Domain.c:
+
+   move TCP common functions to a TCPBase domain implementation
+
+2010-02-09 23:57  hardaker
+
+   *  include/net-snmp/library/snmpDTLSUDPDomain.h,   
+      include/net-snmp/library/snmpUDPBaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c:
+
+   warning cleanup
+
+2010-02-09 23:56  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   tmStateReference should be using the indexed addr_pair
+
+2010-02-09 23:56  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   make netsnmp_dtlsudp_close make use of netsnmp_baseudp_close
+
+2010-02-09 23:55  hardaker
+
+   *  include/net-snmp/library/snmpUDPBaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpUDPBaseDomain.c,   
+      snmplib/snmpUDPDomain.c:
+
+   moved base UDP socket creation into a common base function and
+   made use of it
+
+2010-02-09 23:54  hardaker
+
+   * include/net-snmp/library/snmpIPBaseDomain.h:
+
+   proper _H ifdef checks
+
+2010-02-09 23:54  hardaker
+
+   *  include/net-snmp/library/snmpDTLSUDPDomain.h,   
+      include/net-snmp/library/snmpUDPBaseDomain.h,   
+      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
+      snmplib/snmpUDPBaseDomain.c, snmplib/snmpUDPDomain.c,   
+      snmplib/snmpUDPIPv4BaseDomain.c:
+
+   added a raw UDP base domain
+
+2010-02-09 23:53  hardaker
+
+   *  include/net-snmp/library/snmpDTLSUDPDomain.h,   
+      include/net-snmp/library/snmpIPBaseDomain.h,   
+      include/net-snmp/library/snmpIPv6BaseDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpIPBaseDomain.c,   
+      snmplib/snmpIPv4BaseDomain.c, snmplib/snmpIPv6BaseDomain.c,   
+      snmplib/snmpTCPIPv6Domain.c, snmplib/snmpUDPDomain.c,   
+      snmplib/snmpUDPIPv4BaseDomain.c, snmplib/snmpUDPIPv6Domain.c:
+
+   created a UDP IPv4 base; moved and reused more infrastructure
+
+2010-02-09 23:51  hardaker
+
+   *  include/net-snmp/library/snmpIPv4BaseDomain.h,   
+      snmplib/snmpIPv4BaseDomain.c, snmplib/snmpTCPDomain.c,   
+      snmplib/snmpUDPDomain.c:
+
+   moved ipv4 address formatting into snmpIPv4BaseDomain
+
+2010-02-09 23:51  hardaker
+
+   * snmplib/snmpIPv6BaseDomain.c:
+
+   v6 domain infrastructure files
+
+2010-02-09 23:51  hardaker
+
+   *  include/net-snmp/library/snmpIPV4BaseDomain.h,   
+      include/net-snmp/library/snmpIPv4BaseDomain.h,   
+      include/net-snmp/library/snmpIPv6BaseDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h,   
+      snmplib/snmpIPV4BaseDomain.c, snmplib/snmpIPV6BaseDomain.c,   
+      snmplib/snmpIPv4BaseDomain.c:
+
+   v6 domain infrastructure files
+
+2010-02-09 23:50  hardaker
+
+   *  configure, include/net-snmp/library/snmpIPBaseDomain.h,   
+      include/net-snmp/library/snmpIPV4BaseDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      snmplib/snmpIPBaseDomain.c, snmplib/snmpIPV4BaseDomain.c,   
+      snmplib/snmpUDPDomain.c:
+
+   New IPv4 and IP base transport files
+
+2010-02-09 23:48  hardaker
+
+   * configure.d/config_modules_lib:
+
+   don't double include transport modules
+
+2010-02-09 23:48  hardaker
+
+   * include/net-snmp/library/snmpIPXDomain.h:
+
+   moved architecture tests into the header files using config_error
+   for signaling problems
+
+2010-02-09 23:46  hardaker
+
+   * configure.d/config_modules_lib:
+
+   moved architecture tests into the header files using config_error
+   for signaling problems
+
+2010-02-09 23:45  hardaker
+
+   *  include/net-snmp/library/snmpAAL5PVCDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUnixDomain.h:
+
+   moved architecture tests into the header files using config_error
+   for signaling problems
+
+2010-02-09 23:43  hardaker
+
+   * configure.d/config_modules_lib:
+
+   check for and report config_errors in transport headers
+
+2010-02-09 23:43  hardaker
+
+   * configure.d/config_os_headers:
+
+   allow a NETSNMP_QUICK_CHECK env variable to bypass header checks
+
+2010-02-09 23:42  hardaker
+
+   * configure.d/config_modules_lib:
+
+   better comments
+
+2010-02-09 23:42  hardaker
+
+   * configure.d/config_modules_lib:
+
+   check for config_require macros in transport headers for
+   force-including of other things
+
+2010-02-09 23:41  hardaker
+
+   *  include/net-snmp/library/snmp_transport.h, perl/agent/agent.xs,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpTCPDomain.c,   
+      snmplib/snmpUDPDomain.c:
+
+   define a standardized indexed addr_pair instead of using one
+   labeled only for UDP everywhere
+
+2010-02-09 23:40  hardaker
+
+   * snmplib/snmptsm.c:
+
+   fix transport prefix list for incoming messages
+
+2010-02-09 23:40  hardaker
+
+   * include/net-snmp/library/snmptsm.h, snmplib/snmptsm.c:
+
+   remove the security level from the TSM cache; previous existence
+   from from a draft copy of the TSM RFC and is now stored entirely
+   in the tm reference
+
+2010-02-09 23:39  hardaker
+
+   * snmplib/snmptsm.c:
+
+   implement incoming TSM procedures according to RFC text
+
+2010-02-09 23:39  hardaker
+
+   * snmplib/snmptsm.c:
+
+   implement outgoing TSM procedures according to RFC text
+
+2010-02-09 23:39  hardaker
+
+   * include/net-snmp/library/snmpDTLSUDPDomain.h:
+
+   create defined sized array and length variable
+
 2010-02-05 09:52  jsafranek
 
    * 
@@ -8402,7 +20981,7 @@
    CHANGES: snmpd: fixed filedescriptior leak in Etherlike-MIB and
    RMON-MIB
 
-2010-02-05 09:48  jsafranek
+2010-02-04 15:57  jsafranek
 
    *  agent/mibgroup/if-mib/data_access/interface_linux.c,   
       agent/mibgroup/mibII/interfaces.c,   
@@ -8413,19 +20992,65 @@
    Some interfaces can report their real speed, even they are down.
    And if they can't, the fallback to 10Mbps is still there.
 
-2010-02-01 01:07  tanders
+2010-02-01 14:47  bvassche
 
-   * testing/tests/T055agentv1mintrap:
+   * agent/mibgroup/examples/example.c:
 
-   Follow-up for r18093: same changes for all branches
+   Fixed the compiler warnings triggered by the source file
+   agent/mibgroup/examples/example.c.
+
+2010-02-01 14:45  bvassche
+
+   * README.win32, snmplib/keytools.c:
+
+   CHANGES: Win32: building: simplified the procedure for building
+   with SNMPv3 support enabled (OpenSSL).
+
+2010-02-01 14:34  bvassche
+
+   *  agent/helpers/cache_handler.c, agent/helpers/instance.c,   
+      agent/helpers/old_api.c, agent/helpers/stash_cache.c,   
+      agent/helpers/watcher.c, agent/mibgroup/winExtDLL.c,   
+      snmplib/large_fd_set.c, snmplib/md5.c, snmplib/snmpAliasDomain.c, 
+        snmplib/snmp_parse_args.c:
+
+   Made sure that all calls to free() are intercepted when building
+   with dmalloc
+   support enabled. Included <dmalloc.h> in those source files where
+   it was not
+   yet included, and provided a wrapper function for free() where
+   the address of
+   this function was taken (Dmalloc can only intercept free() when
+   it is called
+   directly but not when it is called through a function pointer).
+
+2010-02-01 10:49  bvassche
+
+   * include/net-snmp/library/system.h:
+
+   NEWS: building: Building Net-SNMP with dmalloc support enabled is
+   again possible.
 
 2010-02-01 01:05  tanders
 
    *  testing/tests/T053agentv1trap, testing/tests/T054agentv2ctrap,   
-      testing/tests/T056agentv2cmintrap, testing/tests/T113agentxtrap:
+      testing/tests/T055agentv1mintrap,   
+      testing/tests/T056agentv2cmintrap, testing/tests/T113agentxtrap,  
+       testing/tests/T114agentxagentxtrap:
 
    CHANGES: building: 'make test TESTOPTS="-P tcp"' works fine now
 
+2010-01-31 08:02  bvassche
+
+   * configure, configure.d/config_os_misc2:
+
+   Follow-up for r18084: fixed an sh syntax error in the configure
+   script
+   that was triggered on systems without libcrypto and without
+   libeay32.
+   The following error was reported:
+   configure[33136]: x: unknown test operator
+
 2010-01-29 20:07  jsafranek
 
    * testing/tests/T059trapdtraphandle:
@@ -8439,6 +21064,128 @@
    Fix test 35 when configure option '--with-temp-file-pattern' was
    used and the directory for temp. files does not exist yet.
 
+2010-01-29 15:07  bvassche
+
+   *  configure, configure.d/config_os_functions,   
+      include/net-snmp/library/system.h,   
+      include/net-snmp/net-snmp-config.h.in, snmplib/closedir.c,   
+      snmplib/gettimeofday.c, snmplib/opendir.c, snmplib/readdir.c,   
+      snmplib/system.c, win32/libsnmp/libsnmp.dsp:
+
+   Moved the source code of the opendir(), readdir(), closedir() and
+   gettimeofday() replacements for MSVC from snmplib/system.c to
+   separate source files in snmplib.
+
+2010-01-29 08:57  bvassche
+
+   * configure, configure.d/config_os_libs:
+
+   Configure script consistency improvement: renamed the variable
+   "saved_LIBS" into "netsnmp_save_LIBS".
+
+2010-01-29 06:39  magfr
+
+   *  configure, configure.d/config_os_struct_members,   
+      include/net-snmp/net-snmp-config.h.in,   
+      testing/tests/T072com2secunix:
+
+   CHANGES: testing: Check the size of sun_path and use that to
+   generate the maximal size strings for stressing com2secunix.
+
+2010-01-27 15:16  bvassche
+
+   * testing/eval_tools.sh:
+
+   NEWS: MinGW: running the regression test suite is again possible
+   ('make test').
+
+2010-01-27 14:43  bvassche
+
+   *  configure, configure.d/config_os_libs,   
+      configure.d/config_os_misc2,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   NEWS: Cygwin: building with another OpenSSL package than the
+   Cygwin-provided packages openssl and openssl-devel is again
+   possible.
+   NEWS: MinGW: building with OpenSSL works again.
+
+2010-01-26 21:27  magfr
+
+   * agent/agent_trap.c, include/net-snmp/agent/agent_trap.h:
+
+   CHANGES: snmplib: Make the context argument of send_v3trap,
+   send_trap_vars_with_context and netsnmp_send_traps refer to a
+   const char*.
+
+2010-01-26 21:24  magfr
+
+   * agent/mibgroup/host/data_access/swinst_pkginfo.c:
+
+   Correct misspelling - #elsif to #elif
+
+2010-01-26 21:21  magfr
+
+   * snmplib/snmpUDPDomain.c:
+
+   Apparently not all systems define INET_ADDRSTRLEN so add it if it
+   is missing.
+
+2010-01-26 15:46  bvassche
+
+   * testing/TESTCONF.sh:
+
+   Added netstat path for MinGW.
+
+2010-01-26 15:00  hardaker
+
+   * include/net-snmp/library/snmp_api.h:
+
+   fix stat names
+
+2010-01-26 15:00  hardaker
+
+   * include/net-snmp/library/snmp_assert.h:
+
+   define netsnmp_assert_or_msgreturn
+
+2010-01-26 14:59  hardaker
+
+   * snmplib/snmptsm.c:
+
+   use netsnmp_assert_or_return
+
+2010-01-26 14:58  hardaker
+
+   * include/net-snmp/library/snmp_assert.h:
+
+   define netsnmp_assert_or_return
+
+2010-01-26 14:58  hardaker
+
+   * snmplib/snmptsm.c:
+
+   update comments to reflect RFC5591 as the document describing the
+   implementation
+
+2010-01-26 11:43  bvassche
+
+   * include/net-snmp/system/cygwin.h:
+
+   NEWS: Cygwin: BUG: 2939168: byte order of udpLocalPort is now
+   correct.
+
+2010-01-26 10:46  bvassche
+
+   *  net-snmp-config.in, testing/TESTCONF.sh,   
+      testing/tests/T030snmpv3usercreation,   
+      testing/tests/T115agentxperl:
+
+   NEWS: Cygwin: BUG: 2939168: fixed test infrastructure ("make
+   test"). This has been fixed by using the proper environment
+   separator character and by adding the path of the netstat
+   executable for Cygwin in testing/TESTCONF.sh.
+
 2010-01-26 09:27  jsafranek
 
    * agent/mibgroup/host/hr_swinst.c:
@@ -8455,12 +21202,628 @@
    whole process
    is restarted only three times, to prevent endless loop.
 
+2010-01-25 22:16  magfr
+
+   *  agent/mibgroup/notification/snmpNotifyTable.c,   
+      agent/mibgroup/snmpv3/usmUser.c,   
+      agent/mibgroup/target/snmpTargetAddrEntry.c,   
+      agent/mibgroup/target/snmpTargetParamsEntry.c,   
+      agent/mibgroup/ucd-snmp/disk.c, snmplib/scapi.c,   
+      snmplib/snmp_api.c:
+
+   CHANGES: snmplib, snmpd: Do not check if values of type size_t
+   are less than 0.
+
+2010-01-25 22:11  magfr
+
+   * agent/mibgroup/util_funcs/header_simple_table.c:
+
+   CHANGES: snmpd: Check the range of oid values towards the maximum
+   oid value, notULONG_MAX
+
+2010-01-25 20:01  rstory
+
+   * configure, configure.d/config_os_libs:
+
+   only bail on missing libiphlpapi for xwinsock2
+
+2010-01-25 19:57  rstory
+
+   * include/net-snmp/library/snmp_api.h, snmplib/snmp_api.c:
+
+   rename MAX_STATS to NETSNMP_STAT_MAX_STATS
+
+2010-01-25 19:53  rstory
+
+   * agent/helpers/snmp_get_statistic.c:
+
+   update for new path to snmp_get_statistics; check for index
+   overflow
+
+2010-01-25 19:44  rstory
+
+   *  agent/helpers/Makefile.in, agent/mibgroup/Makefile.depend,   
+      agent/mibgroup/mibII/snmp_mib_5_5.c,   
+      agent/mibgroup/mibII/snmp_mib_5_5.h,   
+      agent/mibgroup/snmpv3/snmpMPDStats_5_5.c,   
+      agent/mibgroup/snmpv3/snmpMPDStats_5_5.h,   
+      agent/mibgroup/snmpv3/usmStats_5_5.c,   
+      agent/mibgroup/snmpv3/usmStats_5_5.h,   
+      agent/mibgroup/target/target_counters_5_5.c,   
+      agent/mibgroup/target/target_counters_5_5.h:
+
+   update for new path to snmp_get_statistics
+
+2010-01-25 16:03  hardaker
+
+   * include/net-snmp/library/snmp_api.h:
+
+   use *current* copy of the MIB when generating stats
+
+2010-01-25 16:01  rstory
+
+   *  agent/helpers/snmp_get_statistic.c,   
+      agent/mibgroup/utilities/snmp_get_statistic.c,   
+      agent/mibgroup/utilities/snmp_get_statistic.h,   
+      include/net-snmp/agent/all_helpers.h,   
+      include/net-snmp/agent/snmp_get_statistic.h:
+
+   move snmp_get_statistic helper to helpers dir; update all_helpers
+   header
+
+2010-01-25 14:34  bvassche
+
+   * apps/agentxtrap.c:
+
+   Replaced explicit declarations of optind, optopt and optarg by
+   #include <unistd.h> because explicitly declaring these variables
+   is not compatible with Cygwin.
+
+2010-01-25 14:25  bvassche
+
+   * snmplib/snmpTCPIPv6Domain.c, snmplib/snmpUDPIPv6Domain.c:
+
+   NEWS: Cygwin: IPv6 is only supported under Cygwin 1.7 or later.
+   The old implementation of IPv6 support in Net-SNMP under Cygwin
+   involved a strange mixture of Cygwin and Winsock2 socket calls,
+   which was too hard to maintain.
+   NEWS: Cygwin: builds again with IPv6 support enabled
+   (--enable-ipv6). At least Net-SNMP 5.5 doesn't build under Cygwin
+   with IPv6 support enabled. The configure script reported
+   "checking ipv6 stack type ... result: "unknown, no" ... error:
+   IPv6 transports not available if IPv6 support is not enabled".
+
+2010-01-25 14:13  bvassche
+
+   * snmplib/inet_ntop.c, snmplib/inet_pton.c:
+
+   Added missing #include <string.h>.
+
+2010-01-25 14:10  bvassche
+
+   * configure, configure.d/config_project_ipv6_types:
+
+   Added configure test for the IPv6 stack included in Cygwin
+   version 1.7.
+   IPv6 support is one of the new features of Cygwin 1.7. For more
+   information,
+   see also http://cygwin.com/cygwin-ug-net/ov-new1.7.html.
+
+2010-01-25 12:40  bvassche
+
+   *  configure, configure.d/config_os_headers,   
+      configure.d/config_os_libs:
+
+   CHANGES: Cygwin: the message "configure: WARNING: winsock.h:
+   present but cannot be compiled" does no longer appear when
+   running the configure script.
+   Follow-up for r18050: re-enabled libiphlpapi and iphlpapi.h tests
+   for non-MinGW platforms since the Cygwin build needs these.
+
+2010-01-25 07:28  magfr
+
+   *  configure, configure.d/config_os_functions, snmplib/inet_ntop.c,  
+       snmplib/inet_pton.c:
+
+   CHANGES: building: Use autoconf to decide if inet_ntop.c and
+   inet_pton.c are to be compiled.
+
+2010-01-25 07:09  bvassche
+
+   * configure, configure.d/config_os_struct_members:
+
+   CHANGES: MinGW: struct sockaddr_in6.sin6_scope_id configure test
+   does now work.
+
+2010-01-25 05:14  hardaker
+
+   * include/net-snmp/library/snmp_api.h:
+
+   TLSTM counter stats
+
+2010-01-25 05:13  hardaker
+
+   * include/net-snmp/library/snmp_api.h:
+
+   add in TSM needed counter definitions
+
+2010-01-25 05:12  hardaker
+
+   * mibs/SNMP-TSM-MIB.txt, mibs/rfclist:
+
+   added the SNMP-TSM-MIB
+
+2010-01-24 14:43  magfr
+
+   * agent/agent_registry.c, include/net-snmp/agent/agent_registry.h:
+
+   NEWS: snmpd: Made subtree_context_cache::context_name a const
+   char*.
+
+2010-01-24 14:27  magfr
+
+   * include/net-snmp/library/tools.h:
+
+   CHANGES: snmplib: Prevent gcc ped-warning for
+   NETSNMP_REMOVE_CONST
+
+2010-01-24 13:27  magfr
+
+   * apps/snmpusm.c:
+
+   CHANGES: snmpusm: Prefer to use a variable of the right type over
+   an ugly cast. Lessen the scope of the variable as well.
+
+2010-01-24 12:59  bvassche
+
+   *  configure, configure.d/config_os_headers,   
+      configure.d/config_os_libs, configure.d/config_os_progs:
+
+   CHANGES: building: Introduced the variable 'with_socklib' in the
+   configure script. This variable is set to "winsock2" for MinGW
+   and to "default" for all other systems. Winsock2 tests are only
+   run if this variable is set to "winsock2" (MinGW).
+
+2010-01-24 12:53  magfr
+
+   * snmplib/snmpUDPIPv6Domain.c:
+
+   Remove superfluous debug logs.
+
+2010-01-24 12:45  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Windows, compiler warning fixes: fixed warnings about char * /
+   unsigned char *
+   mismatches.
+
+2010-01-24 12:44  bvassche
+
+   * snmplib/snmpUDPDomain.c:
+
+   Windows, compiler warning fix: make inet_ntop() and inet_pton()
+   declarations
+   available to the compiler.
+
+2010-01-24 12:44  bvassche
+
+   * snmplib/snmp_logging.c:
+
+   Windows, compiler warning fix: made sure that <ws2tcpip.h> will
+   be included
+   from <net-snmp/types.h> such that the compiler doesn't complain
+   about struct
+   sockaddr_in6 being used before being defined.
+
+2010-01-24 11:42  bvassche
+
+   * man:
+
+   Updated Subversion ignore list.
+
+2010-01-24 11:41  bvassche
+
+   *  agent/agent_index.c, agent/agent_read_config.c,   
+      agent/agent_registry.c, agent/agent_trap.c, agent/mib_modules.c,  
+       agent/mibgroup/Rmon/alarm.c, agent/mibgroup/Rmon/event.c,   
+      agent/mibgroup/Rmon/history.c, agent/mibgroup/Rmon/statistics.c,  
+       agent/mibgroup/agentx/client.c,   
+      agent/mibgroup/agentx/master_admin.c,   
+      agent/mibgroup/agentx/protocol.c,   
+      agent/mibgroup/agentx/subagent.c,   
+      agent/mibgroup/examples/ucdDemoPublic.c,   
+      agent/mibgroup/host/hr_storage.c, agent/mibgroup/mibII/at.c,   
+      agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/mibII/route_headers.h,   
+      agent/mibgroup/mibII/vacm_vars.c, agent/mibgroup/mibincl.h,   
+      agent/mibgroup/smux/smux.c, agent/mibgroup/ucd-snmp/disk.c,   
+      agent/mibgroup/ucd-snmp/errormib.c,   
+      agent/mibgroup/ucd-snmp/extensible.c,   
+      agent/mibgroup/ucd-snmp/file.c,   
+      agent/mibgroup/ucd-snmp/loadave.c,   
+      agent/mibgroup/ucd-snmp/proc.c,   
+      agent/mibgroup/ucd-snmp/versioninfo.c,   
+      agent/mibgroup/util_funcs.c, agent/snmp_agent.c,   
+      agent/snmp_vars.c, agent/snmpd.c, apps/snmpbulkget.c,   
+      apps/snmpbulkwalk.c, apps/snmpdelta.c, apps/snmpdf.c,   
+      apps/snmpget.c, apps/snmpgetnext.c, apps/snmpset.c,   
+      apps/snmpstatus.c, apps/snmptable.c, apps/snmptest.c,   
+      apps/snmptrap.c, apps/snmpusm.c, apps/snmpvacm.c,   
+      apps/snmpwalk.c, include/net-snmp/library/libsnmp.h,   
+      include/net-snmp/net-snmp-includes.h, snmplib/lcd_time.c,   
+      snmplib/mib.c, snmplib/parse.c, snmplib/read_config.c,   
+      snmplib/scapi.c, snmplib/snmp-tc.c, snmplib/snmp_alarm.c,   
+      snmplib/snmp_api.c, snmplib/snmp_auth.c, snmplib/snmp_client.c,   
+      snmplib/snmp_logging.c, snmplib/snmp_parse_args.c,   
+      snmplib/snmpksm.c, snmplib/snmpusm.c, snmplib/snmpv3.c,   
+      snmplib/system.c, snmplib/tools.c, snmplib/vacm.c:
+
+   Cleanup (Windows): removed superfluous #include <sys/timeb.h>
+   directives. This header file
+   has only to be included from snmplib/system.c because of the
+   _ftime() call in that file.
+
+2010-01-24 10:43  bvassche
+
+   * apps/snmpnetstat/inet.c:
+
+   The macro 'C()' now casts its result from unsigned long to
+   unsigned int.
+   This change fixes a compiler warnings about format specification
+   mismatches
+   and fixes a bug (incorrect snmpnetstat output) on big endian
+   systems.
+
+2010-01-24 10:33  bvassche
+
+   * man/config_api.3:
+
+   Follow-up for r17946: removed generated man pages from
+   repository.
+
+2010-01-24 10:31  bvassche
+
+   * include/net-snmp/library/winservice.h, snmplib/winservice.c:
+
+   Moved two declarations of static functions from .h to .c.
+
+2010-01-24 10:21  magfr
+
+   * agent/mibgroup/agent/nsModuleTable.c:
+
+   Remove unnecessary casts.
+
+2010-01-24 10:19  bvassche
+
+   * snmplib/snmpUDPIPv6Domain.c:
+
+   CHANGES: snmplib: builds again when HAVE_GETADDRINFO is not
+   defined.
+
+2010-01-24 10:03  bvassche
+
+   *  configure, configure.d/config_os_functions,   
+      include/net-snmp/net-snmp-config.h.in, snmplib/inet_ntop.c,   
+      snmplib/inet_ntop.h, snmplib/inet_pton.c, snmplib/inet_pton.h,   
+      snmplib/snmpTCPIPv6Domain.c, snmplib/snmpUDPDomain.c,   
+      snmplib/snmpUDPIPv6Domain.c:
+
+   Changes:
+   - Added configure tests for inet_ntop() and inet_pton().
+   - Added header files snmplib/inet_ntop.h and snmplib/inet_pton.h.
+   - Replaced "extern inet_ntop(...);" and "extern inet_pton(...);"
+   by #include "inet_ntop/pton.h".
+   - Converted snmplib/inet_ntop.c and snmplib/inet_pton.c from K&R
+   C to ANSI C.
+   - Replaced the inet_aton() calls that were introduced in r18033
+   in snmplib/snmpUDPDomain.c by inet_pton() calls such that it is
+   again possible to build Net-SNMP on Windows.
+
+2010-01-24 06:08  magfr
+
+   * include/net-snmp/library/snmpDTLSUDPDomain.h:
+
+   CHANGES: snmplib: Remove declarations of functions that don't
+   exist or are declared elsewhere.
+
+2010-01-24 05:48  magfr
+
+   * agent/agent_trap.c:
+
+   NEWS: snmplib: Removed the unused variables warm_start_oid,
+   link_down_oid, link_up_oid, auth_fail_oid and egp_xxx_oid.
+
+2010-01-23 22:06  magfr
+
+   *  testing/tests/T070com2sec, testing/tests/T071com2sec6,   
+      testing/tests/T072com2secunix:
+
+   Better set of SKIPIF/SKIPIFNOTS
+
+2010-01-23 20:31  magfr
+
+   * testing/tests/T071com2sec6, testing/tests/T072com2secunix:
+
+   Be correct in what it is that is tested in the header.
+
+2010-01-23 20:27  magfr
+
+   *  snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c,   
+      snmplib/snmpUnixDomain.c:
+
+   CHANGES: snmplib: Changed the com2sec directives to fail if there
+   are too few arguments. Additionally changed the storage structure
+   to not allocate more space than necessary.
+
+2010-01-23 20:22  magfr
+
+   *  testing/tests/T070com2sec, testing/tests/T071com2sec6,   
+      testing/tests/T072com2secunix:
+
+   new tests checking the error handling of the com2sec* directives
+
+2010-01-23 19:17  bvassche
+
+   *  win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   Follow-up for r18025: builds again with Microsoft Visual Studio.
+
+2010-01-23 17:51  bvassche
+
+   * configure, configure.ac:
+
+   CHANGES: building: OS header detection check is now run before
+   IPv6 stack detection.
+   CHANGES: Solaris: sockaddr_in6.sin6_addr configure test does now
+   work.
+
+2010-01-23 17:42  bvassche
+
+   * snmplib/large_fd_set.c:
+
+   Fixed a Solaris-specific compiler warning.
+
+2010-01-23 17:00  bvassche
+
+   *  configure, configure.d/config_os_headers,   
+      configure.d/config_os_struct_members,   
+      include/net-snmp/net-snmp-config.h.in,   
+      include/net-snmp/system/mingw32.h:
+
+   MinGW: added configure test for <sys/timeb.h> and also for struct
+   timezone.
+
+2010-01-23 16:32  bvassche
+
+   *  include/net-snmp/library/snmpTCPIPv6Domain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h,   
+      snmplib/snmpUDPIPv6Domain.c:
+
+   MinGW: made sure that the IPv6-related datatypes are available
+   before being used.
+
+2010-01-23 16:30  bvassche
+
+   * include/net-snmp/net-snmp-config.h.in:
+
+   Added #undef HAVE_WINDOWS_H.
+
+2010-01-23 16:28  bvassche
+
+   * include/net-snmp/types.h:
+
+   MinGW: made gettimeofday() declaration available for the
+   compiler.
+
+2010-01-23 16:27  bvassche
+
+   * snmplib/snmp_api.c:
+
+   MinGW: made gettimeofday() declaration available for the
+   compiler.
+
+2010-01-23 16:26  bvassche
+
+   * snmplib/inet_pton.c:
+
+   Made sure that the compiler does not complain about a missing
+   prototype for isdigit().
+
+2010-01-23 16:24  bvassche
+
+   * configure, configure.d/config_os_headers:
+
+   MinGW: iphlpapi.h configure test does now work.
+
+2010-01-23 15:10  bvassche
+
+   * configure, configure.d/config_project_ipv6_types:
+
+   Renamed the Winsock2 IPv6 stack from 'mingw' into 'winsock2'.
+
+2010-01-23 15:07  bvassche
+
+   *  agent/mibgroup/mibII/at.c, agent/mibgroup/mibII/icmp.c,   
+      agent/mibgroup/mibII/interfaces.c, agent/mibgroup/mibII/ip.c,   
+      agent/mibgroup/mibII/ipAddr.c,   
+      agent/mibgroup/mibII/route_write.c, agent/mibgroup/mibII/tcp.c,   
+      agent/mibgroup/mibII/tcpTable.c, agent/mibgroup/mibII/udp.c,   
+      agent/mibgroup/mibII/udpTable.c,   
+      agent/mibgroup/mibII/var_route.c, agent/snmpd.c,   
+      apps/snmpnetstat/inet.c, apps/snmpnetstat/inet6.c,   
+      apps/snmpnetstat/winstub.h, configure,   
+      configure.d/config_os_headers,   
+      include/net-snmp/net-snmp-config.h.in, include/net-snmp/types.h,  
+       snmplib/inet_ntop.c, snmplib/inet_pton.c,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpSSHDomain.c,   
+      snmplib/snmpTCPDomain.c, snmplib/snmpTCPIPv6Domain.c,   
+      snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   Improved portability between the supported Win32 compilation
+   environments as follows:
+   - Made sure that the <winsock2.h> and <ws2tcpip.h> header files
+   are only included from <net-snmp/types.h>.
+   - Added configure check for <iphlpapi.h>.
+   - Replaced several WIN32 / cygwin tests by a HAVE_IPHLPAPI_H
+   test.
+   - Documented that win32/net-snmp/net-snmp-config.h is only used
+   for the MSVC build.
+
+2010-01-22 16:46  bvassche
+
+   * snmplib/tools.c:
+
+   Follow-up for r17910: builds again with Microsoft Visual Studio
+   6.
+
+2010-01-22 16:41  bvassche
+
+   * agent/mibgroup/winExtDLL.c, win32/MgmtApi-winExtDLL.h:
+
+   Follow up for r18016: builds again with Microsoft Visual Studio.
+
+2010-01-22 14:13  bvassche
+
+   * configure, configure.d/config_os_libs:
+
+   Follow-up for r18016: made MinGW libiphlpapi check more robust.
+
+2010-01-22 13:32  bvassche
+
+   *  README.win32, aclocal.m4, agent/agent_index.c,   
+      agent/agent_read_config.c, agent/agent_registry.c,   
+      agent/agent_trap.c, agent/mib_modules.c,   
+      agent/mibgroup/agentx/client.c, agent/mibgroup/agentx/master.c,   
+      agent/mibgroup/agentx/master_admin.c,   
+      agent/mibgroup/agentx/protocol.c,   
+      agent/mibgroup/agentx/subagent.c,   
+      agent/mibgroup/disman/schedule/schedCore.c,   
+      agent/mibgroup/examples/ucdDemoPublic.c,   
+      agent/mibgroup/header_complex.c, agent/mibgroup/host_res.h,   
+      agent/mibgroup/ip-forward-mib/data_access/route_ioctl.c,   
+      agent/mibgroup/mibII/at.c, agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/mibII/ipAddr.c,   
+      agent/mibgroup/mibII/mibII_common.h,   
+      agent/mibgroup/mibII/route_headers.h,   
+      agent/mibgroup/mibII/route_write.c,   
+      agent/mibgroup/mibII/system_mib.c,   
+      agent/mibgroup/mibII/vacm_conf.c,   
+      agent/mibgroup/mibII/vacm_vars.c,   
+      agent/mibgroup/notification/snmpNotifyFilterProfileTable.c,   
+      agent/mibgroup/notification/snmpNotifyTable.c,   
+      agent/mibgroup/smux/smux.c, agent/mibgroup/snmpv3/snmpEngine.c,   
+      agent/mibgroup/snmpv3/snmpMPDStats.c,   
+      agent/mibgroup/snmpv3/usmStats.c,   
+      agent/mibgroup/snmpv3/usmUser.c, agent/mibgroup/struct.h,   
+      agent/mibgroup/target/snmpTargetAddrEntry.c,   
+      agent/mibgroup/target/snmpTargetParamsEntry.c,   
+      agent/mibgroup/target/target.c, agent/mibgroup/ucd-snmp/disk.c,   
+      agent/mibgroup/ucd-snmp/dlmod.c,   
+      agent/mibgroup/ucd-snmp/errormib.c,   
+      agent/mibgroup/ucd-snmp/extensible.c,   
+      agent/mibgroup/ucd-snmp/file.c,   
+      agent/mibgroup/ucd-snmp/loadave.c,   
+      agent/mibgroup/ucd-snmp/pass.c,   
+      agent/mibgroup/ucd-snmp/pass_persist.c,   
+      agent/mibgroup/ucd-snmp/proc.c, agent/mibgroup/ucd-snmp/proxy.c,  
+       agent/mibgroup/ucd-snmp/versioninfo.c,   
+      agent/mibgroup/util_funcs.c, agent/mibgroup/winExtDLL.c,   
+      agent/mibgroup/winExtDLL.h, agent/snmp_agent.c,   
+      agent/snmp_vars.c, agent/snmpd.c, apps/encode_keychange.c,   
+      apps/snmpbulkget.c, apps/snmpbulkwalk.c, apps/snmpdelta.c,   
+      apps/snmpdf.c, apps/snmpget.c, apps/snmpgetnext.c,   
+      apps/snmpnetstat/winstub.c, apps/snmpset.c, apps/snmpstatus.c,   
+      apps/snmptable.c, apps/snmptest.c, apps/snmptranslate.c,   
+      apps/snmptrap.c, apps/snmptrapd.c, apps/snmptrapd_auth.c,   
+      apps/snmptrapd_handlers.c, apps/snmptrapd_log.c,   
+      apps/snmptrapd_sql.c, apps/snmpusm.c, apps/snmpvacm.c,   
+      apps/snmpwalk.c, configure, configure.d/config_os_functions,   
+      configure.d/config_os_headers, configure.d/config_os_libs,   
+      configure.d/config_os_struct_members,   
+      configure.d/config_project_ipv6_types,   
+      include/net-snmp/library/large_fd_set.h,   
+      include/net-snmp/library/libsnmp.h,   
+      include/net-snmp/net-snmp-config.h.in,   
+      include/net-snmp/system/mingw32.h, include/net-snmp/types.h,   
+      snmplib/asn1.c, snmplib/callback.c, snmplib/default_store.c,   
+      snmplib/int64.c, snmplib/keytools.c, snmplib/large_fd_set.c,   
+      snmplib/lcd_time.c, snmplib/md5.c, snmplib/mib.c,   
+      snmplib/parse.c, snmplib/read_config.c, snmplib/scapi.c,   
+      snmplib/snmp.c, snmplib/snmp_alarm.c, snmplib/snmp_api.c,   
+      snmplib/snmp_auth.c, snmplib/snmp_client.c, snmplib/snmp_debug.c, 
+        snmplib/snmp_logging.c, snmplib/snmp_parse_args.c,   
+      snmplib/snmpksm.c, snmplib/snmpusm.c, snmplib/snmpv3.c,   
+      snmplib/system.c, snmplib/tools.c, snmplib/vacm.c,   
+      snmplib/winpipe.c, win32/Snmp-winExtDLL.h,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   NEWS: MinGW: winExtDLL compiles now under MinGW.
+   CHANGES: MinGW: building Net-SNMP works again.
+   
+   Detailed overview:
+   * Changes in the configure script:
+
+   - socket() library check passes again on MinGW.
+   - Added library checks for libws2_32, libregex and libsnmpapi.
+   - Added check for the winsock2.h and ws2tcpip.h header files.
+   - Added check for the chown() and localtime_r() functions.
+   - sockaddr_in6.sin6_scope_id check does now work on MinGW.
+   - Added IPv6 stack type called "mingw".
+   * Source code changes:
+
+   - Include <winsock2.h> from <net-snmp/types.h> instead of
+   <winsock.h>
+   under MinGW such that IPv6 support is available.
+   - Moved #include <winsock.h> from .c files to <net-snmp/types.h>.
+   - Added a copy of the MinGW header file <snmp.h> (which is not
+   copyrighted)
+   as win32/Snmp-winExtDLL.h.
+   - agent: only call chown() when available (HAVE_CHOWN).
+   * Documentation changes: updated README.win32.
+
+
+2010-01-22 08:34  magfr
+
+   * snmplib/read_config.c:
+
+   CHANGES: snmplib: Do not cast from char* to char*
+
 2010-01-22 00:39  hardaker
 
    * COPYING:
 
    Copyright file update for SPARTA, Inc.
 
+2010-01-22 00:22  hardaker
+
+   * snmplib/snmptsm.c:
+
+   add proper prefixes in TSM for SSH, DTLS, etc, based on the
+   domain
+
+2010-01-22 00:20  hardaker
+
+   * dist/patme:
+
+   added 5.5 branch
+
+2010-01-22 00:20  hardaker
+
+   * dist/makerelease.xml:
+
+   minor echo output change
+
+2010-01-21 20:51  rstory
+
+   * snmplib/snmp_api.c:
+
+   move comment next to code it is talking about; No code change
+
 2010-01-21 14:55  jsafranek
 
    * agent/mibgroup/ip-mib/data_access/ipaddress_linux.c:
@@ -8471,6 +21834,12 @@
    The kernel might provide longer fields, especially on 64-bit
    systems.
 
+2010-01-20 12:42  bvassche
+
+   * PORTING, local/snmpcheck.def:
+
+   Fixed typo: replaced 'necissary' by 'necessary'.
+
 2010-01-20 08:53  jsafranek
 
    * man/snmpnetstat.1.def:
@@ -8505,6 +21874,107 @@
    (rpm
    version only)
 
+2010-01-11 23:58  tanders
+
+   * apps/Makefile.in:
+
+   add PERLLDOPTS_FOR_APPS to agentxtrap link line (fixes
+   "libperl.so not
+   found" errors)
+
+2010-01-11 00:11  tanders
+
+   *  testing/tests/T053agentv1trap, testing/tests/T054agentv2ctrap,   
+      testing/tests/T055agentv1mintrap,   
+      testing/tests/T056agentv2cmintrap, testing/tests/T113agentxtrap,  
+       testing/tests/T114agentxagentxtrap:
+
+   get rid of using deprecated syntax for trap/inform sinks
+
+2010-01-08 08:42  bvassche
+
+   * snmplib/snmp_alarm.c, snmplib/snmp_api.c:
+
+   CHANGES: snmplib: obsoleted NETSNMP_DS_LIB_ALARM_DONT_USE_SIG.
+   From now on using SIGALRM to trigger Net-SNMP alarm handlers is
+   no longer supported.
+   
+   Motivation: as known libnetsnmp supports time-based alarms via
+   the functions
+   snmp_alarm_register(), run_alarms() and other functions. Two
+   different ways to
+   trigger the function run_alarms() are supported inside
+   libnetsnmp:
+   1. By making sure that the timeout argument of select() is small
+   enough such
+   that select() returns before the next alarm must be handled (when
+   the
+   variable NETSNMP_DS_LIB_ALARM_DONT_USE_SIG is set to one, which
+   is the
+   default).
+   2. By making sure that the kernel fires SIGALRM at the time when
+   run_alarms()
+   should be called (when the variable
+   NETSNMP_DS_LIB_ALARM_DONT_USE_SIG is set
+   to zero, which has to be configured explicitly).
+   
+   The following issues are associated with the second approach:
+   1. Alarm functions are used inside Net-SNMP to e.g. refresh
+   cached table
+   contents. As far as I can see there is nothing in the Net-SNMP
+   source code
+   that prevents the following from happening: a table refresh
+   triggered via
+   SIGALRM while a row is being removed from a cached table. This
+   can result
+   in dangling pointer dereferences and even a crash.
+   2. POSIX restricts signal handlers to calling functions that are
+   either reentrant
+   or non-interruptible
+   (http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html#tag_02_04).
+   Standard I/O functions like printf() and fprintf() are neither
+   reentrant nor
+   non-interruptible. run_alarms() is called from inside a signal
+   handler, which
+   means that this restriction applies to the function run_alarms()
+   itself and
+   all functions called by it (which includes the alarm callback
+   functions).
+   Or: e.g. snmp_log() and its callers must not be called from
+   inside run_alarms()
+   when this function is invoked from inside a signal handler. This
+   is a severe
+   restriction, and one that is hard to work with.
+   3. Not all software developers know how to make sure that signal
+   delivery works
+   correctly in a multithreaded context. POSIX does not guarantee to
+   which thread
+   a signal like SIGALRM will be delivered, unless that signal has
+   been blocked
+   before thread creation and is unblocked after thread creation
+   (see also
+   http://www.opengroup.org/onlinepubs/009695399/functions/pthread_sigmask.html).
+   This is relevant for the Net-SNMP project not only because a
+   worker thread is
+   created inside
+   agent/mibgroup/if-mib/data_access/interface_linux.c but also
+   because libnetsnmp is often used inside multithreaded software.
+   Currently no
+   attempt is made to make sure that SIGALRM is processed by the
+   Net-SNMP event
+   processing loop thread. If SIGALRM is processed by another
+   thread, this will
+   result in one or more data races.
+   
+   Because all the difficulties associated with processing alarms
+   from inside a
+   signal handler function, and because fixing these would require
+   more effort than
+   it is worth, NETSNMP_DS_LIB_ALARM_DONT_USE_SIG has been
+   deprecated and from now
+   on approach (1) is the only supported approach to trigger alarm
+   handlers.
+
 2010-01-07 19:42  hardaker
 
    * agent/mibgroup/hardware/cpu/cpu_sysctl.c:
@@ -8512,6 +21982,271 @@
    Patch from Stephen Hemminger to fix a minor memleak in cpu
    sysctrl fetching
 
+2010-01-07 16:21  bvassche
+
+   *  include/net-snmp/library/read_config.h, snmplib/read_config.c,   
+      snmplib/snmpusm.c, snmplib/vacm.c:
+
+   Removed read_config_read_ascii_string(), and made sure that
+   read_config_read_octet_string() '\0'-terminates the output buffer
+   in all cases.
+   Updated documentation and unit tests.
+
+2010-01-07 14:41  bvassche
+
+   * snmplib/snmpusm.c:
+
+   Removed three superfluous casts because these triggered a
+   compiler warning
+   when compiled with MSVC.
+
+2010-01-07 13:28  bvassche
+
+   * snmplib/read_config.c:
+
+   Reverted the read_config_read_octet_string() changes from r17992
+   because these
+   caused the following Valgrind complaint during snmpd startup:
+   
+   ==25201== Conditional jump or move depends on uninitialised
+   value(s)
+   ==25201== at 0x4047B14: netsnmp_send_traps (agent_trap.c:798)
+   ==25201== by 0x4048128: send_enterprise_trap_vars
+   (agent_trap.c:853)
+   ==25201== by 0x404819D: send_trap_vars (agent_trap.c:963)
+   ==25201== by 0x404825B: send_easy_trap (agent_trap.c:1011)
+   ==25201== by 0x804B5D2: main (snmpd.c:394)
+
+2010-01-07 12:30  bvassche
+
+   * 
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c:
+
+   Fixed a format specification mismatch.
+
+2010-01-07 12:19  bvassche
+
+   * include/net-snmp/agent/sysORTable.h:
+
+   Depending on the context, assigning a char * pointer to
+   sysORTable::OR_descr does or does not transfer
+   ownership. So whether OR_descr is declared as char * or as const
+   char *, there will always be at
+   least one statement on which the compiler complains about a char
+   *  / const char * mismatch. The only    solution is to cast away
+      const where appropriate to make sure    that the compiler does not
+      complain,    as implemented in this patch.  2010-01-07 11:46 
+      bvassche
+
+
+   * snmplib/snmpusm.c:
+
+   usm_save_user(): when writing user->name and user->secName, only
+   write the ASCII data and not the
+   terminating '\0'. Since both items are read by calling
+   read_config_read_ascii_string(), writing
+   the terminating '\0' is not necessary to guarantee that the data
+   read back is terminated properly.
+
+2010-01-07 09:13  bvassche
+
+   * snmplib/read_config.c:
+
+   Changed the behavior of read_config_read_octet_string(): until
+   now this
+   function terminated the output buffer in some cases with '\0'
+   (when the
+   input was in the format 0x... and a buffer overflow occurred and
+   also
+   when the input was in ASCII format, but not when the input was in
+   format
+   0x... and no buffer overflow occurred). Changed this such that
+   this
+   function does no longer terminate the input buffer with '\0'.
+   This
+   change was possible because inside the Net-SNMP project all
+   callers that
+   needed a '\0' terminated string have been converted to use
+   read_config_read_ascii_string() instead.
+
+2010-01-06 17:52  bvassche
+
+   *  agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/mibII/ip.c, agent/mibgroup/mibII/snmp_mib.c,   
+      agent/mibgroup/mibII/snmp_mib_5_5.c,   
+      agent/mibgroup/mibII/sysORTable.c,   
+      agent/mibgroup/mibII/system_mib.c, agent/mibgroup/mibII/tcp.c,   
+      agent/mibgroup/mibII/udp.c, agent/mibgroup/mibII/vacm_vars.c,   
+      agent/mibgroup/snmpv3/snmpEngine.c,   
+      agent/mibgroup/snmpv3/snmpMPDStats.c,   
+      agent/mibgroup/snmpv3/snmpMPDStats_5_5.c,   
+      agent/mibgroup/snmpv3/usmStats.c,   
+      agent/mibgroup/snmpv3/usmStats_5_5.c,   
+      agent/mibgroup/tunnel/tunnel.c:
+
+   Reverted r17968 and r17972.
+
+2010-01-06 15:40  bvassche
+
+   *  agent/mibgroup/disman/event/mteTriggerConf.c,   
+      agent/mibgroup/if-mib/data_access/interface.c,   
+      agent/mibgroup/mibII/vacm_conf.c:
+
+   Fixed more compiler warnings related to the use of the const
+   keyword.
+
+2010-01-06 15:38  bvassche
+
+   * agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c:
+
+   Fixed a format specification mismatch.
+
+2010-01-06 15:36  bvassche
+
+   * include/net-snmp/library/snmpusm.h:
+
+   Changed argument type from char * into const char *. Should have
+   been included in r17975.
+
+2010-01-06 15:33  bvassche
+
+   *  agent/mibgroup/agentx/master_admin.c,   
+      agent/mibgroup/disman/schedule/schedTable.c,   
+      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c,   
+      agent/mibgroup/mibII/ipv6.c,   
+      agent/mibgroup/notification/snmpNotifyTable.c,   
+      agent/mibgroup/utilities/override.c:
+
+   Fixed several compiler warnings about char * / u_char *
+   mismatches.
+
+2010-01-06 15:31  bvassche
+
+   *  agent/agent_read_config.c,   
+      include/net-snmp/agent/agent_read_config.h,   
+      include/net-snmp/config_api.h, snmplib/read_config.c:
+
+   Added the functions register_const_config_handler() and
+   snmpd_register_const_config_handler(), which
+   accept a parser function that does not modify the string that it
+   parses. Using these functions results
+   in easier to read code than using the non-const handler
+   registration functions and casting the parser
+   function explicitly from (void(*)(const char*, const char*)) to
+   (void(*)(const char*, char*)).
+
+2010-01-06 15:27  bvassche
+
+   * snmplib/snmpusm.c:
+
+   Fixed a compiler warning about discarding the const qualifier.
+
+2010-01-06 14:48  bvassche
+
+   * include/net-snmp/library/read_config.h, snmplib/read_config.c:
+
+   Added read_config_read_objid_const().
+
+2010-01-06 14:42  bvassche
+
+   * agent/mibgroup/tunnel/tunnel.c:
+
+   Duplicated the second argument of REGISTER_SYSOR_TABLE() /
+   REGISTER_SYSOR_ENTRY()
+   since that argument is freed while unregistering such an entry.
+   Not sure whether
+   this could actually trigger a call of free() with a constant
+   string as argument
+   and I'm neither sure about whether or not this could have
+   triggered a crash.
+
+2010-01-06 14:34  bvassche
+
+   * include/net-snmp/library/vacm.h, snmplib/vacm.c:
+
+   For those VACM functions that do not modify the strings passed as
+   arguments,
+   changed the argument type from char * to const char *.
+
+2010-01-06 14:27  bvassche
+
+   * snmplib/snmp_logging.c:
+
+   Fixed a compiler warning about discarding the const qualifier.
+
+2010-01-06 14:26  bvassche
+
+   * agent/mibgroup/sctp-mib/sctpScalars_common.c:
+
+   Removed an unused variable.
+
+2010-01-06 14:14  bvassche
+
+   *  agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/mibII/ip.c, agent/mibgroup/mibII/snmp_mib.c,   
+      agent/mibgroup/mibII/snmp_mib_5_5.c,   
+      agent/mibgroup/mibII/sysORTable.c,   
+      agent/mibgroup/mibII/system_mib.c, agent/mibgroup/mibII/tcp.c,   
+      agent/mibgroup/mibII/udp.c, agent/mibgroup/mibII/vacm_vars.c,   
+      agent/mibgroup/snmpv3/snmpEngine.c,   
+      agent/mibgroup/snmpv3/snmpMPDStats.c,   
+      agent/mibgroup/snmpv3/snmpMPDStats_5_5.c,   
+      agent/mibgroup/snmpv3/usmStats.c,   
+      agent/mibgroup/snmpv3/usmStats_5_5.c:
+
+   Duplicated the second argument of REGISTER_SYSOR_TABLE() /
+   REGISTER_SYSOR_ENTRY()
+   since that argument is freed while unregistering such an entry.
+   Not sure whether
+   this could actually trigger a call of free() with a constant
+   string as argument
+   and I'm neither sure about whether or not this could have
+   triggered a crash.
+
+2010-01-06 14:08  bvassche
+
+   *  agent/mibgroup/disman/event/mteTriggerConf.c,   
+      agent/mibgroup/disman/event/mteTriggerConf.h:
+
+   Fixed several compiler warnings about discarding the const
+   qualifier.
+
+2010-01-06 14:06  bvassche
+
+   * agent/helpers/table.c, agent/helpers/table_dataset.c:
+
+   Fixed several compiler warnings about char * / u_char *
+   mismatches.
+
+2010-01-06 14:04  bvassche
+
+   * include/net-snmp/library/read_config.h, snmplib/read_config.c:
+
+   Changes:
+   - Added new functions skip_white_const(), skip_not_white_const(),
+   skip_token_const(), copy_nword_const() and
+   read_config_read_octet_string_const().
+   - Changed return type of read_config_read_ascii_string() from
+   char * to
+   const char *. Note: this does not affect backwards compatibility
+   since this
+   function has not yet been included in any release.
+   - Fixed documentation of read_config_read_octet_string() and
+   read_config_read_ascii_string().
+   - Reduced number of cast-away-const constructs in read_config.c.
+
+2010-01-06 13:35  bvassche
+
+   * include/net-snmp/library/tools.h:
+
+   Refined the implementation of the macro NETSNMP_REMOVE_CONST():
+   when using
+   the gcc compiler, it is now verified whether the types (const t)
+   and typeof(e)
+   are compatible, where t is the first argument and e the second
+   argument of
+   this macro.
+
 2010-01-06 13:33  jsafranek
 
    * agent/mibgroup/mibII/at.c, agent/mibgroup/mibII/at.h:
@@ -8533,6 +22268,94 @@
    CHANGES: snmplib: BUGS: 2922390: Fix test for missing contextName
    parameter
 
+2010-01-06 11:57  bvassche
+
+   *  agent/snmp_perl.c, include/net-snmp/library/tools.h,   
+      snmplib/container.c, snmplib/container_binary_array.c,   
+      snmplib/container_list_ssll.c, snmplib/parse.c,   
+      snmplib/snmp_service.c:
+
+   Changes:
+   - Introduced a new macro NETSNMP_REMOVE_CONST() that allows to
+   cast
+   away constness without that gcc -Wcast-qual reports a warning.
+   - Made casting away constness explicit by introducing the
+   NETSNMP_REMOVE_CONST() macro. This suppresses the warning
+   gcc -Wcast-qual printed for these statements.
+
+2010-01-06 11:46  bvassche
+
+   * agent/mibgroup/tunnel/tunnel.c, snmplib/snmpUDPIPv6Domain.c:
+
+   Fixed compiler warnings about discarding the const qualifier.
+
+2010-01-06 09:14  magfr
+
+   *  agent/mibgroup/mibII/icmp.c, agent/mibgroup/smux/smux.c,   
+      agent/mibgroup/target/snmpTargetAddrEntry.c,   
+      agent/mibgroup/target/snmpTargetParamsEntry.c,   
+      agent/mibgroup/ucd-snmp/dlmod.c, agent/snmp_agent.c,   
+      apps/agentxtrap.c, snmplib/large_fd_set.c, snmplib/snmp_api.c:
+
+   Do not use 0 when referring to NULL.
+
+2010-01-06 08:26  bvassche
+
+   * include/net-snmp/library/system.h, snmplib/system.c:
+
+   Changed argument types of calculate_time_diff() and
+   calculate_sectime_diff()
+   from struct timeval * to const struct timeval *. Note: this does
+   not affect
+   backwards compatibility.
+
+2010-01-06 08:23  bvassche
+
+   * agent/mibgroup/ucd-snmp/diskio.c:
+
+   Changes (no functionality has been modified):
+   - Removed diskio_parse_config() declaration because that function
+   is neither called nor defined in the source file diskio.c.
+   - Added declaration for getstats() such that gcc does not
+   complain about a missing declaration.
+   - Linux: changed visibility of getstats() from global to static
+   for consistency with the BSD and Darwin implementations of
+   getstats().
+
+2010-01-06 08:00  bvassche
+
+   *  agent/agent_trap.c, agent/mibgroup/agentx/client.c,   
+      agent/mibgroup/agentx/protocol.c,   
+      agent/mibgroup/agentx/subagent.c,   
+      agent/mibgroup/utilities/iquery.c:
+
+   Fixed compiler warnings about char * / u_char * mismatches.
+
+2010-01-06 02:18  magfr
+
+   *  apps/Makefile.in, configure, configure.d/config_modules_agent,   
+      man/Makefile.in, testing/tests/T114agentxagentxtrap:
+
+   CHANGES: apps: Only build agentxtrap if the agentx libraries are
+   built. Add a test case for agentxtrap.
+   
+   The enablement/disablement is inspiered by automake conditionals
+
+2010-01-06 01:59  magfr
+
+   * agent/mibgroup/agentx/client.c:
+
+   Remove unused variable starttime.
+
+2010-01-05 22:54  magfr
+
+   *  agent/mibgroup/ucd-snmp/logmatch.c,   
+      agent/mibgroup/ucd-snmp/logmatch.h:
+
+   CHANGES: Hide most functions and variables in the logmatch
+   module. Cleaned up the header accordingly. Remove the need for
+   forward declarations by reordering the functions.
+
 2010-01-05 22:33  dts12
 
    * python/netsnmp/client_intf.c:
@@ -8573,6 +22396,99 @@
 
    Remove generated man pages from repository.
 
+2010-01-04 16:44  bvassche
+
+   * snmplib/read_config.c:
+
+   Fixed a past-end-of-buffer read that occurred when an ASCII
+   string was
+   passed as the first argument of read_config_read_octet_string() /
+   read_config_read_ascii_string() and the third argument (*len)
+   equals 0.
+
+2010-01-04 16:41  bvassche
+
+   * snmplib/read_config.c:
+
+   Fixed compiler warnings about casting away 'const'.
+
+2010-01-04 16:27  bvassche
+
+   * snmplib/read_config.c:
+
+   Added unit test for read_config_read_octet_string() and
+   read_config_read_ascii_string().
+
+2010-01-04 10:45  jsafranek
+
+   * snmplib/mib.c:
+
+   Use correct oid length in table indexes.
+
+2010-01-04 08:10  bvassche
+
+   * snmplib/snmp_alarm.c:
+
+   Made sure that snmp_alarm.c can be compiled again with C89
+   compilers: for C89
+   it is required that initializers are constant expressions.
+
+2010-01-03 16:28  magfr
+
+   *  agent/mibgroup/tcp-mib/data_access/tcpConn_common.c,   
+      agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c,   
+      agent/mibgroup/tcp-mib/data_access/tcpConn_solaris2.c:
+
+   Rename netsnmp_arch_tcpconn_delete to
+   netsnmp_arch_tcpconn_entry_delete in order to be consistent with
+   the header file and all the other functions in the module.
+
+2010-01-03 16:26  magfr
+
+   *  agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h,  
+       include/net-snmp/data_access/ip_scalars.h,   
+      include/net-snmp/data_access/systemstats.h:
+
+   Add missing declarations.
+
+2009-12-30 12:49  bvassche
+
+   *  include/net-snmp/library/tools.h,   
+      include/net-snmp/library/types.h:
+
+   Follow-up for r17933: fixed the issue that including the header
+   file
+   <net-snmp/library/types.h> from <net-snmp/library/tools.h>
+   triggers
+   compiler errors during the configure process (complaints about
+   <netsnmp/net-snmp-config.h> not being included before
+   <net-snmp/types.h>).
+   Note: this does not solve the underlying problem that MIB code
+   must not
+   include the header file <net-snmp/types.h> because doing so would
+   trigger a
+   circular dependency during the configure step (MIB code is
+   compiled during
+   the configure step, while the configure step generates
+   <netsnmp/net-snmp-config.h> and <net-snmp/types.h> needs
+   <netsnmp/net-snmp-config.h>).
+
+2009-12-30 11:48  bvassche
+
+   * apps, man:
+
+   Follow-up for r17919: updated Subversion ignore lists.
+
+2009-12-28 18:03  bvassche
+
+   * agent/agent_index.c:
+
+   Fixed a past-end-of-buffer read. Found this by analyzing compiler
+   warnings.
+   Note: the affected function, register_string_index(), isn't
+   called from
+   anywhere inside the Net-SNMP project itself.
+
 2009-12-23 09:49  jsafranek
 
    *  agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
@@ -8590,6 +22506,49 @@
    Returning structure with pointers inside is not the best thing to
    do.
 
+2009-12-22 16:05  bvassche
+
+   *  include/net-snmp/library/read_config.h, snmplib/read_config.c,   
+      snmplib/snmpusm.c, snmplib/vacm.c:
+
+   Fixed several past-end-of-buffer reads.
+
+2009-12-22 12:02  bvassche
+
+   *  agent/mibgroup/Rmon/agutil.c, agent/mibgroup/agentx/client.c,   
+      agent/mibgroup/agentx/master_admin.c,   
+      agent/mibgroup/host/hr_swinst.c,   
+      agent/mibgroup/if-mib/data_access/interface_openbsd.c,   
+      agent/mibgroup/if-mib/data_access/interface_sysctl.c,   
+      agent/mibgroup/mibII/interfaces.c, agent/snmp_agent.c,   
+      agent/snmp_vars.c, include/net-snmp/agent/snmp_agent.h,   
+      include/net-snmp/library/system.h,   
+      include/net-snmp/library/tools.h,   
+      include/net-snmp/library/types.h, man/netsnmp_util.3,   
+      snmplib/system.c, snmplib/tools.c, win32/libsnmp_dll/libsnmp.def, 
+        win32/libsnmp_dll/libsnmp.def.in:
+
+   Reverted the backwards-incompatible changes of r17913:
+   - Restored the definition of the DIFFTIMEVAL() macro.
+   - Restored the definitions of the functions
+   calculate_time_diff(),
+   uatime_ready(), marker_tticks() and timeval_tticks().
+   - starttime is again a global variable instead of a static one.
+   Also implemented the following changes:
+   - Moved the marker_t typedef from net-snmp/library/tools.h to
+   net-snmp/library/types.h.
+   - Added a new typedef, const_marker_t.
+   - For those atime_*() / uatime_*() / *_tticks() functions that do
+   not change
+   their arguments, declared these arguments const_marker_t instead
+   of marker_t.
+   - Renamed netsnmp_get_starttime() and netsnmp_set_starttime() to
+   netsnmp_get_agent_starttime() and netsnmp_set_agent_starttime()
+   respectively. Moved these functions from tools.c to system.c.
+   - Removed the function atime_hsubtract() (was introduced in
+   r17913) and
+   introduced a new function, netsnmp_set_agent_uptime().
+
 2009-12-22 07:59  bvassche
 
    * snmplib/read_config.c:
@@ -8636,6 +22595,30 @@
    triggered by
    parsing the persistentDir keyword.
 
+2009-12-21 13:32  bvassche
+
+   * agent/helpers/table_dataset.c:
+
+   Applied a slightly modified version of patch #2901122. Changes:
+   - New feature: specifying ASN type SNMP_NOSUCHINSTANCE as the
+   third argument
+   of netsnmp_set_row_column() will cause an SNMP GetRequest /
+   GetNextRequest to
+   return the error code noSuchInstance (SNMPv2) or noSuchName
+   (SNMPv1). This
+   makes it possible to have a cached table with one or more
+   "holes".
+   - Performance optimization: do not free() / malloc() the memory
+   for storing
+   the cached value if the value has not been modified.
+   - Performance optimization: do not free() / malloc() the memory
+   for storing
+   the cached value if the length of the value has not been
+   modified.
+   - Performance optimization: if the size of the cached value
+   shrunk, use
+   realloc() instead of free() and malloc().
+
 2009-12-21 12:23  bvassche
 
    * snmplib/read_config.c:
@@ -8702,12 +22685,119 @@
    varbind included in traps generated by Net-SNMP itself (e.g.
    coldStart)."
 
-2009-12-21 10:50  bvassche
+2009-12-21 10:09  bvassche
 
-   * README.win32:
+   *  agent/agent_trap.c, man/netsnmp_agent_trap.3,   
+      snmplib/snmp_alarm.c:
 
-   Backported r17901 (spelling fixes and hrSystemUptime
-   documentation).
+   Spelling fix: replaced all occurrences of 'specifc' by
+   'specific'.
+
+2009-12-21 10:06  bvassche
+
+   * snmplib/snmp_alarm.c:
+
+   Refactoring: eliminated duplicated code by reimplementing
+   snmp_alarm_register() using snmp_alarm_register_hr(). Neither the
+   Net-SNMP API nor the behavior of snmp_alarm_register() has been
+   changed.
+
+2009-12-20 11:10  magfr
+
+   *  apps/Makefile.in, apps/agentxtrap.c, man/Makefile.in,   
+      man/agentxtrap.1.def:
+
+   NEWS: apps: Add command to send AgentX notify requests to a
+   master agent.
+
+2009-12-17 16:44  bvassche
+
+   * win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
+
+   Follow-up for r17917 -- builds again on Windows systems.
+
+2009-12-17 16:03  bvassche
+
+   *  agent/mibgroup/utilities/iquery.c,   
+      include/net-snmp/library/snmp_client.h, snmplib/snmp_client.c:
+
+   Follow-up for r17903 / patch 2911323 "Fix agent lockup when
+   monitoring
+   AgentX-delegated information" (submitted by myself). That patch
+   did not only
+   fix the lockup but also made snmpd print a warning during startup
+   when
+   iquerySecName was not configured. This warning was printed even
+   when no
+   internal queries were performed. This warning is now only printed
+   just before
+   the first internal query is made (during the first call of
+   netsnmp_query_get_default_session() instead of during creation of
+   the internal
+   session).
+
+2009-12-17 13:55  bvassche
+
+   * agent/mibgroup/Rmon/agutil.c:
+
+   RMON MIB source code compiles again -- should have been included
+   in r17913.
+
+2009-12-17 13:18  bvassche
+
+   * agent/mibgroup/Rmon/agutil.c, snmplib/system.c:
+
+   Modified the implementation of calculate_sectime_diff() and
+   AGUTIL_sys_up_time() such that these functions normalize the
+   tv_usec field of
+   struct timeval properly. Note: this source code modification does
+   not affect
+   the return value of the aforementioned two functions.
+
+2009-12-17 13:11  bvassche
+
+   * man/netsnmp_util.3:
+
+   Removed documentation of the DIFFTIMEVAL() macro -- should have
+   been included
+   in r17913.
+
+2009-12-17 13:05  bvassche
+
+   *  agent/agent_trap.c, agent/mibgroup/agentx/client.c,   
+      agent/mibgroup/agentx/master_admin.c,   
+      agent/mibgroup/agentx/subagent.c,   
+      agent/mibgroup/host/hr_swinst.c,   
+      agent/mibgroup/if-mib/data_access/interface_openbsd.c,   
+      agent/mibgroup/if-mib/data_access/interface_sysctl.c,   
+      agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/snmpv3/snmpEngine.c, agent/snmp_agent.c,   
+      agent/snmp_vars.c, include/net-snmp/library/system.h,   
+      include/net-snmp/library/tools.h, man/netsnmp_util.3,   
+      snmplib/snmp_alarm.c, snmplib/system.c, snmplib/tools.c,   
+      win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
+
+   Converted starttime from a global variable into a static variable
+   and applied the following changes:
+   - Added two new macros: NETSNMP_TIMERADD() and
+   NETSNMP_TIMERSUB().
+   - Added three new functions: netsnmp_get_starttime(),
+   netsnmp_set_starttime() and atime_hsubtract().
+   - Replaced gettimeofday() + calculate_time_diff() calls by a call
+   to netsnmp_get_agent_uptime().
+   - Removed the macro DIFFTIMEVAL() because it was not used inside
+   the Net-SNMP project and because it contained a bug.
+   - Removed the functions calculate_time_diff(), uatime_ready(),
+   marker_tticks() and timeval_tticks().
+
+2009-12-17 12:44  bvassche
+
+   *  agent/mibgroup/agentx/master_admin.c,   
+      win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
+
+   Bug fix: according to RFC 2571 the unit of snmpEngineTime is one
+   second,
+   not one hundredth of a second.
 
 2009-12-17 10:03  dts12
 
@@ -8715,6 +22805,55 @@
 
    Fix typo.
 
+2009-12-16 12:30  bvassche
+
+   *  snmplib/tools.c, win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   Windows-only bug fixes:
+   - Fixed the strange build errors that occurred when compiling
+   libnetsnmp as a DLL and when either <stdlib.h> or <string.h> was
+   included after <net-snmp-config.h> instead of before.
+   - For debug builds with Microsoft Visual Studio, fixed the
+   mismatches between the _malloc_dbg() call invoked by strdup() and
+   free()-ing strdup()-ed memory by including the <crtdbg.h> header
+   in tools.c and by defining the preprocessor symbol
+   _CRTDBG_MAP_ALLOC. Detected via the memory checker included in
+   Intel Parallel Studio.
+
+2009-12-14 17:23  tanders
+
+   *  perl/agent/agent.xs, snmplib/snmpTCPDomain.c,   
+      snmplib/snmpUDPDomain.c:
+
+   sync definition of netsnmp_udp_addr_pair in Perl with the changes
+   in
+   r17855 and r17908
+
+2009-12-14 13:55  jsafranek
+
+   * snmplib/snmpTCPDomain.c:
+
+   Fix TCP transport broken by rev. 17855 - copies of
+   netsnmp_udp_addr_pair in snmpTCPDomain.c and snmpUDPDomain.c must
+   be the same.
+
+2009-12-11 14:43  hardaker
+
+   * apps/snmpusm.c, man/snmpusm.1.def:
+
+   CHANGES: snmpusm: patch from Martin Bjorklund to add a -Cw option
+   to use createAndWait for agents that are strict about not
+   allowing a row to be set to active until the authentication
+   password has been changed; plus white-space clean up, manual
+   additions and help output modifications by hardaker
+
+2009-12-11 14:35  bvassche
+
+   * agent/mibgroup/if-mib/data_access/interface_linux.c:
+
+   Fixed a compiler warning about a format specifier mismatch.
+
 2009-12-11 14:06  bvassche
 
    * README.win32, agent/mibgroup/winExtDLL.c:
@@ -8744,12 +22883,20 @@
    CHANGES: snmpd: PATCHES: 2911323: Fix agent lockup when
    monitoring AgentX-delegated information
 
-2009-12-10 14:53  dts12
+2009-12-10 13:59  bvassche
 
-   * agent/mibgroup/agentx/subagent.c:
+   * README.win32:
 
-   Backport of SVN revisions 17870/17894,
-   to handle const warnings.
+   Changes:
+   - Added information about Microsoft's implementation of
+   hrSystemUptime.0.
+   - Fixed a few typos.
+
+2009-12-10 13:01  bvassche
+
+   * agent/agent_registry.c:
+
+   Added missing newline in a logging statement.
 
 2009-12-10 12:54  bvassche
 
@@ -8764,6 +22911,61 @@
    has been
    detected.
 
+2009-12-10 12:37  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   OIDs in debug messages generated by the winExtDLL module are now
+   printed in
+   symbolic form instead of numeric form.
+
+2009-12-10 08:57  bvassche
+
+   * win32/win32sdk.dsw:
+
+   Project dependencies should now really be correct. Should have
+   been included
+   in r17873.
+
+2009-12-10 08:41  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Changes (only source code comments have been changed):
+   - Removed a note that contradicted the instructions in
+   README.win32.
+   - Updated build instructions after the addition of the file
+   win32/Snmp-winExtDLL.h in r17830.
+
+2009-12-10 08:17  bvassche
+
+   * apps/snmpdf.c, apps/snmpstatus.c:
+
+   Made file header comments consistent with the descriptions in the
+   respective man pages.
+
+2009-12-10 03:04  magfr
+
+   * agent/mibgroup/agentx/subagent.c:
+
+   Made sure that agent_sysOR_callback won't trigger a warning when
+   registered as a callback. Change agentx_reopen_sysORTable in
+   order to avoid warnings of const removal.
+
+2009-12-09 15:05  bvassche
+
+   * snmplib/snmp_logging.c:
+
+   - Moved the declaration of the variable 'newline' inside the
+   function
+   log_handler_stdouterr() because this variable is only used by
+   that function.
+   - Documented the purpose of the variable 'newline'.
+   - Bug fix: made sure that the call log_handler_stdouterr() does
+   not trigger an
+   invalid memory access (str[-1]) when an empty string is passed to
+   this function.
+
 2009-12-09 14:37  jsafranek
 
    *  agent/mibgroup/ip-mib/data_access/arp_linux.c,   
@@ -8776,6 +22978,60 @@
    bytes. Snmpd on Linux was not able to parse /proc/net/arp then
    and produced ugly 'ioctl 35123 returned -1' to log.
 
+2009-12-09 12:27  bvassche
+
+   * README.win32:
+
+   Added missing -Lo in a command line example.
+
+2009-12-09 12:16  bvassche
+
+   * win32/snmpdsdk/snmpd.dsp:
+
+   Added snmpapi.lib to the linker input list of snmpd.exe.
+   Apparently Visual
+   Studio 2005 and 2008 need this library in the linker input list
+   when linking
+   the exe, while for Visual Studio 6 it is sufficient when this
+   library is
+   present in the linker input list of netsnmpmibs.lib.
+
+2009-12-09 08:45  bvassche
+
+   * README.win32:
+
+   Updated README.win32: because of r17884 and r17873, the build
+   process became simpler.
+
+2009-12-09 08:22  bvassche
+
+   * win32/libsnmp_dll/libsnmp.def.in:
+
+   Export strtoull -- should have been included in r17886.
+
+2009-12-09 08:21  bvassche
+
+   * README.win32:
+
+   Reverted r17700 for README.win32: because of r17886, modifying
+   the
+   strtoull line in win32/libsnmp_dll/libsnmp.def is no longer
+   necessary.
+
+2009-12-09 08:12  bvassche
+
+   *  win32/libsnmp_dll/libsnmp.def, win32/net-snmp/net-snmp-config.h,  
+       win32/net-snmp/net-snmp-config.h.in:
+
+   Windows: switched from _strtoui64() to strtoull() for Microsoft
+   Visual Studio
+   2002 and later because the former is not fully POSIX compliant.
+   The strtoull()
+   unit test produces the following output for _strtoui64() with
+   MSVC 2008:
+   test 14 failed (input "0x"): expected end 1, got end 0
+   test 16 failed (input "0x"): expected end 1, got end 0
+
 2009-12-08 21:54  magfr
 
    * agent/mibgroup/util_funcs.c, snmplib/system.c:
@@ -8783,6 +23039,167 @@
    CHANGES: snmplib, snmpd: Make sure that a mask is given to open
    when O_CREAT is specified
 
+2009-12-08 16:20  bvassche
+
+   * win32/win32.dsw:
+
+   Made dependencies between exe's and lib's explicit such that
+   Visual
+   Studio can figure out the proper build order instead of the user
+   having
+   to figure this out.
+
+2009-12-08 15:47  bvassche
+
+   * apps/snmptable.c:
+
+   Builds again on Unix systems (fixed a typo introduced in r17881).
+
+2009-12-08 15:37  bvassche
+
+   * win32/snmpnetstat/snmpnetstat.dsp:
+
+   Added missing #define HAVE_WIN32_PLATFORM_SDK. Without this
+   define the Microsoft
+   Visual Studio compiler complains about a benign redefinition of
+   type socklen_t.
+
+2009-12-08 15:28  bvassche
+
+   *  agent/mibgroup/disman/traceroute/traceRouteCtlTable.c,   
+      agent/snmpd.c, apps/snmptable.c, apps/snmptrapd.c,   
+      include/net-snmp/library/snmp_logging.h, snmplib/snmp_logging.c:
+
+   Cleaned up the code for setting line buffering:
+   - Instead of having calls to setvbuf() in multiple files, there
+   is now one call
+   to setvbuf() from the new function netsnmp_set_filelog. These
+   source files
+   are: snmplib/snmp_logging.c, agent/snmpd.c, apps/snmptrapd.c,
+   apps/snmptable.c
+   and agent\mibgroup\disman\traceroute\traceRouteCtlTable.c.
+   - Using -Lo / -Le does now enable line buffering for stdout /
+   stderr respectively.
+   - Removed code in snmpd.c and snmptrapd.c for setting line
+   buffering on stdout
+   since setting line buffering on stdout is now triggered by the
+   command-line
+   option -Lo.
+   Bugs fixed:
+   - Line buffering mode is now also set for stderr when the
+   command-line option
+   -Le has been specified.
+   - Line buffering mode is now set correctly for stdout on Windows
+   systems
+   (command-line option -Lo).
+
+2009-12-08 12:32  bvassche
+
+   * agent/mibgroup/mibII/icmp.c:
+
+   Fixed a compiler warning about local variables that were defined
+   but
+   not used by only enabling the local variable definitions on the
+   platform that uses these variables (Linux).
+
+2009-12-08 12:26  bvassche
+
+   * agent/mibgroup/ucd-snmp/extensible.c:
+
+   Added #include "mibgroup/util_funcs.h". Fixes a compiler warning.
+
+2009-12-08 12:25  bvassche
+
+   * apps/snmpnetstat/main.c:
+
+   Include the gethostent() / sethostent() declarations before using
+   these
+   functions. Fixes a compiler warning on Windows systems.
+
+2009-12-08 12:11  bvassche
+
+   * apps/snmptrapd_handlers.c:
+
+   Fixed an inconsistency (which is allowed by the ANSI C standard)
+   between
+   function declaration and function definition of
+   netsnmp_add_global_traphandler and
+   netsnmp_add_default_traphandler such
+   that the Microsoft Visual Studio compiler does no longer complain
+   about
+   this.
+
+2009-12-08 12:08  bvassche
+
+   * snmplib/snmp_service.c:
+
+   Fixed a compiler warning: made sure that the compiler does not
+   complain about implicitly casting away constness.
+
+2009-12-08 12:07  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Only compile the winExtDLL source code if the preprocessor macro
+   USING_WINEXTDLL_MODULE has been defined.
+
+2009-12-08 12:03  bvassche
+
+   * win32/libsnmp/libsnmp.dsp:
+
+   Added missing #define HAVE_WIN32_PLATFORM_SDK.
+
+2009-12-08 12:01  bvassche
+
+   * win32/win32sdk.dsw:
+
+   Made dependencies between exe's and lib's explicit such that
+   Visual
+   Studio can figure out the proper build order instead of the user
+   having
+   to figure out the build order.
+
+2009-12-08 09:46  bvassche
+
+   *  win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   Windows / Microsoft Visual Studio: disabled the compiler warning
+   about
+   signed/unsigned mismatches (4018) because this warning does not
+   yield
+   any useful information.
+
+2009-12-08 09:17  bvassche
+
+   * win32/net-snmp/net-snmp-config.h.in:
+
+   Follow-up for r17639 (patch 2780411 -- fix compiler warnings):
+   applied
+   this patch to net-snmp-config.h.in too such that
+   net-snmp-config.h and
+   net-snmp-config.h.in match again.
+
+2009-12-08 08:16  bvassche
+
+   * agent/mibgroup/agentx/subagent.c:
+
+   Made sure that agentx_sysOR_callback() does not trigger a
+   compiler
+   warning when the third argument passed to this function has been
+   declared const.
+
+2009-12-08 08:14  bvassche
+
+   * include/net-snmp/library/system.h:
+
+   Changed the return type of strtoull() from 'unsigned long long'
+   (which
+   is not valid C89) to 'uint64_t' (declared in
+   <net-snmp/net-snmp-config.h>).
+   This change makes the Net-SNMP source code compile again with
+   MSVC 6.0.
+
 2009-12-07 10:46  dts12
 
    * apps/snmptable.c:
@@ -8790,6 +23207,33 @@
    Tweak missing subidentifier processing to be more type-aware.
    (An issue with AIX, at least)
 
+2009-12-06 18:38  magfr
+
+   *  snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c,   
+      snmplib/snmpUnixDomain.c:
+
+   CHANGES: Make the lists of com2Sec*Entries static
+
+2009-12-06 18:34  magfr
+
+   *  snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c,   
+      snmplib/snmpUnixDomain.c:
+
+   Make the iterator variable in netsnmp_*_getSecName const
+
+2009-12-06 18:29  magfr
+
+   *  agent/mibgroup/mibII/vacm_conf.c,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h,   
+      include/net-snmp/library/snmpUnixDomain.h,   
+      snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c,   
+      snmplib/snmpUnixDomain.c:
+
+   CHANGES: Change the types of the return values of
+   netsnmp_*_getSecName from char* to const char* since they point
+   into internal structures.
+
 2009-12-05 20:19  tanders
 
    * include/net-snmp/library/system.h:
@@ -8804,12 +23248,6 @@
    compile with
    NETSNMP_CLEAN_NAMESPACE
 
-2009-12-05 17:19  tanders
-
-   * agent/mibgroup/disman/schedule/schedCore.c:
-
-   apply r17854 build fix to all affected branches
-
 2009-12-02 15:39  jsafranek
 
    *  agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c,   
@@ -8856,6 +23294,36 @@
    CHANGES: agent: BUGS: 2841008: Protect against crash following
    failed AgentX response
 
+2009-12-01 07:34  jsafranek
+
+   *  include/net-snmp/library/snmpUDPDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpUDPDomain.c:
+
+   CHANGES: snmplib: Fix responding to broadcast requests.
+   UDP responses are sent with source IP address which was
+   destination of
+   appropriate requests (implemented in SVN rev. 15215). But if the
+   destination
+   of a request is broadcast IP address, the request was sent with
+   the broadcast
+   address as source. sendmsg() on Linux does not support this and
+   returns error
+   -> response is not sent. In order to send responses from the same
+   interface,
+   interface index of the appropriate interface must be used.
+
+2009-12-01 00:29  magfr
+
+   * agent/mibgroup/disman/schedule/schedCore.c:
+
+   Make it possible to actually compile after 17852.
+
+2009-12-01 00:24  magfr
+
+   * agent/mibgroup/ucd-snmp/proc.c:
+
+   Make it possible to actually compile after 17842.
+
 2009-11-30 16:55  dts12
 
    * agent/mibgroup/disman/schedule/schedCore.c:
@@ -8929,6 +23397,16 @@
    handling.
    Patch supplied by Gowtham Thommandra.
 
+2009-11-30 14:32  dts12
+
+   * agent/mibgroup/ucd-snmp/proc.c, man/snmpd.conf.5.def:
+
+   CHANGES: agent: PATCH: 2883092: Support monitoring processes that
+   should not be running.
+   Patch provided by Christian (cg75).
+   
+   Qn: Should this functionality be back-ported to earlier lines?
+
 2009-11-30 14:12  dts12
 
    * agent/mibgroup/agentx/subagent.c:
@@ -8950,6 +23428,139 @@
 
    Remove executable attribute from source files.
 
+2009-11-25 20:35  magfr
+
+   *  agent/agent_trap.c, agent/mibgroup/agentx/master_admin.c,   
+      agent/mibgroup/disman/event/mteEvent.c,   
+      agent/mibgroup/notification/snmpNotifyTable.c,   
+      local/mib2c.notify.conf:
+
+   CHANGES: snmpd: Make all the oids and oid lengths in agent_trap.c
+   const and use them from everywhere.
+
+2009-11-25 20:27  magfr
+
+   * snmplib/Makefile.in:
+
+   CHANGES: snmplib: Install library/oid.h. Thanks to "Tomasz Lis"
+   who spotted the bug.
+
+2009-11-25 09:47  bvassche
+
+   * include/net-snmp/agent/instance.h:
+
+   Comment-only change: changed the name in the file header from
+   testhandler.h
+   to instance.h such that it now matches the filename.
+
+2009-11-24 07:49  magfr
+
+   * agent/agent_trap.c:
+
+   Remove unnecessary cast
+
+2009-11-23 07:07  magfr
+
+   * agent/agent_trap.c, include/net-snmp/agent/agent_trap.h:
+
+   CHANGES: snmpd: Make the enterprise argument of
+   netsnmp_send_traps and send_enterprise_trap_vars const
+
+2009-11-23 07:02  magfr
+
+   * include/net-snmp/library/snmp_client.h, snmplib/snmp_client.c:
+
+   CHANGES: snmplib: Make the name argument to find_varbind_in_list
+   const
+
+2009-11-22 23:25  magfr
+
+   * agent/mibgroup/Rmon/event.c, agent/mibgroup/smux/smux.h:
+
+   Remove some local redeclarations of functions
+
+2009-11-22 01:03  magfr
+
+   *  win32/config.h.borland, win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   CHANGES: building, Win32: Remove a few unused configure symbols
+
+2009-11-21 08:01  bvassche
+
+   * win32/Snmp-winExtDLL.h, win32/snmp-winextdll.h:
+
+   Replaced an accidentally committed file by the proper contents.
+
+2009-11-20 16:29  bvassche
+
+   * win32/net-snmp/net-snmp-config.h:
+
+   Reverted accidentally merged changes.
+
+2009-11-20 16:26  bvassche
+
+   *  win32/lib, win32/net-snmp/net-snmp-config.h,   
+      win32/snmp-winextdll.h:
+
+   Updated Subversion ignore list.
+
+2009-11-20 16:18  bvassche
+
+   *  agent/helpers/table_iterator.c,   
+      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.c,
+         agent/mibgroup/examples/netSnmpHostsTable.c,   
+      agent/mibgroup/examples/netSnmpHostsTable_access.c,   
+      agent/mibgroup/if-mib/ifTable/ifTable_interface.c,   
+      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c,   
+      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c,
+        
+      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c,
+        
+      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c,  
+      
+      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c,  
+      
+      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.c,
+         agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/mibII/ipCidrRouteTable.c,   
+      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c,
+        
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
+        
+      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_interface.c,
+        
+      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c,
+        
+      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c,
+        
+      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c,
+         local/mib2c-conf.d/mfd-interface.m2c,   
+      local/mib2c.access_functions.conf,   
+      local/mib2c.iterate_access.conf, snmplib/read_config.c:
+
+   Spelling fix in C source code comments: replaced 'retrival' by
+   'retrieval'.
+
+2009-11-20 16:15  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Fixed a naming inconsistency: replaced two occurrences winExtDll
+   by winExtDLL in source code comments.
+
 2009-11-19 22:52  magfr
 
    *  agent/helpers/watcher.c, agent/mibgroup/mibII/system_mib.c,   
@@ -8967,6 +23578,23 @@
    bits' in IP-MIB and TCP-MIB
    The counters, which grow fast are now cut to 32bits.
 
+2009-11-12 08:26  magfr
+
+   * agent/snmpd.c:
+
+   Use big printf's instead of many small ones to save a few hundred
+   bytes on the final executable size.
+
+2009-11-12 02:24  magfr
+
+   *  configure, configure.d/config_os_functions,   
+      include/net-snmp/net-snmp-config.h.in, snmplib/Makefile.in,   
+      snmplib/strlcpy.c, snmplib/strtok_r.c, snmplib/strtol.c,   
+      snmplib/strtoul.c, snmplib/strtoull.c:
+
+   CHANGES: building: Use AC_REPLACE_FUNCS to handle code that is
+   missing on some platforms.
+
 2009-11-11 09:00  dts12
 
    * local/mib2c.iterate.conf, local/mib2c.table_data.conf:
@@ -8975,6 +23603,55 @@
    Return success/failure values from cache load routine.
    Problem identified by Xuan.
 
+2009-10-30 09:51  magfr
+
+   *  include/net-snmp/library/asn1.h, include/net-snmp/library/oid.h,  
+       include/net-snmp/types.h:
+
+   NEWS: snmplib: Revert 17808, instead factor out the declaration
+   of oid to it's own file and include that file from both types.h
+   and asn1.h
+
+2009-10-30 08:28  magfr
+
+   *  agent/helpers/table.c,   
+      agent/mibgroup/if-mib/data_access/interface.c,   
+      agent/mibgroup/ip-mib/data_access/ipaddress_common.c,   
+      agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
+      agent/mibgroup/struct.h, agent/mibgroup/ucd-snmp/memory.c,   
+      apps/snmpnetstat/if.c, configure,   
+      configure.d/config_os_functions,   
+      include/net-snmp/net-snmp-config.h.in, include/net-snmp/types.h,  
+       snmplib/mib.c, snmplib/oid_stash.c, snmplib/read_config.c,   
+      snmplib/snmp_debug.c, snmplib/snmpusm.c,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   CHANGES: snmplib, snmpd, snmpnetstat: Add correct size prefixes
+   when printing variables of type oid.
+
+2009-10-30 08:07  magfr
+
+   * include/net-snmp/types.h:
+
+   CHANGES: snmplib: Change oid to be a 32-bit type on ILP64 and
+   LP64 platforms.
+
+2009-10-30 08:05  magfr
+
+   * include/net-snmp/library/asn1.h:
+
+   NEWS: snmplib: Remove the oid typedef from
+   <net-snmp/library/asn1.h>. It is still present in
+   <net-snmp/types.h>, use that file.
+
+2009-10-28 16:48  hardaker
+
+   * agent/snmp_vars.c:
+
+   don't require subagent_init() if not only building master agent
+   code
+
 2009-10-27 06:44  magfr
 
    *  local/mib2c-conf.d/generic-table-indexes-to-oid.m2i,   
@@ -8985,6 +23662,19 @@
 
    CHANGES: mib2c: Remove unnecessary casts to u_char*
 
+2009-10-14 23:12  magfr
+
+   * apps/encode_keychange.c, snmplib/scapi.c:
+
+   CHANGES: apps, snmplib: PATCH: 2835577: identified by "Bart Van
+   Assche": Replace SNMP_ZERO of arrays with a memset.
+
+2009-10-12 20:28  magfr
+
+   * snmplib/parse.c:
+
+   Lessen the scope of the rp variable to the smallest possible one.
+
 2009-10-09 12:38  jsafranek
 
    * snmplib/snmp_client.c:
@@ -9052,16 +23742,24 @@
    information crashing the agent.
    Problem reported by Inyaven Sakarai.
 
-2009-09-24 03:49  hardaker
+2009-09-27 14:59  alex_b
 
-   * .:
+   *  win32/dist/README.build.win32.txt, win32/dist/build-binary.pl,   
+      win32/dist/scripts/mandir2html:
 
-   5.5 branched
+   Win32: Binary build instructions and script updates.
 
+2009-09-24 00:08  hardaker
 
-----------------------------------------------------------------------
+   * NEWS:
 
-Changes: V5.4 -> V5.5
+   version update
+
+2009-09-23 23:54  hardaker
+
+   * ChangeLog:
+
+   version update
 
 2009-09-23 23:42  hardaker
 
@@ -9142,6 +23840,18 @@
 
    fix typos
 
+2009-09-14 22:49  hardaker
+
+   * CHANGES:
+
+   version update
+
+2009-09-14 22:48  hardaker
+
+   * ChangeLog:
+
+   version update
+
 2009-09-14 22:39  hardaker
 
    *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
@@ -9351,61 +24061,6 @@
 
    Version number update
 
-2009-08-26 17:38  hardaker
-
-   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
-      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
-      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
-      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
-      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
-      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
-      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
-      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
-      man/netsnmp_handler.3, man/netsnmp_instance.3,   
-      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
-      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
-      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
-      man/netsnmp_multiplexer.3,   
-      man/netsnmp_netsnmp_agent_request_info_s.3,   
-      man/netsnmp_netsnmp_column_info_t.3,   
-      man/netsnmp_netsnmp_data_list_s.3,   
-      man/netsnmp_netsnmp_handler_registration_s.3,   
-      man/netsnmp_netsnmp_iterator_info_s.3,   
-      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
-      man/netsnmp_netsnmp_mib_handler_methods.3,   
-      man/netsnmp_netsnmp_mib_handler_s.3,   
-      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
-      man/netsnmp_netsnmp_request_info_s.3,   
-      man/netsnmp_netsnmp_table_registration_info_s.3,   
-      man/netsnmp_netsnmp_table_request_info_s.3,   
-      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
-      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
-      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
-      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
-      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
-      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
-      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
-      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
-      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
-      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
-      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
-      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
-      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
-      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
-      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
-      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
-      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
-      man/netsnmp_watcher.3:
-
-   documentation update
-
-2009-08-26 17:29  hardaker
-
-   *  FAQ, README, configure, configure.ac, dist/Makefile,   
-      dist/net-snmp.spec:
-
-   Version number update
-
 2009-08-26 17:28  hardaker
 
    * dist/makerelease.xml:
@@ -9528,66 +24183,6 @@
 
    documentation update
 
-2009-08-10 23:10  hardaker
-
-   * dist/makerelease.xml:
-
-   fix typo in svn2cl line
-
-2009-08-10 23:05  hardaker
-
-   * snmplib/Makefile.depend:
-
-   make depend
-
-2009-08-10 21:32  hardaker
-
-   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
-      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
-      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
-      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
-      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
-      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
-      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
-      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
-      man/netsnmp_handler.3, man/netsnmp_instance.3,   
-      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
-      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
-      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
-      man/netsnmp_multiplexer.3,   
-      man/netsnmp_netsnmp_agent_request_info_s.3,   
-      man/netsnmp_netsnmp_column_info_t.3,   
-      man/netsnmp_netsnmp_data_list_s.3,   
-      man/netsnmp_netsnmp_handler_registration_s.3,   
-      man/netsnmp_netsnmp_iterator_info_s.3,   
-      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
-      man/netsnmp_netsnmp_mib_handler_methods.3,   
-      man/netsnmp_netsnmp_mib_handler_s.3,   
-      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
-      man/netsnmp_netsnmp_request_info_s.3,   
-      man/netsnmp_netsnmp_table_registration_info_s.3,   
-      man/netsnmp_netsnmp_table_request_info_s.3,   
-      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
-      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
-      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
-      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
-      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
-      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
-      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
-      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
-      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
-      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
-      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
-      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
-      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
-      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
-      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
-      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
-      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
-      man/netsnmp_watcher.3:
-
-   documentation update
-
 2009-08-10 21:21  hardaker
 
    *  dist/makerelease.xml, man/pdu_api.3, man/session_api.3,   
@@ -10052,6 +24647,13603 @@
 
    Updates to AGENT section.
 
+
+
+----------------------------------------------------------------------
+
+Changes: V5.6.rc1 -> V5.6.rc2
+
+2010-09-04 01:57  hardaker
+
+   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
+      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
+
+   make depend
+
+2010-09-04 00:59  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
+2010-09-03 22:14  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   fix tlstcp parsing of host names.
+
+2010-09-03 22:13  hardaker
+
+   * agent/mibgroup/host/data_access/swrun_procfs_status.c:
+
+   check the return code of fgets and fopen before inserting the
+   results.
+
+2010-09-03 22:12  hardaker
+
+   * snmplib/snmp_alarm.c:
+
+   Patch from tanders to fix broken alarms after the previous
+   re-entrant patch
+
+2010-09-03 22:05  hardaker
+
+   * snmplib/transports/snmpUnixDomain.c:
+
+   CHANGES: snmplib: patch 3058645: from jorisesaturnus: modified
+   version of the patch to use MSG_DONTWAIT for the unix domain
+   socket
+
+2010-09-03 21:56  hardaker
+
+   * agent/mibgroup/util_funcs/get_pid_from_inode.c:
+
+   CHANGES: snmpd: PATCH: 3058140: from takevos: check that inode is
+   non-zero
+
+2010-09-03 21:50  hardaker
+
+   * agent/mibgroup/util_funcs/get_pid_from_inode.c:
+
+   CHANGES: snmpd: PATCH: 3053428: from takevos: fix
+   get_pid_from_inode when the inode is not found.
+
+2010-09-03 20:20  hardaker
+
+   * snmplib/snmp_api.c:
+
+   remove the duplicate return before the error codes get set.
+
+2010-09-01 18:04  magfr
+
+   * agent/mibgroup/hardware/cpu/cpu.c:
+
+   CHANGES: snmpd: Log before returning.
+
+2010-09-01 02:43  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   TLS send_notify on closure and some memory clean-up patches
+
+2010-08-31 17:58  hardaker
+
+   * snmplib/snmp_api.c:
+
+   Only print the security/context EngineID mismatch note under USM
+
+2010-08-25 15:13  rstory
+
+   * CHANGES:
+
+   remove reference to reverted patch 3042765
+
+2010-08-25 15:13  rstory
+
+   * acconfig.h:
+
+   add note on where to find content used to generate
+   net-snmp-config.h.in
+
+2010-08-25 02:45  rstory
+
+   * snmplib/snmp_client.c:
+
+   revert r19342, patch 3042765, which broke client tcp disconnect
+   handling
+
+2010-08-25 02:45  rstory
+
+   * snmplib/cert_util.c:
+
+   fix more code broken by 'compiler warning fix' in r19179
+
+2010-08-25 02:45  rstory
+
+   * testing/fulltests/tls/STlsUsers:
+
+   check for conf errors after agent startup; enable logTimestamp;
+   make sure
+   all cert name/tags are unique
+
+2010-08-24 21:04  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   fix error string to discuss the right failed openssl new
+   invocation
+
+2010-08-24 05:37  magfr
+
+   * apps/snmpusm.c:
+
+   CHANGES: snmpusm: Correct ifdefs, remove dead variables.
+
+	
+----------------------------------------------------------------------
+
+Changes: V5.6.pre3 -> V5.6.rc1
+
+2010-08-19 21:11  hardaker
+
+   * agent/Makefile.depend, agent/mibgroup/Makefile.depend:
+
+   make depend
+
+2010-08-19 21:10  hardaker
+
+   * include/net-snmp/system/nto-qnx6.h:
+
+   // -> C comments
+
+2010-08-19 20:36  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
+2010-08-19 20:14  hardaker
+
+   * snmplib/snmp_client.c:
+
+   CHANGES: snmplib: PATCH 3042765: from mehaf: make
+   snmp_synch_response_cb() re-entrant
+
+2010-08-19 20:14  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   turn off cookie exchanges until a complete code set can be
+   written to support it based on the required function callbacks
+
+2010-08-17 18:31  rstory
+
+   * agent/snmpd.c:
+
+   add missing call to store persistent data as needed
+
+2010-08-17 18:31  rstory
+
+   * snmplib/mib.c:
+
+   CHANGES: snmplib: when displaying a byte as single digit hex
+   value, default to
+   prefixing with 0 unless there is a seperator or addition hint
+   data
+
+2010-08-17 10:31  bvassche
+
+   * apps/snmpusm.c:
+
+   Fixed a compiler warning about an unused label that was triggered
+   when
+   compiling without SSL support.
+
+2010-08-16 23:11  hardaker
+
+   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.h:
+
+   CHANGES: snmpd: patch 2790249: from willpwillp: reduce cache time
+   for the iftable to 3seconds to increase accuracy
+
+2010-08-16 16:26  hardaker
+
+   * perl/TrapReceiver/TrapReceiver.xs:
+
+   CHANGES: perl: patch 3046371: from christophb4: Fix memory leak
+   in SNMPv1 trap handling.
+
+2010-08-16 16:03  hardaker
+
+   * agent/mibgroup/mibII/mta_sendmail.c:
+
+   CHANGES: snmpd: patch 2825653: from bru5ce: fix sendmail.cf
+   parsing in certain conditions
+
+2010-08-16 10:16  dts12
+
+   * man/Makefile.in:
+
+   Build netsnmp_agent_api.3 man page from template
+
+2010-08-16 09:20  dts12
+
+   * agent/agent_registry.c:
+
+   CHANGES: snmpd: PATCH: 2911361: Documentation (Provided by Tomasz
+   Lis)
+
+2010-08-16 08:06  dts12
+
+   * agent/agent_registry.c:
+
+   CHANGES: snmpd: PATCH: 2911361: Re-order code to group related
+   functions together
+
+2010-08-16 07:42  dts12
+
+   * perl/SNMP/SNMP.xs:
+
+   CHANGES: perl: PATCH: 2995098: Fix creation of SNMPv3 sessions
+   with API_SINGLE
+
+2010-08-14 16:30  dts12
+
+   * agent/agent_read_config.c:
+
+   CHANGES: snmpd: PATCH: 2911361: Remove redundant variables
+
+2010-08-14 16:23  dts12
+
+   * agent/agent_handler.c:
+
+   CHANGES: snmpd: PATCH: 2904900: Documentation plus assorted
+   handler code fixes
+
+2010-08-14 09:28  dts12
+
+   *  man/Makefile.in, man/netsnmp_config_api.3.def,   
+      man/netsnmp_mib_api.3.def, man/netsnmp_pdu_api.3.def,   
+      man/netsnmp_sess_api.3.def, man/netsnmp_session_api.3.def,   
+      man/netsnmp_trap_api.3.def, man/netsnmp_varbind_api.3.def,   
+      man/snmp_alarm.3.def:
+
+   Restore agent API man page
+   Don't try to extract multiple man page links per line
+   (which runs into problems with OS-specific line endings).
+   Instead, ensure the man page NAME section lists one
+   routine per line
+
+2010-08-13 23:50  hardaker
+
+   * man/Makefile.in:
+
+   fix broken Makefile after man page moves
+
+2010-08-13 23:50  hardaker
+
+   * mibs/SNMP-TLS-TM-MIB.txt, mibs/rfclist:
+
+   updated TLS MIB to current copy
+
+2010-08-13 23:50  hardaker
+
+   *  snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   replaced RFC comment number
+
+2010-08-13 23:50  hardaker
+
+   * include/net-snmp/library/snmp_alarm.h, snmplib/snmp_alarm.c:
+
+   CHANGES: snmplib: patch: 3042770: from mehaf: Made run_alarms()
+   reentrant
+
+2010-08-13 23:44  hardaker
+
+   * agent/mibgroup/mibII/system_mib.c:
+
+   CHANGES: snmpd: PATCH: 3044512: from philwebster: fix sysobjectid
+   directive.
+
+2010-08-13 19:00  rstory
+
+   *  testing/fulltests/support/simple_TESTCONF.sh,   
+      testing/fulltests/tls/STsmPrefix:
+
+   use 127.0.0.1 instead of localhost as default SNMP_TEST_DEST so
+   TLS tests work
+
+2010-08-13 18:50  hardaker
+
+   *  include/net-snmp/session_api.h, snmplib/snmp_api.c,   
+      snmplib/snmp_client.c:
+
+   CHANGES: snmplib: implemented a fix for the issue reported in
+   patch #3042770. Created a snmp_select_info_flags function, and
+   similar, that allow for alarms to not be run. This is then used
+   in the synch_response functions to avoid 100% CPU loops
+
+2010-08-13 18:50  hardaker
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h,
+         apps/snmptrapd.c:
+
+   make snmptrapd register the certtosecname table in the agentx
+   registrations
+
+2010-08-13 18:49  hardaker
+
+   * local/mib2c.conf:
+
+   minor wording additions
+
+2010-08-13 15:04  hardaker
+
+   *  agent/mibgroup/hardware/cpu/cpu_perfstat.c,   
+      agent/mibgroup/hardware/memory/memory_aix.c,   
+      agent/mibgroup/host/hr_storage.c, agent/mibgroup/mibII/icmp.c,   
+      agent/mibgroup/mibII/ip.c, agent/mibgroup/mibII/tcp.c,   
+      agent/mibgroup/mibII/udp.c, agent/mibgroup/ucd-snmp/diskio.c,   
+      agent/mibgroup/ucd-snmp/loadave.c,   
+      agent/mibgroup/ucd-snmp/memory_aix4.c,   
+      agent/mibgroup/ucd-snmp/vmstat_aix4.c:
+
+   CHANGES: aix: PATCH: 2886598: from exsnafu: Header fixes for
+   compiling on AIX6
+
+2010-08-13 15:04  hardaker
+
+   *  agent/mibgroup/host/hr_filesys.c,   
+      agent/mibgroup/host/hr_storage.c, apps/snmpnetstat/inet6.c,   
+      configure, configure.d/config_os_functions,   
+      configure.d/config_os_headers, configure.d/config_os_libs,   
+      configure.d/config_os_struct_members,   
+      include/net-snmp/net-snmp-config.h.in,   
+      include/net-snmp/system/nto-qnx6.h:
+
+   NEWS: ports: PATCH: 2836895: from seanboudreau: support for QNX6
+
+2010-08-13 14:33  dts12
+
+   *  man/Makefile.in, man/netsnmp_agent_api.3.def,   
+      man/netsnmp_config_api.3.def, man/netsnmp_mib_api.3.def,   
+      man/netsnmp_pdu_api.3.def, man/netsnmp_sess_api.3.def,   
+      man/netsnmp_session_api.3.def, man/netsnmp_trap_api.3.def,   
+      man/netsnmp_varbind_api.3.def:
+
+   'enforce netsnmp prefixes
+
+2010-08-13 14:29  dts12
+
+   * man/netsnmp_varbind_api.3.def, man/varbind_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:29  dts12
+
+   * man/netsnmp_trap_api.3.def, man/snmp_trap_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:28  dts12
+
+   * man/netsnmp_sess_api.3.def, man/snmp_sess_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:28  dts12
+
+   * man/netsnmp_agent_api.3.def, man/snmp_agent_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:28  dts12
+
+   * man/netsnmp_session_api.3.def, man/session_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:27  dts12
+
+   * man/netsnmp_pdu_api.3.def, man/pdu_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:27  dts12
+
+   * man/mib_api.3.def, man/netsnmp_mib_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:27  dts12
+
+   * man/config_api.3.def, man/netsnmp_config_api.3.def:
+
+   enforce netsnmp prefix
+
+2010-08-13 14:20  dts12
+
+   * Makefile.in, doxygen.conf:
+
+   Don't automatically generate man pages
+
+2010-08-13 14:18  dts12
+
+   *  man/snmp_api_errstring.3, man/snmp_close.3, man/snmp_error.3,   
+      man/snmp_free_pdu.3, man/snmp_open.3, man/snmp_perror.3,   
+      man/snmp_read.3, man/snmp_select_info.3, man/snmp_send.3,   
+      man/snmp_sess_async_send.3, man/snmp_sess_close.3,   
+      man/snmp_sess_error.3, man/snmp_sess_init.3,   
+      man/snmp_sess_open.3, man/snmp_sess_perror.3,   
+      man/snmp_sess_read.3, man/snmp_sess_select_info.3,   
+      man/snmp_sess_send.3, man/snmp_sess_session.3,   
+      man/snmp_sess_timeout.3, man/snmp_set_mib_warnings.3,   
+      man/snmp_set_save_descriptions.3, man/snmp_timeout.3:
+
+   Remove redundant man page links
+   (Should be generated automatically, but don't exist any more
+   anyway)
+
+2010-08-13 14:13  dts12
+
+   *  man/Makefile.in, man/add_mibdir.3, man/add_module_replacement.3,  
+       man/get_module_node.3, man/init_mib.3, man/init_mib_internals.3, 
+        man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_example_scalar_int.3, man/netsnmp_handler.3,   
+      man/netsnmp_instance.3, man/netsnmp_iterator_info_s.3,   
+      man/netsnmp_leaf.3, man/netsnmp_library.3,   
+      man/netsnmp_mib_handler_methods.3, man/netsnmp_mib_maintenance.3, 
+        man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_set_data.3,   
+      man/netsnmp_snmp_agent.3, man/netsnmp_snmp_alarm.3,   
+      man/netsnmp_snmp_client.3, man/netsnmp_snmp_logging.3,   
+      man/netsnmp_snmp_pdu.3, man/netsnmp_snmp_session.3,   
+      man/netsnmp_stash_cache.3, man/netsnmp_stash_to_next.3,   
+      man/netsnmp_table.3, man/netsnmp_table_array.3,   
+      man/netsnmp_table_container.3, man/netsnmp_table_data.3,   
+      man/netsnmp_table_dataset.3, man/netsnmp_table_generic.3,   
+      man/netsnmp_table_indexes.3, man/netsnmp_table_iterator.3,   
+      man/netsnmp_table_iterator.h.3, man/netsnmp_table_maintenance.3,  
+       man/netsnmp_table_row.3, man/netsnmp_table_rows.3,   
+      man/netsnmp_tdata.3, man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3, man/print_description.3, man/print_mib.3,  
+       man/print_objid.3, man/print_value.3, man/print_variable.3,   
+      man/read_all_mibs.3, man/read_mib.3, man/read_module.3,   
+      man/read_module_node.3, man/read_objid.3, man/shutdown_mib.3:
+
+   Remove Doxygen-generated man pages, and those linking
+   individual routines to the appropriate man page.
+   (These are better generated dynamically)
+
+2010-08-13 12:19  dts12
+
+   * local/mib2c.iterate.conf, local/mib2c.table_data.conf:
+
+   Prompt for whether to generate caching code or not.
+
+2010-08-13 12:19  dts12
+
+   * local/mib2c.conf:
+
+   Rework guidance questions when selecting the best table framework
+   to use.
+   Ensure table handling code doesn't overwrite scalar handling
+   code.
+   Check that the starting point is suitable for MfD framework.
+
+2010-08-12 15:40  rstory
+
+   * snmplib/cert_util.c:
+
+   fix code broken by 'compiler warning fix' in r19179
+
+2010-08-12 15:39  rstory
+
+   * agent/mibgroup/snmpv3mibs.h:
+
+   fix typo in comment
+
+2010-08-11 22:08  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   remove a duplicate value check
+
+2010-08-11 22:08  hardaker
+
+   * testing/fulltests/tls/STlsUsers:
+
+   add a test where we can trust a CA-signed cert and we don't trust
+   the CA
+
+2010-08-11 22:08  hardaker
+
+   * testing/fulltests/tls/STlsUsers:
+
+   test a directly mapped CA certificate
+
+2010-08-11 22:08  hardaker
+
+   * mibs/UCD-SNMP-MIB.txt:
+
+   change the laConfig to read-write to match the patch
+
+2010-08-11 22:07  hardaker
+
+   * agent/mibgroup/ucd-snmp/loadave.c:
+
+   NEWS: snmpd: PATCH: 2931446: from ahmake: make the load averages
+   writable.
+
+2010-08-11 06:43  magfr
+
+   *  testing/fulltests/snmpv3/T010scapitest_capp.c,   
+      testing/fulltests/snmpv3/T020hashtests_capp.c,   
+      testing/fulltests/snmpv3/T040keymanagetest_capp.c:
+
+   CHANGES: Silence some compilation warnings from test cases.
+
+2010-08-09 21:09  magfr
+
+   * perl/SNMP/SNMP.xs:
+
+   CHANGES: Handle embedded %'s in the result message.
+
+2010-08-09 21:07  magfr
+
+   * local/mib2c.raw-table.conf:
+
+   CHANGES: Do no double declare the index values.
+
+2010-08-05 11:49  dts12
+
+   * agent/mibgroup/mibII/vacm_conf.c:
+
+   Update "auth*" usage message with context support
+
+2010-08-02 20:08  dts12
+
+   * agent/mibgroup/hardware/fsys/fsys_mntctl.c:
+
+   Fix two silly mistakes.
+
+2010-08-02 14:18  dts12
+
+   * agent/mibgroup/hardware/fsys/fsys_mntctl.c:
+
+   AIX filesystem types are tagged as integers, not strings.
+
+2010-08-02 13:49  tanders
+
+   * configure, configure.d/config_os_progs:
+
+   fix Perl system() configure check to work reliably on systems
+   that lack
+   Perl
+
+2010-08-02 11:08  bvassche
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   CHANGES: testing: made it possible to analyze all code covered by
+   the regression tests with a dynamic analyzer, at least if that
+   analyzer supports following child processes. An example:
+   
+   rm -rf /tmp/snmp-test-*
+   make -s
+   SNMP_SAVE_TMPDIR=yes DYNAMIC_ANALYZER="valgrind
+   --trace-children=yes --track-origins=yes" make -s test
+   grep -i uninitialised /tmp/snmp-test-* | xargs less
+
+2010-08-02 11:02  bvassche
+
+   * snmplib/snmp_transport.c, snmplib/transports/snmpTCPDomain.c:
+
+   Fixed the following two Valgrind complaints:
+   
+   Conditional jump or move depends on uninitialised value(s)
+   at 0x6D702E0: vfprintf (in /lib64/libc-2.11.2.so)
+   by 0x6D99D11: vsnprintf (in /lib64/libc-2.11.2.so)
+   by 0x6D7A412: snprintf (in /lib64/libc-2.11.2.so)
+   by 0x6E14437: inet_ntoa (in /lib64/libc-2.11.2.so)
+   by 0x5E5E219: netsnmp_ipv4_fmtaddr (snmpIPv4BaseDomain.c:215)
+   by 0x5E65717: netsnmp_tcp_fmtaddr (snmpTCPDomain.c:70)
+   by 0x5E567EC: netsnmp_transport_peer_string
+   (snmp_transport.c:224)
+   by 0x5E2479A: _sess_process_packet (snmp_api.c:5441)
+   by 0x5E25E37: _sess_read (snmp_api.c:6037)
+   by 0x5E261DA: snmp_sess_read2 (snmp_api.c:6149)
+   by 0x5E26282: snmp_read2 (snmp_api.c:5740)
+   by 0x404DE4: main (snmpd.c:1227)
+   Uninitialised value was created by a heap allocation
+   at 0x4C270A5: malloc (vg_replace_malloc.c:236)
+   by 0x5E65739: netsnmp_tcp_accept (snmpTCPDomain.c:82)
+   by 0x5E25383: _sess_read (snmp_api.c:5786)
+   by 0x5E261DA: snmp_sess_read2 (snmp_api.c:6149)
+   by 0x5E26282: snmp_read2 (snmp_api.c:5740)
+   by 0x404DE4: main (snmpd.c:1227)
+   
+   Conditional jump or move depends on uninitialised value(s)
+   at 0x6F7B2E0: vfprintf (in /lib64/libc-2.11.2.so)
+   by 0x6FA4D11: vsnprintf (in /lib64/libc-2.11.2.so)
+   by 0x6F85412: snprintf (in /lib64/libc-2.11.2.so)
+   by 0x701F437: inet_ntoa (in /lib64/libc-2.11.2.so)
+   by 0x56FA219: netsnmp_ipv4_fmtaddr (snmpIPv4BaseDomain.c:215)
+   by 0x5701717: netsnmp_tcp_fmtaddr (snmpTCPDomain.c:70)
+   by 0x56F27EC: netsnmp_transport_peer_string
+   (snmp_transport.c:224)
+   by 0x56F294F: netsnmp_transport_send (snmp_transport.c:248)
+   by 0x56BC487: snmp_sess_async_send (snmp_api.c:5204)
+   by 0x56BC651: snmp_async_send (snmp_api.c:4998)
+   by 0x56BC677: snmp_send (snmp_api.c:4984)
+   by 0x5698440: snmp_synch_response_cb (snmp_client.c:1006)
+   Uninitialised value was created by a heap allocation
+   at 0x4C270A5: malloc (vg_replace_malloc.c:236)
+   by 0x5701B3E: netsnmp_tcp_transport (snmpTCPDomain.c:163)
+   by 0x5701E6F: netsnmp_tcp_create_tstring (snmpTCPDomain.c:305)
+   by 0x56F3804: netsnmp_tdomain_transport_full
+   (snmp_transport.c:601)
+   by 0x56F3ACC: netsnmp_transport_open_client
+   (snmp_transport.c:669)
+   by 0x54344F6: subagent_open_master_session (subagent.c:758)
+   by 0x54349C8: agentx_reopen_session (subagent.c:869)
+   by 0x5434D00: subagent_startup (subagent.c:99)
+   by 0x56EAEB7: snmp_call_callbacks (callback.c:338)
+   by 0x56DE6FB: read_configs (read_config.c:1018)
+   by 0x56C287E: init_snmp (snmp_api.c:850)
+   by 0x40477B: main (snmptrapd.c:1048)
+
+2010-08-01 06:11  bvassche
+
+   * CHANGES, NEWS:
+
+   Fixed spelling errors reported by ispell -l.
+
+2010-08-01 06:00  bvassche
+
+   *  snmplib/snmp_enum.c,   
+      testing/fulltests/unit-tests/T004snmp_enum_clib.c:
+
+   Fixed a typo in a text string in a unit test: resturant ->
+   restaurant.
+
+2010-08-01 05:53  bvassche
+
+   * include/net-snmp/library/snmp_enum.h:
+
+   Documented behavior of se_add_pair_to_slist().
+
+2010-07-31 23:50  tanders
+
+   * include/net-snmp/system/darwin10.h:
+
+   Follow-up for r19266: add missing header file to support Mac OS X
+   10.6
+   (Snow Leopard - "darwin10")
+
+
+
+----------------------------------------------------------------------
+
+Changes: V5.6.pre2 -> V5.6.pre3
+
+2010-07-31 20:31  hardaker
+
+   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
+      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
+
+   make depend
+
+2010-07-31 20:24  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+2010-07-31 20:16  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
+2010-07-31 20:11  hardaker
+
+   * dist/makerelease.xml:
+
+   changed the name of the readme section to call out NEWS-too
+
+2010-07-31 20:10  hardaker
+
+   * NEWS:
+
+   added missing news items
+
+2010-07-30 13:06  hardaker
+
+   * snmplib/snmp_client.c:
+
+   CHANGES: python: PATCH 3035328: from: sws: check the results of
+   session creation for a failure case.
+
+2010-07-30 13:00  hardaker
+
+   * python/netsnmp/client_intf.c:
+
+   CHANGES: python: patch 3035578: from sws: keep error codes up to
+   date
+
+2010-07-29 15:48  dts12
+
+   * configure:
+
+   Add support for Mac OS X 10.6 (Snow Leopard - "darwin10")
+   (On the assumption that this is the same as Mac OS X 10.5
+   (Leopard - "darwin9"))
+
+2010-07-29 15:47  dts12
+
+   *  Makefile.in, configure.d/config_os_progs,   
+      configure.d/config_project_perl_python:
+
+   Add support for Mac OS X 10.6 (Snow Leopard - "darwin10")
+   (On the assumption that this is the same as Mac OS X 10.5
+   (Leopard - "darwin9"))
+
+2010-07-29 15:03  dts12
+
+   * include/net-snmp/output_api.h:
+
+   Provide a definition of 'va_list' for varargs-based APIs
+
+2010-07-29 14:58  dts12
+
+   *  acconfig.h, agent/auto_nlist.c, agent/mibgroup/hardware/cpu.h,   
+      agent/mibgroup/hardware/fsys.h, agent/mibgroup/hardware/memory.h, 
+        agent/mibgroup/host/data_access/swrun.h,   
+      agent/mibgroup/host/hr_filesys.c,   
+      agent/mibgroup/host/hr_storage.c, agent/mibgroup/host/hr_swrun.c, 
+        agent/mibgroup/host/hrh_filesys.c, agent/mibgroup/mibII/icmp.c, 
+        agent/mibgroup/mibII/interfaces.c, agent/mibgroup/mibII/ip.c,   
+      agent/mibgroup/mibII/tcp.c, agent/mibgroup/mibII/udp.c,   
+      agent/mibgroup/ucd-snmp/diskio.c,   
+      agent/mibgroup/ucd-snmp/loadave.c,   
+      agent/mibgroup/ucd-snmp/proc.c, configure,   
+      configure.d/config_os_progs,   
+      include/net-snmp/net-snmp-config.h.in, snmplib/system.c:
+
+   Add preliminary support for AIX 7
+   (on the assumption that this is identical to AIX 6)
+
+2010-07-29 14:56  dts12
+
+   * configure, configure.d/config_project_perl_python:
+
+   Disable embedded perl by default on architecures where
+   this seems to cause problems (HP-UX & Mac OS X)
+
+2010-07-29 11:13  dts12
+
+   * snmplib/read_config.c:
+
+   Guard against blank 'include*' lines.
+   Handle relative 'includeFile' paths
+
+2010-07-29 10:47  dts12
+
+   * include/net-snmp/library/read_config.h, snmplib/read_config.c:
+
+   Return an indication of whether config files are actually
+   processed.
+   Report problems with failing to include config files.
+
+2010-07-28 14:44  dts12
+
+   *  include/net-snmp/config_api.h,   
+      include/net-snmp/library/snmp_api.h,   
+      include/net-snmp/library/snmp_client.h,   
+      include/net-snmp/library/snmp_debug.h,   
+      include/net-snmp/library/snmp_logging.h,   
+      include/net-snmp/mib_api.h, include/net-snmp/output_api.h,   
+      include/net-snmp/pdu_api.h, include/net-snmp/session_api.h,   
+      include/net-snmp/varbind_api.h, man/config_api.3.def,   
+      man/mib_api.3.def, man/session_api.3.def, man/varbind_api.3.def,  
+       win32/libsnmp_dll/libsnmp.def:
+
+   Bring man page documentation, header files and Windows DLL
+   definitions
+   of top-level public API calls into line with each other.
+
+2010-07-28 14:40  dts12
+
+   * snmplib/snmp_api.c:
+
+   Fix misnamed comment
+
+2010-07-28 14:36  dts12
+
+   *  agent/mibgroup/default_modules.h, configure,   
+      configure.d/config_modules_agent,   
+      configure.d/config_project_with_enable:
+
+   Don't mix SMIv1 and SMIv2 MIBs in the list of default MIBs to
+   load.
+   Use newer SMIv2 versions (which include suitable display hints)
+   rather than the original RFC1213 MIB (which doesn't)
+
+2010-07-28 14:10  dts12
+
+   * snmplib/read_config.c:
+
+   Fix indentation for 'includeSearch' processing code.
+
+2010-07-28 14:09  dts12
+
+   * snmplib/read_config.c:
+
+   Extend 'include' config file processing to cover three
+   different modes of working:
+   - look for the file on the config search path
+   - include the specified file by name
+   - ioad the contents of the specified directory
+   Use different config tokens to distinguish these cases.
+
+2010-07-27 11:12  hardaker
+
+   * agent/kernel.c, agent/kernel.h, agent/snmp_vars.c:
+
+   CHANGES: snmpd: patch 2912520: from listom: Free kmem references
+   on shutdown
+
+2010-07-27 10:54  hardaker
+
+   * mibs/SMUX-MIB.txt:
+
+   CHANGES: mibs: patch 2974716: from bvassche: fix issues in the
+   SMUX-MIB
+
+2010-07-27 08:54  hardaker
+
+   * configure.d/config_modules_lib:
+
+   include the new security-hedaers module
+
+2010-07-27 08:54  hardaker
+
+   * local/snmp-bridge-mib:
+
+   remote debugging/processing stderr output
+
+2010-07-27 08:54  hardaker
+
+   * local/snmp-bridge-mib:
+
+   CHANGES: snmpd: patch: 3028923: from jenso: new copy of the
+   bridge-mib perl implementation
+
+2010-07-27 08:31  hardaker
+
+   *  Makefile.in, configure.d/config_modules_security_modules,   
+      dist/generation-scripts/gen-security-headers.in:
+
+   separate out the security header/init generation
+
+2010-07-27 08:31  hardaker
+
+   * configure.d/config_modules_transports:
+
+   transport configure portion
+
+2010-07-27 08:30  hardaker
+
+   *  Makefile.in, configure, configure.ac,   
+      configure.d/config_modules_lib, dist/generation-scripts,   
+      dist/generation-scripts/gen-transport-headers.in,   
+      dist/generation-scripts/gen-variables.in:
+
+   move transport header generation to a separate file and create an
+   external separate script for generating it
+
+2010-07-27 08:14  jsafranek
+
+   *  agent/mibgroup/hardware/fsys/fsys_mntent.c,   
+      agent/mibgroup/hardware/fsys/mnttypes.h:
+
+   CHANGES: snmpd: report gfs filesystems in hrStorageTable and
+   hrFSTable.
+
+2010-07-24 15:42  dts12
+
+   * snmplib/read_config.c:
+
+   Don't lose track of which config file was being parsed,
+   when processing an included config file.
+   Fixes a bug with reporting later config errors.
+
+2010-07-24 15:36  dts12
+
+   * snmplib/snmp_transport.c:
+
+   Don't lose track of which config file is being parsed,
+   when opening a new SNMP session.
+   Fixes a bug with reporting later config errors.
+
+2010-07-23 03:12  hardaker
+
+   * dist/makerelease.xml:
+
+   add the TLS modules to the list of test modules
+
+2010-07-21 19:25  nba
+
+   * agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c:
+
+   Fix typo in doxygen comment
+
+2010-07-21 19:24  nba
+
+   * agent/mibgroup/if-mib/data_access/interface_sysctl.c:
+
+   Fix typo in speed computation
+
+2010-07-21 19:21  nba
+
+   * snmplib/snmp_secmod.c:
+
+   Include generated security-includes.h
+
+2010-07-21 19:20  nba
+
+   *  include/net-snmp/library/snmpksm.h,   
+      include/net-snmp/library/snmptsm.h:
+
+   Fix init func name (copy-paste glitch)
+
+2010-07-21 19:18  nba
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   Remove superfluous semicolon
+
+2010-07-21 19:18  nba
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   Out of order declaration
+
+2010-07-21 19:17  nba
+
+   * snmplib/snmp_logging.c:
+
+   Log error on file open error
+
+2010-07-21 19:16  nba
+
+   * configure.d/config_modules_lib:
+
+   Speling error
+
+2010-07-21 18:10  nba
+
+   * mibs/ianalist, mibs/rfclist, mibs/rfcmibs.diff:
+
+   Update for current RFCs
+
+2010-07-21 18:08  nba
+
+   * mibs/IANAifType-MIB.txt:
+
+   Current version from IANA
+
+2010-07-21 18:05  nba
+
+   * agent/mibgroup/ucd-snmp/diskio.c:
+
+   r17495 erroneously disabled diskIOLAx for linux
+
+2010-07-20 10:38  jsafranek
+
+   * snmplib/system.c:
+
+   CHANGES: snmplib: fixed potential buffer overflow when generating
+   temp. file names
+
+2010-07-20 07:32  jsafranek
+
+   *  agent/snmpd.c, apps/agentxtrap.c, apps/snmptranslate.c,   
+      apps/snmptrapd.c, man/snmpcmd.1.def, man/snmptranslate.1.def,   
+      man/snmptrapd.8.def, snmplib/snmp_parse_args.c:
+
+   Describe -D usage as -D[TOKEN] instead of -D [TOKEN]
+
+2010-07-17 15:10  rstory
+
+   * mibs/SNMP-TLS-TM-MIB.txt:
+
+   update display hint to some less ambiguous (and that works with
+   our lib)
+
+2010-07-17 04:13  rstory
+
+   * testing/Makefile.in:
+
+   fix testsimple for builddir!=srcdir
+
+2010-07-17 04:12  rstory
+
+   * testing/Makefile.in:
+
+   add testsimple target
+
+2010-07-16 19:21  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   release iterator when done with it
+
+2010-07-15 18:28  hardaker
+
+   * snmplib/snmpusm.c:
+
+   CHANGES: snmplib: fix issue with USM using inactive users
+
+2010-07-15 01:35  rstory
+
+   * agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c:
+
+   don't use strndup (portability)
+
+2010-07-15 01:35  rstory
+
+   * snmplib/cert_util.c:
+
+   include appropriate string header; define NAME_MAX if not already
+   defined;
+   don't use strndup (portability)
+
+2010-07-15 01:35  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   check that some newer openssl macros are defined before using
+   them; include
+   appropriate string header
+
+2010-07-15 01:35  rstory
+
+   *  configure, configure.d/config_os_libs,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   check for dtls support in openssl
+
+2010-07-15 01:34  rstory
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   don't compile dtls domain if no dtls support in openssl
+
+2010-07-15 01:34  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   ifdef protection for later sha algorithms
+
+2010-07-15 01:34  rstory
+
+   *  include/net-snmp/system/darwin.h,   
+      include/net-snmp/system/darwin7.h,   
+      include/net-snmp/system/darwin8.h,   
+      include/net-snmp/system/darwin9.h:
+
+   darwin openssl does not support more recent sha algorithms
+
+2010-07-15 01:33  rstory
+
+   * agent/mibgroup/target/target.c:
+
+   fix typo in ifdef test
+
+2010-07-15 01:33  rstory
+
+   * agent/mibgroup/if-mib/ifTable/ifTable.c:
+
+   fix cut-n-paste error in included file name
+
+2010-07-14 15:08  rstory
+
+   * agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c:
+
+   fix the fix: put PRIz spec in correct place
+
+2010-07-14 15:03  rstory
+
+   * testing/fulltests/tls/STlsUsers:
+
+   specify SNMP version on commandline
+
+2010-07-14 15:03  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c:
+
+   quiet compiler
+
+2010-07-14 15:02  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c:
+
+   quiet compiler warnings
+
+2010-07-13 20:03  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c,
+         apps/snmptls.c, include/net-snmp/library/cert_util.h:
+
+   include ssl.h before cert_util.h
+
+2010-07-13 20:03  rstory
+
+   * snmplib/cert_util.c:
+
+   add debug output for found cert
+
+2010-07-13 16:24  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   fix typo in log msg
+
+2010-07-12 10:26  bvassche
+
+   * agent/mibgroup/mibII/interfaces.c:
+
+   CHANGES: Win32 and Cygwin: made sure that accessing the mibII
+   interfaces table does not trigger out-of-range array accesses
+   (was detected by BoundsChecker).
+
+2010-07-12 10:21  bvassche
+
+   * agent/mibgroup/mibII/vacm_vars.c:
+
+   Fixed a dangling-pointer-read that was introduced in r19018. In
+   r19018 the type of groupSubtreeLen was changed from int to
+   size_t, which changed the behavior of the loop "while
+   (groupSubtreeLen-- > 0) ...": instead of not executing the loop
+   body when groupSubtreeLen was negative, r19018 caused the body of
+   that loop to be executed. Detected by running snmpd under
+   BoundsChecker while performing a MIB walk.
+
+2010-07-12 10:12  bvassche
+
+   * agent/mibgroup/mibII/at.c:
+
+   Reverted r19047 (which was wrong) and implemented a proper fix
+   for the compiler warnings about signed/unsigned mismatches.
+
+2010-07-12 10:09  bvassche
+
+   * agent/snmp_agent.c:
+
+   Removed an obsolete comment.
+
+2010-07-12 10:08  bvassche
+
+   * agent/helpers/table_container.c, win32/mib_module_includes.h:
+
+   Suppressed more MSVC compiler warnings.
+
+2010-07-12 04:45  rstory
+
+   * testing/fulltests/tls/STlsVars:
+
+   add comment with object name for numeric ids
+
+2010-07-12 04:45  rstory
+
+   *  agent/mibgroup/target/target.c,   
+      include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   new function to get serverId from snmpTlstmAddrTable data; use
+   new api
+   to config serviceId for trap transport when sending traps
+
+2010-07-11 11:18  bvassche
+
+   * configure, configure.d/config_os_functions:
+
+   CHANGES: BUG: 3027900: when cross-compiling it is now assumed
+   that memcmp() is available instead of assuming that it is not
+   available.
+
+2010-07-11 10:30  bvassche
+
+   * agent/mibgroup/disman/event/mteTriggerConf.c:
+
+   Fixed compiler warnings triggered by r19197.
+
+2010-07-10 20:00  rstory
+
+   * testing/RUNFULLTESTS:
+
+   sync up help output and options processing
+
+2010-07-09 15:13  bvassche
+
+   * README.win32:
+
+   Updated Cygwin section in README.win32.
+
+2010-07-09 15:13  bvassche
+
+   *  agent/helpers/instance.c, agent/helpers/table_dataset.c,   
+      agent/mibgroup/disman/event/mteTriggerConf.c:
+
+   CHANGES: Win32: Suppressed "implicit cast from int to u_char"
+   warnings generated by MSVC.
+
+2010-07-09 15:11  bvassche
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   Testing: made the debug output that appears in the "invoked" file
+   even more verbose.
+
+2010-07-09 15:10  bvassche
+
+   *  win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   Win32 MSVC build fixes.
+
+2010-07-08 19:30  marz
+
+   *  local/certgen-test.pl, local/net-snmp-cert,   
+      local/net-snmp-cert.conf:
+
+   adds per identity configuration file support so defaults can be
+   customised on cmdline w -i <identity> - see net-snmp-cert.conf
+   for examples and some help info
+
+2010-07-08 12:17  dts12
+
+   * agent/agent_read_config.c:
+
+   CHANGES: snmpd: BUG: 3003981: Protect against buffer overflow
+
+2010-07-08 11:19  dts12
+
+   * agent/mibgroup/agent/extend.c:
+
+   CHANGES: snmpd: BUG: 3019243: Register execFix compatability
+   directive correctly.
+
+2010-07-07 10:19  bvassche
+
+   *  testing/fulltests/default/T110agentxget_simple,   
+      testing/fulltests/default/T111agentxset_simple,   
+      testing/fulltests/default/T112agentxsetfail_simple,   
+      testing/fulltests/default/T120proxyget_simple,   
+      testing/fulltests/default/T121proxyset_simple,   
+      testing/fulltests/default/T122proxysetfail_simple:
+
+   CHANGES: Cygwin and MinGW: tests T110, T111, T112, T120, T121 and
+   T122 do now pass when snmpd is built with winExtDLL support
+   enabled.
+
+2010-07-06 18:59  bvassche
+
+   *  ChangeLog, agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c,   
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
+         local/mib2c-conf.d/mfd-persistence.m2i,   
+      testing/fulltests/support/simple_eval_tools.sh:
+
+   Made regression tests easier to debug by including ok / not ok
+   status in the "invoked" file.
+   Spelling fixes: remeber -> remember; seperator -> separator.
+
+2010-07-06 15:04  bvassche
+
+   *  testing/fulltests/default/T065agentextend_simple,   
+      testing/fulltests/support/simple_TESTCONF.sh:
+
+   Test T065 does now really pass on MinGW.
+
+2010-07-05 10:01  bvassche
+
+   * testing/Makefile.in:
+
+   Added curly braces such that '||' and '&&' are evaluated in the
+   correct order.
+
+2010-07-04 11:37  bvassche
+
+   * apps:
+
+   Updated Subversion ignore list.
+
+2010-07-04 11:34  bvassche
+
+   * testing/Makefile.in:
+
+   Fall back from RUNFULLTESTS to RUNTESTS if neither TAP::Harness
+   nor Test::Harness is available.
+
+2010-07-04 11:21  bvassche
+
+   * testing/fulltests/support/simple_run:
+
+   Made sure that the test number in /tmp/snmp-tests-$testnum is set
+   to something more meaningful than just "0".
+
+2010-07-04 11:20  bvassche
+
+   * testing/RUNTESTS:
+
+   Split a long comment line.
+
+2010-07-04 10:52  bvassche
+
+   * testing/RUNTESTS:
+
+   Bug fix: made sure that srcdir is computed correctly if `dirname
+   $0` = .
+
+2010-07-02 16:27  bvassche
+
+   * apps/Makefile.in, configure, configure.d/config_os_libs:
+
+   Simplified r19181 (Fixed TLSTCP-enabled build for platforms with
+   non-empty $(EXEEXT), i.e. Cygwin and MinGW).
+
+2010-07-01 18:15  bvassche
+
+   * apps/Makefile.in, configure, configure.d/config_os_libs:
+
+   Fixed TLSTCP-enabled build for platforms with non-empty
+   $(EXEEXT), i.e. Cygwin and MinGW.
+
+2010-07-01 18:11  bvassche
+
+   * apps/snmptls.c:
+
+   Fixed yet another recently introduced compiler warning.
+
+2010-07-01 17:53  bvassche
+
+   * snmplib/cert_util.c:
+
+   Fixed two recently introduced compiler warnings.
+
+2010-07-01 00:19  hardaker
+
+   * CHANGES, NEWS:
+
+   version update
+
+2010-07-01 00:13  hardaker
+
+   * ChangeLog:
+
+   version update
+
+2010-07-01 00:03  hardaker
+
+   *  agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      snmplib/Makefile.depend:
+
+   make depend
+
+2010-06-30 23:55  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+----------------------------------------------------------------------
+
+Changes: V5.6.pre1 -> V5.6.pre2
+
+2010-06-30 23:55  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+2010-06-30 23:48  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec, python/netsnmp/tests/snmpd.conf:
+
+   Version number update
+
+2010-06-30 23:45  hardaker
+
+   * man/snmpd.conf.5.def:
+
+   missed two tokens in the man pgaes
+
+2010-06-30 23:45  hardaker
+
+   *  man/snmpcmd.1.def, man/snmpd.8.def,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      testing/fulltests/tls/SCipherTests, testing/fulltests/tls/SCrl,   
+      testing/fulltests/tls/STlsAgentTrap,   
+      testing/fulltests/tls/STlsServer,   
+      testing/fulltests/tls/STlsServerSession,   
+      testing/fulltests/tls/STlsTrapdUser,   
+      testing/fulltests/tls/STlsUsers,   
+      testing/fulltests/tls/STsmPrefix,   
+      testing/fulltests/transports/Stlstests:
+
+   rename the defX509 tokens to something more friendly: clientCert
+   and serverCert
+
+2010-06-30 23:44  hardaker
+
+   *  snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   top-file comment updates
+
+2010-06-30 23:44  hardaker
+
+   * snmplib/cert_util.c:
+
+   don't call cert_find with a NULL argument
+
+2010-06-30 23:44  hardaker
+
+   * snmplib/cert_util.c:
+
+   allow def certs to be specified using a filename
+
+2010-06-30 23:41  tanders
+
+   * testing/fulltests/support/simple_run:
+
+   fix syntax error
+
+2010-06-30 23:01  hardaker
+
+   * snmplib/cert_util.c:
+
+   turn a couple of non-critical errors into debug statements per
+   discussion with rstory
+
+2010-06-30 23:00  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   make the regexp pattern match for tests to run case insensitive
+
+2010-06-30 23:00  hardaker
+
+   * python/netsnmp/client.py:
+
+   import stderr from sys, per discussion on -users
+
+2010-06-30 22:17  hardaker
+
+   *  snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   add back in the default port specifier
+
+2010-06-30 22:17  hardaker
+
+   * local/net-snmp-cert:
+
+   enable pulling the private key over http
+
+2010-06-30 22:17  hardaker
+
+   * local/net-snmp-cert:
+
+   move URL collection into a sub function
+
+2010-06-30 22:16  hardaker
+
+   * local/net-snmp-cert:
+
+   added ability to pull a cert from a URL
+
+2010-06-30 22:16  hardaker
+
+   * local/net-snmp-cert:
+
+   fix argument bug in the is_url function
+
+2010-06-30 20:49  hardaker
+
+   * apps/snmptls.c:
+
+   remove debugging code
+
+2010-06-30 20:27  hardaker
+
+   *  testing/fulltests/tls/T117DtlsCNSession_simple,   
+      testing/fulltests/tls/T117dtlsCNSession_simple:
+
+   rename file for consistency
+
+2010-06-30 20:01  rstory
+
+   * configure:
+
+   update for new snmptls app
+
+2010-06-30 20:00  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c:
+
+   remove accidentally checked int debug code
+
+2010-06-30 19:59  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h:
+
+   define OIDs based on SNMP_TLS_TM_BASE
+
+2010-06-30 19:59  rstory
+
+   * agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c:
+
+   auto-transistion between notReady/notInService
+
+2010-06-30 19:57  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h:
+
+   auto-transistion between notReady/notInService; add
+   snmp_store_needed on commit
+
+2010-06-30 19:56  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c:
+
+   use new fingerprint parse/build functions; remove bad length
+   check; auto
+   transition between notReady and notInService
+
+2010-06-30 19:55  rstory
+
+   * mibs/TLSTM-MIB.txt:
+
+   remove pre-rfc mib; see SNMP-TLS-TM-MIB.txt instead
+
+2010-06-30 19:54  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_internal.h,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c:
+
+   consolidate multiple files
+
+2010-06-30 19:53  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   make hash type parse routine public; add routines to build/parse
+   SnmpTLSFingerprint
+
+2010-06-30 19:51  rstory
+
+   *  Makefile.in, apps/Makefile.in, apps/snmptls.c,   
+      configure.d/config_os_libs:
+
+   NEWS: snmptls: new app for managing (D)TLS config via
+   SNMP-TLS-TM-MIB tables
+
+2010-06-30 19:50  rstory
+
+   *  agent/mibgroup/disman/event/mteObjectsTable.c,   
+      agent/mibgroup/disman/event/mteTriggerTable.c,   
+      agent/mibgroup/disman/expression/expExpressionTable.c,   
+      agent/mibgroup/disman/expression/expObjectTable.c,   
+      agent/mibgroup/disman/mteObjectsTable.c,   
+      agent/mibgroup/disman/mteTriggerTable.c,   
+      agent/mibgroup/disman/nslookup/lookupCtlTable.c,   
+      agent/mibgroup/disman/ping/pingCtlTable.c,   
+      agent/mibgroup/disman/traceroute/traceRouteCtlTable.c,   
+      agent/mibgroup/if-mib/ifTable/ifTable.c,   
+      agent/mibgroup/if-mib/ifXTable/ifXTable.c,   
+      agent/mibgroup/notification/snmpNotifyFilterProfileTable.c,   
+      agent/mibgroup/notification/snmpNotifyTable.c,   
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c:
+
+   call new snmp_store_needed() function after a commit in tables
+   that
+   have persistent store
+
+2010-06-30 19:49  rstory
+
+   * include/net-snmp/library/snmp_client.h, snmplib/snmp_client.c:
+
+   NEWS: snmplib: new experimental simple state machine
+   NEWS: snmplib: new experimental row creation API which uses a
+   state machine
+   to try really hard to create a row from a given varbind list
+
+2010-06-30 19:48  rstory
+
+   *  agent/snmp_agent.c, include/net-snmp/library/snmp_api.h,   
+      snmplib/snmp_api.c:
+
+   NEWS: snmpd: new API for indicating that persistent store needs
+   to be saved after the current request finishes processing
+
+2010-06-30 19:46  rstory
+
+   * include/net-snmp/library/snmp_assert.h:
+
+   add some new wrapper macros
+
+2010-06-30 15:59  hardaker
+
+   *  testing/fulltests/tls/STlsCNSession,   
+      testing/fulltests/tls/STlsSanSession,   
+      testing/fulltests/tls/STlsServerSession,   
+      testing/fulltests/tls/T115DtlsSanSession_simple,   
+      testing/fulltests/tls/T116TlsSanSession_simple,   
+      testing/fulltests/tls/T117dtlsCNSession_simple,   
+      testing/fulltests/tls/T118TlsCNSession_simple:
+
+   added checks for checking direct passing of localhost to the
+   expected name
+
+2010-06-30 15:59  hardaker
+
+   * testing/fulltests/tls/STlsServer:
+
+   check for wildcard support
+
+2010-06-30 15:58  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   support SAN and CN wildcard matching per spec
+
+2010-06-30 15:00  hardaker
+
+   *  testing/fulltests/tls/SCipherTests, testing/fulltests/tls/SCrl,   
+      testing/fulltests/tls/STlsAgentTrap,   
+      testing/fulltests/tls/STlsName, testing/fulltests/tls/STlsSan,   
+      testing/fulltests/tls/STlsServer,   
+      testing/fulltests/tls/STlsTrapdUser,   
+      testing/fulltests/tls/STlsUsers, testing/fulltests/tls/STlsVars,  
+       testing/fulltests/tls/STsmPrefix,   
+      testing/fulltests/tls/ScipherTests,   
+      testing/fulltests/tls/Scrltests,   
+      testing/fulltests/tls/Stlsagenttraptests,   
+      testing/fulltests/tls/Stlsnametests,   
+      testing/fulltests/tls/Stlssantests,   
+      testing/fulltests/tls/Stlsservertests,   
+      testing/fulltests/tls/Stlstrapdusertests,   
+      testing/fulltests/tls/Stlsuserstests,   
+      testing/fulltests/tls/Stlsvars, testing/fulltests/tls/Stsmprefix, 
+        testing/fulltests/tls/T101DtlsUser_simple,   
+      testing/fulltests/tls/T101dtlsudpusertests_simple,   
+      testing/fulltests/tls/T102TlsUser_simple,   
+      testing/fulltests/tls/T102tlstcpusertests_simple,   
+      testing/fulltests/tls/T111DtlsServer_simple,   
+      testing/fulltests/tls/T111dtlsudpservertests_simple,   
+      testing/fulltests/tls/T112TlsServer_simple,   
+      testing/fulltests/tls/T112tlstcpservertests_simple,   
+      testing/fulltests/tls/T113DtlsSan_simple,   
+      testing/fulltests/tls/T113dtlsudpsan_simple,   
+      testing/fulltests/tls/T114TlsSan_simple,   
+      testing/fulltests/tls/T114tlstcpsan_simple,   
+      testing/fulltests/tls/T121DtlsTrap_simple,   
+      testing/fulltests/tls/T121dtlsudptraptests_simple,   
+      testing/fulltests/tls/T122TlsTrap_simple,   
+      testing/fulltests/tls/T122tlstcptraptests_simple,   
+      testing/fulltests/tls/T131DtlsAgentTrap_simple,   
+      testing/fulltests/tls/T131dtlsudpagenttraptests_simple,   
+      testing/fulltests/tls/T132TlsAgentTrap_simple,   
+      testing/fulltests/tls/T132tlstcpagenttraptests_simple,   
+      testing/fulltests/tls/T141DtlsCrl_simple,   
+      testing/fulltests/tls/T141dtlsudpcrl_simple,   
+      testing/fulltests/tls/T142TlsCrl_simple,   
+      testing/fulltests/tls/T142tlstcpcrl_simple,   
+      testing/fulltests/tls/T151DtlsCiphers_simple,   
+      testing/fulltests/tls/T151dtlsciphers_simple,   
+      testing/fulltests/tls/T152TlsCiphers_simple,   
+      testing/fulltests/tls/T152tlsciphers_simple,   
+      testing/fulltests/tls/T200TlsIpv6_simple,   
+      testing/fulltests/tls/T200tlsipv6_simple,   
+      testing/fulltests/tls/T300TlsPerl.t,   
+      testing/fulltests/tls/T300tlstcpperl.t,   
+      testing/fulltests/tls/T301DtlsPerl.t,   
+      testing/fulltests/tls/T301dtlsperl.t,   
+      testing/fulltests/tls/T401DtlsTsmPrefix_simple,   
+      testing/fulltests/tls/T401dtlstsmprefix_simple,   
+      testing/fulltests/tls/T402TlsTsmPrefix_simple,   
+      testing/fulltests/tls/T402tlstsmprefix_simple:
+
+   moved test files around for better naming
+
+2010-06-30 14:58  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   copy dtls transport address to the expected hostname
+
+2010-06-30 14:58  hardaker
+
+   *  snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   set the expected hostname from the transport string if possible
+
+2010-06-30 14:58  hardaker
+
+   * local/net-snmp-cert:
+
+   a bit more help output by default
+
+2010-06-29 22:29  tanders
+
+   * apps/snmptrapd_auth.c:
+
+   Follow-up for r19116: make sure we include agent config
+
+2010-06-29 22:18  magfr
+
+   *  agent/mibgroup/host/hr_print.h,   
+      agent/mibgroup/if-mib/data_access/interface.h,   
+      agent/mibgroup/ip-mib/data_access/ipaddress_linux.h,   
+      agent/mibgroup/ucd-snmp/extensible.h:
+
+   Add missing config_requires
+
+2010-06-29 17:33  hardaker
+
+   * man/snmpcmd.1.def:
+
+   rework the snmpcmd manual page to separate out the flags into
+   sections appropriate for their usage type
+
+2010-06-29 16:51  marz
+
+   * local/net-snmp-cert:
+
+   pod docs, some default val fixes, info output normalized
+
+2010-06-29 16:32  hardaker
+
+   * agent/mibgroup/target/target.c:
+
+   added ssh.h include
+
+2010-06-29 16:27  hardaker
+
+   * man/snmpd.conf.5.def:
+
+   reorganize the manual page a bit for SNMPv3 and TLS
+
+2010-06-29 16:27  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   fix default tls registrations
+
+2010-06-29 16:26  hardaker
+
+   * agent/snmp_agent.c:
+
+   check for NULL transports after an open fails
+
+2010-06-29 16:26  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   moving logging around so that openssl errors are printed on
+   failures
+
+2010-06-29 16:26  hardaker
+
+   *  testing/fulltests/tls/Scrltests,   
+      testing/fulltests/tls/Stsmprefix:
+
+   fix some non-interactive invocation issues
+
+2010-06-29 16:26  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   move some common code into a common function
+
+2010-06-28 19:13  hardaker
+
+   *  include/net-snmp/library/default_store.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      testing/fulltests/tls/ScipherTests,   
+      testing/fulltests/tls/T151dtlsciphers_simple,   
+      testing/fulltests/tls/T152tlsciphers_simple:
+
+   cipher suite selection and tests for it
+
+2010-06-28 19:12  hardaker
+
+   * python/LICENSE:
+
+   license updates
+
+2010-06-28 19:12  hardaker
+
+   *  python/README, python/netsnmp/client.py,   
+      python/netsnmp/client_intf.c:
+
+   SNMPv3 over TLS support
+
+2010-06-28 19:12  hardaker
+
+   * python/netsnmp/tests/test.py:
+
+   better output showing test types
+
+2010-06-28 00:54  tanders
+
+   *  man/mib_api.3.def, man/netsnmp_agent.3, man/netsnmp_container.3,  
+       man/netsnmp_example_scalar_int.3, man/netsnmp_handler.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_utilities.3,   
+      man/netsnmp_table.3, man/snmpcmd.1.def, man/snmptrapd.conf.5.def:
+
+   CHANGES: man: clean up manual pages
+   (from Debian patch 56_manpage)
+
+2010-06-27 23:29  tanders
+
+   * apps/snmptrapd.c, apps/snmptrapd_auth.c:
+
+   CHANGES: build: Do not call vacm_standard_views() or
+   init_vacm_config_tokens() if the corresponding module was not
+   compiled
+   (from Debian patch 61_vacm_missing_dependency_check)
+
+2010-06-27 03:23  marz
+
+   * local/net-snmp-cert:
+
+   fix app tag completions
+
+2010-06-27 00:56  marz
+
+   * local/net-snmp-cert, local/net-snmp-cert.conf:
+
+   handle config file setting interactive, true/false values handled
+   in config
+
+2010-06-26 20:58  marz
+
+   * local/net-snmp-cert:
+
+   fix some bugs w/ spaces in names and app tag help
+
+2010-06-26 19:38  marz
+
+   *  testing/fulltests/tls/S300tlsperl.pl,   
+      testing/fulltests/tls/Stlsvars,   
+      testing/fulltests/transports/Stlstests:
+
+   fix tests to use non-interactive -I
+
+2010-06-26 17:46  marz
+
+   * local/certgen-test.pl, local/net-snmp-cert:
+
+   better interactive, ?=help, <tab> compl, more help, SAN loop
+   format and termination fix, tolerate spaces in fields and
+   filenames, more complete error output, embryonic import from url
+
+2010-06-26 13:48  bvassche
+
+   *  snmplib/snmp_transport.c, snmplib/transports/snmpDTLSUDPDomain.c, 
+        snmplib/transports/snmpTLSTCPDomain.c:
+
+   More compiler warning fixes.
+
+2010-06-26 13:47  bvassche
+
+   * acconfig.h, include/net-snmp/net-snmp-config.h.in:
+
+   Fixed the errors in acconfig.h and regenerated
+   net-snmp-config.h.in.
+
+2010-06-26 13:44  bvassche
+
+   * agent/mibgroup/smux/smux.c:
+
+   Fixed compiler warnings triggered by SMUX MIB implementation.
+
+2010-06-26 00:45  hardaker
+
+   *  snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      testing/fulltests/tls/Stlssantests,   
+      testing/fulltests/tls/T113dtlsudpsan_simple,   
+      testing/fulltests/tls/T114tlstcpsan_simple:
+
+   fixes and testing for checking SAN DNS names from the server
+
+2010-06-26 00:44  hardaker
+
+   *  testing/fulltests/tls/Stlsnametests,   
+      testing/fulltests/tls/Stlsservertests,   
+      testing/fulltests/tls/T111dtlsudpservertests_simple,   
+      testing/fulltests/tls/T112tlstcpservertests_simple:
+
+   genericize the server name tests
+
+2010-06-25 23:01  hardaker
+
+   *  agent/mibgroup/tsm-mib.h,   
+      agent/mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.c,   
+      agent/mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.h,   
+      snmplib/snmptsm.c, snmplib/transports/snmpDTLSUDPDomain.c,   
+      testing/fulltests/tls/Scrltests,   
+      testing/fulltests/tls/Stsmprefix,   
+      testing/fulltests/tls/T401dtlstsmprefix_simple,   
+      testing/fulltests/tls/T402tlstsmprefix_simple:
+
+   useprefix scalar testing and support
+
+2010-06-25 23:01  hardaker
+
+   * testing/fulltests/tls/Scrltests:
+
+   remove debugging lines
+
+2010-06-25 23:00  hardaker
+
+   * testing/fulltests/tls/Scrltests:
+
+   put in only minimial debug flags
+
+2010-06-25 23:00  hardaker
+
+   *  include/net-snmp/library/default_store.h,   
+      include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/cert_util.c, snmplib/transports/snmpTLSBaseDomain.c,   
+      testing/fulltests/tls/Scrltests,   
+      testing/fulltests/tls/T141dtlsudpcrl_simple,   
+      testing/fulltests/tls/T142tlstcpcrl_simple:
+
+   code and test cases for CRL handling
+
+2010-06-25 15:24  bvassche
+
+   * testing/fulltests/default/T060trapdperl_simple:
+
+   Added a newline at the end of each line printed by the Perl
+   interpreter.
+
+2010-06-25 13:08  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   reduce number of resend attempts and timeout
+
+2010-06-25 13:08  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      include/net-snmp/library/snmpTLSTCPDomain.h, snmplib/cert_util.c, 
+        snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   warning fixes
+
+2010-06-25 13:08  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   remove logic typo from previous commit
+
+2010-06-25 13:08  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      include/net-snmp/library/snmpTLSTCPDomain.h,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c,   
+      testing/fulltests/tls/T200tlsipv6_simple:
+
+   IPv6 fixes for TCP
+
+2010-06-25 13:01  jsafranek
+
+   * snmplib/snmp_api.c:
+
+   Reverting 19095, it breaks tests
+
+2010-06-25 09:40  jsafranek
+
+   * snmplib/snmp_api.c:
+
+   CHANGES: snmptranslate: fixed printing of ranges with UNSIGNED
+   type.
+
+2010-06-24 23:55  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   fix function names for stat increases
+
+2010-06-24 23:52  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   fix errors in comments
+
+2010-06-24 23:44  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   comments for 5.4 for dtls
+
+2010-06-24 23:44  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   comments for 5.3.2
+
+2010-06-24 23:43  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   client side connect comments
+
+2010-06-24 23:43  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   counter and comment improvements
+
+2010-06-24 23:43  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   update counter calls and comment text
+
+2010-06-24 19:03  bvassche
+
+   *  testing/fulltests/default/T061agentperl_simple,   
+      testing/fulltests/default/T115agentxperl_simple,   
+      testing/fulltests/support/simple_TESTCONF.sh:
+
+   Moved LD_LIBRARY_PATH setup from individual tests scripts to
+   simple_TESTCONF.sh.
+
+2010-06-24 19:02  bvassche
+
+   * testing/fulltests/support/simple_run:
+
+   Fixed a comment.
+
+2010-06-24 17:48  bvassche
+
+   * include/net-snmp/library/snmpTLSBaseDomain.h:
+
+   Should have been included in r19084.
+
+2010-06-24 17:47  bvassche
+
+   *  snmplib/cert_util.c, snmplib/snmp_transport.c,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   Fixed several recently introduced compiler warnings.
+
+2010-06-24 12:30  tanders
+
+   * configure, configure.d/config_os_progs:
+
+   "test -e" isn't portable; use "test -x" instead for the Perl
+   system()
+   check
+
+2010-06-23 11:14  jsafranek
+
+   * agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.c:
+
+   CHANGES: snmpd: fixed value of IP-MIB::ipv6InterfaceForwarding on
+   Linux
+   
+   The value was 0 (not forwarding) or 1 (forwarding), should be 2
+   and 1
+   instead - netsnmp_interface_entry.forwarding_v6 is boolean, not
+   TruthValue.
+
+2010-06-22 23:06  hardaker
+
+   * snmplib/cert_util.c, testing/fulltests/tls/Stlsuserstests:
+
+   support for certSecName mapping from a local cert file name and a
+   test for it
+
+2010-06-22 22:44  hardaker
+
+   * perl/SNMP/SNMP.pm:
+
+   documenation update to clean up and include TLS parameters
+
+2010-06-22 22:44  hardaker
+
+   * perl/SNMP/SNMP.pm, perl/SNMP/SNMP.xs:
+
+   support for passing identities and full working version
+
+2010-06-22 22:44  hardaker
+
+   *  testing/fulltests/tls/S300tlsperl.pl,   
+      testing/fulltests/tls/T300tlstcpperl.t,   
+      testing/fulltests/tls/T301dtlsperl.t:
+
+   perl TLS/DTLS tests
+
+2010-06-22 22:43  hardaker
+
+   * perl/SNMP/SNMP.pm, perl/SNMP/SNMP.xs:
+
+   first ptach on SNMP/TLS creating a new session function
+
+2010-06-22 22:43  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   first working support for a delayed close() to attempt to sending
+   outstanding packets in the queue; this is required for snmptrap
+   to work at all when sending traps (not informs) over DTLS
+
+2010-06-22 19:03  bvassche
+
+   *  testing/fulltests/default/T059trapdtraphandle_simple,   
+      testing/fulltests/default/T065agentextend_simple,   
+      testing/fulltests/support/simple_TESTCONF.sh:
+
+   CHANGES: MinGW: tests T059 and T065 do now pass.
+
+2010-06-22 19:01  bvassche
+
+   * apps/snmpnetstat/inet6.c:
+
+   The width argument for %.*d must have type int, not size_t. This
+   bug was introduced in r19014.
+
+2010-06-22 18:57  bvassche
+
+   * agent/mibgroup/utilities/execute.c:
+
+   CHANGES: MinGW: run_shell_command() with either input or output
+   (but not both) does now work.
+   This did not work until now because on MinGW mkstemp() generates
+   a MinGW-style path (/tmp/...) while system() invokes cmd.exe and
+   hence expects a Windows-style path (C:\...).
+
+2010-06-22 17:39  bvassche
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   Also report the port specification if [ $SNMP_VERBOSE -gt 0 ].
+
+2010-06-22 17:38  bvassche
+
+   *  testing/fulltests/default/T053agentv1trap_simple,   
+      testing/fulltests/default/T060trapdperl_simple,   
+      testing/fulltests/default/T061agentperl_simple,   
+      testing/fulltests/default/T100agenthup_simple,   
+      testing/fulltests/default/T115agentxperl_simple:
+
+   Replaced an explicit test for MinGW by a test on HAVE_SIGHUP.
+
+2010-06-22 17:36  bvassche
+
+   *  configure, configure.d/config_os_misc4,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   Added configure test for SIGHUP.
+
+2010-06-22 17:35  bvassche
+
+   * testing/RUNTESTS:
+
+   Report which tests failed, if any.
+
+2010-06-22 08:37  bvassche
+
+   * agent/mibgroup/mibII/var_route.c:
+
+   Fixed an error in a comment block.
+
+2010-06-21 19:26  bvassche
+
+   * testing/fulltests/default/T059trapdtraphandle_simple:
+
+   Rearranged the implementation of this test such that it is no
+   longer necessary
+   to invoke simple_eval_tools.sh when this script is invoked as a
+   trap handler
+   by snmptrapd.
+
+2010-06-21 08:01  dts12
+
+   * snmplib/large_fd_set.c:
+
+   Ensure that fdset structure is resized sufficiently
+   to accomodate the specified socket ID.
+   Problem reported by Shiyalei.
+
+2010-06-20 19:32  dts12
+
+   *  snmplib/cert_util.c, snmplib/cmu_compat.c, snmplib/pkcs.c,   
+      snmplib/snprintf.c:
+
+   Avoid duplicate (unused) symbols.
+
+2010-06-20 19:31  bvassche
+
+   * testing/fulltests/default/T059trapdtraphandle_simple:
+
+   Commented out debug code.
+
+2010-06-20 19:30  bvassche
+
+   * testing/RUNTESTS, testing/fulltests/support/simple_run:
+
+   Restored summary success/failure count reporting.
+   Also, moved kill.exe test back to RUNTESTS.
+
+2010-06-20 19:29  bvassche
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   CHANGES: testing: add the test name to the start of the file
+   "invoked".
+
+2010-06-20 19:27  bvassche
+
+   *  testing/fulltests/default/T053agentv1trap_simple,   
+      testing/fulltests/default/T060trapdperl_simple,   
+      testing/fulltests/default/T061agentperl_simple,   
+      testing/fulltests/default/T100agenthup_simple,   
+      testing/fulltests/default/T115agentxperl_simple:
+
+   CHANGES: MinGW: testing: skip the tests that require SIGHUP since
+   MinGW does not support SIGHUP.
+
+2010-06-20 15:19  bvassche
+
+   * configure, configure.d/config_os_progs, testing/Makefile.in:
+
+   Added a configure test that detects whether or not Perl's
+   system() function
+   invokes a POSIX shell. "make test" does now fall back to RUNTESTS
+   if not.
+
+2010-06-20 15:16  bvassche
+
+   *  snmplib/snmp_transport.c, snmplib/transports/snmpAliasDomain.c,   
+      snmplib/transports/snmpIPv4BaseDomain.c,   
+      snmplib/transports/snmpIPv6BaseDomain.c,   
+      snmplib/transports/snmpSocketBaseDomain.c,   
+      snmplib/transports/snmpTCPBaseDomain.c,   
+      snmplib/transports/snmpTCPDomain.c,   
+      snmplib/transports/snmpTCPIPv6Domain.c,   
+      snmplib/transports/snmpUDPBaseDomain.c,   
+      snmplib/transports/snmpUDPDomain.c,   
+      snmplib/transports/snmpUDPIPv4BaseDomain.c:
+
+   Builds again on MinGW -- added #include <net-snmp/types.h> where
+   necessary.
+   Note: although <net-snmp/types.h> is included indirectly from the
+   *     *transport.h    header files, these #include statements are
+      necessary because of    a pesky    circular dependence between
+      <net-snmp/types.h> and    <net-snmp/library/snmp_api.h>. 
+      2010-06-20 15:12  bvassche
+
+
+   * testing/fulltests/support/simple_run:
+
+   CHANGES: MinGW: refuse to run the regression tests if kill.exe
+   cannot be found.
+
+2010-06-20 15:11  bvassche
+
+   * testing/RUNTESTS:
+
+   Shortened the srcdir path by making sure that it does not contain
+   /..
+
+2010-06-19 18:30  bvassche
+
+   * testing/RUNFULLTESTS:
+
+   Added support for running RUNFULLTESTS with Test::Harness in
+   another directory than the source directory.
+
+2010-06-19 16:41  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h:
+
+   complete rewrite of params to use table_dataset instead of
+   create-dataset
+
+2010-06-19 16:41  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c:
+
+   use text for hash type in persistent store
+
+2010-06-19 16:40  rstory
+
+   *  agent/mibgroup/Rmon/rows.c,   
+      agent/mibgroup/examples/ucdDemoPublic.c:
+
+   quiet compiler warnings
+
+2010-06-19 16:40  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   fix missing specifier in debug
+
+2010-06-19 16:39  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c:
+
+   use define instead of constant; fix check for rows to save
+
+2010-06-19 16:39  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   add remove/find function for maps/addrs/params; rename params
+   tag->name;
+   destroy -> free; group recent trust functions together in src;
+   don't store
+   params fp as binary; hand text args for hash type (e.g --sha1)
+
+2010-06-18 15:35  bvassche
+
+   * agent/mibgroup/mibII/at.c:
+
+   CHANGES: Cygwin: corrected error handling in mibII/at.
+
+2010-06-18 07:23  bvassche
+
+   * include/net-snmp/library/snmp_api.h:
+
+   Fixed a compiler warning.
+
+2010-06-18 01:42  magfr
+
+   * snmplib/keytools.c:
+
+   Do not define ret twice when NETSNMP_USE_INTERNAL_CRYPTO is set.
+
+2010-06-18 01:39  magfr
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   Corrected typo.
+
+2010-06-18 00:31  hardaker
+
+   * CHANGES, NEWS:
+
+   better NEWS and CHANGES files
+
+2010-06-17 20:39  hardaker
+
+   * ChangeLog:
+
+   version update
+
+2010-06-17 20:31  hardaker
+
+   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
+      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
+
+   make depend
+
+2010-06-17 18:59  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+
+
+----------------------------------------------------------------------
+
+Changes: V5.5 -> V5.6.pre1
+
+2010-06-17 20:31  hardaker
+
+   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
+      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
+
+   make depend
+
+2010-06-17 18:59  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+2010-06-17 18:55  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
+2010-06-17 18:54  hardaker
+
+   * Makefile.top:
+
+   version update
+
+2010-06-17 18:39  hardaker
+
+   * dist/makerelease.xml:
+
+   re-enable some commands
+
+2010-06-17 17:46  hardaker
+
+   * testing/fulltests/tls/Stlsvars:
+
+   forgot missing quotes in SET output
+
+2010-06-17 17:46  hardaker
+
+   *  testing/fulltests/tls/Stlsagenttraptests,   
+      testing/fulltests/tls/Stlsvars:
+
+   tls testing cleanup
+
+2010-06-17 17:45  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   more fixes for address printing; more to come
+
+2010-06-17 17:45  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   mostly properly set remote/local transport parameters
+
+2010-06-17 17:45  hardaker
+
+   *  testing/fulltests/tls/Stlsagenttraptests,   
+      testing/fulltests/tls/T131dtlsudpagenttraptests_simple,   
+      testing/fulltests/tls/T132tlstcpagenttraptests_simple:
+
+   tests for agents sending of traps over (D)TLS
+
+2010-06-17 17:45  hardaker
+
+   *  testing/fulltests/tls/Stlsvars,   
+      testing/fulltests/tls/T101dtlsudpusertests_simple,   
+      testing/fulltests/tls/T102tlstcpusertests_simple,   
+      testing/fulltests/tls/T111dtlsudpservertests_simple,   
+      testing/fulltests/tls/T112tlstcpservertests_simple,   
+      testing/fulltests/tls/T121dtlsudptraptests_simple,   
+      testing/fulltests/tls/T122tlstcptraptests_simple:
+
+   move export statements to the support file for simplicity
+
+2010-06-17 17:44  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   move tls bootstrapping to post_premib so other config tokens can
+   use the cert loading results
+
+2010-06-17 17:44  hardaker
+
+   * testing/fulltests/unit-tests/T004snmp_enum_clib.c:
+
+   added snmp_enum tests pulled from the main() test at the bottom
+   of the original .c file
+
+2010-06-17 16:00  dts12
+
+   * agent/mibgroup/ucd-snmp/lmSensors.c:
+
+   Eliminate "differ in signedness" warning
+
+2010-06-17 00:14  hardaker
+
+   * snmplib/transports/snmpUDPBaseDomain.c:
+
+   revert UDP changes from r18984 since it broke the UDP transport;
+   the struct probably needs to match another struct somewhere else
+
+2010-06-16 23:26  hardaker
+
+   * snmplib/cert_util.c:
+
+   add a new KEYWORD output for debugging purposes
+
+2010-06-16 23:26  hardaker
+
+   * agent/agent_trap.c:
+
+   use config_and_open for opening the transport
+
+2010-06-16 23:26  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   extra debugging statements
+
+2010-06-16 22:14  hardaker
+
+   * testing/fulltests/tls/Stlsuserstests:
+
+   explicitly declare trust certificates to transport
+
+2010-06-16 22:14  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   cleanup some lost memory on closing
+
+2010-06-16 21:56  hardaker
+
+   *  snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   fix typos
+
+2010-06-16 21:34  dts12
+
+   *  agent/agent_registry.c, agent/helpers/row_merge.c,   
+      agent/helpers/table.c, agent/helpers/table_dataset.c,   
+      agent/mibgroup/agent/extend.c,   
+      agent/mibgroup/disman/schedule/schedCore.c,   
+      agent/mibgroup/if-mib/data_access/interface.c,   
+      agent/mibgroup/if-mib/data_access/interface_ioctl.c,   
+      agent/mibgroup/if-mib/ifTable/ifTable.c,   
+      agent/mibgroup/if-mib/ifXTable/ifXTable.c,   
+      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c,
+         agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
+      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c,   
+      agent/mibgroup/ip-mib/ip_scalars.c,   
+      agent/mibgroup/mibII/vacm_conf.c,   
+      agent/mibgroup/mibII/vacm_vars.c,   
+      agent/mibgroup/mibII/var_route.c,   
+      agent/mibgroup/notification-log-mib/notification_log.c,   
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c,
+         agent/mibgroup/ucd-snmp/disk.c,
+      agent/mibgroup/ucd-snmp/dlmod.c,   
+      agent/mibgroup/ucd-snmp/pass.c, agent/mibgroup/ucd-snmp/proxy.c,  
+       agent/snmp_agent.c:
+
+   Eliminate (most) "signed and unsigned comparison" warnings from
+   agent code [-Wsign-compare]
+
+2010-06-16 20:16  dts12
+
+   *  snmplib/asn1.c, snmplib/check_varbind.c,   
+      snmplib/container_binary_array.c, snmplib/dir_utils.c,   
+      snmplib/keytools.c, snmplib/large_fd_set.c, snmplib/parse.c,   
+      snmplib/read_config.c, snmplib/scapi.c, snmplib/snmp_api.c,   
+      snmplib/snmp_client.c, snmplib/snmpusm.c, snmplib/snmpv3.c,   
+      snmplib/text_utils.c, snmplib/vacm.c:
+
+   Eliminate (most) "signed and unsigned comparison" warnings from
+   library code [-Wsign-compare]
+
+2010-06-16 19:36  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   remove older no-longer-needed-duplicate-config entries
+
+2010-06-16 19:14  dts12
+
+   * snmplib/vacm.c:
+
+   Fix processing of view masks (misplaced parentheses)
+
+2010-06-16 18:45  dts12
+
+   *  apps/agentxtrap.c, apps/snmpnetstat/if.c,   
+      apps/snmpnetstat/inet.c, apps/snmpnetstat/inet6.c,   
+      apps/snmptable.c, apps/snmptrapd_log.c, apps/snmpusm.c:
+
+   Eliminate "signed and unsigned comparison" from app code
+   [-Wsign-compare]
+
+2010-06-16 17:22  hardaker
+
+   * testing/fulltests/tls/Stlstrapdusertests:
+
+   check for informs sent over tls transports
+
+2010-06-16 17:22  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   copy other valuse from parent tlsbase data
+
+2010-06-16 17:21  hardaker
+
+   *  testing/fulltests/tls/Stlstrapdusertests,   
+      testing/fulltests/tls/Stlsvars,   
+      testing/fulltests/tls/T121dtlsudptraptests_simple,   
+      testing/fulltests/tls/T122tlstcptraptests_simple:
+
+   added basic trap sending and receiving tests
+
+2010-06-16 17:21  hardaker
+
+   * testing/fulltests/tls/Stlsuserstests:
+
+   remove no longer needed temp file touches
+
+2010-06-16 17:20  hardaker
+
+   *  agent/snmp_agent.c, include/net-snmp/library/snmp_transport.h,   
+      snmplib/cert_util.c, snmplib/snmp_api.c:
+
+   added a new function and transport flag to indicate if the f_open
+   call has been called yet
+
+2010-06-16 17:20  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   unused var warning cleanup
+
+2010-06-16 17:19  hardaker
+
+   *  include/net-snmp/library/cert_util.h, snmplib/cert_util.c,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   added trustCert configuration token
+
+2010-06-16 17:19  hardaker
+
+   * testing/fulltests/tls/Stlsuserstests:
+
+   minor tweaks for testing clarity
+
+2010-06-16 17:18  hardaker
+
+   *  testing/fulltests/tls/Stlsuserstests,   
+      testing/fulltests/tls/T101dtlsudpusertests_simple,   
+      testing/fulltests/tls/T102tlstcpusertests_simple,   
+      testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests,   
+      testing/fulltests/transports/T360dtlsudp_simple,   
+      testing/fulltests/transports/T361tlstcp_simple:
+
+   moved complex (D)TLS to a separate section and made the transport
+   tests only test minimal support
+
+2010-06-16 17:17  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   add mechanisms for specifying and expecting the hostname of the
+   far side
+
+2010-06-16 17:17  hardaker
+
+   *  testing/fulltests/tls/Stlsservertests,   
+      testing/fulltests/tls/Stlsvars:
+
+   tests for verifying server certificate check failures
+
+2010-06-16 17:17  hardaker
+
+   *  testing/fulltests/tls, testing/fulltests/tls/Stlsservertests,   
+      testing/fulltests/tls/Stlsvars,   
+      testing/fulltests/tls/T111dtlsudpservertests_simple,   
+      testing/fulltests/tls/T112tlstcpservertests_simple:
+
+   testing for checking client side verification of server
+   certificates
+
+2010-06-16 17:16  hardaker
+
+   * include/net-snmp/library/snmpTLSBaseDomain.h:
+
+   setup for a hostname config option
+
+2010-06-16 17:16  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   setup for a hostname config option
+
+2010-06-16 17:15  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   check to make suer ssl pointer has been created via f_open call
+
+2010-06-16 15:02  dts12
+
+   * agent/snmp_perl.h, apps/snmptrapd.c:
+
+   Declare 'shutdown_perl' properly.
+
+2010-06-16 14:37  dts12
+
+   * agent/snmpd.c, snmplib/keytools.c, snmplib/lcd_time.c:
+
+   Eliminate "signed and unsigned type in conditional expression"
+   warnings [-Wsign-compare]
+
+2010-06-16 14:27  dts12
+
+   * agent/mibgroup/target/target.c:
+
+   Eliminate "unused variable" warning
+
+2010-06-16 14:22  dts12
+
+   *  agent/helpers/old_api.c, agent/helpers/row_merge.c,   
+      agent/helpers/table_dataset.c,   
+      agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
+      agent/snmpd.c, snmplib/transports/snmpUDPBaseDomain.c:
+
+   Eliminate various "implicit conversion" warnings [-Wc++-compat]
+
+2010-06-16 13:13  dts12
+
+   *  agent/mibgroup/ip-forward-mib/data_access/route_linux.c,   
+      agent/mibgroup/ip-mib/data_access/arp_linux.c,   
+      agent/mibgroup/ip-mib/data_access/scalars_linux.c,   
+      agent/mibgroup/mibII/at.c, agent/mibgroup/mibII/tcpTable.c,   
+      agent/mibgroup/mibII/vacm_conf.c,   
+      agent/mibgroup/mibII/var_route.c,   
+      agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c,   
+      apps/snmpvacm.c, snmplib/tools.c:
+
+   Eliminate (most) signed-vs-unsigned warnings from numeric scanf
+   processing [-pedantic]
+
+2010-06-16 03:28  rstory
+
+   *  agent/helpers/table_tdata.c,   
+      agent/mibgroup/ip-forward-mib/data_access/route_common.c,   
+      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c,
+        
+      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c,
+         agent/mibgroup/ip-mib/data_access/arp_common.c,   
+      agent/mibgroup/ip-mib/data_access/ipv6scopezone_common.c,   
+      agent/mibgroup/ip-mib/data_access/systemstats_common.c,   
+      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.c,
+         agent/mibgroup/mibII/sysORTable.c,   
+      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c,
+        
+      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c,
+         snmplib/container.c:
+
+   the great un-named container hunt
+
+2010-06-16 03:27  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c:
+
+   share cache between table and count scalar; when reading config,
+   add to
+   library containers for active rows, table containers for inactive
+   rows;
+   user cert_util apis instead of direct container manipulation;
+   when
+   saving inactive map rows, skip all but nonVolatile
+
+2010-06-16 03:26  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   fix debug token typo
+
+2010-06-16 03:25  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   add api for adding entries to tltsm addr, params and cert map
+   containers;
+   register se slist pair earlier so they are available during
+   config parsing;
+   make sure config strings are null terminated
+
+2010-06-15 21:42  dts12
+
+   * agent/mibgroup/ip-mib/data_access/arp_linux.c:
+
+   Suppress warnings:
+   'struct nlmsghdr defined inside parameter list' and
+   'function _load_v6 declared but never defined'
+
+2010-06-15 21:30  dts12
+
+   *  agent/kernel.c, apps/snmptrapd_sql.c, snmplib/cert_util.c,   
+      snmplib/cmu_compat.c, snmplib/pkcs.c, snmplib/snprintf.c:
+
+   Eliminate "empty translation unit" warnings [-pedantic]
+
+2010-06-15 07:07  magfr
+
+   * testing/fulltests/unit-tests/T003copy_nword_clib.c:
+
+   Add test of copy_nword
+
+2010-06-14 21:32  dts12
+
+   *  agent/mibgroup/disman/event/mteEvent.h,   
+      agent/mibgroup/disman/event/mteTrigger.h,   
+      agent/mibgroup/disman/schedule/schedConf.c,   
+      agent/mibgroup/disman/schedule/schedCore.c:
+
+   Eliminate "overflow in implicit constant conversion" warnings
+   [-Wc++-compat]
+
+2010-06-14 15:51  dts12
+
+   * agent/snmpd.c, apps/encode_keychange.c, snmplib/read_config.c:
+
+   Eliminate "string length greater than 509" warnings [-pedantic]
+
+2010-06-14 15:19  dts12
+
+   * snmplib/transports/snmpUDPBaseDomain.c:
+
+   Eliminate "initializer element is not computable" warnings
+   [-pedantic]
+
+2010-06-14 05:27  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c:
+
+   update count handlers to count non-active rows too
+
+2010-06-14 05:12  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c:
+
+   only tweak storageType for active rows; reset entry flags when
+   removing from
+   cert_util maps; when createing rows from cert_util maps, set
+   stragetType to
+   volatile if nonVolatile flag not set; dont free cache in
+   cache_load on err
+
+2010-06-14 05:10  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_internal.h,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c:
+
+   move tlstmAddr table config parsing to cert_util; add cache to
+   merge cert_util
+   addrs (active) and non-active rows;
+
+2010-06-14 05:10  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   add nonVolatile flag to tlstmAddr table; set container name; skip
+   '0x' in fp
+
+2010-06-14 05:09  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   change LOG_ERR to LOG_INFO for non-error log msg
+
+2010-06-13 21:02  dts12
+
+   *  agent/mibgroup/if-mib/data_access/interface.c,   
+      agent/mibgroup/if-mib/data_access/interface_ioctl.c,   
+      agent/mibgroup/if-mib/data_access/interface_openbsd.c,   
+      agent/mibgroup/if-mib/data_access/interface_solaris2.c,   
+      agent/mibgroup/if-mib/data_access/interface_sysctl.c,   
+      agent/mibgroup/if-mib/ifTable/ifTable.c,   
+      agent/mibgroup/if-mib/ifTable/ifTable_data_access.c,   
+      agent/mibgroup/if-mib/ifTable/ifTable_interface.c,   
+      agent/mibgroup/if-mib/ifXTable/ifXTable.c,   
+      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c,   
+      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c,
+        
+      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c,
+        
+      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c,
+         agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
+      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c,
+         agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c,   
+      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c,  
+      
+      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c,  
+      
+      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.c,
+        
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c,
+        
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
+        
+      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c,
+        
+      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c,
+        
+      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c,
+        
+      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c,
+         local/mib2c-conf.d/mfd-interface.m2c:
+
+   Eliminate (most) "implicit conversion" warnings from
+   MfD-based MIB module code, and MfD template [-Wc++-compat]
+
+2010-06-12 21:33  dts12
+
+   *  agent/mibgroup/agent/extend.c,   
+      agent/mibgroup/disman/event/mteEventConf.c,   
+      agent/mibgroup/disman/event/mteObjectsConf.c,   
+      agent/mibgroup/disman/event/mteTriggerConf.c,   
+      agent/mibgroup/disman/expr/expExpressionConf.c,   
+      agent/mibgroup/disman/expr/expObjectConf.c,   
+      agent/mibgroup/disman/schedule/schedConf.c,   
+      agent/mibgroup/hardware/cpu/cpu.c,   
+      agent/mibgroup/hardware/cpu/cpu_linux.c,   
+      agent/mibgroup/hardware/cpu/cpu_perfstat.c,   
+      agent/mibgroup/hardware/cpu/cpu_sysctl.c,   
+      agent/mibgroup/hardware/fsys/fsys_getfsstats.c,   
+      agent/mibgroup/hardware/memory/memory_linux.c,   
+      agent/mibgroup/hardware/memory/memory_solaris.c,   
+      agent/mibgroup/host/data_access/swrun.c,   
+      agent/mibgroup/host/hr_disk.c, agent/mibgroup/mibII/sysORTable.c, 
+        agent/mibgroup/notification/snmpNotifyFilterProfileTable.c,   
+      agent/mibgroup/notification/snmpNotifyTable.c,   
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c,
+         agent/mibgroup/target/snmpTargetAddrEntry.c,   
+      agent/mibgroup/ucd-snmp/disk.c, agent/mibgroup/ucd-snmp/proxy.c,  
+       agent/mibgroup/utilities/override.c:
+
+   Eliminate (most) "implicit conversion" warnings from (non-MfD)
+   MIB module code. [-Wc++-compat]
+
+2010-06-12 10:26  dts12
+
+   *  agent/agent_handler.c, agent/agent_index.c,   
+      agent/agent_registry.c, agent/agent_sysORTable.c,   
+      agent/helpers/baby_steps.c, agent/helpers/cache_handler.c,   
+      agent/helpers/mode_end_call.c, agent/helpers/row_merge.c,   
+      agent/helpers/scalar.c, agent/helpers/stash_cache.c,   
+      agent/helpers/table_array.c, agent/helpers/table_container.c,   
+      agent/helpers/table_dataset.c, agent/helpers/table_iterator.c,   
+      agent/helpers/table_tdata.c, agent/helpers/watcher.c,   
+      agent/snmp_agent.c, apps/snmptrapd.c, apps/snmptrapd_log.c,   
+      snmplib/dir_utils.c, snmplib/file_utils.c,   
+      snmplib/large_fd_set.c, snmplib/snmp_api.c:
+
+   Eliminate (most) "implicit conversion" warnings from library,
+   apps and agent framework+helpers code. [-Wc++-compat]
+
+2010-06-10 20:01  rstory
+
+   * agent/mibgroup/target/target.c:
+
+   lookup cert keys for tls domains; use SEC_MODEL define instead of
+   hardcoded
+   constant; add SEC_MODEL_TSM to allowed sec models for mpModel
+   SNMP_VERSION_3
+
+2010-06-10 20:00  rstory
+
+   * agent/mibgroup/notification/snmpNotifyTable.c:
+
+   default to readOnly/active for bad config
+
+2010-06-10 20:00  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   add debug; switch to SEC_MODEL_TSM and warn if other secmode set,
+   instead
+   of simply logging that it won't work
+
+2010-06-10 19:59  rstory
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   check ptrs before dereference
+
+2010-06-10 19:58  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   move snmpTlstmAddrTable data management to cert_util; implement
+   TARGET_ADDR
+   and TARGET_PARAMS lookup in cert API
+
+2010-06-10 19:47  rstory
+
+   * snmplib/snmp_api.c:
+
+   update sec model define missed in earlier checkin
+
+2010-06-10 19:46  rstory
+
+   * agent/agent_trap.c:
+
+   config trapsess transports on creation; simplify ifdefs for
+   DISABLE_SNMPV1
+
+2010-06-10 19:46  rstory
+
+   *  include/net-snmp/library/snmp.h,   
+      include/net-snmp/library/snmp_secmod.h,   
+      include/net-snmp/library/snmpusm.h, snmplib/snmpksm.c,   
+      snmplib/snmptsm.c, snmplib/transports/snmpTLSBaseDomain.c:
+
+   auto switch to v3 for (d)tls sessions instead of logging that
+   others wont
+   work; define TSM sec model with other sec models; consistently
+   use
+   SNMP_SEC_MODEL_* in the code, using #defines for backwards
+   compatibility
+   w/*_SECURITY_MODEL
+
+2010-06-10 19:46  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c,
+         include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   certToTSN: move mib related persistence back into mib module;
+   cert_util: add tlstmParams persistence; use slist for cert map
+   type name
+   mapping;
+
+2010-06-10 19:45  rstory
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   fix compiler warning (const)
+
+2010-06-10 04:58  magfr
+
+   * agent/agent_handler.c:
+
+   Add missing indentation of a do-while loop to make the code
+   readable.
+
+2010-06-09 22:57  hardaker
+
+   * local/net-snmp-cert:
+
+   comment out keyUsage so proper self-signed certs are generated
+
+2010-06-09 22:57  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   solidify certificate acceptance for the client side
+
+2010-06-09 22:57  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   fix array typo
+
+2010-06-09 22:56  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   log openssl errors on accept failure
+
+2010-06-09 22:56  hardaker
+
+   * snmplib/snmp_api.c:
+
+   register default ports for tls/dtls
+
+2010-06-09 22:56  hardaker
+
+   * snmplib/cert_util.c:
+
+   do proper STORE loading of trusted certificates rather than file
+   based loading
+
+2010-06-09 22:56  hardaker
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   added two new APIs: netsnmp_cert_trust and netsnmp_cert_trust_ca
+
+2010-06-09 22:55  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   added straight 'tls' transport name
+
+2010-06-09 22:55  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   added straight 'dtls' transport name
+
+2010-06-08 21:05  magfr
+
+   * agent/Makefile.in:
+
+   Install agent_read_config.h in 5.6 as well. It disappeared in
+   r18843.
+
+2010-06-08 09:25  dts12
+
+   *  agent/mibgroup/hardware/fsys/hw_fsys.h,   
+      agent/mibgroup/host/hrh_filesys.c,   
+      agent/mibgroup/ucd-snmp/disk_hw.c:
+
+   Remove (or activate) unused variables.
+   Fix misnamed function declaration.
+
+2010-06-08 07:11  dts12
+
+   * include/net-snmp/agent/hardware/fsys.h:
+
+   API changes for preliminary HAL_based implementation of UCD disk
+   module.
+   (Omitted from revision 18932 checkin)
+
+2010-06-08 04:18  rstory
+
+   * agent/Makefile.in:
+
+   update makefile for moved helper headers
+
+2010-06-07 20:18  jsafranek
+
+   * agent/mibgroup/host/hr_proc.c:
+
+   Reverting rev. 17616, the necessary check is already in rev.
+   17415.
+
+2010-06-06 03:45  magfr
+
+   * configure, configure.d/config_project_paths:
+
+   CHANGES: building: In case exec_prefix is unset then set it to
+   '${prefix}' in order to pick up overrides of $prefix in make
+   install.
+
+2010-06-04 04:06  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   do a better job of verifying fingerprints of remote servers
+   pulling fingerprints from a number of possible places
+
+2010-06-04 04:05  hardaker
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   go ahead and log output file for easier debugging in errors
+
+2010-06-04 04:05  hardaker
+
+   * testing/fulltests/transports/Stlstests:
+
+   fix typo
+
+2010-06-04 04:05  hardaker
+
+   * snmplib/scapi.c:
+
+   remove comment about random being inadequate; we're doing the
+   best we can based on what we have
+
+2010-06-04 04:04  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   use another user for testing snmpapp default certificate
+
+2010-06-04 04:04  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   run a default test without a local key to ensure the snmpapp type
+   is picked up
+
+2010-06-04 04:04  hardaker
+
+   * snmplib/cert_util.c:
+
+   add a special case for the local identity and pull it from a
+   filename of the init_snmp() registered type name
+
+2010-06-04 04:03  hardaker
+
+   * testing/fulltests/support/NetSNMPTest.pm:
+
+   doc update
+
+2010-06-04 04:03  hardaker
+
+   * testing/fulltests/perl/T105unix.t:
+
+   unix socket test
+
+2010-06-04 04:03  hardaker
+
+   *  testing/fulltests/perl/T103udp6.t,   
+      testing/fulltests/perl/T104tcp6.t:
+
+   ipv6 tests
+
+2010-06-04 04:02  hardaker
+
+   *  testing/fulltests/perl/T101udp.t,   
+      testing/fulltests/perl/T102tcp.t:
+
+   mention test name is IPv4
+
+2010-06-04 04:02  hardaker
+
+   *  testing/fulltests/perl/T101udp.t,   
+      testing/fulltests/perl/T102tcp.t:
+
+   check that transport was configured
+
+2010-06-04 04:02  hardaker
+
+   * testing/fulltests/support/NetSNMPTest.pm:
+
+   add support for net-snmp-config.h checks
+
+2010-06-04 04:01  hardaker
+
+   *  testing/fulltests/perl/NetSNMPTestTransport.pm,   
+      testing/fulltests/perl/T101udp.t,   
+      testing/fulltests/perl/T102tcp.t:
+
+   some basic transport checking for perl: udp and tcp
+
+2010-06-04 04:01  hardaker
+
+   * testing/fulltests/perl, testing/fulltests/perl/T001basic.t:
+
+   basic tests for perl
+
+2010-06-04 04:01  hardaker
+
+   * testing/fulltests/support/NetSNMPTest.pm:
+
+   infrastructure module for testing perl support
+
+2010-06-03 15:56  dts12
+
+   * dist/makerelease.xml:
+
+   Point LIB{CURRENT,AGE,REVISION} documentation to the correct
+   file.
+   Warn about 'makedepend' picking up testing module code.
+   Emphasis update of 'download.html' page
+   Mention update of Official Patches
+   Suppress broken commands
+
+2010-06-03 15:16  dts12
+
+   *  agent/mibgroup/ucd-snmp/disk_hw.c,   
+      agent/mibgroup/ucd-snmp/disk_hw.h, agent/mibgroup/ucd_snmp.h:
+
+   Preliminary HAL_based implementation of UCD disk module.
+   Ensures consistent reporting between UCD and HostRes FSys usage
+   and extends 'skipNFSInHostResources' config to UCD disk stats.
+
+2010-06-03 15:13  dts12
+
+   * agent/mibgroup/hardware/fsys/hw_fsys.c:
+
+   Fix broken size calculations.
+   Support 64-bit size/usage values.
+
+2010-06-02 14:52  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   use --with-ca instead of --ca
+
+2010-06-02 14:51  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   use the new -brief option for fingerprint capturing
+
+2010-06-02 14:40  marz
+
+   * local/net-snmp-cert:
+
+   fix --with-ca handling, fix CA newcerts bookkeeping
+
+2010-06-02 10:57  jsafranek
+
+   *  agent/mibgroup/disman/mteEventTable.c,   
+      agent/mibgroup/utilities/override.c:
+
+   CHANGES: snmpd: fixed potential buffer overflow in parsing OIDs
+   in config files.
+
+2010-06-02 00:24  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   check that CA certificates created after snmpd starts are still
+   usable; check all output fingerprints to ensure they were
+   properly created
+
+2010-06-02 00:23  hardaker
+
+   * local/net-snmp-cert:
+
+   add missing directory and file suffix to ca invocations
+
+2010-06-02 00:21  hardaker
+
+   * testing/fulltests/transports/Stls:
+
+   check that certificate output fingerprints were found
+
+2010-06-02 00:20  hardaker
+
+   * testing/fulltests/support/simple_eval_tools.sh:
+
+   two new functions for value comparison test output
+
+2010-06-02 00:16  hardaker
+
+   *  include/net-snmp/library/default_store.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      testing/fulltests/transports/Stls:
+
+   remove no-longer-used self-signed certificate token specifier (we
+   require a copy of the key)
+
+2010-06-02 00:08  hardaker
+
+   *  include/net-snmp/library/cert_util.h,   
+      include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/cert_util.c, snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c,   
+      testing/fulltests/transports/Stlstests:
+
+   - changed 'fingerprint' token to more generic 'identity' keyword
+   - added the ability for netsnmp_cert_find to try multiple types
+   (FP & file)
+   - and provide test suite test for it.
+
+2010-06-01 20:12  bvassche
+
+   *  testing/fulltests/default/T060trapdperl_simple,   
+      testing/fulltests/default/T061agentperl_simple,   
+      testing/fulltests/default/T115agentxperl_simple:
+
+   Made sure that the Perl extension modules can load the Net-SNMP
+   DLLs while running the Net-SNMP regression tests.
+
+2010-06-01 16:47  marz
+
+   * local/certgen-test.pl, local/net-snmp-cert:
+
+   major update bug fixes and features - interactive mode, separate
+   CA dirs, gen csr from cert, fingerprint display --brief,
+   eliminate sed, openssl.conf overwrite and templating
+
+2010-06-01 14:48  bvassche
+
+   * agent/helpers/table.c:
+
+   Fixed a typo in a source code comment.
+
+2010-06-01 14:25  jsafranek
+
+   * agent/mibgroup/ip-mib/data_access/systemstats_common.c:
+
+   CHANGES: snmpd: fixed IP-MIB::ipIfStatsReasmReqds value.
+   
+   Just fixing a stupid typo.
+
+2010-05-31 10:43  bvassche
+
+   * configure, configure.d/config_modules_lib:
+
+   CHANGES: Cygwin: enabled Unix transport.
+   (Forward-ported r18687 from the V5.5 branch).
+
+2010-05-30 22:52  tanders
+
+   * testing/RUNFULLTESTS:
+
+   enable to run with older Perl (e.g. Perl 5.00405 as shipped with
+   IRIX
+   6.5)
+
+2010-05-30 22:49  tanders
+
+   * testing/RUNFULLTESTS:
+
+   polish documentation
+
+2010-05-30 20:19  magfr
+
+   *  agent/Makefile.in, agent/helpers/Makefile.in, apps/Makefile.in,   
+      net-snmp-config.in, net-snmp-create-v3-user.in,   
+      perl/TrapReceiver/Makefile.PL, perl/agent/Makefile.PL:
+
+   CHANGES: building: Do not link with libnetsnmphelpers any more as
+   it is empty.
+
+2010-05-30 19:18  magfr
+
+   * include/net-snmp/library/snmp.h, snmplib/snmp.c:
+
+   CHANGES: snmplib: Use a void argument for the data argument of
+   xdump.
+
+2010-05-30 19:18  bvassche
+
+   * agent/snmp_perl.c:
+
+   CHANGES: BUG: 2051742: added missing PERL_SYS_INIT3() call (see
+   also man perlembed).
+
+2010-05-30 19:16  bvassche
+
+   * include/net-snmp/library/container.h:
+
+   Fixed a compiler warning (free() called without being declared
+   first).
+
+2010-05-30 16:56  magfr
+
+   *  acconfig.h, agent/mibgroup/mibII/vacm_conf.c,   
+      agent/mibgroup/smux/smux.h, configure,   
+      configure.d/config_modules_lib,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   NEWS: snmplib: Do not require that the UDP transport is included.
+
+2010-05-30 12:00  magfr
+
+   *  include/net-snmp/library/snmpCallbackDomain.h,   
+      include/net-snmp/library/snmpDTLSUDPDomain.h,   
+      include/net-snmp/library/snmpIPv4BaseDomain.h,   
+      include/net-snmp/library/snmpIPv6BaseDomain.h,   
+      include/net-snmp/library/snmpSSHDomain.h,   
+      include/net-snmp/library/snmpSTDDomain.h,   
+      include/net-snmp/library/snmpTCPBaseDomain.h,   
+      include/net-snmp/library/snmpTCPDomain.h,   
+      include/net-snmp/library/snmpTCPIPv6Domain.h,   
+      include/net-snmp/library/snmpTLSTCPDomain.h,   
+      include/net-snmp/library/snmpUDPBaseDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h,   
+      include/net-snmp/library/snmpUnixDomain.h,   
+      include/net-snmp/library/snmp_transport.h,   
+      snmplib/snmp_transport.c, snmplib/transports/snmpAAL5PVCDomain.c, 
+        snmplib/transports/snmpAliasDomain.c,   
+      snmplib/transports/snmpCallbackDomain.c,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpIPXDomain.c,   
+      snmplib/transports/snmpIPv4BaseDomain.c,   
+      snmplib/transports/snmpIPv6BaseDomain.c,   
+      snmplib/transports/snmpSSHDomain.c,   
+      snmplib/transports/snmpSTDDomain.c,   
+      snmplib/transports/snmpSocketBaseDomain.c,   
+      snmplib/transports/snmpTCPBaseDomain.c,   
+      snmplib/transports/snmpTCPDomain.c,   
+      snmplib/transports/snmpTCPIPv6Domain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c,   
+      snmplib/transports/snmpUDPBaseDomain.c,   
+      snmplib/transports/snmpUDPDomain.c,   
+      snmplib/transports/snmpUDPIPv4BaseDomain.c,   
+      snmplib/transports/snmpUDPIPv6Domain.c,   
+      snmplib/transports/snmpUnixDomain.c:
+
+   CHANGES: snmplib: Correct dependencies between transports. Remove
+   unnecessary includes.
+
+2010-05-30 06:21  bvassche
+
+   * agent/helpers/Makefile.in, agent/helpers/dummy.c:
+
+   Made sure that libnetsnmphelpers is not empty such that building
+   Net-SNMP on AIX and IRIX is again possible.
+
+2010-05-29 09:52  bvassche
+
+   * testing/RUNFULLTESTS:
+
+   Follow-up for r18902: works again without TAP::Harness.
+
+2010-05-28 23:23  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   fix long-ago broken verbosity
+
+2010-05-28 23:05  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   fix more previously broken option renames; change -d to
+   master-directory and add as a real argument
+
+2010-05-28 23:05  hardaker
+
+   *  testing/fulltests/default/T001snmpv1get_simple,   
+      testing/fulltests/default/T014snmpv2cget_simple,   
+      testing/fulltests/default/T015snmpv2cgetnext_simple,   
+      testing/fulltests/default/T0160snmpv2cbulkget_simple,   
+      testing/fulltests/default/T016snmpv2cgetfail_simple,   
+      testing/fulltests/default/T017snmpv2ctov1getfail_simple,   
+      testing/fulltests/default/T018snmpv1tov2cgetfail_simple,   
+      testing/fulltests/default/T019snmpv2cnosuch_simple,   
+      testing/fulltests/default/T020snmpv3get_simple,   
+      testing/fulltests/default/T021snmpv3getnext_simple,   
+      testing/fulltests/default/T0220snmpv3bulkget_simple,   
+      testing/fulltests/default/T022snmpv3getMD5_simple,   
+      testing/fulltests/default/T023snmpv3getMD5AES_simple,   
+      testing/fulltests/default/T023snmpv3getMD5DES_simple,   
+      testing/fulltests/default/T024snmpv3getSHA1_simple,   
+      testing/fulltests/default/T025snmpv3getSHADES_simple,   
+      testing/fulltests/default/T026snmpv3getSHAAES_simple,   
+      testing/fulltests/default/T028snmpv3getfail_simple,   
+      testing/fulltests/default/T030snmpv3usercreation_simple,   
+      testing/fulltests/default/T035snmpv3trapdusermgmt_simple,   
+      testing/fulltests/default/T049snmpv3inform_simple,   
+      testing/fulltests/default/T049snmpv3informauth_simple,   
+      testing/fulltests/default/T049snmpv3informpriv_simple,   
+      testing/fulltests/default/T050snmpv3trap_simple,   
+      testing/fulltests/default/T051snmpv2ctrap_simple,   
+      testing/fulltests/default/T052snmpv2cinform_simple,   
+      testing/fulltests/default/T053agentv1trap_simple,   
+      testing/fulltests/default/T054agentv2ctrap_simple,   
+      testing/fulltests/default/T055agentv1mintrap_simple,   
+      testing/fulltests/default/T056agentv2cmintrap_simple,   
+      testing/fulltests/default/T057trapdauthtest2_simple,   
+      testing/fulltests/default/T057trapdauthtest3_simple,   
+      testing/fulltests/default/T057trapdauthtest_simple,   
+      testing/fulltests/default/T058agentauthtrap_simple,   
+      testing/fulltests/default/T059trapdtraphandle_simple,   
+      testing/fulltests/default/T060trapdperl_simple,   
+      testing/fulltests/default/T061agentperl_simple,   
+      testing/fulltests/default/T065agentextend_simple,   
+      testing/fulltests/default/T070com2sec_simple,   
+      testing/fulltests/default/T071com2sec6_simple,   
+      testing/fulltests/default/T072com2secunix_simple,   
+      testing/fulltests/default/T100agenthup_simple,   
+      testing/fulltests/default/T110agentxget_simple,   
+      testing/fulltests/default/T111agentxset_simple,   
+      testing/fulltests/default/T112agentxsetfail_simple,   
+      testing/fulltests/default/T113agentxtrap_simple,   
+      testing/fulltests/default/T114agentxagentxtrap_simple,   
+      testing/fulltests/default/T115agentxperl_simple,   
+      testing/fulltests/default/T120proxyget_simple,   
+      testing/fulltests/default/T121proxyset_simple,   
+      testing/fulltests/default/T122proxysetfail_simple,   
+      testing/fulltests/default/T130snmpv1vacmget_simple,   
+      testing/fulltests/default/T131snmpv2cvacmget_simple,   
+      testing/fulltests/default/T132snmpv3vacmget_simple,   
+      testing/fulltests/default/T140snmpv1vacmgetfail_simple,   
+      testing/fulltests/default/T141snmpv2cvacmgetfail_simple,   
+      testing/fulltests/default/T142snmpv3vacmgetfail_simple,   
+      testing/fulltests/default/T150solarishostcpu_simple,   
+      testing/fulltests/default/T151solarishostdisk_simple,   
+      testing/fulltests/default/T152hostuptime_simple,   
+      testing/fulltests/default/T153solarisswap_simple,   
+      testing/fulltests/default/T160snmpnetstat_simple,   
+      testing/fulltests/default/T200snmpv2cwalkall_simple,   
+      testing/fulltests/transports/T300udp_simple,   
+      testing/fulltests/transports/T310tcp_simple,   
+      testing/fulltests/transports/T320udpv6_simple,   
+      testing/fulltests/transports/T330tcpv6_simple,   
+      testing/fulltests/transports/T350unix_simple,   
+      testing/fulltests/transports/T360dtlsudp_simple,   
+      testing/fulltests/transports/T361tlstcp_simple,   
+      testing/fulltests/transports/T399alias_simple:
+
+   more missing olducd renames
+
+2010-05-28 22:57  hardaker
+
+   *  testing/RUNTESTS, testing/fulltests/default/T001snmpv1get_olducd, 
+        testing/fulltests/default/T001snmpv1get_simple,   
+      testing/fulltests/default/T014snmpv2cget_olducd,   
+      testing/fulltests/default/T014snmpv2cget_simple,   
+      testing/fulltests/default/T015snmpv2cgetnext_olducd,   
+      testing/fulltests/default/T015snmpv2cgetnext_simple,   
+      testing/fulltests/default/T0160snmpv2cbulkget_olducd,   
+      testing/fulltests/default/T0160snmpv2cbulkget_simple,   
+      testing/fulltests/default/T016snmpv2cgetfail_olducd,   
+      testing/fulltests/default/T016snmpv2cgetfail_simple,   
+      testing/fulltests/default/T017snmpv2ctov1getfail_olducd,   
+      testing/fulltests/default/T017snmpv2ctov1getfail_simple,   
+      testing/fulltests/default/T018snmpv1tov2cgetfail_olducd,   
+      testing/fulltests/default/T018snmpv1tov2cgetfail_simple,   
+      testing/fulltests/default/T019snmpv2cnosuch_olducd,   
+      testing/fulltests/default/T019snmpv2cnosuch_simple,   
+      testing/fulltests/default/T020snmpv3get_olducd,   
+      testing/fulltests/default/T020snmpv3get_simple,   
+      testing/fulltests/default/T021snmpv3getnext_olducd,   
+      testing/fulltests/default/T021snmpv3getnext_simple,   
+      testing/fulltests/default/T0220snmpv3bulkget_olducd,   
+      testing/fulltests/default/T0220snmpv3bulkget_simple,   
+      testing/fulltests/default/T022snmpv3getMD5_olducd,   
+      testing/fulltests/default/T022snmpv3getMD5_simple,   
+      testing/fulltests/default/T023snmpv3getMD5AES_olducd,   
+      testing/fulltests/default/T023snmpv3getMD5AES_simple,   
+      testing/fulltests/default/T023snmpv3getMD5DES_olducd,   
+      testing/fulltests/default/T023snmpv3getMD5DES_simple,   
+      testing/fulltests/default/T024snmpv3getSHA1_olducd,   
+      testing/fulltests/default/T024snmpv3getSHA1_simple,   
+      testing/fulltests/default/T025snmpv3getSHADES_olducd,   
+      testing/fulltests/default/T025snmpv3getSHADES_simple,   
+      testing/fulltests/default/T026snmpv3getSHAAES_olducd,   
+      testing/fulltests/default/T026snmpv3getSHAAES_simple,   
+      testing/fulltests/default/T028snmpv3getfail_olducd,   
+      testing/fulltests/default/T028snmpv3getfail_simple,   
+      testing/fulltests/default/T030snmpv3usercreation_olducd,   
+      testing/fulltests/default/T030snmpv3usercreation_simple,   
+      testing/fulltests/default/T035snmpv3trapdusermgmt_olducd,   
+      testing/fulltests/default/T035snmpv3trapdusermgmt_simple,   
+      testing/fulltests/default/T049snmpv3inform_olducd,   
+      testing/fulltests/default/T049snmpv3inform_simple,   
+      testing/fulltests/default/T049snmpv3informauth_olducd,   
+      testing/fulltests/default/T049snmpv3informauth_simple,   
+      testing/fulltests/default/T049snmpv3informpriv_olducd,   
+      testing/fulltests/default/T049snmpv3informpriv_simple,   
+      testing/fulltests/default/T050snmpv3trap_olducd,   
+      testing/fulltests/default/T050snmpv3trap_simple,   
+      testing/fulltests/default/T051snmpv2ctrap_olducd,   
+      testing/fulltests/default/T051snmpv2ctrap_simple,   
+      testing/fulltests/default/T052snmpv2cinform_olducd,   
+      testing/fulltests/default/T052snmpv2cinform_simple,   
+      testing/fulltests/default/T053agentv1trap_olducd,   
+      testing/fulltests/default/T053agentv1trap_simple,   
+      testing/fulltests/default/T054agentv2ctrap_olducd,   
+      testing/fulltests/default/T054agentv2ctrap_simple,   
+      testing/fulltests/default/T055agentv1mintrap_olducd,   
+      testing/fulltests/default/T055agentv1mintrap_simple,   
+      testing/fulltests/default/T056agentv2cmintrap_olducd,   
+      testing/fulltests/default/T056agentv2cmintrap_simple,   
+      testing/fulltests/default/T057trapdauthtest2_olducd,   
+      testing/fulltests/default/T057trapdauthtest2_simple,   
+      testing/fulltests/default/T057trapdauthtest3_olducd,   
+      testing/fulltests/default/T057trapdauthtest3_simple,   
+      testing/fulltests/default/T057trapdauthtest_olducd,   
+      testing/fulltests/default/T057trapdauthtest_simple,   
+      testing/fulltests/default/T058agentauthtrap_olducd,   
+      testing/fulltests/default/T058agentauthtrap_simple,   
+      testing/fulltests/default/T059trapdtraphandle_olducd,   
+      testing/fulltests/default/T059trapdtraphandle_simple,   
+      testing/fulltests/default/T060trapdperl_olducd,   
+      testing/fulltests/default/T060trapdperl_simple,   
+      testing/fulltests/default/T061agentperl_olducd,   
+      testing/fulltests/default/T061agentperl_simple,   
+      testing/fulltests/default/T065agentextend_olducd,   
+      testing/fulltests/default/T065agentextend_simple,   
+      testing/fulltests/default/T070com2sec_olducd,   
+      testing/fulltests/default/T070com2sec_simple,   
+      testing/fulltests/default/T071com2sec6_olducd,   
+      testing/fulltests/default/T071com2sec6_simple,   
+      testing/fulltests/default/T072com2secunix_olducd,   
+      testing/fulltests/default/T072com2secunix_simple,   
+      testing/fulltests/default/T100agenthup_olducd,   
+      testing/fulltests/default/T100agenthup_simple,   
+      testing/fulltests/default/T110agentxget_olducd,   
+      testing/fulltests/default/T110agentxget_simple,   
+      testing/fulltests/default/T111agentxset_olducd,   
+      testing/fulltests/default/T111agentxset_simple,   
+      testing/fulltests/default/T112agentxsetfail_olducd,   
+      testing/fulltests/default/T112agentxsetfail_simple,   
+      testing/fulltests/default/T113agentxtrap_olducd,   
+      testing/fulltests/default/T113agentxtrap_simple,   
+      testing/fulltests/default/T114agentxagentxtrap_olducd,   
+      testing/fulltests/default/T114agentxagentxtrap_simple,   
+      testing/fulltests/default/T115agentxperl_olducd,   
+      testing/fulltests/default/T115agentxperl_simple,   
+      testing/fulltests/default/T120proxyget_olducd,   
+      testing/fulltests/default/T120proxyget_simple,   
+      testing/fulltests/default/T121proxyset_olducd,   
+      testing/fulltests/default/T121proxyset_simple,   
+      testing/fulltests/default/T122proxysetfail_olducd,   
+      testing/fulltests/default/T122proxysetfail_simple,   
+      testing/fulltests/default/T130snmpv1vacmget_olducd,   
+      testing/fulltests/default/T130snmpv1vacmget_simple,   
+      testing/fulltests/default/T131snmpv2cvacmget_olducd,   
+      testing/fulltests/default/T131snmpv2cvacmget_simple,   
+      testing/fulltests/default/T132snmpv3vacmget_olducd,   
+      testing/fulltests/default/T132snmpv3vacmget_simple,   
+      testing/fulltests/default/T140snmpv1vacmgetfail_olducd,   
+      testing/fulltests/default/T140snmpv1vacmgetfail_simple,   
+      testing/fulltests/default/T141snmpv2cvacmgetfail_olducd,   
+      testing/fulltests/default/T141snmpv2cvacmgetfail_simple,   
+      testing/fulltests/default/T142snmpv3vacmgetfail_olducd,   
+      testing/fulltests/default/T142snmpv3vacmgetfail_simple,   
+      testing/fulltests/default/T150solarishostcpu_olducd,   
+      testing/fulltests/default/T150solarishostcpu_simple,   
+      testing/fulltests/default/T151solarishostdisk_olducd,   
+      testing/fulltests/default/T151solarishostdisk_simple,   
+      testing/fulltests/default/T152hostuptime_olducd,   
+      testing/fulltests/default/T152hostuptime_simple,   
+      testing/fulltests/default/T153solarisswap_olducd,   
+      testing/fulltests/default/T153solarisswap_simple,   
+      testing/fulltests/default/T160snmpnetstat_olducd,   
+      testing/fulltests/default/T160snmpnetstat_simple,   
+      testing/fulltests/default/T200snmpv2cwalkall_olducd,   
+      testing/fulltests/default/T200snmpv2cwalkall_simple,   
+      testing/fulltests/support/olducd_TESTCONF.sh,   
+      testing/fulltests/support/olducd_eval_tools.sh,   
+      testing/fulltests/support/olducd_run,   
+      testing/fulltests/support/simple_TESTCONF.sh,   
+      testing/fulltests/support/simple_eval_tools.sh,   
+      testing/fulltests/support/simple_run,   
+      testing/fulltests/transports/T300udp_olducd,   
+      testing/fulltests/transports/T300udp_simple,   
+      testing/fulltests/transports/T310tcp_olducd,   
+      testing/fulltests/transports/T310tcp_simple,   
+      testing/fulltests/transports/T320udpv6_olducd,   
+      testing/fulltests/transports/T320udpv6_simple,   
+      testing/fulltests/transports/T330tcpv6_olducd,   
+      testing/fulltests/transports/T330tcpv6_simple,   
+      testing/fulltests/transports/T350unix_olducd,   
+      testing/fulltests/transports/T350unix_simple,   
+      testing/fulltests/transports/T360dtlsudp_olducd,   
+      testing/fulltests/transports/T360dtlsudp_simple,   
+      testing/fulltests/transports/T361tlstcp_olducd,   
+      testing/fulltests/transports/T361tlstcp_simple,   
+      testing/fulltests/transports/T399alias_olducd,   
+      testing/fulltests/transports/T399alias_simple:
+
+   renamed 'olducd' to 'simple' to put a more positive spin on them
+
+2010-05-28 22:54  hardaker
+
+   * testing/README, testing/RUNFULLTESTS:
+
+   documentation for the test suite
+
+2010-05-28 22:53  hardaker
+
+   * python/netsnmp/tests/test.py:
+
+   revert unintentionanally committed test test
+
+2010-05-28 22:53  hardaker
+
+   * python/netsnmp/client_intf.c, python/netsnmp/tests/test.py:
+
+   free variables again
+
+2010-05-28 22:53  hardaker
+
+   * python/netsnmp/client_intf.c:
+
+   fix walks so that multiple walks terminate properly
+
+2010-05-28 22:53  hardaker
+
+   * python/netsnmp/client_intf.c:
+
+   patch to handle testing of looping of multiple varbinds in a walk
+
+2010-05-28 22:53  hardaker
+
+   * python/netsnmp/client_intf.c:
+
+   inital patch to prevent looping walks
+
+2010-05-28 20:53  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   implement cert lookup by filename
+
+2010-05-28 07:02  magfr
+
+   * snmplib/snmp_debug.c:
+
+   CHANGES: snmplib: Add const declarations to the disabled versions
+   of the debugging code as well.
+
+2010-05-28 02:12  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c:
+
+   add persistence; check for col mods while row active
+
+2010-05-28 02:11  rstory
+
+   *  agent/helpers/table_dataset.c,   
+      include/net-snmp/agent/table_dataset.h:
+
+   CHANGES: agentlib: new functions to make stash ptr and newrow
+   available to
+   table_dataset handlers
+   nonews: fix typo; tabs to spaces; use sizeof instead of constant
+
+2010-05-27 18:59  bvassche
+
+   *  include/net-snmp/library/check_varbind.h,   
+      include/net-snmp/library/read_config.h,   
+      include/net-snmp/library/snmp_client.h,   
+      win32/libsnmp/Makefile.in, win32/libsnmp/libsnmp.dsp,   
+      win32/libsnmp_dll/Makefile.in, win32/libsnmp_dll/libsnmp_dll.dsp:
+
+   Win32 build fixes.
+
+2010-05-27 18:24  bvassche
+
+   * testing/RUNFULLTESTS:
+
+   "make test" without TAP::Harness (was broken by r18802).
+
+2010-05-27 15:15  bvassche
+
+   *  agent/mibgroup/mibII/interfaces.c,   
+      include/net-snmp/library/lcd_time.h,   
+      include/net-snmp/library/md5.h, include/net-snmp/library/scapi.h, 
+        include/net-snmp/library/snmp_debug.h, snmplib/lcd_time.c,   
+      snmplib/md5.c, snmplib/scapi.c, snmplib/snmp_debug.c,   
+      snmplib/transports/snmpIPv4BaseDomain.c:
+
+   Fixed several compiler warnings. Most fixes involved adding the
+   "const" keyword.
+
+2010-05-27 13:52  jsafranek
+
+   * agent/mibgroup/target/snmpTargetAddrEntry.c:
+
+   CHANGES: snmpd: BUG: 2972579: fixed checking of
+   snmpTargetAddrRowStatus SET requests.
+
+2010-05-27 13:41  hardaker
+
+   *  testing/fulltests/support/olducd_TESTCONF.sh,   
+      testing/fulltests/support/olducd_run:
+
+   revert part of 18885: test files should be able to be run by
+   themselves too
+
+2010-05-27 11:19  jsafranek
+
+   *  agent/mibgroup/if-mib/data_access/interface.c,   
+      agent/mibgroup/if-mib/data_access/interface_linux.c,   
+      include/net-snmp/data_access/interface.h:
+
+   CHANGES: correctly calculate ifXTable.ifHCInUcastPkts on 32-bit
+   Linux
+   
+   Linux does not provide standalone counter for incoming unicast
+   packets (iucast)
+   - it provides counter of all packets (iall) + separate counter
+   for the multicast
+   ones (imcast). Previous implementation of ifTable read these
+   counters and
+   calculated iucast = iall - imcast *before* these values were
+   expanded into
+   64bits. This produced errors on 32bit systems when iall
+   overflowed to zero and
+   imcast was nozero -> iucast got negative and 'c64 32 bit check
+   failed' error in
+   snmpd log. Now the agent expands these values to 64bits first and
+   *     *then* performs    the calculation, using a new flag. 
+      2010-05-27 08:18  magfr
+
+
+   *  testing/RUNFULLTESTS, testing/RUNTESTS,   
+      testing/fulltests/support/olducd_TESTCONF.sh,   
+      testing/fulltests/support/olducd_run:
+
+   CHANGES: testing: Move the setting of MIBDIRS from the support
+   script to the drivers since it is needed for the C tests as well.
+
+2010-05-27 08:09  magfr
+
+   * testing/RUNTESTS:
+
+   CHANGES: testing: Use olducd_run, not run_olducd. Change srcdir
+   to refer to the top directory and not the testing subdirectory as
+   that is what is expected in the test scripts.
+
+2010-05-27 05:17  hardaker
+
+   *  testing/fulltests/snmpv3/T020hashtests_capp.c,   
+      testing/fulltests/snmpv3/T040keymanagetest_capp.c,   
+      testing/fulltests/snmpv3/T050etimetest_capp.c:
+
+   warning squashing
+
+2010-05-27 05:16  hardaker
+
+   *  include/net-snmp/library/keytools.h,   
+      include/net-snmp/library/lcd_time.h, snmplib/keytools.c,   
+      snmplib/lcd_time.c:
+
+   more const correctness
+
+2010-05-27 04:18  hardaker
+
+   * testing/fulltests/transports/Stlstests:
+
+   tests for agent-not-known-user-certificates
+
+2010-05-27 04:16  hardaker
+
+   * README.snmpv3:
+
+   reference the itnernal support and related documentation
+
+2010-05-27 04:16  hardaker
+
+   * snmplib/openssl/OPENSSL-LICENSE, snmplib/openssl/README:
+
+   internal OpenSSL support documentation
+
+2010-05-27 04:16  hardaker
+
+   * configure, configure.d/config_project_with_enable:
+
+   NEWS: libnetsnmp: Support for a stream-line stripped down version
+   of internal OpenSSL support using --with-openssl=internal
+
+2010-05-27 04:15  hardaker
+
+   *  include/net-snmp/library/openssl_aes.h,   
+      include/net-snmp/library/openssl_des.h,   
+      include/net-snmp/openssl_md5.h,   
+      snmplib/openssl/openssl_aes_cfb.c,   
+      snmplib/openssl/openssl_aes_local.h,   
+      snmplib/openssl/openssl_des_local.h,   
+      snmplib/openssl/openssl_set_key.c, snmplib/openssl/openssl_spr.h, 
+        snmplib/scapi.c:
+
+   remove more dependencies for external openssl headers
+
+2010-05-27 04:15  hardaker
+
+   *  configure, configure.d/config_os_libs, snmplib/openssl,   
+      snmplib/openssl/openssl_aes_cfb.c,   
+      snmplib/openssl/openssl_aes_core.c,   
+      snmplib/openssl/openssl_aes_local.h,   
+      snmplib/openssl/openssl_cbc_enc.c,   
+      snmplib/openssl/openssl_cfb128.c,   
+      snmplib/openssl/openssl_des_enc.c,   
+      snmplib/openssl/openssl_des_local.h,   
+      snmplib/openssl/openssl_md32_common.h,   
+      snmplib/openssl/openssl_md5.c,   
+      snmplib/openssl/openssl_md5_local.h,   
+      snmplib/openssl/openssl_modes.h,   
+      snmplib/openssl/openssl_ncbc_enc.c,   
+      snmplib/openssl/openssl_set_key.c, snmplib/openssl/openssl_sha.h, 
+        snmplib/openssl/openssl_sha1.c,   
+      snmplib/openssl/openssl_sha_local.h,   
+      snmplib/openssl/openssl_spr.h, snmplib/openssl_aes_cfb.c,   
+      snmplib/openssl_aes_core.c, snmplib/openssl_aes_local.h,   
+      snmplib/openssl_cbc_enc.c, snmplib/openssl_cfb128.c,   
+      snmplib/openssl_des_enc.c, snmplib/openssl_des_local.h,   
+      snmplib/openssl_md32_common.h, snmplib/openssl_md5.c,   
+      snmplib/openssl_md5_local.h, snmplib/openssl_modes.h,   
+      snmplib/openssl_ncbc_enc.c, snmplib/openssl_set_key.c,   
+      snmplib/openssl_sha.h, snmplib/openssl_sha1.c,   
+      snmplib/openssl_sha_local.h, snmplib/openssl_spr.h:
+
+   move openssl code into a subdirectory
+
+2010-05-27 04:13  hardaker
+
+   *  testing/fulltests/default/Sv3usmconfigbase,   
+      testing/fulltests/default/T023snmpv3getMD5AES_olducd,   
+      testing/fulltests/default/T023snmpv3getMD5DES_olducd,   
+      testing/fulltests/default/T024snmpv3getSHA1_olducd,   
+      testing/fulltests/default/T025snmpv3getSHADES_olducd,   
+      testing/fulltests/default/T026snmpv3getSHAAES_olducd,   
+      testing/fulltests/default/T030snmpv3usercreation_olducd,   
+      testing/fulltests/default/T035snmpv3trapdusermgmt_olducd,   
+      testing/fulltests/default/T049snmpv3informpriv_olducd,   
+      testing/fulltests/default/T050snmpv3trap_olducd:
+
+   fix testing so it uses multiple types of crypto
+
+2010-05-27 04:13  hardaker
+
+   *  acconfig.h, configure, configure.d/config_os_libs,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   definitions and files for doing internal crypto support
+
+2010-05-27 04:12  hardaker
+
+   * snmplib/scapi.c:
+
+   include internal aes/des headers
+
+2010-05-27 04:12  hardaker
+
+   * snmplib/openssl_cfb128.c:
+
+   localize
+
+2010-05-27 04:12  hardaker
+
+   * snmplib/openssl_cfb128.c, snmplib/openssl_modes.h:
+
+   inital copies of cfb128 modes from openssl
+
+2010-05-27 04:11  hardaker
+
+   * snmplib/openssl_aes_core.c:
+
+   localize
+
+2010-05-27 04:11  hardaker
+
+   * snmplib/openssl_aes_core.c, snmplib/openssl_aes_local.h:
+
+   initial versions of aes_core.c and aes_locl.h
+
+2010-05-27 04:10  hardaker
+
+   * include/net-snmp/library/openssl_aes.h:
+
+   initial copy of aes.h from openssl
+
+2010-05-27 04:10  hardaker
+
+   * snmplib/openssl_aes_cfb.c:
+
+   initial copy of the openssl aes_cfb.c file
+
+2010-05-27 04:10  hardaker
+
+   * snmplib/openssl_des_enc.c:
+
+   include localized copies of the files
+
+2010-05-27 04:09  hardaker
+
+   * snmplib/scapi.c:
+
+   use internal DES
+
+2010-05-27 04:09  hardaker
+
+   * snmplib/openssl_cbc_enc.c:
+
+   localized copy of the cbc_enc.c file from openssl
+
+2010-05-27 04:09  hardaker
+
+   * snmplib/openssl_spr.h:
+
+   des/spr.h from openssl
+
+2010-05-27 04:08  hardaker
+
+   * snmplib/openssl_des_enc.c:
+
+   added des_enc.c from openssl
+
+2010-05-27 04:08  hardaker
+
+   *  include/net-snmp/library/openssl_des.h,   
+      include/net-snmp/library/openssl_md5.h,   
+      include/net-snmp/library/openssl_sha.h:
+
+   local copies of the openssl headers
+
+2010-05-27 04:07  hardaker
+
+   * include/net-snmp/library/openssl_des.h:
+
+   initial copy of openssl's des.h
+
+2010-05-27 04:07  hardaker
+
+   * snmplib/openssl_ncbc_enc.c, snmplib/openssl_set_key.c:
+
+   localized header files
+
+2010-05-27 04:07  hardaker
+
+   *  snmplib/openssl_des_local.h, snmplib/openssl_ncbc_enc.c,   
+      snmplib/openssl_set_key.c:
+
+   inital copies of some of the openssl DES files
+
+2010-05-27 04:06  hardaker
+
+   * snmplib/keytools.c, snmplib/scapi.c:
+
+   finishing porting of internal auth support
+
+2010-05-27 04:06  hardaker
+
+   * configure, configure.d/config_os_libs, snmplib/Makefile.in:
+
+   add internal crypto files to the check/use list
+
+2010-05-27 04:06  hardaker
+
+   *  snmplib/md32_common.h, snmplib/md5_locl.h,   
+      snmplib/openssl_md32_common.h, snmplib/openssl_md5.c,   
+      snmplib/openssl_md5_local.h, snmplib/openssl_sha1.c,   
+      snmplib/openssl_sha_local.h, snmplib/sha_locl.h:
+
+   localized file names with openssl prefixes
+
+2010-05-27 04:05  hardaker
+
+   *  include/net-snmp/openssl_md5.h, snmplib/md5_locl.h,   
+      snmplib/openssl_md5.c:
+
+   localize the md5 implementation
+
+2010-05-27 04:05  hardaker
+
+   *  snmplib/openssl_sha.h, snmplib/openssl_sha1.c,   
+      snmplib/sha_locl.h:
+
+   completely localize the openssl SHA support
+
+2010-05-27 04:04  hardaker
+
+   * snmplib/openssl_sha.h:
+
+   initial verison of sha.h copy
+
+2010-05-27 04:04  hardaker
+
+   *  snmplib/md32_common.h, snmplib/md5_locl.h, snmplib/openssl_md5.c, 
+        snmplib/openssl_sha1.c, snmplib/sha_locl.h:
+
+   added local copies of the openssl crypto functions
+
+2010-05-27 04:04  hardaker
+
+   * snmplib/keytools.c:
+
+   make use of internal crypto hash functions
+
+2010-05-27 04:03  hardaker
+
+   *  configure, configure.d/config_os_libs,   
+      configure.d/config_os_misc2,   
+      configure.d/config_project_with_enable,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   configure checks for internal-crypto support
+
+2010-05-26 22:17  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      include/net-snmp/library/snmp_api.h,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      testing/fulltests/transports/Stlstests:
+
+   properly verify expected server certificates under DTLS; add a
+   new flag in tlsbase to indicate verification has occurred
+
+2010-05-26 21:02  hardaker
+
+   *  testing/fulltests/snmpv3/T010scapitest_capp.c,   
+      testing/fulltests/snmpv3/T050etimetest_capp.c:
+
+   compiler warning squashing
+
+2010-05-26 21:02  hardaker
+
+   *  include/net-snmp/library/lcd_time.h,   
+      include/net-snmp/library/scapi.h, snmplib/lcd_time.c,   
+      snmplib/scapi.c:
+
+   add const qualifiers to a few places
+
+2010-05-26 19:46  bvassche
+
+   *  agent/Makefile.in, agent/helpers/Makefile.in,   
+      snmplib/Makefile.in:
+
+   CHANGES: Cygwin: libnetsnmpmibs, libnetsnmphelpers and
+   libnetsnmpagent do now build as a DLL when configured with
+   --enable-shared.
+
+2010-05-26 17:47  bvassche
+
+   * agent/Makefile.in, agent/helpers/Makefile.in:
+
+   NEWS: moved all functions defined in libnetsnmphelpers to
+   libnetsnmpagent. libnetsnmphelpers is now an empty library.
+
+2010-05-26 17:20  bvassche
+
+   *  agent/Makefile.in, agent/bulk_to_next.c,   
+      agent/helpers/Makefile.in, agent/helpers/bulk_to_next.c,   
+      agent/helpers/null.c, agent/helpers/old_api.c, agent/null.c,   
+      agent/old_api.c:
+
+   Reverted r18829 in order to minimize diffs with older branches.
+
+2010-05-25 07:23  magfr
+
+   * testing/fulltests/transports/Stls:
+
+   Tell net-snmp-cert where net-snmp-config is located
+
+2010-05-25 07:14  magfr
+
+   * testing/fulltests/support/clib_build:
+
+   Correct the signature of main. Use #include instead of sourcing
+   to get the code under test in order to get better error messages
+
+2010-05-25 07:11  magfr
+
+   * testing/fulltests/unit-tests/T001defaultstore_clib.c:
+
+   Add arguments to sprintf statements to make the test work
+
+2010-05-25 07:07  magfr
+
+   *  testing/fulltests/snmpv3/T010scapitest_capp.c,   
+      testing/fulltests/snmpv3/T020hashtests_capp.c,   
+      testing/fulltests/snmpv3/T050etimetest_capp.c,   
+      testing/fulltests/unit-tests/T002containers_clib.c:
+
+   Remove unused variables and disabled code
+
+2010-05-25 05:20  magfr
+
+   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
+      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      apps/snmpnetstat/Makefile.depend,   
+      include/net-snmp/library/snmpIPBaseDomain.h,   
+      include/net-snmp/library/snmpIPv4BaseDomain.h,   
+      include/net-snmp/library/snmpIPv6BaseDomain.h,   
+      include/net-snmp/library/snmpSocketBaseDomain.h,   
+      include/net-snmp/library/snmpTLSTCPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
+      snmplib/Makefile.depend, snmplib/transports/snmpIPBaseDomain.c,   
+      snmplib/transports/snmpIPv4BaseDomain.c,   
+      snmplib/transports/snmpSocketBaseDomain.c:
+
+   CHANGES: snmplib: Split snmpIPBaseDomain and move the IPv4 parts
+   to IPv4Base and the socket generic parts to SocketBase.
+
+2010-05-24 20:24  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c:
+
+   fix compiler warning; finish tlstmParamsTable lastChanged scalar
+
+2010-05-24 19:28  magfr
+
+   *  testing/fulltests/support/capp_build,   
+      testing/fulltests/support/clib_build:
+
+   Add --external-libs in order to support building the tests on
+   solaris
+
+2010-05-24 13:33  rstory
+
+   *  agent/mibgroup/tlstm-mib.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c:
+
+   argh.. fix fallout from manually (mis)applying patch
+
+2010-05-24 12:59  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmParamsTable,   
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h:
+
+   first pass at tlstmParamsTable
+
+2010-05-24 12:59  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_internal.h,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h:
+
+   update defines to match MIB names, per grand-poobah
+
+2010-05-24 12:58  rstory
+
+   * agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.c:
+
+   update OID to match upcoming RFC
+
+2010-05-24 11:48  bvassche
+
+   *  agent/Makefile.in, agent/bulk_to_next.c,   
+      agent/helpers/Makefile.in, agent/helpers/bulk_to_next.c,   
+      agent/helpers/null.c, agent/helpers/old_api.c, agent/null.c,   
+      agent/old_api.c:
+
+   CHANGES: libnetsnmpagent, libnetsnmphelpers: moved the functions
+   netsnmp_bulk_to_next_fix_requests(),
+   netsnmp_get_bulk_to_next_handler(), netsnmp_register_null(),
+   netsnmp_register_null_context() and netsnmp_register_old_api()
+   from libnetsnmphelpers to libnetsnmpagent.
+   Notes:
+   - This does not affect backwards compatibility for applications
+   that link with $(net-snmp-config --agent-libs) since this
+   involves linking with both libnetsnmphelpers and libnetsnmpagent.
+   - Functions have been moved between libraries by moving entire
+   source files.
+
+2010-05-24 10:10  jsafranek
+
+   *  agent/mibgroup/hardware/fsys/fsys_getfsstats.c,   
+      agent/mibgroup/hardware/fsys/fsys_mntent.c:
+
+   Use proper string sizes and make sure strings are
+   zero-terminated.
+
+2010-05-24 08:01  bvassche
+
+   *  configure, configure.d/config_os_progs, net-snmp-config.in,   
+      snmplib/Makefile.in:
+
+   CHANGES: Cygwin: libnetsnmp does now build as a DLL when
+   configured with --enable-shared.
+   CHANGES: Cygwin: perl modules do now build (--with-perl-modules).
+   Note: the T060trapdperl_olducd, T061agentperl_olducd and
+   T115agentxperl_olducd tests still fail.
+
+2010-05-23 23:06  rstory
+
+   *  agent/mibgroup/tlstm-mib.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c:
+
+   update filenames/patsh for recent file renames; fix typos
+
+2010-05-23 22:08  magfr
+
+   *  net-snmp-config.in, testing/fulltests/support/capp_build,   
+      testing/fulltests/support/clib_build:
+
+   CHANGES: building: Use the same compiler command and flags for
+   building of tests as for building of the code, thus enabling test
+   of e.g. 32-bit code compiled on a 64-bit platform.
+
+2010-05-23 21:41  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c,
+         agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h:
+
+   update include/config file/paths for recent renames
+
+2010-05-23 21:31  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h, 
+       
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_internal.h,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable_persist.c,
+         agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/tlstmAddrTable.c,  
+       agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/tlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/tlstmAddrTable_internal.h,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/tlstmAddrTable_persist.c,
+         agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/tlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/tlstmCertToTSNTable.h,
+         agent/mibgroup/tlstm-mib/tlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable.h:
+
+   rename files for MIB renames
+
+2010-05-23 21:25  rstory
+
+   *  agent/mibgroup/tlstm-mib/snmpTlstmAddrTable,   
+      agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable,   
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable:
+
+   rename directories to match renames in MIB
+
+2010-05-20 08:48  bvassche
+
+   * net-snmp-config.in:
+
+   Swapped link order of -lnetsnmphelpers -lnetsnmpmibs: netsnmpmibs
+   depends on netsnmphelpers and not the other way around.
+
+2010-05-20 08:42  bvassche
+
+   *  apps/snmptrapd_log.c, snmplib/snmp_transport.c,   
+      snmplib/transports/snmpUDPIPv4BaseDomain.c:
+
+   Fixed more compiler warnings.
+
+2010-05-19 18:26  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   fix stashing
+
+2010-05-19 18:25  hardaker
+
+   *  testing/RUNFULLTESTS,   
+      testing/fulltests/transports/T361tlstcp_olducd,   
+      testing/fulltests/unit-tests/T001defaultstore_clib.c,   
+      testing/fulltests/unit-tests/T002containers_clib.c:
+
+   output filenames of failed tests
+
+2010-05-19 18:25  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   wipe trailing comment C marker if it exists
+
+2010-05-19 18:25  hardaker
+
+   *  testing/fulltests/snmpv3/T010scapitest_capp.c,   
+      testing/fulltests/snmpv3/T020hashtests_capp.c,   
+      testing/fulltests/snmpv3/T040keymanagetest_capp.c,   
+      testing/fulltests/snmpv3/T050etimetest_capp.c:
+
+   title the SNMPv3 tests
+
+2010-05-19 18:25  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   fix testing of built titles
+
+2010-05-19 18:24  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   only print failure header if there was at least one
+
+2010-05-19 18:24  hardaker
+
+   *  testing/RUNFULLTESTS,   
+      testing/fulltests/default/T049snmpv3inform_olducd,   
+      testing/fulltests/default/T049snmpv3informauth_olducd,   
+      testing/fulltests/default/T049snmpv3informpriv_olducd:
+
+   make descriptive titles work again
+
+2010-05-19 18:24  hardaker
+
+   *  testing/RUNFULLTESTS, testing/fulltests/support/build_capp,   
+      testing/fulltests/support/build_clib,   
+      testing/fulltests/support/capp_build,   
+      testing/fulltests/support/clib_build,   
+      testing/fulltests/support/olducd_run,   
+      testing/fulltests/support/run_olducd:
+
+   rename files so prefixing is based on the suite name, not file
+   type
+
+2010-05-19 17:52  bvassche
+
+   *  perl/ASN/Makefile.PL, perl/Makefile.PL, perl/Makefile.subs.pl,   
+      perl/OID/Makefile.PL, perl/SNMP/Makefile.PL,   
+      perl/TrapReceiver/Makefile.PL, perl/agent/Makefile.PL,   
+      perl/agent/Support/Makefile.PL,   
+      perl/agent/default_store/Makefile.PL,   
+      perl/default_store/Makefile.PL:
+
+   CHANGES: Cygwin: perl: building the Perl modules with the Cygwin
+   Perl package is now possible.
+   (Forward-ported r18688 from the V5.5 branch.)
+
+2010-05-19 17:50  bvassche
+
+   * agent/mibgroup/examples/delayed_instance.c:
+
+   Fixed yet another compiler warning.
+
+2010-05-19 12:05  dts12
+
+   *  agent/mibgroup/hardware/fsys.h,   
+      agent/mibgroup/hardware/fsys/fsys_mntctl.c:
+
+   First-draft support for AIX filesystem HAL module (untested)
+
+2010-05-19 11:25  dts12
+
+   * agent/mibgroup/hardware/fsys/fsys_mntent.c:
+
+   Support for Solaris-style 'getmntent' API.
+
+2010-05-19 09:57  dts12
+
+   *  agent/mibgroup/hardware/fsys/fsys_mntent.c,   
+      agent/mibgroup/hardware/fsys/mnttypes.h:
+
+   Simplify the handling of unknown/unwanted file systems.
+
+2010-05-19 09:30  dts12
+
+   *  agent/mibgroup/hardware/fsys/hw_fsys.c,   
+      agent/mibgroup/hardware/fsys/hw_fsys.h,   
+      agent/mibgroup/host/hrh_filesys.c,   
+      include/net-snmp/agent/hardware/fsys.h:
+
+   Fix missing/broken API declarations.
+
+2010-05-19 08:46  bvassche
+
+   * testing/fulltests/support/run_olducd:
+
+   Made error messages more clear in case of failure or wrong
+   invocation.
+
+2010-05-19 00:01  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   added test for using a certificate signed by a CA certificate
+
+2010-05-18 23:31  tanders
+
+   * testing/Makefile.in:
+
+   make sure we call the right Perl
+
+2010-05-18 20:39  bvassche
+
+   *  include/net-snmp/library/snmpUDPBaseDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
+      include/net-snmp/library/snmp_transport.h,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpIPv4BaseDomain.c,   
+      snmplib/transports/snmpUDPBaseDomain.c,   
+      snmplib/transports/snmpUDPDomain.c,   
+      snmplib/transports/snmpUDPIPv4BaseDomain.c:
+
+   CHANGES: agent: include local port number in packet dumps. An
+   example:
+   
+   Received 36 byte packet from UDP:
+   [127.0.0.1]:53909->[127.0.0.1]:1161
+   0000: 30 22 02 01 01 04 06 70 75 62 6C 69 63 A1 15 02
+   0".....public...
+   0016: 04 37 F2 D4 9B 02 01 00 02 01 00 30 07 30 05 06
+   .7.........0.0..
+   0032: 01 01 05 00 ....
+   
+   Received SNMP packet(s) from UDP:
+   [127.0.0.1]:53909->[127.0.0.1]:1161
+   GETNEXT message
+   -- ccitt.1
+   
+   Sending 118 bytes to UDP: [127.0.0.1]:53909->[127.0.0.1]:1161
+   0000: 30 74 02 01 01 04 06 70 75 62 6C 69 63 A2 67 02
+   0t.....public.g.
+   0016: 04 37 F2 D4 9B 02 01 00 02 01 00 30 59 30 57 06
+   .7.........0Y0W.
+   0032: 08 2B 06 01 02 01 01 01 00 04 4B 4C 69 6E 75 78
+   .+........KLinux
+   0048: 20 61 73 75 73 20 32 2E 36 2E 33 33 2E 32 2D 73 asus
+   2.6.33.2-s
+   0064: 63 73 74 20 23 31 20 53 4D 50 20 50 52 45 45 4D cst #1 SMP
+   PREEM
+   0080: 50 54 20 53 61 74 20 41 70 72 20 33 20 32 31 3A PT Sat Apr
+   3 21:
+   0096: 31 30 3A 35 38 20 43 45 53 54 20 32 30 31 30 20 10:58 CEST
+   2010
+   0112: 78 38 36 5F 36 34 x86_64
+
+2010-05-18 19:42  rstory
+
+   *  agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.c,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable_internal.h,
+        
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable_persist.c, 
+       
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable/tlstmCertToTSNTable.c:
+
+   update tlstmAddrTable
+   - deal with hash type properly for get/set and persistence
+   - add count and last changed scalars
+
+2010-05-18 19:08  rstory
+
+   * agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.c:
+
+   update to offical OID from upcoming rfc
+
+2010-05-18 16:16  rstory
+
+   *  agent/mibgroup/tlstm-mib.h,   
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable/tlstmCertToTSNTable.c:
+
+   update to official OIDs from upcoming RFC; add count/last changed
+   scalars
+
+2010-05-18 14:56  dts12
+
+   * python/netsnmp/client_intf.c:
+
+   CHANGES: python: PATCH: 2001656: Handle null-termination of
+   string values properly.
+   Based on the principles of the patch from Tommy Beadle.
+
+2010-05-18 14:38  dts12
+
+   *  agent/mibgroup/hardware/fsys/fsys_mntent.c,   
+      agent/mibgroup/hardware/fsys/hw_fsys.c,   
+      agent/mibgroup/hardware/fsys/mnttypes.h, agent/mibgroup/host.h,   
+      agent/mibgroup/host/hrh_filesys.c,   
+      agent/mibgroup/host/hrh_filesys.h,   
+      agent/mibgroup/host/hrh_storage.c,   
+      agent/mibgroup/host/hrh_storage.h,   
+      include/net-snmp/agent/hardware/fsys.h:
+
+   Working(?) HAL-based version of hrFSTable.
+
+2010-05-18 14:12  bvassche
+
+   * snmplib/tools.c:
+
+   Fixed a compiler warning.
+
+2010-05-17 21:03  hardaker
+
+   * include/net-snmp/library/snmp_secmod.h:
+
+   use proper TSM security code (4) now that it's official
+
+2010-05-17 18:43  hardaker
+
+   * testing/fulltests/unit-tests/T002containers_clib.c:
+
+   beginning of a container unit test
+
+2010-05-17 18:43  hardaker
+
+   * include/net-snmp/library/testing.h:
+
+   a basic C-code based test reporting mechanism
+
+2010-05-17 18:42  hardaker
+
+   *  testing/fulltests/unit-tests,   
+      testing/fulltests/unit-tests/T001defaultstore_clib.c:
+
+   basic default_store tests
+
+2010-05-17 18:42  hardaker
+
+   * testing/fulltests/support/build_clib:
+
+   a build system for basic libnetsnmp tests
+
+2010-05-17 18:14  rstory
+
+   * 
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable/tlstmCertToTSNTable.c,
+         include/net-snmp/library/cert_util.h:
+
+   fix fingerprint bin/hex conversion; add/remove cert sec maps via
+   mib now works
+
+2010-05-17 18:13  rstory
+
+   * include/net-snmp/library/tools.h, snmplib/tools.c:
+
+   new function netsnmp_binary_to_hex
+
+2010-05-17 18:13  rstory
+
+   * snmplib/snmptsm.c:
+
+   fprintf(stderr -> DEBUGMSGTL((
+
+2010-05-17 18:12  rstory
+
+   * snmplib/cert_util.c:
+
+   move check for hash type
+
+2010-05-17 16:34  hardaker
+
+   * testing/RUNTESTS:
+
+   make RUNTESTS work outside the sourcedir
+
+2010-05-17 15:37  hardaker
+
+   * testing/Makefile.in, testing/RUNTESTS:
+
+   made a limited run test possible again without perl
+
+2010-05-17 15:32  dts12
+
+   *  win32/mib_module_includes.h, win32/mib_module_inits.h,   
+      win32/net-snmp/agent/mib_module_config.h,   
+      win32/netsnmpmibs/Makefile.in, win32/netsnmpmibs/netsnmpmibs.dsp:
+
+   Use newer DisMan Event MIB code for MSVC-based builds
+   (in line with all configure-based builds)
+
+2010-05-17 15:23  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   move the return outside the if statement
+
+2010-05-17 15:18  dts12
+
+   *  agent/mibgroup/hardware/fsys/hw_fsys.c,   
+      include/net-snmp/agent/hardware/fsys.h:
+
+   Provide missing public interface to HAL-based filestore module.
+
+2010-05-17 10:41  bvassche
+
+   * win32/transports/snmp_transport_inits.h:
+
+   Follow-up for r18754 (revert r18738): r18754 only partially
+   reverted r18738
+   and hence broke the Win32-build. Finished reversal of r18738 by
+   restoring
+   win32/transports/snmp_transport_inits.h.
+
+2010-05-16 18:17  bvassche
+
+   * ltmain.sh:
+
+   Follow-up for r18726: only pass -fstack-protector* flags to the
+   linker instead of all -f* flags such that it becomes less likely
+   that this modification causes trouble with non-GNU toolchains.
+
+2010-05-16 18:14  bvassche
+
+   * testing/fulltests/default/T059trapdtraphandle_olducd:
+
+   Made shell code for converting a relative path to an absolute
+   path more
+   robust and converted "${...#...}" construct into echo + cut.
+
+2010-05-16 18:12  bvassche
+
+   *  agent/mibgroup/agent/extend.c, agent/mibgroup/util_funcs.c,   
+      apps/snmptrapd_handlers.c:
+
+   More USING_UCD_SNMP_EXTENSIBLE_MODULE to
+   USING_UTILITIES_EXECUTE_MODULE substitutions, necessary to make
+   test 059 and 065 pass.
+
+2010-05-16 17:32  hardaker
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   fix tests for checking shutdown of applications to not report
+   false negatives
+
+2010-05-16 12:15  bvassche
+
+   * testing/fulltests/default/T059trapdtraphandle_olducd:
+
+   Made test T059 pass again. This test was recently broken by
+   passing arguments to it with absolute paths instead of relative
+   paths.
+
+2010-05-16 12:14  bvassche
+
+   * testing/fulltests/default/T065agentextend_olducd:
+
+   Added 'SKIPIFNOT USING_UTILITIES_EXECUTE_MODULE'.
+
+2010-05-16 11:42  bvassche
+
+   *  include/net-snmp/library/cert_util.h,   
+      include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/snmp_openssl.c:
+
+   Fixed several recently introduced compiler warnings.
+
+2010-05-16 11:41  bvassche
+
+   *  agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c,   
+      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c,
+         agent/mibgroup/host/hrSWInstalledTable.c,   
+      agent/mibgroup/host/hrSWRunPerfTable.c,   
+      agent/mibgroup/rmon-mib/data_access/etherstats_linux.c,   
+      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c,
+         apps/sshtosnmp.c:
+
+   Fixed several compiler warnings in old code.
+
+2010-05-16 09:59  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   CHANGES: Win32: winExtDLL: don't trigger a netsnmp_assert() when
+   no extension DLLs have been loaded.
+
+2010-05-15 17:31  tanders
+
+   * testing/RUNFULLTESTS:
+
+   stop-gap fix to unbreak "make test" for the nightly builds
+
+2010-05-15 10:59  bvassche
+
+   *  agent/Makefile.in, agent/helpers/Makefile.in,   
+      snmplib/Makefile.in:
+
+   Reverted r18727 because it caused build errors on Solaris, AIX
+   and HP-UX.
+
+2010-05-15 00:42  hardaker
+
+   *  Makefile.in, configure, configure.d/config_modules_lib,   
+      snmplib/Makefile.depend, snmplib/snmp_transport.c,   
+      win32/build.pl:
+
+   revert r18738 since new transport require dynamicly built header
+   files
+
+2010-05-15 00:40  hardaker
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   log env variables used to the invoked file
+
+2010-05-14 21:29  hardaker
+
+   * testing/fulltests/support/run_olducd:
+
+   fix script so it can be invoked outside the test environment
+   again
+
+2010-05-14 21:28  hardaker
+
+   * mibs/SNMP-TLS-TM-MIB.txt:
+
+   added the SNMP-TLS-TM-MIB with final IANA assignment slots
+
+2010-05-14 21:27  hardaker
+
+   * snmplib/snmptsm.c:
+
+   use final IANA assigned TSM prefixes
+
+2010-05-14 21:26  hardaker
+
+   *  include/net-snmp/library/snmpDTLSUDPDomain.h,   
+      include/net-snmp/library/snmpTLSTCPDomain.h:
+
+   use final IANA assigned Domain numbers
+
+2010-05-14 21:25  hardaker
+
+   * snmplib/snmp_api.c, snmplib/transports/snmpTLSBaseDomain.c:
+
+   set default version and seclevel if tls/dtls
+
+2010-05-14 15:25  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   check rc from secname mapping; clarify comment
+
+2010-05-14 15:22  rstory
+
+   * snmplib/cert_util.c:
+
+   don't use unsorted container; don't free caller's container
+
+2010-05-14 15:22  rstory
+
+   * snmplib/container_binary_array.c:
+
+   add linear_search for unsorted containers
+
+2010-05-14 11:56  bvassche
+
+   *  Makefile.in, configure, configure.d/config_modules_lib,   
+      snmplib/Makefile.depend, snmplib/snmp_transport.c,   
+      win32/build.pl, win32/transports/snmp_transport_inits.h:
+
+   Improved portability by removing the generated file
+   snmplib/transports/snmp_transport_inits.h.
+   Commented out the code in the configure script for generating
+   this header file.
+   Added configure-time code for checking whether the constructors
+   for all configured
+   transports are invoked from snmplib/snmp_transport.c.
+
+2010-05-14 11:00  bvassche
+
+   * README.win32:
+
+   Documentation: updated Cygwin build instructions.
+
+2010-05-14 09:15  bvassche
+
+   *  agent/mibgroup/host/data_access/swinst_null.c,   
+      include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/cert_util.c, snmplib/snmp_api.c, snmplib/snmp_openssl.c,  
+       snmplib/snmpusm.c, snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   Fixed several compiler warnings.
+
+2010-05-14 08:50  bvassche
+
+   *  agent/Makefile.in, agent/helpers/Makefile.in,   
+      snmplib/Makefile.in:
+
+   Added -no-undefined flag to library link commands such that
+   libtool can build DLLs on Win32.
+   Note: building DLLs on Win32 does not yet work because of the
+   circular dependency between
+   libnetsnmphelpers and libnetsnmpagent
+   (see also
+   http://www.net-snmp.org/wiki/index.php/Library_layering).
+
+2010-05-14 08:42  bvassche
+
+   * ltmain.sh:
+
+   libtool bug fix: also pass flags starting with -f to the linker
+   since these can affect linking. The flag -fstack-protector e.g.
+   triggers inclusion of libssp.
+
+2010-05-14 08:40  bvassche
+
+   *  configure, configure.d/config_modules_lib,   
+      configure.d/config_os_progs:
+
+   CHANGES: building: abort if the file program could not be found,
+   since this is essential for proper operation of libtool.
+   CHANGES: Cygwin: neither compile nor link winpipe.c.
+
+2010-05-13 08:58  bvassche
+
+   * configure, include/net-snmp/net-snmp-config.h.in:
+
+   Ran autoreconf.
+
+2010-05-12 20:16  bvassche
+
+   * configure, configure.d/config_os_libs:
+
+   CHANGES: Linux: builds again with embedded Perl disabled (bug
+   2985915).
+
+2010-05-12 19:47  bvassche
+
+   *  agent/mibgroup/util_funcs/restart.c,   
+      win32/netsnmpmibs/Makefile.in, win32/netsnmpmibs/netsnmpmibs.dsp:
+
+   Follow-up for r18684: un-break the Win32 MSVC build.
+
+2010-05-12 19:43  bvassche
+
+   * include/net-snmp/types.h:
+
+   Win32: fixed a typo and made indentation consistent.
+
+2010-05-12 19:11  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   construct temp build files in a separate directory
+
+2010-05-12 19:10  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   fix recently broken old perl functionality
+
+2010-05-12 18:01  hardaker
+
+   * local/net-snmp-cert:
+
+   added a --short option to shorten the show output to minimalistic
+
+2010-05-12 14:14  jsafranek
+
+   * 
+      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c:
+
+   CHANGES: snmpd: fixed a memory leak in TCP-MIB.
+
+2010-05-12 13:02  jsafranek
+
+   * agent/mibgroup/hardware/sensors/lmsensors_v3.c:
+
+   CHANGES: snmpd: fixed memory leak when reading sensors for
+   LM-SENSORS-MIB.
+
+2010-05-12 12:57  dts12
+
+   * perl/agent/agent.xs:
+
+   Revert revision 18689
+   Latest Win32 builds include support for strtoull.
+
+2010-05-12 12:05  jsafranek
+
+   *  agent/mibgroup/hardware/sensors.h,   
+      configure.d/config_modules_lib, configure.d/config_os_headers:
+
+   CHANGES: building: added detection of lm_sensors version.
+   I am not Autoconf guru, so I hope I got it right. The goal is to
+   define NETSNMP_USE_SENSORS_V3 *before* config_modules_agent
+   processes agent/mibgroup/hardware/sensors.h.
+
+2010-05-12 07:03  magfr
+
+   *  include/net-snmp/library/snmpTLSTCPDomain.h,   
+      include/net-snmp/library/snmpUDPBaseDomain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h,   
+      include/net-snmp/library/snmpUnixDomain.h:
+
+   CHANGES: snmplib: Add missing dependencies between transports.
+
+2010-05-12 03:08  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   fix title generation after change to what srcdir meant
+
+2010-05-12 02:30  hardaker
+
+   * local/net-snmp-cert:
+
+   undo last change which turned out to only cause errors if you had
+   a old .conf file around
+
+2010-05-12 02:13  hardaker
+
+   * local/net-snmp-cert:
+
+   fix v3_ca creation extension name
+
+2010-05-12 02:05  rstory
+
+   * snmplib/cert_util.c:
+
+   keep format version # in cert indexes; don't store hash type
+   string in index;
+
+2010-05-12 02:05  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   fix inverted conversion call; less verbose default debug
+
+2010-05-12 02:05  rstory
+
+   * snmplib/snmp_parse_args.c:
+
+   fix parsing of -T name/value pairs
+
+2010-05-11 23:33  tanders
+
+   * testing/RUNFULLTESTS:
+
+   bug fixing and better error messages for "make test" with
+   Test::Harness
+   (still doesn't work for me, though)
+
+2010-05-11 22:34  tanders
+
+   * testing/RUNFULLTESTS:
+
+   Do NOT hardcode /usr/bin/perl as the Perl path
+
+2010-05-11 20:16  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   fix stash file handling
+
+2010-05-11 20:16  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   long options suck ;-). prefer double dashes for long options to
+   match the rest of the Net-SNMP code base
+
+2010-05-11 20:16  hardaker
+
+   * testing/Makefile.in, testing/RUNFULLTESTS:
+
+   added ability to run only the failed tests from the last run
+
+2010-05-11 20:16  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   don't force color
+
+2010-05-11 20:16  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   cleanup of older
+
+2010-05-11 20:15  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   Minimally support the older Test::Harness perl module for running
+   the older tests at least
+
+2010-05-11 20:15  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      include/net-snmp/library/snmp_transport.h, snmplib/snmp_api.c,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   set a default securityName and securityModel if TLS or DTLS is in
+   use on the client side
+
+2010-05-11 20:15  hardaker
+
+   *  include/net-snmp/library/snmp_secmod.h,   
+      include/net-snmp/library/snmpusm.h, snmplib/snmp_api.c,   
+      snmplib/snmpusm.c:
+
+   allow security models to perform more of the session setup; moved
+   more USM specific setup into it's setup routine
+
+2010-05-11 18:02  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   fix param to lookup peer cert
+
+2010-05-11 16:10  rstory
+
+   * snmplib/snmp_transport.c:
+
+   allow '-' in fqdn; add debug output for host specific config
+
+2010-05-11 15:46  dts12
+
+   * win32/libsnmp_dll/libsnmp.def:
+
+   Ensure 'netsnmp_read_module' is available for perl build.
+
+2010-05-11 15:44  dts12
+
+   * perl/agent/agent.xs:
+
+   Fix perl build under Windows (strtoull not available)
+
+2010-05-10 07:07  magfr
+
+   *  include/net-snmp/library/snmpSSHDomain.h,   
+      snmplib/transports/snmpSSHDomain.c:
+
+   CHANGES: snmplib: Add missing symbol netsnmp_snmpSSHDomain_len,
+   make netsnmp_snmpSSHDomain const.
+
+2010-05-09 22:03  magfr
+
+   * testing/fulltests/default/T150solarishostcpu_olducd:
+
+   Do not require quotes around the CPU string as that depends on
+   how the agent is configured.
+
+2010-05-09 21:43  magfr
+
+   *  agent/mibgroup/default_modules.h, agent/mibgroup/util_funcs.c,   
+      agent/mibgroup/util_funcs.h, agent/mibgroup/util_funcs/Exit.c,   
+      agent/mibgroup/util_funcs/Exit.h,   
+      agent/mibgroup/util_funcs/restart.c,   
+      agent/mibgroup/util_funcs/restart.h:
+
+   CHANGES: snmpd: Extract the Exit and restart* subroutines from
+   util_func in order to make it possible to build less code for the
+   minimal case.
+
+2010-05-09 16:47  bvassche
+
+   * agent/mibgroup/util_funcs.c:
+
+   Fixed a compiler warning: made sure that the function
+   get_exec_output() returns a value when the preprocessor symbol
+   USING_UCD_SNMP_EXTENSIBLE_MODULE has not been defined.
+
+2010-05-09 16:45  bvassche
+
+   *  configure, configure.d/config_modules_agent,   
+      configure.d/config_modules_lib:
+
+   CHANGES: Cygwin: builds now also when the source files are
+   located on a Samba filesystem instead of a local filesystem.
+
+2010-05-09 13:05  magfr
+
+   * include/net-snmp/library/snmp_debug.h:
+
+   Correct the if that tries to figure out if a sufficiently new gcc
+   is in use.
+
+2010-05-09 12:50  magfr
+
+   * apps/snmptrapd_handlers.c:
+
+   Check for the needed module and not some other one.
+   Log the correct missing symbol.
+
+2010-05-09 09:21  magfr
+
+   *  agent/mibgroup/utilities/execute.c,   
+      agent/mibgroup/utilities/execute.h:
+
+   CHANGES: snmpd: utilities/execute do not need anything from
+   util_funcs, so stop depending on it.
+
+2010-05-09 09:12  magfr
+
+   * agent/mibgroup/utilities/execute.c:
+
+   NEWS: snmpd: Removed the unused function xx_tokenize_exec_command
+   from utilities/execute.
+
+2010-05-09 09:01  magfr
+
+   * include/net-snmp/library/snmp_debug.h, snmplib/snmp_debug.c:
+
+   CHANGES: snmplib: Replace the debugging functions with dummies
+   when debugging is disabled.
+
+2010-05-09 08:02  magfr
+
+   * testing/fulltests/transports/T300udp_olducd:
+
+   Check that the UDP transport is enabled
+
+2010-05-09 08:01  magfr
+
+   *  testing/fulltests/transports/Stransport,   
+      testing/fulltests/transports/T300udp_olducd,   
+      testing/fulltests/transports/T310tcp_olducd,   
+      testing/fulltests/transports/T320udpv6_olducd,   
+      testing/fulltests/transports/T330tcpv6_olducd,   
+      testing/fulltests/transports/T350unix_olducd,   
+      testing/fulltests/transports/T360dtlsudp_olducd,   
+      testing/fulltests/transports/T361tlstcp_olducd:
+
+   Factor out check for mibII/system_mib
+
+2010-05-09 07:59  magfr
+
+   *  testing/fulltests/snmpv3/T040keymanagetest_capp.c,   
+      testing/fulltests/snmpv3/T050etimetest_capp.c:
+
+   Add missing includes
+
+2010-05-08 23:16  magfr
+
+   * testing/RUNFULLTESTS:
+
+   Additionally fix make test for the uncommon case where builddir
+   == srcdir
+
+2010-05-08 22:55  magfr
+
+   *  testing/Makefile.in, testing/RUNFULLTESTS,   
+      testing/fulltests/support/build_capp,   
+      testing/fulltests/support/olducd_TESTCONF.sh,   
+      testing/fulltests/support/olducd_eval_tools.sh,   
+      testing/fulltests/support/run_olducd:
+
+   CHANGES: testing: Make it possible to run the test suite from
+   anywhere.
+   Change the -D option to expect the path of the top source
+   directory.
+   Add an -srcdir option that is an alias for -D.
+   Add an -builddir option to designate the directory where the test
+   object is.
+   Put srcdir and builddir in the environment for the test scripts
+   Factor out the grep part of SKIPIF and SKIPIFNOT to ISDEFINED
+   Use more readable keys in the opts hash in RUNFULLTESTS
+   Adjust everything to use srcdir and builddir
+
+2010-05-08 22:42  magfr
+
+   * testing/fulltests/snmpv3/T040keymanagetest_capp.c:
+
+   Use correct argument types
+
+2010-05-08 22:07  magfr
+
+   * Makefile.in:
+
+   Consolidate the test and test-mibs targets.
+   Expose the testall target in the top makefile.
+
+2010-05-08 22:05  magfr
+
+   * snmplib/snmp_transport.c:
+
+   Do not abort when str is NULL as that is a perfectly valid input.
+
+2010-05-08 22:03  magfr
+
+   * testing/fulltests/snmpv3/T010scapitest_capp.c:
+
+   Use correct argument types
+
+2010-05-08 22:02  magfr
+
+   * testing/fulltests/snmpv3/T050etimetest_capp.c:
+
+   Add missing newline
+
+2010-05-07 21:11  rstory
+
+   * configure:
+
+   update for new configure.ac
+
+2010-05-07 19:21  rstory
+
+   * agent/mibgroup/tlstm-mib/tlstmCertToTSNTable/tlstmCertToTSNTable.c:
+
+   fix handling of cert algorithm in fingerprints; convert in/out
+   fingerpints
+   from/to hex
+
+2010-05-07 19:21  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   dont specify hash type for fingerprint
+
+2010-05-07 19:21  rstory
+
+   *  include/net-snmp/library/cert_util.h,   
+      include/net-snmp/library/snmp_openssl.h, snmplib/cert_util.c,   
+      snmplib/snmp_openssl.c:
+
+   handle fingerprint types; drop san fields from cert struct;
+   consider directory
+   when partnering keys/certs
+
+2010-05-07 19:20  rstory
+
+   * configure.ac:
+
+   move default prompts earlier
+
+2010-05-06 15:40  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   better SAN extraction; tweak dubgus messages; quiet compiler
+   warnings
+
+2010-05-06 15:39  rstory
+
+   * snmplib/cert_util.c:
+
+   reduce cert debug output; debug instead of log_info in dumps
+
+2010-05-06 14:49  dts12
+
+   * snmplib/inet_ntop.c, snmplib/inet_pton.c:
+
+   Don't assume the presence of <string.h>
+   (bring into line with all other occurances)
+
+2010-05-06 14:41  dts12
+
+   * apps/snmptrapd.c, apps/snmptrapd_log.c, snmplib/callback.c:
+
+   CHANGES: Windows: Fix build under MinGW
+   back/forward port of revision 18631
+
+2010-05-05 17:43  rstory
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   fix type in log msg
+
+2010-05-05 17:43  rstory
+
+   * local/net-snmp-cert:
+
+   remove import for unused function
+
+2010-05-04 07:12  magfr
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   Negate reason given from SKIPIF
+
+2010-05-03 22:38  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   fix len in email cmp; more extract debugging
+
+2010-05-03 22:38  rstory
+
+   * snmplib/cert_util.c:
+
+   copy ocert to addional maps
+
+2010-05-03 14:20  marz
+
+   * local/net-snmp-cert:
+
+   remove dependency on perl module not present in CentOS
+
+2010-05-03 03:49  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   don't access struct internals directly
+
+2010-05-03 03:48  rstory
+
+   *  agent/mibgroup/agent/extend.c, agent/mibgroup/util_funcs.c,   
+      apps/snmptrapd_handlers.c:
+
+   fix compiling with-out-mibmodules=utilities/execute
+
+2010-05-01 19:08  magfr
+
+   * testing/fulltests/default/T150solarishostcpu_olducd:
+
+   Correct the sought string to make the test pass when ok.
+
+2010-05-01 17:15  marz
+
+   * local/net-snmp-cert:
+
+   more consistent treatment of keyUsage, basicConstraints, other
+   x509v3 options
+
+2010-04-30 23:37  marz
+
+   * local/certgen-test.pl:
+
+   lame test script but covers a chunk of the code
+
+2010-04-30 23:00  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   mkinstalldirs instead instead of File::Path
+
+2010-04-30 23:00  hardaker
+
+   *  testing/fulltests/support/olducd_TESTCONF.sh,   
+      testing/fulltests/support/run_olducd:
+
+   ensure net-snmp-config script can be run from the build dir
+
+2010-04-30 21:31  marz
+
+   * local/net-snmp-cert:
+
+   handle gencert --ca
+
+2010-04-30 21:01  rstory
+
+   * snmplib/cert_util.c:
+
+   add help for certSecName; continue building cert indexes even if
+   we cant save
+   to persistent dir
+
+2010-04-30 20:48  hardaker
+
+   * testing/fulltests/transports/Stlstests:
+
+   fix check count for 822 names in the snmpd.log
+
+2010-04-30 20:48  hardaker
+
+   * snmplib/snmp_openssl.c, testing/fulltests/transports/Stlstests:
+
+   fix malloc unnderlength by 1 error
+
+2010-04-30 20:48  hardaker
+
+   * testing/fulltests/transports/Stlstests:
+
+   comment out the 822 tests; they're broken at the moment
+
+2010-04-30 19:36  marz
+
+   * local/net-snmp-cert:
+
+   don't lose SAN when signing w/ CA
+
+2010-04-30 18:46  hardaker
+
+   * snmplib/cert_util.c:
+
+   make name change to rfc822 from typoed 8220
+
+2010-04-30 18:46  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   added tests to do other subjectAltName mapping
+
+2010-04-30 17:31  marz
+
+   * local/net-snmp-cert:
+
+   fix issues 1,2,4 and -C handling
+
+2010-04-29 03:32  rstory
+
+   * agent/mibgroup/tlstm-mib/tlstmCertToTSNTable/tlstmCertToTSNTable.c:
+
+   update tlstmCertToTSNTable to use cache + cert_util maps
+   container
+
+2010-04-29 03:31  rstory
+
+   * agent/helpers/table_tdata.c:
+
+   check insert return
+
+2010-04-29 03:31  rstory
+
+   *  include/net-snmp/library/container.h,   
+      snmplib/container_binary_array.c:
+
+   NEWS: snmplib: add remove function to container iterator;
+   implement it for
+   binary_array
+
+2010-04-29 03:31  rstory
+
+   * snmplib/container_binary_array.c:
+
+   make sure container sync incremented on sort, insert and remove
+
+2010-04-28 07:20  bvassche
+
+   * snmplib/inet_ntop.c:
+
+   Removed an obsolete comment.
+
+2010-04-28 00:33  hardaker
+
+   * testing/Makefile.in:
+
+   fix makefile for test target
+
+2010-04-28 00:33  hardaker
+
+   *  testing/Makefile.in, testing/RUNFULLTESTS,   
+      testing/fulltests/support/build_capp:
+
+   make the test suite run outside the source directory again.
+
+2010-04-28 00:33  hardaker
+
+   * testing/fulltests/transports/Stls:
+
+   deal with out-of-source tree building
+
+2010-04-28 00:32  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests:
+
+   testing to check certificate to securityname mappings and denials
+
+2010-04-28 00:32  hardaker
+
+   * testing/fulltests/transports/Stls:
+
+   created a mapped user
+
+2010-04-28 00:32  hardaker
+
+   * testing/fulltests/support/build_capp:
+
+   generate object code with -g debugging
+
+2010-04-28 00:32  hardaker
+
+   * testing/fulltests/snmpv3/T010scapitest_capp.c:
+
+   more accurate current API usage for scapi code
+
+2010-04-27 21:13  rstory
+
+   * snmplib/cert_util.c:
+
+   fix cert init duplicate call check
+
+2010-04-27 20:58  rstory
+
+   * snmplib/cert_util.c, snmplib/snmp_api.c:
+
+   convert user fingerprint to lower and strip colons; add extern
+   prototype
+   for cert init so we don't need header
+
+2010-04-27 20:15  rstory
+
+   *  include/net-snmp/library/cert_util.h, man/snmpd.conf.5.def,   
+      snmplib/cert_util.c, snmplib/snmp_api.c,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   separate cert init and cert loading; add certSecName config token
+
+2010-04-27 03:18  rstory
+
+   * include/net-snmp/library/snmp_assert.h:
+
+   merge NETSNMP_FUNCTION and !NETSNMP_FUNCTION assert cases
+
+2010-04-27 03:02  rstory
+
+   *  include/net-snmp/library/cert_util.h,   
+      include/net-snmp/library/snmp_openssl.h, snmplib/cert_util.c,   
+      snmplib/snmp_openssl.c, snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   lots of new cert functionality
+   - add ssl funcs for cert extensions and ssl cert chains
+   - functions and new netsmp_cert_map struct for looking up cert
+   mappings
+   - add certificate mapping for secname
+   - add code to build cert chains
+   - add subject to cert index cache
+   - rebuild indexes if any error while parsing index
+   - reformat dump output
+   - add NS_CERT_CA allowed_use flag
+   - add subject, issuer and issuer_cert to netsnmp_cert
+   - move cert container setup to its own function
+   - add cert subject name subcontainer
+
+2010-04-27 03:02  rstory
+
+   * agent/mibgroup/ip-mib/data_access/ipv6scopezone_linux.c:
+
+   move ipv6 specific var decl inside ifdef
+
+2010-04-27 03:02  rstory
+
+   *  agent/helpers/table_tdata.c,   
+      include/net-snmp/agent/table_tdata.h:
+
+   CHANGES: agent: tdata helper now saves flags passed during
+   creation; add tdata
+   flag to NOT create the table container
+
+2010-04-27 03:01  rstory
+
+   *  include/net-snmp/library/container.h, snmplib/container.c,   
+      snmplib/container_binary_array.c:
+
+   NEWS: snmplib: add interface for duplicating a container
+   CHANGES: snmplib: container changes: add flags field to container
+   meta-data;
+   chg binary_array container to use container meta-data flags
+
+2010-04-26 22:32  hardaker
+
+   * testing/fulltests/transports/Stlstests:
+
+   added a test to verify that when the transport is configured with
+   a remote certificate fingerprint the connection is denied
+
+2010-04-26 22:32  hardaker
+
+   *  testing/fulltests/transports/Stls,   
+      testing/fulltests/transports/Stlstests,   
+      testing/fulltests/transports/T360dtlsudp_olducd,   
+      testing/fulltests/transports/T361tlstcp_olducd:
+
+   added tests for -T flag usage and invalid user usage
+
+2010-04-26 20:54  hardaker
+
+   * testing/fulltests/transports/T399alias_olducd:
+
+   have the alias transport source the right Sv3config file
+
+2010-04-26 20:50  hardaker
+
+   *  testing/fulltests/transports/T360dtlsudp_olducd,   
+      testing/fulltests/transports/T361tlstcp_olducd:
+
+   working support of TLS/DTLS testing including cert generation
+
+2010-04-26 20:49  hardaker
+
+   * local/net-snmp-cert:
+
+   honor the config dir if specified via -C
+
+2010-04-26 20:49  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   fix realloc call for buffered packets
+
+2010-04-26 20:49  hardaker
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   proper skip output for reporting reason
+
+2010-04-26 20:49  hardaker
+
+   *  testing/fulltests/snmpv3/T010scapitest_capp.c,   
+      testing/fulltests/snmpv3/T040keymanagetest_capp.c,   
+      testing/fulltests/snmpv3/T050etimetest_capp.c:
+
+   remove trailing whitespace after backslash in macro
+
+2010-04-26 20:48  hardaker
+
+   *  testing/fulltests/transports,   
+      testing/fulltests/transports/Stransport,   
+      testing/fulltests/transports/T300udp_olducd,   
+      testing/fulltests/transports/T310tcp_olducd,   
+      testing/fulltests/transports/T320udpv6_olducd,   
+      testing/fulltests/transports/T330tcpv6_olducd,   
+      testing/fulltests/transports/T350unix_olducd,   
+      testing/fulltests/transports/T360dtlsudp_olducd,   
+      testing/fulltests/transports/T361tlstcp_olducd,   
+      testing/fulltests/transports/T399alias_olducd,   
+      testing/fulltests/transports/test-localhost.cert,   
+      testing/fulltests/transports/test-localhost.priv,   
+      testing/fulltests/transports/test-user.cert,   
+      testing/fulltests/transports/test-user.priv:
+
+   tests for minimally testing all the transports
+
+2010-04-26 20:48  hardaker
+
+   * testing/README:
+
+   minimally document new RUNFULLTESTS script
+
+2010-04-26 20:48  hardaker
+
+   *  testing/T.c, testing/T2.sh, testing/data.keychange-md5,   
+      testing/data.keychange-sha1, testing/data.keychange-sha1-des,   
+      testing/data.kul-md5, testing/data.kul-sha1, testing/misctest.c,  
+       testing/test_keychange.sh, testing/test_kul.sh:
+
+   deleted old files not worth restoring
+
+2010-04-26 20:48  hardaker
+
+   * testing/eval_testlist:
+
+   remove obsolute test list
+
+2010-04-26 20:47  hardaker
+
+   * testing/fulltests/snmpv3/T020hashtests_capp.c:
+
+   a hash-testing .c file I had laying around
+
+2010-04-26 20:47  hardaker
+
+   * testing/Makefile.in:
+
+   make testall target
+
+2010-04-26 20:47  hardaker
+
+   *  testing/RUNFULLTESTS, testing/etimetest.c,   
+      testing/fulltests/snmpv3,   
+      testing/fulltests/snmpv3/T010scapitest_capp.c,   
+      testing/fulltests/snmpv3/T040keymanagetest_capp.c,   
+      testing/fulltests/snmpv3/T050etimetest_capp.c,   
+      testing/fulltests/support/build_capp,   
+      testing/fulltests/support/olducd_eval_tools.sh,   
+      testing/keymanagetest.c, testing/scapitest.c:
+
+   move old C-code tests in place
+
+2010-04-26 20:47  hardaker
+
+   *  testing/fulltests/default/T150solarishostcpu_olducd,   
+      testing/fulltests/default/T151solarishostdisk_olducd,   
+      testing/fulltests/default/T153solarisswap_olducd:
+
+   skip solaris comments
+
+2010-04-26 20:46  hardaker
+
+   * testing/Makefile.in:
+
+   fix invocation of RUNFULLTESTS
+
+2010-04-26 20:46  hardaker
+
+   *  testing/Makefile.in, testing/fulltests/default,   
+      testing/fulltests/default/Sv1config,   
+      testing/fulltests/default/Sv2cconfig,   
+      testing/fulltests/default/Sv3config,   
+      testing/fulltests/default/Sv3usmconfigagent,   
+      testing/fulltests/default/Sv3usmconfigbase,   
+      testing/fulltests/default/Sv3usmconfigtrapd,   
+      testing/fulltests/default/Sv3vacmconfig,   
+      testing/fulltests/default/Svacmconfig,   
+      testing/fulltests/default/Svanyconfig,   
+      testing/fulltests/default/T001snmpv1get_olducd,   
+      testing/fulltests/default/T014snmpv2cget_olducd,   
+      testing/fulltests/default/T015snmpv2cgetnext_olducd,   
+      testing/fulltests/default/T0160snmpv2cbulkget_olducd,   
+      testing/fulltests/default/T016snmpv2cgetfail_olducd,   
+      testing/fulltests/default/T017snmpv2ctov1getfail_olducd,   
+      testing/fulltests/default/T018snmpv1tov2cgetfail_olducd,   
+      testing/fulltests/default/T019snmpv2cnosuch_olducd,   
+      testing/fulltests/default/T020snmpv3get_olducd,   
+      testing/fulltests/default/T021snmpv3getnext_olducd,   
+      testing/fulltests/default/T0220snmpv3bulkget_olducd,   
+      testing/fulltests/default/T022snmpv3getMD5_olducd,   
+      testing/fulltests/default/T023snmpv3getMD5AES_olducd,   
+      testing/fulltests/default/T023snmpv3getMD5DES_olducd,   
+      testing/fulltests/default/T024snmpv3getSHA1_olducd,   
+      testing/fulltests/default/T025snmpv3getSHADES_olducd,   
+      testing/fulltests/default/T026snmpv3getSHAAES_olducd,   
+      testing/fulltests/default/T028snmpv3getfail_olducd,   
+      testing/fulltests/default/T030snmpv3usercreation_olducd,   
+      testing/fulltests/default/T035snmpv3trapdusermgmt_olducd,   
+      testing/fulltests/default/T049snmpv3inform_olducd,   
+      testing/fulltests/default/T049snmpv3informauth_olducd,   
+      testing/fulltests/default/T049snmpv3informpriv_olducd,   
+      testing/fulltests/default/T050snmpv3trap_olducd,   
+      testing/fulltests/default/T051snmpv2ctrap_olducd,   
+      testing/fulltests/default/T052snmpv2cinform_olducd,   
+      testing/fulltests/default/T053agentv1trap_olducd,   
+      testing/fulltests/default/T054agentv2ctrap_olducd,   
+      testing/fulltests/default/T055agentv1mintrap_olducd,   
+      testing/fulltests/default/T056agentv2cmintrap_olducd,   
+      testing/fulltests/default/T057trapdauthtest2_olducd,   
+      testing/fulltests/default/T057trapdauthtest3_olducd,   
+      testing/fulltests/default/T057trapdauthtest_olducd,   
+      testing/fulltests/default/T058agentauthtrap_olducd,   
+      testing/fulltests/default/T059trapdtraphandle_olducd,   
+      testing/fulltests/default/T060trapdperl_olducd,   
+      testing/fulltests/default/T061agentperl_olducd,   
+      testing/fulltests/default/T065agentextend_olducd,   
+      testing/fulltests/default/T070com2sec_olducd,   
+      testing/fulltests/default/T071com2sec6_olducd,   
+      testing/fulltests/default/T072com2secunix_olducd,   
+      testing/fulltests/default/T100agenthup_olducd,   
+      testing/fulltests/default/T110agentxget_olducd,   
+      testing/fulltests/default/T111agentxset_olducd,   
+      testing/fulltests/default/T112agentxsetfail_olducd,   
+      testing/fulltests/default/T113agentxtrap_olducd,   
+      testing/fulltests/default/T114agentxagentxtrap_olducd,   
+      testing/fulltests/default/T115agentxperl_olducd,   
+      testing/fulltests/default/T120proxyget_olducd,   
+      testing/fulltests/default/T121proxyset_olducd,   
+      testing/fulltests/default/T122proxysetfail_olducd,   
+      testing/fulltests/default/T130snmpv1vacmget_olducd,   
+      testing/fulltests/default/T131snmpv2cvacmget_olducd,   
+      testing/fulltests/default/T132snmpv3vacmget_olducd,   
+      testing/fulltests/default/T140snmpv1vacmgetfail_olducd,   
+      testing/fulltests/default/T141snmpv2cvacmgetfail_olducd,   
+      testing/fulltests/default/T142snmpv3vacmgetfail_olducd,   
+      testing/fulltests/default/T150solarishostcpu_olducd,   
+      testing/fulltests/default/T151solarishostdisk_olducd,   
+      testing/fulltests/default/T152hostuptime_olducd,   
+      testing/fulltests/default/T153solarisswap_olducd,   
+      testing/fulltests/default/T160snmpnetstat_olducd,   
+      testing/fulltests/default/T200snmpv2cwalkall_olducd,   
+      testing/tests/Stransport, testing/tests/Sv1config,   
+      testing/tests/Sv2cconfig, testing/tests/Sv3config,   
+      testing/tests/Sv3usmconfigagent, testing/tests/Sv3usmconfigbase,  
+       testing/tests/Sv3usmconfigtrapd, testing/tests/Sv3vacmconfig,   
+      testing/tests/Svacmconfig, testing/tests/Svanyconfig,   
+      testing/tests/T001snmpv1get, testing/tests/T014snmpv2cget,   
+      testing/tests/T015snmpv2cgetnext,   
+      testing/tests/T0160snmpv2cbulkget,   
+      testing/tests/T016snmpv2cgetfail,   
+      testing/tests/T017snmpv2ctov1getfail,   
+      testing/tests/T018snmpv1tov2cgetfail,   
+      testing/tests/T019snmpv2cnosuch, testing/tests/T020snmpv3get,   
+      testing/tests/T021snmpv3getnext,   
+      testing/tests/T0220snmpv3bulkget, testing/tests/T022snmpv3getMD5, 
+        testing/tests/T023snmpv3getMD5AES,   
+      testing/tests/T023snmpv3getMD5DES,   
+      testing/tests/T024snmpv3getSHA1,   
+      testing/tests/T025snmpv3getSHADES,   
+      testing/tests/T026snmpv3getSHAAES,   
+      testing/tests/T028snmpv3getfail,   
+      testing/tests/T030snmpv3usercreation,   
+      testing/tests/T035snmpv3trapdusermgmt,   
+      testing/tests/T049snmpv3inform,   
+      testing/tests/T049snmpv3informauth,   
+      testing/tests/T049snmpv3informpriv, testing/tests/T050snmpv3trap, 
+        testing/tests/T051snmpv2ctrap, testing/tests/T052snmpv2cinform, 
+        testing/tests/T053agentv1trap, testing/tests/T054agentv2ctrap,  
+       testing/tests/T055agentv1mintrap,   
+      testing/tests/T056agentv2cmintrap,   
+      testing/tests/T057trapdauthtest,   
+      testing/tests/T057trapdauthtest2,   
+      testing/tests/T057trapdauthtest3,   
+      testing/tests/T058agentauthtrap,   
+      testing/tests/T059trapdtraphandle, testing/tests/T060trapdperl,   
+      testing/tests/T061agentperl, testing/tests/T065agentextend,   
+      testing/tests/T070com2sec, testing/tests/T071com2sec6,   
+      testing/tests/T072com2secunix, testing/tests/T100agenthup,   
+      testing/tests/T110agentxget, testing/tests/T111agentxset,   
+      testing/tests/T112agentxsetfail, testing/tests/T113agentxtrap,   
+      testing/tests/T114agentxagentxtrap, testing/tests/T115agentxperl, 
+        testing/tests/T120proxyget, testing/tests/T121proxyset,   
+      testing/tests/T122proxysetfail, testing/tests/T130snmpv1vacmget,  
+       testing/tests/T131snmpv2cvacmget,   
+      testing/tests/T132snmpv3vacmget,   
+      testing/tests/T140snmpv1vacmgetfail,   
+      testing/tests/T141snmpv2cvacmgetfail,   
+      testing/tests/T142snmpv3vacmgetfail,   
+      testing/tests/T150solarishostcpu,   
+      testing/tests/T151solarishostdisk, testing/tests/T152hostuptime,  
+       testing/tests/T153solarisswap, testing/tests/T160snmpnetstat,   
+      testing/tests/T200snmpv2cwalkall,   
+      testing/tests/test-localhost.cert,   
+      testing/tests/test-localhost.priv, testing/tests/test-user.cert,  
+       testing/tests/test-user.priv:
+
+   NEWS: testing: Brand new test suite desigened to eventually test
+   more functionality, provide for support of unit-tests and support
+   of API tests
+
+2010-04-26 20:43  hardaker
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   removed a debugging echo
+
+2010-04-26 20:43  hardaker
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   more bug fixes for string searches
+
+2010-04-26 20:43  hardaker
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   added a new macro to check a trapd count
+
+2010-04-26 20:42  hardaker
+
+   * testing/fulltests/support/olducd_eval_tools.sh:
+
+   use individual output files and fix some tests
+
+2010-04-26 20:42  hardaker
+
+   *  testing/RUNFULLTESTS,   
+      testing/fulltests/support/olducd_eval_tools.sh:
+
+   made existing test suite put out TAP output
+
+2010-04-26 20:42  hardaker
+
+   *  testing/RUNTESTS, testing/TESTCONF.sh,   
+      testing/eval_oneprogram.sh, testing/eval_onescript.sh,   
+      testing/eval_suite.sh, testing/eval_tools.sh, testing/fulltests,  
+       testing/fulltests/support,   
+      testing/fulltests/support/olducd_TESTCONF.sh,   
+      testing/fulltests/support/olducd_eval_tools.sh,   
+      testing/fulltests/support/run_olducd:
+
+   beginning of moving UCD test suite into a larger subdirectory
+
+2010-04-26 20:41  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   allow running tests that match a regexp
+
+2010-04-26 20:41  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   summarize tests that failed
+
+2010-04-26 20:41  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   created the ability to have run_ scripts for executing certain
+   types
+
+2010-04-26 20:41  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   made the build-script-check routine generic
+
+2010-04-26 20:41  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   support for build scripts
+
+2010-04-26 20:40  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   provide infrastructure for building and renaming tests
+
+2010-04-26 20:40  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   more test infrastructure setup
+
+2010-04-26 20:40  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   support the keyword 'all'
+
+2010-04-26 20:40  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   enable group gathering
+
+2010-04-26 20:39  hardaker
+
+   * testing/RUNFULLTESTS:
+
+   creatino of a new testing harness
+
+2010-04-25 17:37  bvassche
+
+   * README.win32:
+
+   Documentation update.
+
+2010-04-25 15:21  bvassche
+
+   *  win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   Win32: reverted a recent unnecessary modification.
+
+2010-04-25 15:00  marz
+
+   * local/net-snmp-cert:
+
+   handle multiple --san args, check error codes on openssl cmds and
+   die on failure
+
+2010-04-25 14:18  bvassche
+
+   * win32/net-snmp/agent/mib_module_config.h:
+
+   Win32: builds again with SDK support disabled.
+
+2010-04-25 14:18  bvassche
+
+   *  win32/libnetsnmptrapd/Makefile.in, win32/netsnmpmibs/Makefile.in, 
+        win32/snmpd/Makefile.in, win32/snmptrapd/Makefile.in:
+
+   Win32: restored consistency between workspace-build and batch
+   build -- made sure that notification_log.c is only included in
+   the netsnmpmibs project.
+
+2010-04-25 13:58  bvassche
+
+   *  include/net-snmp/library/snmpTCPIPv6Domain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h,   
+      win32/libsnmp_dll/libsnmp.def, win32/net-snmp/net-snmp-config.h,  
+       win32/net-snmp/net-snmp-config.h.in,   
+      win32/transports/snmp_transport_inits.h:
+
+   Win32: fixes for recently introduced build breakage.
+
+2010-04-25 13:51  bvassche
+
+   * win32/libsnmp/Makefile.in, win32/libsnmp_dll/Makefile.in:
+
+   Win32: builds again with SDK support disabled.
+
+2010-04-25 13:48  bvassche
+
+   *  include/net-snmp/types.h, snmplib/closedir.c, snmplib/opendir.c,  
+       snmplib/readdir.c, snmplib/winservice.c:
+
+   Made sure that the Win32 MSVC 6 non-SDK build works again.
+
+2010-04-25 13:42  bvassche
+
+   * win32/Configure:
+
+   Removed an obsolete transformation rule.
+
+2010-04-25 12:05  bvassche
+
+   * win32/net-snmp/net-snmp-config.h.in:
+
+   Made it again possible to disable HAVE_WIN32_PLATFORM_SDK when
+   building via win32/build.bat.
+
+2010-04-23 13:14  marz
+
+   * local/net-snmp-cert:
+
+   added --san DNS:a.b.c handling, help text fixes, other bug fixes.
+   Note multiple --san not supported yet
+
+2010-04-21 22:31  hardaker
+
+   * local/Makefile.in:
+
+   build the .made version of net-snmp-cert
+
+2010-04-21 22:31  hardaker
+
+   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
+      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
+
+   make depend after moving all the files around
+
+2010-04-21 20:16  rstory
+
+   *  include/net-snmp/library/cert_util.h,   
+      include/net-snmp/library/snmp_openssl.h, snmplib/cert_util.c,   
+      snmplib/snmp_openssl.c, snmplib/transports/snmpTLSBaseDomain.c:
+
+   build trust chain for client cert; add subject to index cache;
+   rebuild indexes
+   if any error while parsing index; reformat dump output
+   - add NS_CERT_CA allowed_use flag
+   - add subject, issuer and issuer_cert to netsnmp_cert
+   - move certToTSN_entry to cert_util header
+   - move container setup to its own function
+   - add subject name subcontainer
+   - add netsnmp_openssl_cert_dump_extensions,
+   netsnmp_openssl_cert_issued_by
+
+2010-04-21 16:16  hardaker
+
+   * man/snmpcmd.1.def:
+
+   document the single-dash / snmp.conf / double-dash precidence
+
+2010-04-21 16:15  hardaker
+
+   * man/snmp.conf.5.def:
+
+   document in the snmp.conf file that the tokens can be used for
+   command line applications too
+
+2010-04-21 16:15  hardaker
+
+   * man/snmp.conf.5.def:
+
+   document the file loading order and how to turn off host-specific
+   config
+
+2010-04-21 15:52  hardaker
+
+   *  include/net-snmp/library/default_store.h,   
+      include/net-snmp/library/read_config.h,   
+      include/net-snmp/library/snmp_transport.h, man/snmp.conf.5.def,   
+      snmplib/read_config.c, snmplib/snmp_api.c,   
+      snmplib/snmp_transport.c:
+
+   NEWS: apps: Generic host-specific configuration snmp.conf files
+   are now read. See the HOST-SPECIFIC FILES section of the
+   snmp.conf manual page.
+
+2010-04-20 12:44  jsafranek
+
+   * snmplib/asn1.c:
+
+   CHANGES: snmplib: PATCH: 2971270: refuse to parse ASN.1 tokens
+   with wrong type field.
+   This may yield to problems with third-party applications which
+   may depend on parsing ugly ASN.1 data - we'll see...
+
+2010-04-20 00:12  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   combine remote fingerprint checking and check both sides
+
+2010-04-20 00:05  hardaker
+
+   *  include/net-snmp/library/cert_util.h, snmplib/cert_util.c,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   if the remote fingerprint is specified, require an exact match
+
+2010-04-19 23:44  hardaker
+
+   *  snmplib/fd_event_manager.c, snmplib/snmp_api.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   fix various minor bugs, especially in output messages
+
+2010-04-19 21:14  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   more documentation and prototyping of needed RFC steps
+
+2010-04-19 21:14  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   convert if error check to return immediately so other code can be
+   outdented
+
+2010-04-19 21:13  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   more comments from the RFC text
+
+2010-04-18 15:25  bvassche
+
+   *  include/net-snmp/library/snmp_api.h, snmplib/transports,   
+      win32/build.pl, win32/libsnmp/Makefile.in,   
+      win32/libsnmp/libsnmp.dsp, win32/libsnmp_dll/Makefile.in,   
+      win32/libsnmp_dll/libsnmp_dll.dsp, win32/netsnmpmibs/Makefile.in, 
+        win32/transports, win32/transports/snmp_transport_inits.h:
+
+   Win32: builds again.
+
+2010-04-16 18:53  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   created a function to extract the securityName from the cert
+
+2010-04-16 18:53  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   don't need to set the accept state for TLS (just DTLS)
+
+2010-04-16 18:53  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   more TLS comment documentation and steps taken from the RFC
+
+2010-04-16 13:55  marz
+
+   * local/net-snmp-cert:
+
+   numerous fixes, more verbose default output, additive show flags,
+   arbitrary config param handling, better help text
+
+2010-04-16 13:08  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   don't double declare a struct
+
+2010-04-16 03:30  rstory
+
+   * snmplib/cert_util.c:
+
+   cert util fixes
+   - remove unused vars and duplicate code
+   - check prt before free
+   - new func for type from filename
+   - new functions for finding subsets from filename
+   - fix types in key search function but then ifdef if (unused
+   function)
+
+2010-04-15 22:57  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   use a structure reference to predeclare the structure
+
+2010-04-15 21:25  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   correct declaration of the f_open command now requiring returning
+   a transport
+
+2010-04-15 21:02  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c:
+
+   remove unneeded config container
+
+2010-04-15 21:02  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   copy fingerprint transport information into new tls structure
+   within DTLSUDP so per-transport fingerprints can be specified
+
+2010-04-15 21:01  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   properly check for tlsbase pointers in dtlsudp_send()
+
+2010-04-15 21:01  hardaker
+
+   * configure.d/config_os_libs:
+
+   grep the transport list for TLS not just DTLS for checking for
+   -lssl
+
+2010-04-15 21:01  hardaker
+
+   *  snmplib/snmp_api.c, snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   more bug fixes and made TLSTCP work with the -T flag
+
+2010-04-15 21:01  hardaker
+
+   * snmplib/snmp_api.c, snmplib/transports/snmpTLSTCPDomain.c:
+
+   make the f_open call assign the new transport pointer to use (and
+   check if NULL as a failure condition
+
+2010-04-15 21:00  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpDTLSUDPDomain.c:
+
+   begin work moving DTLS config routine in place
+
+2010-04-15 21:00  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   pass the entire tlsbase to the client_setup
+
+2010-04-15 21:00  hardaker
+
+   *  include/net-snmp/library/container.h,   
+      include/net-snmp/library/snmpTLSBaseDomain.h, snmplib/snmp_api.c, 
+        snmplib/transports/snmpTLSBaseDomain.c:
+
+   starting the storing of config data into the tlsbase
+
+2010-04-15 20:59  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   change client ssl setup to allow for direct fingerprint
+   specification of my/their certs
+
+2010-04-15 20:59  hardaker
+
+   *  agent/snmp_agent.c, include/net-snmp/library/snmpTLSBaseDomain.h, 
+        snmplib/snmp_api.c, snmplib/transports/snmpTLSTCPDomain.c:
+
+   split TLS into creation/close functions for eventual config
+   passing support
+
+2010-04-15 20:59  hardaker
+
+   * include/net-snmp/library/snmp_transport.h, snmplib/snmp_api.c:
+
+   pass transport config data to the transport f_config() function
+
+2010-04-15 20:59  hardaker
+
+   * snmplib/snmp_api.c:
+
+   return NULL on transport config error
+
+2010-04-15 20:58  hardaker
+
+   *  include/net-snmp/library/snmp_transport.h,   
+      snmplib/snmp_parse_args.c, snmplib/snmp_transport.c:
+
+   NEWS: apps: -T command line flag can be used to configure
+   transports
+
+2010-04-15 20:58  hardaker
+
+   * snmplib/snmp_api.c:
+
+   check transport NULLness before using
+
+2010-04-15 20:58  hardaker
+
+   *  include/net-snmp/library/snmp_api.h,   
+      include/net-snmp/library/snmp_transport.h,   
+      include/net-snmp/types.h, snmplib/snmp_api.c:
+
+   beginning of work to make transports configurable with
+   supplimental configuration data and new calls for f_open/f_config
+
+2010-04-15 20:58  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   added text in comments from future RFC to document the
+   implementation
+
+2010-04-15 18:51  rstory
+
+   * snmplib/cert_util.c:
+
+   mark pem w/key as identity; tweak partner debug; compare file
+   ctime against index too
+
+2010-04-15 17:09  rstory
+
+   * snmplib/cert_util.c:
+
+   use local space to reformat cert for search
+
+2010-04-15 16:55  bvassche
+
+   * win32/net-snmp/agent/mib_module_config.h:
+
+   Partially reverted r18496:
+   - Commented out #define NETSNMP_USE_DLL again in file
+   win32/net-snmp/net-snmp-config.h on the 5.4 branch. This change
+   had been committed unintentionally.
+   - Re-enabled #define
+   USING_NOTIFICATION_LOG_MIB_NOTIFICATION_LOG_MODULE in
+   win32/net-snmp/agent/mib_module_config.h on the trunk and the
+   V5.5 branch. While build.bat reports an error on earlier branches
+   with this symbol enabled, there is no such problem on the trunk
+   or V5.5 branches and hence there was no reason to disable this
+   preprocessor symbol.
+
+2010-04-15 15:08  marz
+
+   * local/Makefile.in:
+
+   add net-snmp-cert to make/install
+
+2010-04-15 10:52  jsafranek
+
+   * testing/tests/T120proxyget, testing/tests/T121proxyset:
+
+   Tests not working for TCP should be skipped also for TCP6.
+
+2010-04-14 18:13  rstory
+
+   * snmplib/cert_util.c:
+
+   fix vars/text from cut-n-paste
+
+2010-04-14 17:45  rstory
+
+   * snmplib/snmp_openssl.c:
+
+   fix comments
+
+2010-04-14 17:45  rstory
+
+   * snmplib/cert_util.c:
+
+   lots of cert updates
+   - change cert subdir searching to match net-snmp-cert
+   - update key type handling
+   - ignore world readable keys
+   - keep type in indexes
+   - tweak cert/key print format
+
+2010-04-14 17:44  rstory
+
+   * local/net-snmp-cert:
+
+   make net-snmp-cert executable
+
+2010-04-14 13:12  jsafranek
+
+   *  testing/tests/Svacmconfig, testing/tests/T120proxyget,   
+      testing/tests/T121proxyset, testing/tests/T122proxysetfail:
+
+   Fixed tests 'Proxy GET/SET support' and 'SNMPv2 vacm denial
+   support' with udp6 transport.
+
+2010-04-14 09:47  dts12
+
+   *  win32, win32/bin, win32/dist, win32/dist/htmlhelp,   
+      win32/dist/installer, win32/dist/scripts, win32/encode_keychange, 
+        win32/lib, win32/libagent, win32/libhelpers,   
+      win32/libnetsnmptrapd, win32/libsnmp, win32/libsnmp_dll,   
+      win32/libucdmibs, win32/local, win32/net-snmp,   
+      win32/net-snmp/agent, win32/net-snmp/library, win32/netsnmpmibs,  
+       win32/snmpbulkget, win32/snmpbulkwalk, win32/snmpd,   
+      win32/snmpdelta, win32/snmpdf, win32/snmpget, win32/snmpgetnext,  
+       win32/snmpnetstat, win32/snmpset, win32/snmpstatus,   
+      win32/snmptable, win32/snmptest, win32/snmptranslate,   
+      win32/snmptrap, win32/snmptrapd, win32/snmpusm, win32/snmpvacm,   
+      win32/snmpwalk:
+
+   Don't try to SVN-manage the Windows batch build infrastructure
+   (add release, debug, Makefile to the previous ignore list)
+
+2010-04-14 08:16  dts12
+
+   * win32/libsnmp_dll/libsnmp.def:
+
+   Fix Windows batch build using Visual Studio with dynamic linking.
+   Unreferenced symbol introduced by SVN revision 18393
+
+2010-04-14 08:08  dts12
+
+   * win32/net-snmp/agent/mib_module_config.h:
+
+   CHANGES: Win32: Fix batch build using recent versions of Visual
+   Studio.
+   Partial back port of SVN revisions 17573 and 17696.
+
+2010-04-14 01:47  marz
+
+   * local/net-snmp-cert:
+
+   fix perms on created files -rw-------, umask(077)
+
+2010-04-13 22:15  marz
+
+   * local/net-snmp-cert, local/net-snmp-cert.conf:
+
+   fix perms, add --cn/-c, better dates defaults, snmp-tls org_unit,
+   added initial dummy config file
+
+2010-04-13 14:21  marz
+
+   * local/net-snmp-cert:
+
+   fixes for show cmds, cmdline, help
+
+2010-04-13 02:17  rstory
+
+   * snmplib/cert_util.c:
+
+   add support for key+cert in .pem files; misc tweaks
+
+2010-04-10 23:24  tanders
+
+   * snmplib/read_config.c:
+
+   build fix for C89 compilers (e.g. on HP-UX 10.20)
+
+2010-04-10 22:25  rstory
+
+   *  agent/mibgroup/tlstm-mib.h,   
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable,   
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable.h,   
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable/tlstmCertToTSNTable.c,
+        
+      agent/mibgroup/tlstm-mib/tlstmCertToTSNTable/tlstmCertToTSNTable.h:
+
+   initial cut at tlstmCertToTSNTable
+
+2010-04-10 22:24  rstory
+
+   * include/net-snmp/library/cert_util.h:
+
+   add define of max hash constant
+
+2010-04-10 22:24  rstory
+
+   * agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.c:
+
+   use cert util check for fingerprint len/algorithm
+
+2010-04-10 12:59  marz
+
+   * local/net-snmp-cert:
+
+   show cmd fixes
+
+2010-04-09 21:32  marz
+
+   * local/net-snmp-cert:
+
+   fairly functional (non-interactive) - be it known: there are bugs
+
+2010-04-09 20:54  rstory
+
+   *  agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.c,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable_internal.h:
+
+   merge some table_data.conf changes; remove unused code and a
+   bunch of verbose comments
+
+2010-04-08 14:57  rstory
+
+   * local/mib2c-update:
+
+   use full path
+
+2010-04-08 10:55  jsafranek
+
+   *  agent/mibgroup/if-mib/data_access/interface.c,   
+      agent/mibgroup/ip-mib/data_access/systemstats_common.c,   
+      agent/mibgroup/ip-mib/data_access/systemstats_linux.c,   
+      agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c,   
+      agent/mibgroup/sctp-mib/sctpScalars_common.c,   
+      include/net-snmp/data_access/systemstats.h:
+
+   Check results of calls to netsnmp_c64_check32_and_update and log
+   an error.
+   This allows users to relate various 'c64 32 bit check failed'
+   errors with specific counter.
+
+2010-04-08 01:09  rstory
+
+   * include/net-snmp/agent/table_tdata.h:
+
+   add prototype for new function
+
+2010-04-08 01:05  rstory
+
+   * agent/snmp_agent.c:
+
+   CHANGES: snmpd: translate NOSUCH*/ENDOFMIB errors during RESERVE1
+   to NOCREATION
+
+2010-04-08 00:56  rstory
+
+   * agent/helpers/table_tdata.c:
+
+   NEWS: snmpd: table_data/tdata next handler will not be called
+   during get
+   processing if no valid rows are found for the handler
+
+2010-04-08 00:56  rstory
+
+   * agent/helpers/table.c:
+
+   NEWS: snmpd: agent will no longer call table handlers if a set
+   request for
+   the handler has invalid indexes
+   CHANGES: snmpd: don't call cleanup on first request on bad
+   indexes. instead,
+   set actual error later, and free request data sets on first
+   request for sets
+
+2010-04-08 00:56  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   add function to validate fingerprint varbind
+
+2010-04-07 22:56  magfr
+
+   * configure, configure.d/config_modules_lib:
+
+   Solaris tr doesn't support character ranges reliably (see the
+   autoconf manual), change the expression to one that is simple
+   enough to b supported.
+
+2010-04-07 14:05  dts12
+
+   * local/mib2c.table_data.conf:
+
+   Insert the cache helper correctly.
+
+2010-04-07 10:40  rstory
+
+   *  agent/helpers/table_container.c, agent/helpers/table_tdata.c,   
+      include/net-snmp/agent/agent_handler.h,   
+      include/net-snmp/agent/table_container.h:
+
+   CHANGES: snmplib: add functions to remove list/row data from
+   request list
+
+2010-04-07 10:40  rstory
+
+   * agent/mibgroup/mibII/icmp.c:
+
+   ifdef var decl for vars only used in later ifdef block
+
+2010-04-07 10:40  rstory
+
+   *  include/net-snmp/library/check_varbind.h,   
+      include/net-snmp/library/snmp-tc.h, snmplib/check_varbind.c,   
+      snmplib/snmp-tc.c:
+
+   CHANGES: snmplib: add function to validate RowStatus and
+   StorageType varbinds
+   - also remove some duplicate code and fix comments indent mangled
+
+2010-04-07 10:39  rstory
+
+   * local/mib2c-update, man/mib2c-update.1.def:
+
+   update man page; fix shell redirect; create example rcfile if
+   missing
+
+2010-04-07 07:15  magfr
+
+   * apps/agentxtrap.c:
+
+   Use NETSNMP_DISABLE_MIB_LOADING instead of DISABLE_MIB_LOADING
+
+2010-04-07 00:38  magfr
+
+   * agent/mibgroup/host/data_access/swinst.h:
+
+   CHANGES: snmpd: Only enable hostSwInst rpm support on linux hosts
+   with librpm. This makes it possible to build on non-rpm linux
+   distributions.
+
+2010-04-07 00:14  magfr
+
+   *  testing/tests/T021snmpv3getnext,   
+      testing/tests/T035snmpv3trapdusermgmt,   
+      testing/tests/T049snmpv3inform,   
+      testing/tests/T049snmpv3informauth,   
+      testing/tests/T049snmpv3informpriv, testing/tests/T050snmpv3trap, 
+        testing/tests/T051snmpv2ctrap, testing/tests/T052snmpv2cinform, 
+        testing/tests/T053agentv1trap, testing/tests/T054agentv2ctrap,  
+       testing/tests/T055agentv1mintrap,   
+      testing/tests/T056agentv2cmintrap,   
+      testing/tests/T059trapdtraphandle, testing/tests/T100agenthup,   
+      testing/tests/T111agentxset, testing/tests/T112agentxsetfail,   
+      testing/tests/T113agentxtrap, testing/tests/T120proxyget,   
+      testing/tests/T121proxyset, testing/tests/T122proxysetfail,   
+      testing/tests/T141snmpv2cvacmgetfail:
+
+   CHANGES: testing: Change the test suite to work even if mib
+   lookup is disabled.
+
+2010-04-07 00:11  magfr
+
+   * testing/tests/T071com2sec6:
+
+   Check for com2sec6, not com2sec.
+
+2010-04-06 22:51  magfr
+
+   * configure, configure.d/config_modules_lib:
+
+   Move directory creation before the directories are used.
+
+2010-04-06 11:03  dts12
+
+   * FAQ:
+
+   Python is apparently client-side only.
+
+2010-04-06 10:06  dts12
+
+   * agent/snmpd.c:
+
+   Set supplementary groups before changing UID
+   (which probably involves giving up privileges)
+
+2010-04-06 08:57  dts12
+
+   * mibs/UCD-SNMP-MIB.txt:
+
+   Document large-disk statistics as latching at 2Tb (rather than
+   wrapping).
+
+2010-04-06 01:52  rstory
+
+   * local/mib2c, man/mib2c.1.def:
+
+   NEWS: mib2c: mib2c can now optionally run sed on generated code
+
+2010-04-06 01:49  rstory
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   convert C++ comments to C comments
+
+2010-04-06 01:49  rstory
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   move ptr check before prt use
+
+2010-04-06 01:49  rstory
+
+   * snmplib/cert_util.c:
+
+   add filename to debug on new certs; make static func to return
+   mode names
+
+2010-04-06 00:47  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   allow a found fingerprint self-signed cert for now; eventually
+   need to respect the MIB config table
+
+2010-04-06 00:12  hardaker
+
+   * configure, configure.d/config_modules_lib:
+
+   mkdir snmplib/transports when DNE for building outside the source
+   dir
+
+2010-04-06 00:11  hardaker
+
+   * snmplib/transports/snmpDTLSUDPDomain.c:
+
+   remove unused vars
+
+2010-04-06 00:11  hardaker
+
+   * snmplib/transports/snmpTLSBaseDomain.c:
+
+   remove unused variable
+
+2010-04-06 00:11  hardaker
+
+   *  snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   error code cleanup for tlsbase_wrapup_recv
+
+2010-04-05 23:12  hardaker
+
+   * snmplib/cert_util.c:
+
+   more better error/debug codes
+
+2010-04-05 23:08  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      include/net-snmp/library/snmp_transport.h,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   more comments from the future-RFC about the implementation; use
+   flags for server/client specification for expansion
+
+2010-04-05 23:08  hardaker
+
+   * snmplib/cert_util.c:
+
+   better error messages for usage constraints
+
+2010-04-05 23:08  hardaker
+
+   * snmplib/transports/snmpTLSTCPDomain.c:
+
+   move function protection logic in a top-level check
+
+2010-04-02 16:36  hardaker
+
+   * configure, configure.d/config_modules_lib:
+
+   fix init ordering
+
+2010-04-02 16:36  hardaker
+
+   *  snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c:
+
+   mv tlsbase init function to a proper ctor for auto-calling
+
+2010-04-02 16:36  hardaker
+
+   *  Makefile.in, configure, configure.d/config_modules_lib,   
+      snmplib/snmp_transport.c, snmplib/transports/snmpTCPIPv6Domain.c, 
+        snmplib/transports/snmpUDPIPv6Domain.c:
+
+   CHANGES: generate the transport initialization function list
+   dynamically and use it
+
+2010-04-02 16:35  hardaker
+
+   *  configure, configure.d/config_modules_lib,   
+      snmplib/snmpAAL5PVCDomain.c, snmplib/snmpAliasDomain.c,   
+      snmplib/snmpCallbackDomain.c, snmplib/snmpDTLSUDPDomain.c,   
+      snmplib/snmpIPBaseDomain.c, snmplib/snmpIPXDomain.c,   
+      snmplib/snmpIPv4BaseDomain.c, snmplib/snmpIPv6BaseDomain.c,   
+      snmplib/snmpSSHDomain.c, snmplib/snmpSTDDomain.c,   
+      snmplib/snmpSocketBaseDomain.c, snmplib/snmpTCPBaseDomain.c,   
+      snmplib/snmpTCPDomain.c, snmplib/snmpTCPIPv6Domain.c,   
+      snmplib/snmpTLSBaseDomain.c, snmplib/snmpTLSTCPDomain.c,   
+      snmplib/snmpUDPBaseDomain.c, snmplib/snmpUDPDomain.c,   
+      snmplib/snmpUDPIPv4BaseDomain.c, snmplib/snmpUDPIPv6Domain.c,   
+      snmplib/snmpUnixDomain.c, snmplib/transports,   
+      snmplib/transports/snmpAAL5PVCDomain.c,   
+      snmplib/transports/snmpAliasDomain.c,   
+      snmplib/transports/snmpCallbackDomain.c,   
+      snmplib/transports/snmpDTLSUDPDomain.c,   
+      snmplib/transports/snmpIPBaseDomain.c,   
+      snmplib/transports/snmpIPXDomain.c,   
+      snmplib/transports/snmpIPv4BaseDomain.c,   
+      snmplib/transports/snmpIPv6BaseDomain.c,   
+      snmplib/transports/snmpSSHDomain.c,   
+      snmplib/transports/snmpSTDDomain.c,   
+      snmplib/transports/snmpSocketBaseDomain.c,   
+      snmplib/transports/snmpTCPBaseDomain.c,   
+      snmplib/transports/snmpTCPDomain.c,   
+      snmplib/transports/snmpTCPIPv6Domain.c,   
+      snmplib/transports/snmpTLSBaseDomain.c,   
+      snmplib/transports/snmpTLSTCPDomain.c,   
+      snmplib/transports/snmpUDPBaseDomain.c,   
+      snmplib/transports/snmpUDPDomain.c,   
+      snmplib/transports/snmpUDPIPv4BaseDomain.c,   
+      snmplib/transports/snmpUDPIPv6Domain.c,   
+      snmplib/transports/snmpUnixDomain.c:
+
+   CHANGES: moved transport code into a separate subdirectory in
+   snmplib
+
+2010-04-02 09:02  magfr
+
+   * agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c:
+
+   Do not attempt to check sizeof void to obtain the amount of
+   memory to copy.
+
+2010-04-01 17:11  rstory
+
+   *  agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.c,   
+      include/net-snmp/library/cert_util.h:
+
+   instead of fwd declares, require other header
+
+2010-04-01 17:10  rstory
+
+   * snmplib/snmpTLSTCPDomain.c:
+
+   fix compiler warning
+
+2010-04-01 17:10  rstory
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   remove outdated debug msg
+
+2010-04-01 17:09  rstory
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   use certapi to find certs/keys
+
+2010-04-01 14:40  rstory
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   register extraX509SubDir token
+
+2010-04-01 14:18  rstory
+
+   * local/mib2c.table_data.conf:
+
+   check ptr before use
+
+2010-04-01 14:18  rstory
+
+   * agent/helpers/table_tdata.c:
+
+   check ptr before use
+
+2010-04-01 13:13  rstory
+
+   *  agent/mibgroup/tlstm-mib/tlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.c,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable_internal.h,
+        
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable_persist.c:
+
+   add persistent storage; token for creating entries in snmpd.conf;
+   fix index
+
+2010-04-01 13:12  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/cert_util.c:
+
+   NEWS: snmplib: new certificate api to support tls/dtls
+
+2010-04-01 13:12  rstory
+
+   * include/net-snmp/library/snmp_openssl.h, snmplib/snmp_openssl.c:
+
+   CHANGES: add functions to get fingerprint from cert and log
+   openssl errs
+
+2010-04-01 12:46  rstory
+
+   * include/net-snmp/library/snmp_debug.h:
+
+   fix typo
+
+2010-04-01 10:33  bvassche
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   Builds again with pre-C90 compilers.
+
+2010-04-01 10:01  rstory
+
+   * local/mib2c.table_data.conf:
+
+   CHANGES: mib2c: table_data template enhancements
+   - add error checks during table init
+   - create cache earlier so we can bail on failure
+   - add option to create/delete row w/out adding/removing from
+   container
+
+2010-04-01 10:00  rstory
+
+   * include/net-snmp/agent/agent_read_config.h:
+
+   add helpful param names as hints in prototype
+
+2010-04-01 10:00  rstory
+
+   * agent/helpers/table_tdata.c:
+
+   search for container specific container before generic
+
+2010-04-01 10:00  rstory
+
+   *  include/net-snmp/library/dir_utils.h,   
+      include/net-snmp/library/file_utils.h, snmplib/dir_utils.c,   
+      snmplib/file_utils.c:
+
+   NEWS: snmplib: enhance file utils and dir utils
+   - add optional stats struct to netsnmp_file
+   - generalize dir container filter, add context to callback
+   - add option to store netsnmp_files (w/stats) in container
+   instead of just name
+
+2010-04-01 10:00  rstory
+
+   *  include/net-snmp/library/container.h,   
+      snmplib/container_binary_array.c:
+
+   add prototype to header; check ptr before dereferencing
+
+2010-03-31 15:34  jsafranek
+
+   *  local/Makefile.in, local/snmp-bridge-mib, man/Makefile.in,   
+      man/snmp-bridge-mib.1, mibs/BRIDGE-MIB.txt, mibs/Makefile.in,   
+      mibs/Makefile.mib:
+
+   NEWS: misc: PATCH: 2952708: from Jens Osterkamp: Added Perl
+   implementation of BRIDGE-MIB
+
+2010-03-31 02:12  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c:
+
+   proper packet labeling for DTLSUDP
+
+2010-03-31 02:11  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c, snmplib/snmpTLSBaseDomain.c:
+
+   use common context creation code
+
+2010-03-30 23:24  hardaker
+
+   * snmplib/snmpTLSTCPDomain.c:
+
+   change TLS method to TLSv1 from SSLv23
+
+2010-03-30 23:23  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpTLSBaseDomain.c,   
+      snmplib/snmpTLSTCPDomain.c:
+
+   move more common data and functionality into the TLS base
+
+2010-03-30 23:20  hardaker
+
+   * snmplib/snmpTLSTCPDomain.c:
+
+   minor TLS code cleanup
+
+2010-03-30 20:28  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   rework if() wrapping for less confusion in error handling
+
+2010-03-30 20:27  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   code consolidation in start_new_cached_connectio
+
+2010-03-30 20:27  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   rename generic 'bio' pointer to 'read_bio' for better readability
+
+2010-03-30 20:26  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   move buffered data creation to a separate function for reuse
+
+2010-03-30 17:52  marz
+
+   * local/net-snmp-cert:
+
+   initial cert gen wrapper script - not working
+
+2010-03-30 17:27  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   clean up error output so it doesn't report want_read and
+   want_write errors
+
+2010-03-30 17:27  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   renaming of sending function for clarity and check one more
+   location for needed outgoing packets
+
+2010-03-30 17:27  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   added dtlsudp tracing tokens
+
+2010-03-30 17:27  hardaker
+
+   * include/net-snmp/library/snmp_debug.h:
+
+   CHANGES: added a new DEBUGTRACETOK() macro
+
+2010-03-30 17:27  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   better comments and more work on sending buffered data in the
+   right spots
+
+2010-03-30 17:26  hardaker
+
+   * snmplib/snmpTLSTCPDomain.c:
+
+   fix arguments to get_commonName
+
+2010-03-30 17:26  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   beginning of caching of packets before they can be sent via DTLS
+
+2010-03-30 17:26  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   handle SSL_WANT_READ/WRITE better; still need to buffer outgoing
+   write data
+
+2010-03-30 17:26  hardaker
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   minor change to output error printing
+
+2010-03-29 15:20  dts12
+
+   * snmplib/vacm.c:
+
+   NEWS: snmpd: Fix handling of multiple matching VACM entries.
+   (Use the "best" match, rather than the first one).
+   Reported by Adam Lewis.
+   Note that this could potentially affect the behaviour of
+   existing access control configurations.
+
+2010-03-29 15:16  bvassche
+
+   * perl/agent/agent.xs:
+
+   CHANGES: perl:
+   NetSNMP::agent::netsnmp_request_infoPtr::getValue(): don't return
+   a pointer to a buffer on the stack. How can this have worked
+   reliably ??
+   CHANGES: perl:
+   NetSNMP::agent::netsnmp_request_infoPtr::setValue(),
+   ASN_COUNTER64: fixed bug that could cause this method to fail
+   even when a valid number was provided.
+
+2010-03-29 15:15  dts12
+
+   * snmplib/snmpusm.c:
+
+   CHANGES: snmplib: Fix agent crash when sending encrypted SNMPv3
+   traps.
+   Reported by Srikapilan Gandhi
+
+2010-03-29 12:46  bvassche
+
+   * perl/SNMP/t/startagent.pl:
+
+   Catch stderr on Windows too.
+
+2010-03-29 11:48  bvassche
+
+   * perl/agent/agent.xs:
+
+   Builds again with pre-C90 compilers.
+
+2010-03-29 11:19  bvassche
+
+   *  include/net-snmp/library/snmp_api.h, perl/OID/OID.xs,   
+      perl/SNMP/SNMP.xs, perl/agent/agent.xs:
+
+   CHANGES: perl: fixed a memory leak triggered by destroying a
+   NetSNMP::agent::netsnmp_handler_registration object.
+   CHANGES: perl: fixed a memory leak triggered by failure of
+   creating a NetSNMP::OID object.
+   CHANGES: perl: fixed a memory leak triggered by the
+   NetSNMP::OID::gettable() subroutine.
+   CHANGES: perl: fixed an out-of-bounds array access triggered by
+   the implementation of NetSNMP::SNMP.
+   CHANGES: perl: fixed a memory leak triggered by a PDU processing
+   error in NetSNMP::SNMP.
+   CHANGES: perl: fixed memory leaks triggered by creating an SNMPv3
+   session via NetSNMP::SNMP.
+   
+   Also fixed the uninitialized variable accesses triggered by
+   adding a varbind to a PDU via NetSNMP::SNMP introduced a few days
+   ago.
+   
+   The bugs mentioned above have been found by inspecting the output
+   of the following shell command:
+   cd perl && valgrind --trace-children=yes --leak-check=full make
+   test
+
+2010-03-29 10:59  bvassche
+
+   * perl/SNMP/t/startagent.pl:
+
+   Switched back to the previous way of starting processes
+   asynchronously because it is more reliable.
+
+2010-03-29 09:27  bvassche
+
+   * perl/SNMP/t/startagent.pl:
+
+   Do not only save snmpd / snmptrapd logs but also the stdout /
+   stderr output generated by these processes.
+
+2010-03-28 16:09  bvassche
+
+   * perl/SNMP/t/startagent.pl:
+
+   Changes in perl/SNMP/t/startagent.pl:
+   - Added command-line option -d for snmpd and snmptrapd.
+   - snmpd and snmptrapd output is now saved to a log file (one per
+   test).
+   - Rewrote Perl code for starting the snmpd/snmptrapd processes
+   such that the same code works on Unix and on Windows.
+
+2010-03-28 13:37  bvassche
+
+   *  include/net-snmp/library/snmp_api.h, snmplib/tools.c,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   CHANGES: snmplib: added the functions netsnmp_malloc(),
+   netsnmp_calloc(), netsnmp_realloc(), netsnmp_strdup() and
+   netsnmp_free().
+   CHANGES: Win32: snmplib: removed the troublesome #define malloc
+   netsnmp_malloc etc. This means that when calling functions from
+   the Net-SNMP DLL from C or C++ code that is being linked against
+   another version of the MSVC runtime DLL than the Net-SNMP DLL,
+   and when allocating memory that will be freed by the Net-SNMP
+   DLL, you will either have to call the Net-SNMP memory allocation
+   functions explicitly or redefine malloc() etc. yourself.
+
+2010-03-28 12:46  bvassche
+
+   * perl/SNMP/SNMP.xs:
+
+   Fixed a recently reintroduced compiler warning.
+
+2010-03-27 18:42  bvassche
+
+   * Makefile.in:
+
+   Added a check for invocation of calloc() from XSUBs.
+
+2010-03-26 19:16  bvassche
+
+   *  include/net-snmp/library/snmp_api.h, perl/OID/OID.xs,   
+      perl/SNMP/SNMP.xs, perl/TrapReceiver/TrapReceiver.xs:
+
+   Follow-up for r18368 and r18369: made sure that the Net-SNMP Perl
+   extensions compile without triggering preprocessor warnings about
+   redefining malloc etc. nor trigger "Free to wrong pool" errors on
+   Windows.
+
+2010-03-26 14:44  bvassche
+
+   *  include/net-snmp/library/snmpIPBaseDomain.h,   
+      snmplib/snmpIPBaseDomain.c, snmplib/snmpTCPDomain.c,   
+      snmplib/snmpTCPIPv6Domain.c:
+
+   Refactoring: introduced a new function:
+   netsnmp_set_non_blocking_mode().
+
+2010-03-26 11:58  bvassche
+
+   *  agent/mibgroup/disman/event/mteTriggerConf.c,   
+      agent/mibgroup/disman/schedule/schedConf.c,   
+      agent/mibgroup/mibII/vacm_conf.c,   
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
+         agent/mibgroup/target/snmpTargetAddrEntry.c,   
+      agent/mibgroup/target/snmpTargetParamsEntry.c,   
+      agent/mibgroup/ucd-snmp/pass.c,   
+      agent/mibgroup/ucd-snmp/pass_persist.c,   
+      agent/mibgroup/util_funcs.c, agent/mibgroup/utilities/execute.c,  
+       apps/snmpbulkget.c, apps/snmpbulkwalk.c, apps/snmpdelta.c,   
+      apps/snmptest.c, apps/snmptrapd_handlers.c, apps/snmptrapd_log.c, 
+        snmplib/int64.c, snmplib/mib.c, snmplib/parse.c,   
+      snmplib/read_config.c, snmplib/snmp_logging.c,   
+      snmplib/snmp_parse_args.c, snmplib/snmpv3.c,   
+      snmplib/text_utils.c:
+
+   Fixed compiler warnings about using variables of type char as an
+   array subscript. Note: as far as I know these warnings are only
+   reported when using the Cygwin glibc headers.
+
+2010-03-26 10:41  bvassche
+
+   * snmplib/strtoull.c:
+
+   Added missing #include directive (on Windows MSVC was complaining
+   about size_t while processing <net-snmp/library/system.h>).
+
+2010-03-25 20:07  bvassche
+
+   * agent/mibgroup/agentx/agentx_config.c:
+
+   CHANGES: agentx: changed default TCP target from 0.0.0.0:705 to
+   localhost:705. This is not only a more secure choice but it also
+   makes it possible on Windows systems to let an AgentX subagent
+   connect to an AgentX master agent running on the same system
+   without having to set the variable NETSNMP_DS_AGENT_X_SOCKET.
+
+2010-03-25 16:11  bvassche
+
+   *  perl/OID/OID.xs, perl/SNMP/SNMP.xs,   
+      perl/TrapReceiver/TrapReceiver.xs, perl/agent/agent.xs:
+
+   CHANGES: Win32: perl: fixed several "Free to wrong pool" errors.
+   Note: since calloc() is not redefined in <CORE/XSUB.h> using
+   calloc() directly or indirectly leads to "Free to wrong pool"
+   errors, at least on Windows.
+
+2010-03-25 16:04  bvassche
+
+   *  win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   CHANGES: Win32: building: made building more silent by not
+   redefining malloc() or free() during compilation of Perl
+   extensions (resulted in warnings about malloc() / free()
+   redefinition in the Perl header CORE/XSUB.h).
+
+2010-03-25 15:06  bvassche
+
+   *  include/net-snmp/library/system.h, perl/SNMP/SNMP.xs,   
+      perl/agent/agent.xs:
+
+   CHANGES: BUG: 2969872: made sure that SOCK_STARTUP is invoked
+   before init_agent() on Windows.
+
+2010-03-25 13:39  jsafranek
+
+   *  apps/snmpbulkget.c, apps/snmpbulkwalk.c, apps/snmpdelta.c,   
+      apps/snmpdf.c, apps/snmpget.c, apps/snmpgetnext.c,   
+      apps/snmpnetstat/main.c, apps/snmpset.c, apps/snmpstatus.c,   
+      apps/snmptable.c, apps/snmptest.c, apps/snmptrap.c,   
+      apps/snmpusm.c, apps/snmpvacm.c, apps/snmpwalk.c,   
+      include/net-snmp/library/snmp_parse_args.h,   
+      snmplib/snmp_parse_args.c:
+
+   Use macros instead of magic numbers as netsnmp_parse_args return
+   codes.
+
+2010-03-25 13:30  bvassche
+
+   *  win32/Configure, win32/libsnmp_dll/libsnmp.def,   
+      win32/libsnmp_dll/libsnmp.def.in:
+
+   CHANGES: Win32: building: simplified the build process by
+   removing the file win32/libsnmp_dll/libsnmp.def.in. Which IPv6
+   functions are exported from netsnmp.dll is now determined by
+   which of the functions in this DLL have been declared as
+   NETSNMP_IMPORT.
+
+2010-03-24 20:11  rstory
+
+   * snmplib/snmp_enum.c:
+
+   don't use passed ptr as temp var; use snmp_enum_lists in init
+   test
+
+2010-03-24 20:10  rstory
+
+   * include/net-snmp/library/default_store.h:
+
+   add NETSNMP_DS_LIB_CERT_EXTRA_SUBDIR
+
+2010-03-24 20:10  rstory
+
+   * snmplib/snmpTLSBaseDomain.c, snmplib/snmp_api.c:
+
+   move cert init earlier (have tls_bootstrap call it)
+
+2010-03-24 20:10  rstory
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   fix compiler warnings; add cert debug msgs in server setup; free
+   ssl log data
+
+2010-03-24 10:47  jsafranek
+
+   *  apps/snmpbulkget.c, apps/snmpbulkwalk.c, apps/snmpdelta.c,   
+      apps/snmpdf.c, apps/snmpget.c, apps/snmpgetnext.c,   
+      apps/snmpnetstat/main.c, apps/snmpset.c, apps/snmpstatus.c,   
+      apps/snmptable.c, apps/snmptest.c, apps/snmptrap.c,   
+      apps/snmpusm.c, apps/snmpvacm.c, apps/snmpwalk.c,   
+      include/net-snmp/library/snmp_parse_args.h,   
+      snmplib/snmp_parse_args.c:
+
+   CHANGES: apps: return nozero exit code when parsing of certain
+   parameter fails.
+   E.g. '-A' parameter with too short passphrase or Ku key
+   generation in general.
+
+2010-03-24 07:11  magfr
+
+   * apps/agentxtrap.c:
+
+   Correct the type of the id/description of the Open-PDU.
+
+2010-03-22 18:29  bvassche
+
+   * Makefile.in:
+
+   Updates for "make checks":
+   - Made sure that exit code 0 is generated when the check is
+   successful and that
+   exit code 1 is generated when the check failed.
+   - Made "makefilecheck" skip Subversion bookkeeping files and also
+   the makefile
+   that contains "makefilecheck".
+
+2010-03-22 16:10  dts12
+
+   * mibs/NET-SNMP-PASS-MIB.txt:
+
+   Fix typo in default IpAddress value
+   (See Bug #2972141)
+
+2010-03-22 15:44  rstory
+
+   *  Makefile.in, agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/winExtDLL.c, agent/snmp_agent.c,   
+      apps/snmpnetstat/main.c, snmplib/callback.c,   
+      snmplib/read_config.c, snmplib/strtok_r.c, snmplib/strtoull.c:
+
+   change all assert() to netsnmp_assert(); add assertcheck to top
+   level makefile
+
+2010-03-22 15:24  bvassche
+
+   * mibs/UCD-DISKIO-MIB.txt:
+
+   Follow-up for r18349: added missing comma such that it is again
+   possible to compile UCD-DISKIO-MIB.
+
+2010-03-22 14:36  dts12
+
+   * agent/snmpd.c, snmplib/snmp_parse_args.c:
+
+   Fix build when MIB loading is disabled (broken by SVN revision
+   18341)
+   Report default MIB path for client apps too.
+
+2010-03-22 13:59  dts12
+
+   *  man/snmp_api_errstring.3, man/snmp_close.3, man/snmp_error.3,   
+      man/snmp_free_pdu.3, man/snmp_open.3, man/snmp_perror.3,   
+      man/snmp_read.3, man/snmp_select_info.3, man/snmp_send.3,   
+      man/snmp_sess_perror.3, man/snmp_timeout.3:
+
+   CHANGES: man: BUG: 2972860: Update broken references
+
+2010-03-22 13:49  dts12
+
+   *  mibs/UCD-DISKIO-MIB.txt, mibs/UCD-DLMOD-MIB.txt,   
+      mibs/UCD-IPFILTER-MIB.txt, mibs/UCD-SNMP-MIB.txt:
+
+   CHANGES: mibs: BUG: 2973890: Fix imports, DiskIOEntry list and
+   revision histories
+
+2010-03-22 11:55  bvassche
+
+   * agent/mibgroup/winExtDLL.c, include/net-snmp/library/snmp_api.h:
+
+   Win32, winExtDLL: solved the mystery of "ASN type zero". The
+   winExtDLL code does now no longer trigger conversions of Windows
+   ASN varbinds with ASN type zero. Note: this code change does not
+   change the agent behavior.
+
+2010-03-20 20:21  bvassche
+
+   *  include/net-snmp/library/mib.h,   
+      include/net-snmp/library/read_config.h:
+
+   Builds again with MSVC.
+
+2010-03-20 20:20  bvassche
+
+   * agent/mibgroup/ucd-snmp/loadave.c:
+
+   Added a trailing backslash (should have been added in the
+   previous commit).
+
+2010-03-20 19:36  bvassche
+
+   *  agent/agent_registry.c, agent/helpers/table_dataset.c,   
+      agent/mibgroup/agent/extend.c, agent/mibgroup/agent/nsDebug.c,   
+      agent/mibgroup/agent/nsLogging.c, agent/mibgroup/agentx/master.c, 
+       
+      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access.c,
+         agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
+      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c,
+         agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c,   
+      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c,
+         agent/mibgroup/mibII/at.c, agent/mibgroup/mibII/interfaces.c,  
+       agent/mibgroup/mibII/route_write.c,   
+      agent/mibgroup/mibII/vacm_conf.c, agent/mibgroup/misc/ipfwacc.c,  
+       agent/mibgroup/notification-log-mib/notification_log.c,   
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
+         agent/mibgroup/target/snmpTargetAddrEntry.c,   
+      agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c,   
+      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c,   
+      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.h,   
+      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.c,
+         agent/mibgroup/ucd-snmp/disk.c,   
+      agent/mibgroup/ucd-snmp/loadave.c,   
+      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c,
+         agent/mibgroup/util_funcs.c, agent/snmpd.c,   
+      apps/snmpnetstat/route.c, apps/snmptrapd.c,   
+      include/net-snmp/agent/table_dataset.h, include/net-snmp/types.h, 
+        snmplib/snmpIPv6BaseDomain.c, snmplib/snmpTCPDomain.c,   
+      snmplib/snmpTCPIPv6Domain.c, snmplib/snmpUDPDomain.c,   
+      snmplib/snmpUDPIPv6Domain.c, snmplib/system.c, snmplib/tools.c,   
+      snmplib/winpipe.c, snmplib/winservice.c:
+
+   CHANGES: libsnmp: changed the type of the fourth argument of
+   netsnmp_set_row_column() from const char* to const void* such
+   that no cast is necessary when passing another datatype then
+   char* or const char*.
+   CHANGES: Win32: changed in_addr_t from u_int to u_long such that
+   it matches the datatype of sockaddr_in::sin_addr.
+   Also, fixed several compiler warnings (mostly char * <> u_char *
+   mismatches) and removed some casts.
+
+2010-03-20 19:16  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Fixed the compiler warnings reported by gcc (MinGW).
+
+2010-03-20 19:05  bvassche
+
+   *  configure, configure.d/config_os_functions,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   Added configure test for sigprocmask.
+
+2010-03-20 09:14  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Refactoring: moved duplicated code into a new function.
+
+2010-03-19 22:56  dts12
+
+   * agent/mibgroup/mibII/vacm_conf.c, agent/snmpd.c, snmplib/parse.c:
+
+   Report MIB and config directories search paths on errors
+   (and in the help message)
+
+2010-03-19 13:12  bvassche
+
+   * agent/agent_registry.c:
+
+   CHANGES: snmpd: made the error message that is logged when
+   duplicate registration is attempted more detailed.
+   
+   An example:
+   (before)
+   duplicate registration (mibII/snmp,
+   C:\WINDOWS\System32\snmpmib.dll)
+   handler registration failed.
+   (after)
+   duplicate registration: MIB modules mibII/snmp and
+   C:\WINDOWS\System32\snmpmib.dll (oid .1.3.6.1.2.1.11).
+   handler registration failed.
+
+2010-03-19 12:40  bvassche
+
+   *  agent/mibgroup/winExtDLL.c, win32/libsnmp_dll/libsnmp.def,   
+      win32/libsnmp_dll/libsnmp.def.in:
+
+   CHANGES: Win32: winExtDLL: multiple varbind set requests are now
+   processed correctly.
+   CHANGES: Win32: winExtDLL: made error codes in SNMP response PDUs
+   as RFC-compliant as possible.
+   CHANGES: Win32: winExtDLL: if loading an extension DLL fails, the
+   reason why loading failed is now logged.
+   CHANGES: Win32: winExtDLL: fixed a memory leak that occurred when
+   SnmpExtensionQuery(Ex) failed. This memory leak has been found
+   via source reading. Note: it is not clear whether it was possible
+   to trigger this memory leak. This leak is certainly not triggered
+   by every request for which a response with non-zero error status
+   is sent back.
+
+2010-03-18 16:29  rstory
+
+   *  agent/mibgroup/agent/nsLogging.c,   
+      include/net-snmp/library/snmp_logging.h, snmplib/snmp_logging.c:
+
+   keep count of enabled logs; use this count to determine when to
+   log to stderr
+
+2010-03-18 16:28  rstory
+
+   *  apps/snmptranslate.c, apps/snmptrapd.c, snmplib/cert_util.c,   
+      snmplib/snmp_logging.c, snmplib/snmp_parse_args.c:
+
+   NEWS: snmplib: new snmp token logOption allows specifying log
+   destinations vi conf files
+   - if stderr log enabled because of no log destination, turn it
+   off when a
+   log destination is enabled
+   - don't call netsnmp_enable_stderrlog() from apps anymore
+
+2010-03-18 15:31  rstory
+
+   *  include/net-snmp/library/snmpUDPBaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpUDPBaseDomain.c,   
+      snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv4BaseDomain.c:
+
+   udp transport inheritance tweaks
+   - move basic udp recvfrom/sendto code from UDPDomain to
+   UDPBaseDomain
+   - tweak upd recvfrom/sendto to call udpbase verstion
+   - tweak udpipv4 recvfrom/sendto to call udpbase version
+   - also fixed netsnmp_ipv4_* -> netsnmp_udpipv4_*
+   - tweak DTLSUDPDomain ot use udpbase_* instead of udp_*
+
+2010-03-18 15:21  rstory
+
+   * include/net-snmp/library/cert_util.h, snmplib/snmp_api.c:
+
+   protect cert header and init call with ifdefs
+
+2010-03-17 19:01  rstory
+
+   * snmplib/snmpDTLSUDPDomain.c, snmplib/snmpTLSTCPDomain.c:
+
+   use new utility routine for cert names
+
+2010-03-17 19:01  rstory
+
+   * snmplib/cert_util.c:
+
+   move snmp_openssl header after openssl headers
+
+2010-03-17 19:00  rstory
+
+   * include/net-snmp/library/snmp_openssl.h, snmplib/snmp_openssl.c:
+
+   add routines to pull/dump names from X509 certs
+
+2010-03-17 19:00  rstory
+
+   * snmplib/cert_util.c:
+
+   use enum lists to manage directory indexes
+
+2010-03-17 19:00  rstory
+
+   * snmplib/snmp_enum.c:
+
+   initialize static storage before use; protect enum init from
+   multiple calls
+
+2010-03-17 18:54  rstory
+
+   * README.agent-mibs:
+
+   add info about new tsm/tls mibs
+
+2010-03-17 18:54  rstory
+
+   * snmplib/snmpTLSBaseDomain.c, snmplib/snmp_api.c:
+
+   move cert init to snmp init
+
+2010-03-17 13:37  bvassche
+
+   * mibs/NET-SNMP-AGENT-MIB.txt, mibs/NET-SNMP-EXTEND-MIB.txt:
+
+   Updated MIB revision history.
+
+2010-03-17 13:29  bvassche
+
+   * agent/snmp_agent.c:
+
+   CHANGES: snmpd: fixed one leak-at-exit.
+
+2010-03-17 12:44  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   CHANGES: BUG: 2971257: Fixed winExtDLL handling of multi-varbind
+   getNext requests with OIDs in reverse lexicographical order.
+
+2010-03-17 10:25  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   More winExtDLL debug output tuning.
+
+2010-03-16 19:31  bvassche
+
+   * mibs/NET-SNMP-AGENT-MIB.txt:
+
+   Compiles now with MIB compilers that do not recognize a double
+   dash as the end of a MIB comment.
+
+2010-03-16 19:27  bvassche
+
+   * mibs/NET-SNMP-EXTEND-MIB.txt:
+
+   Fixed two syntax errors.
+
+2010-03-16 19:18  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   CHANGES: Win32: winExtDLL: fixed a bug in getNext handling that
+   could cause the MIB output to be truncated.
+
+2010-03-16 18:50  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Made winExtDLL debug output more detailed.
+
+2010-03-16 15:24  bvassche
+
+   *  include/net-snmp/library/snmpSocketBaseDomain.h,   
+      include/net-snmp/library/snmpUDPBaseDomain.h:
+
+   Made sure that C++ programs that include Net-SNMP header files
+   compile again.
+
+2010-03-15 07:20  magfr
+
+   * agent/helpers/instance.c:
+
+   Make it compile with --disable-deprecated again.
+
+2010-03-15 07:19  magfr
+
+   * agent/helpers/debug_handler.c:
+
+   Disable all the printing if debug output is off.
+
+2010-03-15 00:17  tanders
+
+   * perl/TrapReceiver/TrapReceiver.xs, perl/agent/agent.xs:
+
+   fix compiler warnings regarding printf format
+
+2010-03-15 00:07  tanders
+
+   * 
+      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c,
+        
+      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c,
+         agent/mibgroup/ucd-snmp/lmSensors.c:
+
+   fix compiler warnings regarding printf format
+
+2010-03-14 21:05  rstory
+
+   * agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h:
+
+   make sure header ifdef name is unique
+
+2010-03-14 21:04  rstory
+
+   *  agent/mibgroup/host/data_access/swinst.h,   
+      agent/mibgroup/host/data_access/swrun.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.h,   
+      agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h:
+
+   add missing init/shutdown prototypes to fix compiler warnings
+
+2010-03-14 21:03  rstory
+
+   * snmplib/data_list.c:
+
+   move debug message earlier
+
+2010-03-14 21:02  rstory
+
+   *  include/net-snmp/library/container.h,   
+      snmplib/container_list_ssll.c:
+
+   add prototype for netsnmp_init_container; fix compler warning
+
+2010-03-14 20:51  magfr
+
+   * include/net-snmp/library/snmp_assert.h:
+
+   Correct netsnmp_assert_or_return and netsnmp_assert_or_msgreturn
+   for the NETSNMP_NO_DEBUGGING case
+
+2010-03-14 19:10  rstory
+
+   *  include/net-snmp/library/cert_util.h, snmplib/cert_util.c,   
+      snmplib/snmpTLSBaseDomain.c:
+
+   rename cert init/shutdown funcs; only compile cert_utils if
+   using/have SSL; init certs from tls base
+
+2010-03-14 19:09  rstory
+
+   * snmplib/cert_util.c:
+
+   call netsnmp_init_openssl instead of netsnmp_init_tlsbase
+
+2010-03-14 19:09  rstory
+
+   * include/net-snmp/library/snmp_api.h:
+
+   update for renamed objects in version 08 of the dtls draft
+
+2010-03-14 19:08  rstory
+
+   *  agent/mibgroup/tlstm-mib, agent/mibgroup/tlstm-mib.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmSession,   
+      agent/mibgroup/tlstm-mib/snmpTlstmSession.h,   
+      agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.c,   
+      agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.h,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable.h,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.c,   
+      agent/mibgroup/tlstm-mib/tlstmAddrTable/tlstmAddrTable.h,   
+      agent/mibgroup/tsm-mib, agent/mibgroup/tsm-mib.h,   
+      agent/mibgroup/tsm-mib/snmpTsmStats,   
+      agent/mibgroup/tsm-mib/snmpTsmStats.h,   
+      agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.c,   
+      agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h:
+
+   import initial code for dtls mibs
+
+2010-03-14 19:08  rstory
+
+   * mibs/TLSTM-MIB.txt:
+
+   TLSTM-MIB from draft-ietf-isms-dtls-tm-09.txt
+
+2010-03-14 17:21  bvassche
+
+   * agent/helpers/snmp_get_statistic.c, agent/mibgroup/mibII/icmp.c:
+
+   Fixed a few more compiler warnings.
+
+2010-03-14 14:10  bvassche
+
+   * perl/default_store/test.pl:
+
+   Follow-up for r17384: changed NETSNMP_DS_MAX_SUBIDS from 40 to
+   48.
+
+2010-03-14 13:53  bvassche
+
+   * configure, configure.d/config_os_progs:
+
+   Changes:
+   - Removed -Wno-char-subscripts from DEVFLAGS. Using a variable or
+   expression of
+   type char as an array index is almost always an error.
+   Furthermore,
+   -Wchar-subscript does not trigger any warnings on the Net-SNMP
+   code base.
+   - Removed -Winline from DEVFLAGS. Not only was nobody paying
+   attention to the
+   messages triggered by -Winline, but recent versions of the gcc
+   compiler are
+   better than humans at deciding which functions should be inlined
+   and which
+   ones not.
+
+2010-03-14 13:39  bvassche
+
+   * include/net-snmp/net-snmp-config.h.in:
+
+   Reran autoreconf.
+
+2010-03-14 13:39  bvassche
+
+   *  agent/mibgroup/host/data_access/swrun.c,   
+      agent/mibgroup/host/data_access/swrun_procfs_status.c,   
+      agent/mibgroup/host/hrSWRunPerfTable.c,   
+      agent/mibgroup/host/hrSWRunTable.c,   
+      agent/mibgroup/if-mib/data_access/interface_linux.c,   
+      agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c:
+
+   Fixed several compiler warnings.
+
+2010-03-14 13:36  bvassche
+
+   * perl/SNMP/SNMP.xs:
+
+   Removed the '0x' prefix again from a debug statement that was
+   introduced in r18282.
+
+2010-03-13 19:07  bvassche
+
+   *  perl/ASN/ASN.xs, perl/OID/OID.xs, perl/SNMP/SNMP.xs,   
+      perl/TrapReceiver/TrapReceiver.xs, perl/TrapReceiver/ppport.h,   
+      perl/agent/agent.xs:
+
+   Fixed most compiler warnings triggered by the source code in the
+   perl subdirectory.
+   Note: these changes may contain some real bug fixes.
+
+2010-03-13 09:57  bvassche
+
+   * snmplib/cert_util.c, snmplib/snmp_api.c:
+
+   Fixed several recently introduced compiler warnings.
+
+2010-03-13 01:16  hardaker
+
+   * acconfig.h, configure, include/net-snmp/net-snmp-config.h.in:
+
+   define the TLSTCP DOMAIN
+
+2010-03-13 01:16  hardaker
+
+   * snmplib/snmp_transport.c:
+
+   fix ifdef typo
+
+2010-03-12 20:26  hardaker
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   change debugging symbol names to a generic tls string
+
+2010-03-12 20:22  hardaker
+
+   * snmplib/snmpTLSTCPDomain.c:
+
+   initial working SNMP over TLS over TCP connection
+
+2010-03-12 20:22  hardaker
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   print a more complete OpenSSL stack
+
+2010-03-12 20:22  hardaker
+
+   * snmplib/snmptsm.c:
+
+   fix assert statements
+
+2010-03-12 20:21  hardaker
+
+   * include/net-snmp/library/snmpTLSBaseDomain.h:
+
+   added an accepted_bio pointer for the bio after SSL_accept
+
+2010-03-12 20:21  hardaker
+
+   * snmplib/snmp_transport.c:
+
+   add the ability for f_copy and f_config
+
+2010-03-12 20:21  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   missing ;
+
+2010-03-12 20:21  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   add a f_copy pointer
+
+2010-03-12 20:20  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   return int not int * on error
+
+2010-03-12 20:20  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   added a f_config function for transports
+
+2010-03-12 11:53  dts12
+
+   * apps/snmptable.c:
+
+   CHANGES: snmptable: PATCH: 2850067: Suppress extraneous "index"
+   header token
+   Patch supplied by Dan Nelson
+
+2010-03-12 11:43  dts12
+
+   * agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c:
+
+   Remove duplicate definition of
+   getulongfromsysclassnetstatistics()
+
+2010-03-11 16:52  dts12
+
+   * man/snmpcmd.1.def:
+
+   Document the format of the -e/-E command line options.
+
+2010-03-11 16:47  dts12
+
+   * agent/helpers/table_dataset.c:
+
+   Remove mention of the (abandoned) 'dataset2' helper.
+
+2010-03-11 15:59  dts12
+
+   * snmplib/cert_util.c:
+
+   Don't initialise the TLS transport unless it's actually been
+   configured in.
+
+2010-03-11 15:47  rstory
+
+   * testing/eval_suite.sh:
+
+   use SNMP_TMPDIR instead of TMPDIR
+
+2010-03-11 15:31  rstory
+
+   * snmplib/snmptsm.c:
+
+   query right bool (tsm prefix is lib bool, not app)
+
+2010-03-11 15:08  dts12
+
+   *  agent/auto_nlist.c, agent/mibgroup/examples/ucdDemoPublic.c,   
+      apps/snmptest.c, snmplib/parse.c, snmplib/tools.c:
+
+   CHANGES: PATCH: 2952034: Return of the Great SuSE 'sprintf'
+   Hunt...
+   Patch supplied by Leonardo Chiquitto
+
+2010-03-11 14:55  dts12
+
+   * local/traptoemail:
+
+   CHANGES: PATCH: 2937996: Add Date: header to email send by
+   traptoemail
+
+2010-03-11 14:50  dts12
+
+   *  agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c,   
+      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c:
+
+   CHANGES: snmpd: PATCH: 2967400: Retrieve error counters for the
+   EtherLike-MIB
+   Patch supplied by Josef Moellers.
+
+2010-03-11 14:23  dts12
+
+   * agent/mibgroup/ucd-snmp/pass.c:
+
+   CHANGES: snmpd: PATCH: 2968642: Catch overflow of pass-through
+   command buffer.
+   Patch from Andreas Jaeger/Leonardo Chiquitto
+
+2010-03-11 12:37  dts12
+
+   * agent/mibgroup/agentx/protocol.c:
+
+   CHANGES: snmpd: PATCH: 2956657: Handle over-length AgentX OIDs.
+   Patch provided by Rob West
+
+2010-03-11 12:23  dts12
+
+   * agent/mibgroup/ip-mib/data_access/defaultrouter_common.c:
+
+   Provide missing debug parameter.
+   Patch provided by Andreas Jaeger.
+
+2010-03-11 12:21  dts12
+
+   * agent/mibgroup/hardware/sensors/hw_sensors.c:
+
+   Provide missing (dummy) return value, to suppress compiler
+   warning.
+   Patch provided by Andreas Jaeger.
+
+2010-03-11 12:19  dts12
+
+   * agent/mibgroup/ucd-snmp/pass.c:
+
+   Suppress warnings of possible buffer overflow.
+   This doesn't _actually_ protect against such an overflow,
+   since the target buffer is non-empty, so strncat can't
+   use it all anyway. But this should at least mislead the
+   compiler sufficiently to shut it up!
+   
+   Patch provided by Andreas Jaeger.
+
+2010-03-11 11:57  dts12
+
+   * configure, configure.d/config_os_misc4:
+
+   Replace backquote with single quote in configure output message.
+   While this change is probably not strictly necessary, it feels
+   sensible to avoid this particular use of backquotes, Just In
+   Case.
+   See discussion in Patch #2952169
+
+2010-03-11 11:43  dts12
+
+   * snmplib/mib.c:
+
+   CHANGES: library: PATCH: 2952140: Overflow counter32 and gauge32
+   on 64bit systems correctly
+   Patch provided by Leonardo Chiquitto
+
+2010-03-11 11:36  dts12
+
+   * testing/TESTCONF.sh, testing/eval_suite.sh:
+
+   CHANGES: build: PATCH: 2952020: Explicitly set permission on
+   temporary testing output directories.
+   Patch provided by Leonardo Chiquitto.
+
+2010-03-11 11:26  dts12
+
+   * agent/mibgroup/if-mib/ifXTable/ifXTable.c:
+
+   CHANGES: snmpd: PATCH: 2950845: Fix ifHighSpeed calculation
+   Patch provided by Leonardo Chiquitto
+
+2010-03-11 08:26  bvassche
+
+   *  perl/ASN/ASN.xs, perl/ASN/Makefile.PL, perl/OID/Makefile.PL,   
+      perl/OID/OID.xs, perl/TrapReceiver/Makefile.PL,   
+      perl/TrapReceiver/TrapReceiver.xs, perl/agent/Makefile.PL,   
+      perl/agent/Support/Makefile.PL, perl/agent/agent.xs,   
+      perl/agent/default_store/Makefile.PL,   
+      perl/agent/default_store/default_store.xs,   
+      perl/default_store/Makefile.PL,   
+      perl/default_store/default_store.xs:
+
+   Made compilation of the Perl module NetSNMP.pm on Windows more
+   silent: added compiler flags -D_CRT_SECURE_NO_WARNINGS
+   -D_CRT_NONSTDC_NO_WARNINGS and made sure that #include
+   <net-snmp/net-snmp-config.h> occurs before any other include file
+   that defines _WIN32_WINNT.
+
+2010-03-10 23:31  rstory
+
+   *  include/net-snmp/library/cert_util.h, snmplib/Makefile.in,   
+      snmplib/cert_util.c:
+
+   NEWS: snmplib: create indexes for certificates in config path
+
+2010-03-10 18:48  bvassche
+
+   * snmplib/snmpSocketBaseDomain.c:
+
+   Added "#include <unistd.h>" such that on Unix systems the
+   compiler does not print a warning about a missing declaration for
+   the function close().
+
+2010-03-10 18:30  rstory
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec, perl/ASN/ASN.pm,   
+      perl/AnyData_SNMP/Storage.pm, perl/OID/OID.pm, perl/SNMP/SNMP.pm, 
+        perl/TrapReceiver/TrapReceiver.pm,
+      perl/agent/Support/Support.pm,    perl/agent/agent.pm,
+      perl/agent/default_store/default_store.pm,   
+      perl/default_store/default_store.pm:
+
+   update version to 5.6.dev
+
+2010-03-10 18:29  rstory
+
+   * local/Version-Munge.pl:
+
+   CHANGES: building: update Version-Munge for renamed configure.ac
+
+2010-03-10 18:29  rstory
+
+   * configure.ac:
+
+   CHANGES: building: save configure cache every once in while
+
+2010-03-10 16:12  bvassche
+
+   * win32/libsnmp/Makefile.in:
+
+   Reordered some of the Makefile rules in order to minimize the
+   diffs with libsnmp_dll/Makefile.in.
+
+2010-03-10 16:10  bvassche
+
+   * win32/libsnmp_dll/Makefile.in:
+
+   Win32, batch building: DLL builds again.
+
+2010-03-10 16:07  bvassche
+
+   * agent/helpers/cache_handler.c:
+
+   Fixed a recently introduced compiler warning by adding a forward
+   declaration for the function _cache_free().
+
+2010-03-10 16:06  bvassche
+
+   * snmplib/container.c:
+
+   Builds again on Win32.
+
+2010-03-10 04:17  rstory
+
+   * README:
+
+   add missing contributors
+
+2010-03-10 04:17  rstory
+
+   * include/net-snmp/library/container.h, snmplib/container.c:
+
+   CHANGES: snmplib: fix potential double free in CONTAINER_FREE
+   - also added several compare routines
+
+2010-03-10 04:17  rstory
+
+   *  agent/helpers/cache_handler.c,   
+      include/net-snmp/agent/cache_handler.h:
+
+   CHANGES: snmplib: when freeing a cache, stop timer and call cache
+   free func
+   - also add netsnmp_cache_remove
+
+2010-03-10 03:52  rstory
+
+   *  README, agent/helpers/cache_handler.c,   
+      include/net-snmp/agent/cache_handler.h,   
+      include/net-snmp/library/cert_util.h,   
+      include/net-snmp/library/container.h, snmplib/Makefile.in,   
+      snmplib/cert_util.c, snmplib/container.c:
+
+   undo commit 18234
+
+2010-03-10 03:41  rstory
+
+   *  README, agent/helpers/cache_handler.c,   
+      include/net-snmp/agent/cache_handler.h,   
+      include/net-snmp/library/cert_util.h,   
+      include/net-snmp/library/container.h, snmplib/Makefile.in,   
+      snmplib/cert_util.c, snmplib/container.c:
+
+   Merge branch 'pullme' of ../trunk-staging
+
+2010-03-09 17:48  bvassche
+
+   * include/net-snmp/mib_api.h:
+
+   CHANGES: Win32: exported netsnmp_read_module() from netsnmp.dll
+   such that NetSNMP.pm builds again.
+
+2010-03-09 17:47  bvassche
+
+   * win32/libagent/Makefile.in, win32/libsnmp_dll/Makefile.in:
+
+   Simplified two makefiles used by build.bat (Win32).
+
+2010-03-09 17:24  bvassche
+
+   * perl/SNMP/SNMP.xs:
+
+   CHANGES: Win32: building: building NetSNMP.pm does no longer
+   trigger compiler warnings about redefining _WIN32_WINNT nor
+   NTDDI_VERSION.
+
+2010-03-09 17:22  bvassche
+
+   * perl/SNMP/Makefile.PL:
+
+   CHANGES: Win32: building: made building NetSNMP.pm more silent by
+   adding the MSVC compiler flags -D_CRT_SECURE_NO_WARNINGS
+   -D_CRT_NONSTDC_NO_WARNINGS.
+
+2010-03-09 17:09  rstory
+
+   * snmplib/read_config.c:
+
+   remove debug msg used during debugging
+
+2010-03-09 17:02  marz
+
+   * local/net-snmp-cert:
+
+   initial cert wrapper - testing repo write privs
+
+2010-03-09 10:20  bvassche
+
+   * win32/netsnmpmibs/Makefile.in:
+
+   Removed duplicate build rules. These duplicate rules were
+   harmless but triggered a warning.
+
+2010-03-09 02:38  rstory
+
+   * include/net-snmp/library/dir_utils.h, snmplib/dir_utils.c:
+
+   CHANGES: snmplib: directory container enhancements
+   - fix potential memory leak
+   - add filter callback to filter files returned
+   - add option to return relative and not full paths
+   - add option to sort returned list
+   - add option to return empty container instead of NULL if no
+   files found
+   - change default container name to directory that was scanned
+   - tweak debug/log messages
+
+2010-03-08 23:07  rstory
+
+   *  agent/mibgroup/if-mib/data_access/interface.c,   
+      agent/mibgroup/if-mib/data_access/interface_linux.c,   
+      agent/mibgroup/if-mib/ifTable/ifTable_data_access.c,   
+      agent/mibgroup/ip-forward-mib/data_access/route_linux.c,   
+      agent/mibgroup/ip-mib/data_access/arp_linux.c,   
+      agent/mibgroup/ip-mib/data_access/systemstats_linux.c,   
+      agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/mibII/tcpTable.c, agent/mibgroup/mibII/udpTable.c, 
+        agent/mibgroup/mibII/var_route.c,   
+      agent/mibgroup/ucd-snmp/loadave.c,   
+      agent/mibgroup/util_funcs/get_pid_from_inode.c,   
+      include/net-snmp/library/snmp_logging.h:
+
+   CHANGES: snmpd: define and use new NETSNMP_LOGONCE macro
+
+2010-03-08 22:44  rstory
+
+   * man/snmp_config.5.def, snmplib/read_config.c:
+
+   NEWS: snmplib: conf files can now include other conf files
+   - also tweaked debug tokens here and there
+
+2010-03-08 22:43  rstory
+
+   * snmplib/snmp_transport.c:
+
+   fix typo (caused external reference when DTLSUDP configured
+   without dtlstcp)
+
+2010-03-06 02:27  rstory
+
+   *  include/net-snmp/library/container.h, snmplib/container.c,   
+      snmplib/container_binary_array.c, snmplib/container_list_ssll.c:
+
+   NEWS: snmplib: netsnmp_container enhancements:
+   - add free_item function; defaults to
+   netsnmp_container_simple_free
+   - add CONTAINER_FREE_ALL macro/function (like CONTAINER_CLEAR but
+   calls container free_item for each item in primary container)
+   - add ability to set options on binary_array containers
+
+2010-03-02 17:55  bvassche
+
+   * win32/libsnmp/Makefile.in:
+
+   Made sure that win32/build.bat works again by adding missing
+   source file names. Sorted source file names alphabetically too.
+
+2010-03-02 16:54  bvassche
+
+   *  win32/Configure, win32/netsnmpmibs/Makefile.in,   
+      win32/snmpd/Makefile.in:
+
+   Follow-up for r18167 (merge of snmpd and snmpdsdk and also of
+   netsnmpmibs and netsnmpmibssdk): the batch file win32/build.bat
+   works again with the Platform SDK enabled.
+
+2010-03-02 16:52  bvassche
+
+   * win32/Makefile-apps.in:
+
+   Follow-up for r18215 (replaced the obsolete cl.exe option /GX by
+   the equivalent /EHsc; added /D "_CRT_SECURE_NO_WARNINGS", added
+   /D "_CRT_NONSTDC_NO_WARNINGS" and removed /Fp... and /YX).
+
+2010-02-28 15:56  bvassche
+
+   * snmplib/winservice.c:
+
+   Win32: fixed a compiler warning about redefinition of
+   _WIN32_WINNT by making sure that <net-snmp/net-snmp-config.h> is
+   included before <windows.h>.
+
+2010-02-28 15:24  bvassche
+
+   *  win32/libagent/Makefile.in, win32/libhelpers/Makefile.in,   
+      win32/libnetsnmptrapd/Makefile.in, win32/libsnmp/Makefile.in,   
+      win32/libsnmp_dll/Makefile.in, win32/netsnmpmibs/Makefile.in,   
+      win32/snmpd/Makefile.in, win32/snmpnetstat/Makefile.in,   
+      win32/snmptrapd/Makefile.in:
+
+   CHANGES: Win32: batch build: replaced the obsolete /GX by the
+   equivalent /EHsc.
+   CHANGES: Win32: batch build: added /D "_CRT_SECURE_NO_WARNINGS"
+   /D "_CRT_NONSTDC_NO_WARNINGS" to make building with MSVC 2008
+   more silent.
+   CHANGES: Win32: batch build: removed /Fp... and /YX. These
+   options influence how precompiled header files are generated,
+   which are not used inside the Net-SNMP project. /YX is not
+   supported by MSVC 2008.
+   CHANGES: Win32: batch build: removed a duplicate occurrence of
+   strtoull.obj.
+
+2010-02-28 14:11  bvassche
+
+   * win32/Configure, win32/Makefile.in:
+
+   Follow-up for r18167 (merge of snmpd and snmpdsdk and also of
+   netsnmpmibs and netsnmpmibssdk): applied the necessary changes to
+   the win32/Configure script and win32/Makefile.in.
+
+2010-02-27 13:11  bvassche
+
+   *  agent/mibgroup/agent/nsCache.c, include/net-snmp/config_api.h,   
+      include/net-snmp/library/asn1.h,   
+      include/net-snmp/library/callback.h,   
+      include/net-snmp/library/check_varbind.h,   
+      include/net-snmp/library/container.h,   
+      include/net-snmp/library/container_list_ssll.h,   
+      include/net-snmp/library/container_null.h,   
+      include/net-snmp/library/data_list.h,   
+      include/net-snmp/library/default_store.h,   
+      include/net-snmp/library/fd_event_manager.h,   
+      include/net-snmp/library/int64.h,   
+      include/net-snmp/library/keytools.h,   
+      include/net-snmp/library/large_fd_set.h,   
+      include/net-snmp/library/md5.h, include/net-snmp/library/mib.h,   
+      include/net-snmp/library/mt_support.h,   
+      include/net-snmp/library/oid_stash.h,   
+      include/net-snmp/library/parse.h,   
+      include/net-snmp/library/read_config.h,   
+      include/net-snmp/library/scapi.h,   
+      include/net-snmp/library/snmp-tc.h,   
+      include/net-snmp/library/snmp.h,   
+      include/net-snmp/library/snmpCallbackDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h,   
+      include/net-snmp/library/snmp_alarm.h,   
+      include/net-snmp/library/snmp_api.h,   
+      include/net-snmp/library/snmp_client.h,   
+      include/net-snmp/library/snmp_debug.h,   
+      include/net-snmp/library/snmp_enum.h,   
+      include/net-snmp/library/snmp_logging.h,   
+      include/net-snmp/library/snmp_parse_args.h,   
+      include/net-snmp/library/snmp_secmod.h,   
+      include/net-snmp/library/snmp_service.h,   
+      include/net-snmp/library/snmp_transport.h,   
+      include/net-snmp/library/snmpusm.h,   
+      include/net-snmp/library/snmpv3.h,   
+      include/net-snmp/library/system.h,   
+      include/net-snmp/library/tools.h,   
+      include/net-snmp/library/ucd_compat.h,   
+      include/net-snmp/library/vacm.h,   
+      include/net-snmp/library/winpipe.h, include/net-snmp/mib_api.h,   
+      include/net-snmp/pdu_api.h, include/net-snmp/session_api.h,   
+      include/net-snmp/varbind_api.h, include/net-snmp/version.h,   
+      snmplib/getopt.c, snmplib/gettimeofday.c, snmplib/mib.c,   
+      snmplib/parse.c, snmplib/snmp_alarm.c, snmplib/snmp_api.c,   
+      snmplib/snmp_client.c, snmplib/snmp_debug.c, snmplib/snmpv3.c,   
+      snmplib/strlcpy.c, snmplib/strtok_r.c, snmplib/strtoull.c,   
+      snmplib/tools.c, snmplib/ucd_compat.c, snmplib/winpipe.c,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   CHANGES: Win32: declared all functions that are exported from the
+   Net-SNMP DLL as NETSNMP_IMPORT. The result is a minor
+   optimization: code that uses the Net-SNMP DLL will now call the
+   DLL-exported functions directly instead of indirectly via the
+   stub in the import library.
+
+2010-02-27 11:50  bvassche
+
+   * agent/mibgroup/ucd-snmp/extensible.c:
+
+   Removed a redundant strncasecmp() declaration.
+
+2010-02-27 09:57  bvassche
+
+   * snmplib/strtok_r.c:
+
+   Fixed a typo in a source code comment.
+
+2010-02-27 09:56  bvassche
+
+   * snmplib/snmp_transport.c:
+
+   Follow-up for r18189 (rstory): builds again on Windows.
+
+2010-02-25 17:53  bvassche
+
+   *  win32/encode_keychange/encode_keychange.dsp,   
+      win32/encode_keychange/encode_keychange.vcproj,   
+      win32/libagent/libagent.dsp, win32/libagent/libagent.vcproj,   
+      win32/libhelpers/libhelpers.dsp,   
+      win32/libhelpers/libhelpers.vcproj,   
+      win32/libnetsnmptrapd/libnetsnmptrapd.dsp,   
+      win32/libnetsnmptrapd/libnetsnmptrapd.vcproj,   
+      win32/libsnmp/libsnmp.dsp, win32/libsnmp/libsnmp.vcproj,   
+      win32/libsnmp_dll/libsnmp_dll.dsp,   
+      win32/libsnmp_dll/libsnmp_dll.vcproj,   
+      win32/netsnmpmibs/netsnmpmibs.dsp,   
+      win32/netsnmpmibs/netsnmpmibs.vcproj,   
+      win32/snmpbulkget/snmpbulkget.dsp,   
+      win32/snmpbulkget/snmpbulkget.vcproj,   
+      win32/snmpbulkwalk/snmpbulkwalk.dsp,   
+      win32/snmpbulkwalk/snmpbulkwalk.vcproj, win32/snmpd/snmpd.dsp,   
+      win32/snmpd/snmpd.vcproj, win32/snmpdelta/snmpdelta.dsp,   
+      win32/snmpdelta/snmpdelta.vcproj, win32/snmpdf/snmpdf.dsp,   
+      win32/snmpdf/snmpdf.vcproj, win32/snmpget/snmpget.dsp,   
+      win32/snmpget/snmpget.vcproj, win32/snmpgetnext/snmpgetnext.dsp,  
+       win32/snmpgetnext/snmpgetnext.vcproj,   
+      win32/snmpnetstat/snmpnetstat.dsp,   
+      win32/snmpnetstat/snmpnetstat.vcproj, win32/snmpset/snmpset.dsp,  
+       win32/snmpset/snmpset.vcproj, win32/snmpstatus/snmpstatus.dsp,   
+      win32/snmpstatus/snmpstatus.vcproj,   
+      win32/snmptable/snmptable.dsp, win32/snmptable/snmptable.vcproj,  
+       win32/snmptest/snmptest.dsp, win32/snmptest/snmptest.vcproj,   
+      win32/snmptranslate/snmptranslate.dsp,   
+      win32/snmptranslate/snmptranslate.vcproj,   
+      win32/snmptrap/snmptrap.dsp, win32/snmptrap/snmptrap.vcproj,   
+      win32/snmptrapd/snmptrapd.dsp, win32/snmptrapd/snmptrapd.vcproj,  
+       win32/snmpusm/snmpusm.dsp, win32/snmpusm/snmpusm.vcproj,   
+      win32/snmpvacm/snmpvacm.dsp, win32/snmpvacm/snmpvacm.vcproj,   
+      win32/snmpwalk/snmpwalk.dsp, win32/snmpwalk/snmpwalk.vcproj,   
+      win32/win32.dsw, win32/win32.sln, win32/win32dll.dsw,   
+      win32/win32dll.sln:
+
+   Reverted r18207 (dsp/dsw to vcproj/sln conversion) except the
+   suppression
+   list changes. The goal of this conversion was twofold: not only
+   to be able
+   to load the project files in MSVC 2002 - 2008 but also to be able
+   to commit
+   changes made from inside the MSVC 2008 IDE. Unfortunately
+   converting dsp/dsw
+   files to vcproj/sln files with MSVC 2008 makes it impossible to
+   load the
+   vcproj/sln files with earlier MSVC versions. Why on earth did
+   Microsoft
+   decide to put a version number in XML files ?
+
+2010-02-24 19:41  bvassche
+
+   *  win32, win32/encode_keychange,   
+      win32/encode_keychange/encode_keychange.dsp,   
+      win32/encode_keychange/encode_keychange.vcproj, win32/libagent,   
+      win32/libagent/libagent.dsp, win32/libagent/libagent.vcproj,   
+      win32/libhelpers, win32/libhelpers/libhelpers.dsp,   
+      win32/libhelpers/libhelpers.vcproj, win32/libnetsnmptrapd,   
+      win32/libnetsnmptrapd/libnetsnmptrapd.dsp,   
+      win32/libnetsnmptrapd/libnetsnmptrapd.vcproj, win32/libsnmp,   
+      win32/libsnmp/libsnmp.dsp, win32/libsnmp/libsnmp.vcproj,   
+      win32/libsnmp_dll, win32/libsnmp_dll/libsnmp_dll.dsp,   
+      win32/libsnmp_dll/libsnmp_dll.vcproj, win32/netsnmpmibs,   
+      win32/netsnmpmibs/netsnmpmibs.dsp,   
+      win32/netsnmpmibs/netsnmpmibs.vcproj, win32/snmpbulkget,   
+      win32/snmpbulkget/snmpbulkget.dsp,   
+      win32/snmpbulkget/snmpbulkget.vcproj, win32/snmpbulkwalk,   
+      win32/snmpbulkwalk/snmpbulkwalk.dsp,   
+      win32/snmpbulkwalk/snmpbulkwalk.vcproj, win32/snmpd,   
+      win32/snmpd/snmpd.dsp, win32/snmpd/snmpd.vcproj, win32/snmpdelta, 
+        win32/snmpdelta/snmpdelta.dsp, win32/snmpdelta/snmpdelta.vcproj,
+         win32/snmpdf, win32/snmpdf/snmpdf.dsp,   
+      win32/snmpdf/snmpdf.vcproj, win32/snmpget,   
+      win32/snmpget/snmpget.dsp, win32/snmpget/snmpget.vcproj,   
+      win32/snmpgetnext, win32/snmpgetnext/snmpgetnext.dsp,   
+      win32/snmpgetnext/snmpgetnext.vcproj, win32/snmpnetstat,   
+      win32/snmpnetstat/snmpnetstat.dsp,   
+      win32/snmpnetstat/snmpnetstat.vcproj, win32/snmpset,   
+      win32/snmpset/snmpset.dsp, win32/snmpset/snmpset.vcproj,   
+      win32/snmpstatus, win32/snmpstatus/snmpstatus.dsp,   
+      win32/snmpstatus/snmpstatus.vcproj, win32/snmptable,   
+      win32/snmptable/snmptable.dsp, win32/snmptable/snmptable.vcproj,  
+       win32/snmptest, win32/snmptest/snmptest.dsp,   
+      win32/snmptest/snmptest.vcproj, win32/snmptranslate,   
+      win32/snmptranslate/snmptranslate.dsp,   
+      win32/snmptranslate/snmptranslate.vcproj, win32/snmptrap,   
+      win32/snmptrap/snmptrap.dsp, win32/snmptrap/snmptrap.vcproj,   
+      win32/snmptrapd, win32/snmptrapd/snmptrapd.dsp,   
+      win32/snmptrapd/snmptrapd.vcproj, win32/snmpusm,   
+      win32/snmpusm/snmpusm.dsp, win32/snmpusm/snmpusm.vcproj,   
+      win32/snmpvacm, win32/snmpvacm/snmpvacm.dsp,   
+      win32/snmpvacm/snmpvacm.vcproj, win32/snmpwalk,   
+      win32/snmpwalk/snmpwalk.dsp, win32/snmpwalk/snmpwalk.vcproj,   
+      win32/win32.dsw, win32/win32.sln, win32/win32dll.dsw,   
+      win32/win32dll.sln:
+
+   (reverted) CHANGES: Win32: building: converted .dsp/.dsw files to
+   .vcproj/.sln files. This implies that support for MSVC 6.0 has
+   been dropped and the minimum Microsoft Visual Studio version
+   required to build the Net-SNMP source code is Microsoft Visual
+   Studio .NET (2002).
+
+2010-02-23 19:03  bvassche
+
+   * configure, configure.d/config_project_manual:
+
+   CHANGES: building: when generating a default value for the system
+   location and no domain name is found in /etc/resolv.conf, use
+   "@no.where" instead of "".
+
+2010-02-23 18:50  bvassche
+
+   * configure, m4/ac_prompt_user.m4:
+
+   CHANGES: building: made sure that the configure script does no
+   longer invoke "tail -1", which is not POSIX-compliant.
+
+2010-02-23 18:45  hardaker
+
+   *  testing/tests/T300udp, testing/tests/T310tcp,   
+      testing/tests/T320udpv6, testing/tests/T330tcpv6,   
+      testing/tests/T350unix, testing/tests/T360dtlsudp,   
+      testing/tests/T399alias:
+
+   Removed all transport tests since it's impossible to determine
+   where they can safely operate (was stopping tanders' nightly
+   tests from succeeding)
+
+2010-02-23 18:41  hardaker
+
+   * snmplib/snmpTLSTCPDomain.c:
+
+   more error and debugging output
+
+2010-02-23 18:40  hardaker
+
+   * snmplib/snmpTLSBaseDomain.c:
+
+   fix the server context generator to actually, um, return the
+   context.
+
+2010-02-23 18:40  hardaker
+
+   * agent/agent_trap.c:
+
+   initialize the 'res' variable since it's checked
+
+2010-02-23 18:39  hardaker
+
+   * snmplib/snmpTLSTCPDomain.c:
+
+   more progress toward a real implementation
+
+2010-02-23 18:38  hardaker
+
+   * snmplib/snmp_transport.c:
+
+   tlstcp ctor invocation
+
+2010-02-23 18:38  hardaker
+
+   * include/net-snmp/library/snmpTLSTCPDomain.h:
+
+   require TLSBase
+
+2010-02-23 18:37  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   added host identifier as output
+
+2010-02-23 18:35  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/snmpTLSTCPDomain.c:
+
+   significant more work on the TLS TCP domain
+
+2010-02-23 17:43  bvassche
+
+   * configure, include/net-snmp/net-snmp-config.h.in:
+
+   Follow-up for r18193 (jsafranek): reran autoreconf for the trunk
+   and the 5.5 branch.
+
+2010-02-23 14:58  rstory
+
+   * snmplib/snmp_api.c:
+
+   use NETSNMP_PRIz instead of %z
+
+2010-02-23 12:27  jsafranek
+
+   * configure.d/config_os_libs:
+
+   CHANGES: building: Fixed compilation with rpm-4.6.
+   Turn on the legacy API when rpm-4.6 is detected.
+
+2010-02-23 07:38  bvassche
+
+   * snmplib/snmp_alarm.c, snmplib/snmp_api.c:
+
+   Reverted r18000 (disabling SIGALRM support) because this involves
+   a backwards-incompatible change.
+
+2010-02-23 00:36  rstory
+
+   * snmplib/snmpTCPDomain.c:
+
+   fix typo in comment
+
+2010-02-23 00:34  rstory
+
+   * snmplib/snmp_api.c:
+
+   debug msg tweaks; use new tranport functions
+   - add debug header for snmp version
+   - add length to debug send/receive messages
+   - use new tranport functions for send/recv/finding peer address
+
+2010-02-23 00:25  rstory
+
+   *  include/net-snmp/library/snmp_transport.h,   
+      snmplib/snmp_transport.c:
+
+   add netsnmp_transport_peer_string, netsnmp_transport_send &
+   netsnmp_transport_recv
+   - moves transport manipulation into transport code
+   - central place for logging/debugging sent/received data
+
+2010-02-22 19:33  bvassche
+
+   *  configure, configure.d/config_modules_agent,   
+      configure.d/config_project_manual:
+
+   CHANGES: building: made sure that the configure script does no
+   longer invoke "tail -1", which is not POSIX-compliant.
+
+2010-02-22 19:21  bvassche
+
+   * agent/agent_registry.c:
+
+   Follow-up for r18186. Regression test 34 (whether authentication
+   failure traps are sent by snmpd) passes now again.
+
+2010-02-22 09:18  bvassche
+
+   * agent/agent_registry.c:
+
+   CHANGES: snmpd: made sure that handler registration failure does
+   not create dangling pointers in the MIB subtree registry.
+
+2010-02-22 09:11  bvassche
+
+   * agent, apps, apps/snmpnetstat:
+
+   Updated Subversion ignore list.
+
+2010-02-22 08:42  bvassche
+
+   * configure:
+
+   Follow-up for r18084: fixed libeay32 (OpenSSL) configure test for
+   MinGW.
+
+2010-02-22 08:31  bvassche
+
+   * configure.d/config_os_libs:
+
+   Follow-up for r18084: fixed libeay32 (OpenSSL) configure test for
+   MinGW.
+
+2010-02-22 08:13  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Builds again with MinGW when IPv6 support is enabled.
+
+2010-02-21 18:58  bvassche
+
+   *  README.win32, win32/libsdll.dsw,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in, win32/win32dll.dsw:
+
+   CHANGES: Win32: building: renamed libsdll.dsw into win32dll.dsw.
+   CHANGES: Win32: building: simplified linking the Net-SNMP
+   applications with netsnmp.dll by adding all application projects
+   to the same workspace that is used for building the DLL.
+   CHANGES: Win32: building: made building netsnmp.dll less error
+   prone by letting the compiler print an error message if the
+   preprocessor symbol NETSNMP_USE_DLL has not been defined.
+
+2010-02-21 18:51  bvassche
+
+   * win32/libsnmp_dll/libsnmp_dll.dsp:
+
+   CHANGES: Win32: building: Added libsnmp.def to the list of
+   libsnmp_dll.dsp source files such that the DLL is rebuilt when
+   the .def file has been modified.
+
+2010-02-21 18:45  bvassche
+
+   * win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
+
+   CHANGES: Win32: exported netsnmp_set_line_buffering() from
+   netsnmp.dll.
+
+2010-02-21 17:39  bvassche
+
+   *  snmplib/snmpIPv6BaseDomain.c, snmplib/snmpUDPIPv6Domain.c,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   More Win32 IPv6 source code consistency improvements:
+   - Moved #undef HAVE_IF_NAMETOINDEX from snmplib/*.c to
+   win32/net-snmp/net-snmp-config.h.
+   - Changed the global in6addr_any variable into a static variable
+   such that
+   multiple definitions do not trigger a linker error.
+   - Added typedefs for uint8_t, int8_t, uint16_t and int16_t.
+   - Replaced '#if NETSNMP_ENABLE_IPV6' by '#ifdef
+   NETSNMP_ENABLE_IPV6'.
+
+2010-02-21 08:30  tanders
+
+   * snmplib/snmpIPBaseDomain.c:
+
+   make sure that INADDR_NONE is defined (fixes build error on
+   Solaris)
+
+2010-02-19 19:39  bvassche
+
+   * win32/net-snmp/net-snmp-config.h.in:
+
+   Synchronized win32/net-snmp/net-snmp-config.h and
+   win32/net-snmp/net-snmp-config.h.in.
+
+2010-02-19 14:18  bvassche
+
+   * include/net-snmp/library/system.h:
+
+   CHANGES: Win32: libsnmp builds again as a DLL when IPv6 is
+   enabled.
+
+2010-02-19 13:22  bvassche
+
+   * win32/libsnmp_dll/libsnmp.def.in:
+
+   Follow up for r18164: synchronized libsnmp.def.in with
+   libsnmp.def
+
+2010-02-19 09:05  bvassche
+
+   * win32/net-snmp/net-snmp-config.h:
+
+   CHANGES: Win32: added #include <malloc.h> in
+   win32/net-snmp/net-snmp-config.h such that the MSVC compiler
+   doesn't get confused by the malloc redefinition when building
+   libsnmp as a DLL.
+
+2010-02-19 08:59  bvassche
+
+   *  include/net-snmp/library/snmp_parse_args.h,   
+      win32/libsnmp_dll/libsnmp.def:
+
+   Exported netsnmp_parse_args() such that the Net-SNMP applications
+   build again when libsnmp is built as a DLL.
+
+2010-02-19 08:56  bvassche
+
+   * snmplib/keytools.c, win32/net-snmp/net-snmp-config.h:
+
+   CHANGES: Win32: building: moved MSVC OpenSSL linker settings from
+   snmplib/keytools.c to win32/net-snmp/net-snmp-config.h such that
+   these settings are not only effective when building snmplib as a
+   static library but also when any Net-SNMP application is built
+   that links with snmplib as a static library or as a DLL.
+
+2010-02-19 08:32  bvassche
+
+   * snmplib/keytools.c:
+
+   Win32 cleanup: MSVC / DLL tests now use the officially endorsed
+   macro names.
+
+2010-02-19 07:50  bvassche
+
+   * win32/libsnmp_dll/libsnmp_dll.dsp:
+
+   Builds again.
+
+2010-02-19 06:47  magfr
+
+   *  agent/agent_trap.c, agent/mibgroup/ucd-snmp/proxy.c,   
+      include/net-snmp/library/snmp_parse_args.h,   
+      snmplib/snmp_parse_args.c:
+
+   NEWS: snmplib: PATCH: 2942940: from "Bill Fenner": Add a new
+   function, netsnmp_parse_args, that is like snmp_parse_args but
+   takes an additional bitmask, flags, to affect the behaviour. Also
+   remove the magic handling of some application names.
+
+2010-02-18 14:22  bvassche
+
+   * win32/bin:
+
+   Updated Subversion ignore list.
+
+2010-02-18 14:20  bvassche
+
+   *  win32/libhelpers/libhelpers.dsp,   
+      win32/libnetsnmptrapd/libnetsnmptrapd.dsp,   
+      win32/libsnmp/libsnmp.dsp, win32/netsnmpmibs/netsnmpmibs.dsp:
+
+   Sorted names of source files alphabetically.
+
+2010-02-18 13:03  bvassche
+
+   *  README.win32, snmplib/winservice.c, win32/libsnmp/libsnmp.dsp,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/netsnmpmibs/netsnmpmibs.dsp, win32/netsnmpmibssdk,   
+      win32/snmpdsdk, win32/snmpnetstat/snmpnetstat.dsp,   
+      win32/win32.dsw, win32/win32sdk.dsw:
+
+   CHANGES: Win32: dropped support for building Net-SNMP with
+   Microsoft Visual Studio 6.0 without platform SDK. Building
+   Net-SNMP with Microsoft Visual Studio 6.0 + PSDK or any later
+   version of MSVC is still possible however.
+   
+   Note: if in the future for whatever reason it should become
+   necessary again to be able to build Net-SNMP with MSVC without
+   relying on the platform SDK headers, please #ifdef out the MIB
+   code that relies on the PSDK headers instead of splitting the
+   workspace files again.
+
+2010-02-18 12:57  bvassche
+
+   * snmplib/snmpIPv6BaseDomain.c:
+
+   dos2unix.
+
+2010-02-18 09:45  bvassche
+
+   * include/net-snmp/library/types.h:
+
+   Source code cleanup:
+   - Moved documentation of netsnmp_large_fd_set members to the
+   comment
+   block just above the definition of this type.
+   - Removed superfluous 'extern "C"' specifier: this linkage
+   specifier
+   only has an effect on declarations of variables of functions and
+   not
+   on typedefs or struct definitions.
+   - Ran this header file through indent.
+
+2010-02-18 09:26  bvassche
+
+   *  snmplib/snmpIPBaseDomain.c, snmplib/snmpIPV6BaseDomain.c,   
+      snmplib/snmpIPv6BaseDomain.c, snmplib/snmpTLSBaseDomain.c,   
+      win32/libsnmp/libsnmp.dsp:
+
+   Changes:
+   - Builds again with MSVC.
+   - Fixed a few compiler warnings reported by MSVC (passing int
+   instead of u_short to htons() / function declarations that were
+   missing because of missing #include directives).
+
+2010-02-16 17:16  bvassche
+
+   * include/net-snmp/types.h:
+
+   CHANGES: Win32: The header file <sys/timeb.h> is no longer
+   included from <net-snmp/types.h>. Or: the header file
+   <sys/timeb.h> will have to be included explicitly in source files
+   that need the declaration of the function ftime().
+   
+   Note: compared to r18024 and before, this change does not affect
+   BSD systems -- <sys/timeb.h> was only included from
+   <net-snmp/types.h> on BSD systems in revisions r18025..r18152.
+
+2010-02-14 19:29  bvassche
+
+   * include/net-snmp/system/freebsd8.h:
+
+   Builds now on FreeBSD version 8.0.
+
+2010-02-13 20:59  magfr
+
+   *  include/net-snmp/library/snmpIPv4BaseDomain.h,   
+      include/net-snmp/library/snmpIPv6BaseDomain.h,   
+      include/net-snmp/library/snmpTCPBaseDomain.h,   
+      include/net-snmp/library/snmpTCPDomain.h,   
+      include/net-snmp/library/snmpTCPIPv6Domain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h:
+
+   Adjust the placement of ;'s in order to
+   a) Avoid warnings about spurious semicolons
+   b) Not have unterminated declarations in headers
+
+2010-02-12 02:57  rstory
+
+   * local/mib2c:
+
+   CHANGES: mib2c: update inline documentation; add storagetype test
+   for columns
+
+2010-02-12 01:50  rstory
+
+   * include/net-snmp/library/snmp_api.h:
+
+   fix typo in define
+
+2010-02-12 01:05  hardaker
+
+   * configure, configure.d/config_modules_lib:
+
+   fix sed processing on white-space adding solaris machines
+
+2010-02-10 23:56  hardaker
+
+   * configure, configure.d/config_modules_lib:
+
+   add top srcdir to cpp search path
+
+2010-02-10 23:52  hardaker
+
+   * include/net-snmp/types.h:
+
+   freebsd needs time.h above timeb.h
+
+2010-02-10 23:37  hardaker
+
+   * configure, configure.d/config_modules_lib:
+
+   use sed with multireplace on a line to fix possible whitespace
+   issue on solaris
+
+2010-02-10 23:22  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      include/net-snmp/library/snmpTLSTCPDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpTLSBaseDomain.c,   
+      snmplib/snmpTLSTCPDomain.c:
+
+   beginning work for TLS separation into separate files with a base
+   file
+
+2010-02-10 23:21  hardaker
+
+   * include/net-snmp/library/snmpUDPIPv4BaseDomain.h:
+
+   move base transport creation function out of linux ifdefs
+
+2010-02-10 23:21  hardaker
+
+   *  include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpTLSBaseDomain.c:
+
+   moved another error logging function
+
+2010-02-10 23:20  hardaker
+
+   * mibs/NET-SNMP-TC.txt:
+
+   added TLS over TCP
+
+2010-02-10 16:39  dts12
+
+   *  agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c,   
+      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c:
+
+   CHANGES: Linux: Improved EtherLike-MIB support
+   Patch supplied by Josef Moellers
+
+2010-02-10 10:04  dts12
+
+   * python/netsnmp/client_intf.c:
+
+   CHANGES: python: Support null-bytes in octet strings
+   Patch supplied by Tommy Beadle
+
+2010-02-10 00:59  hardaker
+
+   *  include/net-snmp/library/snmpDTLSUDPDomain.h,   
+      include/net-snmp/library/snmpTLSBaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpTLSBaseDomain.c:
+
+   moved TLS infrastructure into a base domain file
+
+2010-02-10 00:04  hardaker
+
+   *  include/net-snmp/library/snmpIPv6BaseDomain.h,   
+      include/net-snmp/library/snmpTCPIPv6Domain.h,   
+      snmplib/snmpIPv6BaseDomain.c, snmplib/snmpUDPIPv6Domain.c:
+
+   moved socket6 functions to the ipv6 base
+
+2010-02-10 00:03  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   white space formatting
+
+2010-02-10 00:03  hardaker
+
+   *  include/net-snmp/library/snmpUDPBaseDomain.h,   
+      snmplib/snmpUDPBaseDomain.c, snmplib/snmpUDPDomain.c:
+
+   moved udp_send/recv to udpbase
+
+2010-02-10 00:02  hardaker
+
+   *  include/net-snmp/library/snmpSocketBaseDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      snmplib/snmpSocketBaseDomain.c, snmplib/snmpUDPDomain.c:
+
+   move netsnmp_sock_buffer_set into socketbase
+
+2010-02-10 00:02  hardaker
+
+   *  include/net-snmp/library/snmpUDPBaseDomain.h,   
+      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpUDPBaseDomain.c,   
+      snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv4BaseDomain.c:
+
+   move ipv4 specific UDP transport creation to udpipv4 base
+
+2010-02-10 00:01  hardaker
+
+   *  snmplib/snmpTCPDomain.c, snmplib/snmpTCPIPv6Domain.c,   
+      snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c:
+
+   made common functions be referenced directly by the transports
+   and removed original functionality; they were static so there is
+   no backwards compat issues
+
+2010-02-10 00:00  hardaker
+
+   *  include/net-snmp/library/snmpSocketBaseDomain.h,   
+      include/net-snmp/library/snmpTCPBaseDomain.h,   
+      include/net-snmp/library/snmpUDPBaseDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpSocketBaseDomain.c,   
+      snmplib/snmpTCPDomain.c, snmplib/snmpUDPBaseDomain.c,   
+      snmplib/snmpUDPDomain.c:
+
+   moved socket based close to a socket based domain common to many
+   things
+
+2010-02-09 23:59  hardaker
+
+   *  include/net-snmp/library/snmpTCPBaseDomain.h,   
+      include/net-snmp/library/snmpTCPDomain.h,   
+      include/net-snmp/library/snmpTCPIPv6Domain.h,   
+      snmplib/snmpTCPBaseDomain.c, snmplib/snmpTCPDomain.c,   
+      snmplib/snmpTCPIPv6Domain.c:
+
+   move TCP common functions to a TCPBase domain implementation
+
+2010-02-09 23:57  hardaker
+
+   *  include/net-snmp/library/snmpDTLSUDPDomain.h,   
+      include/net-snmp/library/snmpUDPBaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c:
+
+   warning cleanup
+
+2010-02-09 23:56  hardaker
+
+   * include/net-snmp/library/snmp_transport.h:
+
+   tmStateReference should be using the indexed addr_pair
+
+2010-02-09 23:56  hardaker
+
+   * snmplib/snmpDTLSUDPDomain.c:
+
+   make netsnmp_dtlsudp_close make use of netsnmp_baseudp_close
+
+2010-02-09 23:55  hardaker
+
+   *  include/net-snmp/library/snmpUDPBaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpUDPBaseDomain.c,   
+      snmplib/snmpUDPDomain.c:
+
+   moved base UDP socket creation into a common base function and
+   made use of it
+
+2010-02-09 23:54  hardaker
+
+   * include/net-snmp/library/snmpIPBaseDomain.h:
+
+   proper _H ifdef checks
+
+2010-02-09 23:54  hardaker
+
+   *  include/net-snmp/library/snmpDTLSUDPDomain.h,   
+      include/net-snmp/library/snmpUDPBaseDomain.h,   
+      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
+      snmplib/snmpUDPBaseDomain.c, snmplib/snmpUDPDomain.c,   
+      snmplib/snmpUDPIPv4BaseDomain.c:
+
+   added a raw UDP base domain
+
+2010-02-09 23:53  hardaker
+
+   *  include/net-snmp/library/snmpDTLSUDPDomain.h,   
+      include/net-snmp/library/snmpIPBaseDomain.h,   
+      include/net-snmp/library/snmpIPv6BaseDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv4BaseDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpIPBaseDomain.c,   
+      snmplib/snmpIPv4BaseDomain.c, snmplib/snmpIPv6BaseDomain.c,   
+      snmplib/snmpTCPIPv6Domain.c, snmplib/snmpUDPDomain.c,   
+      snmplib/snmpUDPIPv4BaseDomain.c, snmplib/snmpUDPIPv6Domain.c:
+
+   created a UDP IPv4 base; moved and reused more infrastructure
+
+2010-02-09 23:51  hardaker
+
+   *  include/net-snmp/library/snmpIPv4BaseDomain.h,   
+      snmplib/snmpIPv4BaseDomain.c, snmplib/snmpTCPDomain.c,   
+      snmplib/snmpUDPDomain.c:
+
+   moved ipv4 address formatting into snmpIPv4BaseDomain
+
+2010-02-09 23:51  hardaker
+
+   * snmplib/snmpIPv6BaseDomain.c:
+
+   v6 domain infrastructure files
+
+2010-02-09 23:51  hardaker
+
+   *  include/net-snmp/library/snmpIPV4BaseDomain.h,   
+      include/net-snmp/library/snmpIPv4BaseDomain.h,   
+      include/net-snmp/library/snmpIPv6BaseDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h,   
+      snmplib/snmpIPV4BaseDomain.c, snmplib/snmpIPV6BaseDomain.c,   
+      snmplib/snmpIPv4BaseDomain.c:
+
+   v6 domain infrastructure files
+
+2010-02-09 23:50  hardaker
+
+   *  configure, include/net-snmp/library/snmpIPBaseDomain.h,   
+      include/net-snmp/library/snmpIPV4BaseDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      snmplib/snmpIPBaseDomain.c, snmplib/snmpIPV4BaseDomain.c,   
+      snmplib/snmpUDPDomain.c:
+
+   New IPv4 and IP base transport files
+
+2010-02-09 23:48  hardaker
+
+   * configure.d/config_modules_lib:
+
+   don't double include transport modules
+
+2010-02-09 23:48  hardaker
+
+   * include/net-snmp/library/snmpIPXDomain.h:
+
+   moved architecture tests into the header files using config_error
+   for signaling problems
+
+2010-02-09 23:46  hardaker
+
+   * configure.d/config_modules_lib:
+
+   moved architecture tests into the header files using config_error
+   for signaling problems
+
+2010-02-09 23:45  hardaker
+
+   *  include/net-snmp/library/snmpAAL5PVCDomain.h,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUnixDomain.h:
+
+   moved architecture tests into the header files using config_error
+   for signaling problems
+
+2010-02-09 23:43  hardaker
+
+   * configure.d/config_modules_lib:
+
+   check for and report config_errors in transport headers
+
+2010-02-09 23:43  hardaker
+
+   * configure.d/config_os_headers:
+
+   allow a NETSNMP_QUICK_CHECK env variable to bypass header checks
+
+2010-02-09 23:42  hardaker
+
+   * configure.d/config_modules_lib:
+
+   better comments
+
+2010-02-09 23:42  hardaker
+
+   * configure.d/config_modules_lib:
+
+   check for config_require macros in transport headers for
+   force-including of other things
+
+2010-02-09 23:41  hardaker
+
+   *  include/net-snmp/library/snmp_transport.h, perl/agent/agent.xs,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpTCPDomain.c,   
+      snmplib/snmpUDPDomain.c:
+
+   define a standardized indexed addr_pair instead of using one
+   labeled only for UDP everywhere
+
+2010-02-09 23:40  hardaker
+
+   * snmplib/snmptsm.c:
+
+   fix transport prefix list for incoming messages
+
+2010-02-09 23:40  hardaker
+
+   * include/net-snmp/library/snmptsm.h, snmplib/snmptsm.c:
+
+   remove the security level from the TSM cache; previous existence
+   from from a draft copy of the TSM RFC and is now stored entirely
+   in the tm reference
+
+2010-02-09 23:39  hardaker
+
+   * snmplib/snmptsm.c:
+
+   implement incoming TSM procedures according to RFC text
+
+2010-02-09 23:39  hardaker
+
+   * snmplib/snmptsm.c:
+
+   implement outgoing TSM procedures according to RFC text
+
+2010-02-09 23:39  hardaker
+
+   * include/net-snmp/library/snmpDTLSUDPDomain.h:
+
+   create defined sized array and length variable
+
+2010-02-05 09:52  jsafranek
+
+   * 
+      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c,
+        
+      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c:
+
+   CHANGES: snmpd: fixed filedescriptior leak in Etherlike-MIB and
+   RMON-MIB
+
+2010-02-04 15:57  jsafranek
+
+   *  agent/mibgroup/if-mib/data_access/interface_linux.c,   
+      agent/mibgroup/mibII/interfaces.c,   
+      include/net-snmp/data_access/interface.h:
+
+   CHANGES: snmpd: report real ifSpeed of network interface even it
+   is down.
+   Some interfaces can report their real speed, even they are down.
+   And if they can't, the fallback to 10Mbps is still there.
+
+2010-02-01 14:47  bvassche
+
+   * agent/mibgroup/examples/example.c:
+
+   Fixed the compiler warnings triggered by the source file
+   agent/mibgroup/examples/example.c.
+
+2010-02-01 14:45  bvassche
+
+   * README.win32, snmplib/keytools.c:
+
+   CHANGES: Win32: building: simplified the procedure for building
+   with SNMPv3 support enabled (OpenSSL).
+
+2010-02-01 14:34  bvassche
+
+   *  agent/helpers/cache_handler.c, agent/helpers/instance.c,   
+      agent/helpers/old_api.c, agent/helpers/stash_cache.c,   
+      agent/helpers/watcher.c, agent/mibgroup/winExtDLL.c,   
+      snmplib/large_fd_set.c, snmplib/md5.c, snmplib/snmpAliasDomain.c, 
+        snmplib/snmp_parse_args.c:
+
+   Made sure that all calls to free() are intercepted when building
+   with dmalloc
+   support enabled. Included <dmalloc.h> in those source files where
+   it was not
+   yet included, and provided a wrapper function for free() where
+   the address of
+   this function was taken (Dmalloc can only intercept free() when
+   it is called
+   directly but not when it is called through a function pointer).
+
+2010-02-01 10:49  bvassche
+
+   * include/net-snmp/library/system.h:
+
+   NEWS: building: Building Net-SNMP with dmalloc support enabled is
+   again possible.
+
+2010-02-01 01:05  tanders
+
+   *  testing/tests/T053agentv1trap, testing/tests/T054agentv2ctrap,   
+      testing/tests/T055agentv1mintrap,   
+      testing/tests/T056agentv2cmintrap, testing/tests/T113agentxtrap,  
+       testing/tests/T114agentxagentxtrap:
+
+   CHANGES: building: 'make test TESTOPTS="-P tcp"' works fine now
+
+2010-01-31 08:02  bvassche
+
+   * configure, configure.d/config_os_misc2:
+
+   Follow-up for r18084: fixed an sh syntax error in the configure
+   script
+   that was triggered on systems without libcrypto and without
+   libeay32.
+   The following error was reported:
+   configure[33136]: x: unknown test operator
+
+2010-01-29 20:07  jsafranek
+
+   * testing/tests/T059trapdtraphandle:
+
+   Elaborate on rev. 18089 and adjust the temporary directory to the
+   *    *really working one*.  2010-01-29 19:11  jsafranek
+
+
+   * testing/tests/T059trapdtraphandle:
+
+   Fix test 35 when configure option '--with-temp-file-pattern' was
+   used and the directory for temp. files does not exist yet.
+
+2010-01-29 15:07  bvassche
+
+   *  configure, configure.d/config_os_functions,   
+      include/net-snmp/library/system.h,   
+      include/net-snmp/net-snmp-config.h.in, snmplib/closedir.c,   
+      snmplib/gettimeofday.c, snmplib/opendir.c, snmplib/readdir.c,   
+      snmplib/system.c, win32/libsnmp/libsnmp.dsp:
+
+   Moved the source code of the opendir(), readdir(), closedir() and
+   gettimeofday() replacements for MSVC from snmplib/system.c to
+   separate source files in snmplib.
+
+2010-01-29 08:57  bvassche
+
+   * configure, configure.d/config_os_libs:
+
+   Configure script consistency improvement: renamed the variable
+   "saved_LIBS" into "netsnmp_save_LIBS".
+
+2010-01-29 06:39  magfr
+
+   *  configure, configure.d/config_os_struct_members,   
+      include/net-snmp/net-snmp-config.h.in,   
+      testing/tests/T072com2secunix:
+
+   CHANGES: testing: Check the size of sun_path and use that to
+   generate the maximal size strings for stressing com2secunix.
+
+2010-01-27 15:16  bvassche
+
+   * testing/eval_tools.sh:
+
+   NEWS: MinGW: running the regression test suite is again possible
+   ('make test').
+
+2010-01-27 14:43  bvassche
+
+   *  configure, configure.d/config_os_libs,   
+      configure.d/config_os_misc2,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   NEWS: Cygwin: building with another OpenSSL package than the
+   Cygwin-provided packages openssl and openssl-devel is again
+   possible.
+   NEWS: MinGW: building with OpenSSL works again.
+
+2010-01-26 21:27  magfr
+
+   * agent/agent_trap.c, include/net-snmp/agent/agent_trap.h:
+
+   CHANGES: snmplib: Make the context argument of send_v3trap,
+   send_trap_vars_with_context and netsnmp_send_traps refer to a
+   const char*.
+
+2010-01-26 21:24  magfr
+
+   * agent/mibgroup/host/data_access/swinst_pkginfo.c:
+
+   Correct misspelling - #elsif to #elif
+
+2010-01-26 21:21  magfr
+
+   * snmplib/snmpUDPDomain.c:
+
+   Apparently not all systems define INET_ADDRSTRLEN so add it if it
+   is missing.
+
+2010-01-26 15:46  bvassche
+
+   * testing/TESTCONF.sh:
+
+   Added netstat path for MinGW.
+
+2010-01-26 15:00  hardaker
+
+   * include/net-snmp/library/snmp_api.h:
+
+   fix stat names
+
+2010-01-26 15:00  hardaker
+
+   * include/net-snmp/library/snmp_assert.h:
+
+   define netsnmp_assert_or_msgreturn
+
+2010-01-26 14:59  hardaker
+
+   * snmplib/snmptsm.c:
+
+   use netsnmp_assert_or_return
+
+2010-01-26 14:58  hardaker
+
+   * include/net-snmp/library/snmp_assert.h:
+
+   define netsnmp_assert_or_return
+
+2010-01-26 14:58  hardaker
+
+   * snmplib/snmptsm.c:
+
+   update comments to reflect RFC5591 as the document describing the
+   implementation
+
+2010-01-26 11:43  bvassche
+
+   * include/net-snmp/system/cygwin.h:
+
+   NEWS: Cygwin: BUG: 2939168: byte order of udpLocalPort is now
+   correct.
+
+2010-01-26 10:46  bvassche
+
+   *  net-snmp-config.in, testing/TESTCONF.sh,   
+      testing/tests/T030snmpv3usercreation,   
+      testing/tests/T115agentxperl:
+
+   NEWS: Cygwin: BUG: 2939168: fixed test infrastructure ("make
+   test"). This has been fixed by using the proper environment
+   separator character and by adding the path of the netstat
+   executable for Cygwin in testing/TESTCONF.sh.
+
+2010-01-26 09:27  jsafranek
+
+   * agent/mibgroup/host/hr_swinst.c:
+
+   CHANGES: snmpd: fix rare race condition when reading RPM
+   database.
+   Old rpm versions return NULL instead of Header when another RPM
+   instance holds
+   database locks. I.e. snmpd sometimes crashes when reading
+   hr_swInst and rpm is
+   installing/updating/removing another package. As a solution,
+   whole RPM cache
+   is thrown away and re-read when we got an error from librpm. The
+   whole process
+   is restarted only three times, to prevent endless loop.
+
+2010-01-25 22:16  magfr
+
+   *  agent/mibgroup/notification/snmpNotifyTable.c,   
+      agent/mibgroup/snmpv3/usmUser.c,   
+      agent/mibgroup/target/snmpTargetAddrEntry.c,   
+      agent/mibgroup/target/snmpTargetParamsEntry.c,   
+      agent/mibgroup/ucd-snmp/disk.c, snmplib/scapi.c,   
+      snmplib/snmp_api.c:
+
+   CHANGES: snmplib, snmpd: Do not check if values of type size_t
+   are less than 0.
+
+2010-01-25 22:11  magfr
+
+   * agent/mibgroup/util_funcs/header_simple_table.c:
+
+   CHANGES: snmpd: Check the range of oid values towards the maximum
+   oid value, notULONG_MAX
+
+2010-01-25 20:01  rstory
+
+   * configure, configure.d/config_os_libs:
+
+   only bail on missing libiphlpapi for xwinsock2
+
+2010-01-25 19:57  rstory
+
+   * include/net-snmp/library/snmp_api.h, snmplib/snmp_api.c:
+
+   rename MAX_STATS to NETSNMP_STAT_MAX_STATS
+
+2010-01-25 19:53  rstory
+
+   * agent/helpers/snmp_get_statistic.c:
+
+   update for new path to snmp_get_statistics; check for index
+   overflow
+
+2010-01-25 19:44  rstory
+
+   *  agent/helpers/Makefile.in, agent/mibgroup/Makefile.depend,   
+      agent/mibgroup/mibII/snmp_mib_5_5.c,   
+      agent/mibgroup/mibII/snmp_mib_5_5.h,   
+      agent/mibgroup/snmpv3/snmpMPDStats_5_5.c,   
+      agent/mibgroup/snmpv3/snmpMPDStats_5_5.h,   
+      agent/mibgroup/snmpv3/usmStats_5_5.c,   
+      agent/mibgroup/snmpv3/usmStats_5_5.h,   
+      agent/mibgroup/target/target_counters_5_5.c,   
+      agent/mibgroup/target/target_counters_5_5.h:
+
+   update for new path to snmp_get_statistics
+
+2010-01-25 16:03  hardaker
+
+   * include/net-snmp/library/snmp_api.h:
+
+   use *current* copy of the MIB when generating stats
+
+2010-01-25 16:01  rstory
+
+   *  agent/helpers/snmp_get_statistic.c,   
+      agent/mibgroup/utilities/snmp_get_statistic.c,   
+      agent/mibgroup/utilities/snmp_get_statistic.h,   
+      include/net-snmp/agent/all_helpers.h,   
+      include/net-snmp/agent/snmp_get_statistic.h:
+
+   move snmp_get_statistic helper to helpers dir; update all_helpers
+   header
+
+2010-01-25 14:34  bvassche
+
+   * apps/agentxtrap.c:
+
+   Replaced explicit declarations of optind, optopt and optarg by
+   #include <unistd.h> because explicitly declaring these variables
+   is not compatible with Cygwin.
+
+2010-01-25 14:25  bvassche
+
+   * snmplib/snmpTCPIPv6Domain.c, snmplib/snmpUDPIPv6Domain.c:
+
+   NEWS: Cygwin: IPv6 is only supported under Cygwin 1.7 or later.
+   The old implementation of IPv6 support in Net-SNMP under Cygwin
+   involved a strange mixture of Cygwin and Winsock2 socket calls,
+   which was too hard to maintain.
+   NEWS: Cygwin: builds again with IPv6 support enabled
+   (--enable-ipv6). At least Net-SNMP 5.5 doesn't build under Cygwin
+   with IPv6 support enabled. The configure script reported
+   "checking ipv6 stack type ... result: "unknown, no" ... error:
+   IPv6 transports not available if IPv6 support is not enabled".
+
+2010-01-25 14:13  bvassche
+
+   * snmplib/inet_ntop.c, snmplib/inet_pton.c:
+
+   Added missing #include <string.h>.
+
+2010-01-25 14:10  bvassche
+
+   * configure, configure.d/config_project_ipv6_types:
+
+   Added configure test for the IPv6 stack included in Cygwin
+   version 1.7.
+   IPv6 support is one of the new features of Cygwin 1.7. For more
+   information,
+   see also http://cygwin.com/cygwin-ug-net/ov-new1.7.html.
+
+2010-01-25 12:40  bvassche
+
+   *  configure, configure.d/config_os_headers,   
+      configure.d/config_os_libs:
+
+   CHANGES: Cygwin: the message "configure: WARNING: winsock.h:
+   present but cannot be compiled" does no longer appear when
+   running the configure script.
+   Follow-up for r18050: re-enabled libiphlpapi and iphlpapi.h tests
+   for non-MinGW platforms since the Cygwin build needs these.
+
+2010-01-25 07:28  magfr
+
+   *  configure, configure.d/config_os_functions, snmplib/inet_ntop.c,  
+       snmplib/inet_pton.c:
+
+   CHANGES: building: Use autoconf to decide if inet_ntop.c and
+   inet_pton.c are to be compiled.
+
+2010-01-25 07:09  bvassche
+
+   * configure, configure.d/config_os_struct_members:
+
+   CHANGES: MinGW: struct sockaddr_in6.sin6_scope_id configure test
+   does now work.
+
+2010-01-25 05:14  hardaker
+
+   * include/net-snmp/library/snmp_api.h:
+
+   TLSTM counter stats
+
+2010-01-25 05:13  hardaker
+
+   * include/net-snmp/library/snmp_api.h:
+
+   add in TSM needed counter definitions
+
+2010-01-25 05:12  hardaker
+
+   * mibs/SNMP-TSM-MIB.txt, mibs/rfclist:
+
+   added the SNMP-TSM-MIB
+
+2010-01-24 14:43  magfr
+
+   * agent/agent_registry.c, include/net-snmp/agent/agent_registry.h:
+
+   NEWS: snmpd: Made subtree_context_cache::context_name a const
+   char*.
+
+2010-01-24 14:27  magfr
+
+   * include/net-snmp/library/tools.h:
+
+   CHANGES: snmplib: Prevent gcc ped-warning for
+   NETSNMP_REMOVE_CONST
+
+2010-01-24 13:27  magfr
+
+   * apps/snmpusm.c:
+
+   CHANGES: snmpusm: Prefer to use a variable of the right type over
+   an ugly cast. Lessen the scope of the variable as well.
+
+2010-01-24 12:59  bvassche
+
+   *  configure, configure.d/config_os_headers,   
+      configure.d/config_os_libs, configure.d/config_os_progs:
+
+   CHANGES: building: Introduced the variable 'with_socklib' in the
+   configure script. This variable is set to "winsock2" for MinGW
+   and to "default" for all other systems. Winsock2 tests are only
+   run if this variable is set to "winsock2" (MinGW).
+
+2010-01-24 12:53  magfr
+
+   * snmplib/snmpUDPIPv6Domain.c:
+
+   Remove superfluous debug logs.
+
+2010-01-24 12:45  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Windows, compiler warning fixes: fixed warnings about char * /
+   unsigned char *
+   mismatches.
+
+2010-01-24 12:44  bvassche
+
+   * snmplib/snmpUDPDomain.c:
+
+   Windows, compiler warning fix: make inet_ntop() and inet_pton()
+   declarations
+   available to the compiler.
+
+2010-01-24 12:44  bvassche
+
+   * snmplib/snmp_logging.c:
+
+   Windows, compiler warning fix: made sure that <ws2tcpip.h> will
+   be included
+   from <net-snmp/types.h> such that the compiler doesn't complain
+   about struct
+   sockaddr_in6 being used before being defined.
+
+2010-01-24 11:42  bvassche
+
+   * man:
+
+   Updated Subversion ignore list.
+
+2010-01-24 11:41  bvassche
+
+   *  agent/agent_index.c, agent/agent_read_config.c,   
+      agent/agent_registry.c, agent/agent_trap.c, agent/mib_modules.c,  
+       agent/mibgroup/Rmon/alarm.c, agent/mibgroup/Rmon/event.c,   
+      agent/mibgroup/Rmon/history.c, agent/mibgroup/Rmon/statistics.c,  
+       agent/mibgroup/agentx/client.c,   
+      agent/mibgroup/agentx/master_admin.c,   
+      agent/mibgroup/agentx/protocol.c,   
+      agent/mibgroup/agentx/subagent.c,   
+      agent/mibgroup/examples/ucdDemoPublic.c,   
+      agent/mibgroup/host/hr_storage.c, agent/mibgroup/mibII/at.c,   
+      agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/mibII/route_headers.h,   
+      agent/mibgroup/mibII/vacm_vars.c, agent/mibgroup/mibincl.h,   
+      agent/mibgroup/smux/smux.c, agent/mibgroup/ucd-snmp/disk.c,   
+      agent/mibgroup/ucd-snmp/errormib.c,   
+      agent/mibgroup/ucd-snmp/extensible.c,   
+      agent/mibgroup/ucd-snmp/file.c,   
+      agent/mibgroup/ucd-snmp/loadave.c,   
+      agent/mibgroup/ucd-snmp/proc.c,   
+      agent/mibgroup/ucd-snmp/versioninfo.c,   
+      agent/mibgroup/util_funcs.c, agent/snmp_agent.c,   
+      agent/snmp_vars.c, agent/snmpd.c, apps/snmpbulkget.c,   
+      apps/snmpbulkwalk.c, apps/snmpdelta.c, apps/snmpdf.c,   
+      apps/snmpget.c, apps/snmpgetnext.c, apps/snmpset.c,   
+      apps/snmpstatus.c, apps/snmptable.c, apps/snmptest.c,   
+      apps/snmptrap.c, apps/snmpusm.c, apps/snmpvacm.c,   
+      apps/snmpwalk.c, include/net-snmp/library/libsnmp.h,   
+      include/net-snmp/net-snmp-includes.h, snmplib/lcd_time.c,   
+      snmplib/mib.c, snmplib/parse.c, snmplib/read_config.c,   
+      snmplib/scapi.c, snmplib/snmp-tc.c, snmplib/snmp_alarm.c,   
+      snmplib/snmp_api.c, snmplib/snmp_auth.c, snmplib/snmp_client.c,   
+      snmplib/snmp_logging.c, snmplib/snmp_parse_args.c,   
+      snmplib/snmpksm.c, snmplib/snmpusm.c, snmplib/snmpv3.c,   
+      snmplib/system.c, snmplib/tools.c, snmplib/vacm.c:
+
+   Cleanup (Windows): removed superfluous #include <sys/timeb.h>
+   directives. This header file
+   has only to be included from snmplib/system.c because of the
+   _ftime() call in that file.
+
+2010-01-24 10:43  bvassche
+
+   * apps/snmpnetstat/inet.c:
+
+   The macro 'C()' now casts its result from unsigned long to
+   unsigned int.
+   This change fixes a compiler warnings about format specification
+   mismatches
+   and fixes a bug (incorrect snmpnetstat output) on big endian
+   systems.
+
+2010-01-24 10:33  bvassche
+
+   * man/config_api.3:
+
+   Follow-up for r17946: removed generated man pages from
+   repository.
+
+2010-01-24 10:31  bvassche
+
+   * include/net-snmp/library/winservice.h, snmplib/winservice.c:
+
+   Moved two declarations of static functions from .h to .c.
+
+2010-01-24 10:21  magfr
+
+   * agent/mibgroup/agent/nsModuleTable.c:
+
+   Remove unnecessary casts.
+
+2010-01-24 10:19  bvassche
+
+   * snmplib/snmpUDPIPv6Domain.c:
+
+   CHANGES: snmplib: builds again when HAVE_GETADDRINFO is not
+   defined.
+
+2010-01-24 10:03  bvassche
+
+   *  configure, configure.d/config_os_functions,   
+      include/net-snmp/net-snmp-config.h.in, snmplib/inet_ntop.c,   
+      snmplib/inet_ntop.h, snmplib/inet_pton.c, snmplib/inet_pton.h,   
+      snmplib/snmpTCPIPv6Domain.c, snmplib/snmpUDPDomain.c,   
+      snmplib/snmpUDPIPv6Domain.c:
+
+   Changes:
+   - Added configure tests for inet_ntop() and inet_pton().
+   - Added header files snmplib/inet_ntop.h and snmplib/inet_pton.h.
+   - Replaced "extern inet_ntop(...);" and "extern inet_pton(...);"
+   by #include "inet_ntop/pton.h".
+   - Converted snmplib/inet_ntop.c and snmplib/inet_pton.c from K&R
+   C to ANSI C.
+   - Replaced the inet_aton() calls that were introduced in r18033
+   in snmplib/snmpUDPDomain.c by inet_pton() calls such that it is
+   again possible to build Net-SNMP on Windows.
+
+2010-01-24 06:08  magfr
+
+   * include/net-snmp/library/snmpDTLSUDPDomain.h:
+
+   CHANGES: snmplib: Remove declarations of functions that don't
+   exist or are declared elsewhere.
+
+2010-01-24 05:48  magfr
+
+   * agent/agent_trap.c:
+
+   NEWS: snmplib: Removed the unused variables warm_start_oid,
+   link_down_oid, link_up_oid, auth_fail_oid and egp_xxx_oid.
+
+2010-01-23 22:06  magfr
+
+   *  testing/tests/T070com2sec, testing/tests/T071com2sec6,   
+      testing/tests/T072com2secunix:
+
+   Better set of SKIPIF/SKIPIFNOTS
+
+2010-01-23 20:31  magfr
+
+   * testing/tests/T071com2sec6, testing/tests/T072com2secunix:
+
+   Be correct in what it is that is tested in the header.
+
+2010-01-23 20:27  magfr
+
+   *  snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c,   
+      snmplib/snmpUnixDomain.c:
+
+   CHANGES: snmplib: Changed the com2sec directives to fail if there
+   are too few arguments. Additionally changed the storage structure
+   to not allocate more space than necessary.
+
+2010-01-23 20:22  magfr
+
+   *  testing/tests/T070com2sec, testing/tests/T071com2sec6,   
+      testing/tests/T072com2secunix:
+
+   new tests checking the error handling of the com2sec* directives
+
+2010-01-23 19:17  bvassche
+
+   *  win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   Follow-up for r18025: builds again with Microsoft Visual Studio.
+
+2010-01-23 17:51  bvassche
+
+   * configure, configure.ac:
+
+   CHANGES: building: OS header detection check is now run before
+   IPv6 stack detection.
+   CHANGES: Solaris: sockaddr_in6.sin6_addr configure test does now
+   work.
+
+2010-01-23 17:42  bvassche
+
+   * snmplib/large_fd_set.c:
+
+   Fixed a Solaris-specific compiler warning.
+
+2010-01-23 17:00  bvassche
+
+   *  configure, configure.d/config_os_headers,   
+      configure.d/config_os_struct_members,   
+      include/net-snmp/net-snmp-config.h.in,   
+      include/net-snmp/system/mingw32.h:
+
+   MinGW: added configure test for <sys/timeb.h> and also for struct
+   timezone.
+
+2010-01-23 16:32  bvassche
+
+   *  include/net-snmp/library/snmpTCPIPv6Domain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h,   
+      snmplib/snmpUDPIPv6Domain.c:
+
+   MinGW: made sure that the IPv6-related datatypes are available
+   before being used.
+
+2010-01-23 16:30  bvassche
+
+   * include/net-snmp/net-snmp-config.h.in:
+
+   Added #undef HAVE_WINDOWS_H.
+
+2010-01-23 16:28  bvassche
+
+   * include/net-snmp/types.h:
+
+   MinGW: made gettimeofday() declaration available for the
+   compiler.
+
+2010-01-23 16:27  bvassche
+
+   * snmplib/snmp_api.c:
+
+   MinGW: made gettimeofday() declaration available for the
+   compiler.
+
+2010-01-23 16:26  bvassche
+
+   * snmplib/inet_pton.c:
+
+   Made sure that the compiler does not complain about a missing
+   prototype for isdigit().
+
+2010-01-23 16:24  bvassche
+
+   * configure, configure.d/config_os_headers:
+
+   MinGW: iphlpapi.h configure test does now work.
+
+2010-01-23 15:10  bvassche
+
+   * configure, configure.d/config_project_ipv6_types:
+
+   Renamed the Winsock2 IPv6 stack from 'mingw' into 'winsock2'.
+
+2010-01-23 15:07  bvassche
+
+   *  agent/mibgroup/mibII/at.c, agent/mibgroup/mibII/icmp.c,   
+      agent/mibgroup/mibII/interfaces.c, agent/mibgroup/mibII/ip.c,   
+      agent/mibgroup/mibII/ipAddr.c,   
+      agent/mibgroup/mibII/route_write.c, agent/mibgroup/mibII/tcp.c,   
+      agent/mibgroup/mibII/tcpTable.c, agent/mibgroup/mibII/udp.c,   
+      agent/mibgroup/mibII/udpTable.c,   
+      agent/mibgroup/mibII/var_route.c, agent/snmpd.c,   
+      apps/snmpnetstat/inet.c, apps/snmpnetstat/inet6.c,   
+      apps/snmpnetstat/winstub.h, configure,   
+      configure.d/config_os_headers,   
+      include/net-snmp/net-snmp-config.h.in, include/net-snmp/types.h,  
+       snmplib/inet_ntop.c, snmplib/inet_pton.c,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpSSHDomain.c,   
+      snmplib/snmpTCPDomain.c, snmplib/snmpTCPIPv6Domain.c,   
+      snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   Improved portability between the supported Win32 compilation
+   environments as follows:
+   - Made sure that the <winsock2.h> and <ws2tcpip.h> header files
+   are only included from <net-snmp/types.h>.
+   - Added configure check for <iphlpapi.h>.
+   - Replaced several WIN32 / cygwin tests by a HAVE_IPHLPAPI_H
+   test.
+   - Documented that win32/net-snmp/net-snmp-config.h is only used
+   for the MSVC build.
+
+2010-01-22 16:46  bvassche
+
+   * snmplib/tools.c:
+
+   Follow-up for r17910: builds again with Microsoft Visual Studio
+   6.
+
+2010-01-22 16:41  bvassche
+
+   * agent/mibgroup/winExtDLL.c, win32/MgmtApi-winExtDLL.h:
+
+   Follow up for r18016: builds again with Microsoft Visual Studio.
+
+2010-01-22 14:13  bvassche
+
+   * configure, configure.d/config_os_libs:
+
+   Follow-up for r18016: made MinGW libiphlpapi check more robust.
+
+2010-01-22 13:32  bvassche
+
+   *  README.win32, aclocal.m4, agent/agent_index.c,   
+      agent/agent_read_config.c, agent/agent_registry.c,   
+      agent/agent_trap.c, agent/mib_modules.c,   
+      agent/mibgroup/agentx/client.c, agent/mibgroup/agentx/master.c,   
+      agent/mibgroup/agentx/master_admin.c,   
+      agent/mibgroup/agentx/protocol.c,   
+      agent/mibgroup/agentx/subagent.c,   
+      agent/mibgroup/disman/schedule/schedCore.c,   
+      agent/mibgroup/examples/ucdDemoPublic.c,   
+      agent/mibgroup/header_complex.c, agent/mibgroup/host_res.h,   
+      agent/mibgroup/ip-forward-mib/data_access/route_ioctl.c,   
+      agent/mibgroup/mibII/at.c, agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/mibII/ipAddr.c,   
+      agent/mibgroup/mibII/mibII_common.h,   
+      agent/mibgroup/mibII/route_headers.h,   
+      agent/mibgroup/mibII/route_write.c,   
+      agent/mibgroup/mibII/system_mib.c,   
+      agent/mibgroup/mibII/vacm_conf.c,   
+      agent/mibgroup/mibII/vacm_vars.c,   
+      agent/mibgroup/notification/snmpNotifyFilterProfileTable.c,   
+      agent/mibgroup/notification/snmpNotifyTable.c,   
+      agent/mibgroup/smux/smux.c, agent/mibgroup/snmpv3/snmpEngine.c,   
+      agent/mibgroup/snmpv3/snmpMPDStats.c,   
+      agent/mibgroup/snmpv3/usmStats.c,   
+      agent/mibgroup/snmpv3/usmUser.c, agent/mibgroup/struct.h,   
+      agent/mibgroup/target/snmpTargetAddrEntry.c,   
+      agent/mibgroup/target/snmpTargetParamsEntry.c,   
+      agent/mibgroup/target/target.c, agent/mibgroup/ucd-snmp/disk.c,   
+      agent/mibgroup/ucd-snmp/dlmod.c,   
+      agent/mibgroup/ucd-snmp/errormib.c,   
+      agent/mibgroup/ucd-snmp/extensible.c,   
+      agent/mibgroup/ucd-snmp/file.c,   
+      agent/mibgroup/ucd-snmp/loadave.c,   
+      agent/mibgroup/ucd-snmp/pass.c,   
+      agent/mibgroup/ucd-snmp/pass_persist.c,   
+      agent/mibgroup/ucd-snmp/proc.c, agent/mibgroup/ucd-snmp/proxy.c,  
+       agent/mibgroup/ucd-snmp/versioninfo.c,   
+      agent/mibgroup/util_funcs.c, agent/mibgroup/winExtDLL.c,   
+      agent/mibgroup/winExtDLL.h, agent/snmp_agent.c,   
+      agent/snmp_vars.c, agent/snmpd.c, apps/encode_keychange.c,   
+      apps/snmpbulkget.c, apps/snmpbulkwalk.c, apps/snmpdelta.c,   
+      apps/snmpdf.c, apps/snmpget.c, apps/snmpgetnext.c,   
+      apps/snmpnetstat/winstub.c, apps/snmpset.c, apps/snmpstatus.c,   
+      apps/snmptable.c, apps/snmptest.c, apps/snmptranslate.c,   
+      apps/snmptrap.c, apps/snmptrapd.c, apps/snmptrapd_auth.c,   
+      apps/snmptrapd_handlers.c, apps/snmptrapd_log.c,   
+      apps/snmptrapd_sql.c, apps/snmpusm.c, apps/snmpvacm.c,   
+      apps/snmpwalk.c, configure, configure.d/config_os_functions,   
+      configure.d/config_os_headers, configure.d/config_os_libs,   
+      configure.d/config_os_struct_members,   
+      configure.d/config_project_ipv6_types,   
+      include/net-snmp/library/large_fd_set.h,   
+      include/net-snmp/library/libsnmp.h,   
+      include/net-snmp/net-snmp-config.h.in,   
+      include/net-snmp/system/mingw32.h, include/net-snmp/types.h,   
+      snmplib/asn1.c, snmplib/callback.c, snmplib/default_store.c,   
+      snmplib/int64.c, snmplib/keytools.c, snmplib/large_fd_set.c,   
+      snmplib/lcd_time.c, snmplib/md5.c, snmplib/mib.c,   
+      snmplib/parse.c, snmplib/read_config.c, snmplib/scapi.c,   
+      snmplib/snmp.c, snmplib/snmp_alarm.c, snmplib/snmp_api.c,   
+      snmplib/snmp_auth.c, snmplib/snmp_client.c, snmplib/snmp_debug.c, 
+        snmplib/snmp_logging.c, snmplib/snmp_parse_args.c,   
+      snmplib/snmpksm.c, snmplib/snmpusm.c, snmplib/snmpv3.c,   
+      snmplib/system.c, snmplib/tools.c, snmplib/vacm.c,   
+      snmplib/winpipe.c, win32/Snmp-winExtDLL.h,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   NEWS: MinGW: winExtDLL compiles now under MinGW.
+   CHANGES: MinGW: building Net-SNMP works again.
+   
+   Detailed overview:
+   * Changes in the configure script:
+
+   - socket() library check passes again on MinGW.
+   - Added library checks for libws2_32, libregex and libsnmpapi.
+   - Added check for the winsock2.h and ws2tcpip.h header files.
+   - Added check for the chown() and localtime_r() functions.
+   - sockaddr_in6.sin6_scope_id check does now work on MinGW.
+   - Added IPv6 stack type called "mingw".
+   * Source code changes:
+
+   - Include <winsock2.h> from <net-snmp/types.h> instead of
+   <winsock.h>
+   under MinGW such that IPv6 support is available.
+   - Moved #include <winsock.h> from .c files to <net-snmp/types.h>.
+   - Added a copy of the MinGW header file <snmp.h> (which is not
+   copyrighted)
+   as win32/Snmp-winExtDLL.h.
+   - agent: only call chown() when available (HAVE_CHOWN).
+   * Documentation changes: updated README.win32.
+
+
+2010-01-22 08:34  magfr
+
+   * snmplib/read_config.c:
+
+   CHANGES: snmplib: Do not cast from char* to char*
+
+2010-01-22 00:39  hardaker
+
+   * COPYING:
+
+   Copyright file update for SPARTA, Inc.
+
+2010-01-22 00:22  hardaker
+
+   * snmplib/snmptsm.c:
+
+   add proper prefixes in TSM for SSH, DTLS, etc, based on the
+   domain
+
+2010-01-22 00:20  hardaker
+
+   * dist/patme:
+
+   added 5.5 branch
+
+2010-01-22 00:20  hardaker
+
+   * dist/makerelease.xml:
+
+   minor echo output change
+
+2010-01-21 20:51  rstory
+
+   * snmplib/snmp_api.c:
+
+   move comment next to code it is talking about; No code change
+
+2010-01-21 14:55  jsafranek
+
+   * agent/mibgroup/ip-mib/data_access/ipaddress_linux.c:
+
+   CHANGES: PATCH: 2926374: from Ed Swierk: fixed reading of
+   ipAddressTable from /proc/net/if_inet6 on Linux
+   
+   The kernel might provide longer fields, especially on 64-bit
+   systems.
+
+2010-01-20 12:42  bvassche
+
+   * PORTING, local/snmpcheck.def:
+
+   Fixed typo: replaced 'necissary' by 'necessary'.
+
+2010-01-20 08:53  jsafranek
+
+   * man/snmpnetstat.1.def:
+
+   Fix minor typo in man page, it's snmpnetstat -Cp, not -CP.
+
+2010-01-14 12:34  jsafranek
+
+   * 
+      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c,
+        
+      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c:
+
+   CHANGES: fixed memory leak in RMON-MIB and ETHERLIKE-MIB when
+   there are multiple aliases of an network interface
+   Rationale: the aliased interfaces have the same ifIndex ->
+   CONTAINER_INSERT fails, but the rejected entry was not freed.
+
+2010-01-13 11:21  jsafranek
+
+   * agent/mibgroup/if-mib/data_access/interface_linux.c:
+
+   CHANGES: snmpd: fix memory leak in ipAddressPrefixTable
+   - net_snmp_search_update_prefix_info returns different code, when
+   the entry was not inserted to list and can be freed.
+
+2010-01-12 00:52  tanders
+
+   * configure, configure.d/config_os_libs:
+
+   CHANGES: build: run rpm configure checks for hr_swinst rewrite
+   (rpm
+   version only)
+
+2010-01-11 23:58  tanders
+
+   * apps/Makefile.in:
+
+   add PERLLDOPTS_FOR_APPS to agentxtrap link line (fixes
+   "libperl.so not
+   found" errors)
+
+2010-01-11 00:11  tanders
+
+   *  testing/tests/T053agentv1trap, testing/tests/T054agentv2ctrap,   
+      testing/tests/T055agentv1mintrap,   
+      testing/tests/T056agentv2cmintrap, testing/tests/T113agentxtrap,  
+       testing/tests/T114agentxagentxtrap:
+
+   get rid of using deprecated syntax for trap/inform sinks
+
+2010-01-08 08:42  bvassche
+
+   * snmplib/snmp_alarm.c, snmplib/snmp_api.c:
+
+   CHANGES: snmplib: obsoleted NETSNMP_DS_LIB_ALARM_DONT_USE_SIG.
+   From now on using SIGALRM to trigger Net-SNMP alarm handlers is
+   no longer supported.
+   
+   Motivation: as known libnetsnmp supports time-based alarms via
+   the functions
+   snmp_alarm_register(), run_alarms() and other functions. Two
+   different ways to
+   trigger the function run_alarms() are supported inside
+   libnetsnmp:
+   1. By making sure that the timeout argument of select() is small
+   enough such
+   that select() returns before the next alarm must be handled (when
+   the
+   variable NETSNMP_DS_LIB_ALARM_DONT_USE_SIG is set to one, which
+   is the
+   default).
+   2. By making sure that the kernel fires SIGALRM at the time when
+   run_alarms()
+   should be called (when the variable
+   NETSNMP_DS_LIB_ALARM_DONT_USE_SIG is set
+   to zero, which has to be configured explicitly).
+   
+   The following issues are associated with the second approach:
+   1. Alarm functions are used inside Net-SNMP to e.g. refresh
+   cached table
+   contents. As far as I can see there is nothing in the Net-SNMP
+   source code
+   that prevents the following from happening: a table refresh
+   triggered via
+   SIGALRM while a row is being removed from a cached table. This
+   can result
+   in dangling pointer dereferences and even a crash.
+   2. POSIX restricts signal handlers to calling functions that are
+   either reentrant
+   or non-interruptible
+   (http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html#tag_02_04).
+   Standard I/O functions like printf() and fprintf() are neither
+   reentrant nor
+   non-interruptible. run_alarms() is called from inside a signal
+   handler, which
+   means that this restriction applies to the function run_alarms()
+   itself and
+   all functions called by it (which includes the alarm callback
+   functions).
+   Or: e.g. snmp_log() and its callers must not be called from
+   inside run_alarms()
+   when this function is invoked from inside a signal handler. This
+   is a severe
+   restriction, and one that is hard to work with.
+   3. Not all software developers know how to make sure that signal
+   delivery works
+   correctly in a multithreaded context. POSIX does not guarantee to
+   which thread
+   a signal like SIGALRM will be delivered, unless that signal has
+   been blocked
+   before thread creation and is unblocked after thread creation
+   (see also
+   http://www.opengroup.org/onlinepubs/009695399/functions/pthread_sigmask.html).
+   This is relevant for the Net-SNMP project not only because a
+   worker thread is
+   created inside
+   agent/mibgroup/if-mib/data_access/interface_linux.c but also
+   because libnetsnmp is often used inside multithreaded software.
+   Currently no
+   attempt is made to make sure that SIGALRM is processed by the
+   Net-SNMP event
+   processing loop thread. If SIGALRM is processed by another
+   thread, this will
+   result in one or more data races.
+   
+   Because all the difficulties associated with processing alarms
+   from inside a
+   signal handler function, and because fixing these would require
+   more effort than
+   it is worth, NETSNMP_DS_LIB_ALARM_DONT_USE_SIG has been
+   deprecated and from now
+   on approach (1) is the only supported approach to trigger alarm
+   handlers.
+
+2010-01-07 19:42  hardaker
+
+   * agent/mibgroup/hardware/cpu/cpu_sysctl.c:
+
+   Patch from Stephen Hemminger to fix a minor memleak in cpu
+   sysctrl fetching
+
+2010-01-07 16:21  bvassche
+
+   *  include/net-snmp/library/read_config.h, snmplib/read_config.c,   
+      snmplib/snmpusm.c, snmplib/vacm.c:
+
+   Removed read_config_read_ascii_string(), and made sure that
+   read_config_read_octet_string() '\0'-terminates the output buffer
+   in all cases.
+   Updated documentation and unit tests.
+
+2010-01-07 14:41  bvassche
+
+   * snmplib/snmpusm.c:
+
+   Removed three superfluous casts because these triggered a
+   compiler warning
+   when compiled with MSVC.
+
+2010-01-07 13:28  bvassche
+
+   * snmplib/read_config.c:
+
+   Reverted the read_config_read_octet_string() changes from r17992
+   because these
+   caused the following Valgrind complaint during snmpd startup:
+   
+   ==25201== Conditional jump or move depends on uninitialised
+   value(s)
+   ==25201== at 0x4047B14: netsnmp_send_traps (agent_trap.c:798)
+   ==25201== by 0x4048128: send_enterprise_trap_vars
+   (agent_trap.c:853)
+   ==25201== by 0x404819D: send_trap_vars (agent_trap.c:963)
+   ==25201== by 0x404825B: send_easy_trap (agent_trap.c:1011)
+   ==25201== by 0x804B5D2: main (snmpd.c:394)
+
+2010-01-07 12:30  bvassche
+
+   * 
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c:
+
+   Fixed a format specification mismatch.
+
+2010-01-07 12:19  bvassche
+
+   * include/net-snmp/agent/sysORTable.h:
+
+   Depending on the context, assigning a char * pointer to
+   sysORTable::OR_descr does or does not transfer
+   ownership. So whether OR_descr is declared as char * or as const
+   char *, there will always be at
+   least one statement on which the compiler complains about a char
+   *  / const char * mismatch. The only    solution is to cast away
+      const where appropriate to make sure    that the compiler does not
+      complain,    as implemented in this patch.  2010-01-07 11:46 
+      bvassche
+
+
+   * snmplib/snmpusm.c:
+
+   usm_save_user(): when writing user->name and user->secName, only
+   write the ASCII data and not the
+   terminating '\0'. Since both items are read by calling
+   read_config_read_ascii_string(), writing
+   the terminating '\0' is not necessary to guarantee that the data
+   read back is terminated properly.
+
+2010-01-07 09:13  bvassche
+
+   * snmplib/read_config.c:
+
+   Changed the behavior of read_config_read_octet_string(): until
+   now this
+   function terminated the output buffer in some cases with '\0'
+   (when the
+   input was in the format 0x... and a buffer overflow occurred and
+   also
+   when the input was in ASCII format, but not when the input was in
+   format
+   0x... and no buffer overflow occurred). Changed this such that
+   this
+   function does no longer terminate the input buffer with '\0'.
+   This
+   change was possible because inside the Net-SNMP project all
+   callers that
+   needed a '\0' terminated string have been converted to use
+   read_config_read_ascii_string() instead.
+
+2010-01-06 17:52  bvassche
+
+   *  agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/mibII/ip.c, agent/mibgroup/mibII/snmp_mib.c,   
+      agent/mibgroup/mibII/snmp_mib_5_5.c,   
+      agent/mibgroup/mibII/sysORTable.c,   
+      agent/mibgroup/mibII/system_mib.c, agent/mibgroup/mibII/tcp.c,   
+      agent/mibgroup/mibII/udp.c, agent/mibgroup/mibII/vacm_vars.c,   
+      agent/mibgroup/snmpv3/snmpEngine.c,   
+      agent/mibgroup/snmpv3/snmpMPDStats.c,   
+      agent/mibgroup/snmpv3/snmpMPDStats_5_5.c,   
+      agent/mibgroup/snmpv3/usmStats.c,   
+      agent/mibgroup/snmpv3/usmStats_5_5.c,   
+      agent/mibgroup/tunnel/tunnel.c:
+
+   Reverted r17968 and r17972.
+
+2010-01-06 15:40  bvassche
+
+   *  agent/mibgroup/disman/event/mteTriggerConf.c,   
+      agent/mibgroup/if-mib/data_access/interface.c,   
+      agent/mibgroup/mibII/vacm_conf.c:
+
+   Fixed more compiler warnings related to the use of the const
+   keyword.
+
+2010-01-06 15:38  bvassche
+
+   * agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c:
+
+   Fixed a format specification mismatch.
+
+2010-01-06 15:36  bvassche
+
+   * include/net-snmp/library/snmpusm.h:
+
+   Changed argument type from char * into const char *. Should have
+   been included in r17975.
+
+2010-01-06 15:33  bvassche
+
+   *  agent/mibgroup/agentx/master_admin.c,   
+      agent/mibgroup/disman/schedule/schedTable.c,   
+      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c,   
+      agent/mibgroup/mibII/ipv6.c,   
+      agent/mibgroup/notification/snmpNotifyTable.c,   
+      agent/mibgroup/utilities/override.c:
+
+   Fixed several compiler warnings about char * / u_char *
+   mismatches.
+
+2010-01-06 15:31  bvassche
+
+   *  agent/agent_read_config.c,   
+      include/net-snmp/agent/agent_read_config.h,   
+      include/net-snmp/config_api.h, snmplib/read_config.c:
+
+   Added the functions register_const_config_handler() and
+   snmpd_register_const_config_handler(), which
+   accept a parser function that does not modify the string that it
+   parses. Using these functions results
+   in easier to read code than using the non-const handler
+   registration functions and casting the parser
+   function explicitly from (void(*)(const char*, const char*)) to
+   (void(*)(const char*, char*)).
+
+2010-01-06 15:27  bvassche
+
+   * snmplib/snmpusm.c:
+
+   Fixed a compiler warning about discarding the const qualifier.
+
+2010-01-06 14:48  bvassche
+
+   * include/net-snmp/library/read_config.h, snmplib/read_config.c:
+
+   Added read_config_read_objid_const().
+
+2010-01-06 14:42  bvassche
+
+   * agent/mibgroup/tunnel/tunnel.c:
+
+   Duplicated the second argument of REGISTER_SYSOR_TABLE() /
+   REGISTER_SYSOR_ENTRY()
+   since that argument is freed while unregistering such an entry.
+   Not sure whether
+   this could actually trigger a call of free() with a constant
+   string as argument
+   and I'm neither sure about whether or not this could have
+   triggered a crash.
+
+2010-01-06 14:34  bvassche
+
+   * include/net-snmp/library/vacm.h, snmplib/vacm.c:
+
+   For those VACM functions that do not modify the strings passed as
+   arguments,
+   changed the argument type from char * to const char *.
+
+2010-01-06 14:27  bvassche
+
+   * snmplib/snmp_logging.c:
+
+   Fixed a compiler warning about discarding the const qualifier.
+
+2010-01-06 14:26  bvassche
+
+   * agent/mibgroup/sctp-mib/sctpScalars_common.c:
+
+   Removed an unused variable.
+
+2010-01-06 14:14  bvassche
+
+   *  agent/mibgroup/mibII/icmp.c, agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/mibII/ip.c, agent/mibgroup/mibII/snmp_mib.c,   
+      agent/mibgroup/mibII/snmp_mib_5_5.c,   
+      agent/mibgroup/mibII/sysORTable.c,   
+      agent/mibgroup/mibII/system_mib.c, agent/mibgroup/mibII/tcp.c,   
+      agent/mibgroup/mibII/udp.c, agent/mibgroup/mibII/vacm_vars.c,   
+      agent/mibgroup/snmpv3/snmpEngine.c,   
+      agent/mibgroup/snmpv3/snmpMPDStats.c,   
+      agent/mibgroup/snmpv3/snmpMPDStats_5_5.c,   
+      agent/mibgroup/snmpv3/usmStats.c,   
+      agent/mibgroup/snmpv3/usmStats_5_5.c:
+
+   Duplicated the second argument of REGISTER_SYSOR_TABLE() /
+   REGISTER_SYSOR_ENTRY()
+   since that argument is freed while unregistering such an entry.
+   Not sure whether
+   this could actually trigger a call of free() with a constant
+   string as argument
+   and I'm neither sure about whether or not this could have
+   triggered a crash.
+
+2010-01-06 14:08  bvassche
+
+   *  agent/mibgroup/disman/event/mteTriggerConf.c,   
+      agent/mibgroup/disman/event/mteTriggerConf.h:
+
+   Fixed several compiler warnings about discarding the const
+   qualifier.
+
+2010-01-06 14:06  bvassche
+
+   * agent/helpers/table.c, agent/helpers/table_dataset.c:
+
+   Fixed several compiler warnings about char * / u_char *
+   mismatches.
+
+2010-01-06 14:04  bvassche
+
+   * include/net-snmp/library/read_config.h, snmplib/read_config.c:
+
+   Changes:
+   - Added new functions skip_white_const(), skip_not_white_const(),
+   skip_token_const(), copy_nword_const() and
+   read_config_read_octet_string_const().
+   - Changed return type of read_config_read_ascii_string() from
+   char * to
+   const char *. Note: this does not affect backwards compatibility
+   since this
+   function has not yet been included in any release.
+   - Fixed documentation of read_config_read_octet_string() and
+   read_config_read_ascii_string().
+   - Reduced number of cast-away-const constructs in read_config.c.
+
+2010-01-06 13:35  bvassche
+
+   * include/net-snmp/library/tools.h:
+
+   Refined the implementation of the macro NETSNMP_REMOVE_CONST():
+   when using
+   the gcc compiler, it is now verified whether the types (const t)
+   and typeof(e)
+   are compatible, where t is the first argument and e the second
+   argument of
+   this macro.
+
+2010-01-06 13:33  jsafranek
+
+   * agent/mibgroup/mibII/at.c, agent/mibgroup/mibII/at.h:
+
+   Add support of network interfaces with HW address bigger than 6
+   bytes to atTable. Some HW, like InfiniBand, uses HW addresses
+   with 9 and more bytes.
+
+2010-01-06 12:45  dts12
+
+   * agent/mibgroup/hardware/cpu/cpu_kstat.c:
+
+   CHANGES: snmpd: BUGS: 2924140: Fix termination of CPU/FPU types
+
+2010-01-06 12:33  dts12
+
+   * snmplib/snmpUnixDomain.c:
+
+   CHANGES: snmplib: BUGS: 2922390: Fix test for missing contextName
+   parameter
+
+2010-01-06 11:57  bvassche
+
+   *  agent/snmp_perl.c, include/net-snmp/library/tools.h,   
+      snmplib/container.c, snmplib/container_binary_array.c,   
+      snmplib/container_list_ssll.c, snmplib/parse.c,   
+      snmplib/snmp_service.c:
+
+   Changes:
+   - Introduced a new macro NETSNMP_REMOVE_CONST() that allows to
+   cast
+   away constness without that gcc -Wcast-qual reports a warning.
+   - Made casting away constness explicit by introducing the
+   NETSNMP_REMOVE_CONST() macro. This suppresses the warning
+   gcc -Wcast-qual printed for these statements.
+
+2010-01-06 11:46  bvassche
+
+   * agent/mibgroup/tunnel/tunnel.c, snmplib/snmpUDPIPv6Domain.c:
+
+   Fixed compiler warnings about discarding the const qualifier.
+
+2010-01-06 09:14  magfr
+
+   *  agent/mibgroup/mibII/icmp.c, agent/mibgroup/smux/smux.c,   
+      agent/mibgroup/target/snmpTargetAddrEntry.c,   
+      agent/mibgroup/target/snmpTargetParamsEntry.c,   
+      agent/mibgroup/ucd-snmp/dlmod.c, agent/snmp_agent.c,   
+      apps/agentxtrap.c, snmplib/large_fd_set.c, snmplib/snmp_api.c:
+
+   Do not use 0 when referring to NULL.
+
+2010-01-06 08:26  bvassche
+
+   * include/net-snmp/library/system.h, snmplib/system.c:
+
+   Changed argument types of calculate_time_diff() and
+   calculate_sectime_diff()
+   from struct timeval * to const struct timeval *. Note: this does
+   not affect
+   backwards compatibility.
+
+2010-01-06 08:23  bvassche
+
+   * agent/mibgroup/ucd-snmp/diskio.c:
+
+   Changes (no functionality has been modified):
+   - Removed diskio_parse_config() declaration because that function
+   is neither called nor defined in the source file diskio.c.
+   - Added declaration for getstats() such that gcc does not
+   complain about a missing declaration.
+   - Linux: changed visibility of getstats() from global to static
+   for consistency with the BSD and Darwin implementations of
+   getstats().
+
+2010-01-06 08:00  bvassche
+
+   *  agent/agent_trap.c, agent/mibgroup/agentx/client.c,   
+      agent/mibgroup/agentx/protocol.c,   
+      agent/mibgroup/agentx/subagent.c,   
+      agent/mibgroup/utilities/iquery.c:
+
+   Fixed compiler warnings about char * / u_char * mismatches.
+
+2010-01-06 02:18  magfr
+
+   *  apps/Makefile.in, configure, configure.d/config_modules_agent,   
+      man/Makefile.in, testing/tests/T114agentxagentxtrap:
+
+   CHANGES: apps: Only build agentxtrap if the agentx libraries are
+   built. Add a test case for agentxtrap.
+   
+   The enablement/disablement is inspiered by automake conditionals
+
+2010-01-06 01:59  magfr
+
+   * agent/mibgroup/agentx/client.c:
+
+   Remove unused variable starttime.
+
+2010-01-05 22:54  magfr
+
+   *  agent/mibgroup/ucd-snmp/logmatch.c,   
+      agent/mibgroup/ucd-snmp/logmatch.h:
+
+   CHANGES: Hide most functions and variables in the logmatch
+   module. Cleaned up the header accordingly. Remove the need for
+   forward declarations by reordering the functions.
+
+2010-01-05 22:33  dts12
+
+   * python/netsnmp/client_intf.c:
+
+   CHANGES: python: BUGS: 2919379: Initialise SNMP sessions properly
+   Provided by Diego Billi
+
+2010-01-05 22:20  dts12
+
+   * snmplib/snmpCallbackDomain.c:
+
+   CHANGES: snmplib: BUGS: 2919320: Avoid accessing freed memory
+   Reported by Tomasz Lis
+
+2010-01-05 18:58  dts12
+
+   * agent/mibgroup/ucd-snmp/proc.c:
+
+   CHANGES: snmpd: BUGS: 2914410: Fix crash on empty command lines
+
+2010-01-05 15:31  dts12
+
+   * agent/mibgroup/agentx/protocol.c:
+
+   CHANGES: snmpd: PATCH: 2912584: Fix null OID handling in Agentx
+   on 64bit
+   Patch supplied by Lutz Jaenicke
+
+2010-01-05 10:11  tanders
+
+   * include/net-snmp/system/hpux.h:
+
+   CHANGES: hpux: fix build error on HP-UX 10.20
+
+2010-01-05 08:42  jsafranek
+
+   * man, man/pdu_api.3, man/session_api.3, man/varbind_api.3:
+
+   Remove generated man pages from repository.
+
+2010-01-04 16:44  bvassche
+
+   * snmplib/read_config.c:
+
+   Fixed a past-end-of-buffer read that occurred when an ASCII
+   string was
+   passed as the first argument of read_config_read_octet_string() /
+   read_config_read_ascii_string() and the third argument (*len)
+   equals 0.
+
+2010-01-04 16:41  bvassche
+
+   * snmplib/read_config.c:
+
+   Fixed compiler warnings about casting away 'const'.
+
+2010-01-04 16:27  bvassche
+
+   * snmplib/read_config.c:
+
+   Added unit test for read_config_read_octet_string() and
+   read_config_read_ascii_string().
+
+2010-01-04 10:45  jsafranek
+
+   * snmplib/mib.c:
+
+   Use correct oid length in table indexes.
+
+2010-01-04 08:10  bvassche
+
+   * snmplib/snmp_alarm.c:
+
+   Made sure that snmp_alarm.c can be compiled again with C89
+   compilers: for C89
+   it is required that initializers are constant expressions.
+
+2010-01-03 16:28  magfr
+
+   *  agent/mibgroup/tcp-mib/data_access/tcpConn_common.c,   
+      agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c,   
+      agent/mibgroup/tcp-mib/data_access/tcpConn_solaris2.c:
+
+   Rename netsnmp_arch_tcpconn_delete to
+   netsnmp_arch_tcpconn_entry_delete in order to be consistent with
+   the header file and all the other functions in the module.
+
+2010-01-03 16:26  magfr
+
+   *  agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h,  
+       include/net-snmp/data_access/ip_scalars.h,   
+      include/net-snmp/data_access/systemstats.h:
+
+   Add missing declarations.
+
+2009-12-30 12:49  bvassche
+
+   *  include/net-snmp/library/tools.h,   
+      include/net-snmp/library/types.h:
+
+   Follow-up for r17933: fixed the issue that including the header
+   file
+   <net-snmp/library/types.h> from <net-snmp/library/tools.h>
+   triggers
+   compiler errors during the configure process (complaints about
+   <netsnmp/net-snmp-config.h> not being included before
+   <net-snmp/types.h>).
+   Note: this does not solve the underlying problem that MIB code
+   must not
+   include the header file <net-snmp/types.h> because doing so would
+   trigger a
+   circular dependency during the configure step (MIB code is
+   compiled during
+   the configure step, while the configure step generates
+   <netsnmp/net-snmp-config.h> and <net-snmp/types.h> needs
+   <netsnmp/net-snmp-config.h>).
+
+2009-12-30 11:48  bvassche
+
+   * apps, man:
+
+   Follow-up for r17919: updated Subversion ignore lists.
+
+2009-12-28 18:03  bvassche
+
+   * agent/agent_index.c:
+
+   Fixed a past-end-of-buffer read. Found this by analyzing compiler
+   warnings.
+   Note: the affected function, register_string_index(), isn't
+   called from
+   anywhere inside the Net-SNMP project itself.
+
+2009-12-23 09:49  jsafranek
+
+   *  agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
+      agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.h,   
+      agent/mibgroup/ip-mib/data_access/ipaddress_linux.c:
+
+   Fix invalid read reported by valgrind:
+   Invalid read of size 1
+   memcpy (mc_replace_strmem.c:402)
+   _netsnmp_ioctl_ipaddress_container_load_v4
+   (ipaddress_ioctl.c:240)
+   netsnmp_arch_ipaddress_container_load (ipaddress_linux.c:158)
+   netsnmp_access_ipaddress_container_load (ipaddress_common.c:112)
+   
+   Returning structure with pointers inside is not the best thing to
+   do.
+
+2009-12-22 16:05  bvassche
+
+   *  include/net-snmp/library/read_config.h, snmplib/read_config.c,   
+      snmplib/snmpusm.c, snmplib/vacm.c:
+
+   Fixed several past-end-of-buffer reads.
+
+2009-12-22 12:02  bvassche
+
+   *  agent/mibgroup/Rmon/agutil.c, agent/mibgroup/agentx/client.c,   
+      agent/mibgroup/agentx/master_admin.c,   
+      agent/mibgroup/host/hr_swinst.c,   
+      agent/mibgroup/if-mib/data_access/interface_openbsd.c,   
+      agent/mibgroup/if-mib/data_access/interface_sysctl.c,   
+      agent/mibgroup/mibII/interfaces.c, agent/snmp_agent.c,   
+      agent/snmp_vars.c, include/net-snmp/agent/snmp_agent.h,   
+      include/net-snmp/library/system.h,   
+      include/net-snmp/library/tools.h,   
+      include/net-snmp/library/types.h, man/netsnmp_util.3,   
+      snmplib/system.c, snmplib/tools.c, win32/libsnmp_dll/libsnmp.def, 
+        win32/libsnmp_dll/libsnmp.def.in:
+
+   Reverted the backwards-incompatible changes of r17913:
+   - Restored the definition of the DIFFTIMEVAL() macro.
+   - Restored the definitions of the functions
+   calculate_time_diff(),
+   uatime_ready(), marker_tticks() and timeval_tticks().
+   - starttime is again a global variable instead of a static one.
+   Also implemented the following changes:
+   - Moved the marker_t typedef from net-snmp/library/tools.h to
+   net-snmp/library/types.h.
+   - Added a new typedef, const_marker_t.
+   - For those atime_*() / uatime_*() / *_tticks() functions that do
+   not change
+   their arguments, declared these arguments const_marker_t instead
+   of marker_t.
+   - Renamed netsnmp_get_starttime() and netsnmp_set_starttime() to
+   netsnmp_get_agent_starttime() and netsnmp_set_agent_starttime()
+   respectively. Moved these functions from tools.c to system.c.
+   - Removed the function atime_hsubtract() (was introduced in
+   r17913) and
+   introduced a new function, netsnmp_set_agent_uptime().
+
+2009-12-22 07:59  bvassche
+
+   * snmplib/read_config.c:
+
+   Reverted r17926, which made the string returned by
+   read_config_read_octet_string() zero-terminated. A new patch will
+   follow
+   that fixes the callers of read_config_read_octet_string() that
+   were
+   assuming that read_config_read_octet_string() zero-terminates the
+   string
+   read by this function.
+
+2009-12-21 14:29  jsafranek
+
+   * agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c:
+
+   CHANGES: snmpd: fix crash in IF-MIB and IP-MIB when there are
+   some interfaces with broadcast IP address and some without.
+   
+   Reset the bcastentry in the loop, so it cannot be inserted to the
+   container
+   twice.
+   
+   Without this patch, when an interface without broadcast address
+   is processed,
+   the bcastaddress from previous loop is inserted into the
+   container. This
+   obviously fails and the bcastentry is freed, but the container
+   still contains
+   reference to it -> SIGSEGV.
+
+2009-12-21 13:52  bvassche
+
+   * snmplib/read_config.c:
+
+   Follow-up for r17928: while r17928 fixed a dangling pointer
+   dereference
+   detected by running the Net-SNMP software on Windows, that patch
+   introduced
+   a dangling pointer dereference about which only Valgrind on Linux
+   complained.
+   This follow-up patch fixes both dangling pointer dereferences
+   triggered by
+   parsing the persistentDir keyword.
+
+2009-12-21 13:32  bvassche
+
+   * agent/helpers/table_dataset.c:
+
+   Applied a slightly modified version of patch #2901122. Changes:
+   - New feature: specifying ASN type SNMP_NOSUCHINSTANCE as the
+   third argument
+   of netsnmp_set_row_column() will cause an SNMP GetRequest /
+   GetNextRequest to
+   return the error code noSuchInstance (SNMPv2) or noSuchName
+   (SNMPv1). This
+   makes it possible to have a cached table with one or more
+   "holes".
+   - Performance optimization: do not free() / malloc() the memory
+   for storing
+   the cached value if the value has not been modified.
+   - Performance optimization: do not free() / malloc() the memory
+   for storing
+   the cached value if the length of the value has not been
+   modified.
+   - Performance optimization: if the size of the cached value
+   shrunk, use
+   realloc() instead of free() and malloc().
+
+2009-12-21 12:23  bvassche
+
+   * snmplib/read_config.c:
+
+   Applied a slightly modified version of patch #2912055: make sure
+   that
+   parsing the "persistentDir" keyword in snmp.conf does not trigger
+   a
+   dangling pointer. To my surprise BoundsChecker complained about
+   this
+   (on Windows), but Valgrind did not report this issue (on Linux).
+
+2009-12-21 12:08  bvassche
+
+   * agent/mibgroup/notification-log-mib/notification_log.c:
+
+   Follow-up for r17925 (fix memory leak during startup): while
+   r17925 fixed
+   only the leak triggered from inside the for-loop, this patch does
+   now also
+   fix the leak triggered by the netsnmp_table_dataset_add_row()
+   call near
+   the end of log_notification().
+
+2009-12-21 12:01  bvassche
+
+   * snmplib/read_config.c:
+
+   Applied patch #2912062: make sure that the string returned by
+   read_config_read_octet_string() is properly terminated, such that
+   the
+   callers of this function do not trigger past-end-of-buffer reads.
+   Found
+   this issue via BoundsChecker.
+
+2009-12-21 11:06  bvassche
+
+   * agent/mibgroup/notification-log-mib/notification_log.c:
+
+   Applied patch #2912068, which fixes a memory leak during startup.
+   The
+   function log_notification() adds a row to the table
+   nlmLogVarTable, but
+   this function can be called before that table has been
+   initialized. If
+   that happens, memory is allocated for a row but that memory is
+   never
+   added to the cached table data. The BoundsChecker tool reported
+   this as
+   a "memory leak leaving scope".
+
+2009-12-21 10:54  bvassche
+
+   * README.win32:
+
+   Added the following text to the "Limitations" section of
+   README.win32:
+   "When using winExtDLL, there is an offset of up to one second
+   between the
+   value of the sysUpTime varbind included in the traps generated by
+   SNMP
+   extension DLLs (e.g. linkUp and linkDown) and the value of the
+   sysUpTime
+   varbind included in traps generated by Net-SNMP itself (e.g.
+   coldStart)."
+
+2009-12-21 10:09  bvassche
+
+   *  agent/agent_trap.c, man/netsnmp_agent_trap.3,   
+      snmplib/snmp_alarm.c:
+
+   Spelling fix: replaced all occurrences of 'specifc' by
+   'specific'.
+
+2009-12-21 10:06  bvassche
+
+   * snmplib/snmp_alarm.c:
+
+   Refactoring: eliminated duplicated code by reimplementing
+   snmp_alarm_register() using snmp_alarm_register_hr(). Neither the
+   Net-SNMP API nor the behavior of snmp_alarm_register() has been
+   changed.
+
+2009-12-20 11:10  magfr
+
+   *  apps/Makefile.in, apps/agentxtrap.c, man/Makefile.in,   
+      man/agentxtrap.1.def:
+
+   NEWS: apps: Add command to send AgentX notify requests to a
+   master agent.
+
+2009-12-17 16:44  bvassche
+
+   * win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
+
+   Follow-up for r17917 -- builds again on Windows systems.
+
+2009-12-17 16:03  bvassche
+
+   *  agent/mibgroup/utilities/iquery.c,   
+      include/net-snmp/library/snmp_client.h, snmplib/snmp_client.c:
+
+   Follow-up for r17903 / patch 2911323 "Fix agent lockup when
+   monitoring
+   AgentX-delegated information" (submitted by myself). That patch
+   did not only
+   fix the lockup but also made snmpd print a warning during startup
+   when
+   iquerySecName was not configured. This warning was printed even
+   when no
+   internal queries were performed. This warning is now only printed
+   just before
+   the first internal query is made (during the first call of
+   netsnmp_query_get_default_session() instead of during creation of
+   the internal
+   session).
+
+2009-12-17 13:55  bvassche
+
+   * agent/mibgroup/Rmon/agutil.c:
+
+   RMON MIB source code compiles again -- should have been included
+   in r17913.
+
+2009-12-17 13:18  bvassche
+
+   * agent/mibgroup/Rmon/agutil.c, snmplib/system.c:
+
+   Modified the implementation of calculate_sectime_diff() and
+   AGUTIL_sys_up_time() such that these functions normalize the
+   tv_usec field of
+   struct timeval properly. Note: this source code modification does
+   not affect
+   the return value of the aforementioned two functions.
+
+2009-12-17 13:11  bvassche
+
+   * man/netsnmp_util.3:
+
+   Removed documentation of the DIFFTIMEVAL() macro -- should have
+   been included
+   in r17913.
+
+2009-12-17 13:05  bvassche
+
+   *  agent/agent_trap.c, agent/mibgroup/agentx/client.c,   
+      agent/mibgroup/agentx/master_admin.c,   
+      agent/mibgroup/agentx/subagent.c,   
+      agent/mibgroup/host/hr_swinst.c,   
+      agent/mibgroup/if-mib/data_access/interface_openbsd.c,   
+      agent/mibgroup/if-mib/data_access/interface_sysctl.c,   
+      agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/snmpv3/snmpEngine.c, agent/snmp_agent.c,   
+      agent/snmp_vars.c, include/net-snmp/library/system.h,   
+      include/net-snmp/library/tools.h, man/netsnmp_util.3,   
+      snmplib/snmp_alarm.c, snmplib/system.c, snmplib/tools.c,   
+      win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
+
+   Converted starttime from a global variable into a static variable
+   and applied the following changes:
+   - Added two new macros: NETSNMP_TIMERADD() and
+   NETSNMP_TIMERSUB().
+   - Added three new functions: netsnmp_get_starttime(),
+   netsnmp_set_starttime() and atime_hsubtract().
+   - Replaced gettimeofday() + calculate_time_diff() calls by a call
+   to netsnmp_get_agent_uptime().
+   - Removed the macro DIFFTIMEVAL() because it was not used inside
+   the Net-SNMP project and because it contained a bug.
+   - Removed the functions calculate_time_diff(), uatime_ready(),
+   marker_tticks() and timeval_tticks().
+
+2009-12-17 12:44  bvassche
+
+   *  agent/mibgroup/agentx/master_admin.c,   
+      win32/libsnmp_dll/libsnmp.def, win32/libsnmp_dll/libsnmp.def.in:
+
+   Bug fix: according to RFC 2571 the unit of snmpEngineTime is one
+   second,
+   not one hundredth of a second.
+
+2009-12-17 10:03  dts12
+
+   * man/snmptest.1.def:
+
+   Fix typo.
+
+2009-12-16 12:30  bvassche
+
+   *  snmplib/tools.c, win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   Windows-only bug fixes:
+   - Fixed the strange build errors that occurred when compiling
+   libnetsnmp as a DLL and when either <stdlib.h> or <string.h> was
+   included after <net-snmp-config.h> instead of before.
+   - For debug builds with Microsoft Visual Studio, fixed the
+   mismatches between the _malloc_dbg() call invoked by strdup() and
+   free()-ing strdup()-ed memory by including the <crtdbg.h> header
+   in tools.c and by defining the preprocessor symbol
+   _CRTDBG_MAP_ALLOC. Detected via the memory checker included in
+   Intel Parallel Studio.
+
+2009-12-14 17:23  tanders
+
+   *  perl/agent/agent.xs, snmplib/snmpTCPDomain.c,   
+      snmplib/snmpUDPDomain.c:
+
+   sync definition of netsnmp_udp_addr_pair in Perl with the changes
+   in
+   r17855 and r17908
+
+2009-12-14 13:55  jsafranek
+
+   * snmplib/snmpTCPDomain.c:
+
+   Fix TCP transport broken by rev. 17855 - copies of
+   netsnmp_udp_addr_pair in snmpTCPDomain.c and snmpUDPDomain.c must
+   be the same.
+
+2009-12-11 14:43  hardaker
+
+   * apps/snmpusm.c, man/snmpusm.1.def:
+
+   CHANGES: snmpusm: patch from Martin Bjorklund to add a -Cw option
+   to use createAndWait for agents that are strict about not
+   allowing a row to be set to active until the authentication
+   password has been changed; plus white-space clean up, manual
+   additions and help output modifications by hardaker
+
+2009-12-11 14:35  bvassche
+
+   * agent/mibgroup/if-mib/data_access/interface_linux.c:
+
+   Fixed a compiler warning about a format specifier mismatch.
+
+2009-12-11 14:06  bvassche
+
+   * README.win32, agent/mibgroup/winExtDLL.c:
+
+   winExtDLL bugs fixed:
+   - sysUpTime.0 does now report the correct value.
+   - a linkUp or linkDown trap is now sent after the status of a
+   network interface
+   has changed.
+   - the value of the sysUpTime.0 varbind in linkUp and linkDown
+   traps is now
+   correct.
+
+2009-12-10 15:52  dts12
+
+   * agent/mibgroup/smux/smux.c:
+
+   CHANGES: agent: PATCHES: 2911970: Properly terminate linked list
+   of registrations.
+   Patch provided by Mirko Deckert.
+
+2009-12-10 15:43  dts12
+
+   *  agent/mibgroup/disman/mteTriggerTable.c,   
+      agent/mibgroup/utilities/iquery.c:
+
+   CHANGES: snmpd: PATCHES: 2911323: Fix agent lockup when
+   monitoring AgentX-delegated information
+
+2009-12-10 13:59  bvassche
+
+   * README.win32:
+
+   Changes:
+   - Added information about Microsoft's implementation of
+   hrSystemUptime.0.
+   - Fixed a few typos.
+
+2009-12-10 13:01  bvassche
+
+   * agent/agent_registry.c:
+
+   Added missing newline in a logging statement.
+
+2009-12-10 12:54  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Fixed the following winExtDLL bugs:
+   - Fixed bug in trap forwarding: linkDown traps were sent as
+   warmStart traps
+   and linkUp traps were sent as linkDown traps.
+   - Fixed a memory leak triggered by extension DLL loading.
+   - A debug trace statement is now invoked whenever a serious error
+   has been
+   detected.
+
+2009-12-10 12:37  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   OIDs in debug messages generated by the winExtDLL module are now
+   printed in
+   symbolic form instead of numeric form.
+
+2009-12-10 08:57  bvassche
+
+   * win32/win32sdk.dsw:
+
+   Project dependencies should now really be correct. Should have
+   been included
+   in r17873.
+
+2009-12-10 08:41  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Changes (only source code comments have been changed):
+   - Removed a note that contradicted the instructions in
+   README.win32.
+   - Updated build instructions after the addition of the file
+   win32/Snmp-winExtDLL.h in r17830.
+
+2009-12-10 08:17  bvassche
+
+   * apps/snmpdf.c, apps/snmpstatus.c:
+
+   Made file header comments consistent with the descriptions in the
+   respective man pages.
+
+2009-12-10 03:04  magfr
+
+   * agent/mibgroup/agentx/subagent.c:
+
+   Made sure that agent_sysOR_callback won't trigger a warning when
+   registered as a callback. Change agentx_reopen_sysORTable in
+   order to avoid warnings of const removal.
+
+2009-12-09 15:05  bvassche
+
+   * snmplib/snmp_logging.c:
+
+   - Moved the declaration of the variable 'newline' inside the
+   function
+   log_handler_stdouterr() because this variable is only used by
+   that function.
+   - Documented the purpose of the variable 'newline'.
+   - Bug fix: made sure that the call log_handler_stdouterr() does
+   not trigger an
+   invalid memory access (str[-1]) when an empty string is passed to
+   this function.
+
+2009-12-09 14:37  jsafranek
+
+   *  agent/mibgroup/ip-mib/data_access/arp_linux.c,   
+      include/net-snmp/data_access/arp.h:
+
+   CHANGES: snmpd: Add support of network interfaces with HW address
+   bigger than 6 bytes to ipNetToMediaTable and
+   ipNetToPhysicalTable.
+   Some HW, like InfiniBand, uses HW addresses with 9 and more
+   bytes. Snmpd on Linux was not able to parse /proc/net/arp then
+   and produced ugly 'ioctl 35123 returned -1' to log.
+
+2009-12-09 12:27  bvassche
+
+   * README.win32:
+
+   Added missing -Lo in a command line example.
+
+2009-12-09 12:16  bvassche
+
+   * win32/snmpdsdk/snmpd.dsp:
+
+   Added snmpapi.lib to the linker input list of snmpd.exe.
+   Apparently Visual
+   Studio 2005 and 2008 need this library in the linker input list
+   when linking
+   the exe, while for Visual Studio 6 it is sufficient when this
+   library is
+   present in the linker input list of netsnmpmibs.lib.
+
+2009-12-09 08:45  bvassche
+
+   * README.win32:
+
+   Updated README.win32: because of r17884 and r17873, the build
+   process became simpler.
+
+2009-12-09 08:22  bvassche
+
+   * win32/libsnmp_dll/libsnmp.def.in:
+
+   Export strtoull -- should have been included in r17886.
+
+2009-12-09 08:21  bvassche
+
+   * README.win32:
+
+   Reverted r17700 for README.win32: because of r17886, modifying
+   the
+   strtoull line in win32/libsnmp_dll/libsnmp.def is no longer
+   necessary.
+
+2009-12-09 08:12  bvassche
+
+   *  win32/libsnmp_dll/libsnmp.def, win32/net-snmp/net-snmp-config.h,  
+       win32/net-snmp/net-snmp-config.h.in:
+
+   Windows: switched from _strtoui64() to strtoull() for Microsoft
+   Visual Studio
+   2002 and later because the former is not fully POSIX compliant.
+   The strtoull()
+   unit test produces the following output for _strtoui64() with
+   MSVC 2008:
+   test 14 failed (input "0x"): expected end 1, got end 0
+   test 16 failed (input "0x"): expected end 1, got end 0
+
+2009-12-08 21:54  magfr
+
+   * agent/mibgroup/util_funcs.c, snmplib/system.c:
+
+   CHANGES: snmplib, snmpd: Make sure that a mask is given to open
+   when O_CREAT is specified
+
+2009-12-08 16:20  bvassche
+
+   * win32/win32.dsw:
+
+   Made dependencies between exe's and lib's explicit such that
+   Visual
+   Studio can figure out the proper build order instead of the user
+   having
+   to figure this out.
+
+2009-12-08 15:47  bvassche
+
+   * apps/snmptable.c:
+
+   Builds again on Unix systems (fixed a typo introduced in r17881).
+
+2009-12-08 15:37  bvassche
+
+   * win32/snmpnetstat/snmpnetstat.dsp:
+
+   Added missing #define HAVE_WIN32_PLATFORM_SDK. Without this
+   define the Microsoft
+   Visual Studio compiler complains about a benign redefinition of
+   type socklen_t.
+
+2009-12-08 15:28  bvassche
+
+   *  agent/mibgroup/disman/traceroute/traceRouteCtlTable.c,   
+      agent/snmpd.c, apps/snmptable.c, apps/snmptrapd.c,   
+      include/net-snmp/library/snmp_logging.h, snmplib/snmp_logging.c:
+
+   Cleaned up the code for setting line buffering:
+   - Instead of having calls to setvbuf() in multiple files, there
+   is now one call
+   to setvbuf() from the new function netsnmp_set_filelog. These
+   source files
+   are: snmplib/snmp_logging.c, agent/snmpd.c, apps/snmptrapd.c,
+   apps/snmptable.c
+   and agent\mibgroup\disman\traceroute\traceRouteCtlTable.c.
+   - Using -Lo / -Le does now enable line buffering for stdout /
+   stderr respectively.
+   - Removed code in snmpd.c and snmptrapd.c for setting line
+   buffering on stdout
+   since setting line buffering on stdout is now triggered by the
+   command-line
+   option -Lo.
+   Bugs fixed:
+   - Line buffering mode is now also set for stderr when the
+   command-line option
+   -Le has been specified.
+   - Line buffering mode is now set correctly for stdout on Windows
+   systems
+   (command-line option -Lo).
+
+2009-12-08 12:32  bvassche
+
+   * agent/mibgroup/mibII/icmp.c:
+
+   Fixed a compiler warning about local variables that were defined
+   but
+   not used by only enabling the local variable definitions on the
+   platform that uses these variables (Linux).
+
+2009-12-08 12:26  bvassche
+
+   * agent/mibgroup/ucd-snmp/extensible.c:
+
+   Added #include "mibgroup/util_funcs.h". Fixes a compiler warning.
+
+2009-12-08 12:25  bvassche
+
+   * apps/snmpnetstat/main.c:
+
+   Include the gethostent() / sethostent() declarations before using
+   these
+   functions. Fixes a compiler warning on Windows systems.
+
+2009-12-08 12:11  bvassche
+
+   * apps/snmptrapd_handlers.c:
+
+   Fixed an inconsistency (which is allowed by the ANSI C standard)
+   between
+   function declaration and function definition of
+   netsnmp_add_global_traphandler and
+   netsnmp_add_default_traphandler such
+   that the Microsoft Visual Studio compiler does no longer complain
+   about
+   this.
+
+2009-12-08 12:08  bvassche
+
+   * snmplib/snmp_service.c:
+
+   Fixed a compiler warning: made sure that the compiler does not
+   complain about implicitly casting away constness.
+
+2009-12-08 12:07  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Only compile the winExtDLL source code if the preprocessor macro
+   USING_WINEXTDLL_MODULE has been defined.
+
+2009-12-08 12:03  bvassche
+
+   * win32/libsnmp/libsnmp.dsp:
+
+   Added missing #define HAVE_WIN32_PLATFORM_SDK.
+
+2009-12-08 12:01  bvassche
+
+   * win32/win32sdk.dsw:
+
+   Made dependencies between exe's and lib's explicit such that
+   Visual
+   Studio can figure out the proper build order instead of the user
+   having
+   to figure out the build order.
+
+2009-12-08 09:46  bvassche
+
+   *  win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   Windows / Microsoft Visual Studio: disabled the compiler warning
+   about
+   signed/unsigned mismatches (4018) because this warning does not
+   yield
+   any useful information.
+
+2009-12-08 09:17  bvassche
+
+   * win32/net-snmp/net-snmp-config.h.in:
+
+   Follow-up for r17639 (patch 2780411 -- fix compiler warnings):
+   applied
+   this patch to net-snmp-config.h.in too such that
+   net-snmp-config.h and
+   net-snmp-config.h.in match again.
+
+2009-12-08 08:16  bvassche
+
+   * agent/mibgroup/agentx/subagent.c:
+
+   Made sure that agentx_sysOR_callback() does not trigger a
+   compiler
+   warning when the third argument passed to this function has been
+   declared const.
+
+2009-12-08 08:14  bvassche
+
+   * include/net-snmp/library/system.h:
+
+   Changed the return type of strtoull() from 'unsigned long long'
+   (which
+   is not valid C89) to 'uint64_t' (declared in
+   <net-snmp/net-snmp-config.h>).
+   This change makes the Net-SNMP source code compile again with
+   MSVC 6.0.
+
+2009-12-07 10:46  dts12
+
+   * apps/snmptable.c:
+
+   Tweak missing subidentifier processing to be more type-aware.
+   (An issue with AIX, at least)
+
+2009-12-06 18:38  magfr
+
+   *  snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c,   
+      snmplib/snmpUnixDomain.c:
+
+   CHANGES: Make the lists of com2Sec*Entries static
+
+2009-12-06 18:34  magfr
+
+   *  snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c,   
+      snmplib/snmpUnixDomain.c:
+
+   Make the iterator variable in netsnmp_*_getSecName const
+
+2009-12-06 18:29  magfr
+
+   *  agent/mibgroup/mibII/vacm_conf.c,   
+      include/net-snmp/library/snmpUDPDomain.h,   
+      include/net-snmp/library/snmpUDPIPv6Domain.h,   
+      include/net-snmp/library/snmpUnixDomain.h,   
+      snmplib/snmpUDPDomain.c, snmplib/snmpUDPIPv6Domain.c,   
+      snmplib/snmpUnixDomain.c:
+
+   CHANGES: Change the types of the return values of
+   netsnmp_*_getSecName from char* to const char* since they point
+   into internal structures.
+
+2009-12-05 20:19  tanders
+
+   * include/net-snmp/library/system.h:
+
+   fix declaration of strtoull
+
+2009-12-05 17:42  tanders
+
+   * perl/SNMP/SNMP.xs:
+
+   call netsnmp_read_module instead of read_module to make it
+   compile with
+   NETSNMP_CLEAN_NAMESPACE
+
+2009-12-02 15:39  jsafranek
+
+   *  agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c,   
+      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c,
+         agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable.c,   
+      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.c:
+
+   CHANGES: snmpd: Fixed invalid access to memory in TCP-MIB
+   This partly reverts patch 17719 - the entries *are* used after
+   raw_data container is freed. These entries should be freed when
+   associated rowreq_ctx is freed.
+
+2009-12-02 08:30  jsafranek
+
+   * agent/mibgroup/mibII/udpTable.c:
+
+   CHANGES: snmpd: Fixed udpTable indexes on big-endian 64bit Linux.
+   The index was always '0.0.0.0' instead of real local IP address.
+
+2009-12-01 12:36  dts12
+
+   * include/net-snmp/types.h:
+
+   Update a redundant (and probably inaccurate) comment.
+
+2009-12-01 12:31  dts12
+
+   * agent/helpers/table.c:
+
+   CHANGES: agent: BUGS: 2822360: Fix memory leak when building
+   table OIDs
+
+2009-12-01 12:08  dts12
+
+   * apps/snmptable.c:
+
+   CHANGES: snmptable: BUGS: 2837998: Handle missing instance
+   subidentifiers in results
+
+2009-12-01 11:56  dts12
+
+   * agent/mibgroup/agentx/client.c:
+
+   CHANGES: agent: BUGS: 2841008: Protect against crash following
+   failed AgentX response
+
+2009-12-01 07:34  jsafranek
+
+   *  include/net-snmp/library/snmpUDPDomain.h,   
+      snmplib/snmpDTLSUDPDomain.c, snmplib/snmpUDPDomain.c:
+
+   CHANGES: snmplib: Fix responding to broadcast requests.
+   UDP responses are sent with source IP address which was
+   destination of
+   appropriate requests (implemented in SVN rev. 15215). But if the
+   destination
+   of a request is broadcast IP address, the request was sent with
+   the broadcast
+   address as source. sendmsg() on Linux does not support this and
+   returns error
+   -> response is not sent. In order to send responses from the same
+   interface,
+   interface index of the appropriate interface must be used.
+
+2009-12-01 00:29  magfr
+
+   * agent/mibgroup/disman/schedule/schedCore.c:
+
+   Make it possible to actually compile after 17852.
+
+2009-12-01 00:24  magfr
+
+   * agent/mibgroup/ucd-snmp/proc.c:
+
+   Make it possible to actually compile after 17842.
+
+2009-11-30 16:55  dts12
+
+   * agent/mibgroup/disman/schedule/schedCore.c:
+
+   CHANGES: agent: BUGS: 2873858: Fix handling of schedOwner index.
+   Patch provided by Max Schubert.
+
+2009-11-30 16:46  dts12
+
+   * local/mib2c.old-api.conf:
+
+   CHANGES: mib2c: BUGS: 2888569: Fix generation of table columns
+   array
+
+2009-11-30 16:30  dts12
+
+   * agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c:
+
+   CHANGES: agent: BUGS: 2894059: Handle errors when counting
+   interfaces
+
+2009-11-30 16:07  dts12
+
+   * agent/mibgroup/ucd-snmp/vmstat.c:
+
+   CHANGES: agent: BUG: 2897000: Suppress 32-bit counter truncation
+   warnings.
+
+2009-11-30 15:34  dts12
+
+   * agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c:
+
+   CHANGES: agent: PATCH: 2903092: Fix broken handling of broadcast
+   entries.
+
+2009-11-30 15:19  dts12
+
+   * agent/mibgroup/ucd-snmp/pass_persist.c:
+
+   CHANGES: agent: PATCH: 2901029: Fix compiler warning on
+   CloseHandle()
+   Endian problems already addressed by patch #2835576
+
+2009-11-30 15:13  dts12
+
+   * perl/agent/agent.xs:
+
+   CHANGES: perl: PATCH: 2890931: Better handling of Counter64
+   values.
+   Patch provided by Max Romanov.
+
+2009-11-30 15:07  dts12
+
+   * agent/mibgroup/ucd-snmp/vmstat_solaris2.c:
+
+   CHANGES: agent: PATCH: 2887816: Protect against division-by-zero
+   crash
+
+2009-11-30 15:03  dts12
+
+   * agent/mibgroup/if-mib/ifTable/ifTable_data_access.c:
+
+   CHANGES: agent: PATCH: 2883220: Fix compilation problems when
+   ifXTable is not included.
+
+2009-11-30 14:49  dts12
+
+   * agent/mibgroup/ucd-snmp/proxy.c:
+
+   CHANGES: agent: PATCH: 2883155: Fix memory leak in proxy
+   handling.
+   Patch supplied by Gowtham Thommandra.
+
+2009-11-30 14:32  dts12
+
+   * agent/mibgroup/ucd-snmp/proc.c, man/snmpd.conf.5.def:
+
+   CHANGES: agent: PATCH: 2883092: Support monitoring processes that
+   should not be running.
+   Patch provided by Christian (cg75).
+   
+   Qn: Should this functionality be back-ported to earlier lines?
+
+2009-11-30 14:12  dts12
+
+   * agent/mibgroup/agentx/subagent.c:
+
+   CHANGES: agent: PATCH: 2877518: Fix handling of scoped AgentX
+   variables
+
+2009-11-30 14:01  dts12
+
+   *  agent/mibgroup/ucd-snmp/pass.c,   
+      agent/mibgroup/ucd-snmp/pass_persist.c:
+
+   CHANGES: agent: PATCH: 2835576: Fix endianness issues in
+   pass/pass_persist
+
+2009-11-27 08:54  jsafranek
+
+   * agent/helpers/table_row.c:
+
+   Remove executable attribute from source files.
+
+2009-11-25 20:35  magfr
+
+   *  agent/agent_trap.c, agent/mibgroup/agentx/master_admin.c,   
+      agent/mibgroup/disman/event/mteEvent.c,   
+      agent/mibgroup/notification/snmpNotifyTable.c,   
+      local/mib2c.notify.conf:
+
+   CHANGES: snmpd: Make all the oids and oid lengths in agent_trap.c
+   const and use them from everywhere.
+
+2009-11-25 20:27  magfr
+
+   * snmplib/Makefile.in:
+
+   CHANGES: snmplib: Install library/oid.h. Thanks to "Tomasz Lis"
+   who spotted the bug.
+
+2009-11-25 09:47  bvassche
+
+   * include/net-snmp/agent/instance.h:
+
+   Comment-only change: changed the name in the file header from
+   testhandler.h
+   to instance.h such that it now matches the filename.
+
+2009-11-24 07:49  magfr
+
+   * agent/agent_trap.c:
+
+   Remove unnecessary cast
+
+2009-11-23 07:07  magfr
+
+   * agent/agent_trap.c, include/net-snmp/agent/agent_trap.h:
+
+   CHANGES: snmpd: Make the enterprise argument of
+   netsnmp_send_traps and send_enterprise_trap_vars const
+
+2009-11-23 07:02  magfr
+
+   * include/net-snmp/library/snmp_client.h, snmplib/snmp_client.c:
+
+   CHANGES: snmplib: Make the name argument to find_varbind_in_list
+   const
+
+2009-11-22 23:25  magfr
+
+   * agent/mibgroup/Rmon/event.c, agent/mibgroup/smux/smux.h:
+
+   Remove some local redeclarations of functions
+
+2009-11-22 01:03  magfr
+
+   *  win32/config.h.borland, win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   CHANGES: building, Win32: Remove a few unused configure symbols
+
+2009-11-21 08:01  bvassche
+
+   * win32/Snmp-winExtDLL.h, win32/snmp-winextdll.h:
+
+   Replaced an accidentally committed file by the proper contents.
+
+2009-11-20 16:29  bvassche
+
+   * win32/net-snmp/net-snmp-config.h:
+
+   Reverted accidentally merged changes.
+
+2009-11-20 16:26  bvassche
+
+   *  win32/lib, win32/net-snmp/net-snmp-config.h,   
+      win32/snmp-winextdll.h:
+
+   Updated Subversion ignore list.
+
+2009-11-20 16:18  bvassche
+
+   *  agent/helpers/table_iterator.c,   
+      agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.c,
+         agent/mibgroup/examples/netSnmpHostsTable.c,   
+      agent/mibgroup/examples/netSnmpHostsTable_access.c,   
+      agent/mibgroup/if-mib/ifTable/ifTable_interface.c,   
+      agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c,   
+      agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c,
+        
+      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c,
+        
+      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c,  
+      
+      agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c,  
+      
+      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c,
+        
+      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.c,
+         agent/mibgroup/mibII/interfaces.c,   
+      agent/mibgroup/mibII/ipCidrRouteTable.c,   
+      agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c,
+        
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
+        
+      agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_interface.c,
+        
+      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c,
+        
+      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c,
+        
+      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c,
+         local/mib2c-conf.d/mfd-interface.m2c,   
+      local/mib2c.access_functions.conf,   
+      local/mib2c.iterate_access.conf, snmplib/read_config.c:
+
+   Spelling fix in C source code comments: replaced 'retrival' by
+   'retrieval'.
+
+2009-11-20 16:15  bvassche
+
+   * agent/mibgroup/winExtDLL.c:
+
+   Fixed a naming inconsistency: replaced two occurrences winExtDll
+   by winExtDLL in source code comments.
+
+2009-11-19 22:52  magfr
+
+   *  agent/helpers/watcher.c, agent/mibgroup/mibII/system_mib.c,   
+      include/net-snmp/agent/watcher.h:
+
+   CHANGES: snmpd: BUG: 2900078: Add support for OID variables with
+   size in elements instead of bytes, correct sysObjectID to use
+   this.
+
+2009-11-13 12:59  jsafranek
+
+   * agent/mibgroup/mibII/ip.c, agent/mibgroup/mibII/tcp.c:
+
+   CHANGES: snmpd: Fixed logging of 'truncating integer value > 32
+   bits' in IP-MIB and TCP-MIB
+   The counters, which grow fast are now cut to 32bits.
+
+2009-11-12 08:26  magfr
+
+   * agent/snmpd.c:
+
+   Use big printf's instead of many small ones to save a few hundred
+   bytes on the final executable size.
+
+2009-11-12 02:24  magfr
+
+   *  configure, configure.d/config_os_functions,   
+      include/net-snmp/net-snmp-config.h.in, snmplib/Makefile.in,   
+      snmplib/strlcpy.c, snmplib/strtok_r.c, snmplib/strtol.c,   
+      snmplib/strtoul.c, snmplib/strtoull.c:
+
+   CHANGES: building: Use AC_REPLACE_FUNCS to handle code that is
+   missing on some platforms.
+
+2009-11-11 09:00  dts12
+
+   * local/mib2c.iterate.conf, local/mib2c.table_data.conf:
+
+   Fix cache free routine to match header declaration.
+   Return success/failure values from cache load routine.
+   Problem identified by Xuan.
+
+2009-10-30 09:51  magfr
+
+   *  include/net-snmp/library/asn1.h, include/net-snmp/library/oid.h,  
+       include/net-snmp/types.h:
+
+   NEWS: snmplib: Revert 17808, instead factor out the declaration
+   of oid to it's own file and include that file from both types.h
+   and asn1.h
+
+2009-10-30 08:28  magfr
+
+   *  agent/helpers/table.c,   
+      agent/mibgroup/if-mib/data_access/interface.c,   
+      agent/mibgroup/ip-mib/data_access/ipaddress_common.c,   
+      agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c,   
+      agent/mibgroup/struct.h, agent/mibgroup/ucd-snmp/memory.c,   
+      apps/snmpnetstat/if.c, configure,   
+      configure.d/config_os_functions,   
+      include/net-snmp/net-snmp-config.h.in, include/net-snmp/types.h,  
+       snmplib/mib.c, snmplib/oid_stash.c, snmplib/read_config.c,   
+      snmplib/snmp_debug.c, snmplib/snmpusm.c,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   CHANGES: snmplib, snmpd, snmpnetstat: Add correct size prefixes
+   when printing variables of type oid.
+
+2009-10-30 08:07  magfr
+
+   * include/net-snmp/types.h:
+
+   CHANGES: snmplib: Change oid to be a 32-bit type on ILP64 and
+   LP64 platforms.
+
+2009-10-30 08:05  magfr
+
+   * include/net-snmp/library/asn1.h:
+
+   NEWS: snmplib: Remove the oid typedef from
+   <net-snmp/library/asn1.h>. It is still present in
+   <net-snmp/types.h>, use that file.
+
+2009-10-28 16:48  hardaker
+
+   * agent/snmp_vars.c:
+
+   don't require subagent_init() if not only building master agent
+   code
+
+2009-10-27 06:44  magfr
+
+   *  local/mib2c-conf.d/generic-table-indexes-to-oid.m2i,   
+      local/mib2c.access_functions.conf, local/mib2c.container.conf,   
+      local/mib2c.iterate.conf, local/mib2c.iterate_access.conf,   
+      local/mib2c.row.conf, local/mib2c.scalar.conf,   
+      local/mib2c.table_data.conf:
+
+   CHANGES: mib2c: Remove unnecessary casts to u_char*
+
+2009-10-14 23:12  magfr
+
+   * apps/encode_keychange.c, snmplib/scapi.c:
+
+   CHANGES: apps, snmplib: PATCH: 2835577: identified by "Bart Van
+   Assche": Replace SNMP_ZERO of arrays with a memset.
+
+2009-10-12 20:28  magfr
+
+   * snmplib/parse.c:
+
+   Lessen the scope of the rp variable to the smallest possible one.
+
+2009-10-09 12:38  jsafranek
+
+   * snmplib/snmp_client.c:
+
+   CHANGES: snmplib: PATCH:2871747: plug memory leak in OID
+   processing.
+   The memory leaked when small OID, which could fit pre-allocated
+   vp->name_loc, was placed in different (allocated) one.
+
+2009-10-09 05:31  magfr
+
+   * snmplib/mib.c, snmplib/parse.c:
+
+   CHANGES: BUG: 2838243: Correct the output of unsigned values.
+   Thanks to Jack Huang of Qualcomm who pointed out this bug.
+
+2009-10-09 05:00  magfr
+
+   * snmplib/parse.c:
+
+   CHANGES: snmplib: Change the parsing of ranges to accept all
+   valid values.
+
+2009-10-07 22:24  magfr
+
+   *  agent/mibgroup/examples/example.c, agent/mibgroup/smux/smux.c,   
+      agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c,
+         configure, configure.d/config_os_functions,   
+      include/net-snmp/net-snmp-config.h.in,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   CHANGES: misc: PATCH: 2836112: Use the right modifier when
+   printing size_t and ssize_t variables.
+
+2009-10-07 12:50  jsafranek
+
+   * agent/mibgroup/mibII/vacm_vars.c:
+
+   CHANGES: snmpd: Fixed creation of views using snmpusm, OIDs with
+   indexes > 255 are allowed now.
+   This reverts SVN commit #7492.
+
+2009-10-05 19:19  magfr
+
+   *  include/net-snmp/library/dir_utils.h,   
+      include/net-snmp/library/file_utils.h,   
+      include/net-snmp/library/text_utils.h:
+
+   CHANGES: snmplib: Correct the spelling of __cplusplus when
+   checking if the file should be wrapped in extern "C".
+
+2009-10-05 06:13  magfr
+
+   * apps/snmpwalk.c:
+
+   CHANGES: snmpwalk: Handle the case when the end oid is longer
+   than the current oid correctly
+
+2009-09-30 10:12  dts12
+
+   * agent/mibgroup/host/hr_swinst.c:
+
+   CHANGES: Solaris: Protect against missing package version
+   information crashing the agent.
+   Problem reported by Inyaven Sakarai.
+
+2009-09-27 14:59  alex_b
+
+   *  win32/dist/README.build.win32.txt, win32/dist/build-binary.pl,   
+      win32/dist/scripts/mandir2html:
+
+   Win32: Binary build instructions and script updates.
+
+
+
+
+----------------------------------------------------------------------
+
+Changes: V5.5.rc3 -> V5.5
+
+2009-09-23 23:42  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+2009-09-23 23:40  hardaker
+
+   * FAQ:
+
+   remove SVN branch wording
+
+2009-09-23 23:36  hardaker
+
+   * FAQ:
+
+   proper project capitalization
+
+2009-09-23 23:35  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
+2009-09-23 23:30  hardaker
+
+   * man/pdu_api.3, man/session_api.3, man/varbind_api.3:
+
+   version update
+
+2009-09-22 21:51  tanders
+
+   * README.solaris:
+
+   fix typos
+
+
+
+----------------------------------------------------------------------
+
+Changes: V5.5.rc2 -> V5.5.rc3
+	
+2009-09-14 22:39  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+2009-09-14 22:36  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec, man/pdu_api.3, man/session_api.3,   
+      man/varbind_api.3:
+
+   Version number update
+
+2009-09-14 22:18  hardaker
+
+   * README.aix, apps/snmpnetstat/if.c, include/net-snmp/system/aix.h:
+
+   Patch from magfr for 5.5 specific aix build fixes
+
+2009-09-02 07:12  jsafranek
+
+   *  agent/mibgroup/smux/snmp_bgp.c, agent/mibgroup/smux/snmp_ospf.c,  
+       agent/mibgroup/smux/snmp_rip2.c, include/net-snmp/library/mib.h:
+
+   CHANGES: snmplib: rename MIB macro to NETSNMP_MIB2_OID, MIB is
+   too generic and may conflict with applications.
+   
+   The old MIB macro is kept for backward compatibility, unless
+   NETSNMP_NO_LEGACY_DEFINITIONS is defined.
+
+2009-08-31 19:38  nba
+
+   * mibs/rfclist:
+
+   Additional RFC mibs
+
+2009-08-31 19:37  nba
+
+   * mibs/IANAifType-MIB.txt:
+
+   IANA fixed a bug
+
+2009-08-29 07:29  magfr
+
+   * local/mib2c.raw-table.conf:
+
+   mib2c: Remove unneeded casts.
+
+2009-08-29 07:28  magfr
+
+   * local/mib2c.raw-table.conf:
+
+   mib2c: ret is only used in settable tables so only declare it
+   then.
+
+2009-08-29 07:24  magfr
+
+   * local/mib2c.raw-table.conf:
+
+   mib2c: Replace the _oid_len variable with an explicit call of
+   OID_LENGTH.
+
+2009-08-29 07:21  magfr
+
+   * local/mib2c.raw-table.conf:
+
+   mib2c: Make every function that can be static static. Remove the
+   declarations of the static functions and the private defines from
+   the header.
+
+2009-08-29 07:19  magfr
+
+   * local/mib2c.raw-table.conf:
+
+   mib2c: Reorder the functions in order to avoid the need for
+   forward declarations.
+
+2009-08-29 07:16  magfr
+
+   * local/mib2c.raw-table.conf:
+
+   mib2c: netsnmp_table_register should be netsnmp_register_table
+   and take only two argments.
+
+2009-08-29 07:14  magfr
+
+   * local/mib2c.raw-table.conf:
+
+   mib2c: build_oid expects a pointer to allocated oid. Change to
+   use build_oid_noalloc and remove one copy of the indices.
+
+2009-08-29 07:10  magfr
+
+   * local/mib2c.raw-table.conf:
+
+   mib2c: There is no index_oid_len member in struct entry. Use the
+   intended local variable index_oid_len.
+
+2009-08-29 07:06  magfr
+
+   * local/mib2c.raw-table.conf:
+
+   mib2c: Correct the return type of ${i}_get*entry to match the
+   returned type.
+
+2009-08-26 22:37  hardaker
+
+   * ChangeLog:
+
+   whwoops; blew the changelog for rc2
+
+2009-08-26 17:38  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+2009-08-26 17:29  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
+----------------------------------------------------------------------
+
+Changes: V5.5.rc1 -> V5.5.rc2
+	
+2009-08-26 17:38  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+2009-08-26 17:29  hardaker
+
+   *  FAQ, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
+2009-08-26 17:28  hardaker
+
+   * dist/makerelease.xml:
+
+   updated based on new SF upload methods; no longer as automatable
+
+2009-08-26 17:26  hardaker
+
+   * agent/mibgroup/ip-mib/data_access/defaultrouter_linux.c:
+
+   CHANGES: snmpd: patch from Jan to endless loop in default routes
+   on linux
+
+2009-08-26 17:25  hardaker
+
+   * include/net-snmp/library/types.h:
+
+   apply patch from Jan to fix C++ wrapper
+
+2009-08-26 14:53  dts12
+
+   * local/Makefile.in, local/mib2c.raw-table.conf:
+
+   Initial stab at a minimal-helper (raw) table template,
+   leaving most of the work to the user-provided MIB handler.
+
+2009-08-26 14:50  dts12
+
+   * snmplib/snmp_api.c:
+
+   Protect against bogus failures (returning 0) and subsequent
+   double-frees,
+   due to 15-/31-bit masking when selecting request IDs. Identified
+   by kromesky.
+
+2009-08-20 13:30  jsafranek
+
+   *  agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.c,
+         agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable.c,   
+      agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c,   
+      agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable.c:
+
+   CHANGES: snmpd: plug leaks in ipIfStatsTable,
+   ipv6ScopeZoneIndexTable, ipSystemStatsTable and
+   ipDefaultRouterTable.
+   
+   It seems to me the tables were wrongly generated with
+   m2c_data_allocate or
+   someone forgot to release the user provided data.
+
+2009-08-12 15:00  tanders
+
+   * NEWS:
+
+   fix libtool version in NEWS
+
+2009-08-11 00:42  hardaker
+
+   * CHANGES, ChangeLog:
+
+   whoops; add real changelog enteries for .rc1
+
+2009-08-10 23:10  hardaker
+
+   * dist/makerelease.xml:
+
+   fix typo in svn2cl line
+
+2009-08-10 23:05  hardaker
+
+   * snmplib/Makefile.depend:
+
+   make depend
+
+2009-08-10 21:32  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+-------------------------------------------------------------------------------
+
+Changes: V5.5.pre3 -> V5.5.rc1
+
+2009-08-10 23:10  hardaker
+
+   * dist/makerelease.xml:
+
+   fix typo in svn2cl line
+
+2009-08-10 23:05  hardaker
+
+   * snmplib/Makefile.depend:
+
+   make depend
+
+2009-08-10 21:32  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+2009-08-10 21:21  hardaker
+
+   *  dist/makerelease.xml, man/pdu_api.3, man/session_api.3,   
+      man/varbind_api.3:
+
+   Version number update
+
+2009-08-07 10:32  dts12
+
+   * CHANGES, NEWS:
+
+   Correct, consolidate, clarify and cleanup the catalog of current
+   changes.
+
+2009-08-06 07:57  dts12
+
+   * FAQ:
+
+   Expand on exec vs extend.
+
+2009-08-05 20:07  dts12
+
+   *  agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c,   
+      snmplib/file_utils.c:
+
+   CHANGES: snmpd: BUG: 2822355: Fix memory leaks on
+   udpEndpointTable (linux)
+   Patch supplied by Frank Lichtenheld
+
+2009-08-05 19:05  dts12
+
+   * 
+      agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c:
+
+   CHANGES: snmpd: PATCHES: 2822337: Fix memory leak in
+   ipAddressPrefixTable
+
+2009-08-05 15:16  jsafranek
+
+   * agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.c:
+
+   Fix memory leak in NetToMediaTable.
+   When deleting row context, delete also associated data.
+
+2009-08-05 15:15  jsafranek
+
+   * 
+      agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c:
+
+   Fix memory leak in NetToMediaTable.
+   The container used to track entries to delete from cache should
+   be released when it's not needed.
+
+2009-08-05 15:12  jsafranek
+
+   * 
+      agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c,
+        
+      agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_data_access.c,
+        
+      agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c:
+
+   Fix memory leak in UDP- and TCP-MIB.
+   The data from raw_data are copied to cache, so it should be
+   freed.
+
+2009-08-05 10:16  dts12
+
+   * apps/snmptable.c:
+
+   CHANGES: apps: BUG: 2811577: Fix bug in GetBulk handling.
+   Don't get confused by index values that contain a ':' character.
+
+2009-08-04 21:59  dts12
+
+   * local/mib2c-conf.d/mfd-access-unsorted-external-defines.m2i:
+
+   CHANGES: mib2c: BUG: 2827269: Suppress non-ordered TODO comments.
+
+2009-08-04 21:35  dts12
+
+   * local/mib2c.old-api.conf:
+
+   Handle generating code for a single table,
+   as well as a larger group.
+   Also addresses bug 2150285
+
+2009-08-04 21:16  magfr
+
+   * snmplib/strtoull.c:
+
+   snmplib: from "Bart van Assche & Magnus Fromreide": More updates
+   to strtoull.c
+
+2009-08-04 10:57  jsafranek
+
+   * agent/mibgroup/ip-mib/data_access/systemstats_common.c:
+
+   CHANGES: snmpd: from "Marcus Rückert": fix possible crash when
+   64-bit counters in ipSystemStatsTable get bigger than 2^32
+
+2009-08-03 19:27  magfr
+
+   *  configure, configure.d/config_os_headers,   
+      include/net-snmp/net-snmp-config.h.in, snmplib/strtoull.c:
+
+   CHANGES: snmplib: PATCH: 2827722: from "Bart Van Assche": Improve
+   strtoull to be less MSVC-specific
+
+2009-08-03 18:38  magfr
+
+   * man/Makefile.in:
+
+   remove an obsolete manual page from the set of files that should
+   be installed
+
+2009-07-27 12:41  hardaker
+
+   *  agent/Makefile.depend, agent/helpers/Makefile.depend,   
+      agent/mibgroup/Makefile.depend, apps/Makefile.depend,   
+      apps/snmpnetstat/Makefile.depend, snmplib/Makefile.depend:
+
+   make depend
+
+2009-07-27 12:11  hardaker
+
+   * man/netsnmp_Container_iterator.3:
+
+   remove an obsolete manual page
+
+2009-07-27 12:03  hardaker
+
+   * perl/SNMP/t/bulkwalk.t:
+
+   CHANGES: freebsd: patch from Cezary Morga to fix a make test on
+   freebsd
+
+2009-07-27 12:02  hardaker
+
+   *  man/netsnmp_access_multiplexer.3, man/netsnmp_agent.3,   
+      man/netsnmp_agent_handler.h.3, man/netsnmp_agent_registry.3,   
+      man/netsnmp_agent_trap.3, man/netsnmp_asn1_packet_parse.3,   
+      man/netsnmp_baby_steps.3, man/netsnmp_bulk_to_next.3,   
+      man/netsnmp_cache_handler.3, man/netsnmp_callback.3,   
+      man/netsnmp_container.3, man/netsnmp_container_iterator.3,   
+      man/netsnmp_container_iterator.h.3, man/netsnmp_data_list.3,   
+      man/netsnmp_debug.3, man/netsnmp_default_store.3,   
+      man/netsnmp_handler.3, man/netsnmp_instance.3,   
+      man/netsnmp_iterator_info_s.3, man/netsnmp_leaf.3,   
+      man/netsnmp_library.3, man/netsnmp_mib_maintenance.3,   
+      man/netsnmp_mib_utilities.3, man/netsnmp_mode_end_call.3,   
+      man/netsnmp_multiplexer.3,   
+      man/netsnmp_netsnmp_agent_request_info_s.3,   
+      man/netsnmp_netsnmp_column_info_t.3,   
+      man/netsnmp_netsnmp_data_list_s.3,   
+      man/netsnmp_netsnmp_handler_registration_s.3,   
+      man/netsnmp_netsnmp_iterator_info_s.3,   
+      man/netsnmp_netsnmp_mib_handler_access_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_methods.3,   
+      man/netsnmp_netsnmp_mib_handler_s.3,   
+      man/netsnmp_netsnmp_monitor_callback_header_s.3,   
+      man/netsnmp_netsnmp_request_info_s.3,   
+      man/netsnmp_netsnmp_table_registration_info_s.3,   
+      man/netsnmp_netsnmp_table_request_info_s.3,   
+      man/netsnmp_null_container.3, man/netsnmp_oid_stash.3,   
+      man/netsnmp_old_api.3, man/netsnmp_read_config.3,   
+      man/netsnmp_read_only.3, man/netsnmp_row_merge.3,   
+      man/netsnmp_scalar.3, man/netsnmp_scalar_group_group.3,   
+      man/netsnmp_serialize.3, man/netsnmp_snmp_agent.3,   
+      man/netsnmp_snmp_alarm.3, man/netsnmp_snmp_client.3,   
+      man/netsnmp_snmp_logging.3, man/netsnmp_snmp_pdu.3,   
+      man/netsnmp_snmp_session.3, man/netsnmp_stash_cache.3,   
+      man/netsnmp_stash_to_next.3, man/netsnmp_table.3,   
+      man/netsnmp_table_array.3, man/netsnmp_table_container.3,   
+      man/netsnmp_table_data.3, man/netsnmp_table_dataset.3,   
+      man/netsnmp_table_generic.3, man/netsnmp_table_indexes.3,   
+      man/netsnmp_table_iterator.3, man/netsnmp_table_iterator.h.3,   
+      man/netsnmp_table_maintenance.3, man/netsnmp_table_row.3,   
+      man/netsnmp_table_rows.3, man/netsnmp_tdata.3,   
+      man/netsnmp_tools.h.3, man/netsnmp_util.3,   
+      man/netsnmp_utilities.3, man/netsnmp_variable_list.3,   
+      man/netsnmp_watcher.3:
+
+   documentation update
+
+2009-07-27 11:52  hardaker
+
+   *  FAQ, NEWS, README, configure, configure.ac, dist/Makefile,   
+      dist/net-snmp.spec:
+
+   Version number update
+
+2009-07-27 08:39  hardaker
+
+   * testing/tests/T350unix:
+
+   revert accidentially applied patch
+
+2009-07-27 08:37  hardaker
+
+   *  testing/tests/T350unix, testing/tests/T360dtlsudp,   
+      testing/tests/test-localhost.cert,   
+      testing/tests/test-localhost.priv, testing/tests/test-user.cert,  
+       testing/tests/test-user.priv:
+
+   added a test case for udp/dtls
+
+2009-07-27 08:36  hardaker
+
+   * snmplib/snmp_api.c:
+
+   don't require a session to carry a secName
+
+2009-07-26 21:34  alex_b
+
+   * win32/libsnmp_dll/libsnmp.def:
+
+   Win32: MSVC 6 compile fixes for Workspace build.
+
+2009-07-26 18:20  alex_b
+
+   *  README.win32, configure, configure.d/config_os_functions,   
+      include/net-snmp/library/system.h,   
+      include/net-snmp/net-snmp-config.h.in, snmplib/strtoull.c,   
+      win32/dist/build-binary.bat, win32/dist/build-binary.pl,   
+      win32/dist/installer/net-snmp.nsi, win32/libsnmp/Makefile.in,   
+      win32/libsnmp/libsnmp.dsp, win32/libsnmp_dll/Makefile.in,   
+      win32/libsnmp_dll/libsnmp.def.in,   
+      win32/libsnmp_dll/libsnmp_dll.dsp,   
+      win32/net-snmp/net-snmp-config.h,   
+      win32/net-snmp/net-snmp-config.h.in:
+
+   -Added strtoull function and configure check for systems without
+   it such as Win32 MSVC 6
+   -Win32: MSVC 6 compile fixes - requires new strtoull.c file
+   -Win32: New build-binary script to simplify building the Windows
+   binary package.
+
+2009-07-25 05:31  magfr
+
+   * testing/tests/T160snmpnetstat:
+
+   Make sure a message is written if the relevant table is missing.
+
+2009-07-23 21:29  alex_b
+
+   * README:
+
+   Update email address in README.
+
+2009-07-23 01:07  alex_b
+
+   *  win32/netsnmpmibs/netsnmpmibs.dsp,   
+      win32/netsnmpmibssdk/netsnmpmibssdk.dsp:
+
+   Win32 MSVC 2008+ fixes.
+
+2009-07-23 00:55  alex_b
+
+   *  include/net-snmp/library/snmp_logging.h,   
+      win32/netsnmpmibssdk/Makefile.in,   
+      win32/netsnmpmibssdk/netsnmpmibssdk.dsp:
+
+   Win32 MSVC 2005+ build fixes. Thanks to Bart Van Assche.
+
+2009-07-21 12:22  dts12
+
+   *  local/mib2c.container.conf, local/mib2c.iterate.conf,   
+      local/mib2c.iterate_access.conf, local/mib2c.row.conf,   
+      local/mib2c.table_data.conf:
+
+   Add simple debug output to mib2c templates.
+
+2009-07-21 12:13  dts12
+
+   * local/mib2c.table_data.conf:
+
+   Fix missing semicolon typos.
+
+2009-07-21 09:15  dts12
+
+   * FAQ:
+
+   New suggested entries.
+
+2009-07-20 19:24  dts12
+
+   * FAQ:
+
+   Updates to CODING section.
+
+2009-07-20 11:09  jsafranek
+
+   * agent/mibgroup/etherlike-mib.h:
+
+   Add missing header file from patch #2053273.
+
+2009-07-19 15:09  dts12
+
+   * FAQ:
+
+   Updates to COMPILING section.
+
+2009-07-16 12:38  jsafranek
+
+   * agent/mibgroup/ip-mib/data_access/systemstats_linux.c:
+
+   Add IPv6 octet counters.
+   New Linux kernels (e.g. 2.6.31-rc2, maybe some earlier) provide
+   counters for
+   incoming/outgoing IPv6 traffic for ipSystemStatsTable and
+   ipIfStatsTable.
+
+2009-07-15 22:46  tanders
+
+   * testing/tests/T350unix:
+
+   put temporary data to where they belong
+
+2009-07-11 21:50  tanders
+
+   * configure:
+
+   regenerate configure
+
+2009-07-11 21:04  tanders
+
+   * configure.d/config_os_libs:
+
+   build fix (e.g. for FreeBSD): adjust kvm configure tests
+
+2009-07-10 12:35  jsafranek
+
+   * snmplib/snmpUDPIPv6Domain.c:
+
+   Check IPv6 port ranges in the same way as IPv4 ports are checked.
+
+2009-07-10 07:46  jsafranek
+
+   * 
+      agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c,
+         local/mib2c:
+
+   Fix another IPv4 address size - long has 8 bytes on 64bit Linux.
+   Also fix the default type fo^CASN_IPADDRESS in mib2c, so the
+   ipCidrRouteTable_interface.c can be safely regenerated.
+
+2009-07-09 23:42  hardaker
+
+   *  testing/tests/T300udp, testing/tests/T310tcp,   
+      testing/tests/T320udpv6, testing/tests/T330tcpv6,   
+      testing/tests/T350unix:
+
+   cleanup of testing cases to remove double include and double
+   exports
+
+2009-07-09 23:07  tanders
+
+   * testing/tests/T300udp:
+
+   be consistent with the TCP/IPv4 test
+
+2009-07-09 22:18  hardaker
+
+   *  testing/tests/Stransport, testing/tests/T300udp,   
+      testing/tests/T310tcp, testing/tests/T320udpv6,   
+      testing/tests/T330tcpv6, testing/tests/T350unix,   
+      testing/tests/T399alias:
+
+   new tests for testing defined transports
+
+2009-07-09 22:17  hardaker
+
+   * testing/TESTCONF.sh, testing/eval_tools.sh:
+
+   a CONFIGAPP macro for adding stuff to snmp.conf
+
+2009-07-08 15:12  jsafranek
+
+   * snmplib/snmpUDPDomain.c:
+
+   Fix gethostbyaddr parameter, netsnmp_udp_fmtaddr never returned a
+   hostname.
+
+2009-07-07 15:46  jsafranek
+
+   *  agent/mibgroup/mibII/ipCidrRouteTable_access.c,   
+      agent/mibgroup/ucd-snmp/pass.c,   
+      agent/mibgroup/ucd-snmp/pass_persist.c:
+
+   Fix IP address length on 64 bit systems in mibII, pass and
+   pass_persist modules.
+
+2009-07-07 15:24  jsafranek
+
+   * agent/mibgroup/mibII/at.c:
+
+   Use correctly sized IP addresses in address translation table
+   processing - u_long can make problems on bin endian 64 bit
+   systems
+
+2009-06-29 13:52  hardaker
+
+   * CHANGES:
+
+   remove entry for a patch that got reverted
+
+2009-06-25 15:24  dts12
+
+   *  include/net-snmp/library/large_fd_set.h,   
+      include/net-snmp/library/types.h, include/net-snmp/types.h,   
+      snmplib/Makefile.in:
+
+   Move non-core data types into a separate (library internals)
+   header file.
+   Move the large_fd_set data structure into this header file.
+
+2009-06-18 22:29  tanders
+
+   * agent/snmp_perl.c:
+
+   CHANGES: build: allow building with Perl versions that lack
+   PERL_EXIT_DESTRUCT_END
+
+2009-06-18 22:13  tanders
+
+   * apps/snmpnetstat/if.c:
+
+   CHANGES: build: build fix for Tru64 Unix and IRIX: move _XOPEN*
+   definitions to where they are in 5.4.x and earlier
+
+2009-06-18 06:02  magfr
+
+   *  configure, configure.d/config_os_libs,   
+      configure.d/config_project_with_enable,   
+      include/net-snmp/net-snmp-config.h.in:
+
+   Clean up --with-nl configuration
+   *  Move the _ARG_WITH to config_project_with_enable  2009-06-16 15:17
+       rstory
+
+
+   * snmplib/container.c:
+
+   check for null pointer before deref
+
+2009-06-15 23:52  rstory
+
+   * snmplib/snmp_client.c:
+
+   add comment explaining not quite obvious lack of memmove
+
+2009-06-15 19:32  magfr
+
+   * include/net-snmp/types.h:
+
+   Remove #if 0 commented code
+
+2009-06-15 15:25  dts12
+
+   * FAQ:
+
+   Updates to AGENT section.
+
+-------------------------------------------------------------------------------
+
+Changes: V5.5.pre2 -> V5.5.pre3
+
 2009-06-13 01:12  hardaker
 
    *  agent/mibgroup/mibII/tcpTable.c, configure,   
@@ -10634,6 +38826,10 @@
 
    CHANGES: Win32: BUG: 2779541 Fixed handle leak in pass_persist.
 
+-------------------------------------------------------------------------------
+
+Changes: V5.5.pre1 -> V5.5.pre2
+
 2009-04-23 22:53  hardaker
 
    * agent/mibgroup/hardware/sensors.h, snmplib/snmp_alarm.c:
@@ -11667,6 +39863,10 @@
 
    Version number update
 
+-------------------------------------------------------------------------------
+
+Changes: V5.4 -> V5.5.pre1
+
 2009-04-01 21:58  hardaker
 
    * man/snmp.conf.5.def, man/snmpd.8.def:
@@ -36232,7 +64432,7 @@
    * local/mib2c-conf.d/mfd-interface.m2c:
 
    - pass NULL to config handler reg, to use current apptype
-   - add seperators and headers when saving persistent data
+   - add separators and headers when saving persistent data
    - remove extraneous newline in persistent data
 
 2005-03-24 22:06  rstory
@@ -63848,7 +92048,7 @@
 
    * agent/helpers/instance.c:
 
-   Report non-exitent subinstances as 'noSuchInstance' rather than 'noSuchObject'.
+   Report non-existent subinstances as 'noSuchInstance' rather than 'noSuchObject'.
    "snmpget .... .1.3.6.1.6.3.12.1.5.0.99" now responds correctly.
    (though "snmpget .... .1.3.6.1.6.3.12.1.5.1" still returns 'noSuchObject')
    
diff --git a/FAQ b/FAQ
index 0f06b58..a2bd68a 100644
--- a/FAQ
+++ b/FAQ
@@ -1,7 +1,7 @@
       Frequently Asked Questions (FAQ) for the UCD/Net-SNMP package
       =============================================================
 		       FAQ Author: Dave Shield
-			Net-SNMP Version: 5.5.2
+			Net-SNMP Version: 5.6.2
 	    Net-SNMP/UCD-SNMP Project Leader: Wes Hardaker
 	     Email: net-snmp-coders@lists.sourceforge.net
 
diff --git a/Makefile.in b/Makefile.in
index 5b1d09e..cbcf8f7 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,3 +1,4 @@
+
 #
 # Makefile.in (at the root of net-snmp)
 #
@@ -16,7 +17,7 @@
 INSTALLHEADERS=version.h
 INCLUDESUBDIR=system
 INCLUDESUBDIRHEADERS= aix.h bsd.h bsdi3.h bsdi4.h bsdi.h cygwin.h \
-	darwin.h darwin7.h darwin8.h darwin9.h dragonfly.h dynix.h \
+	darwin.h darwin7.h darwin8.h darwin9.h darwin10.h dragonfly.h dynix.h \
 	freebsd2.h freebsd3.h freebsd4.h freebsd5.h freebsd6.h \
 	freebsd7.h freebsd8.h freebsd9.h freebsd10.h freebsd.h \
         generic.h \
@@ -83,11 +84,11 @@
 	@(cd agent; $(MAKE) libs)
 	@(cd apps; $(MAKE) )
 
-snmpget snmpbulkget snmpwalk snmpbulkwalk snmptranslate snmpstatus snmpdelta snmptable snmptest snmpset snmpusm snmpvacm snmpgetnext encode_keychange snmpdf snmptrap:
+snmpget snmpbulkget snmpwalk snmpbulkwalk snmptranslate snmpstatus snmpdelta snmptable snmptest snmpset snmpusm snmpvacm snmpgetnext encode_keychange snmpdf snmptrap snmptls:
 	@(cd snmplib; $(MAKE) )
 	@(cd apps; $(MAKE) $@ )
 
-snmptrapd:
+agentxtrap snmptrapd:
 	@(cd snmplib; $(MAKE) )
 	@(cd agent; $(MAKE) libs)
 	@(cd apps; $(MAKE) $@ )
@@ -107,19 +108,12 @@
 EXAMPLE.conf: sedscript EXAMPLE.conf.def
 	$(SED) -f sedscript $(srcdir)/EXAMPLE.conf.def > EXAMPLE.conf
 
-docs: docsdir mancp
+docs: docsdir 
 
 docsdir: docsdox
 
 docsdox: doxygen.conf
 	srcdir=$(srcdir) VERSION=$(VERSION) doxygen $(srcdir)/doxygen.conf
-	-rm docs/man/man3/todo.3
-	-rm docs/man/man3/deprecated.3
-
-mancp:
-	@for i in docs/man/man3/* ; do \
-	     cp $$i man/netsnmp_`basename $$i` ; \
-	done
 
 net-snmp-config-x: net-snmp-config
 	chmod a+x net-snmp-config
@@ -141,11 +135,8 @@
 #
 # test targets
 #
-test: all testdirs
-	( cd testing; $(MAKE) test )
-
-test-mibs: all testdirs
-	( cd testing; $(MAKE) test-mibs )
+test test-mibs testall testfailed testsimple: all testdirs
+	( cd testing; $(MAKE) $@ )
 
 testdirs:
 	for i in $(TESTDIRS) ; do	\
@@ -257,7 +248,8 @@
 	rm -f include/net-snmp/agent/mib_module_config.h		\
 		include/net-snmp/agent/agent_module_config.h		\
 		include/net-snmp/library/snmpv3-security-includes.h \
-		snmplib/snmpsm_init.h                   \
+		snmplib/snmpsm_init.h                               \
+                snmplib/transports/snmp_transport_inits.h           \
 		agent/mibgroup/agent_module_includes.h 	\
 		agent/mibgroup/agent_module_inits.h 	\
 		agent/mibgroup/agent_module_shutdown.h 	\
@@ -335,6 +327,30 @@
 	    echo "WARNING: not running autoconf"; \
 	fi
 
+gendir=dist/generation-scripts
+generation-scripts: generation-scripts-dirs $(gendir)/gen-transport-headers $(gendir)/gen-security-headers
+
+$(gendir)/gen-variables: $(gendir)/gen-variables.in
+	./config.status
+
+generation-scripts-dirs:
+	@if [ ! -d dist ] ; then \
+	    mkdir dist ;        \
+	fi
+	@if [ ! -d dist/generation-scripts ] ; then \
+	    mkdir dist/generation-scripts ;        \
+	fi
+
+$(gendir)/gen-transport-headers: $(gendir)/gen-transport-headers.in $(gendir)/gen-variables
+	rm -f $@
+	autoconf -o $@ $<
+	chmod a+x $@
+
+$(gendir)/gen-security-headers: $(gendir)/gen-security-headers.in $(gendir)/gen-variables
+	rm -f $@
+	autoconf -o $@ $<
+	chmod a+x $@
+
 config.status: configure
 	@if test "x$(NOAUTODEPS)" = "x"; then \
 	    echo "running config.status because $? changed"; \
@@ -372,25 +388,35 @@
 	fi
 
 checks:
-	$(MAKE) -k makefilecheck commentcheck warningcheck dependcheck
+	$(MAKE) -k makefilecheck commentcheck warningcheck dependcheck \
+	assertcheck perlcalloccheck
 
 dependcheck:
 	@echo "Checking for full paths in dependency files..."
-	@grep -n -E "^/" `$(FIND) $(top_srcdir) -name Makefile.depend` && exit 1
+	@if grep -n -E "^/" `$(FIND) $(top_srcdir) -name Makefile.depend`; then false; fi
 
 warningcheck:
 	@echo "Checking for cpp warnings..."
-	@grep -n -E "#warning" `$(FIND) $(top_srcdir) -name \*.\[ch\]` && exit 1
+	@if grep -n "#warning" `$(FIND) $(top_srcdir) -name \*.\[ch\]`; then false; fi
+
+assertcheck:
+	@echo "Checking for non-snmp asserts..."
+	@if grep -n -w "assert" `$(FIND) $(top_srcdir) -name \*.\[ch\] | grep -v snmp_assert.h | egrep -v 'perl/.*c' | grep -v openssl`; then false; fi
 
 commentcheck:
 	@echo "Checking for C++ style comments..."
-	@grep -n -E "([^:)n]|^)//" `$(FIND) $(top_srcdir) -path './win32' -prune -o -name \*.\[ch\] | grep -v agent/mibgroup/winExtDLL.c` && exit 1
+	@if grep -n -E "([^:)n]|^)//" `$(FIND) $(top_srcdir) -path './win32' -prune -o -name \*.\[ch\] | grep -v agent/mibgroup/winExtDLL.c`; then false; fi
 
-# always exit 1, since I can't figure out how to invert grep rc
 makefilecheck:
 	@echo "Checking for non-portable Makefile constructs..."
-	@grep -n "\.c=" `$(FIND) $(top_srcdir) -name "Makefile.*"`
-	@exit 1
+	@if grep -n "\.c=" `$(FIND) $(top_srcdir) -name .svn -prune -o -path ./Makefile.in -prune -o -name "Makefile.*" -print`; then false; fi
+
+# Invoking calloc() directly or indirectly from a Perl XSUB and freeing that
+# memory by calling free() from the XSUB is a sure way to trigger "Free to
+# wrong pool" errors on Windows.
+perlcalloccheck:
+	@echo "Checking for calloc() in Perl's external subroutines ..."
+	@if grep -nwE 'calloc|SNMP_MALLOC_STRUCT|SNMP_MALLOC_TYPEDEF' `$(FIND) $(top_srcdir) -name '*.xs'`; then false; fi
 
 dist: tar
 
diff --git a/Makefile.top b/Makefile.top
index f4fa4a8..7190e90 100644
--- a/Makefile.top
+++ b/Makefile.top
@@ -76,8 +76,8 @@
 # policy: we increment major releases of LIBCURRENT by 5 starting at
 # 5.3 was at 10, 5.4 is at 15, ...  This leaves some room for needed
 # changes for past releases if absolutely necessary.
-# 
-LIBCURRENT  = 20
+#
+LIBCURRENT  = 25
 LIBAGE      = 0
 LIBREVISION = 2
 
diff --git a/NEWS b/NEWS
index a6713fc..baace21 100644
--- a/NEWS
+++ b/NEWS
@@ -3,32 +3,127 @@
 that have been fixed/applied, and the ChangeLog file for a comprehensive
 listing of all changes made to the code.
 
-
-* 5.5.2 *
+*5.6.2*
 
     snmpd:
       - [PATCH 3198781]: Fix compilation of disman/{ping,traceroute} modules
+      - [BUG 3166568]: Fix missing hrSystemProcesses values
       - [BUG 3526549]: CVE-2012-2141 Array index error leading to crash
       - [BUG 3532090]: Fix high ifIndex values crashing hrDeviceDescr
-             Note that this will affect the indexing of *all* entries in
-             the hrDeviceTable.  Assumptions as to what index a given device
-             will use, are no longer valid.
+              Note that this will affect the indexing of *all* entries in
+              the hrDeviceTable.  Assumptions as to what index a given device
+              will use, are no longer valid.
 
     building:
       - [PATCH 2091156]: Fix parallel builds (using 'make -j <N>')
 
-* 5.5.1 *
+*5.6.1*
+
+    General:
+      - The DTLS and TLS transports and the TSM security model are no
+        longer "beta" (they've undergone rigorous interoperability testing).
+      - Many Bug Fixes (see the CHANGES and ChangeLog files for full details)
 
     snmpd:
-      - Fix handling of multiple matching VACM entries.
-        (Use the "best" match, rather than the first one).
-	Note that this could potentially affect the behaviour
-	of existing access control configurations.
+      - [PATCH 3141462]: Fix multi-opbject AgentX subagent requests
+      - Fix VACM persistant storage.
 
-    FreeBSD,NetBSD,OpenBSD:
-        Incorporate fixes from these O/S patch archives
+*5.6*
 
-* 5.5 *
+    all:
+      - Implemented the SNMP over TLS and SNMP over DTLS protocols [RFC-to-be]
+        See http://www.net-snmp.org/wiki/index.php/TUT:Using_TLS
+      - Implemented the "Transport Security Model" [RFC5591]
+      - Generic host-specific configuration .conf files are now read.
+	See the HOST-SPECIFIC FILES section of the snmp.conf manual page
+        and http://www.net-snmp.org/wiki/index.php/Configuration
+      - Include statements can now be used in .conf files.
+        See http://www.net-snmp.org/wiki/index.php/Configuration
+
+    snmpd:
+      - Fix handling of multiple matching VACM entries. (Use the "best"
+	match, rather than the first one). Reported by Adam Lewis. Note
+	that this could potentially affect the behaviour of existing access
+	control configurations.
+      - Agent will no longer call table handlers if a set request for the
+	handler has invalid indexes
+      - table_data/tdata next handler will not be called during get
+	processing if no valid rows are found for the handler
+      - [PATCH 2952708]: Added Perl implementation of BRIDGE-MIB
+      - moved all functions defined in libnetsnmphelpers to
+	libnetsnmpagent. libnetsnmphelpers is now an empty library.
+      - Implemented the TSM-MIB and the TLSTM-MIB
+      - new API for indicating that persistent store needs to be saved
+	after the current request finishes processing
+      - [PATCH 2931446]: make the load averages writable.
+
+    apps:
+      - A new tool 'net-snmp-cert' that easily creates and manages
+        X.509 certificates for use with the SNMP over (D)TLS protocols.
+      - Added an 'agentxtrap' command to send notifications via AgentX
+        (See http://www.net-snmp.org/wiki/index.php/TUT:agentxtrap for details)
+      - -T command line flag can be used to pass configuration
+        directly to transports that can accept configuration tokens
+      - A new 'snmptls' command for manipulating the agent's TLS configuration
+
+    snmplib:
+      - A more modular transport subsystem that allows third party
+        extensions and dependencies for code reuse.
+      - New transport functions: f_config, f_open, f_copy and f_setup_session
+      - Transports can now specify session defaults
+        - E.G. dtlsudp: auto-sets the SNMP version and the security model.
+      - [PATCH 2942940]: Add a new function, netsnmp_parse_args, that is
+	like snmp_parse_args but takes an additional bitmask, flags, to
+	affect the behaviour. Also remove the magic handling of some
+	application names.
+      - A new X.509 certificate API for indexing and reading certificates
+      - new experimental row creation API which uses a state machine
+        to try really hard to create a row from a given varbind list
+      - netsnmp_container enhancements:
+        - added a free_item function
+        - added a CONTAINER_FREE_ALL macro/function
+        - added an interface for duplicating a container (CONTAINER_DUP)
+        - added a remove function to container_iterators
+	- added an ability to set options on binary_array containers
+      - new snmp token logOption allows specifying log destinations
+        via configuration conf files
+      - A very significant reduction in compiler warning output
+      - new experimental simple state machine handling API
+
+    building:
+      - Support for a stream-line stripped down version of internal
+        OpenSSL support using --with-openssl=internal.
+      - Do not require that the UDP transport is included.
+      - Building Net-SNMP with dmalloc support enabled is again possible.
+
+    mib2c:
+      - mib2c can now optionally run sed on generated code
+
+    testing:
+      - A brand new test infrastructure supporting multiple test suites
+        See perldoc testing/RUNFULLTESTS for details
+
+    python:
+      - walking broken agents won't cause an infinite loop
+
+    win32:
+      - IPv6 is only supported under Cygwin 1.7 or later.
+      - [BUG 2939168]: byte order of udpLocalPort is now correct.
+      - [BUG 2939168]: fixed test infrastructure ("make test"). This has
+	been fixed by using the proper environment separator character and
+	by adding the path of the netstat executable for Cygwin in
+	testing/TESTCONF.sh.
+      - building with another OpenSSL package than the Cygwin-provided
+	packages openssl and openssl-devel is again possible.
+      - running the regression test suite is again possible ('make test').
+      - winExtDLL compiles now under MinGW.
+      - the snmpd.conf keyword 'extend' is now supported under MinGW
+      - the snmptrapd.conf keyword traphandle is now supported under MinGW
+
+    qnx6:
+      - [PATCH 2836895]: support for QNX6
+
+*5.5*
 
     All applications:
       - Added the ability to "alias" transports to a more simple name
@@ -460,7 +555,7 @@
        - Enable these talbles by specifying --enable-mfd-rewrites to configure.
        - Most of these tables have IPv6 support as well.
      - ifIndex no longer changes when interfaces are added/removed, and all
-         tables/object wiil now use the same ifIndex for the same interface.
+         tables/object will now use the same ifIndex for the same interface.
 
    Solaris:
      - new experimental support for ucd-snmp/lmSensors MIB module
@@ -494,7 +589,7 @@
 
  Ports:
    - Linux 2.6 improvements
-   - Win32 Suport for TCP and UDP over IPv6 via Winsock version 2
+   - Win32 support for TCP and UDP over IPv6 via Winsock version 2
    - Win32 fixes in many places.
    - Win32 service support for snmptrapd
    - Win32 support for snmpconf
@@ -687,7 +782,7 @@
 *5.0.4*
 
    During the testing for release 5.0.4, a release candidate was uploaded
-   to Sourceforge and marked as hidden. For variouse reasons, the release
+   to Sourceforge and marked as hidden. For various reasons, the release
    was delayed and further changes and fixes were made.  However, the 
    release candidate files still appeared on the public FTP server and our
    mirrors. To avoid the confusion that could occur to users who may have
@@ -957,7 +1052,7 @@
       (see the trapsess section of the snmpd.conf manual page)
     - index matching in oids has been improved
       (see the snmpcmd manual page on -Ox, -OE, and -Ob).
-    - snmptrapd has new formating directives.
+    - snmptrapd has new formatting directives.
       (see the snmptrapd manual page on format1 and format2).
     - the agent can listen to multiple ports.
     - the agent can be restricted to listening on only certain interfaces.
@@ -1134,7 +1229,7 @@
     - many misc bug fixes, as always.
 
   Ports:
-    - snmpnetstat has been ported to the win32 enviornment.
+    - snmpnetstat has been ported to the win32 environment.
 
 *3.5.3*
     - Bug fixes, including row creation sets to mib modules should work again.
@@ -1290,7 +1385,7 @@
     - FAQ file!
     - bug-report script!
     - Agent can read .conf files from more places:
-      - SNMPCONFPATH enviornment variable.
+      - SNMPCONFPATH environment variable.
       - command line options:  -c FILE and -C.
     - Agent can send coldstart and authentication traps.
     - All requests/patches/questions should go to 
diff --git a/PORTING b/PORTING
index 01e0954..2d453f6 100644
--- a/PORTING
+++ b/PORTING
@@ -25,7 +25,7 @@
 the package to new architectures rarely take advantage of this setup
 and send me patches with lots of '#ifdef ARCH' type C code in it.  Let
 me say up front, I *hate* this type of coding now (even though I used
-to use it a lot).  What is better is to check for the necissary
+to use it a lot).  What is better is to check for the necessary
 functionality using the configure script and then use the results of
 those tests.
 
diff --git a/README b/README
index d279ce2..28b666b 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-	       README file for net-snmp Version: 5.5.2
+	       README file for net-snmp Version: 5.6.2
 
 DISCLAIMER
 
@@ -349,6 +349,8 @@
     Peter Martin <pnmartin@users.sourceforge.net>
     Thomas Lackey <telackey@users.sourceforge.net>
     Joe Buehler <jbuehler@spirentcom.com>
+    Anders Persson <apersson@users.sourceforge.net>
+    Rojer <rojer@users.sourceforge.net>
     Bart Van Assche <bart.vanassche@gmail.com>
 
   We've probably forgotten people on this list.  Let us know if you've
diff --git a/README.agent-mibs b/README.agent-mibs
index 428024f..53f1caa 100644
--- a/README.agent-mibs
+++ b/README.agent-mibs
@@ -428,6 +428,19 @@
  sctpLookupRemPrimIPAddrTable L         5.5     C sctp-mib/=
  sctpLookupRemIPAddrTable     L         5.5     C sctp-mib/=
 
+------------------------------------------------------------------------------
+SNMP-TSM-MIB
+ snmpTsmStats                 A         5.6     D tsm-mib/snmpTsmStats/=
+ snmpConfiguration            A         5.6     W tsm-mib/=
+
+------------------------------------------------------------------------------
+TLSTM-MIB
+ snmpTlstmSession             A         5.6     W tlstm-mib/=/*
+ tlstmCertificateMapping.*    A         5.6     w tlstm-mib/=
+ tlstmCertToTSNTable          A         5.6     D tlstm-mib/=/*
+ tlstmParamsTable             A         5.6     D tlstm-mib/=/*
+ tlstmAddrTable               A         5.6     D tlstm-mib/=/*
+
 ==============================================================================
 
 Misc notes
@@ -445,3 +458,5 @@
  proper context support                   5.2
  DISMAN-EVENT-MIB implementation rewrite  5.3
  AgentX, host, disman/event by default    5.3
+ SSH Transport module                     5.5
+ (D)TLS Transport module                  5.6
diff --git a/README.snmpv3 b/README.snmpv3
index 263c955..99e4238 100644
--- a/README.snmpv3
+++ b/README.snmpv3
@@ -5,7 +5,9 @@
 doesn't ;-) --Wes:
 
 Note: SHA authentication and DES/AES encryption support is only available
-if you have OpenSSL installed.
+if you have OpenSSL installed or if you've compiled using
+--with-openssl=internal.  If you use --with-openssl=internal please
+read the documentation in snmplib/openssl/README for important details.
 
 Note: encryption support now *is* enabled in the binary releases downloadable
 from the net-snmp web site.
diff --git a/README.win32 b/README.win32
index e954aea..a8b6bf0 100644
--- a/README.win32
+++ b/README.win32
@@ -11,7 +11,7 @@
 
 The remainder of this guide has the following sections :
 
-Status as of 14-Oct-2006 for Win32 platforms
+Current Status for Win32 platforms
 Interactions with Other Vendor's Products
 Running Net-SNMP as a replacement for the Microsoft SNMP service
 Co-existence with Microsoft SNMP services
@@ -39,12 +39,13 @@
 
 ***************************************************************************
 *
-* Status as of 14-Oct-2006 for Win32 platforms
+* Status as of 21-Sep-2010 for Win32 platforms
 *
 ***************************************************************************
 
 All applications build with Microsoft Visual C++ 6.0, Microsoft Development
-Environment 2003 (MSVC 7.0/7.1), gcc under Cygwin, and gcc under MinGW.  
+Environment 2003 (MSVC 7.0/7.1), Microsoft Visual Studio 2005, Microsoft
+Visual Studio 2008, gcc under Cygwin and gcc under MinGW.  
 
   -  All of the applications work (snmpwalk, snmpget, snmpset, snmptrap, ...).
   -  The system, snmp, ip, tcp, udp and icmp MIB-groups work (requires the
@@ -55,14 +56,14 @@
   -  The TCP/IPv6 and UDP/IPv6 transports compile but are not tested.
   -  Extending the agent to support enterprise-specific MIBs works.
   -  Running the agent on a non-standard UDP or TCP port works.
-  -  Snmpd can be registered as a Windows NT/2000/XP service.
-  -  Snmptrapd can be registered as a Windows NT/2000/XP service.
+  -  Snmpd can be registered as a Windows service.
+  -  Snmptrapd can be registered as a Windows service.
   -  Some build environments allow long pathnames that contain
      embedded spaces.  As this is not true for Cygwin "configure",
      the documented example scripts will refer to "c:/usr"
      as the base directory for installed Net-SNMP software.
   -  When using the winExtDLL extension agent, the Net-SNMP agent will
-     load the Windows SNMP Service extension DLLs
+     load the Windows SNMP Service extension DLLs.
 
 The next subsection relates to items that are built using Visual Studio
 
@@ -99,9 +100,9 @@
      Check the Services panel to be sure no other SNMP program conflicts. See
      the section titled 'Co-existence with Microsoft SNMP services' below.
 
-  -  Running the Net-SNMP agent instead of the MS supplied one works
-     (at the loss of most of the functionality).   See the section titled 
-     'Co-existence with Microsoft SNMP services' below.
+  -  The Net-SNMP agent can be used instead of the MS supplied one while
+     retaining all functionality and with slightly better SNMP conformance.
+     See the section titled 'Co-existence with Microsoft SNMP services' below.
 
   -  The Net-SNMP agent does not use the MS SNMP.dll, therefore it cannot 
      run as an extensible part of the MS agent.  It is possible to use a third
@@ -161,9 +162,9 @@
 the default Windows (2003) extensions included with Windows.  Other Net-SNMP 
 modules take precedence over the modules loaded by winExtDLL.
 
-The binary install of Net-SNMP includes shortcuts in the Start menu for registering 
-and unregistering snmpd and snmptrapd as a service with the correct command line 
-options.
+The binary install of Net-SNMP includes shortcuts in the Start menu for
+registering and unregistering snmpd and snmptrapd as a service with the
+correct command line options.
 
 A simple test to see if winExtDLL is working is to get the sysDescr string.
 
@@ -233,7 +234,10 @@
 Compiling Net-SNMP with the winExtDLL extension (MSVC)
 ------------------------------------------------------
 
-When building with MSVC 6, the Microsoft Platform SDK is required.
+When building with MSVC 6, the Microsoft Platform SDK is required. Note: the
+most recent Platform SDK version that is still compatible with MSVC 6 is the
+February 2003 edition. This edition is no longer available online but can be
+ordered via http://mssdk.orderport.net/22221848/showall.asp.
 
 Configure / nmake:
 
@@ -406,10 +410,6 @@
 If you are using Microsoft Visual Studio 6.0, you will have to install the
 Platform SDK (PSDK) first.
 
-The Windows Server 2003 Platform SDK can be downloaded via the following URL
-(this is the most recent version of the PSDK that is still compatible with
-MSVC 6.0): http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
-
 Once the PSDK has been installed, select the following action from the Start
 Menu: Programs / Microsoft Windows SDK / Visual Studio Registration / Windows
 SDK Configuration Tool.
@@ -462,25 +462,23 @@
 'snmpwalk', etc...).  All of these projects require the .lib created by 
 the libsnmp project.
 
-The agent requires the core library plus the other three library projects
-('libagent', libhelpers' and 'netsnmpmibs') together with the main agent
-project ('snmpd').
+The agent requires the core library plus the other two library projects
+('libagent' and 'netsnmpmibs') together with the main agent project ('snmpd').
 
 The final application project is the trap handler 'snmptrapd'.  This also
-requires the agent libraries ('libagent', 'libhelpers' and 'netsnmpmibs')
-as well as the core development library.
+requires the agent libraries ('libagent' and 'netsnmpmibs') as well as the
+core development library.
 
 There is a Debug version and Release version for each subproject.  This is so
 the Debug and Release versions of an application can be built and tested
 separately.
 
-Both VC++ 6.0 and 7.1 have been tested.  Building with earlier Microsoft
-compiler versions is no longer supported.
+VC++ 6.0, 7.1, 8.0 (2005) and 9.0 (2008) have been tested.  Building with
+earlier Microsoft compiler versions is no longer supported.
 
-Note:  Compiling Net-SNMP using MSVC 2003 .NET (MSVC 7.1) will add a 
-       dependency of MSVCR71.DLL for NETSNMP.DLL and all applications.
-       Search msdn.microsoft.com for msvcr71.dll for more information
-       on distributing applications compiled with MSVC 2003 .Net.
+Note: if you want to distribute the generated executable, you will also need
+to distribute the Microsoft Visual Studio Redistributable Package. Check the
+EULA included with that package before redistributing it.
 
 OpenSSL is required to support the encryption capabilities in SNMPv3,
 or SHA authentication.
@@ -578,7 +576,7 @@
     To compile with the Platform SDK, the Platform SDK must already be 
     installed.  See the section 'Installing Platform SDK' for details.
 
-    To use the IPv6 transports, you must be using Windows 98 or later.
+    To use the IPv6 transports, Windows 98 or later is required.
 
     See the section 'Running Net-SNMP as a replacement for the Microsoft 
     SNMP service' for important information on using the winExtDLL agent.
@@ -694,9 +692,8 @@
 *
 ***************************************************************************
 
-The win32.dsw workspace allows to build the agent that provides mib-II objects
-for network interface layers, and the IP, ICMP, TCP and UDP tables. Proceed as
-follows:
+The win32.dsw and win32dll.dsw workspaces allow to build the agent and the
+applications. Proceed as follows:
 
 1. Update the version stamp in win32\net-snmp\net-snmp-config.h.  The current
    version can be found in the Unix configure script (top level folder) by 
@@ -719,113 +716,8 @@
 
      For example: #define INSTALL_BASE "c:/usr".  
 
-4. Build the applications
-
-   Static build (does not use NetSNMP.DLL)
-   =======================================
-
-   MS VC++ 6.0:
-   ------------
-   a. Open win32.dsw.
-   b. Click "Build->Batch Build..."  
-   c. Set Release and/or Debug in 'Project configurations' to suit.
-   d. Click "ReBuild All".
-   e. When building is done, View the Output window, clip and
-      save to a text file if there is some information to share.
-   f. Click "File->Close Workspace".
-
-   MS VC++ 7.0+:
-   -------------
-   a.  Open win32.dsw.
-   b.  Click "Yes to All" to convert the workspace
-   c.  Click "Build->Configuration Manager" and select either Release or Debug for 
-       'Active Solution Configuration' and click "Close"
-   d.  Right-click the "libagent" project, and select "Rebuild"
-   e.  Right-click the "libhelpers" project, and select "Rebuild"
-   f.  Right-click the "libnetsnmptrapd" project, and select "Rebuild"
-   g.  Right-click the "snmplib" project, and select "Rebuild"
-   h.  Right-click the "netsnmpmibs(sdk)" project, and select "Rebuild"
-   i.  Click "Build->Batch Build..." 
-   j.  Set Release and/or Debug in 'Project configurations' to suit making
-       sure libagent, libhelpers, libnetsnmptrapd, snmplib and netsnmpmibs are 
-       NOT selected.
-   k.  Click "Rebuild".
-   l.  When building is done, View the Output window, clip and
-       save to a text file if there is some information to share.
-   m.  Click "File->Close Solution".
-
-   Dynamic build (uses NetSNMP.DLL)
-   ================================
-
-   Complete the section 'Microsoft Visual C++ - Workspace - Building the DLL'.
-   This will create the Net-SNMP library DLL which is needed by the 
-   applications and will enable DLL support in net-snmp-config.h.
-
-   MS VC++ 6.0:
-   ------------
-   a. Open win32.dsw.
-   b. Click "Build->Batch Build..."  
-   c. Set Release and/or Debug in 'Project configurations' to suit for the 
-      applications.  Make sure the following are NOT selected:
-
-      libagent
-      libhelpers
-      libsnmp
-      netsnmpmib(sdk)
-      libnetsnmptrapd
-
-   d. Click "ReBuild All".
-   e. When building is done, View the Output window, clip and
-      save to a text file if there is some information to share.
-   f. Click "File->Close Workspace".
-
-   MS VC++ 7.0+:
-   -------------
-   a. Open win32.dsw.
-   b. Click "Yes to All" to convert the workspace
-   c. Click "Build->Configuration Manager" and select either Release or Debug for 
-      'Active Solution Configuration' and click "Close"
-   d. Click "Build->Batch Build..." 
-   e. Set Release and/or Debug in 'Project configurations' to suit for the 
-      applications.  Make sure the following are NOT selected:
-
-      libagent
-      libhelpers
-      libsnmp
-      netsnmpmib(sdk)
-      libnetsnmptrapd
-
-   f. Click "Rebuild".
-   g. When building is done, View the Output window, clip and
-      save to a text file if there is some information to share.
-   h. Click "File->Close Solution".
-  
-6.  If the Perl modules are required, continue with the next section:
-    'Microsoft Visual C++ - Building the Perl SNMP modules'.
-
-    Otherwise, continue with the section: 
-    'Microsoft Visual C++ - Installing'
-
-
-***************************************************************************
-*
-* Microsoft Visual C++ - Workspace - Building the DLL
-*
-***************************************************************************
-
-1.  Update the version stamp in win32\net-snmp\net-snmp-config.h.  The current
-    version can be found in the Unix configure script (top level folder) by 
-    looking for the PACKAGE_VERSION variable.
-
-2.  Optional: Make a backup of the existing net-snmp-config.h which contains 
-    settings for a static build of Net-SNMP:
-
-    Copy win32\net-snmp\net-snmp-config.h to 
-    win32\net-snmp\static-config.h.
-
-3.  Open win32\net-snmp\net-snmp-config.h using a text editor.
-
-4.  *Change* the following line which is located near the top of the file:
+4.  When building DLLs instead of static libraries, *change* the following
+    line which is located near the top of the file:
 
         /* #undef NETSNMP_USE_DLL */
 
@@ -833,38 +725,20 @@
 
         #define NETSNMP_USE_DLL 1
 
-5.  Optional: Make a backup of the new net-snmp-config.h which contains 
-    settings for a DLL build of Net-SNMP:
+5. Build the agent and the applications
 
-    Copy win32\net-snmp\net-snmp-config.h to 
-    win32\net-snmp\dll-config.h.
-
-6. Build the DLL and the applications
-
-   MS VC++ 6.0:
-   ------------
-   a. Open libsdll.dsw.
+   a. Open win32.dsw (static build) or win32dll.dsw (dynamic build).
    b. Click "Build->Batch Build..."  
-   c. Set Release and/or Debug in 'Project configurations' to suit.
-   d. Click "Clean".  ** Do NOT skip this step. **
-   e. Click "Build->Batch Build..."  
-   f. Click "ReBuild All".
-   g. When building is done, View the Output window, clip and
+   c. Select the projects and configurations you want to build.
+   d. Click "ReBuild All".
+   e. When building is done, View the Output window, clip and
       save to a text file if there is some information to share.
-   h. Click "File->Close Workspace".
 
-   MS VC++ 7.0+:
-   -------------
-   a. Open win32dll.dsw.
-   b. Click "Yes to All" to convert the workspace
-   c. Click "Build->Batch Build..." 
-   d. Set Release and/or Debug in 'Project configurations' to suit.
-   e. Click "Clean".  ** Do NOT skip this step. **
-   f. Click "Build->Batch Build..." 
-   g. Click "Rebuild".
-   h. When building is done, View the Output window, clip and
-      save to a text file if there is some information to share.
-   i. Click "File->Close Solution".
+6.  If the Perl modules are required, continue with the next section:
+    'Microsoft Visual C++ - Building the Perl SNMP modules'.
+
+    Otherwise, continue with the section: 
+    'Microsoft Visual C++ - Installing'
 
 
 ***************************************************************************
@@ -878,21 +752,16 @@
 load it's own copy of the MIB, and sharing data between modules will
 not be possible.  For example, the conf module tests will fail.
 
-1.  Complete the section 'Microsoft Visual C++ - Building'.  This will build
-    the applications.  
+1.  Complete the section 'Microsoft Visual C++ - Building' and choose for
+    the dynamic build.  This will build the libraries, agent and applications.
 
     Note:  SNMPD.EXE and SNMPTRAPD.EXE are required for running the tests 
            against the SNMP Perl module.
 
-2.  Complete the section 'Microsoft Visual C++ - Workspace - Building the DLL'.
-    This will create the Net-SNMP library DLL which is needed for the Perl 
-    modules.  Note:  This step can be skipped if the DLL was already created
-    in step 1.
-
-3.  Install Net-SNMP as described in the 'Microsoft Visual C++ - Installing'
+2.  Install Net-SNMP as described in the 'Microsoft Visual C++ - Installing'
     section to install the applications, the DLL and the .lib files.
 
-4.  Continue with the Win32 section of the Perl README file located in 
+3.  Continue with the Win32 section of the Perl README file located in 
     perl\SNMP\README.
 
 
@@ -1013,26 +882,9 @@
 	ftp://ftp.openssl.org/source/
 
 
- 3. Once the OpenSSL libraries are built, you must copy them to the the MSVC 
-    directory:
+ 3. Once the OpenSSL libraries are built, copy the folder inc32\openssl to
+    C:\OpenSSL\Include\openssl and the folder out32dll to C:\OpenSSL\Lib\VC.
 
-    a.  Copy folder inc32\openssl to the include folder of MSVC++
-
-        Example: "C:\Program Files\Microsoft Visual Studio .NET 2003\
-                  Vc7\include\openssl\*.h"
-        Example: "C:\Program Files\Microsoft Visual Studio\
-                  VC98\include\openssl\*.h"
-
-    b.  Copy file out32dll\libeay32.lib to the lib folder of MSVC++
-
-        Example: "C:\Program Files\Microsoft Visual Studio .NET 2003\
-                  Vc7\lib\libeay32.lib"
-        Example: "C:\Program Files\Microsoft Visual Studio\
-                  VC98\lib\libeay32.lib"
-
-    c.  Copy file out32dll\libeay32.dll to your %windir%\system32 folder
-
-        Example: "C:\winnt\system32\libeay32.dll"
 
 Using a pre-compiled version
 ============================
@@ -1043,23 +895,6 @@
 
  2. Install the package to c:\OpenSSL.
 
- 3. Copy the header and library files to the the MSVC directory:
-
-    a.  Copy folder c:\OpenSSL\include\openssl to the include folder of 
-        MSVC++.
-
-        Example: "C:\Program Files\Microsoft Visual Studio .NET 2003\
-                  Vc7\include\openssl\*.h"
-        Example: "C:\Program Files\Microsoft Visual Studio\
-                  VC98\include\openssl\*.h"
-
-    b.  Copy file c:\OpenSSL\lib\VC\libeay32.lib to the lib folder of MSVC++.
-
-        Example: "C:\Program Files\Microsoft Visual Studio .NET 2003\
-                  Vc7\lib\libeay32.lib"
-        Example: "C:\Program Files\Microsoft Visual Studio\
-                  VC98\lib\libeay32.lib"
-
 
 Project changes
 ===============
@@ -1068,38 +903,10 @@
 
 	#define NETSNMP_USE_OPENSSL 1
 
- 2. Open Visual Studio, add the link line to the Project Settings
-    for all the applications, and especially for the libsnmp_dll project,
-    for as you know, a .DLL is an application.
-    You MUST do this for libsdll.dsw, and either win32.dsw or win32sdk.dsw,
-    whichever you use.
-
-   MS VC++ 6.0:
-   ------------
-   a.  Click Project->Settings.  
-   b.  Highlight the names of all projects except libsnmp, libagent, libhelpers,
-       libnetsnmptrapd, netsnmpmibs, netsnmpmibssdk.
-   c.  Select the Link section.
-   d.  Add the next line to the 'Object/Library Modules' list for Debug and 
-       Release versions:
-
-         libeay32.lib 
-
-   MS VC++ 7.0+:
-   -------------
-   a.  For each project (except libsnmp, libagent, libhelpers, libnetsnmptrapd,
-       netsnmpmibs, netsnmpmibssdk), click Project->Properties. 
-   b.  For Configuration, select 'Release'
-   c.  Click Linker and then Input
-   d.  Add to the 'Additional Dependencies' section:
-
-         libeay32.lib 
-
-   e.  For Configuration, select 'Debug'
-   f.  Click Linker and then Input
-   g.  Add to the 'Additional Dependencies' section:
-
-         libeay32.lib 
+ 2. Open Visual Studio, open the Tools menu and select Options. Go to
+    Projects and Solutions and select VC++ Directories. Add
+    C:\OpenSSL\Include to the list of include directories and
+    C:\OpenSSL\Lib\VC to the list of library directories.
 
  3. Continue with the section 'Microsoft Visual C++ - Building"
 
@@ -1244,18 +1051,17 @@
 *
 ***************************************************************************
 
-An alternate way to build Net-SNMP for win32 is to use Cygnus's cygwin32
-environment.  Information on the Cygnus cygwin32 environment is available
+An alternate way to build and run Net-SNMP on Win32 is to use the Cygwin
+environment.  Detailed information about the Cygwin environment is available
 on the web at: http://sources.redhat.com/cygwin/.
 
 Cygwin allows you to compile almost the complete agent and applications.
-The following configure options creates a working set of programs:
+As an example, the following configure options create a working set of
+programs:
 
 ./configure \
-	--disable-shared \
 	--with-mib-modules="host agentx disman/event-mib examples/example" \
 	--with-out-mib-modules=host/hr_network \
-        --disable-embedded-perl --without-perl-modules \
 
 If you want to disable SNMPv3 auth and privacy features, add:
 	--without-openssl \
@@ -1263,23 +1069,14 @@
 If you want to use IPv6 transports, add:
 	--enable-ipv6
 
-Note:  The source code should *not* be in a folder that contains a space.  For
-       example, compiling in your 'My Documents' or your Desktop (usually
-       c:\Documents and Settings\xxxx\Desktop) is not supported.
-        
-This has been tested for Windows 98 and Windows NT 4.0.  In order for
-the process part of the host resources MIB to work under NT you will need
-to get hold of the PSAPI.DLL. This available under the download section
-of www.microsoft.com.  The DLL is included with Windows 2000 and XP,
-and is also part of the VC++ distribution.  The IPHLPAPI library is
-part of the "Microsoft Platform SDK", which is also available from
-www.microsoft.com.  See the section "Installing Platform SDK" for details.
+Note: the source code should *not* be in a folder that contains a space.
+For example, compiling in your 'My Documents' folder or your Desktop folder
+(usually c:\Documents and Settings\xxxx\Desktop) is not supported.
 
-Earlier releases of Cygwin may need to use the configure flag
-	--with-libs="-lregex -libphlpapi"
-but this regular expression support has since been incorporated
-into the main Cygwin package, and it is no longer necessary to
-include it separately.
+A note for Windows NT users: in order for the process part of the host
+resources MIB (hr_swrun) to work under Windows NT you will need to get hold
+of PSAPI.DLL. This DLL is available under the download section of
+www.microsoft.com, and is also included in the VC++ distribution.
 
 If the folder that Net-SNMP was installed to is ever changed, modify the 
 system environment variables or registry keys as explained in the 
diff --git a/acconfig.h b/acconfig.h
index 5491941..f3f7bfe 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -1,5 +1,9 @@
 /* 
  * net-snmp configuration header file
+ *
+ * NOTE: DO NOT EDIT include/net-snmp/net-snmp-config.h.in as your changes
+ *       will be overwritten. This content is in acconfig.h and merged
+ *       into include/net-snmp/net-snmp-config.h.in by autoheader.
  */
 /* Portions of this file are subject to the following copyright(s).  See
  * the Net-SNMP's COPYING file for more details and other copyrights
@@ -40,7 +44,7 @@
 
 /* If you have openssl 0.9.7 or above, you likely have AES support. */
 #undef NETSNMP_USE_OPENSSL
-#if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_OPENSSL_AES_H) && defined(HAVE_AES_CFB128_ENCRYPT)
+#if (defined(NETSNMP_USE_OPENSSL) && defined(HAVE_OPENSSL_AES_H) && defined(HAVE_AES_CFB128_ENCRYPT)) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
 #define HAVE_AES 1
 #endif
 
@@ -256,7 +260,7 @@
 #ifdef WIN32
 #define NETSNMP_OSTYPE NETSNMP_WIN32ID
 #endif
-#if defined(aix3) || defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix3) || defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
 #define NETSNMP_OSTYPE NETSNMP_AIXID
 #endif
 #if defined(darwin) && (darwin >= 8)
@@ -383,7 +387,7 @@
 
 /*  This is defined if support for the TLS transport domain is
     available.   */
-#undef NETSNMP_TRANSPORT_TLS_DOMAIN
+#undef NETSNMP_TRANSPORT_TLSBASE_DOMAIN
 
 /*  This is defined if support for the Alias transport domain is
     available.   */
@@ -397,9 +401,16 @@
     available.   */
 #undef NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
 
+/*  This is defined if support for the TLS/TCP transport domain is
+    available.   */
+#undef NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+
 /*  This is defined if support for stdin/out transport domain is available.   */
 #undef NETSNMP_TRANSPORT_STD_DOMAIN
 
+/*  This is defined if support for the IPv4Base transport domain is available.   */
+#undef NETSNMP_TRANSPORT_IPV4BASE_DOMAIN
+
 /* define this if the USM security module is available */
 #undef NETSNMP_SECMOD_USM
 
diff --git a/aclocal.m4 b/aclocal.m4
index de594b8..cd80c74 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.10.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.11 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
diff --git a/agent/Makefile.depend b/agent/Makefile.depend
index 4806b28..27db25a 100644
--- a/agent/Makefile.depend
+++ b/agent/Makefile.depend
@@ -8,12 +8,16 @@
 ./agent_handler.lo: ../include/net-snmp/net-snmp-includes.h
 ./agent_handler.lo:  ../include/net-snmp/definitions.h
 ./agent_handler.lo: ../include/net-snmp/types.h 
+./agent_handler.lo: ../include/net-snmp/library/oid.h
 ./agent_handler.lo: ../include/net-snmp/library/types.h
 ./agent_handler.lo: ../include/net-snmp/library/snmp_api.h
 ./agent_handler.lo: ../include/net-snmp/varbind_api.h
 ./agent_handler.lo: ../include/net-snmp/library/snmp_client.h
 ./agent_handler.lo: ../include/net-snmp/pdu_api.h
 ./agent_handler.lo: ../include/net-snmp/library/asn1.h
+./agent_handler.lo: ../include/net-snmp/output_api.h
+./agent_handler.lo: ../include/net-snmp/library/snmp_debug.h
+./agent_handler.lo: ../include/net-snmp/library/snmp_logging.h
 ./agent_handler.lo: ../include/net-snmp/session_api.h
 ./agent_handler.lo: ../include/net-snmp/library/callback.h
 ./agent_handler.lo: ../include/net-snmp/library/snmp_transport.h
@@ -21,8 +25,12 @@
 ./agent_handler.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./agent_handler.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./agent_handler.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./agent_handler.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agent_handler.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agent_handler.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agent_handler.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./agent_handler.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agent_handler.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agent_handler.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agent_handler.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./agent_handler.lo: ../include/net-snmp/library/ucd_compat.h
@@ -44,7 +52,6 @@
 ./agent_handler.lo: ../include/net-snmp/library/check_varbind.h
 ./agent_handler.lo: ../include/net-snmp/library/container.h
 ./agent_handler.lo: ../include/net-snmp/library/factory.h
-./agent_handler.lo: ../include/net-snmp/library/snmp_logging.h
 ./agent_handler.lo: ../include/net-snmp/library/container_binary_array.h
 ./agent_handler.lo: ../include/net-snmp/library/container_list_ssll.h
 ./agent_handler.lo: ../include/net-snmp/library/container_iterator.h
@@ -54,11 +61,10 @@
 ./agent_handler.lo: ../include/net-snmp/config_api.h
 ./agent_handler.lo: ../include/net-snmp/library/read_config.h
 ./agent_handler.lo: ../include/net-snmp/library/default_store.h
+./agent_handler.lo: ../include/net-snmp/net-snmp-config.h
 ./agent_handler.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./agent_handler.lo: ../include/net-snmp/library/snmp_enum.h
 ./agent_handler.lo: ../include/net-snmp/library/vacm.h
-./agent_handler.lo: ../include/net-snmp/output_api.h
-./agent_handler.lo: ../include/net-snmp/library/snmp_debug.h
 ./agent_handler.lo: ../include/net-snmp/snmpv3_api.h
 ./agent_handler.lo: ../include/net-snmp/library/snmpv3.h
 ./agent_handler.lo: ../include/net-snmp/library/transform_oids.h
@@ -67,6 +73,7 @@
 ./agent_handler.lo: ../include/net-snmp/library/lcd_time.h
 ./agent_handler.lo: ../include/net-snmp/library/snmp_secmod.h
 ./agent_handler.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./agent_handler.lo: ../include/net-snmp/library/snmptsm.h
 ./agent_handler.lo: ../include/net-snmp/library/snmpusm.h
 ./agent_handler.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agent_handler.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -104,20 +111,21 @@
 ./agent_handler.lo: ../include/net-snmp/agent/table_container.h
 ./agent_handler.lo: ../include/net-snmp/agent/table_array.h
 ./agent_handler.lo: ../include/net-snmp/agent/mfd.h
-./agent_index.lo: ../include/net-snmp/net-snmp-config.h
-./agent_index.lo: ../include/net-snmp/system/linux.h
-./agent_index.lo: ../include/net-snmp/system/sysv.h
-./agent_index.lo: ../include/net-snmp/system/generic.h
-./agent_index.lo: ../include/net-snmp/machine/generic.h 
+./agent_handler.lo: ../include/net-snmp/agent/snmp_get_statistic.h
+./agent_index.lo: ../include/net-snmp/net-snmp-config.h 
 ./agent_index.lo: ../include/net-snmp/net-snmp-includes.h
-./agent_index.lo: ../include/net-snmp/definitions.h
+./agent_index.lo:  ../include/net-snmp/definitions.h
 ./agent_index.lo: ../include/net-snmp/types.h 
+./agent_index.lo: ../include/net-snmp/library/oid.h
 ./agent_index.lo: ../include/net-snmp/library/types.h
 ./agent_index.lo: ../include/net-snmp/library/snmp_api.h
 ./agent_index.lo: ../include/net-snmp/varbind_api.h
 ./agent_index.lo: ../include/net-snmp/library/snmp_client.h
 ./agent_index.lo: ../include/net-snmp/pdu_api.h
 ./agent_index.lo: ../include/net-snmp/library/asn1.h
+./agent_index.lo: ../include/net-snmp/output_api.h
+./agent_index.lo: ../include/net-snmp/library/snmp_debug.h
+./agent_index.lo: ../include/net-snmp/library/snmp_logging.h
 ./agent_index.lo: ../include/net-snmp/session_api.h
 ./agent_index.lo: ../include/net-snmp/library/callback.h
 ./agent_index.lo: ../include/net-snmp/library/snmp_transport.h
@@ -125,8 +133,12 @@
 ./agent_index.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./agent_index.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./agent_index.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./agent_index.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agent_index.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agent_index.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agent_index.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./agent_index.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agent_index.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agent_index.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agent_index.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./agent_index.lo: ../include/net-snmp/library/ucd_compat.h
@@ -148,7 +160,6 @@
 ./agent_index.lo: ../include/net-snmp/library/check_varbind.h
 ./agent_index.lo: ../include/net-snmp/library/container.h
 ./agent_index.lo: ../include/net-snmp/library/factory.h
-./agent_index.lo: ../include/net-snmp/library/snmp_logging.h
 ./agent_index.lo: ../include/net-snmp/library/container_binary_array.h
 ./agent_index.lo: ../include/net-snmp/library/container_list_ssll.h
 ./agent_index.lo: ../include/net-snmp/library/container_iterator.h
@@ -161,8 +172,6 @@
 ./agent_index.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./agent_index.lo: ../include/net-snmp/library/snmp_enum.h
 ./agent_index.lo: ../include/net-snmp/library/vacm.h
-./agent_index.lo: ../include/net-snmp/output_api.h
-./agent_index.lo: ../include/net-snmp/library/snmp_debug.h
 ./agent_index.lo: ../include/net-snmp/snmpv3_api.h
 ./agent_index.lo: ../include/net-snmp/library/snmpv3.h
 ./agent_index.lo: ../include/net-snmp/library/transform_oids.h
@@ -171,6 +180,7 @@
 ./agent_index.lo: ../include/net-snmp/library/lcd_time.h
 ./agent_index.lo: ../include/net-snmp/library/snmp_secmod.h
 ./agent_index.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./agent_index.lo: ../include/net-snmp/library/snmptsm.h
 ./agent_index.lo: ../include/net-snmp/library/snmpusm.h
 ./agent_index.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agent_index.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -208,22 +218,33 @@
 ./agent_index.lo: ../include/net-snmp/agent/table_container.h
 ./agent_index.lo: ../include/net-snmp/agent/table_array.h
 ./agent_index.lo: ../include/net-snmp/agent/mfd.h
+./agent_index.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./agent_index.lo: ../include/net-snmp/agent/agent_callbacks.h
 ./agent_index.lo: ../include/net-snmp/agent/agent_index.h snmpd.h
 ./agent_index.lo: mibgroup/struct.h ../agent/mibgroup/mib_module_includes.h
 ./agent_index.lo: mibgroup/examples/example.h mibgroup/testhandler.h
 ./agent_index.lo: mibgroup/host/hr_storage.h mibgroup/host/hr_filesys.h
-./agent_index.lo: mibgroup/host/hr_swinst.h mibgroup/host/hr_swrun.h
-./agent_index.lo: mibgroup/host/hr_system.h mibgroup/host/hr_device.h
-./agent_index.lo: mibgroup/host/hr_other.h mibgroup/host/hr_proc.h
-./agent_index.lo: mibgroup/host/hr_network.h mibgroup/host/hr_print.h
-./agent_index.lo: mibgroup/host/hr_disk.h mibgroup/host/hr_partition.h
-./agent_index.lo: mibgroup/examples/scalar_int.h mibgroup/examples/watched.h
-./agent_index.lo: mibgroup/examples/data_set.h
-./agent_index.lo: mibgroup/examples/delayed_instance.h mibgroup/Rmon/rows.h
-./agent_index.lo: mibgroup/Rmon/agutil.h mibgroup/Rmon/statistics.h
-./agent_index.lo: mibgroup/Rmon/alarmTable.h mibgroup/Rmon/history.h
-./agent_index.lo: mibgroup/Rmon/event.h mibgroup/disman/event/mteScalars.h
+./agent_index.lo: mibgroup/host/hrSWInstalledTable.h
+./agent_index.lo: mibgroup/host/hrSWRunTable.h mibgroup/host/hr_system.h
+./agent_index.lo: mibgroup/host/hr_device.h mibgroup/host/hr_other.h
+./agent_index.lo: mibgroup/host/hr_proc.h mibgroup/host/hr_network.h
+./agent_index.lo: mibgroup/host/hr_print.h mibgroup/host/hr_disk.h
+./agent_index.lo: mibgroup/host/hr_partition.h mibgroup/examples/scalar_int.h
+./agent_index.lo: mibgroup/examples/watched.h mibgroup/examples/data_set.h
+./agent_index.lo: mibgroup/examples/delayed_instance.h
+./agent_index.lo: mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.h
+./agent_index.lo: mibgroup/Rmon/rows.h mibgroup/Rmon/agutil.h
+./agent_index.lo: mibgroup/Rmon/statistics.h mibgroup/Rmon/alarmTable.h
+./agent_index.lo: mibgroup/Rmon/history.h mibgroup/Rmon/event.h
+./agent_index.lo: mibgroup/host/data_access/swinst.h
+./agent_index.lo: mibgroup/host/data_access/swrun.h
+./agent_index.lo: mibgroup/host/hrSWRunPerfTable.h
+./agent_index.lo: mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.h
+./agent_index.lo: mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h
+./agent_index.lo: mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h
+./agent_index.lo: mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h
+./agent_index.lo: mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h
+./agent_index.lo: mibgroup/disman/event/mteScalars.h
 ./agent_index.lo: mibgroup/disman/event/mteTrigger.h
 ./agent_index.lo: mibgroup/disman/event/mteTriggerTable.h
 ./agent_index.lo: mibgroup/disman/event/mteTriggerDeltaTable.h
@@ -249,14 +270,14 @@
 ./agent_index.lo: mibgroup/mibII/at.h mibgroup/mibII/tcp.h
 ./agent_index.lo: mibgroup/mibII/icmp.h mibgroup/mibII/udp.h
 ./agent_index.lo: mibgroup/mibII/vacm_vars.h mibgroup/mibII/setSerialNo.h
-./agent_index.lo: mibgroup/mibII/ipv6.h mibgroup/ucd-snmp/proc.h
-./agent_index.lo: ../agent/mibgroup/mibdefs.h mibgroup/ucd-snmp/versioninfo.h
-./agent_index.lo: mibgroup/ucd-snmp/pass.h mibgroup/ucd-snmp/pass_persist.h
-./agent_index.lo: mibgroup/ucd-snmp/disk.h mibgroup/ucd-snmp/loadave.h
-./agent_index.lo: mibgroup/agent/extend.h mibgroup/ucd-snmp/errormib.h
-./agent_index.lo: mibgroup/ucd-snmp/file.h mibgroup/ucd-snmp/dlmod.h
-./agent_index.lo: mibgroup/ucd-snmp/proxy.h mibgroup/ucd-snmp/logmatch.h
-./agent_index.lo:  mibgroup/ucd-snmp/memory.h
+./agent_index.lo: mibgroup/mibII/ipv6.h mibgroup/ucd-snmp/disk.h
+./agent_index.lo: ../agent/mibgroup/mibdefs.h mibgroup/ucd-snmp/proc.h
+./agent_index.lo: mibgroup/ucd-snmp/versioninfo.h mibgroup/ucd-snmp/pass.h
+./agent_index.lo: mibgroup/ucd-snmp/pass_persist.h
+./agent_index.lo: mibgroup/ucd-snmp/loadave.h mibgroup/agent/extend.h
+./agent_index.lo: mibgroup/ucd-snmp/errormib.h mibgroup/ucd-snmp/file.h
+./agent_index.lo: mibgroup/ucd-snmp/dlmod.h mibgroup/ucd-snmp/proxy.h
+./agent_index.lo: mibgroup/ucd-snmp/logmatch.h mibgroup/ucd-snmp/memory.h
 ./agent_index.lo: mibgroup/ucd-snmp/vmstat.h
 ./agent_index.lo: mibgroup/notification/snmpNotifyTable.h
 ./agent_index.lo: mibgroup/notification/snmpNotifyFilterProfileTable.h
@@ -301,6 +322,19 @@
 ./agent_index.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.h
 ./agent_index.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable.h
 ./agent_index.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.h
+./agent_index.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
+./agent_index.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_constants.h
+./agent_index.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.h
+./agent_index.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
+./agent_index.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.h
+./agent_index.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h
+./agent_index.lo: ../include/net-snmp/data_access/defaultrouter.h
+./agent_index.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_oids.h
+./agent_index.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_enums.h
+./agent_index.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.h
+./agent_index.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h
+./agent_index.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.h
+./agent_index.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get.h
 ./agent_index.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h
 ./agent_index.lo: ../include/net-snmp/data_access/arp.h
 ./agent_index.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_constants.h
@@ -360,19 +394,19 @@
 ./agent_index.lo: ../agent/mibgroup/agentx/subagent.h
 ./agent_index.lo: ../agent/mibgroup/agentx/client.h
 ./agent_read_config.lo: ../include/net-snmp/net-snmp-config.h
-./agent_read_config.lo: ../include/net-snmp/system/linux.h
-./agent_read_config.lo: ../include/net-snmp/system/sysv.h
-./agent_read_config.lo: ../include/net-snmp/system/generic.h
-./agent_read_config.lo: ../include/net-snmp/machine/generic.h
 ./agent_read_config.lo: ../include/net-snmp/net-snmp-includes.h
 ./agent_read_config.lo: ../include/net-snmp/definitions.h
-./agent_read_config.lo: ../include/net-snmp/types.h
+./agent_read_config.lo: ../include/net-snmp/types.h 
+./agent_read_config.lo: ../include/net-snmp/library/oid.h
 ./agent_read_config.lo: ../include/net-snmp/library/types.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmp_api.h
 ./agent_read_config.lo: ../include/net-snmp/varbind_api.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmp_client.h
 ./agent_read_config.lo: ../include/net-snmp/pdu_api.h
 ./agent_read_config.lo: ../include/net-snmp/library/asn1.h
+./agent_read_config.lo: ../include/net-snmp/output_api.h
+./agent_read_config.lo: ../include/net-snmp/library/snmp_debug.h
+./agent_read_config.lo: ../include/net-snmp/library/snmp_logging.h
 ./agent_read_config.lo: ../include/net-snmp/session_api.h
 ./agent_read_config.lo: ../include/net-snmp/library/callback.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmp_transport.h
@@ -380,8 +414,12 @@
 ./agent_read_config.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./agent_read_config.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agent_read_config.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agent_read_config.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agent_read_config.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./agent_read_config.lo: ../include/net-snmp/library/ucd_compat.h
@@ -403,7 +441,6 @@
 ./agent_read_config.lo: ../include/net-snmp/library/check_varbind.h
 ./agent_read_config.lo: ../include/net-snmp/library/container.h
 ./agent_read_config.lo: ../include/net-snmp/library/factory.h
-./agent_read_config.lo: ../include/net-snmp/library/snmp_logging.h
 ./agent_read_config.lo: ../include/net-snmp/library/container_binary_array.h
 ./agent_read_config.lo: ../include/net-snmp/library/container_list_ssll.h
 ./agent_read_config.lo: ../include/net-snmp/library/container_iterator.h
@@ -416,8 +453,6 @@
 ./agent_read_config.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmp_enum.h
 ./agent_read_config.lo: ../include/net-snmp/library/vacm.h
-./agent_read_config.lo: ../include/net-snmp/output_api.h
-./agent_read_config.lo: ../include/net-snmp/library/snmp_debug.h
 ./agent_read_config.lo: ../include/net-snmp/snmpv3_api.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmpv3.h
 ./agent_read_config.lo: ../include/net-snmp/library/transform_oids.h
@@ -426,6 +461,7 @@
 ./agent_read_config.lo: ../include/net-snmp/library/lcd_time.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmp_secmod.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./agent_read_config.lo: ../include/net-snmp/library/snmptsm.h
 ./agent_read_config.lo: ../include/net-snmp/library/snmpusm.h
 ./agent_read_config.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agent_read_config.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -462,8 +498,10 @@
 ./agent_read_config.lo: ../include/net-snmp/agent/table_iterator.h
 ./agent_read_config.lo: ../include/net-snmp/agent/table_container.h
 ./agent_read_config.lo: ../include/net-snmp/agent/table_array.h
-./agent_read_config.lo: ../include/net-snmp/agent/mfd.h mibgroup/struct.h
-./agent_read_config.lo: snmpd.h ../include/net-snmp/agent/agent_callbacks.h
+./agent_read_config.lo: ../include/net-snmp/agent/mfd.h
+./agent_read_config.lo: ../include/net-snmp/agent/snmp_get_statistic.h
+./agent_read_config.lo: mibgroup/struct.h snmpd.h
+./agent_read_config.lo: ../include/net-snmp/agent/agent_callbacks.h
 ./agent_read_config.lo: ../agent/mibgroup/agent_module_includes.h
 ./agent_read_config.lo: mibgroup/smux/smux.h mibgroup/snmpv3/usmConf.h
 ./agent_read_config.lo: mibgroup/utilities/iquery.h
@@ -471,7 +509,8 @@
 ./agent_read_config.lo: ../agent/mibgroup/mib_module_includes.h
 ./agent_read_config.lo: mibgroup/examples/example.h mibgroup/testhandler.h
 ./agent_read_config.lo: mibgroup/host/hr_storage.h mibgroup/host/hr_filesys.h
-./agent_read_config.lo: mibgroup/host/hr_swinst.h mibgroup/host/hr_swrun.h
+./agent_read_config.lo: mibgroup/host/hrSWInstalledTable.h
+./agent_read_config.lo: mibgroup/host/hrSWRunTable.h
 ./agent_read_config.lo: mibgroup/host/hr_system.h mibgroup/host/hr_device.h
 ./agent_read_config.lo: mibgroup/host/hr_other.h mibgroup/host/hr_proc.h
 ./agent_read_config.lo: mibgroup/host/hr_network.h mibgroup/host/hr_print.h
@@ -480,9 +519,18 @@
 ./agent_read_config.lo: mibgroup/examples/watched.h
 ./agent_read_config.lo: mibgroup/examples/data_set.h
 ./agent_read_config.lo: mibgroup/examples/delayed_instance.h
+./agent_read_config.lo: mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.h
 ./agent_read_config.lo: mibgroup/Rmon/rows.h mibgroup/Rmon/agutil.h
 ./agent_read_config.lo: mibgroup/Rmon/statistics.h mibgroup/Rmon/alarmTable.h
 ./agent_read_config.lo: mibgroup/Rmon/history.h mibgroup/Rmon/event.h
+./agent_read_config.lo: mibgroup/host/data_access/swinst.h
+./agent_read_config.lo: mibgroup/host/data_access/swrun.h
+./agent_read_config.lo: mibgroup/host/hrSWRunPerfTable.h
+./agent_read_config.lo: mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.h
+./agent_read_config.lo: mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h
+./agent_read_config.lo: mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h
+./agent_read_config.lo: mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h
+./agent_read_config.lo: mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h
 ./agent_read_config.lo: mibgroup/disman/event/mteScalars.h
 ./agent_read_config.lo: mibgroup/disman/event/mteTrigger.h
 ./agent_read_config.lo: mibgroup/disman/event/mteTriggerTable.h
@@ -512,15 +560,15 @@
 ./agent_read_config.lo: mibgroup/mibII/tcp.h mibgroup/mibII/icmp.h
 ./agent_read_config.lo: mibgroup/mibII/udp.h mibgroup/mibII/vacm_vars.h
 ./agent_read_config.lo: mibgroup/mibII/setSerialNo.h mibgroup/mibII/ipv6.h
-./agent_read_config.lo: mibgroup/ucd-snmp/proc.h ../agent/mibgroup/mibdefs.h
+./agent_read_config.lo: mibgroup/ucd-snmp/disk.h ../agent/mibgroup/mibdefs.h
+./agent_read_config.lo: mibgroup/ucd-snmp/proc.h
 ./agent_read_config.lo: mibgroup/ucd-snmp/versioninfo.h
 ./agent_read_config.lo: mibgroup/ucd-snmp/pass.h
 ./agent_read_config.lo: mibgroup/ucd-snmp/pass_persist.h
-./agent_read_config.lo: mibgroup/ucd-snmp/disk.h mibgroup/ucd-snmp/loadave.h
-./agent_read_config.lo: mibgroup/agent/extend.h mibgroup/ucd-snmp/errormib.h
-./agent_read_config.lo: mibgroup/ucd-snmp/file.h mibgroup/ucd-snmp/dlmod.h
-./agent_read_config.lo: mibgroup/ucd-snmp/proxy.h
-./agent_read_config.lo: mibgroup/ucd-snmp/logmatch.h 
+./agent_read_config.lo: mibgroup/ucd-snmp/loadave.h mibgroup/agent/extend.h
+./agent_read_config.lo: mibgroup/ucd-snmp/errormib.h mibgroup/ucd-snmp/file.h
+./agent_read_config.lo: mibgroup/ucd-snmp/dlmod.h mibgroup/ucd-snmp/proxy.h
+./agent_read_config.lo: mibgroup/ucd-snmp/logmatch.h
 ./agent_read_config.lo: mibgroup/ucd-snmp/memory.h mibgroup/ucd-snmp/vmstat.h
 ./agent_read_config.lo: mibgroup/notification/snmpNotifyTable.h
 ./agent_read_config.lo: mibgroup/notification/snmpNotifyFilterProfileTable.h
@@ -567,6 +615,19 @@
 ./agent_read_config.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.h
 ./agent_read_config.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable.h
 ./agent_read_config.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.h
+./agent_read_config.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
+./agent_read_config.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_constants.h
+./agent_read_config.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.h
+./agent_read_config.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
+./agent_read_config.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.h
+./agent_read_config.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h
+./agent_read_config.lo: ../include/net-snmp/data_access/defaultrouter.h
+./agent_read_config.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_oids.h
+./agent_read_config.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_enums.h
+./agent_read_config.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.h
+./agent_read_config.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h
+./agent_read_config.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.h
+./agent_read_config.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get.h
 ./agent_read_config.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h
 ./agent_read_config.lo: ../include/net-snmp/data_access/arp.h
 ./agent_read_config.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_constants.h
@@ -626,19 +687,19 @@
 ./agent_read_config.lo: ../agent/mibgroup/agent_module_dot_conf.h
 ./agent_read_config.lo: ../agent/mibgroup/mib_module_dot_conf.h
 ./agent_registry.lo: ../include/net-snmp/net-snmp-config.h
-./agent_registry.lo: ../include/net-snmp/system/linux.h
-./agent_registry.lo: ../include/net-snmp/system/sysv.h
-./agent_registry.lo: ../include/net-snmp/system/generic.h
-./agent_registry.lo: ../include/net-snmp/machine/generic.h
 ./agent_registry.lo: ../include/net-snmp/net-snmp-includes.h
 ./agent_registry.lo: ../include/net-snmp/definitions.h
 ./agent_registry.lo: ../include/net-snmp/types.h 
+./agent_registry.lo: ../include/net-snmp/library/oid.h
 ./agent_registry.lo: ../include/net-snmp/library/types.h
 ./agent_registry.lo: ../include/net-snmp/library/snmp_api.h
 ./agent_registry.lo: ../include/net-snmp/varbind_api.h
 ./agent_registry.lo: ../include/net-snmp/library/snmp_client.h
 ./agent_registry.lo: ../include/net-snmp/pdu_api.h
 ./agent_registry.lo: ../include/net-snmp/library/asn1.h
+./agent_registry.lo: ../include/net-snmp/output_api.h
+./agent_registry.lo: ../include/net-snmp/library/snmp_debug.h
+./agent_registry.lo: ../include/net-snmp/library/snmp_logging.h
 ./agent_registry.lo: ../include/net-snmp/session_api.h
 ./agent_registry.lo: ../include/net-snmp/library/callback.h
 ./agent_registry.lo: ../include/net-snmp/library/snmp_transport.h
@@ -646,8 +707,12 @@
 ./agent_registry.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./agent_registry.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./agent_registry.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./agent_registry.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agent_registry.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agent_registry.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agent_registry.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./agent_registry.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agent_registry.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agent_registry.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agent_registry.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./agent_registry.lo: ../include/net-snmp/library/ucd_compat.h
@@ -669,7 +734,6 @@
 ./agent_registry.lo: ../include/net-snmp/library/check_varbind.h
 ./agent_registry.lo: ../include/net-snmp/library/container.h
 ./agent_registry.lo: ../include/net-snmp/library/factory.h
-./agent_registry.lo: ../include/net-snmp/library/snmp_logging.h
 ./agent_registry.lo: ../include/net-snmp/library/container_binary_array.h
 ./agent_registry.lo: ../include/net-snmp/library/container_list_ssll.h
 ./agent_registry.lo: ../include/net-snmp/library/container_iterator.h
@@ -682,8 +746,6 @@
 ./agent_registry.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./agent_registry.lo: ../include/net-snmp/library/snmp_enum.h
 ./agent_registry.lo: ../include/net-snmp/library/vacm.h
-./agent_registry.lo: ../include/net-snmp/output_api.h
-./agent_registry.lo: ../include/net-snmp/library/snmp_debug.h
 ./agent_registry.lo: ../include/net-snmp/snmpv3_api.h
 ./agent_registry.lo: ../include/net-snmp/library/snmpv3.h
 ./agent_registry.lo: ../include/net-snmp/library/transform_oids.h
@@ -692,6 +754,7 @@
 ./agent_registry.lo: ../include/net-snmp/library/lcd_time.h
 ./agent_registry.lo: ../include/net-snmp/library/snmp_secmod.h
 ./agent_registry.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./agent_registry.lo: ../include/net-snmp/library/snmptsm.h
 ./agent_registry.lo: ../include/net-snmp/library/snmpusm.h
 ./agent_registry.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agent_registry.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -729,22 +792,33 @@
 ./agent_registry.lo: ../include/net-snmp/agent/table_container.h
 ./agent_registry.lo: ../include/net-snmp/agent/table_array.h
 ./agent_registry.lo: ../include/net-snmp/agent/mfd.h
+./agent_registry.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./agent_registry.lo: ../include/net-snmp/agent/agent_callbacks.h snmpd.h
 ./agent_registry.lo: mibgroup/struct.h
 ./agent_registry.lo: ../agent/mibgroup/mib_module_includes.h
 ./agent_registry.lo: mibgroup/examples/example.h mibgroup/testhandler.h
 ./agent_registry.lo: mibgroup/host/hr_storage.h mibgroup/host/hr_filesys.h
-./agent_registry.lo: mibgroup/host/hr_swinst.h mibgroup/host/hr_swrun.h
-./agent_registry.lo: mibgroup/host/hr_system.h mibgroup/host/hr_device.h
-./agent_registry.lo: mibgroup/host/hr_other.h mibgroup/host/hr_proc.h
-./agent_registry.lo: mibgroup/host/hr_network.h mibgroup/host/hr_print.h
-./agent_registry.lo: mibgroup/host/hr_disk.h mibgroup/host/hr_partition.h
+./agent_registry.lo: mibgroup/host/hrSWInstalledTable.h
+./agent_registry.lo: mibgroup/host/hrSWRunTable.h mibgroup/host/hr_system.h
+./agent_registry.lo: mibgroup/host/hr_device.h mibgroup/host/hr_other.h
+./agent_registry.lo: mibgroup/host/hr_proc.h mibgroup/host/hr_network.h
+./agent_registry.lo: mibgroup/host/hr_print.h mibgroup/host/hr_disk.h
+./agent_registry.lo: mibgroup/host/hr_partition.h
 ./agent_registry.lo: mibgroup/examples/scalar_int.h
 ./agent_registry.lo: mibgroup/examples/watched.h mibgroup/examples/data_set.h
 ./agent_registry.lo: mibgroup/examples/delayed_instance.h
+./agent_registry.lo: mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.h
 ./agent_registry.lo: mibgroup/Rmon/rows.h mibgroup/Rmon/agutil.h
 ./agent_registry.lo: mibgroup/Rmon/statistics.h mibgroup/Rmon/alarmTable.h
 ./agent_registry.lo: mibgroup/Rmon/history.h mibgroup/Rmon/event.h
+./agent_registry.lo: mibgroup/host/data_access/swinst.h
+./agent_registry.lo: mibgroup/host/data_access/swrun.h
+./agent_registry.lo: mibgroup/host/hrSWRunPerfTable.h
+./agent_registry.lo: mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.h
+./agent_registry.lo: mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h
+./agent_registry.lo: mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h
+./agent_registry.lo: mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h
+./agent_registry.lo: mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h
 ./agent_registry.lo: mibgroup/disman/event/mteScalars.h
 ./agent_registry.lo: mibgroup/disman/event/mteTrigger.h
 ./agent_registry.lo: mibgroup/disman/event/mteTriggerTable.h
@@ -772,15 +846,14 @@
 ./agent_registry.lo: mibgroup/mibII/at.h mibgroup/mibII/tcp.h
 ./agent_registry.lo: mibgroup/mibII/icmp.h mibgroup/mibII/udp.h
 ./agent_registry.lo: mibgroup/mibII/vacm_vars.h mibgroup/mibII/setSerialNo.h
-./agent_registry.lo: mibgroup/mibII/ipv6.h mibgroup/ucd-snmp/proc.h
-./agent_registry.lo: ../agent/mibgroup/mibdefs.h
+./agent_registry.lo: mibgroup/mibII/ipv6.h mibgroup/ucd-snmp/disk.h
+./agent_registry.lo: ../agent/mibgroup/mibdefs.h mibgroup/ucd-snmp/proc.h
 ./agent_registry.lo: mibgroup/ucd-snmp/versioninfo.h mibgroup/ucd-snmp/pass.h
 ./agent_registry.lo: mibgroup/ucd-snmp/pass_persist.h
-./agent_registry.lo: mibgroup/ucd-snmp/disk.h mibgroup/ucd-snmp/loadave.h
-./agent_registry.lo: mibgroup/agent/extend.h mibgroup/ucd-snmp/errormib.h
-./agent_registry.lo: mibgroup/ucd-snmp/file.h mibgroup/ucd-snmp/dlmod.h
-./agent_registry.lo: mibgroup/ucd-snmp/proxy.h mibgroup/ucd-snmp/logmatch.h
-./agent_registry.lo:  mibgroup/ucd-snmp/memory.h
+./agent_registry.lo: mibgroup/ucd-snmp/loadave.h mibgroup/agent/extend.h
+./agent_registry.lo: mibgroup/ucd-snmp/errormib.h mibgroup/ucd-snmp/file.h
+./agent_registry.lo: mibgroup/ucd-snmp/dlmod.h mibgroup/ucd-snmp/proxy.h
+./agent_registry.lo: mibgroup/ucd-snmp/logmatch.h mibgroup/ucd-snmp/memory.h
 ./agent_registry.lo: mibgroup/ucd-snmp/vmstat.h
 ./agent_registry.lo: mibgroup/notification/snmpNotifyTable.h
 ./agent_registry.lo: mibgroup/notification/snmpNotifyFilterProfileTable.h
@@ -825,6 +898,19 @@
 ./agent_registry.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.h
 ./agent_registry.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable.h
 ./agent_registry.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.h
+./agent_registry.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
+./agent_registry.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_constants.h
+./agent_registry.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.h
+./agent_registry.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
+./agent_registry.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.h
+./agent_registry.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h
+./agent_registry.lo: ../include/net-snmp/data_access/defaultrouter.h
+./agent_registry.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_oids.h
+./agent_registry.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_enums.h
+./agent_registry.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.h
+./agent_registry.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h
+./agent_registry.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.h
+./agent_registry.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get.h
 ./agent_registry.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h
 ./agent_registry.lo: ../include/net-snmp/data_access/arp.h
 ./agent_registry.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_constants.h
@@ -884,19 +970,19 @@
 ./agent_registry.lo: ../agent/mibgroup/agentx/subagent.h
 ./agent_registry.lo: ../agent/mibgroup/agentx/client.h
 ./agent_sysORTable.lo: ../include/net-snmp/net-snmp-config.h
-./agent_sysORTable.lo: ../include/net-snmp/system/linux.h
-./agent_sysORTable.lo: ../include/net-snmp/system/sysv.h
-./agent_sysORTable.lo: ../include/net-snmp/system/generic.h
-./agent_sysORTable.lo: ../include/net-snmp/machine/generic.h
 ./agent_sysORTable.lo: ../include/net-snmp/net-snmp-includes.h
 ./agent_sysORTable.lo: ../include/net-snmp/definitions.h
 ./agent_sysORTable.lo: ../include/net-snmp/types.h 
+./agent_sysORTable.lo: ../include/net-snmp/library/oid.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/types.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmp_api.h
 ./agent_sysORTable.lo: ../include/net-snmp/varbind_api.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmp_client.h
 ./agent_sysORTable.lo: ../include/net-snmp/pdu_api.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/asn1.h
+./agent_sysORTable.lo: ../include/net-snmp/output_api.h
+./agent_sysORTable.lo: ../include/net-snmp/library/snmp_debug.h
+./agent_sysORTable.lo: ../include/net-snmp/library/snmp_logging.h
 ./agent_sysORTable.lo: ../include/net-snmp/session_api.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/callback.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmp_transport.h
@@ -904,8 +990,12 @@
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./agent_sysORTable.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agent_sysORTable.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agent_sysORTable.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agent_sysORTable.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/ucd_compat.h
@@ -927,7 +1017,6 @@
 ./agent_sysORTable.lo: ../include/net-snmp/library/check_varbind.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/container.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/factory.h
-./agent_sysORTable.lo: ../include/net-snmp/library/snmp_logging.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/container_binary_array.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/container_list_ssll.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/container_iterator.h
@@ -940,8 +1029,6 @@
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmp_enum.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/vacm.h
-./agent_sysORTable.lo: ../include/net-snmp/output_api.h
-./agent_sysORTable.lo: ../include/net-snmp/library/snmp_debug.h
 ./agent_sysORTable.lo: ../include/net-snmp/snmpv3_api.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmpv3.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/transform_oids.h
@@ -950,6 +1037,7 @@
 ./agent_sysORTable.lo: ../include/net-snmp/library/lcd_time.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmp_secmod.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./agent_sysORTable.lo: ../include/net-snmp/library/snmptsm.h
 ./agent_sysORTable.lo: ../include/net-snmp/library/snmpusm.h
 ./agent_sysORTable.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agent_sysORTable.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -987,15 +1075,13 @@
 ./agent_sysORTable.lo: ../include/net-snmp/agent/table_container.h
 ./agent_sysORTable.lo: ../include/net-snmp/agent/table_array.h
 ./agent_sysORTable.lo: ../include/net-snmp/agent/mfd.h
+./agent_sysORTable.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./agent_sysORTable.lo: ../include/net-snmp/agent/agent_callbacks.h
 ./agent_sysORTable.lo: ../include/net-snmp/agent/agent_sysORTable.h
 ./agent_sysORTable.lo: ../include/net-snmp/agent/sysORTable.h
-./agent_trap.lo: ../include/net-snmp/net-snmp-config.h
-./agent_trap.lo: ../include/net-snmp/system/linux.h
-./agent_trap.lo: ../include/net-snmp/system/sysv.h
-./agent_trap.lo: ../include/net-snmp/system/generic.h
-./agent_trap.lo: ../include/net-snmp/machine/generic.h 
+./agent_trap.lo: ../include/net-snmp/net-snmp-config.h 
 ./agent_trap.lo: ../include/net-snmp/utilities.h ../include/net-snmp/types.h
+./agent_trap.lo: ../include/net-snmp/library/oid.h
 ./agent_trap.lo: ../include/net-snmp/library/types.h
 ./agent_trap.lo: ../include/net-snmp/definitions.h
 ./agent_trap.lo: ../include/net-snmp/library/snmp_api.h
@@ -1003,6 +1089,9 @@
 ./agent_trap.lo: ../include/net-snmp/library/snmp_client.h
 ./agent_trap.lo: ../include/net-snmp/pdu_api.h
 ./agent_trap.lo: ../include/net-snmp/library/asn1.h
+./agent_trap.lo: ../include/net-snmp/output_api.h
+./agent_trap.lo: ../include/net-snmp/library/snmp_debug.h
+./agent_trap.lo: ../include/net-snmp/library/snmp_logging.h
 ./agent_trap.lo: ../include/net-snmp/session_api.h
 ./agent_trap.lo: ../include/net-snmp/library/callback.h
 ./agent_trap.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1010,8 +1099,12 @@
 ./agent_trap.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./agent_trap.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./agent_trap.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./agent_trap.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agent_trap.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agent_trap.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agent_trap.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./agent_trap.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agent_trap.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agent_trap.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agent_trap.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./agent_trap.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1021,7 +1114,7 @@
 ./agent_trap.lo: ../include/net-snmp/library/oid_stash.h
 ./agent_trap.lo: ../include/net-snmp/library/snmp_impl.h
 ./agent_trap.lo: ../include/net-snmp/library/snmp.h
-./agent_trap.lo: ../include/net-snmp/library/snmp-tc.h
+./agent_trap.lo: ../include/net-snmp/library/snmp-tc.h 
 ./agent_trap.lo: ../include/net-snmp/library/system.h
 ./agent_trap.lo: ../include/net-snmp/library/tools.h
 ./agent_trap.lo: ../include/net-snmp/library/int64.h
@@ -1031,7 +1124,6 @@
 ./agent_trap.lo: ../include/net-snmp/library/check_varbind.h
 ./agent_trap.lo: ../include/net-snmp/library/container.h
 ./agent_trap.lo: ../include/net-snmp/library/factory.h
-./agent_trap.lo: ../include/net-snmp/library/snmp_logging.h
 ./agent_trap.lo: ../include/net-snmp/library/container_binary_array.h
 ./agent_trap.lo: ../include/net-snmp/library/container_list_ssll.h
 ./agent_trap.lo: ../include/net-snmp/library/container_iterator.h
@@ -1046,8 +1138,6 @@
 ./agent_trap.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./agent_trap.lo: ../include/net-snmp/library/snmp_enum.h
 ./agent_trap.lo: ../include/net-snmp/library/vacm.h
-./agent_trap.lo: ../include/net-snmp/output_api.h
-./agent_trap.lo: ../include/net-snmp/library/snmp_debug.h
 ./agent_trap.lo: ../include/net-snmp/snmpv3_api.h
 ./agent_trap.lo: ../include/net-snmp/library/snmpv3.h
 ./agent_trap.lo: ../include/net-snmp/library/transform_oids.h
@@ -1056,6 +1146,7 @@
 ./agent_trap.lo: ../include/net-snmp/library/lcd_time.h
 ./agent_trap.lo: ../include/net-snmp/library/snmp_secmod.h
 ./agent_trap.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./agent_trap.lo: ../include/net-snmp/library/snmptsm.h
 ./agent_trap.lo: ../include/net-snmp/library/snmpusm.h
 ./agent_trap.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agent_trap.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -1093,34 +1184,27 @@
 ./agent_trap.lo: ../include/net-snmp/agent/table_container.h
 ./agent_trap.lo: ../include/net-snmp/agent/table_array.h
 ./agent_trap.lo: ../include/net-snmp/agent/mfd.h
+./agent_trap.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./agent_trap.lo: ../include/net-snmp/agent/agent_callbacks.h
 ./agent_trap.lo: ../agent/mibgroup/agentx/protocol.h
 ./auto_nlist.lo: ../include/net-snmp/net-snmp-config.h
-./auto_nlist.lo: ../include/net-snmp/system/linux.h
-./auto_nlist.lo: ../include/net-snmp/system/sysv.h
-./auto_nlist.lo: ../include/net-snmp/system/generic.h
-./auto_nlist.lo: ../include/net-snmp/machine/generic.h
 ./auto_nlist.lo: ../include/net-snmp/agent/auto_nlist.h
 ./kernel.lo: ../include/net-snmp/net-snmp-config.h
-./kernel.lo: ../include/net-snmp/system/linux.h
-./kernel.lo: ../include/net-snmp/system/sysv.h
-./kernel.lo: ../include/net-snmp/system/generic.h
-./kernel.lo: ../include/net-snmp/machine/generic.h
 ./mib_modules.lo: ../include/net-snmp/agent/mib_module_config.h
 ./mib_modules.lo: ../include/net-snmp/net-snmp-config.h
-./mib_modules.lo: ../include/net-snmp/system/linux.h
-./mib_modules.lo: ../include/net-snmp/system/sysv.h
-./mib_modules.lo: ../include/net-snmp/system/generic.h
-./mib_modules.lo: ../include/net-snmp/machine/generic.h 
 ./mib_modules.lo: ../include/net-snmp/net-snmp-includes.h
-./mib_modules.lo: ../include/net-snmp/definitions.h
+./mib_modules.lo:  ../include/net-snmp/definitions.h
 ./mib_modules.lo: ../include/net-snmp/types.h 
+./mib_modules.lo: ../include/net-snmp/library/oid.h
 ./mib_modules.lo: ../include/net-snmp/library/types.h
 ./mib_modules.lo: ../include/net-snmp/library/snmp_api.h
 ./mib_modules.lo: ../include/net-snmp/varbind_api.h
 ./mib_modules.lo: ../include/net-snmp/library/snmp_client.h
 ./mib_modules.lo: ../include/net-snmp/pdu_api.h
 ./mib_modules.lo: ../include/net-snmp/library/asn1.h
+./mib_modules.lo: ../include/net-snmp/output_api.h
+./mib_modules.lo: ../include/net-snmp/library/snmp_debug.h
+./mib_modules.lo: ../include/net-snmp/library/snmp_logging.h
 ./mib_modules.lo: ../include/net-snmp/session_api.h
 ./mib_modules.lo: ../include/net-snmp/library/callback.h
 ./mib_modules.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1128,8 +1212,12 @@
 ./mib_modules.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./mib_modules.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./mib_modules.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./mib_modules.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mib_modules.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mib_modules.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mib_modules.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./mib_modules.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mib_modules.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mib_modules.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mib_modules.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./mib_modules.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1151,7 +1239,6 @@
 ./mib_modules.lo: ../include/net-snmp/library/check_varbind.h
 ./mib_modules.lo: ../include/net-snmp/library/container.h
 ./mib_modules.lo: ../include/net-snmp/library/factory.h
-./mib_modules.lo: ../include/net-snmp/library/snmp_logging.h
 ./mib_modules.lo: ../include/net-snmp/library/container_binary_array.h
 ./mib_modules.lo: ../include/net-snmp/library/container_list_ssll.h
 ./mib_modules.lo: ../include/net-snmp/library/container_iterator.h
@@ -1164,8 +1251,6 @@
 ./mib_modules.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./mib_modules.lo: ../include/net-snmp/library/snmp_enum.h
 ./mib_modules.lo: ../include/net-snmp/library/vacm.h
-./mib_modules.lo: ../include/net-snmp/output_api.h
-./mib_modules.lo: ../include/net-snmp/library/snmp_debug.h
 ./mib_modules.lo: ../include/net-snmp/snmpv3_api.h
 ./mib_modules.lo: ../include/net-snmp/library/snmpv3.h
 ./mib_modules.lo: ../include/net-snmp/library/transform_oids.h
@@ -1174,6 +1259,7 @@
 ./mib_modules.lo: ../include/net-snmp/library/lcd_time.h
 ./mib_modules.lo: ../include/net-snmp/library/snmp_secmod.h
 ./mib_modules.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./mib_modules.lo: ../include/net-snmp/library/snmptsm.h
 ./mib_modules.lo: ../include/net-snmp/library/snmpusm.h
 ./mib_modules.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mib_modules.lo: ../include/net-snmp/agent/agent_module_config.h
@@ -1209,23 +1295,34 @@
 ./mib_modules.lo: ../include/net-snmp/agent/table_iterator.h
 ./mib_modules.lo: ../include/net-snmp/agent/table_container.h
 ./mib_modules.lo: ../include/net-snmp/agent/table_array.h
-./mib_modules.lo: ../include/net-snmp/agent/mfd.h m2m.h
+./mib_modules.lo: ../include/net-snmp/agent/mfd.h
+./mib_modules.lo: ../include/net-snmp/agent/snmp_get_statistic.h m2m.h
 ./mib_modules.lo: ../include/net-snmp/data_access/interface.h
 ./mib_modules.lo: mibgroup/struct.h ../include/net-snmp/agent/mib_modules.h
 ./mib_modules.lo: ../agent/mibgroup/mib_module_includes.h
 ./mib_modules.lo: mibgroup/examples/example.h mibgroup/testhandler.h
 ./mib_modules.lo: mibgroup/host/hr_storage.h mibgroup/host/hr_filesys.h
-./mib_modules.lo: mibgroup/host/hr_swinst.h mibgroup/host/hr_swrun.h
-./mib_modules.lo: mibgroup/host/hr_system.h mibgroup/host/hr_device.h
-./mib_modules.lo: mibgroup/host/hr_other.h mibgroup/host/hr_proc.h
-./mib_modules.lo: mibgroup/host/hr_network.h mibgroup/host/hr_print.h
-./mib_modules.lo: mibgroup/host/hr_disk.h mibgroup/host/hr_partition.h
-./mib_modules.lo: mibgroup/examples/scalar_int.h mibgroup/examples/watched.h
-./mib_modules.lo: mibgroup/examples/data_set.h
-./mib_modules.lo: mibgroup/examples/delayed_instance.h mibgroup/Rmon/rows.h
-./mib_modules.lo: mibgroup/Rmon/agutil.h mibgroup/Rmon/statistics.h
-./mib_modules.lo: mibgroup/Rmon/alarmTable.h mibgroup/Rmon/history.h
-./mib_modules.lo: mibgroup/Rmon/event.h mibgroup/disman/event/mteScalars.h
+./mib_modules.lo: mibgroup/host/hrSWInstalledTable.h
+./mib_modules.lo: mibgroup/host/hrSWRunTable.h mibgroup/host/hr_system.h
+./mib_modules.lo: mibgroup/host/hr_device.h mibgroup/host/hr_other.h
+./mib_modules.lo: mibgroup/host/hr_proc.h mibgroup/host/hr_network.h
+./mib_modules.lo: mibgroup/host/hr_print.h mibgroup/host/hr_disk.h
+./mib_modules.lo: mibgroup/host/hr_partition.h mibgroup/examples/scalar_int.h
+./mib_modules.lo: mibgroup/examples/watched.h mibgroup/examples/data_set.h
+./mib_modules.lo: mibgroup/examples/delayed_instance.h
+./mib_modules.lo: mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.h
+./mib_modules.lo: mibgroup/Rmon/rows.h mibgroup/Rmon/agutil.h
+./mib_modules.lo: mibgroup/Rmon/statistics.h mibgroup/Rmon/alarmTable.h
+./mib_modules.lo: mibgroup/Rmon/history.h mibgroup/Rmon/event.h
+./mib_modules.lo: mibgroup/host/data_access/swinst.h
+./mib_modules.lo: mibgroup/host/data_access/swrun.h
+./mib_modules.lo: mibgroup/host/hrSWRunPerfTable.h
+./mib_modules.lo: mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.h
+./mib_modules.lo: mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h
+./mib_modules.lo: mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h
+./mib_modules.lo: mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h
+./mib_modules.lo: mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h
+./mib_modules.lo: mibgroup/disman/event/mteScalars.h
 ./mib_modules.lo: mibgroup/disman/event/mteTrigger.h
 ./mib_modules.lo: mibgroup/disman/event/mteTriggerTable.h
 ./mib_modules.lo: mibgroup/disman/event/mteTriggerDeltaTable.h
@@ -1251,14 +1348,14 @@
 ./mib_modules.lo: mibgroup/mibII/at.h mibgroup/mibII/tcp.h
 ./mib_modules.lo: mibgroup/mibII/icmp.h mibgroup/mibII/udp.h
 ./mib_modules.lo: mibgroup/mibII/vacm_vars.h mibgroup/mibII/setSerialNo.h
-./mib_modules.lo: mibgroup/mibII/ipv6.h mibgroup/ucd-snmp/proc.h
-./mib_modules.lo: ../agent/mibgroup/mibdefs.h mibgroup/ucd-snmp/versioninfo.h
-./mib_modules.lo: mibgroup/ucd-snmp/pass.h mibgroup/ucd-snmp/pass_persist.h
-./mib_modules.lo: mibgroup/ucd-snmp/disk.h mibgroup/ucd-snmp/loadave.h
-./mib_modules.lo: mibgroup/agent/extend.h mibgroup/ucd-snmp/errormib.h
-./mib_modules.lo: mibgroup/ucd-snmp/file.h mibgroup/ucd-snmp/dlmod.h
-./mib_modules.lo: mibgroup/ucd-snmp/proxy.h mibgroup/ucd-snmp/logmatch.h
-./mib_modules.lo:  mibgroup/ucd-snmp/memory.h
+./mib_modules.lo: mibgroup/mibII/ipv6.h mibgroup/ucd-snmp/disk.h
+./mib_modules.lo: ../agent/mibgroup/mibdefs.h mibgroup/ucd-snmp/proc.h
+./mib_modules.lo: mibgroup/ucd-snmp/versioninfo.h mibgroup/ucd-snmp/pass.h
+./mib_modules.lo: mibgroup/ucd-snmp/pass_persist.h
+./mib_modules.lo: mibgroup/ucd-snmp/loadave.h mibgroup/agent/extend.h
+./mib_modules.lo: mibgroup/ucd-snmp/errormib.h mibgroup/ucd-snmp/file.h
+./mib_modules.lo: mibgroup/ucd-snmp/dlmod.h mibgroup/ucd-snmp/proxy.h
+./mib_modules.lo: mibgroup/ucd-snmp/logmatch.h mibgroup/ucd-snmp/memory.h
 ./mib_modules.lo: mibgroup/ucd-snmp/vmstat.h
 ./mib_modules.lo: mibgroup/notification/snmpNotifyTable.h
 ./mib_modules.lo: mibgroup/notification/snmpNotifyFilterProfileTable.h
@@ -1302,6 +1399,19 @@
 ./mib_modules.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.h
 ./mib_modules.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable.h
 ./mib_modules.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.h
+./mib_modules.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
+./mib_modules.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_constants.h
+./mib_modules.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.h
+./mib_modules.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
+./mib_modules.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.h
+./mib_modules.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h
+./mib_modules.lo: ../include/net-snmp/data_access/defaultrouter.h
+./mib_modules.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_oids.h
+./mib_modules.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_enums.h
+./mib_modules.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.h
+./mib_modules.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h
+./mib_modules.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.h
+./mib_modules.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get.h
 ./mib_modules.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h
 ./mib_modules.lo: ../include/net-snmp/data_access/arp.h
 ./mib_modules.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_constants.h
@@ -1361,19 +1471,19 @@
 ./mib_modules.lo: ../agent/mibgroup/mib_module_shutdown.h
 ./mib_modules.lo: ../agent/mibgroup/mib_module_inits.h
 ./object_monitor.lo: ../include/net-snmp/net-snmp-config.h
-./object_monitor.lo: ../include/net-snmp/system/linux.h
-./object_monitor.lo: ../include/net-snmp/system/sysv.h
-./object_monitor.lo: ../include/net-snmp/system/generic.h
-./object_monitor.lo: ../include/net-snmp/machine/generic.h
 ./object_monitor.lo: ../include/net-snmp/net-snmp-includes.h
 ./object_monitor.lo: ../include/net-snmp/definitions.h
 ./object_monitor.lo: ../include/net-snmp/types.h 
+./object_monitor.lo: ../include/net-snmp/library/oid.h
 ./object_monitor.lo: ../include/net-snmp/library/types.h
 ./object_monitor.lo: ../include/net-snmp/library/snmp_api.h
 ./object_monitor.lo: ../include/net-snmp/varbind_api.h
 ./object_monitor.lo: ../include/net-snmp/library/snmp_client.h
 ./object_monitor.lo: ../include/net-snmp/pdu_api.h
 ./object_monitor.lo: ../include/net-snmp/library/asn1.h
+./object_monitor.lo: ../include/net-snmp/output_api.h
+./object_monitor.lo: ../include/net-snmp/library/snmp_debug.h
+./object_monitor.lo: ../include/net-snmp/library/snmp_logging.h
 ./object_monitor.lo: ../include/net-snmp/session_api.h
 ./object_monitor.lo: ../include/net-snmp/library/callback.h
 ./object_monitor.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1381,8 +1491,12 @@
 ./object_monitor.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./object_monitor.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./object_monitor.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./object_monitor.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./object_monitor.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./object_monitor.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./object_monitor.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./object_monitor.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./object_monitor.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./object_monitor.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./object_monitor.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./object_monitor.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1404,7 +1518,6 @@
 ./object_monitor.lo: ../include/net-snmp/library/check_varbind.h
 ./object_monitor.lo: ../include/net-snmp/library/container.h
 ./object_monitor.lo: ../include/net-snmp/library/factory.h
-./object_monitor.lo: ../include/net-snmp/library/snmp_logging.h
 ./object_monitor.lo: ../include/net-snmp/library/container_binary_array.h
 ./object_monitor.lo: ../include/net-snmp/library/container_list_ssll.h
 ./object_monitor.lo: ../include/net-snmp/library/container_iterator.h
@@ -1417,8 +1530,6 @@
 ./object_monitor.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./object_monitor.lo: ../include/net-snmp/library/snmp_enum.h
 ./object_monitor.lo: ../include/net-snmp/library/vacm.h
-./object_monitor.lo: ../include/net-snmp/output_api.h
-./object_monitor.lo: ../include/net-snmp/library/snmp_debug.h
 ./object_monitor.lo: ../include/net-snmp/snmpv3_api.h
 ./object_monitor.lo: ../include/net-snmp/library/snmpv3.h
 ./object_monitor.lo: ../include/net-snmp/library/transform_oids.h
@@ -1427,6 +1538,7 @@
 ./object_monitor.lo: ../include/net-snmp/library/lcd_time.h
 ./object_monitor.lo: ../include/net-snmp/library/snmp_secmod.h
 ./object_monitor.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./object_monitor.lo: ../include/net-snmp/library/snmptsm.h
 ./object_monitor.lo: ../include/net-snmp/library/snmpusm.h
 ./object_monitor.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./object_monitor.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -1464,21 +1576,22 @@
 ./object_monitor.lo: ../include/net-snmp/agent/table_container.h
 ./object_monitor.lo: ../include/net-snmp/agent/table_array.h
 ./object_monitor.lo: ../include/net-snmp/agent/mfd.h
+./object_monitor.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./object_monitor.lo: ../include/net-snmp/agent/object_monitor.h
 ./snmp_agent.lo: ../include/net-snmp/net-snmp-config.h
-./snmp_agent.lo: ../include/net-snmp/system/linux.h
-./snmp_agent.lo: ../include/net-snmp/system/sysv.h
-./snmp_agent.lo: ../include/net-snmp/system/generic.h
-./snmp_agent.lo: ../include/net-snmp/machine/generic.h
 ./snmp_agent.lo: ../include/net-snmp/net-snmp-includes.h 
-./snmp_agent.lo: ../include/net-snmp/definitions.h
+./snmp_agent.lo:  ../include/net-snmp/definitions.h
 ./snmp_agent.lo: ../include/net-snmp/types.h 
+./snmp_agent.lo: ../include/net-snmp/library/oid.h
 ./snmp_agent.lo: ../include/net-snmp/library/types.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmp_api.h
 ./snmp_agent.lo: ../include/net-snmp/varbind_api.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_agent.lo: ../include/net-snmp/pdu_api.h
 ./snmp_agent.lo: ../include/net-snmp/library/asn1.h
+./snmp_agent.lo: ../include/net-snmp/output_api.h
+./snmp_agent.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_agent.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_agent.lo: ../include/net-snmp/session_api.h
 ./snmp_agent.lo: ../include/net-snmp/library/callback.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1486,8 +1599,12 @@
 ./snmp_agent.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_agent.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_agent.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_agent.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_agent.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_agent.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1509,7 +1626,6 @@
 ./snmp_agent.lo: ../include/net-snmp/library/check_varbind.h
 ./snmp_agent.lo: ../include/net-snmp/library/container.h
 ./snmp_agent.lo: ../include/net-snmp/library/factory.h
-./snmp_agent.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_agent.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmp_agent.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmp_agent.lo: ../include/net-snmp/library/container_iterator.h
@@ -1522,8 +1638,6 @@
 ./snmp_agent.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmp_agent.lo: ../include/net-snmp/library/vacm.h
-./snmp_agent.lo: ../include/net-snmp/output_api.h
-./snmp_agent.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmp_agent.lo: ../include/net-snmp/snmpv3_api.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmpv3.h
 ./snmp_agent.lo: ../include/net-snmp/library/transform_oids.h
@@ -1532,6 +1646,7 @@
 ./snmp_agent.lo: ../include/net-snmp/library/lcd_time.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmp_agent.lo: ../include/net-snmp/library/snmptsm.h
 ./snmp_agent.lo: ../include/net-snmp/library/snmpusm.h
 ./snmp_agent.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./snmp_agent.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -1568,32 +1683,36 @@
 ./snmp_agent.lo: ../include/net-snmp/agent/table_iterator.h
 ./snmp_agent.lo: ../include/net-snmp/agent/table_container.h
 ./snmp_agent.lo: ../include/net-snmp/agent/table_array.h
-./snmp_agent.lo: ../include/net-snmp/agent/mfd.h snmpd.h
+./snmp_agent.lo: ../include/net-snmp/agent/mfd.h
+./snmp_agent.lo: ../include/net-snmp/agent/snmp_get_statistic.h snmpd.h
 ./snmp_agent.lo: ../include/net-snmp/agent/mib_modules.h
 ./snmp_agent.lo: ../agent/mibgroup/agentx/protocol.h
 ./snmp_agent.lo: ../agent/mibgroup/agentx/master.h
 ./snmp_agent.lo: ../agent/mibgroup/smux/smux.h
-./snmpd.lo: ../include/net-snmp/net-snmp-config.h
-./snmpd.lo: ../include/net-snmp/system/linux.h
-./snmpd.lo: ../include/net-snmp/system/sysv.h
-./snmpd.lo: ../include/net-snmp/system/generic.h
-./snmpd.lo: ../include/net-snmp/machine/generic.h 
-./snmpd.lo:  ../include/net-snmp/net-snmp-includes.h
-./snmpd.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
-./snmpd.lo:  ../include/net-snmp/library/types.h
+./snmpd.lo: ../include/net-snmp/net-snmp-config.h ../include/net-snmp/types.h
+./snmpd.lo:  ../include/net-snmp/library/oid.h
+./snmpd.lo: ../include/net-snmp/library/types.h
+./snmpd.lo: ../include/net-snmp/definitions.h
 ./snmpd.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpd.lo: ../include/net-snmp/varbind_api.h
 ./snmpd.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpd.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/library/asn1.h
+./snmpd.lo: ../include/net-snmp/output_api.h
+./snmpd.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpd.lo: ../include/net-snmp/library/snmp_logging.h 
 ./snmpd.lo: ../include/net-snmp/session_api.h
 ./snmpd.lo: ../include/net-snmp/library/callback.h
 ./snmpd.lo: ../include/net-snmp/library/snmp_transport.h
 ./snmpd.lo: ../include/net-snmp/library/snmp_service.h
 ./snmpd.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpd.lo: ../include/net-snmp/library/snmpUnixDomain.h
-./snmpd.lo:  ../include/net-snmp/library/snmpUDPDomain.h
+./snmpd.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpd.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpd.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpd.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpd.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpd.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpd.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpd.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpd.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpd.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1602,7 +1721,8 @@
 ./snmpd.lo: ../include/net-snmp/library/oid_stash.h
 ./snmpd.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpd.lo: ../include/net-snmp/library/snmp.h
-./snmpd.lo: ../include/net-snmp/library/snmp-tc.h
+./snmpd.lo: ../include/net-snmp/library/snmp-tc.h 
+./snmpd.lo: ../include/net-snmp/net-snmp-includes.h 
 ./snmpd.lo: ../include/net-snmp/library/getopt.h
 ./snmpd.lo: ../include/net-snmp/utilities.h
 ./snmpd.lo: ../include/net-snmp/library/system.h
@@ -1614,7 +1734,6 @@
 ./snmpd.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpd.lo: ../include/net-snmp/library/container.h
 ./snmpd.lo: ../include/net-snmp/library/factory.h
-./snmpd.lo: ../include/net-snmp/library/snmp_logging.h 
 ./snmpd.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpd.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpd.lo: ../include/net-snmp/library/container_iterator.h
@@ -1626,8 +1745,6 @@
 ./snmpd.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpd.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpd.lo: ../include/net-snmp/library/vacm.h
-./snmpd.lo: ../include/net-snmp/output_api.h
-./snmpd.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpd.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpd.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpd.lo: ../include/net-snmp/library/transform_oids.h
@@ -1636,6 +1753,7 @@
 ./snmpd.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpd.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpd.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpd.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpd.lo: ../include/net-snmp/library/snmpusm.h
 ./snmpd.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./snmpd.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -1673,25 +1791,36 @@
 ./snmpd.lo: ../include/net-snmp/agent/table_container.h
 ./snmpd.lo: ../include/net-snmp/agent/table_array.h
 ./snmpd.lo: ../include/net-snmp/agent/mfd.h
-./snmpd.lo: ../include/net-snmp/library/large_fd_set.h
-./snmpd.lo: ../include/net-snmp/net-snmp-config.h m2m.h snmpd.h
+./snmpd.lo: ../include/net-snmp/agent/snmp_get_statistic.h
+./snmpd.lo: ../include/net-snmp/library/large_fd_set.h m2m.h snmpd.h
 ./snmpd.lo: mibgroup/struct.h ../include/net-snmp/agent/mib_modules.h
-./snmpd.lo: mibgroup/util_funcs.h mibgroup/util_funcs/header_generic.h
-./snmpd.lo: mibgroup/util_funcs/header_simple_table.h mibgroup/struct.h
+./snmpd.lo: mibgroup/util_funcs.h mibgroup/util_funcs/Exit.h
+./snmpd.lo: mibgroup/util_funcs/header_generic.h
+./snmpd.lo: mibgroup/util_funcs/header_simple_table.h
+./snmpd.lo: mibgroup/util_funcs/restart.h mibgroup/struct.h
 ./snmpd.lo: mibgroup/util_funcs/MIB_STATS_CACHE_TIMEOUT.h
 ./snmpd.lo: ../agent/mibgroup/mib_module_includes.h
 ./snmpd.lo: mibgroup/examples/example.h mibgroup/testhandler.h
 ./snmpd.lo: mibgroup/host/hr_storage.h mibgroup/host/hr_filesys.h
-./snmpd.lo: mibgroup/host/hr_swinst.h mibgroup/host/hr_swrun.h
+./snmpd.lo: mibgroup/host/hrSWInstalledTable.h mibgroup/host/hrSWRunTable.h
 ./snmpd.lo: mibgroup/host/hr_system.h mibgroup/host/hr_device.h
 ./snmpd.lo: mibgroup/host/hr_other.h mibgroup/host/hr_proc.h
 ./snmpd.lo: mibgroup/host/hr_network.h mibgroup/host/hr_print.h
 ./snmpd.lo: mibgroup/host/hr_disk.h mibgroup/host/hr_partition.h
 ./snmpd.lo: mibgroup/examples/scalar_int.h mibgroup/examples/watched.h
 ./snmpd.lo: mibgroup/examples/data_set.h mibgroup/examples/delayed_instance.h
+./snmpd.lo: mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.h
 ./snmpd.lo: mibgroup/Rmon/rows.h mibgroup/Rmon/agutil.h
 ./snmpd.lo: mibgroup/Rmon/statistics.h mibgroup/Rmon/alarmTable.h
 ./snmpd.lo: mibgroup/Rmon/history.h mibgroup/Rmon/event.h
+./snmpd.lo: mibgroup/host/data_access/swinst.h
+./snmpd.lo: mibgroup/host/data_access/swrun.h
+./snmpd.lo: mibgroup/host/hrSWRunPerfTable.h
+./snmpd.lo: mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.h
+./snmpd.lo: mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h
+./snmpd.lo: mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h
+./snmpd.lo: mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h
+./snmpd.lo: mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h
 ./snmpd.lo: mibgroup/disman/event/mteScalars.h
 ./snmpd.lo: mibgroup/disman/event/mteTrigger.h
 ./snmpd.lo: mibgroup/disman/event/mteTriggerTable.h
@@ -1717,15 +1846,14 @@
 ./snmpd.lo: mibgroup/mibII/route_write.h mibgroup/mibII/at.h
 ./snmpd.lo: mibgroup/mibII/tcp.h mibgroup/mibII/icmp.h mibgroup/mibII/udp.h
 ./snmpd.lo: mibgroup/mibII/vacm_vars.h mibgroup/mibII/setSerialNo.h
-./snmpd.lo: mibgroup/mibII/ipv6.h mibgroup/ucd-snmp/proc.h
-./snmpd.lo: ../agent/mibgroup/mibdefs.h mibgroup/ucd-snmp/versioninfo.h
-./snmpd.lo: mibgroup/ucd-snmp/pass.h mibgroup/ucd-snmp/pass_persist.h
-./snmpd.lo: mibgroup/ucd-snmp/disk.h mibgroup/ucd-snmp/loadave.h
+./snmpd.lo: mibgroup/mibII/ipv6.h mibgroup/ucd-snmp/disk.h
+./snmpd.lo: ../agent/mibgroup/mibdefs.h mibgroup/ucd-snmp/proc.h
+./snmpd.lo: mibgroup/ucd-snmp/versioninfo.h mibgroup/ucd-snmp/pass.h
+./snmpd.lo: mibgroup/ucd-snmp/pass_persist.h mibgroup/ucd-snmp/loadave.h
 ./snmpd.lo: mibgroup/agent/extend.h mibgroup/ucd-snmp/errormib.h
 ./snmpd.lo: mibgroup/ucd-snmp/file.h mibgroup/ucd-snmp/dlmod.h
 ./snmpd.lo: mibgroup/ucd-snmp/proxy.h mibgroup/ucd-snmp/logmatch.h
-./snmpd.lo:  mibgroup/ucd-snmp/memory.h
-./snmpd.lo: mibgroup/ucd-snmp/vmstat.h
+./snmpd.lo: mibgroup/ucd-snmp/memory.h mibgroup/ucd-snmp/vmstat.h
 ./snmpd.lo: mibgroup/notification/snmpNotifyTable.h
 ./snmpd.lo: mibgroup/notification/snmpNotifyFilterProfileTable.h
 ./snmpd.lo: mibgroup/notification-log-mib/notification_log.h
@@ -1767,6 +1895,19 @@
 ./snmpd.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.h
 ./snmpd.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable.h
 ./snmpd.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.h
+./snmpd.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
+./snmpd.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_constants.h
+./snmpd.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.h
+./snmpd.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
+./snmpd.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.h
+./snmpd.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h
+./snmpd.lo: ../include/net-snmp/data_access/defaultrouter.h
+./snmpd.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_oids.h
+./snmpd.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_enums.h
+./snmpd.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.h
+./snmpd.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h
+./snmpd.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.h
+./snmpd.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get.h
 ./snmpd.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h
 ./snmpd.lo: ../include/net-snmp/data_access/arp.h
 ./snmpd.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_constants.h
@@ -1796,7 +1937,7 @@
 ./snmpd.lo: mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h
 ./snmpd.lo: mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.h
 ./snmpd.lo: ../include/net-snmp/data_access/route.h
-./snmpd.lo: ../agent/mibgroup/mibII/route_headers.h 
+./snmpd.lo: ../agent/mibgroup/mibII/route_headers.h
 ./snmpd.lo: mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_constants.h
 ./snmpd.lo: mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.h
 ./snmpd.lo: mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.h
@@ -1827,12 +1968,16 @@
 ./snmp_perl.lo: ../include/net-snmp/net-snmp-includes.h 
 ./snmp_perl.lo:  ../include/net-snmp/definitions.h
 ./snmp_perl.lo: ../include/net-snmp/types.h 
+./snmp_perl.lo: ../include/net-snmp/library/oid.h
 ./snmp_perl.lo: ../include/net-snmp/library/types.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmp_api.h
 ./snmp_perl.lo: ../include/net-snmp/varbind_api.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_perl.lo: ../include/net-snmp/pdu_api.h
 ./snmp_perl.lo: ../include/net-snmp/library/asn1.h
+./snmp_perl.lo: ../include/net-snmp/output_api.h
+./snmp_perl.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_perl.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_perl.lo: ../include/net-snmp/session_api.h
 ./snmp_perl.lo: ../include/net-snmp/library/callback.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1840,8 +1985,12 @@
 ./snmp_perl.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_perl.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_perl.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_perl.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_perl.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_perl.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1863,7 +2012,6 @@
 ./snmp_perl.lo: ../include/net-snmp/library/check_varbind.h
 ./snmp_perl.lo: ../include/net-snmp/library/container.h
 ./snmp_perl.lo: ../include/net-snmp/library/factory.h
-./snmp_perl.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_perl.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmp_perl.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmp_perl.lo: ../include/net-snmp/library/container_iterator.h
@@ -1876,8 +2024,6 @@
 ./snmp_perl.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmp_perl.lo: ../include/net-snmp/library/vacm.h
-./snmp_perl.lo: ../include/net-snmp/output_api.h
-./snmp_perl.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmp_perl.lo: ../include/net-snmp/snmpv3_api.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmpv3.h
 ./snmp_perl.lo: ../include/net-snmp/library/transform_oids.h
@@ -1886,6 +2032,7 @@
 ./snmp_perl.lo: ../include/net-snmp/library/lcd_time.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmp_perl.lo: ../include/net-snmp/library/snmptsm.h
 ./snmp_perl.lo: ../include/net-snmp/library/snmpusm.h
 ./snmp_perl.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./snmp_perl.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -1922,16 +2069,21 @@
 ./snmp_perl.lo: ../include/net-snmp/agent/table_iterator.h
 ./snmp_perl.lo: ../include/net-snmp/agent/table_container.h
 ./snmp_perl.lo: ../include/net-snmp/agent/table_array.h
-./snmp_perl.lo: ../include/net-snmp/agent/mfd.h snmp_perl.h
+./snmp_perl.lo: ../include/net-snmp/agent/mfd.h
+./snmp_perl.lo: ../include/net-snmp/agent/snmp_get_statistic.h snmp_perl.h
 ./snmp_vars.lo: ../include/net-snmp/net-snmp-config.h
 ./snmp_vars.lo: ../include/net-snmp/net-snmp-includes.h 
 ./snmp_vars.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
-./snmp_vars.lo:  ../include/net-snmp/library/types.h
+./snmp_vars.lo:  ../include/net-snmp/library/oid.h
+./snmp_vars.lo: ../include/net-snmp/library/types.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmp_api.h
 ./snmp_vars.lo: ../include/net-snmp/varbind_api.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_vars.lo: ../include/net-snmp/pdu_api.h
 ./snmp_vars.lo: ../include/net-snmp/library/asn1.h
+./snmp_vars.lo: ../include/net-snmp/output_api.h
+./snmp_vars.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_vars.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_vars.lo: ../include/net-snmp/session_api.h
 ./snmp_vars.lo: ../include/net-snmp/library/callback.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1939,8 +2091,12 @@
 ./snmp_vars.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_vars.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_vars.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_vars.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_vars.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_vars.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1962,7 +2118,6 @@
 ./snmp_vars.lo: ../include/net-snmp/library/check_varbind.h
 ./snmp_vars.lo: ../include/net-snmp/library/container.h
 ./snmp_vars.lo: ../include/net-snmp/library/factory.h
-./snmp_vars.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_vars.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmp_vars.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmp_vars.lo: ../include/net-snmp/library/container_iterator.h
@@ -1975,8 +2130,6 @@
 ./snmp_vars.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmp_vars.lo: ../include/net-snmp/library/vacm.h
-./snmp_vars.lo: ../include/net-snmp/output_api.h
-./snmp_vars.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmp_vars.lo: ../include/net-snmp/snmpv3_api.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmpv3.h
 ./snmp_vars.lo: ../include/net-snmp/library/transform_oids.h
@@ -1985,6 +2138,7 @@
 ./snmp_vars.lo: ../include/net-snmp/library/lcd_time.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmp_vars.lo: ../include/net-snmp/library/snmptsm.h
 ./snmp_vars.lo: ../include/net-snmp/library/snmpusm.h
 ./snmp_vars.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./snmp_vars.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -2022,6 +2176,7 @@
 ./snmp_vars.lo: ../include/net-snmp/agent/table_container.h
 ./snmp_vars.lo: ../include/net-snmp/agent/table_array.h
 ./snmp_vars.lo: ../include/net-snmp/agent/mfd.h
+./snmp_vars.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./snmp_vars.lo: ../include/net-snmp/agent/mib_modules.h
 ./snmp_vars.lo: ../include/net-snmp/agent/agent_sysORTable.h kernel.h
 ./snmp_vars.lo: mibgroup/struct.h snmpd.h
@@ -2033,17 +2188,27 @@
 ./snmp_vars.lo: ../agent/mibgroup/mib_module_includes.h
 ./snmp_vars.lo: mibgroup/examples/example.h mibgroup/testhandler.h
 ./snmp_vars.lo: mibgroup/host/hr_storage.h mibgroup/host/hr_filesys.h
-./snmp_vars.lo: mibgroup/host/hr_swinst.h mibgroup/host/hr_swrun.h
-./snmp_vars.lo: mibgroup/host/hr_system.h mibgroup/host/hr_device.h
-./snmp_vars.lo: mibgroup/host/hr_other.h mibgroup/host/hr_proc.h
-./snmp_vars.lo: mibgroup/host/hr_network.h mibgroup/host/hr_print.h
-./snmp_vars.lo: mibgroup/host/hr_disk.h mibgroup/host/hr_partition.h
-./snmp_vars.lo: mibgroup/examples/scalar_int.h mibgroup/examples/watched.h
-./snmp_vars.lo: mibgroup/examples/data_set.h
-./snmp_vars.lo: mibgroup/examples/delayed_instance.h mibgroup/Rmon/rows.h
-./snmp_vars.lo: mibgroup/Rmon/agutil.h mibgroup/Rmon/statistics.h
-./snmp_vars.lo: mibgroup/Rmon/alarmTable.h mibgroup/Rmon/history.h
-./snmp_vars.lo: mibgroup/Rmon/event.h mibgroup/disman/event/mteScalars.h
+./snmp_vars.lo: mibgroup/host/hrSWInstalledTable.h
+./snmp_vars.lo: mibgroup/host/hrSWRunTable.h mibgroup/host/hr_system.h
+./snmp_vars.lo: mibgroup/host/hr_device.h mibgroup/host/hr_other.h
+./snmp_vars.lo: mibgroup/host/hr_proc.h mibgroup/host/hr_network.h
+./snmp_vars.lo: mibgroup/host/hr_print.h mibgroup/host/hr_disk.h
+./snmp_vars.lo: mibgroup/host/hr_partition.h mibgroup/examples/scalar_int.h
+./snmp_vars.lo: mibgroup/examples/watched.h mibgroup/examples/data_set.h
+./snmp_vars.lo: mibgroup/examples/delayed_instance.h
+./snmp_vars.lo: mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.h
+./snmp_vars.lo: mibgroup/Rmon/rows.h mibgroup/Rmon/agutil.h
+./snmp_vars.lo: mibgroup/Rmon/statistics.h mibgroup/Rmon/alarmTable.h
+./snmp_vars.lo: mibgroup/Rmon/history.h mibgroup/Rmon/event.h
+./snmp_vars.lo: mibgroup/host/data_access/swinst.h
+./snmp_vars.lo: mibgroup/host/data_access/swrun.h
+./snmp_vars.lo: mibgroup/host/hrSWRunPerfTable.h
+./snmp_vars.lo: mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.h
+./snmp_vars.lo: mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h
+./snmp_vars.lo: mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h
+./snmp_vars.lo: mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h
+./snmp_vars.lo: mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h
+./snmp_vars.lo: mibgroup/disman/event/mteScalars.h
 ./snmp_vars.lo: mibgroup/disman/event/mteTrigger.h
 ./snmp_vars.lo: mibgroup/disman/event/mteTriggerTable.h
 ./snmp_vars.lo: mibgroup/disman/event/mteTriggerDeltaTable.h
@@ -2069,15 +2234,14 @@
 ./snmp_vars.lo: mibgroup/mibII/at.h mibgroup/mibII/tcp.h
 ./snmp_vars.lo: mibgroup/mibII/icmp.h mibgroup/mibII/udp.h
 ./snmp_vars.lo: mibgroup/mibII/vacm_vars.h mibgroup/mibII/setSerialNo.h
-./snmp_vars.lo: mibgroup/mibII/ipv6.h mibgroup/ucd-snmp/proc.h
-./snmp_vars.lo: ../agent/mibgroup/mibdefs.h mibgroup/ucd-snmp/versioninfo.h
-./snmp_vars.lo: mibgroup/ucd-snmp/pass.h mibgroup/ucd-snmp/pass_persist.h
-./snmp_vars.lo: mibgroup/ucd-snmp/disk.h mibgroup/ucd-snmp/loadave.h
+./snmp_vars.lo: mibgroup/mibII/ipv6.h mibgroup/ucd-snmp/disk.h
+./snmp_vars.lo: ../agent/mibgroup/mibdefs.h mibgroup/ucd-snmp/proc.h
+./snmp_vars.lo: mibgroup/ucd-snmp/versioninfo.h mibgroup/ucd-snmp/pass.h
+./snmp_vars.lo: mibgroup/ucd-snmp/pass_persist.h mibgroup/ucd-snmp/loadave.h
 ./snmp_vars.lo: mibgroup/agent/extend.h mibgroup/ucd-snmp/errormib.h
 ./snmp_vars.lo: mibgroup/ucd-snmp/file.h mibgroup/ucd-snmp/dlmod.h
 ./snmp_vars.lo: mibgroup/ucd-snmp/proxy.h mibgroup/ucd-snmp/logmatch.h
-./snmp_vars.lo:  mibgroup/ucd-snmp/memory.h
-./snmp_vars.lo: mibgroup/ucd-snmp/vmstat.h
+./snmp_vars.lo: mibgroup/ucd-snmp/memory.h mibgroup/ucd-snmp/vmstat.h
 ./snmp_vars.lo: mibgroup/notification/snmpNotifyTable.h
 ./snmp_vars.lo: mibgroup/notification/snmpNotifyFilterProfileTable.h
 ./snmp_vars.lo: mibgroup/notification-log-mib/notification_log.h
@@ -2119,6 +2283,19 @@
 ./snmp_vars.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.h
 ./snmp_vars.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable.h
 ./snmp_vars.lo: mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.h
+./snmp_vars.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
+./snmp_vars.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_constants.h
+./snmp_vars.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.h
+./snmp_vars.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
+./snmp_vars.lo: mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.h
+./snmp_vars.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h
+./snmp_vars.lo: ../include/net-snmp/data_access/defaultrouter.h
+./snmp_vars.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_oids.h
+./snmp_vars.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_enums.h
+./snmp_vars.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.h
+./snmp_vars.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable.h
+./snmp_vars.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access.h
+./snmp_vars.lo: mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get.h
 ./snmp_vars.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h
 ./snmp_vars.lo: ../include/net-snmp/data_access/arp.h
 ./snmp_vars.lo: mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_constants.h
@@ -2180,12 +2357,16 @@
 ./helpers/all_helpers.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/all_helpers.lo: ../include/net-snmp/definitions.h
 ./helpers/all_helpers.lo: ../include/net-snmp/types.h 
+./helpers/all_helpers.lo: ../include/net-snmp/library/oid.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/types.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/all_helpers.lo: ../include/net-snmp/varbind_api.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/all_helpers.lo: ../include/net-snmp/pdu_api.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/asn1.h
+./helpers/all_helpers.lo: ../include/net-snmp/output_api.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/all_helpers.lo: ../include/net-snmp/session_api.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/callback.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2193,8 +2374,12 @@
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2216,7 +2401,6 @@
 ./helpers/all_helpers.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/container.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/factory.h
-./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/container_iterator.h
@@ -2229,8 +2413,6 @@
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/vacm.h
-./helpers/all_helpers.lo: ../include/net-snmp/output_api.h
-./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/all_helpers.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/transform_oids.h
@@ -2239,6 +2421,7 @@
 ./helpers/all_helpers.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/all_helpers.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/all_helpers.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/all_helpers.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/all_helpers.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -2276,17 +2459,22 @@
 ./helpers/all_helpers.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/all_helpers.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/all_helpers.lo: ../include/net-snmp/agent/mfd.h
+./helpers/all_helpers.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/all_helpers.lo: ../include/net-snmp/agent/stash_cache.h
 ./helpers/baby_steps.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/baby_steps.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/baby_steps.lo: ../include/net-snmp/definitions.h
 ./helpers/baby_steps.lo: ../include/net-snmp/types.h 
+./helpers/baby_steps.lo: ../include/net-snmp/library/oid.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/types.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/baby_steps.lo: ../include/net-snmp/varbind_api.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/baby_steps.lo: ../include/net-snmp/pdu_api.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/asn1.h
+./helpers/baby_steps.lo: ../include/net-snmp/output_api.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/baby_steps.lo: ../include/net-snmp/session_api.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/callback.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2294,8 +2482,12 @@
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2317,7 +2509,6 @@
 ./helpers/baby_steps.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/container.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/factory.h
-./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/container_iterator.h
@@ -2330,8 +2521,6 @@
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/vacm.h
-./helpers/baby_steps.lo: ../include/net-snmp/output_api.h
-./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/baby_steps.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/transform_oids.h
@@ -2340,6 +2529,7 @@
 ./helpers/baby_steps.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/baby_steps.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/baby_steps.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/baby_steps.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/baby_steps.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -2377,16 +2567,21 @@
 ./helpers/baby_steps.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/baby_steps.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/baby_steps.lo: ../include/net-snmp/agent/mfd.h
+./helpers/baby_steps.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/definitions.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/types.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/oid.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/types.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/varbind_api.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/pdu_api.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/asn1.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/output_api.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/session_api.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/callback.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2394,8 +2589,12 @@
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2417,7 +2616,6 @@
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/container.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/factory.h
-./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/container_iterator.h
@@ -2430,8 +2628,6 @@
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/vacm.h
-./helpers/bulk_to_next.lo: ../include/net-snmp/output_api.h
-./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/transform_oids.h
@@ -2440,6 +2636,7 @@
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -2477,16 +2674,21 @@
 ./helpers/bulk_to_next.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/bulk_to_next.lo: ../include/net-snmp/agent/mfd.h
+./helpers/bulk_to_next.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/cache_handler.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/cache_handler.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/cache_handler.lo: ../include/net-snmp/definitions.h
 ./helpers/cache_handler.lo: ../include/net-snmp/types.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/oid.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/types.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/cache_handler.lo: ../include/net-snmp/varbind_api.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/cache_handler.lo: ../include/net-snmp/pdu_api.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/asn1.h
+./helpers/cache_handler.lo: ../include/net-snmp/output_api.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/cache_handler.lo: ../include/net-snmp/session_api.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/callback.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2494,8 +2696,12 @@
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2517,7 +2723,6 @@
 ./helpers/cache_handler.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/container.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/factory.h
-./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/container_iterator.h
@@ -2530,8 +2735,6 @@
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/vacm.h
-./helpers/cache_handler.lo: ../include/net-snmp/output_api.h
-./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/cache_handler.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/transform_oids.h
@@ -2540,6 +2743,7 @@
 ./helpers/cache_handler.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/cache_handler.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/cache_handler.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/cache_handler.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/cache_handler.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -2577,16 +2781,21 @@
 ./helpers/cache_handler.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/cache_handler.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/cache_handler.lo: ../include/net-snmp/agent/mfd.h
+./helpers/cache_handler.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/debug_handler.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/debug_handler.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/debug_handler.lo: ../include/net-snmp/definitions.h
 ./helpers/debug_handler.lo: ../include/net-snmp/types.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/oid.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/types.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/debug_handler.lo: ../include/net-snmp/varbind_api.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/debug_handler.lo: ../include/net-snmp/pdu_api.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/asn1.h
+./helpers/debug_handler.lo: ../include/net-snmp/output_api.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/debug_handler.lo: ../include/net-snmp/session_api.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/callback.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2594,8 +2803,12 @@
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2617,7 +2830,6 @@
 ./helpers/debug_handler.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/container.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/factory.h
-./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/container_iterator.h
@@ -2630,8 +2842,6 @@
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/vacm.h
-./helpers/debug_handler.lo: ../include/net-snmp/output_api.h
-./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/debug_handler.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/transform_oids.h
@@ -2640,6 +2850,7 @@
 ./helpers/debug_handler.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/debug_handler.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/debug_handler.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/debug_handler.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/debug_handler.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -2677,16 +2888,21 @@
 ./helpers/debug_handler.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/debug_handler.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/debug_handler.lo: ../include/net-snmp/agent/mfd.h
+./helpers/debug_handler.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/instance.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/instance.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/instance.lo: ../include/net-snmp/definitions.h
 ./helpers/instance.lo: ../include/net-snmp/types.h 
+./helpers/instance.lo: ../include/net-snmp/library/oid.h
 ./helpers/instance.lo: ../include/net-snmp/library/types.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/instance.lo: ../include/net-snmp/varbind_api.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/instance.lo: ../include/net-snmp/pdu_api.h
 ./helpers/instance.lo: ../include/net-snmp/library/asn1.h
+./helpers/instance.lo: ../include/net-snmp/output_api.h
+./helpers/instance.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/instance.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/instance.lo: ../include/net-snmp/session_api.h
 ./helpers/instance.lo: ../include/net-snmp/library/callback.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2694,8 +2910,12 @@
 ./helpers/instance.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/instance.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/instance.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/instance.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/instance.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/instance.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2717,7 +2937,6 @@
 ./helpers/instance.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/instance.lo: ../include/net-snmp/library/container.h
 ./helpers/instance.lo: ../include/net-snmp/library/factory.h
-./helpers/instance.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/instance.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/instance.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/instance.lo: ../include/net-snmp/library/container_iterator.h
@@ -2730,8 +2949,6 @@
 ./helpers/instance.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/instance.lo: ../include/net-snmp/library/vacm.h
-./helpers/instance.lo: ../include/net-snmp/output_api.h
-./helpers/instance.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/instance.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/instance.lo: ../include/net-snmp/library/transform_oids.h
@@ -2740,6 +2957,7 @@
 ./helpers/instance.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/instance.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/instance.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/instance.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/instance.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -2776,17 +2994,22 @@
 ./helpers/instance.lo: ../include/net-snmp/agent/table_iterator.h
 ./helpers/instance.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/instance.lo: ../include/net-snmp/agent/table_array.h
-./helpers/instance.lo: ../include/net-snmp/agent/mfd.h 
+./helpers/instance.lo: ../include/net-snmp/agent/mfd.h
+./helpers/instance.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/definitions.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/types.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/oid.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/types.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/varbind_api.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/pdu_api.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/asn1.h
+./helpers/mode_end_call.lo: ../include/net-snmp/output_api.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/session_api.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/callback.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2794,8 +3017,12 @@
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2817,7 +3044,6 @@
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/container.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/factory.h
-./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/container_iterator.h
@@ -2830,8 +3056,6 @@
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/vacm.h
-./helpers/mode_end_call.lo: ../include/net-snmp/output_api.h
-./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/transform_oids.h
@@ -2840,6 +3064,7 @@
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/mode_end_call.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -2877,16 +3102,21 @@
 ./helpers/mode_end_call.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/mode_end_call.lo: ../include/net-snmp/agent/mfd.h
+./helpers/mode_end_call.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/multiplexer.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/multiplexer.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/multiplexer.lo: ../include/net-snmp/definitions.h
 ./helpers/multiplexer.lo: ../include/net-snmp/types.h 
+./helpers/multiplexer.lo: ../include/net-snmp/library/oid.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/types.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/multiplexer.lo: ../include/net-snmp/varbind_api.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/multiplexer.lo: ../include/net-snmp/pdu_api.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/asn1.h
+./helpers/multiplexer.lo: ../include/net-snmp/output_api.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/multiplexer.lo: ../include/net-snmp/session_api.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/callback.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2894,8 +3124,12 @@
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2917,7 +3151,6 @@
 ./helpers/multiplexer.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/container.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/factory.h
-./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/container_iterator.h
@@ -2930,8 +3163,6 @@
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/vacm.h
-./helpers/multiplexer.lo: ../include/net-snmp/output_api.h
-./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/multiplexer.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/transform_oids.h
@@ -2940,6 +3171,7 @@
 ./helpers/multiplexer.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/multiplexer.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/multiplexer.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/multiplexer.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/multiplexer.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -2977,16 +3209,21 @@
 ./helpers/multiplexer.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/multiplexer.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/multiplexer.lo: ../include/net-snmp/agent/mfd.h
+./helpers/multiplexer.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/null.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/null.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/null.lo:  ../include/net-snmp/definitions.h
 ./helpers/null.lo: ../include/net-snmp/types.h 
+./helpers/null.lo: ../include/net-snmp/library/oid.h
 ./helpers/null.lo: ../include/net-snmp/library/types.h
 ./helpers/null.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/null.lo: ../include/net-snmp/varbind_api.h
 ./helpers/null.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/null.lo: ../include/net-snmp/pdu_api.h
 ./helpers/null.lo: ../include/net-snmp/library/asn1.h
+./helpers/null.lo: ../include/net-snmp/output_api.h
+./helpers/null.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/null.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/null.lo: ../include/net-snmp/session_api.h
 ./helpers/null.lo: ../include/net-snmp/library/callback.h
 ./helpers/null.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2994,8 +3231,12 @@
 ./helpers/null.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/null.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/null.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/null.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/null.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/null.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/null.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/null.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/null.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/null.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/null.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/null.lo: ../include/net-snmp/library/ucd_compat.h
@@ -3017,7 +3258,6 @@
 ./helpers/null.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/null.lo: ../include/net-snmp/library/container.h
 ./helpers/null.lo: ../include/net-snmp/library/factory.h
-./helpers/null.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/null.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/null.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/null.lo: ../include/net-snmp/library/container_iterator.h
@@ -3030,8 +3270,6 @@
 ./helpers/null.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/null.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/null.lo: ../include/net-snmp/library/vacm.h
-./helpers/null.lo: ../include/net-snmp/output_api.h
-./helpers/null.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/null.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/null.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/null.lo: ../include/net-snmp/library/transform_oids.h
@@ -3040,6 +3278,7 @@
 ./helpers/null.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/null.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/null.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/null.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/null.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/null.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/null.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -3076,17 +3315,22 @@
 ./helpers/null.lo: ../include/net-snmp/agent/table_iterator.h
 ./helpers/null.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/null.lo: ../include/net-snmp/agent/table_array.h
-./helpers/null.lo: ../include/net-snmp/agent/mfd.h 
+./helpers/null.lo: ../include/net-snmp/agent/mfd.h
+./helpers/null.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/old_api.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/old_api.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/old_api.lo: ../include/net-snmp/definitions.h
 ./helpers/old_api.lo: ../include/net-snmp/types.h 
+./helpers/old_api.lo: ../include/net-snmp/library/oid.h
 ./helpers/old_api.lo: ../include/net-snmp/library/types.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/old_api.lo: ../include/net-snmp/varbind_api.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/old_api.lo: ../include/net-snmp/pdu_api.h
 ./helpers/old_api.lo: ../include/net-snmp/library/asn1.h
+./helpers/old_api.lo: ../include/net-snmp/output_api.h
+./helpers/old_api.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/old_api.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/old_api.lo: ../include/net-snmp/session_api.h
 ./helpers/old_api.lo: ../include/net-snmp/library/callback.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmp_transport.h
@@ -3094,8 +3338,12 @@
 ./helpers/old_api.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/old_api.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/old_api.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/old_api.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/old_api.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/old_api.lo: ../include/net-snmp/library/ucd_compat.h
@@ -3117,7 +3365,6 @@
 ./helpers/old_api.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/old_api.lo: ../include/net-snmp/library/container.h
 ./helpers/old_api.lo: ../include/net-snmp/library/factory.h
-./helpers/old_api.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/old_api.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/old_api.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/old_api.lo: ../include/net-snmp/library/container_iterator.h
@@ -3130,8 +3377,6 @@
 ./helpers/old_api.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/old_api.lo: ../include/net-snmp/library/vacm.h
-./helpers/old_api.lo: ../include/net-snmp/output_api.h
-./helpers/old_api.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/old_api.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/old_api.lo: ../include/net-snmp/library/transform_oids.h
@@ -3140,6 +3385,7 @@
 ./helpers/old_api.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/old_api.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/old_api.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/old_api.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/old_api.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -3176,18 +3422,23 @@
 ./helpers/old_api.lo: ../include/net-snmp/agent/table_iterator.h
 ./helpers/old_api.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/old_api.lo: ../include/net-snmp/agent/table_array.h
-./helpers/old_api.lo: ../include/net-snmp/agent/mfd.h 
+./helpers/old_api.lo: ../include/net-snmp/agent/mfd.h
+./helpers/old_api.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/old_api.lo: ../include/net-snmp/agent/agent_callbacks.h
 ./helpers/read_only.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/read_only.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/read_only.lo: ../include/net-snmp/definitions.h
 ./helpers/read_only.lo: ../include/net-snmp/types.h 
+./helpers/read_only.lo: ../include/net-snmp/library/oid.h
 ./helpers/read_only.lo: ../include/net-snmp/library/types.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/read_only.lo: ../include/net-snmp/varbind_api.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/read_only.lo: ../include/net-snmp/pdu_api.h
 ./helpers/read_only.lo: ../include/net-snmp/library/asn1.h
+./helpers/read_only.lo: ../include/net-snmp/output_api.h
+./helpers/read_only.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/read_only.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/read_only.lo: ../include/net-snmp/session_api.h
 ./helpers/read_only.lo: ../include/net-snmp/library/callback.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmp_transport.h
@@ -3195,8 +3446,12 @@
 ./helpers/read_only.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/read_only.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/read_only.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/read_only.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/read_only.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/read_only.lo: ../include/net-snmp/library/ucd_compat.h
@@ -3218,7 +3473,6 @@
 ./helpers/read_only.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/read_only.lo: ../include/net-snmp/library/container.h
 ./helpers/read_only.lo: ../include/net-snmp/library/factory.h
-./helpers/read_only.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/read_only.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/read_only.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/read_only.lo: ../include/net-snmp/library/container_iterator.h
@@ -3231,8 +3485,6 @@
 ./helpers/read_only.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/read_only.lo: ../include/net-snmp/library/vacm.h
-./helpers/read_only.lo: ../include/net-snmp/output_api.h
-./helpers/read_only.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/read_only.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/read_only.lo: ../include/net-snmp/library/transform_oids.h
@@ -3241,6 +3493,7 @@
 ./helpers/read_only.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/read_only.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/read_only.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/read_only.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/read_only.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -3278,16 +3531,21 @@
 ./helpers/read_only.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/read_only.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/read_only.lo: ../include/net-snmp/agent/mfd.h
+./helpers/read_only.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/row_merge.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/row_merge.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/row_merge.lo: ../include/net-snmp/definitions.h
 ./helpers/row_merge.lo: ../include/net-snmp/types.h 
+./helpers/row_merge.lo: ../include/net-snmp/library/oid.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/types.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/row_merge.lo: ../include/net-snmp/varbind_api.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/row_merge.lo: ../include/net-snmp/pdu_api.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/asn1.h
+./helpers/row_merge.lo: ../include/net-snmp/output_api.h
+./helpers/row_merge.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/row_merge.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/row_merge.lo: ../include/net-snmp/session_api.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/callback.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmp_transport.h
@@ -3295,8 +3553,12 @@
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/row_merge.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/row_merge.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/row_merge.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/row_merge.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/ucd_compat.h
@@ -3318,7 +3580,6 @@
 ./helpers/row_merge.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/container.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/factory.h
-./helpers/row_merge.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/container_iterator.h
@@ -3331,8 +3592,6 @@
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/vacm.h
-./helpers/row_merge.lo: ../include/net-snmp/output_api.h
-./helpers/row_merge.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/row_merge.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/transform_oids.h
@@ -3341,6 +3600,7 @@
 ./helpers/row_merge.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/row_merge.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/row_merge.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/row_merge.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/row_merge.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -3378,16 +3638,21 @@
 ./helpers/row_merge.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/row_merge.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/row_merge.lo: ../include/net-snmp/agent/mfd.h
+./helpers/row_merge.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/scalar.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/scalar.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/scalar.lo: ../include/net-snmp/definitions.h
 ./helpers/scalar.lo: ../include/net-snmp/types.h 
+./helpers/scalar.lo: ../include/net-snmp/library/oid.h
 ./helpers/scalar.lo: ../include/net-snmp/library/types.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/scalar.lo: ../include/net-snmp/varbind_api.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/scalar.lo: ../include/net-snmp/pdu_api.h
 ./helpers/scalar.lo: ../include/net-snmp/library/asn1.h
+./helpers/scalar.lo: ../include/net-snmp/output_api.h
+./helpers/scalar.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/scalar.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/scalar.lo: ../include/net-snmp/session_api.h
 ./helpers/scalar.lo: ../include/net-snmp/library/callback.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmp_transport.h
@@ -3395,8 +3660,12 @@
 ./helpers/scalar.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/scalar.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/scalar.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/scalar.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/scalar.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/scalar.lo: ../include/net-snmp/library/ucd_compat.h
@@ -3418,7 +3687,6 @@
 ./helpers/scalar.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/scalar.lo: ../include/net-snmp/library/container.h
 ./helpers/scalar.lo: ../include/net-snmp/library/factory.h
-./helpers/scalar.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/scalar.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/scalar.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/scalar.lo: ../include/net-snmp/library/container_iterator.h
@@ -3431,8 +3699,6 @@
 ./helpers/scalar.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/scalar.lo: ../include/net-snmp/library/vacm.h
-./helpers/scalar.lo: ../include/net-snmp/output_api.h
-./helpers/scalar.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/scalar.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/scalar.lo: ../include/net-snmp/library/transform_oids.h
@@ -3441,6 +3707,7 @@
 ./helpers/scalar.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/scalar.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/scalar.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/scalar.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/scalar.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -3477,17 +3744,22 @@
 ./helpers/scalar.lo: ../include/net-snmp/agent/table_iterator.h
 ./helpers/scalar.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/scalar.lo: ../include/net-snmp/agent/table_array.h
-./helpers/scalar.lo: ../include/net-snmp/agent/mfd.h 
+./helpers/scalar.lo: ../include/net-snmp/agent/mfd.h
+./helpers/scalar.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/scalar_group.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/scalar_group.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/scalar_group.lo: ../include/net-snmp/definitions.h
 ./helpers/scalar_group.lo: ../include/net-snmp/types.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/oid.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/types.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/scalar_group.lo: ../include/net-snmp/varbind_api.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/scalar_group.lo: ../include/net-snmp/pdu_api.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/asn1.h
+./helpers/scalar_group.lo: ../include/net-snmp/output_api.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/scalar_group.lo: ../include/net-snmp/session_api.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/callback.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_transport.h
@@ -3495,8 +3767,12 @@
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/ucd_compat.h
@@ -3518,7 +3794,6 @@
 ./helpers/scalar_group.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/container.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/factory.h
-./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/container_iterator.h
@@ -3531,8 +3806,6 @@
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/vacm.h
-./helpers/scalar_group.lo: ../include/net-snmp/output_api.h
-./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/scalar_group.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/transform_oids.h
@@ -3541,6 +3814,7 @@
 ./helpers/scalar_group.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/scalar_group.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/scalar_group.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/scalar_group.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/scalar_group.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -3578,16 +3852,21 @@
 ./helpers/scalar_group.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/scalar_group.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/scalar_group.lo: ../include/net-snmp/agent/mfd.h
+./helpers/scalar_group.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/serialize.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/serialize.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/serialize.lo: ../include/net-snmp/definitions.h
 ./helpers/serialize.lo: ../include/net-snmp/types.h 
+./helpers/serialize.lo: ../include/net-snmp/library/oid.h
 ./helpers/serialize.lo: ../include/net-snmp/library/types.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/serialize.lo: ../include/net-snmp/varbind_api.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/serialize.lo: ../include/net-snmp/pdu_api.h
 ./helpers/serialize.lo: ../include/net-snmp/library/asn1.h
+./helpers/serialize.lo: ../include/net-snmp/output_api.h
+./helpers/serialize.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/serialize.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/serialize.lo: ../include/net-snmp/session_api.h
 ./helpers/serialize.lo: ../include/net-snmp/library/callback.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmp_transport.h
@@ -3595,8 +3874,12 @@
 ./helpers/serialize.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/serialize.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/serialize.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/serialize.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/serialize.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/serialize.lo: ../include/net-snmp/library/ucd_compat.h
@@ -3618,7 +3901,6 @@
 ./helpers/serialize.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/serialize.lo: ../include/net-snmp/library/container.h
 ./helpers/serialize.lo: ../include/net-snmp/library/factory.h
-./helpers/serialize.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/serialize.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/serialize.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/serialize.lo: ../include/net-snmp/library/container_iterator.h
@@ -3631,8 +3913,6 @@
 ./helpers/serialize.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/serialize.lo: ../include/net-snmp/library/vacm.h
-./helpers/serialize.lo: ../include/net-snmp/output_api.h
-./helpers/serialize.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/serialize.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/serialize.lo: ../include/net-snmp/library/transform_oids.h
@@ -3641,6 +3921,7 @@
 ./helpers/serialize.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/serialize.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/serialize.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/serialize.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/serialize.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -3678,16 +3959,128 @@
 ./helpers/serialize.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/serialize.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/serialize.lo: ../include/net-snmp/agent/mfd.h
+./helpers/serialize.lo: ../include/net-snmp/agent/snmp_get_statistic.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/net-snmp-config.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/net-snmp-includes.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/definitions.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/types.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/oid.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/types.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmp_api.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/varbind_api.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmp_client.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/pdu_api.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/asn1.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/output_api.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmp_logging.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/session_api.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/callback.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmp_transport.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmp_service.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/ucd_compat.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/mib.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/mib_api.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/parse.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/oid_stash.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmp_impl.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmp.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmp-tc.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/getopt.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/utilities.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/system.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/tools.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/int64.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/mt_support.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmp_alarm.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/data_list.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/check_varbind.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/container.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/factory.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/container_binary_array.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/container_list_ssll.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/container_iterator.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/container.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmp_assert.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/version.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/config_api.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/read_config.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/default_store.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmp_parse_args.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmp_enum.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/vacm.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/snmpv3_api.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmpv3.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/transform_oids.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/keytools.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/scapi.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/lcd_time.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmp_secmod.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmptsm.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/snmpusm.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/mib_module_config.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/agent_module_config.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/snmp_agent.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/snmp_vars.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/agent_handler.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/var_struct.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/agent_registry.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/library/fd_event_manager.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/ds_agent.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/agent_read_config.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/agent_trap.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/all_helpers.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/instance.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/baby_steps.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/scalar.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/scalar_group.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/watcher.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/multiplexer.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/null.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/debug_handler.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/cache_handler.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/old_api.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/read_only.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/row_merge.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/serialize.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/bulk_to_next.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/mode_end_call.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/table.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/table_data.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/table_dataset.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/table_tdata.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/table_iterator.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/table_container.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/table_array.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/mfd.h
+./helpers/snmp_get_statistic.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/stash_cache.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/stash_cache.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/stash_cache.lo: ../include/net-snmp/definitions.h
 ./helpers/stash_cache.lo: ../include/net-snmp/types.h 
+./helpers/stash_cache.lo: ../include/net-snmp/library/oid.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/types.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/stash_cache.lo: ../include/net-snmp/varbind_api.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/stash_cache.lo: ../include/net-snmp/pdu_api.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/asn1.h
+./helpers/stash_cache.lo: ../include/net-snmp/output_api.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/stash_cache.lo: ../include/net-snmp/session_api.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/callback.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_transport.h
@@ -3695,8 +4088,12 @@
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/ucd_compat.h
@@ -3718,7 +4115,6 @@
 ./helpers/stash_cache.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/container.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/factory.h
-./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/container_iterator.h
@@ -3731,8 +4127,6 @@
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/vacm.h
-./helpers/stash_cache.lo: ../include/net-snmp/output_api.h
-./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/stash_cache.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/transform_oids.h
@@ -3741,6 +4135,7 @@
 ./helpers/stash_cache.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/stash_cache.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/stash_cache.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/stash_cache.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/stash_cache.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -3778,18 +4173,23 @@
 ./helpers/stash_cache.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/stash_cache.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/stash_cache.lo: ../include/net-snmp/agent/mfd.h
+./helpers/stash_cache.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/stash_cache.lo: ../include/net-snmp/agent/stash_cache.h
 ./helpers/stash_cache.lo: ../include/net-snmp/agent/stash_to_next.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/definitions.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/types.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/oid.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/types.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/varbind_api.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/pdu_api.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/asn1.h
+./helpers/stash_to_next.lo: ../include/net-snmp/output_api.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/session_api.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/callback.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_transport.h
@@ -3797,8 +4197,12 @@
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/ucd_compat.h
@@ -3820,7 +4224,6 @@
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/container.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/factory.h
-./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/container_iterator.h
@@ -3833,8 +4236,6 @@
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/vacm.h
-./helpers/stash_to_next.lo: ../include/net-snmp/output_api.h
-./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/transform_oids.h
@@ -3843,6 +4244,7 @@
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/stash_to_next.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -3880,18 +4282,23 @@
 ./helpers/stash_to_next.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/agent/mfd.h
+./helpers/stash_to_next.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/agent/stash_to_next.h
 ./helpers/stash_to_next.lo: ../include/net-snmp/agent/stash_cache.h
 ./helpers/table_array.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/table_array.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/table_array.lo: ../include/net-snmp/definitions.h
 ./helpers/table_array.lo: ../include/net-snmp/types.h 
+./helpers/table_array.lo: ../include/net-snmp/library/oid.h
 ./helpers/table_array.lo: ../include/net-snmp/library/types.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/table_array.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table_array.lo: ../include/net-snmp/pdu_api.h
 ./helpers/table_array.lo: ../include/net-snmp/library/asn1.h
+./helpers/table_array.lo: ../include/net-snmp/output_api.h
+./helpers/table_array.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/table_array.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table_array.lo: ../include/net-snmp/session_api.h
 ./helpers/table_array.lo: ../include/net-snmp/library/callback.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmp_transport.h
@@ -3899,8 +4306,12 @@
 ./helpers/table_array.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/table_array.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/table_array.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/table_array.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/table_array.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/table_array.lo: ../include/net-snmp/library/ucd_compat.h
@@ -3922,7 +4333,6 @@
 ./helpers/table_array.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/table_array.lo: ../include/net-snmp/library/container.h
 ./helpers/table_array.lo: ../include/net-snmp/library/factory.h
-./helpers/table_array.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table_array.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/table_array.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/table_array.lo: ../include/net-snmp/library/container_iterator.h
@@ -3935,8 +4345,6 @@
 ./helpers/table_array.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/table_array.lo: ../include/net-snmp/library/vacm.h
-./helpers/table_array.lo: ../include/net-snmp/output_api.h
-./helpers/table_array.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/table_array.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/table_array.lo: ../include/net-snmp/library/transform_oids.h
@@ -3945,6 +4353,7 @@
 ./helpers/table_array.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/table_array.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/table_array.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/table_array.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/table_array.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -3982,16 +4391,21 @@
 ./helpers/table_array.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/table_array.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/table_array.lo: ../include/net-snmp/agent/mfd.h
+./helpers/table_array.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/table.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/table.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/table.lo:  ../include/net-snmp/definitions.h
 ./helpers/table.lo: ../include/net-snmp/types.h 
+./helpers/table.lo: ../include/net-snmp/library/oid.h
 ./helpers/table.lo: ../include/net-snmp/library/types.h
 ./helpers/table.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/table.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table.lo: ../include/net-snmp/pdu_api.h
 ./helpers/table.lo: ../include/net-snmp/library/asn1.h
+./helpers/table.lo: ../include/net-snmp/output_api.h
+./helpers/table.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/table.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table.lo: ../include/net-snmp/session_api.h
 ./helpers/table.lo: ../include/net-snmp/library/callback.h
 ./helpers/table.lo: ../include/net-snmp/library/snmp_transport.h
@@ -3999,8 +4413,12 @@
 ./helpers/table.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/table.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/table.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/table.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/table.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/table.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/table.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/table.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/table.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/table.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/table.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/table.lo: ../include/net-snmp/library/ucd_compat.h
@@ -4022,7 +4440,6 @@
 ./helpers/table.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/table.lo: ../include/net-snmp/library/container.h
 ./helpers/table.lo: ../include/net-snmp/library/factory.h
-./helpers/table.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/table.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/table.lo: ../include/net-snmp/library/container_iterator.h
@@ -4035,8 +4452,6 @@
 ./helpers/table.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/table.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/table.lo: ../include/net-snmp/library/vacm.h
-./helpers/table.lo: ../include/net-snmp/output_api.h
-./helpers/table.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/table.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/table.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/table.lo: ../include/net-snmp/library/transform_oids.h
@@ -4045,6 +4460,7 @@
 ./helpers/table.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/table.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/table.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/table.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/table.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/table.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/table.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -4081,17 +4497,22 @@
 ./helpers/table.lo: ../include/net-snmp/agent/table_iterator.h
 ./helpers/table.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/table.lo: ../include/net-snmp/agent/table_array.h
-./helpers/table.lo: ../include/net-snmp/agent/mfd.h 
+./helpers/table.lo: ../include/net-snmp/agent/mfd.h
+./helpers/table.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/table_container.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/table_container.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/table_container.lo: ../include/net-snmp/definitions.h
 ./helpers/table_container.lo: ../include/net-snmp/types.h
+./helpers/table_container.lo: ../include/net-snmp/library/oid.h
 ./helpers/table_container.lo: ../include/net-snmp/library/types.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/table_container.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table_container.lo: ../include/net-snmp/pdu_api.h
 ./helpers/table_container.lo: ../include/net-snmp/library/asn1.h
+./helpers/table_container.lo: ../include/net-snmp/output_api.h
+./helpers/table_container.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/table_container.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table_container.lo: ../include/net-snmp/session_api.h
 ./helpers/table_container.lo: ../include/net-snmp/library/callback.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmp_transport.h
@@ -4099,8 +4520,12 @@
 ./helpers/table_container.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/table_container.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/table_container.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/table_container.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/table_container.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/table_container.lo: ../include/net-snmp/library/ucd_compat.h
@@ -4122,7 +4547,6 @@
 ./helpers/table_container.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/table_container.lo: ../include/net-snmp/library/container.h
 ./helpers/table_container.lo: ../include/net-snmp/library/factory.h
-./helpers/table_container.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table_container.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/table_container.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/table_container.lo: ../include/net-snmp/library/container_iterator.h
@@ -4135,8 +4559,6 @@
 ./helpers/table_container.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/table_container.lo: ../include/net-snmp/library/vacm.h
-./helpers/table_container.lo: ../include/net-snmp/output_api.h
-./helpers/table_container.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/table_container.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/table_container.lo: ../include/net-snmp/library/transform_oids.h
@@ -4145,6 +4567,7 @@
 ./helpers/table_container.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/table_container.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/table_container.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/table_container.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/table_container.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -4182,16 +4605,21 @@
 ./helpers/table_container.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/table_container.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/table_container.lo: ../include/net-snmp/agent/mfd.h
+./helpers/table_container.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/table_data.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/table_data.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/table_data.lo: ../include/net-snmp/definitions.h
 ./helpers/table_data.lo: ../include/net-snmp/types.h 
+./helpers/table_data.lo: ../include/net-snmp/library/oid.h
 ./helpers/table_data.lo: ../include/net-snmp/library/types.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/table_data.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table_data.lo: ../include/net-snmp/pdu_api.h
 ./helpers/table_data.lo: ../include/net-snmp/library/asn1.h
+./helpers/table_data.lo: ../include/net-snmp/output_api.h
+./helpers/table_data.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/table_data.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table_data.lo: ../include/net-snmp/session_api.h
 ./helpers/table_data.lo: ../include/net-snmp/library/callback.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmp_transport.h
@@ -4199,8 +4627,12 @@
 ./helpers/table_data.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/table_data.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/table_data.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/table_data.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/table_data.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/table_data.lo: ../include/net-snmp/library/ucd_compat.h
@@ -4222,7 +4654,6 @@
 ./helpers/table_data.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/table_data.lo: ../include/net-snmp/library/container.h
 ./helpers/table_data.lo: ../include/net-snmp/library/factory.h
-./helpers/table_data.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table_data.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/table_data.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/table_data.lo: ../include/net-snmp/library/container_iterator.h
@@ -4235,8 +4666,6 @@
 ./helpers/table_data.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/table_data.lo: ../include/net-snmp/library/vacm.h
-./helpers/table_data.lo: ../include/net-snmp/output_api.h
-./helpers/table_data.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/table_data.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/table_data.lo: ../include/net-snmp/library/transform_oids.h
@@ -4245,6 +4674,7 @@
 ./helpers/table_data.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/table_data.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/table_data.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/table_data.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/table_data.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -4282,16 +4712,21 @@
 ./helpers/table_data.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/table_data.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/table_data.lo: ../include/net-snmp/agent/mfd.h
+./helpers/table_data.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/table_dataset.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/table_dataset.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/table_dataset.lo: ../include/net-snmp/definitions.h
 ./helpers/table_dataset.lo: ../include/net-snmp/types.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/oid.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/types.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/table_dataset.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table_dataset.lo: ../include/net-snmp/pdu_api.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/asn1.h
+./helpers/table_dataset.lo: ../include/net-snmp/output_api.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table_dataset.lo: ../include/net-snmp/session_api.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/callback.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_transport.h
@@ -4299,8 +4734,12 @@
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/ucd_compat.h
@@ -4322,7 +4761,6 @@
 ./helpers/table_dataset.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/container.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/factory.h
-./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/container_iterator.h
@@ -4335,8 +4773,6 @@
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/vacm.h
-./helpers/table_dataset.lo: ../include/net-snmp/output_api.h
-./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/table_dataset.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/transform_oids.h
@@ -4345,6 +4781,7 @@
 ./helpers/table_dataset.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/table_dataset.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/table_dataset.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/table_dataset.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/table_dataset.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -4382,16 +4819,21 @@
 ./helpers/table_dataset.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/table_dataset.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/table_dataset.lo: ../include/net-snmp/agent/mfd.h
+./helpers/table_dataset.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/table_iterator.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/table_iterator.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/table_iterator.lo: ../include/net-snmp/definitions.h
 ./helpers/table_iterator.lo: ../include/net-snmp/types.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/oid.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/types.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/table_iterator.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table_iterator.lo: ../include/net-snmp/pdu_api.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/asn1.h
+./helpers/table_iterator.lo: ../include/net-snmp/output_api.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table_iterator.lo: ../include/net-snmp/session_api.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/callback.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_transport.h
@@ -4399,8 +4841,12 @@
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/ucd_compat.h
@@ -4422,7 +4868,6 @@
 ./helpers/table_iterator.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/container.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/factory.h
-./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/container_iterator.h
@@ -4435,8 +4880,6 @@
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/vacm.h
-./helpers/table_iterator.lo: ../include/net-snmp/output_api.h
-./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/table_iterator.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/transform_oids.h
@@ -4445,6 +4888,7 @@
 ./helpers/table_iterator.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/table_iterator.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/table_iterator.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/table_iterator.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/table_iterator.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -4482,17 +4926,22 @@
 ./helpers/table_iterator.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/table_iterator.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/table_iterator.lo: ../include/net-snmp/agent/mfd.h
+./helpers/table_iterator.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/table_iterator.lo: ../include/net-snmp/agent/stash_cache.h
 ./helpers/table_row.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/table_row.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/table_row.lo: ../include/net-snmp/definitions.h
 ./helpers/table_row.lo: ../include/net-snmp/types.h 
+./helpers/table_row.lo: ../include/net-snmp/library/oid.h
 ./helpers/table_row.lo: ../include/net-snmp/library/types.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/table_row.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table_row.lo: ../include/net-snmp/pdu_api.h
 ./helpers/table_row.lo: ../include/net-snmp/library/asn1.h
+./helpers/table_row.lo: ../include/net-snmp/output_api.h
+./helpers/table_row.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/table_row.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table_row.lo: ../include/net-snmp/session_api.h
 ./helpers/table_row.lo: ../include/net-snmp/library/callback.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmp_transport.h
@@ -4500,8 +4949,12 @@
 ./helpers/table_row.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/table_row.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/table_row.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/table_row.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/table_row.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/table_row.lo: ../include/net-snmp/library/ucd_compat.h
@@ -4523,7 +4976,6 @@
 ./helpers/table_row.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/table_row.lo: ../include/net-snmp/library/container.h
 ./helpers/table_row.lo: ../include/net-snmp/library/factory.h
-./helpers/table_row.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table_row.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/table_row.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/table_row.lo: ../include/net-snmp/library/container_iterator.h
@@ -4536,8 +4988,6 @@
 ./helpers/table_row.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/table_row.lo: ../include/net-snmp/library/vacm.h
-./helpers/table_row.lo: ../include/net-snmp/output_api.h
-./helpers/table_row.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/table_row.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/table_row.lo: ../include/net-snmp/library/transform_oids.h
@@ -4546,6 +4996,7 @@
 ./helpers/table_row.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/table_row.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/table_row.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/table_row.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/table_row.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -4583,16 +5034,21 @@
 ./helpers/table_row.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/table_row.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/table_row.lo: ../include/net-snmp/agent/mfd.h
+./helpers/table_row.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/table_tdata.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/table_tdata.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/table_tdata.lo: ../include/net-snmp/definitions.h
 ./helpers/table_tdata.lo: ../include/net-snmp/types.h 
+./helpers/table_tdata.lo: ../include/net-snmp/library/oid.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/types.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/table_tdata.lo: ../include/net-snmp/varbind_api.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/table_tdata.lo: ../include/net-snmp/pdu_api.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/asn1.h
+./helpers/table_tdata.lo: ../include/net-snmp/output_api.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table_tdata.lo: ../include/net-snmp/session_api.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/callback.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_transport.h
@@ -4600,8 +5056,12 @@
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/ucd_compat.h
@@ -4623,7 +5083,6 @@
 ./helpers/table_tdata.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/container.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/factory.h
-./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/container_iterator.h
@@ -4636,8 +5095,6 @@
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/vacm.h
-./helpers/table_tdata.lo: ../include/net-snmp/output_api.h
-./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/table_tdata.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/transform_oids.h
@@ -4646,6 +5103,7 @@
 ./helpers/table_tdata.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/table_tdata.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/table_tdata.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/table_tdata.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/table_tdata.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -4683,16 +5141,21 @@
 ./helpers/table_tdata.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/table_tdata.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/table_tdata.lo: ../include/net-snmp/agent/mfd.h
+./helpers/table_tdata.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./helpers/watcher.lo: ../include/net-snmp/net-snmp-config.h
 ./helpers/watcher.lo: ../include/net-snmp/net-snmp-includes.h
 ./helpers/watcher.lo: ../include/net-snmp/definitions.h
 ./helpers/watcher.lo: ../include/net-snmp/types.h 
+./helpers/watcher.lo: ../include/net-snmp/library/oid.h
 ./helpers/watcher.lo: ../include/net-snmp/library/types.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmp_api.h
 ./helpers/watcher.lo: ../include/net-snmp/varbind_api.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmp_client.h
 ./helpers/watcher.lo: ../include/net-snmp/pdu_api.h
 ./helpers/watcher.lo: ../include/net-snmp/library/asn1.h
+./helpers/watcher.lo: ../include/net-snmp/output_api.h
+./helpers/watcher.lo: ../include/net-snmp/library/snmp_debug.h
+./helpers/watcher.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/watcher.lo: ../include/net-snmp/session_api.h
 ./helpers/watcher.lo: ../include/net-snmp/library/callback.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmp_transport.h
@@ -4700,8 +5163,12 @@
 ./helpers/watcher.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./helpers/watcher.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./helpers/watcher.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./helpers/watcher.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./helpers/watcher.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./helpers/watcher.lo: ../include/net-snmp/library/ucd_compat.h
@@ -4723,7 +5190,6 @@
 ./helpers/watcher.lo: ../include/net-snmp/library/check_varbind.h
 ./helpers/watcher.lo: ../include/net-snmp/library/container.h
 ./helpers/watcher.lo: ../include/net-snmp/library/factory.h
-./helpers/watcher.lo: ../include/net-snmp/library/snmp_logging.h
 ./helpers/watcher.lo: ../include/net-snmp/library/container_binary_array.h
 ./helpers/watcher.lo: ../include/net-snmp/library/container_list_ssll.h
 ./helpers/watcher.lo: ../include/net-snmp/library/container_iterator.h
@@ -4736,8 +5202,6 @@
 ./helpers/watcher.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmp_enum.h
 ./helpers/watcher.lo: ../include/net-snmp/library/vacm.h
-./helpers/watcher.lo: ../include/net-snmp/output_api.h
-./helpers/watcher.lo: ../include/net-snmp/library/snmp_debug.h
 ./helpers/watcher.lo: ../include/net-snmp/snmpv3_api.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmpv3.h
 ./helpers/watcher.lo: ../include/net-snmp/library/transform_oids.h
@@ -4746,6 +5210,7 @@
 ./helpers/watcher.lo: ../include/net-snmp/library/lcd_time.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmp_secmod.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./helpers/watcher.lo: ../include/net-snmp/library/snmptsm.h
 ./helpers/watcher.lo: ../include/net-snmp/library/snmpusm.h
 ./helpers/watcher.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./helpers/watcher.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -4783,16 +5248,21 @@
 ./helpers/watcher.lo: ../include/net-snmp/agent/table_container.h
 ./helpers/watcher.lo: ../include/net-snmp/agent/table_array.h
 ./helpers/watcher.lo: ../include/net-snmp/agent/mfd.h
+./helpers/watcher.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/net-snmp-config.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/net-snmp-includes.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/definitions.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/types.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/oid.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/types.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_api.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/varbind_api.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_client.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/pdu_api.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/asn1.h
+./mibgroup/header_complex.lo: ../include/net-snmp/output_api.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_debug.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_logging.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/session_api.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/callback.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_transport.h
@@ -4800,8 +5270,12 @@
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/ucd_compat.h
@@ -4823,7 +5297,6 @@
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/check_varbind.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/container.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/factory.h
-./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_logging.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/container_binary_array.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/container_list_ssll.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/container_iterator.h
@@ -4836,8 +5309,6 @@
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_enum.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/vacm.h
-./mibgroup/header_complex.lo: ../include/net-snmp/output_api.h
-./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_debug.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/snmpv3_api.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpv3.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/transform_oids.h
@@ -4846,6 +5317,7 @@
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/lcd_time.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmp_secmod.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./mibgroup/header_complex.lo: ../include/net-snmp/library/snmptsm.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/library/snmpusm.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -4883,18 +5355,23 @@
 ./mibgroup/header_complex.lo: ../include/net-snmp/agent/table_container.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/agent/table_array.h
 ./mibgroup/header_complex.lo: ../include/net-snmp/agent/mfd.h
+./mibgroup/header_complex.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./mibgroup/header_complex.lo: ./mibgroup/header_complex.h
 ./mibgroup/kernel_sunos5.lo: ../include/net-snmp/net-snmp-config.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/net-snmp-config.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/net-snmp-includes.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/definitions.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/types.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/oid.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/types.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_api.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/varbind_api.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_client.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/pdu_api.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/asn1.h
+./mibgroup/testhandler.lo: ../include/net-snmp/output_api.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_debug.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_logging.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/session_api.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/callback.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_transport.h
@@ -4902,8 +5379,12 @@
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/ucd_compat.h
@@ -4925,7 +5406,6 @@
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/check_varbind.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/container.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/factory.h
-./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_logging.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/container_binary_array.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/container_list_ssll.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/container_iterator.h
@@ -4938,8 +5418,6 @@
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_enum.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/vacm.h
-./mibgroup/testhandler.lo: ../include/net-snmp/output_api.h
-./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_debug.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/snmpv3_api.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpv3.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/transform_oids.h
@@ -4948,6 +5426,7 @@
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/lcd_time.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmp_secmod.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./mibgroup/testhandler.lo: ../include/net-snmp/library/snmptsm.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/library/snmpusm.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -4985,17 +5464,22 @@
 ./mibgroup/testhandler.lo: ../include/net-snmp/agent/table_container.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/agent/table_array.h
 ./mibgroup/testhandler.lo: ../include/net-snmp/agent/mfd.h
+./mibgroup/testhandler.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./mibgroup/testhandler.lo: ./mibgroup/testhandler.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/net-snmp-config.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/net-snmp-includes.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/definitions.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/types.h 
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/oid.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/types.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_api.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/varbind_api.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_client.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/pdu_api.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/asn1.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/output_api.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_debug.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_logging.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/session_api.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/callback.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_transport.h
@@ -5003,8 +5487,12 @@
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/ucd_compat.h
@@ -5026,7 +5514,6 @@
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/check_varbind.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/container.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/factory.h
-./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_logging.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/container_binary_array.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/container_list_ssll.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/container_iterator.h
@@ -5039,8 +5526,6 @@
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_enum.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/vacm.h
-./mibgroup/util_funcs.lo: ../include/net-snmp/output_api.h
-./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_debug.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/snmpv3_api.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpv3.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/transform_oids.h
@@ -5049,6 +5534,7 @@
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/lcd_time.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmp_secmod.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmptsm.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/library/snmpusm.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -5085,10 +5571,13 @@
 ./mibgroup/util_funcs.lo: ../include/net-snmp/agent/table_iterator.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/agent/table_container.h
 ./mibgroup/util_funcs.lo: ../include/net-snmp/agent/table_array.h
-./mibgroup/util_funcs.lo: ../include/net-snmp/agent/mfd.h mibgroup/struct.h
-./mibgroup/util_funcs.lo: ./mibgroup/util_funcs.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/agent/mfd.h
+./mibgroup/util_funcs.lo: ../include/net-snmp/agent/snmp_get_statistic.h
+./mibgroup/util_funcs.lo: mibgroup/struct.h ./mibgroup/util_funcs.h
+./mibgroup/util_funcs.lo: mibgroup/util_funcs/Exit.h
 ./mibgroup/util_funcs.lo: mibgroup/util_funcs/header_generic.h
 ./mibgroup/util_funcs.lo: mibgroup/util_funcs/header_simple_table.h
+./mibgroup/util_funcs.lo: mibgroup/util_funcs/restart.h
 ./mibgroup/util_funcs.lo: mibgroup/util_funcs/MIB_STATS_CACHE_TIMEOUT.h
 ./mibgroup/util_funcs.lo: ./mibgroup/utilities/execute.h
 ./mibgroup/util_funcs.lo: ./mibgroup/ucd-snmp/errormib.h
diff --git a/agent/Makefile.in b/agent/Makefile.in
index 766e5c6..fa510a9 100644
--- a/agent/Makefile.in
+++ b/agent/Makefile.in
@@ -22,7 +22,8 @@
 INSTALLPOSTLIBS	= libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION)
 
 INCLUDESUBDIR=agent
-INCLUDESUBDIRHEADERS=agent_read_config.h \
+HEADERS=\
+	agent_read_config.h \
 	agent_registry.h \
 	agent_index.h \
 	agent_sysORTable.h \
@@ -36,7 +37,37 @@
 	net-snmp-agent-includes.h \
 	mib_modules.h \
 	agent_callbacks.h \
-	sysORTable.h
+	sysORTable.h \
+	all_helpers.h \
+	baby_steps.h \
+	bulk_to_next.h \
+	cache_handler.h \
+	debug_handler.h \
+	instance.h \
+	mode_end_call.h \
+	multiplexer.h \
+	null.h \
+	old_api.h \
+	read_only.h \
+	row_merge.h \
+	scalar.h \
+	scalar_group.h \
+	serialize.h \
+	snmp_get_statistic.h \
+	stash_cache.h \
+	stash_to_next.h \
+	table_array.h \
+	table_container.h \
+	table.h \
+	table_data.h \
+	table_dataset.h \
+	table_tdata.h \
+	table_iterator.h \
+	watcher.h
+
+HEADERSONLY=mfd.h set_helper.h
+
+INCLUDESUBDIRHEADERS=$(HEADERS) $(HEADERSONLY)
 
 INSTALLBUILTSUBDIRHEADERS=../include/net-snmp/agent/mib_module_config.h \
 			  ../include/net-snmp/agent/agent_module_config.h \
@@ -45,7 +76,8 @@
 
 INCLUDEMIBGROUPDIR=agent/mibgroup
 INCLUDEMIBGROUPDIRHEADERS=struct.h util_funcs.h util_funcs/header_generic.h \
-	util_funcs/header_simple_table.h util_funcs/MIB_STATS_CACHE_TIMEOUT.h
+	util_funcs/header_simple_table.h util_funcs/MIB_STATS_CACHE_TIMEOUT.h \
+	util_funcs/Exit.h util_funcs/restart.h
 
 OTHERINSTALL=installmibgroupheaders @EMBEDPERLINSTALL@
 OTHERUNINSTALL=@EMBEDPERLUNINSTALL@
@@ -79,7 +111,6 @@
 # how to build it info
 #
 USELIBS		= ../snmplib/libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION)
-HELPERLIB	= helpers/libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION)
 AGENTLIB	= libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION)
 MIBLIB		= libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION)
 
@@ -88,7 +119,7 @@
 PERLLDOPTS_FOR_APPS = @PERLLDOPTS_FOR_APPS@
 PERLLDOPTS_FOR_LIBS = @PERLLDOPTS_FOR_LIBS@
 LIBS		= $(USELIBS) @AGENTLIBS@ $(PERLLDOPTS_FOR_APPS)
-OUR_AGENT_LIBS	= $(AGENTLIB) $(HELPERLIB) $(MIBLIB) $(LIBS) @DLLIBS@
+OUR_AGENT_LIBS	= $(AGENTLIB) $(MIBLIB) $(LIBS) @DLLIBS@
 CPPFLAGS	= $(TOP_INCLUDES) -I. $(AGENT_INCLUDES) $(MIBGROUP_INCLUDES) \
 		  $(SNMPLIB_INCLUDES) @CPPFLAGS@ 
 
@@ -106,12 +137,85 @@
 MIBOBJS		= $(mibgroup_list_o) mib_modules.o auto_nlist.o
 
 # libnetsnmpagent objects
-LIBAGENTOBJS=snmp_agent.o snmp_vars.o agent_read_config.o \
-	agent_registry.o agent_index.o agent_sysORTable.o agent_trap.o \
-	kernel.o agent_handler.o $(agentgroup_list_o) @OTHERAGENTLIBOBJS@
-LLIBAGENTOBJS=snmp_agent.lo snmp_vars.lo agent_read_config.lo \
-	agent_registry.lo agent_index.lo agent_sysORTable.lo agent_trap.lo \
-	kernel.lo agent_handler.lo $(agentgroup_list_lo) @OTHERAGENTLIBLOBJS@
+LIBAGENTOBJS= \
+	agent_handler.o \
+	agent_index.o \
+	agent_read_config.o \
+	agent_registry.o \
+	agent_sysORTable.o \
+	agent_trap.o \
+	kernel.o \
+	snmp_agent.o \
+	snmp_vars.o \
+	$(agentgroup_list_o) \
+	@OTHERAGENTLIBOBJS@ \
+	helpers/all_helpers.o \
+	helpers/baby_steps.o \
+	helpers/bulk_to_next.o \
+	helpers/cache_handler.o \
+	helpers/debug_handler.o \
+	helpers/instance.o \
+	helpers/mode_end_call.o \
+	helpers/multiplexer.o \
+	helpers/null.o \
+	helpers/old_api.o \
+	helpers/read_only.o \
+	helpers/row_merge.o \
+	helpers/scalar.o \
+	helpers/scalar_group.o \
+	helpers/serialize.o \
+	helpers/snmp_get_statistic.o \
+	helpers/stash_cache.o \
+	helpers/stash_to_next.o \
+	helpers/table.o \
+	helpers/table_array.o \
+	helpers/table_container.o \
+	helpers/table_data.o \
+	helpers/table_dataset.o \
+	helpers/table_iterator.o \
+	helpers/table_row.o \
+	helpers/table_tdata.o \
+	helpers/watcher.o
+
+LLIBAGENTOBJS= \
+	agent_handler.lo \
+	agent_index.lo \
+	agent_read_config.lo \
+	agent_registry.lo \
+	agent_sysORTable.lo \
+	agent_trap.lo \
+	kernel.lo \
+	snmp_agent.lo \
+	snmp_vars.lo \
+	$(agentgroup_list_lo) \
+	@OTHERAGENTLIBLOBJS@ \
+	helpers/all_helpers.lo \
+	helpers/baby_steps.lo \
+	helpers/bulk_to_next.lo \
+	helpers/cache_handler.lo \
+	helpers/debug_handler.lo \
+	helpers/instance.lo \
+	helpers/mode_end_call.lo \
+	helpers/multiplexer.lo \
+	helpers/null.lo \
+	helpers/old_api.lo \
+	helpers/read_only.lo \
+	helpers/row_merge.lo \
+	helpers/scalar.lo \
+	helpers/scalar_group.lo \
+	helpers/serialize.lo \
+	helpers/snmp_get_statistic.lo \
+	helpers/stash_cache.lo \
+	helpers/stash_to_next.lo \
+	helpers/table.lo \
+	helpers/table_array.lo \
+	helpers/table_container.lo \
+	helpers/table_data.lo \
+	helpers/table_dataset.lo \
+	helpers/table_iterator.lo \
+	helpers/table_row.lo \
+	helpers/table_tdata.lo \
+	helpers/watcher.lo
 
 # The agent objects.
 AGENTOBJS=snmpd.o @other_agentobjs@
@@ -144,13 +248,12 @@
 snmpd$(EXEEXT):	${LAGENTOBJS} $(USELIBS) $(AGENTLIB) $(HELPERLIB) $(MIBLIB) $(LIBTARG) 
 	$(LINK) $(CFLAGS) -o $@ ${LAGENTOBJS} ${LDFLAGS} ${OUR_AGENT_LIBS}
 
-
 libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION):    ${LLIBAGENTOBJS} $(USELIBS)
-	$(LIB_LD_CMD) $(AGENTLIB) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} $(LDFLAGS) $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS)
+	$(LIB_LD_CMD) $(AGENTLIB) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} @LD_NO_UNDEFINED@ $(LDFLAGS) $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS) @AGENTLIBS@
 	$(RANLIB) $(AGENTLIB)
 
-libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION): ${LMIBOBJS} $(HELPERLIB) $(AGENTLIB) $(USELIBS)
-	$(LIB_LD_CMD) $(MIBLIB) ${LMIBOBJS} $(HELPERLIB) $(AGENTLIB) $(USELIBS) $(LDFLAGS) ${LMIBLIBS} $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS)
+libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION): ${LMIBOBJS} $(AGENTLIB) $(USELIBS)
+	$(LIB_LD_CMD) $(MIBLIB) ${LMIBOBJS} $(AGENTLIB) $(USELIBS) @LD_NO_UNDEFINED@ $(LDFLAGS) ${LMIBLIBS} $(PERLLDOPTS_FOR_LIBS) $(LIB_LD_LIBS) @AGENTLIBS@
 	$(RANLIB) $(MIBLIB)
 
 agentlib: $(AGENTLIB)
@@ -189,10 +292,6 @@
 # dependency for snmplib object. it's here because the headers listed
 # are relative to the agent directory.
 
-$(HELPERLIB): subdirs
-# the above is needed when building with '-j' argument - everything what needs 
-# helper lib must wait until 'subdirs' target is finished
-
 subdirs: agentlib
 # wait for agentlib before building 'subdirs' target
 
diff --git a/agent/agent_handler.c b/agent/agent_handler.c
index 2a2f2d9..ca6ae4c 100644
--- a/agent/agent_handler.c
+++ b/agent/agent_handler.c
@@ -84,9 +84,11 @@
  * @{
  */
 
-/** creates a netsnmp_mib_handler structure given a name and a access method.
+/** Creates a MIB handler structure.
+ *  The new structure is allocated and filled using the given name
+ *  and access method.
  *  The returned handler should then be @link netsnmp_register_handler()
- *  registered.@endlink
+ *  registered @endlink.
  *
  *  @param name is the handler name and is copied then assigned to
  *              netsnmp_mib_handler->handler_name
@@ -117,8 +119,9 @@
     return ret;
 }
 
-/** creates a handler registration structure given a name, a
- *  access_method function, a registration location oid and the modes
+/** Creates a MIB handler structure.
+ *  The new structure is allocated and filled using the given name,
+ *  access function, registration location OID and list of modes that
  *  the handler supports. If modes == 0, then modes will automatically
  *  be set to the default value of only HANDLER_CAN_DEFAULT, which is
  *  by default read-only GET and GETNEXT requests. A hander which supports
@@ -133,7 +136,7 @@
  *
  *  @param reg_oid is the registration location oid.
  *
- *  @param reg_oid_len is the length of reg_oid, can use the macro,
+ *  @param reg_oid_len is the length of reg_oid; can use the macro,
  *         OID_LENGTH
  *
  *  @param modes is used to configure read/write access.  If modes == 0, 
@@ -184,6 +187,30 @@
     return the_reg;
 }
 
+/** Creates a handler registration structure with a new MIB handler.
+ *  This function first @link netsnmp_create_handler() creates @endlink
+ *  a MIB handler, then @link netsnmp_handler_registration_create()
+ *  makes registation structure @endlink for it.
+ *
+ *  @param name is the handler name for netsnmp_create_handler()
+ *
+ *  @param handler_access_method is a function pointer used as the access
+ *     method for netsnmp_create_handler()
+ *
+ *  @param reg_oid is the registration location oid.
+ *
+ *  @param reg_oid_len is the length of reg_oid; can use the macro,
+ *         OID_LENGTH
+ *
+ *  @param modes is used to configure read/write access, as in
+ *         netsnmp_handler_registration_create()
+ *
+ *  @return Returns a pointer to a netsnmp_handler_registration struct.
+ *          If the structures creation failed, NULL is returned.
+ *
+ *  @see netsnmp_create_handler()
+ *  @see netsnmp_handler_registration_create()
+ */
 netsnmp_handler_registration *
 netsnmp_create_handler_registration(const char *name,
                                     Netsnmp_Node_Handler *
@@ -202,7 +229,21 @@
     return rv;
 }
 
-/** register a handler, as defined by the netsnmp_handler_registration pointer. */
+/** Registers a MIB handler inside the registration structure.
+ *  Checks given registation handler for sanity, then
+ *  @link netsnmp_register_mib() performs registration @endlink
+ *  in the MIB tree, as defined by the netsnmp_handler_registration
+ *  pointer. On success, SNMP_CALLBACK_APPLICATION is called.
+ *  The registration struct may be created by call of
+ *  netsnmp_create_handler_registration().
+ *
+ *  @param reginfo Pointer to a netsnmp_handler_registration struct.
+ *
+ *  @return Returns SNMPERR_SUCCESS or SNMP_ERR_* error code.
+ *
+ *  @see netsnmp_create_handler_registration()
+ *  @see netsnmp_register_mib()
+ */
 int
 netsnmp_register_handler(netsnmp_handler_registration *reginfo)
 {
@@ -267,7 +308,18 @@
                                 reginfo, 1);
 }
 
-/** unregister a handler, as defined by the netsnmp_handler_registration pointer. */
+/** Unregisters a MIB handler described inside the registration structure.
+ *  Removes a registration, performed earlier by
+ *  netsnmp_register_handler(), from the MIB tree.
+ *  Uses unregister_mib_context() to do the task.
+ *
+ *  @param reginfo Pointer to a netsnmp_handler_registration struct.
+ *
+ *  @return Returns SNMPERR_SUCCESS or SNMP_ERR_* error code.
+ *
+ *  @see netsnmp_register_handler()
+ *  @see unregister_mib_context()
+ */
 int
 netsnmp_unregister_handler(netsnmp_handler_registration *reginfo)
 {
@@ -277,7 +329,21 @@
                                   reginfo->contextName);
 }
 
-/** register a handler, as defined by the netsnmp_handler_registration pointer. */
+/** Registers a MIB handler inside the registration structure.
+ *  Checks given registation handler for sanity, then
+ *  @link netsnmp_register_mib() performs registration @endlink
+ *  in the MIB tree, as defined by the netsnmp_handler_registration
+ *  pointer. Never calls SNMP_CALLBACK_APPLICATION.
+ *  The registration struct may be created by call of
+ *  netsnmp_create_handler_registration().
+ *
+ *  @param reginfo Pointer to a netsnmp_handler_registration struct.
+ *
+ *  @return Returns SNMPERR_SUCCESS or SNMP_ERR_* error code.
+ *
+ *  @see netsnmp_create_handler_registration()
+ *  @see netsnmp_register_mib()
+ */
 int
 netsnmp_register_handler_nocallback(netsnmp_handler_registration *reginfo)
 {
@@ -325,11 +391,16 @@
                                 reginfo, 0);
 }
 
-/** inject a new handler into the calling chain of the handlers
-   defined 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.*/
+/** Injects handler into the calling chain of handlers.
+ *  The given MIB handler is inserted after the handler named before_what.
+ *  If before_what is NULL, the handler is put at the top of the list,
+ *  and hence will be the handler to be called first.
+ *
+ *  @return Returns SNMPERR_SUCCESS or SNMP_ERR_* error code.
+ *
+ *  @see netsnmp_create_handler_registration()
+ *  @see netsnmp_inject_handler()
+ */
 int
 netsnmp_inject_handler_before(netsnmp_handler_registration *reginfo,
                               netsnmp_mib_handler *handler,
@@ -383,10 +454,15 @@
     return SNMPERR_SUCCESS;
 }
 
-/** inject a new handler into the calling chain of the handlers
-   defined 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.*/
+/** Injects handler into the calling chain of handlers.
+ *  The given MIB handler is put at the top of the list,
+ *  and hence will be the handler to be called first.
+ *
+ *  @return Returns SNMPERR_SUCCESS or SNMP_ERR_* error code.
+ *
+ *  @see netsnmp_create_handler_registration()
+ *  @see netsnmp_inject_handler_before()
+ */
 int
 netsnmp_inject_handler(netsnmp_handler_registration *reginfo,
                        netsnmp_mib_handler *handler)
@@ -394,7 +470,13 @@
     return netsnmp_inject_handler_before(reginfo, handler, NULL);
 }
 
-/** calls a handler with with appropriate NULL checking of arguments, etc. */
+/** Calls a MIB handlers chain, starting with specific handler.
+ *  The given arguments and MIB handler are checked
+ *  for sanity, then the handlers are called, one by one,
+ *  until next handler is NULL.
+ *
+ *  @return Returns SNMPERR_SUCCESS or SNMP_ERR_* error code.
+ */
 NETSNMP_INLINE int
 netsnmp_call_handler(netsnmp_mib_handler *next_handler,
                      netsnmp_handler_registration *reginfo,
@@ -415,53 +497,55 @@
     }
 
     do {
-    nh = next_handler->access_method;
-    if (!nh) {
-        if (next_handler->next) {
-            snmp_log(LOG_ERR, "no access method specified in handler %s.",
-                     next_handler->handler_name);
-            return SNMP_ERR_GENERR;
+        nh = next_handler->access_method;
+        if (!nh) {
+            if (next_handler->next) {
+                snmp_log(LOG_ERR, "no access method specified in handler %s.",
+                         next_handler->handler_name);
+                return SNMP_ERR_GENERR;
+            }
+            /*
+             * The final handler registration in the chain may well not need
+             * to include a handler routine, if the processing of this object
+             * is handled completely by the agent toolkit helpers.
+             */
+            return SNMP_ERR_NOERROR;
         }
+
+        DEBUGMSGTL(("handler:calling", "calling handler %s for mode %s\n",
+                    next_handler->handler_name,
+                    se_find_label_in_slist("agent_mode", reqinfo->mode)));
+
         /*
-         * The final handler registration in the chain may well not need
-         * to include a handler routine, if the processing of this object
-         * is handled completely by the agent toolkit helpers.
+         * XXX: define acceptable return statuses
          */
-        return SNMP_ERR_NOERROR;
-    }
+        ret = (*nh) (next_handler, reginfo, reqinfo, requests);
 
-    DEBUGMSGTL(("handler:calling", "calling handler %s for mode %s\n",
-                next_handler->handler_name,
-                se_find_label_in_slist("agent_mode", reqinfo->mode)));
+        DEBUGMSGTL(("handler:returned", "handler %s returned %d\n",
+                    next_handler->handler_name, ret));
 
-    /*
-     * XXX: define acceptable return statuses 
-     */
-    ret = (*nh) (next_handler, reginfo, reqinfo, requests);
+        if (! (next_handler->flags & MIB_HANDLER_AUTO_NEXT))
+            break;
 
-    DEBUGMSGTL(("handler:returned", "handler %s returned %d\n",
-                next_handler->handler_name, ret));
+        /*
+         * did handler signal that it didn't want auto next this time around?
+         */
+        if(next_handler->flags & MIB_HANDLER_AUTO_NEXT_OVERRIDE_ONCE) {
+            next_handler->flags &= ~MIB_HANDLER_AUTO_NEXT_OVERRIDE_ONCE;
+            break;
+        }
 
-    if (! (next_handler->flags & MIB_HANDLER_AUTO_NEXT))
-        break;
-
-    /*
-     * did handler signal that it didn't want auto next this time around?
-     */
-    if(next_handler->flags & MIB_HANDLER_AUTO_NEXT_OVERRIDE_ONCE) {
-        next_handler->flags &= ~MIB_HANDLER_AUTO_NEXT_OVERRIDE_ONCE;
-        break;
-    }
-
-    next_handler = next_handler->next;
+        next_handler = next_handler->next;
 
     } while(next_handler);
 
     return ret;
 }
 
-/** @internal
- *  calls all the handlers for a given mode.
+/** @private
+ *  Calls all the MIB Handlers in registration struct for a given mode.
+ *
+ *  @return Returns SNMPERR_SUCCESS or SNMP_ERR_* error code.
  */
 int
 netsnmp_call_handlers(netsnmp_handler_registration *reginfo,
@@ -523,8 +607,13 @@
     return status;
 }
 
-/** calls the next handler in the chain after the current one with
-   with appropriate NULL checking, etc. */
+/** @private
+ *  Calls the next MIB handler in the chain, after the current one.
+ *  The given arguments and MIB handler are checked
+ *  for sanity, then the next handler is called.
+ *
+ *  @return Returns SNMPERR_SUCCESS or SNMP_ERR_* error code.
+ */
 NETSNMP_INLINE int
 netsnmp_call_next_handler(netsnmp_mib_handler *current,
                           netsnmp_handler_registration *reginfo,
@@ -545,8 +634,13 @@
     return netsnmp_call_handler(current->next, reginfo, reqinfo, requests);
 }
 
-/** calls the next handler in the chain after the current one with
-   with appropriate NULL checking, etc. */
+/** @private
+ *  Calls the next MIB handler in the chain, after the current one.
+ *  The given arguments and MIB handler are not validated before
+ *  the call, only request is checked.
+ *
+ *  @return Returns SNMPERR_SUCCESS or SNMP_ERR_* error code.
+ */
 NETSNMP_INLINE int
 netsnmp_call_next_handler_one_request(netsnmp_mib_handler *current,
                                       netsnmp_handler_registration *reginfo,
@@ -569,7 +663,13 @@
     return ret;
 }
 
-/** frees the resources associated with a given handler */
+/** Deallocates resources associated with a given handler.
+ *  The handler is removed from chain and then freed.
+ *  After calling this function, the handler pointer is invalid
+ *  and should be set to NULL.
+ *
+ *  @param handler is the MIB Handler to be freed
+ */
 void
 netsnmp_handler_free(netsnmp_mib_handler *handler)
 {
@@ -589,8 +689,15 @@
     }
 }
 
-/** duplicates a handler and all subsequent handlers
- * see also _clone_handler
+/** Duplicates a MIB handler and all subsequent handlers.
+ *  Creates a copy of all data in given handlers chain.
+ *
+ *  @param handler is the MIB Handler to be duplicated
+ *
+ *  @return Returns a pointer to the complete copy,
+ *         or NULL if any problem occured.
+ *
+ * @see _clone_handler()
  */
 netsnmp_mib_handler *
 netsnmp_handler_dup(netsnmp_mib_handler *handler)
@@ -621,7 +728,13 @@
     return NULL;
 }
 
-/** free the resources associated with a handler registration object */
+/** Free resources associated with a handler registration object.
+ *  The registration object and all MIB Handlers in the chain are
+ *  freed. When the function ends, given pointer is no longer valid
+ *  and should be set to NULL.
+ *
+ *  @param reginfo is the handler registration object to be freed
+ */
 void
 netsnmp_handler_registration_free(netsnmp_handler_registration *reginfo)
 {
@@ -635,7 +748,16 @@
     }
 }
 
-/** duplicates the handler registration object */
+/** Duplicates handler registration object and all subsequent handlers.
+ *  Creates a copy of the handler registration object and all its data.
+ *
+ *  @param reginfo is the handler registration object to be duplicated
+ *
+ *  @return Returns a pointer to the complete copy,
+ *         or NULL if any problem occured.
+ *
+ * @see netsnmp_handler_dup()
+ */
 netsnmp_handler_registration *
 netsnmp_handler_registration_dup(netsnmp_handler_registration *reginfo)
 {
@@ -694,9 +816,16 @@
     return NULL;
 }
 
-/** creates a cache of information which can be saved for future
-   reference.  Use netsnmp_handler_check_cache() later to make sure it's still
-   valid before referencing it in the future. */
+/** Creates a cache of information which can be saved for future reference.
+ *  The cache is filled with pointers from parameters. Note that
+ *  the input structures are not duplicated, but put directly into
+ *  the new cache struct.
+ *  Use netsnmp_handler_check_cache() later to make sure it's still
+ *  valid before referencing it in the future.
+ *
+ * @see netsnmp_handler_check_cache()
+ * @see netsnmp_free_delegated_cache()
+ */
 NETSNMP_INLINE netsnmp_delegated_cache *
 netsnmp_create_delegated_cache(netsnmp_mib_handler *handler,
                                netsnmp_handler_registration *reginfo,
@@ -718,9 +847,17 @@
     return ret;
 }
 
-/** 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. */
+/** Check if a given delegated cache is still valid.
+ *  The cache is valid if it's a part of transaction
+ *  (ie, the agent still considers it to be an outstanding request).
+ *
+ *  @param dcache is the delegated cache to be checked.
+ *
+ *  @return Returns the cache pointer if it is still valid, NULL otherwise.
+ *
+ * @see netsnmp_create_delegated_cache()
+ * @see netsnmp_free_delegated_cache()
+ */
 NETSNMP_INLINE netsnmp_delegated_cache *
 netsnmp_handler_check_cache(netsnmp_delegated_cache *dcache)
 {
@@ -734,7 +871,16 @@
     return NULL;
 }
 
-/** frees a cache once you're finished using it */
+/** Free a cache once it's no longer used.
+ *  Deletes the data allocated by netsnmp_create_delegated_cache().
+ *  Structures which were not allocated by netsnmp_create_delegated_cache()
+ *  are not freed (pointers are dropped).
+ *
+ *  @param dcache is the delegated cache to be freed.
+ *
+ * @see netsnmp_create_delegated_cache()
+ * @see netsnmp_handler_check_cache()
+ */
 NETSNMP_INLINE void
 netsnmp_free_delegated_cache(netsnmp_delegated_cache *dcache)
 {
@@ -748,7 +894,13 @@
 }
 
 
-/** marks a list of requests as delegated (or not if isdelegaded = 0) */
+/** Sets a list of requests as delegated or not delegated.
+ *  Sweeps through given chain of requests and sets 'delegated'
+ *  flag accordingly to the isdelegated parameter.
+ *
+ *  @param requests Request list.
+ *  @param isdelegated New value of the 'delegated' flag.
+ */
 void
 netsnmp_handler_mark_requests_as_delegated(netsnmp_request_info *requests,
                                            int isdelegated)
@@ -759,15 +911,16 @@
     }
 }
 
-/** add data to a request that can be extracted later by submodules
+/** Adds data from node list to the request information structure.
+ *  Data in the request can be later extracted and used by submodules.
  *
- * @param request the netsnmp request info structure
+ * @param request Destination request information structure.
  *
- * @param node this is the data to be added to the linked list
- *             request->parent_data
+ * @param node The data to be added to the linked list
+ *             request->parent_data.
  *
- * @return void
- *
+ * @see netsnmp_request_remove_list_data()
+ * @see netsnmp_request_get_list_data()
  */
 NETSNMP_INLINE void
 netsnmp_request_add_list_data(netsnmp_request_info *request,
@@ -781,7 +934,7 @@
     }
 }
 
-/** remove data from a request
+/** Removes all data from a request.
  *
  * @param request the netsnmp request info structure
  *
@@ -789,6 +942,8 @@
  *
  * @return 0 on successful find-and-delete, 1 otherwise.
  *
+ * @see netsnmp_request_add_list_data()
+ * @see netsnmp_request_get_list_data()
  */
 NETSNMP_INLINE int
 netsnmp_request_remove_list_data(netsnmp_request_info *request,
@@ -800,16 +955,20 @@
     return netsnmp_remove_list_node(&request->parent_data, name);
 }
 
-/** extract data from a request that was added previously by a parent module
+/** Extracts data from a request.
+ *  Retrieves data that was previously added to the request,
+ *  usually by a parent module.
  *
- * @param request the netsnmp request info function
+ * @param request Source request information structure.
  *
- * @param name used to compare against the request->parent_data->name value,
- *             if a match is found request->parent_data->data is returned
+ * @param name Used to compare against the request->parent_data->name value;
+ *             if a match is found, request->parent_data->data is returned.
  *
- * @return 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.
+ * @return Gives a void pointer(request->parent_data->data); NULL is
+ *         returned if source data is NULL or the object is not found.
+ *
+ * @see netsnmp_request_add_list_data()
+ * @see netsnmp_request_remove_list_data()
  */
 void    *
 netsnmp_request_get_list_data(netsnmp_request_info *request,
@@ -820,7 +979,15 @@
     return NULL;
 }
 
-/** Free the extra data stored in a request */
+/** Free the extra data stored in a request.
+ *  Deletes the data in given request only. Other chain items
+ *  are unaffected.
+ *
+ * @param request Request information structure to be modified.
+ *
+ * @see netsnmp_request_add_list_data()
+ * @see netsnmp_free_list_data()
+ */
 NETSNMP_INLINE void
 netsnmp_free_request_data_set(netsnmp_request_info *request)
 {
@@ -828,7 +995,14 @@
         netsnmp_free_list_data(request->parent_data);
 }
 
-/** Free the extra data stored in a bunch of requests (all data in the chain) */
+/** Free the extra data stored in a bunch of requests.
+ *  Deletes all data in the chain inside request.
+ *
+ * @param request Request information structure to be modified.
+ *
+ * @see netsnmp_request_add_list_data()
+ * @see netsnmp_free_request_data_set()
+ */
 NETSNMP_INLINE void
 netsnmp_free_request_data_sets(netsnmp_request_info *request)
 {
@@ -838,7 +1012,17 @@
     }
 }
 
-/** Returns a handler from a chain based on the name */
+/** Returns a MIB handler from a chain based on the name.
+ *
+ * @param reginfo Handler registration struct which contains the chain.
+ *
+ * @param name Target MIB Handler name string. The name is case
+ *        sensitive.
+ *
+ * @return The MIB Handler is returned, or NULL if not found.
+ *
+ * @see netsnmp_request_add_list_data()
+ */
 netsnmp_mib_handler *
 netsnmp_find_handler_by_name(netsnmp_handler_registration *reginfo,
                              const char *name)
@@ -854,10 +1038,22 @@
     return NULL;
 }
 
-/** 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. */
+/** Returns a handler's void pointer from a chain based on the name.
+ *
+ * @warning The void pointer data may change as a handler evolves.
+ *        Handlers should really advertise some function for you
+ *        to use instead.
+ *
+ * @param reginfo Handler registration struct which contains the chain.
+ *
+ * @param name Target MIB Handler name string. The name is case
+ *        sensitive.
+ *
+ * @return The MIB Handler's void * pointer is returned,
+ *        or NULL if the handler is not found.
+ *
+ * @see netsnmp_find_handler_by_name()
+ */
 void           *
 netsnmp_find_handler_data_by_name(netsnmp_handler_registration *reginfo,
                                   const char *name)
@@ -868,8 +1064,12 @@
     return NULL;
 }
 
-/** clones a mib handler (name, flags and access methods only; not myvoid)
- * see also netsnmp_handler_dup
+/** @private
+ *  Clones a MIB Handler with its basic properties.
+ *  Creates a copy of the given MIB Handler. Copies name, flags and
+ *  access methods only; not myvoid.
+ *
+ *  @see netsnmp_handler_dup()
  */
 static netsnmp_mib_handler *
 _clone_handler(netsnmp_mib_handler *it)
@@ -894,7 +1094,15 @@
     netsnmp_handler_free((netsnmp_mib_handler *)handler);
 }
 
-/** registers a given handler by name so that it can be found easily later.
+/** Registers a given handler by name, so that it can be found easily later.
+ *  Pointer to the handler is put into a list where it can be easily located
+ *  at any time.
+ *
+ * @param name Name string to be associated with the handler.
+ *
+ * @param handler Pointer the MIB Handler.
+ *
+ * @see netsnmp_clear_handler_list()
  */
 void
 netsnmp_register_handler_by_name(const char *name,
@@ -906,7 +1114,13 @@
     DEBUGMSGTL(("handler_registry", "registering helper %s\n", name));
 }
 
-/** clears the entire handler-registration list
+/** Clears the entire MIB Handlers registration list.
+ *  MIB Handlers registration list is used to access any MIB Handler by
+ *  its name. The function frees the list memory and sets pointer to NULL.
+ *  Instead of calling this function directly, use shutdown_agent().
+ *
+ *  @see shutdown_agent()
+ *  @see netsnmp_register_handler_by_name()
  */
 void
 netsnmp_clear_handler_list(void)
@@ -916,8 +1130,8 @@
     handler_reg = NULL;
 }
 
-/** @internal
- *  injects a handler into a subtree, peers and children when a given
+/** @private
+ *  Injects a handler into a subtree, peers and children when a given
  *  subtrees name matches a passed in name.
  */
 void
@@ -964,8 +1178,8 @@
 }
 
 static int      doneit = 0;
-/** @internal
- *  parses the "injectHandler" token line.
+/** @private
+ *  Parses the "injectHandler" token line.
  */
 void
 parse_injectHandler_conf(const char *token, char *cptr)
@@ -981,7 +1195,7 @@
         return;
 
     cptr = copy_nword(cptr, handler_to_insert, sizeof(handler_to_insert));
-    handler = netsnmp_get_list_data(handler_reg, handler_to_insert);
+    handler = (netsnmp_mib_handler*)netsnmp_get_list_data(handler_reg, handler_to_insert);
     if (!handler) {
 	netsnmp_config_error("no \"%s\" handler registered.",
 			     handler_to_insert);
@@ -1002,8 +1216,8 @@
     }
 }
 
-/** @internal
- *  callback to ensure injectHandler parser doesn't do things twice
+/** @private
+ *  Callback to ensure injectHandler parser doesn't do things twice.
  *  @todo replace this with a method to check the handler chain instead.
  */
 static int
@@ -1014,8 +1228,11 @@
     return 0;
 }
 
-/** @internal
+/** @private
  *  Registers the injectHandle parser token.
+ *  Used in init_agent_read_config().
+ *
+ *  @see init_agent_read_config()
  */
 void
 netsnmp_init_handler_conf(void)
diff --git a/agent/agent_index.c b/agent/agent_index.c
index 5e6acda..a6c5b44 100644
--- a/agent/agent_index.c
+++ b/agent/agent_index.c
@@ -18,15 +18,8 @@
 #include <sys/types.h>
 #include <stdio.h>
 #include <fcntl.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -93,7 +86,11 @@
     if (res == NULL) {
         return NULL;
     } else {
-        char           *rv = strdup(res->val.string);
+        char *rv = (char *)malloc(res->val_len + 1);
+        if (rv) {
+            memcpy(rv, res->val.string, res->val_len);
+            rv[res->val_len] = 0;
+        }
         free(res);
         return rv;
     }
diff --git a/agent/agent_read_config.c b/agent/agent_read_config.c
index 07861ad..61d6667 100644
--- a/agent/agent_read_config.c
+++ b/agent/agent_read_config.c
@@ -22,11 +22,7 @@
 #include <errno.h>
 
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -61,8 +57,6 @@
 #include <sys/param.h>
 #endif
 #endif
-#elif HAVE_WINSOCK_H
-#include <winsock.h>
 #endif
 #if HAVE_SYS_STREAM_H
 #   ifdef sysv5UnixWare7
@@ -302,6 +296,17 @@
 }
 
 void
+snmpd_register_const_config_handler(const char *token,
+                                    void (*parser) (const char *, const char *),
+                                    void (*releaser) (void), const char *help)
+{
+    DEBUGMSGTL(("snmpd_register_app_config_handler",
+                "registering .conf token for \"%s\"\n", token));
+    register_app_config_handler(token, (void(*)(const char *, char *))parser,
+                                releaser, help);
+}
+
+void
 snmpd_unregister_config_handler(const char *token)
 {
     unregister_app_config_handler(token);
diff --git a/agent/agent_registry.c b/agent/agent_registry.c
index 6ee03f3..bb385bc 100644
--- a/agent/agent_registry.c
+++ b/agent/agent_registry.c
@@ -11,7 +11,9 @@
  * Use is subject to license terms specified in the COPYING file
  * distributed with the Net-SNMP package.
  */
-/** @defgroup agent_registry Maintain a registry of MIB subtrees, together with related information regarding mibmodule, sessions, etc
+/** @defgroup agent_registry Registry of MIB subtrees, modules, sessions, etc
+ *     Maintain a registry of MIB subtrees, together with related information
+ *     regarding MIB modules, sessions, etc
  *   @ingroup agent
  *
  * @{
@@ -30,15 +32,8 @@
 #include <sys/types.h>
 #include <stdio.h>
 #include <fcntl.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -52,6 +47,7 @@
 #endif
 
 #include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/library/snmp_assert.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/agent_callbacks.h>
 
@@ -69,9 +65,16 @@
 #include "agentx/client.h"
 #endif
 
-/* Lookup cache code */
+/** @defgroup agent_lookup_cache Lookup cache, storing the registered OIDs.
+ *     Maintain the cache used for locating sub-trees and OIDs.
+ *   @ingroup agent_registry
+ *
+ * @{
+ */
 
+/**  Lookup cache - default size.*/
 #define SUBTREE_DEFAULT_CACHE_SIZE 8
+/**  Lookup cache - max acceptable size.*/
 #define SUBTREE_MAX_CACHE_SIZE     32
 int lookup_cache_size = 0; /*enabled later after registrations are loaded */
 
@@ -90,16 +93,18 @@
 
 static lookup_cache_context *thecontextcache = NULL;
 
-/** set the lookup cache size for optimized agent registration performance.
- * @param newsize 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%
+/** Set the lookup cache size for optimized agent registration performance.
+ * Note that it is only used by master agent - sub-agent doesn't need the cache.
+ * The rough guide is that the cache size should be equal to the maximum
+ * number of simultaneous 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.
+ *
+ * @param newsize 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
  */
 void
 netsnmp_set_lookup_cache_size(int newsize) {
@@ -111,7 +116,9 @@
         lookup_cache_size = SUBTREE_MAX_CACHE_SIZE;
 }
 
-/** retrieves the current value of the lookup cache size
+/** Retrieves the current value of the lookup cache size
+ *  Should be called from master agent only - sub-agent doesn't need the cache.
+ *
  *  @return the current lookup cache size
  */
 int
@@ -119,6 +126,12 @@
     return lookup_cache_size;
 }
 
+/** Returns lookup cache entry for the context of given name.
+ *
+ *  @param context Name of the context. Name is case sensitive.
+ *
+ *  @return the lookup cache context
+ */
 NETSNMP_STATIC_INLINE lookup_cache_context *
 get_context_lookup_cache(const char *context) {
     lookup_cache_context *ptr;
@@ -142,6 +155,14 @@
     return ptr;
 }
 
+/** Adds an entry to the Lookup Cache under specified context name.
+ *
+ *  @param context  Name of the context. Name is case sensitive.
+ *
+ *  @param next     Next subtree item.
+ *
+ *  @param previous Previous subtree item.
+ */
 NETSNMP_STATIC_INLINE void
 lookup_cache_add(const char *context,
                  netsnmp_subtree *next, netsnmp_subtree *previous) {
@@ -160,6 +181,15 @@
         cptr->currentpos = 0;
 }
 
+/** @private
+ *  Replaces next and previous pointer in given Lookup Cache.
+ *
+ *  @param ptr      Lookup Cache pointer.
+ *
+ *  @param next     Next subtree item.
+ *
+ *  @param previous Previous subtree item.
+ */
 NETSNMP_STATIC_INLINE void
 lookup_cache_replace(lookup_cache *ptr,
                      netsnmp_subtree *next, netsnmp_subtree *previous) {
@@ -168,6 +198,21 @@
     ptr->previous = previous;
 }
 
+/** Finds an entry in the Lookup Cache.
+ *
+ *  @param context  Case sensitive name of the context.
+ *
+ *  @param name     The OID we're searching for.
+ *
+ *  @param name_len Number of sub-ids (single integers) in the OID.
+ *
+ *  @param retcmp   Value set to snmp_oid_compare() call result.
+ *                  The value, if set, is always nonnegative.
+ *
+ *  @return gives Lookup Cache entry, or NULL if not found.
+ *
+ *  @see snmp_oid_compare()
+ */
 NETSNMP_STATIC_INLINE lookup_cache *
 lookup_cache_find(const char *context, oid *name, size_t name_len,
                   int *retcmp) {
@@ -194,6 +239,9 @@
     return ret;
 }
 
+/** @private
+ *  Clears cache count and position in Lookup Cache.
+ */
 NETSNMP_STATIC_INLINE void
 invalidate_lookup_cache(const char *context) {
     lookup_cache_context *cptr;
@@ -203,11 +251,205 @@
     }
 }
 
+void
+clear_lookup_cache(void) {
+
+    lookup_cache_context *ptr = NULL, *next = NULL;
+
+    ptr = thecontextcache;
+    while (ptr) {
+	next = ptr->next;
+	SNMP_FREE(ptr->context);
+	SNMP_FREE(ptr);
+	ptr = next;
+    }
+    thecontextcache = NULL; /* !!! */
+}
+
+/**  @} */
 /* End of Lookup cache code */
 
-static void register_mib_detach_node(netsnmp_subtree *s);
+/** @defgroup agent_context_cache Context cache, storing the OIDs under their contexts.
+ *     Maintain the cache used for locating sub-trees registered under different contexts.
+ *   @ingroup agent_registry
+ *
+ * @{
+ */
 subtree_context_cache *context_subtrees = NULL;
 
+/** Returns the top element of context subtrees cache.
+ *  Use it if you wish to sweep through the cache elements.
+ *  Note that the return may be NULL (cache may be empty).
+ *
+ *  @return pointer to topmost context subtree cache element.
+ */
+subtree_context_cache *
+get_top_context_cache(void)
+{
+    return context_subtrees;
+}
+
+/** Finds the first subtree registered under given context.
+ *
+ *  @param context_name Text name of the context we're searching for.
+ *
+ *  @return pointer to the first subtree element, or NULL if not found.
+ */
+netsnmp_subtree *
+netsnmp_subtree_find_first(const char *context_name)
+{
+    subtree_context_cache *ptr;
+
+    if (!context_name) {
+        context_name = "";
+    }
+
+    DEBUGMSGTL(("subtree", "looking for subtree for context: \"%s\"\n", 
+		context_name));
+    for (ptr = context_subtrees; ptr != NULL; ptr = ptr->next) {
+        if (ptr->context_name != NULL && 
+	    strcmp(ptr->context_name, context_name) == 0) {
+            DEBUGMSGTL(("subtree", "found one for: \"%s\"\n", context_name));
+            return ptr->first_subtree;
+        }
+    }
+    DEBUGMSGTL(("subtree", "didn't find a subtree for context: \"%s\"\n", 
+		context_name));
+    return NULL;
+}
+
+/** Adds the subtree to Context Cache under given context name.
+ *
+ *  @param context_name Text name of the context we're adding.
+ *
+ *  @param new_tree The subtree to be added.
+ *
+ *  @return copy of the new_tree pointer, or NULL if cannot add.
+ */
+netsnmp_subtree *
+add_subtree(netsnmp_subtree *new_tree, const char *context_name)
+{
+    subtree_context_cache *ptr = SNMP_MALLOC_TYPEDEF(subtree_context_cache);
+    
+    if (!context_name) {
+        context_name = "";
+    }
+
+    if (!ptr) {
+        return NULL;
+    }
+    
+    DEBUGMSGTL(("subtree", "adding subtree for context: \"%s\"\n",	
+		context_name));
+
+    ptr->next = context_subtrees;
+    ptr->first_subtree = new_tree;
+    ptr->context_name = strdup(context_name);
+    context_subtrees = ptr;
+
+    return ptr->first_subtree;
+}
+
+void
+netsnmp_remove_subtree(netsnmp_subtree *tree)
+{
+    subtree_context_cache *ptr;
+
+    if (!tree->prev) {
+        for (ptr = context_subtrees; ptr; ptr = ptr->next)
+            if (ptr->first_subtree == tree)
+                break;
+        netsnmp_assert(ptr);
+        if (ptr)
+            ptr->first_subtree = tree->next;
+    } else
+        tree->prev->next = tree->next;
+
+    if (tree->next)
+        tree->next->prev = tree->prev;
+}
+
+/** Replaces first subtree registered under given context name.
+ *  Overwrites a subtree pointer in Context Cache for the context name.
+ *  The previous subtree pointer is lost. If there's no subtree
+ *  under the supplied name, then a new cache item is created.
+ *
+ *  @param new_tree     The new subtree to be set.
+ *
+ *  @param context_name Text name of the context we're replacing.
+ *                      It is case sensitive.
+ *
+ * @return copy of the new_tree pointer, or NULL on error.
+ */
+netsnmp_subtree *
+netsnmp_subtree_replace_first(netsnmp_subtree *new_tree, 
+			      const char *context_name)
+{
+    subtree_context_cache *ptr;
+    if (!context_name) {
+        context_name = "";
+    }
+    for (ptr = context_subtrees; ptr != NULL; ptr = ptr->next) {
+        if (ptr->context_name != NULL &&
+	    strcmp(ptr->context_name, context_name) == 0) {
+            ptr->first_subtree = new_tree;
+            return ptr->first_subtree;
+        }
+    }
+    return add_subtree(new_tree, context_name);
+}
+
+
+void clear_subtree (netsnmp_subtree *sub);
+
+/** Completely clears both the Context cache and the Lookup cache.
+ */
+void
+clear_context(void) {
+
+    subtree_context_cache *ptr = NULL, *next = NULL;
+    netsnmp_subtree *t, *u;
+
+    DEBUGMSGTL(("agent_registry", "clear context\n"));
+
+    ptr = get_top_context_cache(); 
+    while (ptr) {
+	next = ptr->next;
+
+	for (t = ptr->first_subtree; t; t = u) {
+            u = t->next;
+	    clear_subtree(t);
+	}
+
+        free(NETSNMP_REMOVE_CONST(char*, ptr->context_name));
+        SNMP_FREE(ptr);
+
+	ptr = next;
+    }
+    context_subtrees = NULL; /* !!! */
+    clear_lookup_cache();
+}
+
+/**  @} */
+/* End of Context cache code */
+
+/** @defgroup agent_mib_subtree Maintaining MIB subtrees.
+ *     Maintaining MIB nodes and subtrees.
+ *   @ingroup agent_registry
+ *
+ * @{
+ */
+
+static void register_mib_detach_node(netsnmp_subtree *s);
+
+/** Frees single subtree item.
+ *  Deallocated memory for given netsnmp_subtree item, including
+ *  Handle Registration structure stored inside this item.
+ *  After calling this function, the pointer is invalid
+ *  and should be set to NULL.
+ *
+ *  @param a The subtree item to dispose.
+ */
 void
 netsnmp_subtree_free(netsnmp_subtree *a)
 {
@@ -229,6 +471,14 @@
   }
 }
 
+/** Creates deep copy of a subtree item.
+ *  Duplicates all properties stored in the structure, including
+ *  Handle Registration structure stored inside the item.
+ *
+ *  @param a The subtree item to copy.
+ *
+ *  @return deep copy of the subtree item, or NULL on error.
+ */
 netsnmp_subtree *
 netsnmp_subtree_deepcopy(netsnmp_subtree *a)
 {
@@ -269,78 +519,10 @@
   return b;
 }
 
-subtree_context_cache *
-get_top_context_cache(void)
-{
-    return context_subtrees;
-}
-
-netsnmp_subtree *
-netsnmp_subtree_find_first(const char *context_name)
-{
-    subtree_context_cache *ptr;
-
-    if (!context_name) {
-        context_name = "";
-    }
-
-    DEBUGMSGTL(("subtree", "looking for subtree for context: \"%s\"\n", 
-		context_name));
-    for (ptr = context_subtrees; ptr != NULL; ptr = ptr->next) {
-        if (ptr->context_name != NULL && 
-	    strcmp(ptr->context_name, context_name) == 0) {
-            DEBUGMSGTL(("subtree", "found one for: \"%s\"\n", context_name));
-            return ptr->first_subtree;
-        }
-    }
-    DEBUGMSGTL(("subtree", "didn't find a subtree for context: \"%s\"\n", 
-		context_name));
-    return NULL;
-}
-
-netsnmp_subtree *
-add_subtree(netsnmp_subtree *new_tree, const char *context_name)
-{
-    subtree_context_cache *ptr = SNMP_MALLOC_TYPEDEF(subtree_context_cache);
-    
-    if (!context_name) {
-        context_name = "";
-    }
-
-    if (!ptr) {
-        return NULL;
-    }
-    
-    DEBUGMSGTL(("subtree", "adding subtree for context: \"%s\"\n",	
-		context_name));
-
-    ptr->next = context_subtrees;
-    ptr->first_subtree = new_tree;
-    ptr->context_name = strdup(context_name);
-    context_subtrees = ptr;
-
-    return ptr->first_subtree;
-}
-
-netsnmp_subtree *
-netsnmp_subtree_replace_first(netsnmp_subtree *new_tree, 
-			      const char *context_name)
-{
-    subtree_context_cache *ptr;
-    if (!context_name) {
-        context_name = "";
-    }
-    for (ptr = context_subtrees; ptr != NULL; ptr = ptr->next) {
-        if (ptr->context_name != NULL &&
-	    strcmp(ptr->context_name, context_name) == 0) {
-            ptr->first_subtree = new_tree;
-            return ptr->first_subtree;
-        }
-    }
-    return add_subtree(new_tree, context_name);
-}
-
-NETSNMP_INLINE void
+/** @private
+ *  Replaces next subtree pointer in given subtree.
+ */
+NETSNMP_STATIC_INLINE void
 netsnmp_subtree_change_next(netsnmp_subtree *ptr, netsnmp_subtree *thenext)
 {
     ptr->next = thenext;
@@ -352,7 +534,10 @@
                                &thenext->oid_off);
 }
 
-NETSNMP_INLINE void
+/** @private
+ *  Replaces previous subtree pointer in given subtree.
+ */
+NETSNMP_STATIC_INLINE void
 netsnmp_subtree_change_prev(netsnmp_subtree *ptr, netsnmp_subtree *theprev)
 {
     ptr->prev = theprev;
@@ -364,12 +549,26 @@
                                &ptr->oid_off);
 }
 
+/** Compares OIDs of given subtrees.
+ *
+ *  @param ap,bp Pointers to the subtrees to be compared.
+ *
+ *  @return OIDs lexicographical comparison result.
+ *
+ *  @see snmp_oid_compare()
+ */
 int
 netsnmp_subtree_compare(const netsnmp_subtree *ap, const netsnmp_subtree *bp)
 {
     return snmp_oid_compare(ap->name_a, ap->namelen, bp->name_a, bp->namelen);
 }
 
+/** Joins the given subtree with the current tree.
+ *  Trees are joined and the one supplied as parameter is freed.
+ *
+ *  @param root The subtree to be merged with current subtree.
+ *              Do not use the pointer after joining - it may be invalid.
+ */
 void
 netsnmp_subtree_join(netsnmp_subtree *root)
 {
@@ -416,10 +615,18 @@
 }
 
 
-        /*
-         *  Split the subtree into two at the specified point,
-         *    returning the new (second) subtree
-         */
+/** Split the subtree into two at the specified point.
+ *  Subtrees of the given OID and separated and formed into the
+ *  returned subtree.
+ *
+ *  @param current The element at which splitting is started.
+ *
+ *  @param name The OID we'd like to split.
+ *
+ *  @param name_len Length of the OID.
+ *
+ *  @return head of the new (second) subtree.
+ */
 netsnmp_subtree *
 netsnmp_subtree_split(netsnmp_subtree *current, oid name[], int name_len)
 {
@@ -524,6 +731,14 @@
     return new_sub;
 }
 
+/** Loads the subtree under given context name.
+ *
+ *  @param new_sub The subtree to be loaded into current subtree.
+ *
+ *  @param context_name Text name of the context we're searching for.
+ *
+ *  @return gives MIB_REGISTERED_OK on success, error code otherwise.
+ */
 int
 netsnmp_subtree_load(netsnmp_subtree *new_sub, const char *context_name)
 {
@@ -707,6 +922,7 @@
 	    new2 = netsnmp_subtree_split(new_sub, tree1->end_a,tree1->end_len);
 	    res = netsnmp_subtree_load(new_sub, context_name);
 	    if (res != MIB_REGISTERED_OK) {
+                netsnmp_remove_subtree(new2);
 		netsnmp_subtree_free(new2);
 		return res;
 	    }
@@ -716,8 +932,172 @@
     return 0;
 }
 
-/*
- * Note: reginfo will be freed on failures
+/** Free the given subtree and all its children.
+ *
+ *  @param sub Subtree branch to be cleared and freed.
+ *             After the call, this pointer is invalid
+ *             and should be set to NULL.
+ */
+void
+clear_subtree (netsnmp_subtree *sub) {
+
+    netsnmp_subtree *c;
+    
+    if (sub == NULL)
+	return;
+
+    for(c = sub; c;) {
+        sub = c;
+        c = c->children;
+        netsnmp_subtree_free(sub);
+    }
+
+}
+
+netsnmp_subtree *
+netsnmp_subtree_find_prev(oid *name, size_t len, netsnmp_subtree *subtree,
+			  const char *context_name)
+{
+    lookup_cache *lookup_cache = NULL;
+    netsnmp_subtree *myptr = NULL, *previous = NULL;
+    int cmp = 1;
+    size_t ll_off = 0;
+
+    if (subtree) {
+        myptr = subtree;
+    } else {
+	/* look through everything */
+        if (lookup_cache_size) {
+            lookup_cache = lookup_cache_find(context_name, name, len, &cmp);
+            if (lookup_cache) {
+                myptr = lookup_cache->next;
+                previous = lookup_cache->previous;
+            }
+            if (!myptr)
+                myptr = netsnmp_subtree_find_first(context_name);
+        } else {
+            myptr = netsnmp_subtree_find_first(context_name);
+        }
+    }
+
+    /*
+     * this optimization causes a segfault on sf cf alpha-linux1.
+     * ifdef out until someone figures out why and fixes it. xxx-rks 20051117
+     */
+#ifndef __alpha
+#define WTEST_OPTIMIZATION 1
+#endif
+#ifdef WTEST_OPTIMIZATION
+    DEBUGMSGTL(("wtest","oid in: "));
+    DEBUGMSGOID(("wtest", name, len));
+    DEBUGMSG(("wtest","\n"));
+#endif
+    for (; myptr != NULL; previous = myptr, myptr = myptr->next) {
+#ifdef WTEST_OPTIMIZATION
+        /* Compare the incoming oid with the linked list.  If we have
+           results of previous compares, its faster to make sure the
+           length we differed in the last check is greater than the
+           length between this pointer and the last then we don't need
+           to actually perform a comparison */
+        DEBUGMSGTL(("wtest","oid cmp: "));
+        DEBUGMSGOID(("wtest", myptr->start_a, myptr->start_len));
+        DEBUGMSG(("wtest","  --- off = %lu, in off = %lu test = %d\n",
+                  (unsigned long)myptr->oid_off, (unsigned long)ll_off,
+                  !(ll_off && myptr->oid_off &&
+                    myptr->oid_off > ll_off)));
+        if (!(ll_off && myptr->oid_off && myptr->oid_off > ll_off) &&
+            netsnmp_oid_compare_ll(name, len,
+                                   myptr->start_a, myptr->start_len,
+                                   &ll_off) < 0) {
+#else
+        if (snmp_oid_compare(name, len, myptr->start_a, myptr->start_len) < 0) {
+#endif
+            if (lookup_cache_size && previous && cmp) {
+                if (lookup_cache) {
+                    lookup_cache_replace(lookup_cache, myptr, previous);
+                } else {
+                    lookup_cache_add(context_name, myptr, previous);
+                }
+            }
+            return previous;
+        }
+    }
+    return previous;
+}
+
+netsnmp_subtree *
+netsnmp_subtree_find_next(oid *name, size_t len,
+			  netsnmp_subtree *subtree, const char *context_name)
+{
+    netsnmp_subtree *myptr = NULL;
+
+    myptr = netsnmp_subtree_find_prev(name, len, subtree, context_name);
+
+    if (myptr != NULL) {
+        myptr = myptr->next;
+        while (myptr != NULL && (myptr->variables == NULL || 
+				 myptr->variables_len == 0)) {
+            myptr = myptr->next;
+        }
+        return myptr;
+    } else if (subtree != NULL && snmp_oid_compare(name, len, 
+				   subtree->start_a, subtree->start_len) < 0) {
+        return subtree;
+    } else {
+        return NULL;
+    }
+}
+
+netsnmp_subtree *
+netsnmp_subtree_find(oid *name, size_t len, netsnmp_subtree *subtree, 
+		     const char *context_name)
+{
+    netsnmp_subtree *myptr;
+
+    myptr = netsnmp_subtree_find_prev(name, len, subtree, context_name);
+    if (myptr && myptr->end_a &&
+        snmp_oid_compare(name, len, myptr->end_a, myptr->end_len)<0) {
+        return myptr;
+    }
+
+    return NULL;
+}
+
+/**  @} */
+/* End of Subtrees maintaining code */
+
+/** @defgroup agent_mib_registering Registering and unregistering MIB subtrees.
+ *     Adding and removing MIB nodes to the database under their contexts.
+ *   @ingroup agent_registry
+ *
+ * @{
+ */
+
+
+/** Registers a MIB handler.
+ *
+ *  @param moduleName
+ *  @param var
+ *  @param varsize
+ *  @param numvars
+ *  @param  mibloc
+ *  @param mibloclen
+ *  @param priority
+ *  @param range_subid
+ *  @param range_ubound
+ *  @param  ss
+ *  @param context
+ *  @param timeout
+ *  @param flags
+ *  @param reginfo Registration handler structure.
+ *                 In a case of failure, it will be freed.
+ *  @param perform_callback
+ *
+ *  @return gives MIB_REGISTERED_OK or MIB_* error code.
+ *
+ *  @see netsnmp_register_handler()
+ *  @see register_agentx_list()
+ *  @see netsnmp_handler_registration_free()
  */
 int
 netsnmp_register_mib(const char *moduleName,
@@ -844,6 +1224,7 @@
             if (res != MIB_REGISTERED_OK) {
                 unregister_mib_context(mibloc, mibloclen, priority,
                                        range_subid, range_ubound, context);
+                netsnmp_remove_subtree(sub2);
 		netsnmp_subtree_free(sub2);
                 netsnmp_set_lookup_cache_size(old_lookup_cache_val);
                 invalidate_lookup_cache(context);
@@ -891,10 +1272,9 @@
     return res;
 }
 
-/*
- * Reattach a particular node.  
+/** @private
+ *  Reattach a particular node.  
  */
-
 static void
 register_mib_reattach_node(netsnmp_subtree *s)
 {
@@ -926,10 +1306,8 @@
     }
 }
 
-/*
- * Call callbacks to reattach all our nodes.  
+/** Call callbacks to reattach all our nodes.  
  */
-
 void
 register_mib_reattach(void)
 {
@@ -946,10 +1324,11 @@
     }
 }
 
-/*
- * Mark a node as detached.  
+/** @private
+ *  Mark a node as detached.
+ *
+ *  @param s The note to be marked
  */
-
 static void
 register_mib_detach_node(netsnmp_subtree *s)
 {
@@ -958,12 +1337,10 @@
     }
 }
 
-/*
- * Mark all our registered OIDs as detached.  This is only really
- * useful for subagent protocols, when a connection is lost or
- * something.  
+/** Mark all our registered OIDs as detached.
+ *  This is only really useful for subagent protocols, when
+ *  a connection is lost or the subagent is being shut down.  
  */
-
 void
 register_mib_detach(void)
 {
@@ -979,6 +1356,54 @@
     }
 }
 
+/** Register a new module into the MIB database, with all possible custom options
+ *
+ *  @param  moduleName Text name of the module.
+ *                     The given name will be used to identify the module
+ *                     inside the agent.
+ *
+ *  @param  var        Array of variables to be registered in the module.
+ *
+ *  @param  varsize    Size of a single variable in var array.
+ *                     The size is normally equal to sizeof(struct variable),
+ *                     but if we wish to use shorter (or longer) OIDs, then we
+ *                     could use different variant of the variable structure.
+ *
+ *  @param  numvars    Number of variables in the var array.
+ *                     This is how many variables the function will try to register.
+ *
+ *  @param  mibloc     Base OID of the module.
+ *                     All OIDs in var array should be sub-oids of the base OID.
+ *
+ *  @param  mibloclen  Length of the base OID.
+ *                     Number of integers making up the base OID.
+ *
+ *  @param  priority   Registration priority.
+ *                     Used to achieve a desired configuration when different
+ *                     sessions register identical or overlapping regions.
+ *                     Primarily used with AgentX subagent registrations.
+ *
+ *  @param range_subid If non-zero, the module is registered against a range
+ *                     of OIDs, with this parameter identifying the relevant
+ *                     subidentifier - see RFC 2741 for details.
+ *                     Typically used to register a single row of a table.
+ *                     If zero, then register the module against the full OID subtree.
+ *
+ *  @param range_ubound The end of the range being registered (see RFC 2741)
+ *                     If range_subid is zero, then this parameter is ignored.
+ *
+ *  @param ss 
+ *  @param context 
+ *  @param timeout 
+ *  @param flags 
+ *
+ *  @return gives SNMPERR_SUCCESS or SNMPERR_* error code.
+ *
+ *  @see register_mib()
+ *  @see register_mib_priority()
+ *  @see register_mib_range()
+ *  @see unregister_mib()
+ */
 int
 register_mib_context(const char *moduleName,
                      struct variable *var,
@@ -998,6 +1423,52 @@
                                     timeout, flags);
 }
 
+/** Register a new module into the MIB database, as being responsible
+ *   for a range of OIDs (typically a single row of a table).
+ *
+ *  @param  moduleName Text name of the module.
+ *                     The given name will be used to identify the module
+ *                     inside the agent.
+ *
+ *  @param  var        Array of variables to be registered in the module.
+ *
+ *  @param  varsize    Size of a single variable in var array.
+ *                     The size is normally equal to sizeof(struct variable),
+ *                     but if we wish to use shorter (or longer) OIDs, then we
+ *                     could use different variant of the variable structure.
+ *
+ *  @param  numvars    Number of variables in the var array.
+ *                     This is how many variables the function will try to register.
+ *
+ *  @param  mibloc     Base OID of the module.
+ *                     All OIDs in var array should be sub-oids of the base OID.
+ *
+ *  @param  mibloclen  Length of the base OID.
+ *                     Number of integers making up the base OID.
+ *
+ *  @param  priority   Registration priority.
+ *                     Used to achieve a desired configuration when different
+ *                     sessions register identical or overlapping regions.
+ *                     Primarily used with AgentX subagent registrations.
+ *
+ *  @param range_subid If non-zero, the module is registered against a range
+ *                     of OIDs, with this parameter identifying the relevant
+ *                     subidentifier - see RFC 2741 for details.
+ *                     Typically used to register a single row of a table.
+ *                     If zero, then register the module against the full OID subtree.
+ *
+ *  @param range_ubound The end of the range being registered (see RFC 2741)
+ *                     If range_subid is zero, then this parameter is ignored.
+ *
+ *  @param ss 
+ *
+ *  @return gives SNMPERR_SUCCESS or SNMPERR_* error code.
+ *
+ *  @see register_mib()
+ *  @see register_mib_priority()
+ *  @see register_mib_context()
+ *  @see unregister_mib()
+ */
 int
 register_mib_range(const char *moduleName,
                    struct variable *var,
@@ -1013,6 +1484,40 @@
                                 range_subid, range_ubound, ss, "", -1, 0);
 }
 
+/** Register a new module into the MIB database, with a non-default priority
+ *
+ *  @param  moduleName Text name of the module.
+ *                     The given name will be used to identify the module
+ *                     inside the agent.
+ *
+ *  @param  var        Array of variables to be registered in the module.
+ *
+ *  @param  varsize    Size of a single variable in var array.
+ *                     The size is normally equal to sizeof(struct variable),
+ *                     but if we wish to use shorter (or longer) OIDs, then we
+ *                     could use different variant of the variable structure.
+ *
+ *  @param  numvars    Number of variables in the var array.
+ *                     This is how many variables the function will try to register.
+ *
+ *  @param  mibloc     Base OID of the module.
+ *                     All OIDs in var array should be sub-oids of the base OID.
+ *
+ *  @param  mibloclen  Length of the base OID.
+ *                     Number of integers making up the base OID.
+ *
+ *  @param  priority   Registration priority.
+ *                     Used to achieve a desired configuration when different
+ *                     sessions register identical or overlapping regions.
+ *                     Primarily used with AgentX subagent registrations.
+ *
+ *  @return gives SNMPERR_SUCCESS or SNMPERR_* error code.
+ *
+ *  @see register_mib()
+ *  @see register_mib_range()
+ *  @see register_mib_context()
+ *  @see unregister_mib()
+ */
 int
 register_mib_priority(const char *moduleName,
                       struct variable *var,
@@ -1024,6 +1529,35 @@
                               mibloc, mibloclen, priority, 0, 0, NULL);
 }
 
+/** Register a new module into the MIB database, using default priority and context
+ *
+ *  @param  moduleName Text name of the module.
+ *                     The given name will be used to identify the module
+ *                     inside the agent.
+ *
+ *  @param  var        Array of variables to be registered in the module.
+ *
+ *  @param  varsize    Size of a single variable in var array.
+ *                     The size is normally equal to sizeof(struct variable),
+ *                     but if we wish to use shorter (or longer) OIDs, then we
+ *                     could use different variant of the variable structure.
+ *
+ *  @param  numvars    Number of variables in the var array.
+ *                     This is how many variables the function will try to register.
+ *
+ *  @param  mibloc     Base OID of the module.
+ *                     All OIDs in var array should be sub-oids of the base OID.
+ *
+ *  @param  mibloclen  Length of the base OID.
+ *                     Number of integers making up the base OID.
+ *
+ *  @return gives SNMPERR_SUCCESS or SNMPERR_* error code.
+ *
+ *  @see register_mib_priority()
+ *  @see register_mib_range()
+ *  @see register_mib_context()
+ *  @see unregister_mib()
+ */
 int
 register_mib(const char *moduleName,
              struct variable *var,
@@ -1034,6 +1568,17 @@
                                  mibloc, mibloclen, DEFAULT_MIB_PRIORITY);
 }
 
+/** @private
+ *  Unloads a subtree from MIB tree.
+ *
+ *  @param  sub     The sub-tree which is being removed.
+ *
+ *  @param  prev    Previous entry, before the unloaded one.
+ *
+ *  @param  context Name of the context which is being removed.
+ *
+ *  @see unregister_mib_context()
+ */
 void
 netsnmp_subtree_unload(netsnmp_subtree *sub, netsnmp_subtree *prev, const char *context)
 {
@@ -1089,10 +1634,10 @@
 }
 
 /**
- * Unregisters an OID that has an associated context name value. 
- * Typically used when a module has multiple contexts defined.  The parameters
- * priority, range_subid, and range_ubound should be used in conjunction with
- * agentx, see RFC 2741, otherwise these values should always be 0.
+ * Unregisters a module registered against a given OID (or range) in a specified context. 
+ * Typically used when a module has multiple contexts defined.
+ * The parameters priority, range_subid, range_ubound and context
+ * should match those used to register the module originally.
  *
  * @param name  the specific OID to unregister if it conatins the associated
  *              context.
@@ -1114,8 +1659,11 @@
  *
  * @param context  a context name that has been created
  *
- * @return 
+ * @return gives MIB_UNREGISTERED_OK or MIB_* error code.
  * 
+ * @see unregister_mib()
+ * @see unregister_mib_priority()
+ * @see unregister_mib_range()
  */
 int
 unregister_mib_context(oid * name, size_t len, int priority,
@@ -1131,7 +1679,7 @@
 
     netsnmp_set_lookup_cache_size(0);
 
-    if ((range_subid != 0) &&  (range_subid <= len))
+    if ((range_subid > 0) &&  ((size_t)range_subid <= len))
         orig_subid_val = name[range_subid-1];
 
     while(unregistering){
@@ -1295,6 +1843,36 @@
     return 0;
 }
 
+/**
+ * Unregisters a module registered against a given OID (or range) in the default context. 
+ * Typically used when a module has multiple contexts defined.
+ * The parameters priority, range_subid, and range_ubound should
+ * match those used to register the module originally.
+ *
+ * @param name  the specific OID to unregister if it conatins the associated
+ *              context.
+ *
+ * @param len   the length of the OID, use  OID_LENGTH macro.
+ *
+ * @param priority  a value between 1 and 255, used to achieve a desired
+ *                  configuration when different sessions register identical or
+ *                  overlapping regions.  Subagents with no particular
+ *                  knowledge of priority should register with the default
+ *                  value of 127.
+ *
+ * @param range_subid  permits specifying a range in place of one of a subtree
+ *                     sub-identifiers.  When this value is zero, no range is
+ *                     being specified.
+ *
+ * @param range_ubound  the upper bound of a sub-identifier's range.
+ *                      This field is present only if range_subid is not 0.
+ *
+ * @return gives MIB_UNREGISTERED_OK or MIB_* error code.
+ * 
+ * @see unregister_mib()
+ * @see unregister_mib_priority()
+ * @see unregister_mib_context()
+ */
 int
 unregister_mib_range(oid * name, size_t len, int priority,
                      int range_subid, oid range_ubound)
@@ -1303,18 +1881,61 @@
                                   range_ubound, "");
 }
 
+/**
+ * Unregisters a module registered against a given OID at the specified priority.
+ * The priority parameter should match that used to register the module originally.
+ *
+ * @param name  the specific OID to unregister if it conatins the associated
+ *              context.
+ *
+ * @param len   the length of the OID, use  OID_LENGTH macro.
+ *
+ * @param priority  a value between 1 and 255, used to achieve a desired
+ *                  configuration when different sessions register identical or
+ *                  overlapping regions.  Subagents with no particular
+ *                  knowledge of priority should register with the default
+ *                  value of 127.
+ *
+ * @return gives MIB_UNREGISTERED_OK or MIB_* error code.
+ * 
+ * @see unregister_mib()
+ * @see unregister_mib_range()
+ * @see unregister_mib_context()
+ */
 int
 unregister_mib_priority(oid * name, size_t len, int priority)
 {
     return unregister_mib_range(name, len, priority, 0, 0);
 }
 
+/**
+ * Unregisters a module registered against a given OID at the default priority.
+ *
+ * @param name  the specific OID to unregister if it conatins the associated
+ *              context.
+ *
+ * @param len   the length of the OID, use  OID_LENGTH macro.
+ *
+ * @return gives MIB_UNREGISTERED_OK or MIB_* error code.
+ * 
+ * @see unregister_mib_priority()
+ * @see unregister_mib_context()
+ * @see unregister_mib_range()
+ * @see unregister_agentx_list()
+ */
 int
 unregister_mib(oid * name, size_t len)
 {
     return unregister_mib_priority(name, len, DEFAULT_MIB_PRIORITY);
 }
 
+/** Unregisters subtree of OIDs bounded to given session.
+ *
+ *  @param ss Session which OIDs will be removed from tree.
+ *
+ *  @see unregister_mib()
+ *  @see unregister_agentx_list()
+ */
 void
 unregister_mibs_by_session(netsnmp_session * ss)
 {
@@ -1376,15 +1997,21 @@
     }
 }
 
-/*
- * in_a_view: determines if a given snmp_pdu is allowed to see a
- * given name/namelen OID pointer
- * name         IN - name of var, OUT - name matched
- * nameLen      IN -number of sub-ids in name, OUT - subid-is in matched name
- * pi           IN - relevant auth info re PDU 
- * cvp          IN - relevant auth info re mib module
+/** Determines if given PDU is allowed to see (or update) a given OID.
+ *
+ * @param name    The OID to check access for.
+ *                On return, this parameter holds the OID actually matched
+ *
+ * @param namelen Number of sub-identifiers in the OID.
+ *                On return, this parameter holds the length of the matched OID
+ *
+ * @param pdu     PDU requesting access to the OID.
+ *
+ * @param type    ANS.1 type of the value at given OID.
+ *                (Used for catching SNMPv1 requests for SMIv2-only objects)
+ *
+ * @return gives VACM_SUCCESS if the OID is in the PDU, otherwise error code.
  */
-
 int
 in_a_view(oid *name, size_t *namelen, netsnmp_pdu *pdu, int type)
 {
@@ -1429,10 +2056,15 @@
     return VACM_NOSECNAME;
 }
 
-/*
- * check_acces: determines if a given snmp_pdu is ever going to be
- * allowed to do anynthing or if it's not going to ever be
- * authenticated.
+/** Determines if the given PDU request could potentially succeed.
+ *  (Preliminary, OID-independent validation)
+ *
+ * @param pdu     PDU requesting access
+ *
+ * @return gives VACM_SUCCESS   if the entire MIB tree is accessible
+ *               VACM_NOTINVIEW if the entire MIB tree is inaccessible
+ *               VACM_SUBTREE_UNKNOWN if some portions are accessible
+ *               other codes may returned on error
  */
 int
 check_access(netsnmp_pdu *pdu)
@@ -1464,12 +2096,19 @@
     return 1;
 }
 
-/** checks to see if everything within a
- *  given subtree is either: in view, not in view, or possibly both.
- *  If the entire subtree is not-in-view we can use this information to
- *  skip calling the sub-handlers entirely.
- *  @returns 0 if entire subtree is accessible, 5 if not and 7 if
- *  portions are both.  1 on error (illegal pdu version).
+/** Determines if the given PDU request could potentially access
+ *   the specified MIB subtree
+ *
+ * @param pdu     PDU requesting access
+ *
+ * @param name    The OID to check access for.
+ *
+ * @param namelen Number of sub-identifiers in the OID.
+ *
+ * @return gives VACM_SUCCESS   if the entire MIB tree is accessible
+ *               VACM_NOTINVIEW if the entire MIB tree is inaccessible
+ *               VACM_SUBTREE_UNKNOWN if some portions are accessible
+ *               other codes may returned on error
  */
 int
 netsnmp_acm_check_subtree(netsnmp_pdu *pdu, oid *name, size_t namelen)
@@ -1501,114 +2140,6 @@
     return 1;
 }
 
-netsnmp_subtree *
-netsnmp_subtree_find_prev(oid *name, size_t len, netsnmp_subtree *subtree,
-			  const char *context_name)
-{
-    lookup_cache *lookup_cache = NULL;
-    netsnmp_subtree *myptr = NULL, *previous = NULL;
-    int cmp = 1;
-    size_t ll_off = 0;
-
-    if (subtree) {
-        myptr = subtree;
-    } else {
-	/* look through everything */
-        if (lookup_cache_size) {
-            lookup_cache = lookup_cache_find(context_name, name, len, &cmp);
-            if (lookup_cache) {
-                myptr = lookup_cache->next;
-                previous = lookup_cache->previous;
-            }
-            if (!myptr)
-                myptr = netsnmp_subtree_find_first(context_name);
-        } else {
-            myptr = netsnmp_subtree_find_first(context_name);
-        }
-    }
-
-    /*
-     * this optimization causes a segfault on sf cf alpha-linux1.
-     * ifdef out until someone figures out why and fixes it. xxx-rks 20051117
-     */
-#ifndef __alpha
-#define WTEST_OPTIMIZATION 1
-#endif
-#ifdef WTEST_OPTIMIZATION
-    DEBUGMSGTL(("wtest","oid in: "));
-    DEBUGMSGOID(("wtest", name, len));
-    DEBUGMSG(("wtest","\n"));
-#endif
-    for (; myptr != NULL; previous = myptr, myptr = myptr->next) {
-#ifdef WTEST_OPTIMIZATION
-        /* Compare the incoming oid with the linked list.  If we have
-           results of previous compares, its faster to make sure the
-           length we differed in the last check is greater than the
-           length between this pointer and the last then we don't need
-           to actually perform a comparison */
-        DEBUGMSGTL(("wtest","oid cmp: "));
-        DEBUGMSGOID(("wtest", myptr->start_a, myptr->start_len));
-        DEBUGMSG(("wtest","  --- off = %lu, in off = %lu test = %d\n",
-                  (unsigned long)myptr->oid_off, (unsigned long)ll_off,
-                  !(ll_off && myptr->oid_off &&
-                    myptr->oid_off > ll_off)));
-        if (!(ll_off && myptr->oid_off && myptr->oid_off > ll_off) &&
-            netsnmp_oid_compare_ll(name, len,
-                                   myptr->start_a, myptr->start_len,
-                                   &ll_off) < 0) {
-#else
-        if (snmp_oid_compare(name, len, myptr->start_a, myptr->start_len) < 0) {
-#endif
-            if (lookup_cache_size && previous && cmp) {
-                if (lookup_cache) {
-                    lookup_cache_replace(lookup_cache, myptr, previous);
-                } else {
-                    lookup_cache_add(context_name, myptr, previous);
-                }
-            }
-            return previous;
-        }
-    }
-    return previous;
-}
-
-netsnmp_subtree *
-netsnmp_subtree_find_next(oid *name, size_t len,
-			  netsnmp_subtree *subtree, const char *context_name)
-{
-    netsnmp_subtree *myptr = NULL;
-
-    myptr = netsnmp_subtree_find_prev(name, len, subtree, context_name);
-
-    if (myptr != NULL) {
-        myptr = myptr->next;
-        while (myptr != NULL && (myptr->variables == NULL || 
-				 myptr->variables_len == 0)) {
-            myptr = myptr->next;
-        }
-        return myptr;
-    } else if (subtree != NULL && snmp_oid_compare(name, len, 
-				   subtree->start_a, subtree->start_len) < 0) {
-        return subtree;
-    } else {
-        return NULL;
-    }
-}
-
-netsnmp_subtree *
-netsnmp_subtree_find(oid *name, size_t len, netsnmp_subtree *subtree, 
-		     const char *context_name)
-{
-    netsnmp_subtree *myptr;
-
-    myptr = netsnmp_subtree_find_prev(name, len, subtree, context_name);
-    if (myptr && myptr->end_a &&
-        snmp_oid_compare(name, len, myptr->end_a, myptr->end_len)<0) {
-        return myptr;
-    }
-
-    return NULL;
-}
 
 netsnmp_session *
 get_session_for_oid(oid *name, size_t len, const char *context_name)
@@ -1688,63 +2219,6 @@
 
 }
 
-void
-clear_subtree (netsnmp_subtree *sub) {
-
-    netsnmp_subtree *c;
-    
-    if (sub == NULL)
-	return;
-
-    for(c = sub; c;) {
-        sub = c;
-        c = c->children;
-        netsnmp_subtree_free(sub);
-    }
-
-}
-
-void
-clear_lookup_cache(void) {
-
-    lookup_cache_context *ptr = NULL, *next = NULL;
-
-    ptr = thecontextcache;
-    while (ptr) {
-	next = ptr->next;
-	SNMP_FREE(ptr->context);
-	SNMP_FREE(ptr);
-	ptr = next;
-    }
-    thecontextcache = NULL; /* !!! */
-}
-
-void
-clear_context(void) {
-
-    subtree_context_cache *ptr = NULL, *next = NULL;
-    netsnmp_subtree *t, *u;
-
-    DEBUGMSGTL(("agent_registry", "clear context\n"));
-
-    ptr = get_top_context_cache(); 
-    while (ptr) {
-	next = ptr->next;
-
-	for (t = ptr->first_subtree; t; t = u) {
-            u = t->next;
-	    clear_subtree(t);
-	}
-
-	SNMP_FREE(ptr->context_name);
-        SNMP_FREE(ptr);
-
-	ptr = next;
-    }
-    context_subtrees = NULL; /* !!! */
-    clear_lookup_cache();
-}
-
 extern void     dump_idx_registry(void);
 void
 dump_registry(void)
@@ -1799,7 +2273,7 @@
                     if (myptr2->label_a && myptr2->label_a[0]) {
                         if (strcmp(myptr2->label_a, "old_api") == 0) {
                             struct variable *vp =
-                                myptr2->reginfo->handler->myvoid;
+                                (struct variable*)myptr2->reginfo->handler->myvoid;
 
                             if (!sprint_realloc_objid(&s, &sl, &sl_o, 1,
                                                  vp->name, vp->namelen)) {
@@ -1834,6 +2308,17 @@
     dump_idx_registry();
 }
 
+/**  @} */
+/* End of MIB registration code */
+
+
+/** @defgroup agent_signals POSIX signals support for agents.
+ *     Registering and unregistering signal handlers.
+ *   @ingroup agent_registry
+ *
+ * @{
+ */
+
 int             external_signal_scheduled[NUM_EXTERNAL_SIGS];
 void            (*external_signal_handler[NUM_EXTERNAL_SIGS]) (int);
 
@@ -1858,6 +2343,20 @@
 #endif
 }
 
+/** Registers a POSIX Signal handler.
+ *  Implements the signal registering process for POSIX and non-POSIX
+ *  systems. Also, unifies the way signals work.
+ *  Note that the signal handler should register itself again with
+ *  signal() call before end of execution to prevent possible problems.
+ *
+ *  @param sig POSIX Signal ID number, as defined in signal.h.
+ *
+ *  @param func New signal handler function.
+ *
+ *  @return value is SIG_REGISTERED_OK for success and
+ *        SIG_REGISTRATION_FAILED if the registration can't
+ *        be handled.
+ */
 int
 register_signal(int sig, void (*func) (int))
 {
@@ -1891,6 +2390,12 @@
     return SIG_REGISTERED_OK;
 }
 
+/** Unregisters a POSIX Signal handler.
+ *
+ *  @param sig POSIX Signal ID number, as defined in signal.h.
+ *
+ *  @return value is SIG_UNREGISTERED_OK for success, or error code.
+ */
 int
 unregister_signal(int sig)
 {
@@ -1902,3 +2407,7 @@
 #endif                          /* !WIN32 */
 
 /**  @} */
+/* End of signals support code */
+
+/**  @} */
+
diff --git a/agent/agent_sysORTable.c b/agent/agent_sysORTable.c
index d959eaf..f628060 100644
--- a/agent/agent_sysORTable.c
+++ b/agent/agent_sysORTable.c
@@ -68,7 +68,7 @@
     DEBUGMSGOID(("agent/sysORTable", oidin, oidlen));
     DEBUGMSG(("agent/sysORTable", ", session %p\n", ss));
 
-    entry = calloc(1, sizeof(struct data_node_s));
+    entry = (data_node)calloc(1, sizeof(struct data_node_s));
     if (entry == NULL) {
         DEBUGMSGTL(("agent/sysORTable", "Failed to allocate new entry\n"));
         return SYS_ORTABLE_REGISTRATION_FAILED;
diff --git a/agent/agent_trap.c b/agent/agent_trap.c
index ede7352..4c7a4d9 100644
--- a/agent/agent_trap.c
+++ b/agent/agent_trap.c
@@ -34,11 +34,7 @@
 #include <strings.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -49,8 +45,6 @@
 #endif
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
-#elif HAVE_WINSOCK_H
-#include <winsock.h>
 #endif
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
@@ -79,36 +73,28 @@
 
 struct trap_sink *sinks = NULL;
 
-extern struct timeval starttime;
-
-oid             objid_enterprisetrap[] = { NETSNMP_NOTIFICATION_MIB };
-oid             trap_version_id[] = { NETSNMP_SYSTEM_MIB };
-int             enterprisetrap_len;
-int             trap_version_id_len;
+const oid       objid_enterprisetrap[] = { NETSNMP_NOTIFICATION_MIB };
+const oid       trap_version_id[] = { NETSNMP_SYSTEM_MIB };
+const int       enterprisetrap_len = OID_LENGTH(objid_enterprisetrap);
+const int       trap_version_id_len = OID_LENGTH(trap_version_id);
 
 #define SNMPV2_TRAPS_PREFIX	SNMP_OID_SNMPMODULES,1,1,5
-oid             trap_prefix[]    = { SNMPV2_TRAPS_PREFIX };
-oid             cold_start_oid[] = { SNMPV2_TRAPS_PREFIX, 1 };  /* SNMPv2-MIB */
-oid             warm_start_oid[] = { SNMPV2_TRAPS_PREFIX, 2 };  /* SNMPv2-MIB */
-oid             link_down_oid[]  = { SNMPV2_TRAPS_PREFIX, 3 };  /* IF-MIB */
-oid             link_up_oid[]    = { SNMPV2_TRAPS_PREFIX, 4 };  /* IF-MIB */
-oid             auth_fail_oid[]  = { SNMPV2_TRAPS_PREFIX, 5 };  /* SNMPv2-MIB */
-oid             egp_xxx_oid[]    = { SNMPV2_TRAPS_PREFIX, 99 }; /* ??? */
+const oid       trap_prefix[]    = { SNMPV2_TRAPS_PREFIX };
+const oid       cold_start_oid[] = { SNMPV2_TRAPS_PREFIX, 1 };  /* SNMPv2-MIB */
 
 #define SNMPV2_TRAP_OBJS_PREFIX	SNMP_OID_SNMPMODULES,1,1,4
-oid             snmptrap_oid[] = { SNMPV2_TRAP_OBJS_PREFIX, 1, 0 };
-oid             snmptrapenterprise_oid[] =
-    { SNMPV2_TRAP_OBJS_PREFIX, 3, 0 };
-oid             sysuptime_oid[] = { SNMP_OID_MIB2, 1, 3, 0 };
-size_t          snmptrap_oid_len;
-size_t          snmptrapenterprise_oid_len;
-size_t          sysuptime_oid_len;
+const oid       snmptrap_oid[] = { SNMPV2_TRAP_OBJS_PREFIX, 1, 0 };
+const oid       snmptrapenterprise_oid[] = { SNMPV2_TRAP_OBJS_PREFIX, 3, 0 };
+const oid       sysuptime_oid[] = { SNMP_OID_MIB2, 1, 3, 0 };
+const size_t    snmptrap_oid_len = OID_LENGTH(snmptrap_oid);
+const size_t    snmptrapenterprise_oid_len = OID_LENGTH(snmptrapenterprise_oid);
+const size_t    sysuptime_oid_len = OID_LENGTH(sysuptime_oid);
 
 #define SNMPV2_COMM_OBJS_PREFIX	SNMP_OID_SNMPMODULES,18,1
-oid             agentaddr_oid[] = { SNMPV2_COMM_OBJS_PREFIX, 3, 0 };
-size_t          agentaddr_oid_len;
-oid             community_oid[] = { SNMPV2_COMM_OBJS_PREFIX, 4, 0 };
-size_t          community_oid_len;
+const oid       agentaddr_oid[] = { SNMPV2_COMM_OBJS_PREFIX, 3, 0 };
+const size_t    agentaddr_oid_len = OID_LENGTH(agentaddr_oid);
+const oid       community_oid[] = { SNMPV2_COMM_OBJS_PREFIX, 4, 0 };
+const size_t    community_oid_len = OID_LENGTH(community_oid);
 #if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
 char           *snmp_trapcommunity = NULL;
 #endif
@@ -142,13 +128,6 @@
 void
 init_traps(void)
 {
-    enterprisetrap_len  = OID_LENGTH(objid_enterprisetrap);
-    trap_version_id_len = OID_LENGTH(trap_version_id);
-    snmptrap_oid_len    = OID_LENGTH(snmptrap_oid);
-    snmptrapenterprise_oid_len = OID_LENGTH(snmptrapenterprise_oid);
-    sysuptime_oid_len   = OID_LENGTH(sysuptime_oid);
-    agentaddr_oid_len   = OID_LENGTH(agentaddr_oid);
-    community_oid_len   = OID_LENGTH(community_oid);
 }
 
 static void
@@ -630,9 +609,9 @@
  */
 int
 netsnmp_send_traps(int trap, int specific,
-                          oid * enterprise, int enterprise_length,
+                          const oid * enterprise, int enterprise_length,
                           netsnmp_variable_list * vars,
-                          char * context, int flags)
+                          const char * context, int flags)
 {
     netsnmp_pdu           *template_v1pdu;
     netsnmp_pdu           *template_v2pdu;
@@ -643,7 +622,7 @@
     u_long                 uptime;
     struct trap_sink *sink;
     const char            *v1trapaddress;
-    int                    res;
+    int                    res = 0;
 
     DEBUGMSGTL(( "trap", "send_trap %d %d ", trap, specific));
     DEBUGMSGOID(("trap", enterprise, enterprise_length));
@@ -725,7 +704,7 @@
                 !snmp_varlist_add_variable( &(template_v2pdu->variables),
                      snmptrapenterprise_oid, snmptrapenterprise_oid_len,
                      ASN_OBJECT_ID,
-                     (char*)enterprise, enterprise_length*sizeof(oid))) {
+                     enterprise, enterprise_length*sizeof(oid))) {
                 snmp_log(LOG_WARNING,
                      "send_trap: failed to add snmpEnterprise to v2 trap\n");
                 snmp_free_pdu(template_v2pdu);
@@ -798,7 +777,7 @@
      */
        pdu_in_addr_t = (in_addr_t *) template_v1pdu->agent_addr;
        v1trapaddress = netsnmp_ds_get_string(NETSNMP_DS_APPLICATION_ID,
-                                      NETSNMP_DS_AGENT_TRAP_ADDR);
+                                             NETSNMP_DS_AGENT_TRAP_ADDR);
        if (v1trapaddress != NULL) {
            /* "v1trapaddress" was specified in config, try to resolve it */
            res = netsnmp_gethostbyname_v4(v1trapaddress, pdu_in_addr_t);
@@ -857,7 +836,7 @@
 void
 send_enterprise_trap_vars(int trap,
                           int specific,
-                          oid * enterprise, int enterprise_length,
+                          const oid * enterprise, int enterprise_length,
                           netsnmp_variable_list * vars)
 {
     netsnmp_send_traps(trap, specific,
@@ -914,7 +893,6 @@
 {
     netsnmp_pdu    *pdu;
     int            result;
-    char           tmp[SPRINT_MAX_LEN];
     int            len;
 
 
@@ -948,6 +926,8 @@
         if ((sess->version == SNMP_VERSION_3) &&
                 (pdu->command == SNMP_MSG_TRAP2) &&
                 (sess->securityEngineIDLen == 0)) {
+            u_char          tmp[SPRINT_MAX_LEN];
+
             len = snmpv3_get_engineID(tmp, sizeof(tmp));
             memdup(&pdu->securityEngineID, tmp, len);
             pdu->securityEngineIDLen = len;
@@ -978,7 +958,7 @@
 
 /* Send a trap under a context */
 void send_trap_vars_with_context(int trap, int specific, 
-              netsnmp_variable_list *vars, char *context)
+              netsnmp_variable_list *vars, const char *context)
 {
     if (trap == SNMP_TRAP_ENTERPRISESPECIFIC)
         netsnmp_send_traps(trap, specific, objid_enterprisetrap,
@@ -1061,11 +1041,11 @@
  *
  * @see send_v2trap
  */
-void send_v3trap(netsnmp_variable_list *vars, char *context)
+void send_v3trap(netsnmp_variable_list *vars, const char *context)
 {
     netsnmp_send_traps(-1, -1, 
-					trap_version_id, OID_LENGTH(trap_version_id),
-                    vars, context, 0);
+                       trap_version_id, OID_LENGTH(trap_version_id),
+                       vars, context, 0);
 }
 
 void
@@ -1219,9 +1199,10 @@
 void
 snmpd_parse_config_trapsess(const char *word, char *cptr)
 {
-    char           *argv[MAX_ARGS], *cp = cptr, tmp[SPRINT_MAX_LEN];
-    int             argn;
+    char           *argv[MAX_ARGS], *cp = cptr;
+    int             argn, rc;
     netsnmp_session session, *ss;
+    netsnmp_transport *transport;
     size_t          len;
 
     /*
@@ -1234,15 +1215,28 @@
      */
     argv[0] = strdup("snmpd-trapsess"); /* bogus entry for getopt() */
     for (argn = 1; cp && argn < MAX_ARGS; argn++) {
+        char            tmp[SPRINT_MAX_LEN];
+
         cp = copy_nword(cp, tmp, SPRINT_MAX_LEN);
         argv[argn] = strdup(tmp);
     }
 
-    snmp_parse_args(argn, argv, &session, "C:", trapOptProc);
+    netsnmp_parse_args(argn, argv, &session, "C:", trapOptProc,
+                       NETSNMP_PARSE_ARGS_NOLOGGING |
+                       NETSNMP_PARSE_ARGS_NOZERO);
 
-    ss = snmp_add(&session,
-		  netsnmp_transport_open_client("snmptrap", session.peername),
-		  NULL, NULL);
+    transport = netsnmp_transport_open_client("snmptrap", session.peername);
+    if (transport == NULL) {
+        config_perror("snmpd: failed to parse this line.");
+        return;
+    }
+    if ((rc = netsnmp_sess_config_and_open_transport(&session, transport))
+        != SNMPERR_SUCCESS) {
+        session.s_snmp_errno = rc;
+        session.s_errno = 0;
+        return;
+    }
+    ss = snmp_add(&session, transport, NULL, NULL);
     for (; argn > 0; argn--) {
         free(argv[argn - 1]);
     }
@@ -1261,21 +1255,18 @@
     if (ss->version == SNMP_VERSION_3 &&
         traptype != SNMP_MSG_INFORM   &&
         ss->securityEngineIDLen == 0) {
+            u_char          tmp[SPRINT_MAX_LEN];
+
             len = snmpv3_get_engineID( tmp, sizeof(tmp));
             memdup(&ss->securityEngineID, tmp, len);
             ss->securityEngineIDLen = len;
     }
 
 #ifndef NETSNMP_DISABLE_SNMPV1
-    if (ss->version == SNMP_VERSION_1) {
-        add_trap_session(ss, SNMP_MSG_TRAP, 0, SNMP_VERSION_1);
-    } else {
+    if (ss->version == SNMP_VERSION_1)
+        traptype = SNMP_MSG_TRAP;
 #endif
-        add_trap_session(ss, traptype, (traptype == SNMP_MSG_INFORM),
-                         ss->version);
-#ifndef NETSNMP_DISABLE_SNMPV1
-    }
-#endif
+    add_trap_session(ss, traptype, (traptype == SNMP_MSG_INFORM), ss->version);
 }
 
 #if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
diff --git a/agent/auto_nlist.c b/agent/auto_nlist.c
index 0b5995a..ecdaf24 100644
--- a/agent/auto_nlist.c
+++ b/agent/auto_nlist.c
@@ -66,7 +66,7 @@
          * allocate an extra byte for inclusion of a preceding '_' later 
          */
         it->nl[0].n_name = (char *) malloc(strlen(string) + 2);
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         strcpy(it->nl[0].n_name, string);
         it->nl[0].n_name[strlen(string)+1] = '\0';
 #elif defined(freebsd9)
@@ -176,7 +176,7 @@
     }
     kvm_close(kernel);
 #else                           /* ! HAVE_KVM_OPENFILES */
-#if (defined(aix4) || defined(aix5) || defined(aix6)) && defined(HAVE_KNLIST)
+#if (defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)) && defined(HAVE_KNLIST)
     if (knlist(nl, 1, sizeof(struct nlist)) == -1) {
         DEBUGMSGTL(("auto_nlist:init_nlist", "knlist failed on symbol:  %s\n",
                     nl[0].n_name));
@@ -206,7 +206,7 @@
 #endif                          /*aix4 */
 #endif                          /* ! HAVE_KVM_OPENFILES */
     for (ret = 0; nl[ret].n_name != NULL; ret++) {
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         if (nl[ret].n_type == 0 && nl[ret].n_value != 0)
             nl[ret].n_type = 1;
 #endif
diff --git a/agent/helpers/Makefile.depend b/agent/helpers/Makefile.depend
index 4a4efc6..8baf6cc 100644
--- a/agent/helpers/Makefile.depend
+++ b/agent/helpers/Makefile.depend
@@ -8,12 +8,16 @@
 ./all_helpers.lo: ../../include/net-snmp/net-snmp-includes.h
 ./all_helpers.lo: ../../include/net-snmp/definitions.h
 ./all_helpers.lo: ../../include/net-snmp/types.h 
+./all_helpers.lo: ../../include/net-snmp/library/oid.h
 ./all_helpers.lo: ../../include/net-snmp/library/types.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmp_api.h
 ./all_helpers.lo: ../../include/net-snmp/varbind_api.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmp_client.h
 ./all_helpers.lo: ../../include/net-snmp/pdu_api.h
 ./all_helpers.lo: ../../include/net-snmp/library/asn1.h
+./all_helpers.lo: ../../include/net-snmp/output_api.h
+./all_helpers.lo: ../../include/net-snmp/library/snmp_debug.h
+./all_helpers.lo: ../../include/net-snmp/library/snmp_logging.h
 ./all_helpers.lo: ../../include/net-snmp/session_api.h
 ./all_helpers.lo: ../../include/net-snmp/library/callback.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -21,8 +25,12 @@
 ./all_helpers.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./all_helpers.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./all_helpers.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./all_helpers.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./all_helpers.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./all_helpers.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -44,7 +52,6 @@
 ./all_helpers.lo: ../../include/net-snmp/library/check_varbind.h
 ./all_helpers.lo: ../../include/net-snmp/library/container.h
 ./all_helpers.lo: ../../include/net-snmp/library/factory.h
-./all_helpers.lo: ../../include/net-snmp/library/snmp_logging.h
 ./all_helpers.lo: ../../include/net-snmp/library/container_binary_array.h
 ./all_helpers.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./all_helpers.lo: ../../include/net-snmp/library/container_iterator.h
@@ -54,11 +61,10 @@
 ./all_helpers.lo: ../../include/net-snmp/config_api.h
 ./all_helpers.lo: ../../include/net-snmp/library/read_config.h
 ./all_helpers.lo: ../../include/net-snmp/library/default_store.h
+./all_helpers.lo: ../../include/net-snmp/net-snmp-config.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmp_enum.h
 ./all_helpers.lo: ../../include/net-snmp/library/vacm.h
-./all_helpers.lo: ../../include/net-snmp/output_api.h
-./all_helpers.lo: ../../include/net-snmp/library/snmp_debug.h
 ./all_helpers.lo: ../../include/net-snmp/snmpv3_api.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmpv3.h
 ./all_helpers.lo: ../../include/net-snmp/library/transform_oids.h
@@ -67,6 +73,7 @@
 ./all_helpers.lo: ../../include/net-snmp/library/lcd_time.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./all_helpers.lo: ../../include/net-snmp/library/snmptsm.h
 ./all_helpers.lo: ../../include/net-snmp/library/snmpusm.h
 ./all_helpers.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./all_helpers.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -104,21 +111,22 @@
 ./all_helpers.lo: ../../include/net-snmp/agent/table_container.h
 ./all_helpers.lo: ../../include/net-snmp/agent/table_array.h
 ./all_helpers.lo: ../../include/net-snmp/agent/mfd.h
+./all_helpers.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./all_helpers.lo: ../../include/net-snmp/agent/stash_cache.h
 ./baby_steps.lo: ../../include/net-snmp/net-snmp-config.h
-./baby_steps.lo: ../../include/net-snmp/system/linux.h
-./baby_steps.lo: ../../include/net-snmp/system/sysv.h
-./baby_steps.lo: ../../include/net-snmp/system/generic.h
-./baby_steps.lo: ../../include/net-snmp/machine/generic.h
 ./baby_steps.lo: ../../include/net-snmp/net-snmp-includes.h
 ./baby_steps.lo:  ../../include/net-snmp/definitions.h
 ./baby_steps.lo: ../../include/net-snmp/types.h 
+./baby_steps.lo: ../../include/net-snmp/library/oid.h
 ./baby_steps.lo: ../../include/net-snmp/library/types.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmp_api.h
 ./baby_steps.lo: ../../include/net-snmp/varbind_api.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmp_client.h
 ./baby_steps.lo: ../../include/net-snmp/pdu_api.h
 ./baby_steps.lo: ../../include/net-snmp/library/asn1.h
+./baby_steps.lo: ../../include/net-snmp/output_api.h
+./baby_steps.lo: ../../include/net-snmp/library/snmp_debug.h
+./baby_steps.lo: ../../include/net-snmp/library/snmp_logging.h
 ./baby_steps.lo: ../../include/net-snmp/session_api.h
 ./baby_steps.lo: ../../include/net-snmp/library/callback.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -126,8 +134,12 @@
 ./baby_steps.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./baby_steps.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./baby_steps.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./baby_steps.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./baby_steps.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./baby_steps.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -149,7 +161,6 @@
 ./baby_steps.lo: ../../include/net-snmp/library/check_varbind.h
 ./baby_steps.lo: ../../include/net-snmp/library/container.h
 ./baby_steps.lo: ../../include/net-snmp/library/factory.h
-./baby_steps.lo: ../../include/net-snmp/library/snmp_logging.h
 ./baby_steps.lo: ../../include/net-snmp/library/container_binary_array.h
 ./baby_steps.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./baby_steps.lo: ../../include/net-snmp/library/container_iterator.h
@@ -162,8 +173,6 @@
 ./baby_steps.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmp_enum.h
 ./baby_steps.lo: ../../include/net-snmp/library/vacm.h
-./baby_steps.lo: ../../include/net-snmp/output_api.h
-./baby_steps.lo: ../../include/net-snmp/library/snmp_debug.h
 ./baby_steps.lo: ../../include/net-snmp/snmpv3_api.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmpv3.h
 ./baby_steps.lo: ../../include/net-snmp/library/transform_oids.h
@@ -172,6 +181,7 @@
 ./baby_steps.lo: ../../include/net-snmp/library/lcd_time.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./baby_steps.lo: ../../include/net-snmp/library/snmptsm.h
 ./baby_steps.lo: ../../include/net-snmp/library/snmpusm.h
 ./baby_steps.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./baby_steps.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -209,20 +219,21 @@
 ./baby_steps.lo: ../../include/net-snmp/agent/table_container.h
 ./baby_steps.lo: ../../include/net-snmp/agent/table_array.h
 ./baby_steps.lo: ../../include/net-snmp/agent/mfd.h
+./baby_steps.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./bulk_to_next.lo: ../../include/net-snmp/net-snmp-config.h
-./bulk_to_next.lo: ../../include/net-snmp/system/linux.h
-./bulk_to_next.lo: ../../include/net-snmp/system/sysv.h
-./bulk_to_next.lo: ../../include/net-snmp/system/generic.h
-./bulk_to_next.lo: ../../include/net-snmp/machine/generic.h
 ./bulk_to_next.lo: ../../include/net-snmp/net-snmp-includes.h
 ./bulk_to_next.lo: ../../include/net-snmp/definitions.h
 ./bulk_to_next.lo: ../../include/net-snmp/types.h 
+./bulk_to_next.lo: ../../include/net-snmp/library/oid.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/types.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmp_api.h
 ./bulk_to_next.lo: ../../include/net-snmp/varbind_api.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmp_client.h
 ./bulk_to_next.lo: ../../include/net-snmp/pdu_api.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/asn1.h
+./bulk_to_next.lo: ../../include/net-snmp/output_api.h
+./bulk_to_next.lo: ../../include/net-snmp/library/snmp_debug.h
+./bulk_to_next.lo: ../../include/net-snmp/library/snmp_logging.h
 ./bulk_to_next.lo: ../../include/net-snmp/session_api.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/callback.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -230,8 +241,12 @@
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./bulk_to_next.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./bulk_to_next.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./bulk_to_next.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./bulk_to_next.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -253,7 +268,6 @@
 ./bulk_to_next.lo: ../../include/net-snmp/library/check_varbind.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/container.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/factory.h
-./bulk_to_next.lo: ../../include/net-snmp/library/snmp_logging.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/container_binary_array.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/container_iterator.h
@@ -266,8 +280,6 @@
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmp_enum.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/vacm.h
-./bulk_to_next.lo: ../../include/net-snmp/output_api.h
-./bulk_to_next.lo: ../../include/net-snmp/library/snmp_debug.h
 ./bulk_to_next.lo: ../../include/net-snmp/snmpv3_api.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmpv3.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/transform_oids.h
@@ -276,6 +288,7 @@
 ./bulk_to_next.lo: ../../include/net-snmp/library/lcd_time.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./bulk_to_next.lo: ../../include/net-snmp/library/snmptsm.h
 ./bulk_to_next.lo: ../../include/net-snmp/library/snmpusm.h
 ./bulk_to_next.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./bulk_to_next.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -313,20 +326,21 @@
 ./bulk_to_next.lo: ../../include/net-snmp/agent/table_container.h
 ./bulk_to_next.lo: ../../include/net-snmp/agent/table_array.h
 ./bulk_to_next.lo: ../../include/net-snmp/agent/mfd.h
+./bulk_to_next.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./cache_handler.lo: ../../include/net-snmp/net-snmp-config.h
-./cache_handler.lo: ../../include/net-snmp/system/linux.h
-./cache_handler.lo: ../../include/net-snmp/system/sysv.h
-./cache_handler.lo: ../../include/net-snmp/system/generic.h
-./cache_handler.lo: ../../include/net-snmp/machine/generic.h
 ./cache_handler.lo: ../../include/net-snmp/net-snmp-includes.h
 ./cache_handler.lo: ../../include/net-snmp/definitions.h
 ./cache_handler.lo: ../../include/net-snmp/types.h 
+./cache_handler.lo: ../../include/net-snmp/library/oid.h
 ./cache_handler.lo: ../../include/net-snmp/library/types.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmp_api.h
 ./cache_handler.lo: ../../include/net-snmp/varbind_api.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmp_client.h
 ./cache_handler.lo: ../../include/net-snmp/pdu_api.h
 ./cache_handler.lo: ../../include/net-snmp/library/asn1.h
+./cache_handler.lo: ../../include/net-snmp/output_api.h
+./cache_handler.lo: ../../include/net-snmp/library/snmp_debug.h
+./cache_handler.lo: ../../include/net-snmp/library/snmp_logging.h
 ./cache_handler.lo: ../../include/net-snmp/session_api.h
 ./cache_handler.lo: ../../include/net-snmp/library/callback.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -334,8 +348,12 @@
 ./cache_handler.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./cache_handler.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./cache_handler.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./cache_handler.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./cache_handler.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./cache_handler.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -357,7 +375,6 @@
 ./cache_handler.lo: ../../include/net-snmp/library/check_varbind.h
 ./cache_handler.lo: ../../include/net-snmp/library/container.h
 ./cache_handler.lo: ../../include/net-snmp/library/factory.h
-./cache_handler.lo: ../../include/net-snmp/library/snmp_logging.h
 ./cache_handler.lo: ../../include/net-snmp/library/container_binary_array.h
 ./cache_handler.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./cache_handler.lo: ../../include/net-snmp/library/container_iterator.h
@@ -370,8 +387,6 @@
 ./cache_handler.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmp_enum.h
 ./cache_handler.lo: ../../include/net-snmp/library/vacm.h
-./cache_handler.lo: ../../include/net-snmp/output_api.h
-./cache_handler.lo: ../../include/net-snmp/library/snmp_debug.h
 ./cache_handler.lo: ../../include/net-snmp/snmpv3_api.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmpv3.h
 ./cache_handler.lo: ../../include/net-snmp/library/transform_oids.h
@@ -380,6 +395,7 @@
 ./cache_handler.lo: ../../include/net-snmp/library/lcd_time.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./cache_handler.lo: ../../include/net-snmp/library/snmptsm.h
 ./cache_handler.lo: ../../include/net-snmp/library/snmpusm.h
 ./cache_handler.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./cache_handler.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -417,20 +433,21 @@
 ./cache_handler.lo: ../../include/net-snmp/agent/table_container.h
 ./cache_handler.lo: ../../include/net-snmp/agent/table_array.h
 ./cache_handler.lo: ../../include/net-snmp/agent/mfd.h
+./cache_handler.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./debug_handler.lo: ../../include/net-snmp/net-snmp-config.h
-./debug_handler.lo: ../../include/net-snmp/system/linux.h
-./debug_handler.lo: ../../include/net-snmp/system/sysv.h
-./debug_handler.lo: ../../include/net-snmp/system/generic.h
-./debug_handler.lo: ../../include/net-snmp/machine/generic.h
 ./debug_handler.lo: ../../include/net-snmp/net-snmp-includes.h
 ./debug_handler.lo: ../../include/net-snmp/definitions.h
 ./debug_handler.lo: ../../include/net-snmp/types.h 
+./debug_handler.lo: ../../include/net-snmp/library/oid.h
 ./debug_handler.lo: ../../include/net-snmp/library/types.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmp_api.h
 ./debug_handler.lo: ../../include/net-snmp/varbind_api.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmp_client.h
 ./debug_handler.lo: ../../include/net-snmp/pdu_api.h
 ./debug_handler.lo: ../../include/net-snmp/library/asn1.h
+./debug_handler.lo: ../../include/net-snmp/output_api.h
+./debug_handler.lo: ../../include/net-snmp/library/snmp_debug.h
+./debug_handler.lo: ../../include/net-snmp/library/snmp_logging.h
 ./debug_handler.lo: ../../include/net-snmp/session_api.h
 ./debug_handler.lo: ../../include/net-snmp/library/callback.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -438,8 +455,12 @@
 ./debug_handler.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./debug_handler.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./debug_handler.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./debug_handler.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./debug_handler.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./debug_handler.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -461,7 +482,6 @@
 ./debug_handler.lo: ../../include/net-snmp/library/check_varbind.h
 ./debug_handler.lo: ../../include/net-snmp/library/container.h
 ./debug_handler.lo: ../../include/net-snmp/library/factory.h
-./debug_handler.lo: ../../include/net-snmp/library/snmp_logging.h
 ./debug_handler.lo: ../../include/net-snmp/library/container_binary_array.h
 ./debug_handler.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./debug_handler.lo: ../../include/net-snmp/library/container_iterator.h
@@ -474,8 +494,6 @@
 ./debug_handler.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmp_enum.h
 ./debug_handler.lo: ../../include/net-snmp/library/vacm.h
-./debug_handler.lo: ../../include/net-snmp/output_api.h
-./debug_handler.lo: ../../include/net-snmp/library/snmp_debug.h
 ./debug_handler.lo: ../../include/net-snmp/snmpv3_api.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmpv3.h
 ./debug_handler.lo: ../../include/net-snmp/library/transform_oids.h
@@ -484,6 +502,7 @@
 ./debug_handler.lo: ../../include/net-snmp/library/lcd_time.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./debug_handler.lo: ../../include/net-snmp/library/snmptsm.h
 ./debug_handler.lo: ../../include/net-snmp/library/snmpusm.h
 ./debug_handler.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./debug_handler.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -521,20 +540,21 @@
 ./debug_handler.lo: ../../include/net-snmp/agent/table_container.h
 ./debug_handler.lo: ../../include/net-snmp/agent/table_array.h
 ./debug_handler.lo: ../../include/net-snmp/agent/mfd.h
+./debug_handler.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./instance.lo: ../../include/net-snmp/net-snmp-config.h
-./instance.lo: ../../include/net-snmp/system/linux.h
-./instance.lo: ../../include/net-snmp/system/sysv.h
-./instance.lo: ../../include/net-snmp/system/generic.h
-./instance.lo: ../../include/net-snmp/machine/generic.h
 ./instance.lo: ../../include/net-snmp/net-snmp-includes.h
 ./instance.lo:  ../../include/net-snmp/definitions.h
 ./instance.lo: ../../include/net-snmp/types.h 
+./instance.lo: ../../include/net-snmp/library/oid.h
 ./instance.lo: ../../include/net-snmp/library/types.h
 ./instance.lo: ../../include/net-snmp/library/snmp_api.h
 ./instance.lo: ../../include/net-snmp/varbind_api.h
 ./instance.lo: ../../include/net-snmp/library/snmp_client.h
 ./instance.lo: ../../include/net-snmp/pdu_api.h
 ./instance.lo: ../../include/net-snmp/library/asn1.h
+./instance.lo: ../../include/net-snmp/output_api.h
+./instance.lo: ../../include/net-snmp/library/snmp_debug.h
+./instance.lo: ../../include/net-snmp/library/snmp_logging.h
 ./instance.lo: ../../include/net-snmp/session_api.h
 ./instance.lo: ../../include/net-snmp/library/callback.h
 ./instance.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -542,8 +562,12 @@
 ./instance.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./instance.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./instance.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./instance.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./instance.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./instance.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./instance.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./instance.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./instance.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./instance.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./instance.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./instance.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -565,7 +589,6 @@
 ./instance.lo: ../../include/net-snmp/library/check_varbind.h
 ./instance.lo: ../../include/net-snmp/library/container.h
 ./instance.lo: ../../include/net-snmp/library/factory.h
-./instance.lo: ../../include/net-snmp/library/snmp_logging.h
 ./instance.lo: ../../include/net-snmp/library/container_binary_array.h
 ./instance.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./instance.lo: ../../include/net-snmp/library/container_iterator.h
@@ -578,8 +601,6 @@
 ./instance.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./instance.lo: ../../include/net-snmp/library/snmp_enum.h
 ./instance.lo: ../../include/net-snmp/library/vacm.h
-./instance.lo: ../../include/net-snmp/output_api.h
-./instance.lo: ../../include/net-snmp/library/snmp_debug.h
 ./instance.lo: ../../include/net-snmp/snmpv3_api.h
 ./instance.lo: ../../include/net-snmp/library/snmpv3.h
 ./instance.lo: ../../include/net-snmp/library/transform_oids.h
@@ -588,6 +609,7 @@
 ./instance.lo: ../../include/net-snmp/library/lcd_time.h
 ./instance.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./instance.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./instance.lo: ../../include/net-snmp/library/snmptsm.h
 ./instance.lo: ../../include/net-snmp/library/snmpusm.h
 ./instance.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./instance.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -625,20 +647,21 @@
 ./instance.lo: ../../include/net-snmp/agent/table_container.h
 ./instance.lo: ../../include/net-snmp/agent/table_array.h
 ./instance.lo: ../../include/net-snmp/agent/mfd.h
+./instance.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mode_end_call.lo: ../../include/net-snmp/net-snmp-config.h
-./mode_end_call.lo: ../../include/net-snmp/system/linux.h
-./mode_end_call.lo: ../../include/net-snmp/system/sysv.h
-./mode_end_call.lo: ../../include/net-snmp/system/generic.h
-./mode_end_call.lo: ../../include/net-snmp/machine/generic.h
 ./mode_end_call.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mode_end_call.lo: ../../include/net-snmp/definitions.h
 ./mode_end_call.lo: ../../include/net-snmp/types.h 
+./mode_end_call.lo: ../../include/net-snmp/library/oid.h
 ./mode_end_call.lo: ../../include/net-snmp/library/types.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmp_api.h
 ./mode_end_call.lo: ../../include/net-snmp/varbind_api.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmp_client.h
 ./mode_end_call.lo: ../../include/net-snmp/pdu_api.h
 ./mode_end_call.lo: ../../include/net-snmp/library/asn1.h
+./mode_end_call.lo: ../../include/net-snmp/output_api.h
+./mode_end_call.lo: ../../include/net-snmp/library/snmp_debug.h
+./mode_end_call.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mode_end_call.lo: ../../include/net-snmp/session_api.h
 ./mode_end_call.lo: ../../include/net-snmp/library/callback.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -646,8 +669,12 @@
 ./mode_end_call.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mode_end_call.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mode_end_call.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mode_end_call.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mode_end_call.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mode_end_call.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -669,7 +696,6 @@
 ./mode_end_call.lo: ../../include/net-snmp/library/check_varbind.h
 ./mode_end_call.lo: ../../include/net-snmp/library/container.h
 ./mode_end_call.lo: ../../include/net-snmp/library/factory.h
-./mode_end_call.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mode_end_call.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mode_end_call.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mode_end_call.lo: ../../include/net-snmp/library/container_iterator.h
@@ -682,8 +708,6 @@
 ./mode_end_call.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mode_end_call.lo: ../../include/net-snmp/library/vacm.h
-./mode_end_call.lo: ../../include/net-snmp/output_api.h
-./mode_end_call.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mode_end_call.lo: ../../include/net-snmp/snmpv3_api.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmpv3.h
 ./mode_end_call.lo: ../../include/net-snmp/library/transform_oids.h
@@ -692,6 +716,7 @@
 ./mode_end_call.lo: ../../include/net-snmp/library/lcd_time.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mode_end_call.lo: ../../include/net-snmp/library/snmptsm.h
 ./mode_end_call.lo: ../../include/net-snmp/library/snmpusm.h
 ./mode_end_call.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mode_end_call.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -729,20 +754,21 @@
 ./mode_end_call.lo: ../../include/net-snmp/agent/table_container.h
 ./mode_end_call.lo: ../../include/net-snmp/agent/table_array.h
 ./mode_end_call.lo: ../../include/net-snmp/agent/mfd.h
+./mode_end_call.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./multiplexer.lo: ../../include/net-snmp/net-snmp-config.h
-./multiplexer.lo: ../../include/net-snmp/system/linux.h
-./multiplexer.lo: ../../include/net-snmp/system/sysv.h
-./multiplexer.lo: ../../include/net-snmp/system/generic.h
-./multiplexer.lo: ../../include/net-snmp/machine/generic.h
 ./multiplexer.lo: ../../include/net-snmp/net-snmp-includes.h
 ./multiplexer.lo: ../../include/net-snmp/definitions.h
 ./multiplexer.lo: ../../include/net-snmp/types.h 
+./multiplexer.lo: ../../include/net-snmp/library/oid.h
 ./multiplexer.lo: ../../include/net-snmp/library/types.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmp_api.h
 ./multiplexer.lo: ../../include/net-snmp/varbind_api.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmp_client.h
 ./multiplexer.lo: ../../include/net-snmp/pdu_api.h
 ./multiplexer.lo: ../../include/net-snmp/library/asn1.h
+./multiplexer.lo: ../../include/net-snmp/output_api.h
+./multiplexer.lo: ../../include/net-snmp/library/snmp_debug.h
+./multiplexer.lo: ../../include/net-snmp/library/snmp_logging.h
 ./multiplexer.lo: ../../include/net-snmp/session_api.h
 ./multiplexer.lo: ../../include/net-snmp/library/callback.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -750,8 +776,12 @@
 ./multiplexer.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./multiplexer.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./multiplexer.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./multiplexer.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./multiplexer.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./multiplexer.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -773,7 +803,6 @@
 ./multiplexer.lo: ../../include/net-snmp/library/check_varbind.h
 ./multiplexer.lo: ../../include/net-snmp/library/container.h
 ./multiplexer.lo: ../../include/net-snmp/library/factory.h
-./multiplexer.lo: ../../include/net-snmp/library/snmp_logging.h
 ./multiplexer.lo: ../../include/net-snmp/library/container_binary_array.h
 ./multiplexer.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./multiplexer.lo: ../../include/net-snmp/library/container_iterator.h
@@ -786,8 +815,6 @@
 ./multiplexer.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmp_enum.h
 ./multiplexer.lo: ../../include/net-snmp/library/vacm.h
-./multiplexer.lo: ../../include/net-snmp/output_api.h
-./multiplexer.lo: ../../include/net-snmp/library/snmp_debug.h
 ./multiplexer.lo: ../../include/net-snmp/snmpv3_api.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmpv3.h
 ./multiplexer.lo: ../../include/net-snmp/library/transform_oids.h
@@ -796,6 +823,7 @@
 ./multiplexer.lo: ../../include/net-snmp/library/lcd_time.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./multiplexer.lo: ../../include/net-snmp/library/snmptsm.h
 ./multiplexer.lo: ../../include/net-snmp/library/snmpusm.h
 ./multiplexer.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./multiplexer.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -833,20 +861,21 @@
 ./multiplexer.lo: ../../include/net-snmp/agent/table_container.h
 ./multiplexer.lo: ../../include/net-snmp/agent/table_array.h
 ./multiplexer.lo: ../../include/net-snmp/agent/mfd.h
+./multiplexer.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./null.lo: ../../include/net-snmp/net-snmp-config.h
-./null.lo: ../../include/net-snmp/system/linux.h
-./null.lo: ../../include/net-snmp/system/sysv.h
-./null.lo: ../../include/net-snmp/system/generic.h
-./null.lo: ../../include/net-snmp/machine/generic.h
 ./null.lo: ../../include/net-snmp/net-snmp-includes.h 
 ./null.lo: ../../include/net-snmp/definitions.h
 ./null.lo: ../../include/net-snmp/types.h 
+./null.lo: ../../include/net-snmp/library/oid.h
 ./null.lo: ../../include/net-snmp/library/types.h
 ./null.lo: ../../include/net-snmp/library/snmp_api.h
 ./null.lo: ../../include/net-snmp/varbind_api.h
 ./null.lo: ../../include/net-snmp/library/snmp_client.h
 ./null.lo: ../../include/net-snmp/pdu_api.h
 ./null.lo: ../../include/net-snmp/library/asn1.h
+./null.lo: ../../include/net-snmp/output_api.h
+./null.lo: ../../include/net-snmp/library/snmp_debug.h
+./null.lo: ../../include/net-snmp/library/snmp_logging.h
 ./null.lo: ../../include/net-snmp/session_api.h
 ./null.lo: ../../include/net-snmp/library/callback.h
 ./null.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -854,8 +883,12 @@
 ./null.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./null.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./null.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./null.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./null.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./null.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./null.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./null.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./null.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./null.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./null.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./null.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -877,7 +910,6 @@
 ./null.lo: ../../include/net-snmp/library/check_varbind.h
 ./null.lo: ../../include/net-snmp/library/container.h
 ./null.lo: ../../include/net-snmp/library/factory.h
-./null.lo: ../../include/net-snmp/library/snmp_logging.h
 ./null.lo: ../../include/net-snmp/library/container_binary_array.h
 ./null.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./null.lo: ../../include/net-snmp/library/container_iterator.h
@@ -890,8 +922,6 @@
 ./null.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./null.lo: ../../include/net-snmp/library/snmp_enum.h
 ./null.lo: ../../include/net-snmp/library/vacm.h
-./null.lo: ../../include/net-snmp/output_api.h
-./null.lo: ../../include/net-snmp/library/snmp_debug.h
 ./null.lo: ../../include/net-snmp/snmpv3_api.h
 ./null.lo: ../../include/net-snmp/library/snmpv3.h
 ./null.lo: ../../include/net-snmp/library/transform_oids.h
@@ -900,6 +930,7 @@
 ./null.lo: ../../include/net-snmp/library/lcd_time.h
 ./null.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./null.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./null.lo: ../../include/net-snmp/library/snmptsm.h
 ./null.lo: ../../include/net-snmp/library/snmpusm.h
 ./null.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./null.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -937,20 +968,21 @@
 ./null.lo: ../../include/net-snmp/agent/table_container.h
 ./null.lo: ../../include/net-snmp/agent/table_array.h
 ./null.lo: ../../include/net-snmp/agent/mfd.h
+./null.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./old_api.lo: ../../include/net-snmp/net-snmp-config.h
-./old_api.lo: ../../include/net-snmp/system/linux.h
-./old_api.lo: ../../include/net-snmp/system/sysv.h
-./old_api.lo: ../../include/net-snmp/system/generic.h
-./old_api.lo: ../../include/net-snmp/machine/generic.h
 ./old_api.lo: ../../include/net-snmp/net-snmp-includes.h 
 ./old_api.lo: ../../include/net-snmp/definitions.h
 ./old_api.lo: ../../include/net-snmp/types.h 
+./old_api.lo: ../../include/net-snmp/library/oid.h
 ./old_api.lo: ../../include/net-snmp/library/types.h
 ./old_api.lo: ../../include/net-snmp/library/snmp_api.h
 ./old_api.lo: ../../include/net-snmp/varbind_api.h
 ./old_api.lo: ../../include/net-snmp/library/snmp_client.h
 ./old_api.lo: ../../include/net-snmp/pdu_api.h
 ./old_api.lo: ../../include/net-snmp/library/asn1.h
+./old_api.lo: ../../include/net-snmp/output_api.h
+./old_api.lo: ../../include/net-snmp/library/snmp_debug.h
+./old_api.lo: ../../include/net-snmp/library/snmp_logging.h
 ./old_api.lo: ../../include/net-snmp/session_api.h
 ./old_api.lo: ../../include/net-snmp/library/callback.h
 ./old_api.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -958,8 +990,12 @@
 ./old_api.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./old_api.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./old_api.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./old_api.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./old_api.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./old_api.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./old_api.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./old_api.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./old_api.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./old_api.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./old_api.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./old_api.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -981,7 +1017,6 @@
 ./old_api.lo: ../../include/net-snmp/library/check_varbind.h
 ./old_api.lo: ../../include/net-snmp/library/container.h
 ./old_api.lo: ../../include/net-snmp/library/factory.h
-./old_api.lo: ../../include/net-snmp/library/snmp_logging.h
 ./old_api.lo: ../../include/net-snmp/library/container_binary_array.h
 ./old_api.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./old_api.lo: ../../include/net-snmp/library/container_iterator.h
@@ -994,8 +1029,6 @@
 ./old_api.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./old_api.lo: ../../include/net-snmp/library/snmp_enum.h
 ./old_api.lo: ../../include/net-snmp/library/vacm.h
-./old_api.lo: ../../include/net-snmp/output_api.h
-./old_api.lo: ../../include/net-snmp/library/snmp_debug.h
 ./old_api.lo: ../../include/net-snmp/snmpv3_api.h
 ./old_api.lo: ../../include/net-snmp/library/snmpv3.h
 ./old_api.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1004,6 +1037,7 @@
 ./old_api.lo: ../../include/net-snmp/library/lcd_time.h
 ./old_api.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./old_api.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./old_api.lo: ../../include/net-snmp/library/snmptsm.h
 ./old_api.lo: ../../include/net-snmp/library/snmpusm.h
 ./old_api.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./old_api.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1041,21 +1075,22 @@
 ./old_api.lo: ../../include/net-snmp/agent/table_container.h
 ./old_api.lo: ../../include/net-snmp/agent/table_array.h
 ./old_api.lo: ../../include/net-snmp/agent/mfd.h
+./old_api.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./old_api.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./read_only.lo: ../../include/net-snmp/net-snmp-config.h
-./read_only.lo: ../../include/net-snmp/system/linux.h
-./read_only.lo: ../../include/net-snmp/system/sysv.h
-./read_only.lo: ../../include/net-snmp/system/generic.h
-./read_only.lo: ../../include/net-snmp/machine/generic.h
 ./read_only.lo: ../../include/net-snmp/net-snmp-includes.h
 ./read_only.lo:  ../../include/net-snmp/definitions.h
 ./read_only.lo: ../../include/net-snmp/types.h 
+./read_only.lo: ../../include/net-snmp/library/oid.h
 ./read_only.lo: ../../include/net-snmp/library/types.h
 ./read_only.lo: ../../include/net-snmp/library/snmp_api.h
 ./read_only.lo: ../../include/net-snmp/varbind_api.h
 ./read_only.lo: ../../include/net-snmp/library/snmp_client.h
 ./read_only.lo: ../../include/net-snmp/pdu_api.h
 ./read_only.lo: ../../include/net-snmp/library/asn1.h
+./read_only.lo: ../../include/net-snmp/output_api.h
+./read_only.lo: ../../include/net-snmp/library/snmp_debug.h
+./read_only.lo: ../../include/net-snmp/library/snmp_logging.h
 ./read_only.lo: ../../include/net-snmp/session_api.h
 ./read_only.lo: ../../include/net-snmp/library/callback.h
 ./read_only.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1063,8 +1098,12 @@
 ./read_only.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./read_only.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./read_only.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./read_only.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./read_only.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./read_only.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./read_only.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./read_only.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./read_only.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./read_only.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./read_only.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./read_only.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1086,7 +1125,6 @@
 ./read_only.lo: ../../include/net-snmp/library/check_varbind.h
 ./read_only.lo: ../../include/net-snmp/library/container.h
 ./read_only.lo: ../../include/net-snmp/library/factory.h
-./read_only.lo: ../../include/net-snmp/library/snmp_logging.h
 ./read_only.lo: ../../include/net-snmp/library/container_binary_array.h
 ./read_only.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./read_only.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1099,8 +1137,6 @@
 ./read_only.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./read_only.lo: ../../include/net-snmp/library/snmp_enum.h
 ./read_only.lo: ../../include/net-snmp/library/vacm.h
-./read_only.lo: ../../include/net-snmp/output_api.h
-./read_only.lo: ../../include/net-snmp/library/snmp_debug.h
 ./read_only.lo: ../../include/net-snmp/snmpv3_api.h
 ./read_only.lo: ../../include/net-snmp/library/snmpv3.h
 ./read_only.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1109,6 +1145,7 @@
 ./read_only.lo: ../../include/net-snmp/library/lcd_time.h
 ./read_only.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./read_only.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./read_only.lo: ../../include/net-snmp/library/snmptsm.h
 ./read_only.lo: ../../include/net-snmp/library/snmpusm.h
 ./read_only.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./read_only.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1146,20 +1183,21 @@
 ./read_only.lo: ../../include/net-snmp/agent/table_container.h
 ./read_only.lo: ../../include/net-snmp/agent/table_array.h
 ./read_only.lo: ../../include/net-snmp/agent/mfd.h
+./read_only.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./row_merge.lo: ../../include/net-snmp/net-snmp-config.h
-./row_merge.lo: ../../include/net-snmp/system/linux.h
-./row_merge.lo: ../../include/net-snmp/system/sysv.h
-./row_merge.lo: ../../include/net-snmp/system/generic.h
-./row_merge.lo: ../../include/net-snmp/machine/generic.h
 ./row_merge.lo: ../../include/net-snmp/net-snmp-includes.h
 ./row_merge.lo:  ../../include/net-snmp/definitions.h
 ./row_merge.lo: ../../include/net-snmp/types.h 
+./row_merge.lo: ../../include/net-snmp/library/oid.h
 ./row_merge.lo: ../../include/net-snmp/library/types.h
 ./row_merge.lo: ../../include/net-snmp/library/snmp_api.h
 ./row_merge.lo: ../../include/net-snmp/varbind_api.h
 ./row_merge.lo: ../../include/net-snmp/library/snmp_client.h
 ./row_merge.lo: ../../include/net-snmp/pdu_api.h
 ./row_merge.lo: ../../include/net-snmp/library/asn1.h
+./row_merge.lo: ../../include/net-snmp/output_api.h
+./row_merge.lo: ../../include/net-snmp/library/snmp_debug.h
+./row_merge.lo: ../../include/net-snmp/library/snmp_logging.h
 ./row_merge.lo: ../../include/net-snmp/session_api.h
 ./row_merge.lo: ../../include/net-snmp/library/callback.h
 ./row_merge.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1167,8 +1205,12 @@
 ./row_merge.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./row_merge.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./row_merge.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./row_merge.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./row_merge.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./row_merge.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./row_merge.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./row_merge.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./row_merge.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./row_merge.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./row_merge.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./row_merge.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1190,7 +1232,6 @@
 ./row_merge.lo: ../../include/net-snmp/library/check_varbind.h
 ./row_merge.lo: ../../include/net-snmp/library/container.h
 ./row_merge.lo: ../../include/net-snmp/library/factory.h
-./row_merge.lo: ../../include/net-snmp/library/snmp_logging.h
 ./row_merge.lo: ../../include/net-snmp/library/container_binary_array.h
 ./row_merge.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./row_merge.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1203,8 +1244,6 @@
 ./row_merge.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./row_merge.lo: ../../include/net-snmp/library/snmp_enum.h
 ./row_merge.lo: ../../include/net-snmp/library/vacm.h
-./row_merge.lo: ../../include/net-snmp/output_api.h
-./row_merge.lo: ../../include/net-snmp/library/snmp_debug.h
 ./row_merge.lo: ../../include/net-snmp/snmpv3_api.h
 ./row_merge.lo: ../../include/net-snmp/library/snmpv3.h
 ./row_merge.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1213,6 +1252,7 @@
 ./row_merge.lo: ../../include/net-snmp/library/lcd_time.h
 ./row_merge.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./row_merge.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./row_merge.lo: ../../include/net-snmp/library/snmptsm.h
 ./row_merge.lo: ../../include/net-snmp/library/snmpusm.h
 ./row_merge.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./row_merge.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1250,20 +1290,21 @@
 ./row_merge.lo: ../../include/net-snmp/agent/table_container.h
 ./row_merge.lo: ../../include/net-snmp/agent/table_array.h
 ./row_merge.lo: ../../include/net-snmp/agent/mfd.h
+./row_merge.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./scalar.lo: ../../include/net-snmp/net-snmp-config.h
-./scalar.lo: ../../include/net-snmp/system/linux.h
-./scalar.lo: ../../include/net-snmp/system/sysv.h
-./scalar.lo: ../../include/net-snmp/system/generic.h
-./scalar.lo: ../../include/net-snmp/machine/generic.h
 ./scalar.lo: ../../include/net-snmp/net-snmp-includes.h 
 ./scalar.lo: ../../include/net-snmp/definitions.h
 ./scalar.lo: ../../include/net-snmp/types.h 
+./scalar.lo: ../../include/net-snmp/library/oid.h
 ./scalar.lo: ../../include/net-snmp/library/types.h
 ./scalar.lo: ../../include/net-snmp/library/snmp_api.h
 ./scalar.lo: ../../include/net-snmp/varbind_api.h
 ./scalar.lo: ../../include/net-snmp/library/snmp_client.h
 ./scalar.lo: ../../include/net-snmp/pdu_api.h
 ./scalar.lo: ../../include/net-snmp/library/asn1.h
+./scalar.lo: ../../include/net-snmp/output_api.h
+./scalar.lo: ../../include/net-snmp/library/snmp_debug.h
+./scalar.lo: ../../include/net-snmp/library/snmp_logging.h
 ./scalar.lo: ../../include/net-snmp/session_api.h
 ./scalar.lo: ../../include/net-snmp/library/callback.h
 ./scalar.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1271,8 +1312,12 @@
 ./scalar.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./scalar.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./scalar.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./scalar.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./scalar.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./scalar.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./scalar.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./scalar.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./scalar.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./scalar.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./scalar.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./scalar.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1294,7 +1339,6 @@
 ./scalar.lo: ../../include/net-snmp/library/check_varbind.h
 ./scalar.lo: ../../include/net-snmp/library/container.h
 ./scalar.lo: ../../include/net-snmp/library/factory.h
-./scalar.lo: ../../include/net-snmp/library/snmp_logging.h
 ./scalar.lo: ../../include/net-snmp/library/container_binary_array.h
 ./scalar.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./scalar.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1307,8 +1351,6 @@
 ./scalar.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./scalar.lo: ../../include/net-snmp/library/snmp_enum.h
 ./scalar.lo: ../../include/net-snmp/library/vacm.h
-./scalar.lo: ../../include/net-snmp/output_api.h
-./scalar.lo: ../../include/net-snmp/library/snmp_debug.h
 ./scalar.lo: ../../include/net-snmp/snmpv3_api.h
 ./scalar.lo: ../../include/net-snmp/library/snmpv3.h
 ./scalar.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1317,6 +1359,7 @@
 ./scalar.lo: ../../include/net-snmp/library/lcd_time.h
 ./scalar.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./scalar.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./scalar.lo: ../../include/net-snmp/library/snmptsm.h
 ./scalar.lo: ../../include/net-snmp/library/snmpusm.h
 ./scalar.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./scalar.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1354,20 +1397,21 @@
 ./scalar.lo: ../../include/net-snmp/agent/table_container.h
 ./scalar.lo: ../../include/net-snmp/agent/table_array.h
 ./scalar.lo: ../../include/net-snmp/agent/mfd.h
+./scalar.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./scalar_group.lo: ../../include/net-snmp/net-snmp-config.h
-./scalar_group.lo: ../../include/net-snmp/system/linux.h
-./scalar_group.lo: ../../include/net-snmp/system/sysv.h
-./scalar_group.lo: ../../include/net-snmp/system/generic.h
-./scalar_group.lo: ../../include/net-snmp/machine/generic.h
 ./scalar_group.lo: ../../include/net-snmp/net-snmp-includes.h
 ./scalar_group.lo: ../../include/net-snmp/definitions.h
 ./scalar_group.lo: ../../include/net-snmp/types.h 
+./scalar_group.lo: ../../include/net-snmp/library/oid.h
 ./scalar_group.lo: ../../include/net-snmp/library/types.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmp_api.h
 ./scalar_group.lo: ../../include/net-snmp/varbind_api.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmp_client.h
 ./scalar_group.lo: ../../include/net-snmp/pdu_api.h
 ./scalar_group.lo: ../../include/net-snmp/library/asn1.h
+./scalar_group.lo: ../../include/net-snmp/output_api.h
+./scalar_group.lo: ../../include/net-snmp/library/snmp_debug.h
+./scalar_group.lo: ../../include/net-snmp/library/snmp_logging.h
 ./scalar_group.lo: ../../include/net-snmp/session_api.h
 ./scalar_group.lo: ../../include/net-snmp/library/callback.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1375,8 +1419,12 @@
 ./scalar_group.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./scalar_group.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./scalar_group.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./scalar_group.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./scalar_group.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./scalar_group.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1398,7 +1446,6 @@
 ./scalar_group.lo: ../../include/net-snmp/library/check_varbind.h
 ./scalar_group.lo: ../../include/net-snmp/library/container.h
 ./scalar_group.lo: ../../include/net-snmp/library/factory.h
-./scalar_group.lo: ../../include/net-snmp/library/snmp_logging.h
 ./scalar_group.lo: ../../include/net-snmp/library/container_binary_array.h
 ./scalar_group.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./scalar_group.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1411,8 +1458,6 @@
 ./scalar_group.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmp_enum.h
 ./scalar_group.lo: ../../include/net-snmp/library/vacm.h
-./scalar_group.lo: ../../include/net-snmp/output_api.h
-./scalar_group.lo: ../../include/net-snmp/library/snmp_debug.h
 ./scalar_group.lo: ../../include/net-snmp/snmpv3_api.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmpv3.h
 ./scalar_group.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1421,6 +1466,7 @@
 ./scalar_group.lo: ../../include/net-snmp/library/lcd_time.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./scalar_group.lo: ../../include/net-snmp/library/snmptsm.h
 ./scalar_group.lo: ../../include/net-snmp/library/snmpusm.h
 ./scalar_group.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./scalar_group.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1458,20 +1504,21 @@
 ./scalar_group.lo: ../../include/net-snmp/agent/table_container.h
 ./scalar_group.lo: ../../include/net-snmp/agent/table_array.h
 ./scalar_group.lo: ../../include/net-snmp/agent/mfd.h
+./scalar_group.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./serialize.lo: ../../include/net-snmp/net-snmp-config.h
-./serialize.lo: ../../include/net-snmp/system/linux.h
-./serialize.lo: ../../include/net-snmp/system/sysv.h
-./serialize.lo: ../../include/net-snmp/system/generic.h
-./serialize.lo: ../../include/net-snmp/machine/generic.h
 ./serialize.lo: ../../include/net-snmp/net-snmp-includes.h
 ./serialize.lo:  ../../include/net-snmp/definitions.h
 ./serialize.lo: ../../include/net-snmp/types.h 
+./serialize.lo: ../../include/net-snmp/library/oid.h
 ./serialize.lo: ../../include/net-snmp/library/types.h
 ./serialize.lo: ../../include/net-snmp/library/snmp_api.h
 ./serialize.lo: ../../include/net-snmp/varbind_api.h
 ./serialize.lo: ../../include/net-snmp/library/snmp_client.h
 ./serialize.lo: ../../include/net-snmp/pdu_api.h
 ./serialize.lo: ../../include/net-snmp/library/asn1.h
+./serialize.lo: ../../include/net-snmp/output_api.h
+./serialize.lo: ../../include/net-snmp/library/snmp_debug.h
+./serialize.lo: ../../include/net-snmp/library/snmp_logging.h
 ./serialize.lo: ../../include/net-snmp/session_api.h
 ./serialize.lo: ../../include/net-snmp/library/callback.h
 ./serialize.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1479,8 +1526,12 @@
 ./serialize.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./serialize.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./serialize.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./serialize.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./serialize.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./serialize.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./serialize.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./serialize.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./serialize.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./serialize.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./serialize.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./serialize.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1502,7 +1553,6 @@
 ./serialize.lo: ../../include/net-snmp/library/check_varbind.h
 ./serialize.lo: ../../include/net-snmp/library/container.h
 ./serialize.lo: ../../include/net-snmp/library/factory.h
-./serialize.lo: ../../include/net-snmp/library/snmp_logging.h
 ./serialize.lo: ../../include/net-snmp/library/container_binary_array.h
 ./serialize.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./serialize.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1515,8 +1565,6 @@
 ./serialize.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./serialize.lo: ../../include/net-snmp/library/snmp_enum.h
 ./serialize.lo: ../../include/net-snmp/library/vacm.h
-./serialize.lo: ../../include/net-snmp/output_api.h
-./serialize.lo: ../../include/net-snmp/library/snmp_debug.h
 ./serialize.lo: ../../include/net-snmp/snmpv3_api.h
 ./serialize.lo: ../../include/net-snmp/library/snmpv3.h
 ./serialize.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1525,6 +1573,7 @@
 ./serialize.lo: ../../include/net-snmp/library/lcd_time.h
 ./serialize.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./serialize.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./serialize.lo: ../../include/net-snmp/library/snmptsm.h
 ./serialize.lo: ../../include/net-snmp/library/snmpusm.h
 ./serialize.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./serialize.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1562,20 +1611,128 @@
 ./serialize.lo: ../../include/net-snmp/agent/table_container.h
 ./serialize.lo: ../../include/net-snmp/agent/table_array.h
 ./serialize.lo: ../../include/net-snmp/agent/mfd.h
+./serialize.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./snmp_get_statistic.lo: ../../include/net-snmp/net-snmp-config.h
+./snmp_get_statistic.lo: ../../include/net-snmp/net-snmp-includes.h
+./snmp_get_statistic.lo: ../../include/net-snmp/definitions.h
+./snmp_get_statistic.lo: ../../include/net-snmp/types.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/oid.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/types.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_api.h
+./snmp_get_statistic.lo: ../../include/net-snmp/varbind_api.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_client.h
+./snmp_get_statistic.lo: ../../include/net-snmp/pdu_api.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/asn1.h
+./snmp_get_statistic.lo: ../../include/net-snmp/output_api.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_debug.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_logging.h
+./snmp_get_statistic.lo: ../../include/net-snmp/session_api.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/callback.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_transport.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_service.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpUnixDomain.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpTCPDomain.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpIPXDomain.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/ucd_compat.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/mib.h
+./snmp_get_statistic.lo: ../../include/net-snmp/mib_api.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/parse.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/oid_stash.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_impl.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp-tc.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/getopt.h
+./snmp_get_statistic.lo: ../../include/net-snmp/utilities.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/system.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/tools.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/int64.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/mt_support.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_alarm.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/data_list.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/check_varbind.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/container.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/factory.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/container_binary_array.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/container_list_ssll.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/container_iterator.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/container.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_assert.h
+./snmp_get_statistic.lo: ../../include/net-snmp/version.h
+./snmp_get_statistic.lo: ../../include/net-snmp/config_api.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/read_config.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/default_store.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_parse_args.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_enum.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/vacm.h
+./snmp_get_statistic.lo: ../../include/net-snmp/snmpv3_api.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpv3.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/transform_oids.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/keytools.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/scapi.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/lcd_time.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_secmod.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmptsm.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/snmpusm.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/mib_module_config.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/agent_module_config.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/snmp_agent.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/snmp_vars.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/agent_handler.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/var_struct.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/agent_registry.h
+./snmp_get_statistic.lo: ../../include/net-snmp/library/fd_event_manager.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/ds_agent.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/agent_read_config.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/agent_trap.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/all_helpers.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/instance.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/baby_steps.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/scalar.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/scalar_group.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/watcher.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/multiplexer.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/null.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/debug_handler.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/cache_handler.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/old_api.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/read_only.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/row_merge.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/serialize.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/bulk_to_next.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/mode_end_call.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/table.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/table_data.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/table_dataset.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/table_tdata.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/table_iterator.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/table_container.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/table_array.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/mfd.h
+./snmp_get_statistic.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./stash_cache.lo: ../../include/net-snmp/net-snmp-config.h
-./stash_cache.lo: ../../include/net-snmp/system/linux.h
-./stash_cache.lo: ../../include/net-snmp/system/sysv.h
-./stash_cache.lo: ../../include/net-snmp/system/generic.h
-./stash_cache.lo: ../../include/net-snmp/machine/generic.h
 ./stash_cache.lo: ../../include/net-snmp/net-snmp-includes.h
 ./stash_cache.lo: ../../include/net-snmp/definitions.h
 ./stash_cache.lo: ../../include/net-snmp/types.h 
+./stash_cache.lo: ../../include/net-snmp/library/oid.h
 ./stash_cache.lo: ../../include/net-snmp/library/types.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmp_api.h
 ./stash_cache.lo: ../../include/net-snmp/varbind_api.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmp_client.h
 ./stash_cache.lo: ../../include/net-snmp/pdu_api.h
 ./stash_cache.lo: ../../include/net-snmp/library/asn1.h
+./stash_cache.lo: ../../include/net-snmp/output_api.h
+./stash_cache.lo: ../../include/net-snmp/library/snmp_debug.h
+./stash_cache.lo: ../../include/net-snmp/library/snmp_logging.h
 ./stash_cache.lo: ../../include/net-snmp/session_api.h
 ./stash_cache.lo: ../../include/net-snmp/library/callback.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1583,8 +1740,12 @@
 ./stash_cache.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./stash_cache.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./stash_cache.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./stash_cache.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./stash_cache.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./stash_cache.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1606,7 +1767,6 @@
 ./stash_cache.lo: ../../include/net-snmp/library/check_varbind.h
 ./stash_cache.lo: ../../include/net-snmp/library/container.h
 ./stash_cache.lo: ../../include/net-snmp/library/factory.h
-./stash_cache.lo: ../../include/net-snmp/library/snmp_logging.h
 ./stash_cache.lo: ../../include/net-snmp/library/container_binary_array.h
 ./stash_cache.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./stash_cache.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1619,8 +1779,6 @@
 ./stash_cache.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmp_enum.h
 ./stash_cache.lo: ../../include/net-snmp/library/vacm.h
-./stash_cache.lo: ../../include/net-snmp/output_api.h
-./stash_cache.lo: ../../include/net-snmp/library/snmp_debug.h
 ./stash_cache.lo: ../../include/net-snmp/snmpv3_api.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmpv3.h
 ./stash_cache.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1629,6 +1787,7 @@
 ./stash_cache.lo: ../../include/net-snmp/library/lcd_time.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./stash_cache.lo: ../../include/net-snmp/library/snmptsm.h
 ./stash_cache.lo: ../../include/net-snmp/library/snmpusm.h
 ./stash_cache.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./stash_cache.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1666,22 +1825,23 @@
 ./stash_cache.lo: ../../include/net-snmp/agent/table_container.h
 ./stash_cache.lo: ../../include/net-snmp/agent/table_array.h
 ./stash_cache.lo: ../../include/net-snmp/agent/mfd.h
+./stash_cache.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./stash_cache.lo: ../../include/net-snmp/agent/stash_cache.h
 ./stash_cache.lo: ../../include/net-snmp/agent/stash_to_next.h
 ./stash_to_next.lo: ../../include/net-snmp/net-snmp-config.h
-./stash_to_next.lo: ../../include/net-snmp/system/linux.h
-./stash_to_next.lo: ../../include/net-snmp/system/sysv.h
-./stash_to_next.lo: ../../include/net-snmp/system/generic.h
-./stash_to_next.lo: ../../include/net-snmp/machine/generic.h
 ./stash_to_next.lo: ../../include/net-snmp/net-snmp-includes.h
 ./stash_to_next.lo: ../../include/net-snmp/definitions.h
 ./stash_to_next.lo: ../../include/net-snmp/types.h 
+./stash_to_next.lo: ../../include/net-snmp/library/oid.h
 ./stash_to_next.lo: ../../include/net-snmp/library/types.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmp_api.h
 ./stash_to_next.lo: ../../include/net-snmp/varbind_api.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmp_client.h
 ./stash_to_next.lo: ../../include/net-snmp/pdu_api.h
 ./stash_to_next.lo: ../../include/net-snmp/library/asn1.h
+./stash_to_next.lo: ../../include/net-snmp/output_api.h
+./stash_to_next.lo: ../../include/net-snmp/library/snmp_debug.h
+./stash_to_next.lo: ../../include/net-snmp/library/snmp_logging.h
 ./stash_to_next.lo: ../../include/net-snmp/session_api.h
 ./stash_to_next.lo: ../../include/net-snmp/library/callback.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1689,8 +1849,12 @@
 ./stash_to_next.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./stash_to_next.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./stash_to_next.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./stash_to_next.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./stash_to_next.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./stash_to_next.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1712,7 +1876,6 @@
 ./stash_to_next.lo: ../../include/net-snmp/library/check_varbind.h
 ./stash_to_next.lo: ../../include/net-snmp/library/container.h
 ./stash_to_next.lo: ../../include/net-snmp/library/factory.h
-./stash_to_next.lo: ../../include/net-snmp/library/snmp_logging.h
 ./stash_to_next.lo: ../../include/net-snmp/library/container_binary_array.h
 ./stash_to_next.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./stash_to_next.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1725,8 +1888,6 @@
 ./stash_to_next.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmp_enum.h
 ./stash_to_next.lo: ../../include/net-snmp/library/vacm.h
-./stash_to_next.lo: ../../include/net-snmp/output_api.h
-./stash_to_next.lo: ../../include/net-snmp/library/snmp_debug.h
 ./stash_to_next.lo: ../../include/net-snmp/snmpv3_api.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmpv3.h
 ./stash_to_next.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1735,6 +1896,7 @@
 ./stash_to_next.lo: ../../include/net-snmp/library/lcd_time.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./stash_to_next.lo: ../../include/net-snmp/library/snmptsm.h
 ./stash_to_next.lo: ../../include/net-snmp/library/snmpusm.h
 ./stash_to_next.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./stash_to_next.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1772,22 +1934,23 @@
 ./stash_to_next.lo: ../../include/net-snmp/agent/table_container.h
 ./stash_to_next.lo: ../../include/net-snmp/agent/table_array.h
 ./stash_to_next.lo: ../../include/net-snmp/agent/mfd.h
+./stash_to_next.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./stash_to_next.lo: ../../include/net-snmp/agent/stash_to_next.h
 ./stash_to_next.lo: ../../include/net-snmp/agent/stash_cache.h
 ./table_array.lo: ../../include/net-snmp/net-snmp-config.h
-./table_array.lo: ../../include/net-snmp/system/linux.h
-./table_array.lo: ../../include/net-snmp/system/sysv.h
-./table_array.lo: ../../include/net-snmp/system/generic.h
-./table_array.lo: ../../include/net-snmp/machine/generic.h
 ./table_array.lo: ../../include/net-snmp/net-snmp-includes.h
 ./table_array.lo: ../../include/net-snmp/definitions.h
 ./table_array.lo: ../../include/net-snmp/types.h 
+./table_array.lo: ../../include/net-snmp/library/oid.h
 ./table_array.lo: ../../include/net-snmp/library/types.h
 ./table_array.lo: ../../include/net-snmp/library/snmp_api.h
 ./table_array.lo: ../../include/net-snmp/varbind_api.h
 ./table_array.lo: ../../include/net-snmp/library/snmp_client.h
 ./table_array.lo: ../../include/net-snmp/pdu_api.h
 ./table_array.lo: ../../include/net-snmp/library/asn1.h
+./table_array.lo: ../../include/net-snmp/output_api.h
+./table_array.lo: ../../include/net-snmp/library/snmp_debug.h
+./table_array.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table_array.lo: ../../include/net-snmp/session_api.h
 ./table_array.lo: ../../include/net-snmp/library/callback.h
 ./table_array.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1795,8 +1958,12 @@
 ./table_array.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./table_array.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./table_array.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./table_array.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./table_array.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./table_array.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./table_array.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./table_array.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./table_array.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./table_array.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./table_array.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./table_array.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1818,7 +1985,6 @@
 ./table_array.lo: ../../include/net-snmp/library/check_varbind.h
 ./table_array.lo: ../../include/net-snmp/library/container.h
 ./table_array.lo: ../../include/net-snmp/library/factory.h
-./table_array.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table_array.lo: ../../include/net-snmp/library/container_binary_array.h
 ./table_array.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./table_array.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1831,8 +1997,6 @@
 ./table_array.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./table_array.lo: ../../include/net-snmp/library/snmp_enum.h
 ./table_array.lo: ../../include/net-snmp/library/vacm.h
-./table_array.lo: ../../include/net-snmp/output_api.h
-./table_array.lo: ../../include/net-snmp/library/snmp_debug.h
 ./table_array.lo: ../../include/net-snmp/snmpv3_api.h
 ./table_array.lo: ../../include/net-snmp/library/snmpv3.h
 ./table_array.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1841,6 +2005,7 @@
 ./table_array.lo: ../../include/net-snmp/library/lcd_time.h
 ./table_array.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./table_array.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./table_array.lo: ../../include/net-snmp/library/snmptsm.h
 ./table_array.lo: ../../include/net-snmp/library/snmpusm.h
 ./table_array.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./table_array.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1878,20 +2043,21 @@
 ./table_array.lo: ../../include/net-snmp/agent/table_container.h
 ./table_array.lo: ../../include/net-snmp/agent/table_array.h
 ./table_array.lo: ../../include/net-snmp/agent/mfd.h
+./table_array.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./table.lo: ../../include/net-snmp/net-snmp-config.h
-./table.lo: ../../include/net-snmp/system/linux.h
-./table.lo: ../../include/net-snmp/system/sysv.h
-./table.lo: ../../include/net-snmp/system/generic.h
-./table.lo: ../../include/net-snmp/machine/generic.h
 ./table.lo: ../../include/net-snmp/net-snmp-includes.h 
 ./table.lo: ../../include/net-snmp/definitions.h
 ./table.lo: ../../include/net-snmp/types.h 
+./table.lo: ../../include/net-snmp/library/oid.h
 ./table.lo: ../../include/net-snmp/library/types.h
 ./table.lo: ../../include/net-snmp/library/snmp_api.h
 ./table.lo: ../../include/net-snmp/varbind_api.h
 ./table.lo: ../../include/net-snmp/library/snmp_client.h
 ./table.lo: ../../include/net-snmp/pdu_api.h
 ./table.lo: ../../include/net-snmp/library/asn1.h
+./table.lo: ../../include/net-snmp/output_api.h
+./table.lo: ../../include/net-snmp/library/snmp_debug.h
+./table.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table.lo: ../../include/net-snmp/session_api.h
 ./table.lo: ../../include/net-snmp/library/callback.h
 ./table.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1899,8 +2065,12 @@
 ./table.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./table.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./table.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./table.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./table.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./table.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./table.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./table.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./table.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./table.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./table.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./table.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1922,7 +2092,6 @@
 ./table.lo: ../../include/net-snmp/library/check_varbind.h
 ./table.lo: ../../include/net-snmp/library/container.h
 ./table.lo: ../../include/net-snmp/library/factory.h
-./table.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table.lo: ../../include/net-snmp/library/container_binary_array.h
 ./table.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./table.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1935,8 +2104,6 @@
 ./table.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./table.lo: ../../include/net-snmp/library/snmp_enum.h
 ./table.lo: ../../include/net-snmp/library/vacm.h
-./table.lo: ../../include/net-snmp/output_api.h
-./table.lo: ../../include/net-snmp/library/snmp_debug.h
 ./table.lo: ../../include/net-snmp/snmpv3_api.h
 ./table.lo: ../../include/net-snmp/library/snmpv3.h
 ./table.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1945,6 +2112,7 @@
 ./table.lo: ../../include/net-snmp/library/lcd_time.h
 ./table.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./table.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./table.lo: ../../include/net-snmp/library/snmptsm.h
 ./table.lo: ../../include/net-snmp/library/snmpusm.h
 ./table.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./table.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1982,20 +2150,21 @@
 ./table.lo: ../../include/net-snmp/agent/table_container.h
 ./table.lo: ../../include/net-snmp/agent/table_array.h
 ./table.lo: ../../include/net-snmp/agent/mfd.h
+./table.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./table_container.lo: ../../include/net-snmp/net-snmp-config.h
-./table_container.lo: ../../include/net-snmp/system/linux.h
-./table_container.lo: ../../include/net-snmp/system/sysv.h
-./table_container.lo: ../../include/net-snmp/system/generic.h
-./table_container.lo: ../../include/net-snmp/machine/generic.h
 ./table_container.lo: ../../include/net-snmp/net-snmp-includes.h
 ./table_container.lo: ../../include/net-snmp/definitions.h
 ./table_container.lo: ../../include/net-snmp/types.h 
+./table_container.lo: ../../include/net-snmp/library/oid.h
 ./table_container.lo: ../../include/net-snmp/library/types.h
 ./table_container.lo: ../../include/net-snmp/library/snmp_api.h
 ./table_container.lo: ../../include/net-snmp/varbind_api.h
 ./table_container.lo: ../../include/net-snmp/library/snmp_client.h
 ./table_container.lo: ../../include/net-snmp/pdu_api.h
 ./table_container.lo: ../../include/net-snmp/library/asn1.h
+./table_container.lo: ../../include/net-snmp/output_api.h
+./table_container.lo: ../../include/net-snmp/library/snmp_debug.h
+./table_container.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table_container.lo: ../../include/net-snmp/session_api.h
 ./table_container.lo: ../../include/net-snmp/library/callback.h
 ./table_container.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2003,8 +2172,12 @@
 ./table_container.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./table_container.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./table_container.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./table_container.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./table_container.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./table_container.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./table_container.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./table_container.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./table_container.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./table_container.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./table_container.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./table_container.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2026,7 +2199,6 @@
 ./table_container.lo: ../../include/net-snmp/library/check_varbind.h
 ./table_container.lo: ../../include/net-snmp/library/container.h
 ./table_container.lo: ../../include/net-snmp/library/factory.h
-./table_container.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table_container.lo: ../../include/net-snmp/library/container_binary_array.h
 ./table_container.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./table_container.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2039,8 +2211,6 @@
 ./table_container.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./table_container.lo: ../../include/net-snmp/library/snmp_enum.h
 ./table_container.lo: ../../include/net-snmp/library/vacm.h
-./table_container.lo: ../../include/net-snmp/output_api.h
-./table_container.lo: ../../include/net-snmp/library/snmp_debug.h
 ./table_container.lo: ../../include/net-snmp/snmpv3_api.h
 ./table_container.lo: ../../include/net-snmp/library/snmpv3.h
 ./table_container.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2049,6 +2219,7 @@
 ./table_container.lo: ../../include/net-snmp/library/lcd_time.h
 ./table_container.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./table_container.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./table_container.lo: ../../include/net-snmp/library/snmptsm.h
 ./table_container.lo: ../../include/net-snmp/library/snmpusm.h
 ./table_container.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./table_container.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2086,20 +2257,21 @@
 ./table_container.lo: ../../include/net-snmp/agent/table_container.h
 ./table_container.lo: ../../include/net-snmp/agent/table_array.h
 ./table_container.lo: ../../include/net-snmp/agent/mfd.h
+./table_container.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./table_data.lo: ../../include/net-snmp/net-snmp-config.h
-./table_data.lo: ../../include/net-snmp/system/linux.h
-./table_data.lo: ../../include/net-snmp/system/sysv.h
-./table_data.lo: ../../include/net-snmp/system/generic.h
-./table_data.lo: ../../include/net-snmp/machine/generic.h
 ./table_data.lo: ../../include/net-snmp/net-snmp-includes.h
 ./table_data.lo:  ../../include/net-snmp/definitions.h
 ./table_data.lo: ../../include/net-snmp/types.h 
+./table_data.lo: ../../include/net-snmp/library/oid.h
 ./table_data.lo: ../../include/net-snmp/library/types.h
 ./table_data.lo: ../../include/net-snmp/library/snmp_api.h
 ./table_data.lo: ../../include/net-snmp/varbind_api.h
 ./table_data.lo: ../../include/net-snmp/library/snmp_client.h
 ./table_data.lo: ../../include/net-snmp/pdu_api.h
 ./table_data.lo: ../../include/net-snmp/library/asn1.h
+./table_data.lo: ../../include/net-snmp/output_api.h
+./table_data.lo: ../../include/net-snmp/library/snmp_debug.h
+./table_data.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table_data.lo: ../../include/net-snmp/session_api.h
 ./table_data.lo: ../../include/net-snmp/library/callback.h
 ./table_data.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2107,8 +2279,12 @@
 ./table_data.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./table_data.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./table_data.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./table_data.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./table_data.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./table_data.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./table_data.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./table_data.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./table_data.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./table_data.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./table_data.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./table_data.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2130,7 +2306,6 @@
 ./table_data.lo: ../../include/net-snmp/library/check_varbind.h
 ./table_data.lo: ../../include/net-snmp/library/container.h
 ./table_data.lo: ../../include/net-snmp/library/factory.h
-./table_data.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table_data.lo: ../../include/net-snmp/library/container_binary_array.h
 ./table_data.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./table_data.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2143,8 +2318,6 @@
 ./table_data.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./table_data.lo: ../../include/net-snmp/library/snmp_enum.h
 ./table_data.lo: ../../include/net-snmp/library/vacm.h
-./table_data.lo: ../../include/net-snmp/output_api.h
-./table_data.lo: ../../include/net-snmp/library/snmp_debug.h
 ./table_data.lo: ../../include/net-snmp/snmpv3_api.h
 ./table_data.lo: ../../include/net-snmp/library/snmpv3.h
 ./table_data.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2153,6 +2326,7 @@
 ./table_data.lo: ../../include/net-snmp/library/lcd_time.h
 ./table_data.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./table_data.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./table_data.lo: ../../include/net-snmp/library/snmptsm.h
 ./table_data.lo: ../../include/net-snmp/library/snmpusm.h
 ./table_data.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./table_data.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2190,20 +2364,21 @@
 ./table_data.lo: ../../include/net-snmp/agent/table_container.h
 ./table_data.lo: ../../include/net-snmp/agent/table_array.h
 ./table_data.lo: ../../include/net-snmp/agent/mfd.h
+./table_data.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./table_dataset.lo: ../../include/net-snmp/net-snmp-config.h
-./table_dataset.lo: ../../include/net-snmp/system/linux.h
-./table_dataset.lo: ../../include/net-snmp/system/sysv.h
-./table_dataset.lo: ../../include/net-snmp/system/generic.h
-./table_dataset.lo: ../../include/net-snmp/machine/generic.h
 ./table_dataset.lo: ../../include/net-snmp/net-snmp-includes.h
 ./table_dataset.lo: ../../include/net-snmp/definitions.h
 ./table_dataset.lo: ../../include/net-snmp/types.h 
+./table_dataset.lo: ../../include/net-snmp/library/oid.h
 ./table_dataset.lo: ../../include/net-snmp/library/types.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmp_api.h
 ./table_dataset.lo: ../../include/net-snmp/varbind_api.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmp_client.h
 ./table_dataset.lo: ../../include/net-snmp/pdu_api.h
 ./table_dataset.lo: ../../include/net-snmp/library/asn1.h
+./table_dataset.lo: ../../include/net-snmp/output_api.h
+./table_dataset.lo: ../../include/net-snmp/library/snmp_debug.h
+./table_dataset.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table_dataset.lo: ../../include/net-snmp/session_api.h
 ./table_dataset.lo: ../../include/net-snmp/library/callback.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2211,8 +2386,12 @@
 ./table_dataset.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./table_dataset.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./table_dataset.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./table_dataset.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./table_dataset.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./table_dataset.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2234,7 +2413,6 @@
 ./table_dataset.lo: ../../include/net-snmp/library/check_varbind.h
 ./table_dataset.lo: ../../include/net-snmp/library/container.h
 ./table_dataset.lo: ../../include/net-snmp/library/factory.h
-./table_dataset.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table_dataset.lo: ../../include/net-snmp/library/container_binary_array.h
 ./table_dataset.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./table_dataset.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2247,8 +2425,6 @@
 ./table_dataset.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmp_enum.h
 ./table_dataset.lo: ../../include/net-snmp/library/vacm.h
-./table_dataset.lo: ../../include/net-snmp/output_api.h
-./table_dataset.lo: ../../include/net-snmp/library/snmp_debug.h
 ./table_dataset.lo: ../../include/net-snmp/snmpv3_api.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmpv3.h
 ./table_dataset.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2257,6 +2433,7 @@
 ./table_dataset.lo: ../../include/net-snmp/library/lcd_time.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./table_dataset.lo: ../../include/net-snmp/library/snmptsm.h
 ./table_dataset.lo: ../../include/net-snmp/library/snmpusm.h
 ./table_dataset.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./table_dataset.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2294,20 +2471,21 @@
 ./table_dataset.lo: ../../include/net-snmp/agent/table_container.h
 ./table_dataset.lo: ../../include/net-snmp/agent/table_array.h
 ./table_dataset.lo: ../../include/net-snmp/agent/mfd.h
+./table_dataset.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./table_iterator.lo: ../../include/net-snmp/net-snmp-config.h
-./table_iterator.lo: ../../include/net-snmp/system/linux.h
-./table_iterator.lo: ../../include/net-snmp/system/sysv.h
-./table_iterator.lo: ../../include/net-snmp/system/generic.h
-./table_iterator.lo: ../../include/net-snmp/machine/generic.h
 ./table_iterator.lo: ../../include/net-snmp/net-snmp-includes.h
 ./table_iterator.lo: ../../include/net-snmp/definitions.h
 ./table_iterator.lo: ../../include/net-snmp/types.h 
+./table_iterator.lo: ../../include/net-snmp/library/oid.h
 ./table_iterator.lo: ../../include/net-snmp/library/types.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmp_api.h
 ./table_iterator.lo: ../../include/net-snmp/varbind_api.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmp_client.h
 ./table_iterator.lo: ../../include/net-snmp/pdu_api.h
 ./table_iterator.lo: ../../include/net-snmp/library/asn1.h
+./table_iterator.lo: ../../include/net-snmp/output_api.h
+./table_iterator.lo: ../../include/net-snmp/library/snmp_debug.h
+./table_iterator.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table_iterator.lo: ../../include/net-snmp/session_api.h
 ./table_iterator.lo: ../../include/net-snmp/library/callback.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2315,8 +2493,12 @@
 ./table_iterator.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./table_iterator.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./table_iterator.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./table_iterator.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./table_iterator.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./table_iterator.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2338,7 +2520,6 @@
 ./table_iterator.lo: ../../include/net-snmp/library/check_varbind.h
 ./table_iterator.lo: ../../include/net-snmp/library/container.h
 ./table_iterator.lo: ../../include/net-snmp/library/factory.h
-./table_iterator.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table_iterator.lo: ../../include/net-snmp/library/container_binary_array.h
 ./table_iterator.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./table_iterator.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2351,8 +2532,6 @@
 ./table_iterator.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmp_enum.h
 ./table_iterator.lo: ../../include/net-snmp/library/vacm.h
-./table_iterator.lo: ../../include/net-snmp/output_api.h
-./table_iterator.lo: ../../include/net-snmp/library/snmp_debug.h
 ./table_iterator.lo: ../../include/net-snmp/snmpv3_api.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmpv3.h
 ./table_iterator.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2361,6 +2540,7 @@
 ./table_iterator.lo: ../../include/net-snmp/library/lcd_time.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./table_iterator.lo: ../../include/net-snmp/library/snmptsm.h
 ./table_iterator.lo: ../../include/net-snmp/library/snmpusm.h
 ./table_iterator.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./table_iterator.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2398,21 +2578,22 @@
 ./table_iterator.lo: ../../include/net-snmp/agent/table_container.h
 ./table_iterator.lo: ../../include/net-snmp/agent/table_array.h
 ./table_iterator.lo: ../../include/net-snmp/agent/mfd.h
+./table_iterator.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./table_iterator.lo: ../../include/net-snmp/agent/stash_cache.h
 ./table_row.lo: ../../include/net-snmp/net-snmp-config.h
-./table_row.lo: ../../include/net-snmp/system/linux.h
-./table_row.lo: ../../include/net-snmp/system/sysv.h
-./table_row.lo: ../../include/net-snmp/system/generic.h
-./table_row.lo: ../../include/net-snmp/machine/generic.h
 ./table_row.lo: ../../include/net-snmp/net-snmp-includes.h
 ./table_row.lo:  ../../include/net-snmp/definitions.h
 ./table_row.lo: ../../include/net-snmp/types.h 
+./table_row.lo: ../../include/net-snmp/library/oid.h
 ./table_row.lo: ../../include/net-snmp/library/types.h
 ./table_row.lo: ../../include/net-snmp/library/snmp_api.h
 ./table_row.lo: ../../include/net-snmp/varbind_api.h
 ./table_row.lo: ../../include/net-snmp/library/snmp_client.h
 ./table_row.lo: ../../include/net-snmp/pdu_api.h
 ./table_row.lo: ../../include/net-snmp/library/asn1.h
+./table_row.lo: ../../include/net-snmp/output_api.h
+./table_row.lo: ../../include/net-snmp/library/snmp_debug.h
+./table_row.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table_row.lo: ../../include/net-snmp/session_api.h
 ./table_row.lo: ../../include/net-snmp/library/callback.h
 ./table_row.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2420,8 +2601,12 @@
 ./table_row.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./table_row.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./table_row.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./table_row.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./table_row.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./table_row.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./table_row.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./table_row.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./table_row.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./table_row.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./table_row.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./table_row.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2443,7 +2628,6 @@
 ./table_row.lo: ../../include/net-snmp/library/check_varbind.h
 ./table_row.lo: ../../include/net-snmp/library/container.h
 ./table_row.lo: ../../include/net-snmp/library/factory.h
-./table_row.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table_row.lo: ../../include/net-snmp/library/container_binary_array.h
 ./table_row.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./table_row.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2456,8 +2640,6 @@
 ./table_row.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./table_row.lo: ../../include/net-snmp/library/snmp_enum.h
 ./table_row.lo: ../../include/net-snmp/library/vacm.h
-./table_row.lo: ../../include/net-snmp/output_api.h
-./table_row.lo: ../../include/net-snmp/library/snmp_debug.h
 ./table_row.lo: ../../include/net-snmp/snmpv3_api.h
 ./table_row.lo: ../../include/net-snmp/library/snmpv3.h
 ./table_row.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2466,6 +2648,7 @@
 ./table_row.lo: ../../include/net-snmp/library/lcd_time.h
 ./table_row.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./table_row.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./table_row.lo: ../../include/net-snmp/library/snmptsm.h
 ./table_row.lo: ../../include/net-snmp/library/snmpusm.h
 ./table_row.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./table_row.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2503,20 +2686,21 @@
 ./table_row.lo: ../../include/net-snmp/agent/table_container.h
 ./table_row.lo: ../../include/net-snmp/agent/table_array.h
 ./table_row.lo: ../../include/net-snmp/agent/mfd.h
+./table_row.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./table_tdata.lo: ../../include/net-snmp/net-snmp-config.h
-./table_tdata.lo: ../../include/net-snmp/system/linux.h
-./table_tdata.lo: ../../include/net-snmp/system/sysv.h
-./table_tdata.lo: ../../include/net-snmp/system/generic.h
-./table_tdata.lo: ../../include/net-snmp/machine/generic.h
 ./table_tdata.lo: ../../include/net-snmp/net-snmp-includes.h
 ./table_tdata.lo: ../../include/net-snmp/definitions.h
 ./table_tdata.lo: ../../include/net-snmp/types.h 
+./table_tdata.lo: ../../include/net-snmp/library/oid.h
 ./table_tdata.lo: ../../include/net-snmp/library/types.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmp_api.h
 ./table_tdata.lo: ../../include/net-snmp/varbind_api.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmp_client.h
 ./table_tdata.lo: ../../include/net-snmp/pdu_api.h
 ./table_tdata.lo: ../../include/net-snmp/library/asn1.h
+./table_tdata.lo: ../../include/net-snmp/output_api.h
+./table_tdata.lo: ../../include/net-snmp/library/snmp_debug.h
+./table_tdata.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table_tdata.lo: ../../include/net-snmp/session_api.h
 ./table_tdata.lo: ../../include/net-snmp/library/callback.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2524,8 +2708,12 @@
 ./table_tdata.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./table_tdata.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./table_tdata.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./table_tdata.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./table_tdata.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./table_tdata.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2547,7 +2735,6 @@
 ./table_tdata.lo: ../../include/net-snmp/library/check_varbind.h
 ./table_tdata.lo: ../../include/net-snmp/library/container.h
 ./table_tdata.lo: ../../include/net-snmp/library/factory.h
-./table_tdata.lo: ../../include/net-snmp/library/snmp_logging.h
 ./table_tdata.lo: ../../include/net-snmp/library/container_binary_array.h
 ./table_tdata.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./table_tdata.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2560,8 +2747,6 @@
 ./table_tdata.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmp_enum.h
 ./table_tdata.lo: ../../include/net-snmp/library/vacm.h
-./table_tdata.lo: ../../include/net-snmp/output_api.h
-./table_tdata.lo: ../../include/net-snmp/library/snmp_debug.h
 ./table_tdata.lo: ../../include/net-snmp/snmpv3_api.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmpv3.h
 ./table_tdata.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2570,6 +2755,7 @@
 ./table_tdata.lo: ../../include/net-snmp/library/lcd_time.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./table_tdata.lo: ../../include/net-snmp/library/snmptsm.h
 ./table_tdata.lo: ../../include/net-snmp/library/snmpusm.h
 ./table_tdata.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./table_tdata.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2607,20 +2793,21 @@
 ./table_tdata.lo: ../../include/net-snmp/agent/table_container.h
 ./table_tdata.lo: ../../include/net-snmp/agent/table_array.h
 ./table_tdata.lo: ../../include/net-snmp/agent/mfd.h
+./table_tdata.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./watcher.lo: ../../include/net-snmp/net-snmp-config.h
-./watcher.lo: ../../include/net-snmp/system/linux.h
-./watcher.lo: ../../include/net-snmp/system/sysv.h
-./watcher.lo: ../../include/net-snmp/system/generic.h
-./watcher.lo: ../../include/net-snmp/machine/generic.h
 ./watcher.lo: ../../include/net-snmp/net-snmp-includes.h 
 ./watcher.lo: ../../include/net-snmp/definitions.h
 ./watcher.lo: ../../include/net-snmp/types.h 
+./watcher.lo: ../../include/net-snmp/library/oid.h
 ./watcher.lo: ../../include/net-snmp/library/types.h
 ./watcher.lo: ../../include/net-snmp/library/snmp_api.h
 ./watcher.lo: ../../include/net-snmp/varbind_api.h
 ./watcher.lo: ../../include/net-snmp/library/snmp_client.h
 ./watcher.lo: ../../include/net-snmp/pdu_api.h
 ./watcher.lo: ../../include/net-snmp/library/asn1.h
+./watcher.lo: ../../include/net-snmp/output_api.h
+./watcher.lo: ../../include/net-snmp/library/snmp_debug.h
+./watcher.lo: ../../include/net-snmp/library/snmp_logging.h
 ./watcher.lo: ../../include/net-snmp/session_api.h
 ./watcher.lo: ../../include/net-snmp/library/callback.h
 ./watcher.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2628,8 +2815,12 @@
 ./watcher.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./watcher.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./watcher.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./watcher.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./watcher.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./watcher.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./watcher.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./watcher.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./watcher.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./watcher.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./watcher.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./watcher.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2651,7 +2842,6 @@
 ./watcher.lo: ../../include/net-snmp/library/check_varbind.h
 ./watcher.lo: ../../include/net-snmp/library/container.h
 ./watcher.lo: ../../include/net-snmp/library/factory.h
-./watcher.lo: ../../include/net-snmp/library/snmp_logging.h
 ./watcher.lo: ../../include/net-snmp/library/container_binary_array.h
 ./watcher.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./watcher.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2664,8 +2854,6 @@
 ./watcher.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./watcher.lo: ../../include/net-snmp/library/snmp_enum.h
 ./watcher.lo: ../../include/net-snmp/library/vacm.h
-./watcher.lo: ../../include/net-snmp/output_api.h
-./watcher.lo: ../../include/net-snmp/library/snmp_debug.h
 ./watcher.lo: ../../include/net-snmp/snmpv3_api.h
 ./watcher.lo: ../../include/net-snmp/library/snmpv3.h
 ./watcher.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2674,6 +2862,7 @@
 ./watcher.lo: ../../include/net-snmp/library/lcd_time.h
 ./watcher.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./watcher.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./watcher.lo: ../../include/net-snmp/library/snmptsm.h
 ./watcher.lo: ../../include/net-snmp/library/snmpusm.h
 ./watcher.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./watcher.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2711,3 +2900,4 @@
 ./watcher.lo: ../../include/net-snmp/agent/table_container.h
 ./watcher.lo: ../../include/net-snmp/agent/table_array.h
 ./watcher.lo: ../../include/net-snmp/agent/mfd.h
+./watcher.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
diff --git a/agent/helpers/Makefile.in b/agent/helpers/Makefile.in
index c6b732f..5178b79 100644
--- a/agent/helpers/Makefile.in
+++ b/agent/helpers/Makefile.in
@@ -1,3 +1,7 @@
+#
+# Makefile for libnetsnmphelpers
+#
+
 top_builddir=../..
 
 # use GNU vpath, if available, to only set a path for source and headers
@@ -14,131 +18,21 @@
 
 INSTALLLIBS=libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION)
 INCLUDESUBDIR=agent
-HEADERS=all_helpers.h \
-	baby_steps.h \
-	bulk_to_next.h \
-	cache_handler.h \
-        debug_handler.h \
-	instance.h \
-	mode_end_call.h \
-        multiplexer.h \
-        null.h \
-        old_api.h \
-        read_only.h \
-        row_merge.h \
-	scalar.h \
-	scalar_group.h \
-        serialize.h \
-	stash_cache.h \
-	stash_to_next.h \
-	table_array.h \
-	table_container.h \
-        table.h \
-        table_data.h \
-        table_dataset.h \
-        table_tdata.h \
-        table_iterator.h \
-	watcher.h
-
-# No header 'table_row.h'
-
-HEADERSONLY=mfd.h set_helper.h
-INCLUDESUBDIRHEADERS=$(HEADERS) $(HEADERSONLY)
 
 #
 # Build info
 #
-NETSNMPLIB      = ../../snmplib/libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION)
 HELPERLIB       = libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION)
-AGENTLIB        = ../libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION)
-MIBLIB          = ../libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION)
 # -I. -I.. -I../..
 CPPFLAGS= $(TOP_INCLUDES) -I. $(AGENT_INCLUDES) $(MIBGROUP_INCLUDES) \
 	$(SNMPLIB_INCLUDES) @CPPFLAGS@
 
-SRCS =  all_helpers.c \
-	baby_steps.c \
-	bulk_to_next.c \
-	cache_handler.c \
-	debug_handler.c \
-	instance.c \
-	mode_end_call.c \
-	multiplexer.c \
-	null.c \
-	old_api.c \
-	read_only.c \
-	row_merge.c \
-	scalar.c \
-	scalar_group.c \
-	serialize.c \
-	stash_cache.c \
-	stash_to_next.c \
-	table.c \
-	table_array.c \
-	table_container.c \
-	table_data.c \
-	table_dataset.c \
-	table_iterator.c \
-	table_row.c \
-	table_tdata.c \
-	watcher.c
+OBJS = dummy.o
 
-OBJS =  all_helpers.o \
-	baby_steps.o \
-	bulk_to_next.o \
-	cache_handler.o \
-	debug_handler.o \
-	instance.o \
-	mode_end_call.o \
-	multiplexer.o \
-	null.o \
-	old_api.o \
-	read_only.o \
-	row_merge.o \
-	scalar.o \
-	scalar_group.o \
-	serialize.o \
-	stash_cache.o \
-	stash_to_next.o \
-	table.o \
-	table_array.o \
-	table_container.o \
-	table_data.o \
-	table_dataset.o \
-	table_iterator.o \
-	table_row.o \
-	table_tdata.o \
-	watcher.o
-
-LOBJS = all_helpers.lo \
-	baby_steps.lo \
-	bulk_to_next.lo \
-	cache_handler.lo \
-	debug_handler.lo \
-	instance.lo \
-	mode_end_call.lo \
-	multiplexer.lo \
-	null.lo \
-	old_api.lo \
-	read_only.lo \
-	row_merge.lo \
-	scalar.lo \
-	scalar_group.lo \
-	serialize.lo \
-	stash_cache.lo \
-	stash_to_next.lo \
-	table.lo \
-	table_array.lo \
-	table_container.lo \
-	table_data.lo \
-	table_dataset.lo \
-	table_iterator.lo \
-	table_row.lo \
-	table_tdata.lo \
-	watcher.lo
+LOBJS = dummy.lo
 
 all: standardall
 
 libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION):    $(LOBJS)
-	$(LIB_LD_CMD) $@ $(LOBJS) $(AGENTLIB) $(NETSNMPLIB) $(LDFLAGS) $(LIB_LD_LIBS)
+	$(LIB_LD_CMD) $@ $(LOBJS) @LD_NO_UNDEFINED@ $(LDFLAGS) $(LIB_LD_LIBS)
 	$(RANLIB) $@
diff --git a/agent/helpers/baby_steps.c b/agent/helpers/baby_steps.c
index 64bba89..8515dea 100644
--- a/agent/helpers/baby_steps.c
+++ b/agent/helpers/baby_steps.c
@@ -99,7 +99,7 @@
     DEBUGMSGTL(("baby_steps", "Got request, mode %s\n",
                 se_find_label_in_slist("agent_mode",reqinfo->mode)));
 
-    bs_modes = handler->myvoid;
+    bs_modes = (netsnmp_baby_steps_modes*)handler->myvoid;
     netsnmp_assert(NULL != bs_modes);
 
     switch (reqinfo->mode) {
diff --git a/agent/helpers/cache_handler.c b/agent/helpers/cache_handler.c
index bfd6e0a..6bb32a0 100644
--- a/agent/helpers/cache_handler.c
+++ b/agent/helpers/cache_handler.c
@@ -10,17 +10,17 @@
  */
 #include <net-snmp/net-snmp-config.h>
 
-#include <net-snmp/net-snmp-includes.h>
-#include <net-snmp/agent/net-snmp-agent-includes.h>
-
-#include <net-snmp/agent/cache_handler.h>
-
 #if HAVE_STRING_H
 #include <string.h>
 #else
 #include <strings.h>
 #endif
 
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+
+#include <net-snmp/agent/cache_handler.h>
+
 static netsnmp_cache  *cache_head = NULL;
 static int             cache_outstanding_valid = 0;
 static int             _cache_load( netsnmp_cache *cache );
@@ -113,6 +113,9 @@
  *  @{
  */
 
+static void
+_cache_free( netsnmp_cache *cache );
+
 /** get cache head
  * @internal
  * unadvertised function to get cache head. You really should not
@@ -209,6 +212,12 @@
         }
     }
 
+    if(0 != cache->timer_id)
+        netsnmp_cache_timer_stop(cache);
+
+    if (cache->valid)
+        _cache_free(cache);
+
     if (cache->rootoid)
         free(cache->rootoid);
 
@@ -217,6 +226,36 @@
     return SNMPERR_SUCCESS;
 }
 
+/** removes a cache
+ */
+int
+netsnmp_cache_remove(netsnmp_cache *cache)
+{
+    netsnmp_cache  *cur,*prev;
+
+    if (!cache || !cache_head)
+        return -1;
+
+    if (cache == cache_head) {
+        cache_head = cache_head->next;
+        if (cache_head)
+            cache_head->prev = NULL;
+        return 0;
+    }
+
+    prev = cache_head;
+    cur = cache_head->next;
+    for (; cur; prev = cur, cur = cur->next) {
+        if (cache == cur) {
+            prev->next = cur->next;
+            if (cur->next)
+                cur->next->prev = cur->prev;
+            return 0;
+        }
+    }
+    return -1;
+}
+
 /** callback function to call cache load function */
 static void
 _timer_reload(unsigned int regNo, void *clientargs)
@@ -365,7 +404,7 @@
 NETSNMP_STATIC_INLINE char *
 _build_cache_name(const char *name)
 {
-    char *dup = malloc(strlen(name) + strlen(CACHE_NAME) + 2);
+    char *dup = (char*)malloc(strlen(name) + strlen(CACHE_NAME) + 2);
     if (NULL == dup)
         return NULL;
     sprintf(dup, "%s:%s", CACHE_NAME, name);
@@ -396,7 +435,7 @@
 {
     netsnmp_cache  *result;
     char *cache_name = _build_cache_name(name);
-    result = netsnmp_agent_get_list_data(reqinfo, cache_name);
+    result = (netsnmp_cache*)netsnmp_agent_get_list_data(reqinfo, cache_name);
     SNMP_FREE(cache_name);
     return result;
 }
@@ -487,7 +526,7 @@
                    "cache not found, disabled or had no load method\n"));
         return SNMP_ERR_NOERROR;
     }
-    snprintf(addrstr,sizeof(addrstr), "%p", cache);
+    snprintf(addrstr, sizeof(addrstr), "%p", cache);
     DEBUGMSGTL(("helper:cache_handler", "using cache %s: ", addrstr));
     DEBUGMSGOID(("helper:cache_handler", cache->rootoid, cache->rootoid_len));
     DEBUGMSG(("helper:cache_handler", "\n"));
diff --git a/agent/helpers/debug_handler.c b/agent/helpers/debug_handler.c
index 832ad2d..e4a8438 100644
--- a/agent/helpers/debug_handler.c
+++ b/agent/helpers/debug_handler.c
@@ -46,8 +46,14 @@
     return netsnmp_create_handler("debug", netsnmp_debug_helper);
 }
 
+#ifdef NETSNMP_NO_DEBUGGING
+
+#define debug_print_requests(x)
+
+#else /* NETSNMP_NO_DEBUGGING */
+
 /** @internal debug print variables in a chain */
-void
+static void
 debug_print_requests(netsnmp_request_info *requests)
 {
     netsnmp_request_info *request;
@@ -75,6 +81,7 @@
     }
 }
 
+#endif /* NETSNMP_NO_DEBUGGING */
 
 /** @internal Implements the debug handler */
 int
@@ -83,60 +90,67 @@
                      netsnmp_agent_request_info *reqinfo,
                      netsnmp_request_info *requests)
 {
+    int ret;
 
-    netsnmp_mib_handler *hptr;
-    int             i, ret, count;
-    char           *cp;
+    DEBUGIF("helper:debug") {
+        netsnmp_mib_handler *hptr;
+        char                *cp;
+        int                  i, count;
 
-    DEBUGMSGTL(("helper:debug", "Entering Debugging Helper:\n"));
-    DEBUGMSGTL(("helper:debug", "  Handler Registration Info:\n"));
-    DEBUGMSGTL(("helper:debug", "    Name:        %s\n",
-                reginfo->handlerName));
-    DEBUGMSGTL(("helper:debug", "    Context:     %s\n",
-                SNMP_STRORNULL(reginfo->contextName)));
-    DEBUGMSGTL(("helper:debug", "    Base OID:    "));
-    DEBUGMSGOID(("helper:debug", reginfo->rootoid, reginfo->rootoid_len));
-    DEBUGMSG(("helper:debug", "\n"));
+        DEBUGMSGTL(("helper:debug", "Entering Debugging Helper:\n"));
+        DEBUGMSGTL(("helper:debug", "  Handler Registration Info:\n"));
+        DEBUGMSGTL(("helper:debug", "    Name:        %s\n",
+                    reginfo->handlerName));
+        DEBUGMSGTL(("helper:debug", "    Context:     %s\n",
+                    SNMP_STRORNULL(reginfo->contextName)));
+        DEBUGMSGTL(("helper:debug", "    Base OID:    "));
+        DEBUGMSGOID(("helper:debug", reginfo->rootoid, reginfo->rootoid_len));
+        DEBUGMSG(("helper:debug", "\n"));
 
-    DEBUGMSGTL(("helper:debug", "    Modes:       0x%x = ",
-                reginfo->modes));
-    for (count = 0, i = reginfo->modes; i; i = i >> 1, count++) {
-        if (i & 0x01) {
-            cp = se_find_label_in_slist("handler_can_mode",
-                                             0x01 << count);
-            DEBUGMSG(("helper:debug", "%s | ", SNMP_STRORNULL(cp)));
+        DEBUGMSGTL(("helper:debug", "    Modes:       0x%x = ",
+                    reginfo->modes));
+        for (count = 0, i = reginfo->modes; i; i = i >> 1, count++) {
+            if (i & 0x01) {
+                cp = se_find_label_in_slist("handler_can_mode",
+                                            0x01 << count);
+                DEBUGMSG(("helper:debug", "%s | ", SNMP_STRORNULL(cp)));
+            }
         }
+        DEBUGMSG(("helper:debug", "\n"));
+
+        DEBUGMSGTL(("helper:debug", "    Priority:    %d\n",
+                    reginfo->priority));
+
+        DEBUGMSGTL(("helper:debug", "  Handler Calling Chain:\n"));
+        DEBUGMSGTL(("helper:debug", "   "));
+        for (hptr = reginfo->handler; hptr; hptr = hptr->next) {
+            DEBUGMSG(("helper:debug", " -> %s", hptr->handler_name));
+            if (hptr->myvoid)
+                DEBUGMSG(("helper:debug", " [myvoid = %p]", hptr->myvoid));
+        }
+        DEBUGMSG(("helper:debug", "\n"));
+
+        DEBUGMSGTL(("helper:debug", "  Request information:\n"));
+        DEBUGMSGTL(("helper:debug", "    Mode:        %s (%d = 0x%x)\n",
+                    se_find_label_in_slist("agent_mode", reqinfo->mode),
+                    reqinfo->mode, reqinfo->mode));
+        DEBUGMSGTL(("helper:debug", "    Request Variables:\n"));
+        debug_print_requests(requests);
+
+        DEBUGMSGTL(("helper:debug", "  --- calling next handler --- \n"));
     }
-    DEBUGMSG(("helper:debug", "\n"));
 
-    DEBUGMSGTL(("helper:debug", "    Priority:    %d\n",
-                reginfo->priority));
-
-    DEBUGMSGTL(("helper:debug", "  Handler Calling Chain:\n"));
-    DEBUGMSGTL(("helper:debug", "   "));
-    for (hptr = reginfo->handler; hptr; hptr = hptr->next) {
-        DEBUGMSG(("helper:debug", " -> %s", hptr->handler_name));
-        if (hptr->myvoid)
-            DEBUGMSG(("helper:debug", " [myvoid = %p]", hptr->myvoid));
-    }
-    DEBUGMSG(("helper:debug", "\n"));
-
-    DEBUGMSGTL(("helper:debug", "  Request information:\n"));
-    DEBUGMSGTL(("helper:debug", "    Mode:        %s (%d = 0x%x)\n",
-                se_find_label_in_slist("agent_mode", reqinfo->mode),
-                reqinfo->mode, reqinfo->mode));
-    DEBUGMSGTL(("helper:debug", "    Request Variables:\n"));
-    debug_print_requests(requests);
-
-    DEBUGMSGTL(("helper:debug", "  --- calling next handler --- \n"));
     ret = netsnmp_call_next_handler(handler, reginfo, reqinfo, requests);
 
-    DEBUGMSGTL(("helper:debug", "  Results:\n"));
-    DEBUGMSGTL(("helper:debug", "    Returned code: %d\n", ret));
-    DEBUGMSGTL(("helper:debug", "    Returned Variables:\n"));
-    debug_print_requests(requests);
+    DEBUGIF("helper:debug") {
+        DEBUGMSGTL(("helper:debug", "  Results:\n"));
+        DEBUGMSGTL(("helper:debug", "    Returned code: %d\n", ret));
+        DEBUGMSGTL(("helper:debug", "    Returned Variables:\n"));
+        debug_print_requests(requests);
 
-    DEBUGMSGTL(("helper:debug", "Exiting Debugging Helper:\n"));
+        DEBUGMSGTL(("helper:debug", "Exiting Debugging Helper:\n"));
+    }
+
     return ret;
 }
 
@@ -150,4 +164,3 @@
     netsnmp_register_handler_by_name("debug", netsnmp_get_debug_handler());
 }
 /**  @} */
-
diff --git a/agent/helpers/dummy.c b/agent/helpers/dummy.c
new file mode 100644
index 0000000..6979ae4
--- /dev/null
+++ b/agent/helpers/dummy.c
@@ -0,0 +1 @@
+char const netsnmp_helpers_dummy_text[] = "dummy symbol to make sure that linking netsnmphelpers does not fail on systems that do not support empty libraries.";
diff --git a/agent/helpers/instance.c b/agent/helpers/instance.c
index 5bb0b9c..658a96a 100644
--- a/agent/helpers/instance.c
+++ b/agent/helpers/instance.c
@@ -22,13 +22,14 @@
 #include <strings.h>
 #endif
 
+#include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/serialize.h>
 #include <net-snmp/agent/read_only.h>
 
 typedef struct netsnmp_num_file_instance_s {
     char *file_name;
     FILE *filep;
-    int   type;
+    u_char type;
     int   flags;
 } netsnmp_num_file_instance;
 
@@ -483,6 +484,15 @@
                    (void *)it, sizeof(int), ASN_INTEGER, WATCHER_FIXED_SIZE));
 }
 
+#ifdef HAVE_DMALLOC_H
+static void free_wrapper(void * p)
+{
+    free(p);
+}
+#else
+#define free_wrapper free
+#endif
+
 #ifndef NETSNMP_NO_DEPRECATED_FUNCTIONS
 
 /**
@@ -532,7 +542,7 @@
         netsnmp_request_add_list_data(requests,
                                       netsnmp_create_data_list
                                       (INSTANCE_HANDLER_NAME, it_save,
-                                       free));
+                                       &free_wrapper));
         break;
 
     case MODE_SET_ACTION:
@@ -651,7 +661,7 @@
         netsnmp_request_add_list_data(requests,
                                       netsnmp_create_data_list
                                       (INSTANCE_HANDLER_NAME, it_save,
-                                       free));
+                                       &free_wrapper));
         break;
 
     case MODE_SET_ACTION:
@@ -734,7 +744,7 @@
         netsnmp_request_add_list_data(requests,
                                       netsnmp_create_data_list
                                       (INSTANCE_HANDLER_NAME, it_save,
-                                       free));
+                                       &free_wrapper));
         break;
 
     case MODE_SET_ACTION:
@@ -850,7 +860,7 @@
         netsnmp_request_add_list_data(requests,
                                       netsnmp_create_data_list
                                       (INSTANCE_HANDLER_NAME, it_save,
-                                       free));
+                                       &free_wrapper));
         break;
 
     case MODE_SET_ACTION:
@@ -950,7 +960,7 @@
         netsnmp_request_add_list_data(requests,
                                       netsnmp_create_data_list
                                       (INSTANCE_HANDLER_NAME, it_save,
-                                       free));
+                                       &free_wrapper));
         break;
 
     case MODE_SET_ACTION:
diff --git a/agent/helpers/mode_end_call.c b/agent/helpers/mode_end_call.c
index 912f58c..d7dd302 100644
--- a/agent/helpers/mode_end_call.c
+++ b/agent/helpers/mode_end_call.c
@@ -101,7 +101,7 @@
                                     requests);
 
     /* then call the callback handlers */
-    for(ptr = handler->myvoid; ptr; ptr = ptr->next) {
+    for (ptr = (netsnmp_mode_handler_list*)handler->myvoid; ptr; ptr = ptr->next) {
         if (ptr->mode == NETSNMP_MODE_END_ALL_MODES ||
             reqinfo->mode == ptr->mode) {
             ret2 = netsnmp_call_handler(ptr->callback_handler, reginfo,
diff --git a/agent/helpers/old_api.c b/agent/helpers/old_api.c
index 96851b2..a42e904 100644
--- a/agent/helpers/old_api.c
+++ b/agent/helpers/old_api.c
@@ -15,6 +15,15 @@
 
 #define MIB_CLIENTS_ARE_EVIL 1
 
+#ifdef HAVE_DMALLOC_H
+static void free_wrapper(void * p)
+{
+    free(p);
+}
+#else
+#define free_wrapper free
+#endif
+
 /*
  * don't use these! 
  */
@@ -71,7 +80,7 @@
         if (reginfo == NULL)
             return SNMP_ERR_GENERR;
 
-        memdup((void *) &vp,
+        memdup((u_char **) &vp,
                (void *) (struct variable *) ((char *) var + varsize * i),
                varsize);
 
@@ -352,7 +361,8 @@
             write_method = NULL;
             netsnmp_request_add_list_data(requests,
                                           netsnmp_create_data_list
-                                          (OLD_API_NAME, cacheptr, free));
+                                          (OLD_API_NAME, cacheptr,
+                                           &free_wrapper));
             /*
              * BBB: fall through for everything that is a set (see AAA) 
              */
diff --git a/agent/helpers/row_merge.c b/agent/helpers/row_merge.c
index 9ae7ea8..93d3532 100644
--- a/agent/helpers/row_merge.c
+++ b/agent/helpers/row_merge.c
@@ -76,14 +76,14 @@
      * see if we've already been here
      */
     rc = snprintf(buf, sizeof(buf), "row_merge:%p", reginfo);
-    if ((-1 == rc) || (rc >= sizeof(buf))) {
+    if ((-1 == rc) || ((size_t)rc >= sizeof(buf))) {
         snmp_log(LOG_ERR,"error creating key\n");
         return NULL;
     }
     
-    rm_status = netsnmp_agent_get_list_data(reqinfo, buf);
+    rm_status = (netsnmp_row_merge_status*)netsnmp_agent_get_list_data(reqinfo, buf);
     if ((NULL == rm_status) && create_missing) {
-        void *data_list;
+        netsnmp_data_list *data_list;
         
         rm_status = SNMP_MALLOC_TYPEDEF(netsnmp_row_merge_status);
         if (NULL == rm_status) {
diff --git a/agent/helpers/scalar.c b/agent/helpers/scalar.c
index 23b6bb7..b734c04 100644
--- a/agent/helpers/scalar.c
+++ b/agent/helpers/scalar.c
@@ -78,8 +78,8 @@
      * Extend the registered OID with space for the instance subid
      * (but don't extend the length just yet!)
      */
-    reginfo->rootoid = realloc(reginfo->rootoid,
-                              (reginfo->rootoid_len+1) * sizeof(oid) );
+    reginfo->rootoid = (oid*)realloc(reginfo->rootoid,
+                                    (reginfo->rootoid_len+1) * sizeof(oid) );
     reginfo->rootoid[ reginfo->rootoid_len ] = 0;
 
     netsnmp_inject_handler(reginfo, netsnmp_get_instance_handler());
@@ -113,8 +113,8 @@
      * Extend the registered OID with space for the instance subid
      * (but don't extend the length just yet!)
      */
-    reginfo->rootoid = realloc(reginfo->rootoid,
-                              (reginfo->rootoid_len+1) * sizeof(oid) );
+    reginfo->rootoid = (oid*)realloc(reginfo->rootoid,
+                                    (reginfo->rootoid_len+1) * sizeof(oid) );
     reginfo->rootoid[ reginfo->rootoid_len ] = 0;
 
     netsnmp_inject_handler(reginfo, netsnmp_get_instance_handler());
diff --git a/agent/mibgroup/utilities/snmp_get_statistic.c b/agent/helpers/snmp_get_statistic.c
similarity index 82%
rename from agent/mibgroup/utilities/snmp_get_statistic.c
rename to agent/helpers/snmp_get_statistic.c
index 1e06f79..b9dac76 100644
--- a/agent/mibgroup/utilities/snmp_get_statistic.c
+++ b/agent/helpers/snmp_get_statistic.c
@@ -2,7 +2,7 @@
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
-#include "snmp_get_statistic.h"
+#include <net-snmp/agent/snmp_get_statistic.h>
 
 static int
 netsnmp_get_statistic_helper_handler(netsnmp_mib_handler *handler,
@@ -12,8 +12,12 @@
 {
     if (reqinfo->mode == MODE_GET) {
         const oid idx = requests->requestvb->name[reginfo->rootoid_len - 2] +
-            (((char*)handler->myvoid) - ((char*)0));
-        const uint32_t value = snmp_get_statistic(idx);
+            (oid)(uintptr_t)handler->myvoid;
+        uint32_t value;
+
+        if (idx > NETSNMP_STAT_MAX_STATS)
+            return SNMP_ERR_GENERR;
+        value = snmp_get_statistic(idx);
         snmp_set_var_typed_value(requests->requestvb, ASN_COUNTER,
                                  (const u_char*)&value, sizeof(value));
         return SNMP_ERR_NOERROR;
@@ -29,7 +33,7 @@
                                netsnmp_get_statistic_helper_handler);
     if (ret) {
         ret->flags |= MIB_HANDLER_AUTO_NEXT;
-        ret->myvoid = ((char*)0) + offset;
+        ret->myvoid = (void*)(uintptr_t)offset;
     }
     return ret;
 }
diff --git a/agent/helpers/stash_cache.c b/agent/helpers/stash_cache.c
index 5252cb2..c998363 100644
--- a/agent/helpers/stash_cache.c
+++ b/agent/helpers/stash_cache.c
@@ -10,6 +10,15 @@
 extern NetsnmpCacheLoad _netsnmp_stash_cache_load;
 extern NetsnmpCacheFree _netsnmp_stash_cache_free;
  
+#ifdef HAVE_DMALLOC_H
+static void free_wrapper(void * p)
+{
+    free(p);
+}
+#else
+#define free_wrapper free
+#endif
+
 /** @defgroup stash_cache stash_cache
  *  Automatically caches data for certain handlers.
  *  This handler caches data in an optimized way which may alleviate
@@ -62,7 +71,7 @@
     }
 
     handler->myvoid = cinfo;
-    handler->data_free = free;
+    handler->data_free = &free_wrapper;
 
     return handler;
 }
@@ -108,7 +117,7 @@
 netsnmp_oid_stash_node  **
 netsnmp_extract_stash_cache(netsnmp_agent_request_info *reqinfo)
 {
-    return netsnmp_agent_get_list_data(reqinfo, STASH_CACHE_NAME);
+    return (netsnmp_oid_stash_node**)netsnmp_agent_get_list_data(reqinfo, STASH_CACHE_NAME);
 }
 
 
@@ -139,7 +148,7 @@
     case MODE_GET:
         DEBUGMSGTL(("helper:stash_cache", "Processing GET request\n"));
         for(request = requests; request; request = request->next) {
-            cdata =
+            cdata = (netsnmp_variable_list*)
                 netsnmp_oid_stash_get_data(cinfo->cache,
                                            requests->requestvb->name,
                                            requests->requestvb->name_length);
@@ -161,7 +170,7 @@
                                                requests->requestvb->name,
                                                requests->requestvb->name_length);
             if (cnode && cnode->thedata) {
-                cdata = cnode->thedata;
+                cdata =  (netsnmp_variable_list*)cnode->thedata;
                 if (cdata->val.string && cdata->name && cdata->name_length) {
                     DEBUGMSGTL(("helper:stash_cache", "Found cached GETNEXT varbind\n"));
                     DEBUGMSGOID(("helper:stash_cache", cdata->name, cdata->name_length));
diff --git a/agent/helpers/table.c b/agent/helpers/table.c
index 374ef48..9eb0132 100644
--- a/agent/helpers/table.c
+++ b/agent/helpers/table.c
@@ -168,8 +168,8 @@
     int             oid_index_pos;
     unsigned int    oid_column_pos;
     unsigned int    tmp_idx;
-    size_t	    tmp_len;
-    int             incomplete, out_of_range, cleaned_up = 0;
+    ssize_t 	    tmp_len;
+    int             incomplete, out_of_range;
     int             status = SNMP_ERR_NOERROR, need_processing = 0;
     oid            *tmp_name;
     netsnmp_table_request_info *tbl_req_info;
@@ -195,8 +195,9 @@
 
     DEBUGIF("helper:table:req") {
         DEBUGMSGTL(("helper:table:req",
-                    "Got request for handler %s: base oid:",
-                    handler->handler_name));
+                    "Got %s (%d) mode request for handler %s: base oid:",
+                    se_find_label_in_slist("agent_mode", reqinfo->mode),
+                    reqinfo->mode, handler->handler_name));
         DEBUGMSGOID(("helper:table:req", reginfo->rootoid,
                      reginfo->rootoid_len));
         DEBUGMSG(("helper:table:req", "\n"));
@@ -229,15 +230,15 @@
          * a valid table info pointer).
          */
         if(NULL == netsnmp_extract_table_info(requests)) {
-            DEBUGMSGTL(("table:helper","no table info for set - skipping\n"));
+            DEBUGMSGTL(("helper:table","no table info for set - skipping\n"));
         }
         else
             need_processing = 1;
     }
     else {
         /*
-         * for RESERVE1 and GETS, only continue if we have at least
-         * one valid request.
+         * for GETS, only continue if we have at least one valid request.
+         * for RESERVE1, only continue if we have indexes for all requests.
          */
            
     /*
@@ -394,7 +395,8 @@
             /*
              * oid is long enough to contain COLUMN info
              */
-            DEBUGMSGTL(("helper:table:col", "  have at least a column (%ld)\n",
+            DEBUGMSGTL(("helper:table:col",
+                        "  have at least a column (%" NETSNMP_PRIo "d)\n",
                         var->name[oid_column_pos]));
             if (var->name[oid_column_pos] < tbl_info->min_column) {
                 DEBUGMSGTL(("helper:table:col",
@@ -450,8 +452,9 @@
                     continue;
                 if (tbl_req_info->colnum != var->name[oid_column_pos]) {
                     DEBUGMSGTL(("helper:table:col",
-                                "    which doesn't match req %ld - truncating index info\n",
-                                   var->name[oid_column_pos]));
+                                "    which doesn't match req "
+                                "%" NETSNMP_PRIo "d - truncating index info\n",
+                                var->name[oid_column_pos]));
                     /*
                      * different column! truncate useless index info 
                      */
@@ -523,6 +526,8 @@
         for (tmp_idx = 0, vb = tbl_req_info->indexes;
              tmp_idx < tbl_info->number_indexes;
              ++tmp_idx, vb = vb->next_variable) {
+            size_t parsed_oid_len;
+
             if (incomplete && tmp_len) {
                 /*
                  * incomplete/illegal OID, set up dummy 0 to parse 
@@ -537,29 +542,27 @@
                  *
                  * Reject requests of the form 'myObject'   (no instance)
                  */
-                if (reqinfo->mode != MODE_GETNEXT) {
-                    table_helper_cleanup(reqinfo, requests,
-                                         SNMP_NOSUCHINSTANCE);
-                    cleaned_up = 1;
-                }
                 tmp_len = 0;
-                tmp_name = (oid *) & tmp_len;
+                tmp_name = NULL;
                 break;
             }
             /*
              * try and parse current index 
              */
-            if (parse_one_oid_index(&tmp_name, &tmp_len,
+            netsnmp_assert(tmp_len >= 0);
+            parsed_oid_len = tmp_len;
+            if (parse_one_oid_index(&tmp_name, &parsed_oid_len,
                                     vb, 1) != SNMPERR_SUCCESS) {
                 incomplete = 1;
                 tmp_len = -1;   /* is this necessary? Better safe than
                                  * sorry */
             } else {
+                tmp_len = parsed_oid_len;
+                DEBUGMSGTL(("helper:table", "  got 1 (incomplete=%d)\n",
+                            incomplete));
                 /*
                  * do not count incomplete indexes 
                  */
-                DEBUGMSGTL(("helper:table", "  got 1 (incomplete=%d)\n",
-                            incomplete));
                 if (incomplete)
                     continue;
                 ++tbl_req_info->number_indexes; /** got one ok */
@@ -572,12 +575,11 @@
         }                       /** for loop */
 
         DEBUGIF("helper:table:results") {
-            DEBUGMSGTL(("helper:table:results", "  found %d indexes\n",
-                        tbl_req_info->number_indexes));
-            if (!cleaned_up) {
                 unsigned int    count;
                 u_char         *buf = NULL;
                 size_t          buf_len = 0, out_len = 0;
+                DEBUGMSGTL(("helper:table:results", "  found %d indexes\n",
+                            tbl_req_info->number_indexes));
                 DEBUGMSGTL(("helper:table:results",
                             "  column: %d, indexes: %d",
                             tbl_req_info->colnum,
@@ -607,7 +609,6 @@
                     free(buf);
                 }
                 DEBUGMSG(("helper:table:results", "\n"));
-            }
         }
 
 
@@ -618,8 +619,22 @@
         if ((reqinfo->mode != MODE_GETNEXT) &&
             ((tbl_req_info->number_indexes != tbl_info->number_indexes) ||
              (tmp_len != -1))) {
+
             DEBUGMSGTL(("helper:table",
                         "invalid index(es) for table - skipping\n"));
+
+            if ( MODE_IS_SET(reqinfo->mode) ) {
+                /*
+                 * no point in continuing without indexes for set.
+                 */
+                netsnmp_assert(reqinfo->mode == MODE_SET_RESERVE1);
+                /** clear first request so we wont try to run FREE mode */
+                netsnmp_free_request_data_sets(requests);
+                /** set actual error */
+                table_helper_cleanup(reqinfo, request, SNMP_ERR_NOCREATION);
+                need_processing = 0; /* don't call next handler */
+                break;
+            }
             table_helper_cleanup(reqinfo, request, SNMP_NOSUCHINSTANCE);
             continue;
         }
@@ -1150,7 +1165,7 @@
 {
     netsnmp_oid_stash_node **stashp = NULL;
     stashp = (netsnmp_oid_stash_node **)
-        netsnmp_agent_get_list_data(reqinfo, storage_name);
+        netsnmp_agent_get_list_data(reqinfo, (const char *) storage_name);
 
     if (!stashp) {
         /*
@@ -1162,7 +1177,7 @@
             return NULL;        /* ack. out of mem */
 
         netsnmp_agent_add_list_data(reqinfo,
-                                    netsnmp_create_data_list(storage_name,
+                                    netsnmp_create_data_list((const char *) storage_name,
                                                              stashp,
                                                              _row_stash_data_list_free));
     }
diff --git a/agent/helpers/table_array.c b/agent/helpers/table_array.c
index c7f52f9..b998929 100644
--- a/agent/helpers/table_array.c
+++ b/agent/helpers/table_array.c
@@ -229,7 +229,7 @@
 netsnmp_container      *
 netsnmp_extract_array_context(netsnmp_request_info *request)
 {
-    return netsnmp_request_get_list_data(request, TABLE_ARRAY_NAME);
+    return (netsnmp_container*)netsnmp_request_get_list_data(request, TABLE_ARRAY_NAME);
 }
 
 /** this function is called to validate RowStatus transitions. */
@@ -489,7 +489,7 @@
             index.oids = tblreq_info->index_oid;
             index.len = tblreq_info->index_oid_len;
 
-            row = CONTAINER_FIND(tad->table, &index);
+            row = (netsnmp_index*)CONTAINER_FIND(tad->table, &index);
             if (!row) {
                 DEBUGMSGTL(("table_array:get", "no row found\n"));
                 netsnmp_set_request_error(agtreq_info, current,
@@ -556,7 +556,7 @@
          */
         index.oids = tblreq_info->index_oid;
         index.len = tblreq_info->index_oid_len;
-        tmp = CONTAINER_FIND(request_group, &index);
+        tmp = (netsnmp_index*)CONTAINER_FIND(request_group, &index);
         if (tmp) {
             DEBUGMSGTL(("table_array:group",
                         "    existing group:"));
@@ -597,7 +597,7 @@
          * search for row. all changes are made to the original row,
          * later, we'll make a copy in undo_info before we start processing.
          */
-        row = g->existing_row = CONTAINER_FIND(tad->table, &index);
+        row = g->existing_row = (netsnmp_index*)CONTAINER_FIND(tad->table, &index);
         if (!g->existing_row) {
             if (!tad->cb->create_row) {
                 if(MODE_IS_SET(agtreq_info->mode))
diff --git a/agent/helpers/table_container.c b/agent/helpers/table_container.c
index 85cdb41..82c7f29 100644
--- a/agent/helpers/table_container.c
+++ b/agent/helpers/table_container.c
@@ -180,7 +180,7 @@
     }
 
     if (flags)
-        table->key_type = flags & 0x03;  /* Use lowest two bits */
+        table->key_type = (char)(flags & 0x03);  /* Use lowest two bits */
     else
         table->key_type = TABLE_CONTAINER_KEY_NETSNMP_INDEX;
 
@@ -433,6 +433,73 @@
     }
 }
 
+/** removes a table_container entry from a request list */
+void
+netsnmp_container_table_row_remove(netsnmp_request_info *request,
+                                   netsnmp_index        *row)
+{
+    netsnmp_request_info       *req;
+    netsnmp_table_request_info *table_info = NULL;
+    netsnmp_variable_list      *this_index = NULL;
+    netsnmp_variable_list      *that_index = NULL;
+    oid      base_oid[] = {0, 0};	/* Make sure index OIDs are legal! */
+    oid      this_oid[MAX_OID_LEN];
+    oid      that_oid[MAX_OID_LEN];
+    size_t   this_oid_len, that_oid_len;
+
+    if (!request)
+        return;
+
+    /*
+     * We'll add the new row information to any request
+     * structure with the same index values as the request
+     * passed in (which includes that one!).
+     *
+     * So construct an OID based on these index values.
+     */
+
+    table_info = netsnmp_extract_table_info(request);
+    this_index = table_info->indexes;
+    build_oid_noalloc(this_oid, MAX_OID_LEN, &this_oid_len,
+                      base_oid, 2, this_index);
+
+    /*
+     * We need to look through the whole of the request list
+     * (as received by the current handler), as there's no
+     * guarantee that this routine will be called by the first
+     * varbind that refers to this row.
+     *   In particular, a RowStatus controlled row creation
+     * may easily occur later in the variable list.
+     *
+     * So first, we rewind to the head of the list....
+     */
+    for (req=request; req->prev; req=req->prev)
+        ;
+
+    /*
+     * ... and then start looking for matching indexes
+     * (by constructing OIDs from these index values)
+     */
+    for (; req; req=req->next) {
+        if (req->processed) 
+            continue;
+        
+        table_info = netsnmp_extract_table_info(req);
+        that_index = table_info->indexes;
+        build_oid_noalloc(that_oid, MAX_OID_LEN, &that_oid_len,
+                          base_oid, 2, that_index);
+      
+        /*
+         * This request has the same index values,
+         * so add the newly-created row information.
+         */
+        if (snmp_oid_compare(this_oid, this_oid_len,
+                             that_oid, that_oid_len) == 0) {
+            netsnmp_request_remove_list_data(req, TABLE_CONTAINER_ROW);
+        }
+    }
+}
+
 /** @cond */
 /**********************************************************************
  **********************************************************************
@@ -501,7 +568,7 @@
          * column, if necessary.
          */
         _set_key( tad, request, tblreq_info, &key, &index );
-        row = _find_next_row(tad->table, tblreq_info, key);
+        row = (netsnmp_index*)_find_next_row(tad->table, tblreq_info, key);
         if (row) {
             /*
              * update indexes in tblreq_info (index & varbind),
@@ -537,7 +604,7 @@
     else {
 
         _set_key( tad, request, tblreq_info, &key, &index );
-        row = CONTAINER_FIND(tad->table, key);
+        row = (netsnmp_index*)CONTAINER_FIND(tad->table, key);
         if (NULL == row) {
             /*
              * not results found. For a get, that is an error
@@ -740,7 +807,7 @@
 netsnmp_table_index_find_next_row(netsnmp_container *c,
                                   netsnmp_table_request_info *tblreq)
 {
-    return _find_next_row(c, tblreq, NULL );
+    return (netsnmp_index*)_find_next_row(c, tblreq, NULL );
 }
 
 /* ==================================
diff --git a/agent/helpers/table_dataset.c b/agent/helpers/table_dataset.c
index 652acc3..227cdef 100644
--- a/agent/helpers/table_dataset.c
+++ b/agent/helpers/table_dataset.c
@@ -77,7 +77,7 @@
 /** deletes a single dataset table data.
  *  returns the (possibly still good) next pointer of the deleted data object.
  */
-NETSNMP_INLINE netsnmp_table_data_set_storage *
+NETSNMP_STATIC_INLINE netsnmp_table_data_set_storage *
 netsnmp_table_dataset_delete_data(netsnmp_table_data_set_storage *data)
 {
     netsnmp_table_data_set_storage *nextPtr = NULL;
@@ -108,7 +108,7 @@
     if (!row)
         return;
 
-    data = netsnmp_table_data_delete_row(row);
+    data = (netsnmp_table_data_set_storage*)netsnmp_table_data_delete_row(row);
     netsnmp_table_dataset_delete_all_data(data);
 }
 
@@ -491,10 +491,6 @@
 
         if (MODE_IS_SET(reqinfo->mode)) {
 
-            char buf[256]; /* is this reasonable size?? */
-            int  rc;
-            size_t len;
-
             /*
              * use a cached copy of the row for modification 
              */
@@ -503,30 +499,16 @@
              * cache location: may have been created already by other
              * SET requests in the same master request. 
              */
-            rc = snprintf(buf, sizeof(buf), "dataset_row_stash:%s:",
-                          datatable->table->name);
-            if ((-1 == rc) || (rc >= sizeof(buf))) {
-                snmp_log(LOG_ERR,"%s handler name too long\n",
-                         datatable->table->name);
-                netsnmp_set_request_error(reqinfo, request,
-                                          SNMP_ERR_GENERR);
+            stashp = netsnmp_table_dataset_get_or_create_stash(reqinfo,
+                                                               datatable,
+                                                               table_info);
+            if (NULL == stashp) {
+                netsnmp_set_request_error(reqinfo, request, SNMP_ERR_GENERR);
                 continue;
             }
-            len = sizeof(buf) - rc;
-            rc = snprint_objid(&buf[rc], len, table_info->index_oid,
-                               table_info->index_oid_len);
-            if (-1 == rc) {
-                snmp_log(LOG_ERR,"%s oid or name too long\n",
-                         datatable->table->name);
-                netsnmp_set_request_error(reqinfo, request,
-                                          SNMP_ERR_GENERR);
-                continue;
-            }
-            stashp = (netsnmp_oid_stash_node **)
-                netsnmp_table_get_or_create_row_stash(reqinfo, buf);
 
             newrowstash
-                = netsnmp_oid_stash_get_data(*stashp, suffix, suffix_len);
+                = (newrow_stash*)netsnmp_oid_stash_get_data(*stashp, suffix, suffix_len);
 
             if (!newrowstash) {
                 if (!row) {
@@ -594,9 +576,10 @@
         case MODE_GET:
         case MODE_GETNEXT:
         case MODE_GETBULK:     /* XXXWWW */
-            if (!data || data->type == SNMP_NOSUCHINSTANCE)
-                netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHINSTANCE);
-            else
+            if (!data || data->type == SNMP_NOSUCHINSTANCE) {
+                netsnmp_set_request_error(reqinfo, request,
+                                          SNMP_NOSUCHINSTANCE);
+            } else {
                 /*
                  * Note: data->data.voidp can be NULL, e.g. when a zero-length
                  * octet string has been stored in the table cache.
@@ -605,8 +588,9 @@
                                                 row,
                                                 table_info->colnum,
                                                 data->type,
-                                                data->data.voidp,
+                                       (u_char*)data->data.voidp,
                                                 data->data_len);
+            }
             break;
 
         case MODE_SET_RESERVE1:
@@ -799,9 +783,9 @@
     		    for (req = requests; req; req=req->next) {
         
 		    	/*
-         			* For requests that have the old row values,
-         			* so add the newly-created row information.
-         	    	*/
+                         * For requests that have the old row values,
+                         * so add the newly-created row information.
+                         */
         	    	if ((netsnmp_table_row *) netsnmp_extract_table_row(req) == row) {
 	    			netsnmp_request_remove_list_data(req, TABLE_DATA_ROW);
             			netsnmp_request_add_list_data(req,
@@ -850,7 +834,7 @@
                                      unsigned int column)
 {
     netsnmp_table_data_set_storage *data =
-        netsnmp_extract_table_row_data( request );
+        (netsnmp_table_data_set_storage*)netsnmp_extract_table_row_data( request );
     if (data) {
         data = netsnmp_table_data_set_find_column(data, column);
     }
@@ -1014,7 +998,7 @@
         struct tree    *tp2;
     
         if (!snmp_parse_oid(tp->augments, name, &name_length)) {
-            config_pwarn("I can't parse the augment tabel name");
+            config_pwarn("I can't parse the augment table name");
             snmp_log(LOG_WARNING, "  can't parse %s\n", tp->augments);
             SNMP_FREE (table_set);
             return;
@@ -1102,7 +1086,7 @@
     netsnmp_table_row *row;
     netsnmp_table_data_set_storage *dr;
 
-    line = copy_nword(line, tname, SNMP_MAXBUF_MEDIUM);
+    line = copy_nword(line, tname, sizeof(tname));
 
     tables = (data_set_tables *) netsnmp_get_list_data(auto_tables, tname);
     if (!tables) {
@@ -1125,7 +1109,7 @@
 
         DEBUGMSGTL(("table_set_add_row", "adding index of type %d\n",
                     vb->type));
-        buf_size = SNMP_MAXBUF_MEDIUM;
+        buf_size = sizeof(buf);
         line = read_config_read_memory(vb->type, line, buf, &buf_size);
         netsnmp_table_row_add_index(row, vb->type, buf, buf_size);
     }
@@ -1143,7 +1127,7 @@
             return;
         }
 
-        buf_size = SNMP_MAXBUF_MEDIUM;
+        buf_size = sizeof(buf);
         line = read_config_read_memory(dr->type, line, buf, &buf_size);
         DEBUGMSGTL(("table_set_add_row",
                     "adding data at column %d of type %d\n", dr->column,
@@ -1163,6 +1147,60 @@
 }
 
 
+netsnmp_oid_stash_node **
+netsnmp_table_dataset_get_or_create_stash(netsnmp_agent_request_info *reqinfo,
+                                          netsnmp_table_data_set *datatable,
+                                          netsnmp_table_request_info *table_info)
+{
+    netsnmp_oid_stash_node **stashp = NULL;
+    char                     buf[256]; /* is this reasonable size?? */
+    size_t                   len;
+    int                      rc;
+
+    rc = snprintf(buf, sizeof(buf), "dataset_row_stash:%s:",
+                  datatable->table->name);
+    if ((-1 == rc) || ((size_t)rc >= sizeof(buf))) {
+        snmp_log(LOG_ERR,"%s handler name too long\n", datatable->table->name);
+        return NULL;
+    }
+
+    len = sizeof(buf) - rc;
+    rc = snprint_objid(&buf[rc], len, table_info->index_oid,
+                       table_info->index_oid_len);
+    if (-1 == rc) {
+        snmp_log(LOG_ERR,"%s oid or name too long\n", datatable->table->name);
+        return NULL;
+    }
+
+    stashp = (netsnmp_oid_stash_node **)
+        netsnmp_table_get_or_create_row_stash(reqinfo, (u_char *) buf);
+    return stashp;
+}
+
+netsnmp_table_row *
+netsnmp_table_dataset_get_newrow(netsnmp_request_info *request,
+                                 netsnmp_agent_request_info *reqinfo,
+                                 int rootoid_len,
+                                 netsnmp_table_data_set *datatable,
+                                 netsnmp_table_request_info *table_info)
+{
+    oid * const suffix = request->requestvb->name + rootoid_len + 2;
+    size_t suffix_len = request->requestvb->name_length - (rootoid_len + 2);
+    netsnmp_oid_stash_node **stashp;
+    newrow_stash   *newrowstash;
+
+    stashp = netsnmp_table_dataset_get_or_create_stash(reqinfo, datatable,
+                                                       table_info);
+    if (NULL == stashp)
+        return NULL;
+
+    newrowstash = (newrow_stash*)netsnmp_oid_stash_get_data(*stashp, suffix, suffix_len);
+    if (NULL == newrowstash)
+        return NULL;
+
+    return newrowstash->newrow;
+}
+
 /* ==================================
  *
  * Data Set API: Row operations
@@ -1236,7 +1274,7 @@
         }
         data->column = column;
         data->writable = writable;
-        data->next = row->data;
+        data->next = (struct netsnmp_table_data_set_storage_s*)row->data;
         row->data = data;
     } else {
         data->writable = writable;
@@ -1245,8 +1283,24 @@
 }
 
 /**
- * sets a given column in a row with data given a type, value, and
- * length.  Data is memdup'ed by the function.
+ * Sets a given column in a row with data given a type, value,
+ * and length. Data is memdup'ed by the function, at least if
+ * type != SNMP_NOSUCHINSTANCE and if value_len > 0.
+ *
+ * @param[in] row       Pointer to the row to be modified.
+ * @param[in] column    Index of the column to be modified.
+ * @param[in] type      Either the ASN type of the value to be set or
+ *   SNMP_NOSUCHINSTANCE.
+ * @param[in] value     If type != SNMP_NOSUCHINSTANCE, pointer to the
+ *   new value. May be NULL if value_len == 0, e.g. when storing a
+ *   zero-length octet string. Ignored when type == SNMP_NOSUCHINSTANCE.
+ * @param[in] value_len If type != SNMP_NOSUCHINSTANCE, number of bytes
+ *   occupied by *value. Ignored when type == SNMP_NOSUCHINSTANCE.
+ *
+ * @return SNMPERR_SUCCESS upon success; SNMPERR_MALLOC when out of memory;
+ *   or SNMPERR_GENERR when row == 0 or when type does not match the datatype
+ *   of the data stored in *row. 
+ *
  */
 int
 netsnmp_set_row_column(netsnmp_table_row *row, unsigned int column,
@@ -1272,26 +1326,32 @@
 
         data->column = column;
         data->type = type;
-        data->next = row->data;
+        data->next = (struct netsnmp_table_data_set_storage_s*)row->data;
         row->data = data;
     }
 
-    if (value) {
-        if (data->type != type)
-            return SNMPERR_GENERR;
+    /* Transitions from / to SNMP_NOSUCHINSTANCE are allowed, but no other transitions. */
+    if (data->type != type && data->type != SNMP_NOSUCHINSTANCE
+        && type != SNMP_NOSUCHINSTANCE)
+        return SNMPERR_GENERR;
 
-        SNMP_FREE(data->data.voidp);
-        if (value_len) {
-            if (memdup(&data->data.string, value, (value_len)) !=
-                SNMPERR_SUCCESS) {
-                snmp_log(LOG_CRIT, "no memory in netsnmp_set_row_column");
-                return SNMPERR_MALLOC;
-            }
-        } else {
-            data->data.string = malloc(1);
-        }
-        data->data_len = value_len;
+    /* Return now if neither the type nor the data itself has been modified. */
+    if (data->type == type && data->data_len == value_len
+        && (value == NULL || memcmp(&data->data.string, value, value_len) == 0))
+            return SNMPERR_SUCCESS;
+
+    /* Reallocate memory and store the new value. */
+    data->data.voidp = realloc(data->data.voidp, value ? value_len : 0);
+    if (value && value_len && !data->data.voidp) {
+        data->data_len = 0;
+        data->type = SNMP_NOSUCHINSTANCE;
+        snmp_log(LOG_CRIT, "no memory in netsnmp_set_row_column");
+        return SNMPERR_MALLOC;
     }
+    if (value && value_len)
+        memcpy(data->data.string, value, value_len);
+    data->type = type;
+    data->data_len = value_len;
     return SNMPERR_SUCCESS;
 }
 
@@ -1323,7 +1383,7 @@
 
     if (tset)
         while ((type = va_arg(debugargs, int)) != 0)
-            netsnmp_table_data_add_index(tset->table, type);
+            netsnmp_table_data_add_index(tset->table, (u_char)type);
 
     va_end(debugargs);
 }
diff --git a/agent/helpers/table_iterator.c b/agent/helpers/table_iterator.c
index bcca797..87c7412 100644
--- a/agent/helpers/table_iterator.c
+++ b/agent/helpers/table_iterator.c
@@ -315,7 +315,7 @@
 
 static void
 netsnmp_free_ti_cache(void *it) {
-    ti_cache_info *beer = it;
+    ti_cache_info *beer = (ti_cache_info*)it;
     if (!it) return;
     if (beer->data_context && beer->free_context) {
             (beer->free_context)(beer->data_context, beer->iinfo);
@@ -341,7 +341,7 @@
         return NULL;
 
     /* extract existing cached state */
-    ti_info = netsnmp_request_get_list_data(request, TI_REQUEST_CACHE);
+    ti_info = (ti_cache_info*)netsnmp_request_get_list_data(request, TI_REQUEST_CACHE);
 
     /* no existing cached state.  make a new one. */
     if (!ti_info) {
@@ -476,7 +476,7 @@
                 request->processed = TABLE_ITERATOR_NOTAGAIN;
             }
 
-            ti_info =
+            ti_info = (ti_cache_info*)
                 netsnmp_request_get_list_data(request, TI_REQUEST_CACHE);
             if (!ti_info) {
                 ti_info = SNMP_MALLOC_TYPEDEF(ti_cache_info);
@@ -576,7 +576,7 @@
                     if (request->processed)
                         continue;
 
-                    /* XXX: store in an array for faster retrival */
+                    /* XXX: store in an array for faster retrieval */
                     table_info = netsnmp_extract_table_info(request);
                     if (table_info == NULL) {
                         /*
@@ -590,7 +590,7 @@
                     }
                     coloid[reginfo->rootoid_len + 1] = table_info->colnum;
 
-                    ti_info =
+                    ti_info = (ti_cache_info*)
                         netsnmp_request_get_list_data(request, TI_REQUEST_CACHE);
 
                     switch(reqinfo->mode) {
@@ -763,7 +763,7 @@
                 for(request = requests ; request; request = request->next) {
                     if (request->processed)
                         continue;
-                    ti_info =
+                    ti_info = (ti_cache_info*)
                         netsnmp_request_get_list_data(request,
                                                       TI_REQUEST_CACHE);
                     if (!ti_info->results) {
@@ -794,7 +794,7 @@
         for(request = requests ; request; request = request->next) {
             if (request->processed)
                 continue;
-            ti_info =
+            ti_info = (ti_cache_info*)
                 netsnmp_request_get_list_data(request, TI_REQUEST_CACHE);
             table_info =
                 netsnmp_extract_table_info(request);
diff --git a/agent/helpers/table_tdata.c b/agent/helpers/table_tdata.c
index 3244b1c..dea5219 100644
--- a/agent/helpers/table_tdata.c
+++ b/agent/helpers/table_tdata.c
@@ -58,9 +58,17 @@
     if ( !table )
         return NULL;
 
+    table->flags = flags;
     if (name)
         table->name = strdup(name);
-    table->container = netsnmp_container_find( "table_container" );
+
+    if (!(table->flags & TDATA_FLAG_NO_CONTAINER)) {
+        table->container = netsnmp_container_find( name );
+        if (!table->container)
+            table->container = netsnmp_container_find( "table_container" );
+        if (table->container)
+            table->container->container_name = strdup(name);
+    }
     return table;
 }
 
@@ -215,7 +223,9 @@
     /*
      * add this row to the stored table
      */
-    CONTAINER_INSERT( table->container, row );
+    if (CONTAINER_INSERT( table->container, row ) != 0)
+        return SNMPERR_GENERR;
+
     DEBUGMSGTL(("tdata_add_row", "added row (%p)\n", row));
 
     return SNMPERR_SUCCESS;
@@ -317,9 +327,13 @@
     netsnmp_request_info       *request;
     netsnmp_table_request_info *table_info;
     netsnmp_tdata_row          *row;
+    int                         need_processing = 1;
 
     switch ( reqinfo->mode ) {
     case MODE_GET:
+        need_processing = 0; /* only need processing if some vars found */
+        /** Fall through */
+
     case MODE_SET_RESERVE1:
 
         for (request = requests; request; request = request->next) {
@@ -327,10 +341,18 @@
                 continue;
     
             table_info = netsnmp_extract_table_info(request);
-            if (!table_info)
-                continue;           /* ack */
-            row = netsnmp_container_table_row_extract( request );
-
+            if (!table_info) {
+                netsnmp_assert(table_info); /* yes, this will always hit */
+                netsnmp_set_request_error(reqinfo, request, SNMP_ERR_GENERR);
+                continue;           /* eek */
+            }
+            row = (netsnmp_tdata_row*)netsnmp_container_table_row_extract( request );
+            if (!row && (reqinfo->mode == MODE_GET)) {
+                netsnmp_assert(row); /* yes, this will always hit */
+                netsnmp_set_request_error(reqinfo, request, SNMP_ERR_GENERR);
+                continue;           /* eek */
+            }
+            ++need_processing;
             netsnmp_request_add_list_data(request,
                                       netsnmp_create_data_list(
                                           TABLE_TDATA_TABLE, table, NULL));
@@ -338,6 +360,9 @@
                                       netsnmp_create_data_list(
                                           TABLE_TDATA_ROW,   row,   NULL));
         }
+        /** skip next handler if processing not needed */
+        if (!need_processing)
+            handler->flags |= MIB_HANDLER_AUTO_NEXT_OVERRIDE_ONCE;
     }
 
     /* next handler called automatically - 'AUTO_NEXT' */
@@ -375,8 +400,8 @@
 netsnmp_container *
 netsnmp_tdata_extract_container(netsnmp_request_info *request)
 {
-    netsnmp_tdata *tdata = netsnmp_request_get_list_data(request,
-                                                         TABLE_TDATA_TABLE);
+    netsnmp_tdata *tdata = (netsnmp_tdata*)
+        netsnmp_request_get_list_data(request, TABLE_TDATA_TABLE);
     return ( tdata ? tdata->container : NULL );
 }
 
@@ -408,6 +433,14 @@
     netsnmp_container_table_row_insert(request, (netsnmp_index *)row);
 }
 
+/** inserts a newly created tdata row into a request */
+NETSNMP_INLINE void
+netsnmp_remove_tdata_row(netsnmp_request_info *request,
+                         netsnmp_tdata_row *row)
+{
+    netsnmp_container_table_row_remove(request, (netsnmp_index *)row);
+}
+
 
 /* ==================================
  *
@@ -437,7 +470,7 @@
 netsnmp_tdata_row_get(  netsnmp_tdata     *table,
                         netsnmp_tdata_row *row)
 {
-    return CONTAINER_FIND( table->container, row );
+    return (netsnmp_tdata_row*)CONTAINER_FIND( table->container, row );
 }
 
 /** returns the next row in the table */
@@ -472,7 +505,7 @@
 
     index.oids = searchfor;
     index.len  = searchfor_len;
-    return CONTAINER_FIND( table->container, &index );
+    return (netsnmp_tdata_row*)CONTAINER_FIND( table->container, &index );
 }
 
 /** finds the lexically next row in the 'tdata' table
@@ -501,7 +534,7 @@
 
     index.oids = searchfor;
     index.len  = searchfor_len;
-    return CONTAINER_NEXT( table->container, &index );
+    return (netsnmp_tdata_row*)CONTAINER_NEXT( table->container, &index );
 }
 
 int
diff --git a/agent/helpers/watcher.c b/agent/helpers/watcher.c
index 8ef456a..de59680 100644
--- a/agent/helpers/watcher.c
+++ b/agent/helpers/watcher.c
@@ -10,6 +10,15 @@
 
 #include <string.h>
 
+#ifdef HAVE_DMALLOC_H
+static void free_wrapper(void * p)
+{
+    free(p);
+}
+#else
+#define free_wrapper free
+#endif
+
 /** @defgroup watcher watcher
  *  Watch a specified variable and process it as an instance or scalar object
  *  @ingroup leaf
@@ -142,7 +151,7 @@
 NETSNMP_STATIC_INLINE netsnmp_watcher_cache*
 netsnmp_watcher_cache_create(const void* data, size_t size)
 {
-    netsnmp_watcher_cache *res =
+    netsnmp_watcher_cache *res = (netsnmp_watcher_cache*)
         malloc(sizeof(netsnmp_watcher_cache) + size - 1);
     if (res) {
         res->size = size;
@@ -213,7 +222,7 @@
         } else
             netsnmp_request_add_list_data(requests,
                                           netsnmp_create_data_list
-                                          ("watcher", old_data, free));
+                                          ("watcher", old_data, &free_wrapper));
         break;
 
     case MODE_SET_FREE:
@@ -231,7 +240,7 @@
         break;
 
     case MODE_SET_UNDO:
-        old_data = netsnmp_request_get_list_data(requests, "watcher");
+        old_data = (netsnmp_watcher_cache*)netsnmp_request_get_list_data(requests, "watcher");
         set_data(winfo, old_data->data, old_data->size);
         break;
 
diff --git a/agent/kernel.c b/agent/kernel.c
index 3f0e488..38940a1 100644
--- a/agent/kernel.c
+++ b/agent/kernel.c
@@ -1,7 +1,19 @@
-
-/*
- *  13 Jun 91  wsak (wk0x@andrew) added mips support
+/***********************************************************************
+   Net-SNMP - Simple Network Management Protocol agent library.
+ ***********************************************************************/
+/** @file kernel.c
+ *     Net-SNMP Kernel Data Access Library.
+ *     Provides access to kernel virtual memory for systems that
+ *     support it.
+ * @author   See README file for a list of contributors
  */
+/* Copyrights:
+ *     Copyright holders are listed in README file.
+ *     Redistribution and use in source and binary forms, with or
+ *     without modification, are permitted. License terms are specified
+ *     in COPYING file distributed with the Net-SNMP package.
+ */
+/***********************************************************************/
 
 #include <net-snmp/net-snmp-config.h>
 
@@ -40,7 +52,7 @@
 
 
 #if HAVE_KVM_H
-kvm_t          *kd;
+kvm_t *kd = NULL;
 
 /**
  * Initialize the support for accessing kernel virtual memory.
@@ -56,6 +68,12 @@
     char            err[4096];
 
     kd = kvm_openfiles(NULL, NULL, NULL, O_RDONLY, err);
+    if (!kd)
+#ifdef KVM_NO_FILES
+	kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, err);
+#else
+	kd = kvm_openfiles(NULL, "/dev/null", NULL, O_RDONLY, err);
+#endif
     if (!kd && !netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
                                        NETSNMP_DS_AGENT_NO_ROOT_ACCESS)) {
         snmp_log(LOG_CRIT, "init_kmem: kvm_openfiles failed: %s\n", err);
@@ -73,18 +91,18 @@
     return res;
 }
 
-
-/*
- *  klookup:
+/** Reads kernel memory.
+ *  Seeks to the specified location in kmem, then
+ *  does a read of given amount ob bytes into target buffer.
  *
- *  It seeks to the location  off  in kmem
- *  It does a read into  target  of  siz  bytes.
+ * @param off The location to seek.
  *
- *  Return 0 on failure and 1 on sucess.
+ * @param target The target buffer to read into.
  *
+ * @param siz Number of bytes to read.
+ *
+ * @return gives 1 on success and 0 on failure.
  */
-
-
 int
 klookup(unsigned long off, void *target, size_t siz)
 {
@@ -106,6 +124,18 @@
     return 1;
 }
 
+/** Closes the kernel memory support.
+ */
+void
+free_kmem(void)
+{
+    if (kd != NULL)
+    {
+      kvm_close(kd);
+      kd = NULL;
+    }
+}
+
 #else                           /* HAVE_KVM_H */
 
 static off_t    klseek(off_t);
@@ -150,19 +180,17 @@
     return res;
 }
 
-
-/*
+/** @private
  *  Seek into the kernel for a value.
  */
-static          off_t
+static off_t
 klseek(off_t base)
 {
     return (lseek(kmem, (off_t) base, SEEK_SET));
 }
 
-
-/*
- *  Read from the kernel 
+/** @private
+ *  Read from the kernel.
  */
 static int
 klread(char *buf, int buflen)
@@ -170,18 +198,18 @@
     return (read(kmem, buf, buflen));
 }
 
-
-/*
- *  klookup:
+/** Reads kernel memory.
+ *  Seeks to the specified location in kmem, then
+ *  does a read of given amount ob bytes into target buffer.
  *
- *  It seeks to the location  off  in kmem
- *  It does a read into  target  of  siz  bytes.
+ * @param off The location to seek.
  *
- *  Return 0 on failure and 1 on sucess.
+ * @param target The target buffer to read into.
  *
+ * @param siz Number of bytes to read.
+ *
+ * @return gives 1 on success and 0 on failure.
  */
-
-
 int
 klookup(unsigned long off, void *target, size_t siz)
 {
@@ -210,6 +238,27 @@
     return (1);
 }
 
+/** Closes the kernel memory support.
+ */
+void
+free_kmem(void)
+{
+    if (swap >= 0) {
+        close(swap);
+        swap = -1;
+    }
+    if (mem >= 0) {
+        close(mem);
+        mem = -1;
+    }
+    if (kmem >= 0) {
+        close(kmem);
+        kmem = -1;
+    }
+}
+
 #endif                          /* HAVE_KVM_H */
 
+#else
+int unused;	/* Suppress "empty translation unit" warning */
 #endif                          /* NETSNMP_CAN_USE_NLIST */
diff --git a/agent/kernel.h b/agent/kernel.h
index eb6a74c..131687a 100644
--- a/agent/kernel.h
+++ b/agent/kernel.h
@@ -1,7 +1,24 @@
+/***********************************************************************
+   Net-SNMP - Simple Network Management Protocol agent library.
+ ***********************************************************************/
+/** @file kernel.h
+ *     Net-SNMP Kernel Data Access Library - header.
+ *     Provides access to kernel virtual memory for systems that
+ *     support it.
+ * @author   See README file for a list of contributors
+ */
+/* Copyrights:
+ *     Copyright holders are listed in README file.
+ *     Redistribution and use in source and binary forms, with or
+ *     without modification, are permitted. License terms are specified
+ *     in COPYING file distributed with the Net-SNMP package.
+ */
+/***********************************************************************/
 
 #ifdef NETSNMP_CAN_USE_NLIST
 extern int      init_kmem(const char *);
 extern int      klookup(unsigned long, void *, size_t);
+extern void     free_kmem(void);
 #define NETSNMP_KLOOKUP(x,y,z) klookup((unsigned long) x,y,z)
 #else
 #define NETSNMP_KLOOKUP(x,y,z) (0)
@@ -11,3 +28,4 @@
 #include <kvm.h>
 extern kvm_t   *kd;
 #endif
+/***********************************************************************/
diff --git a/agent/mib_modules.c b/agent/mib_modules.c
index ea8271c..cde317e 100644
--- a/agent/mib_modules.c
+++ b/agent/mib_modules.c
@@ -17,11 +17,7 @@
 #endif
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -33,9 +29,6 @@
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
diff --git a/agent/mibgroup/Makefile.depend b/agent/mibgroup/Makefile.depend
index 4294bfb..1736670 100644
--- a/agent/mibgroup/Makefile.depend
+++ b/agent/mibgroup/Makefile.depend
@@ -8,12 +8,16 @@
 ./header_complex.lo: ../../include/net-snmp/net-snmp-includes.h
 ./header_complex.lo: ../../include/net-snmp/definitions.h
 ./header_complex.lo: ../../include/net-snmp/types.h 
+./header_complex.lo: ../../include/net-snmp/library/oid.h
 ./header_complex.lo: ../../include/net-snmp/library/types.h
 ./header_complex.lo: ../../include/net-snmp/library/snmp_api.h
 ./header_complex.lo: ../../include/net-snmp/varbind_api.h
 ./header_complex.lo: ../../include/net-snmp/library/snmp_client.h
 ./header_complex.lo: ../../include/net-snmp/pdu_api.h
 ./header_complex.lo: ../../include/net-snmp/library/asn1.h
+./header_complex.lo: ../../include/net-snmp/output_api.h
+./header_complex.lo: ../../include/net-snmp/library/snmp_debug.h
+./header_complex.lo: ../../include/net-snmp/library/snmp_logging.h
 ./header_complex.lo: ../../include/net-snmp/session_api.h
 ./header_complex.lo: ../../include/net-snmp/library/callback.h
 ./header_complex.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -21,8 +25,12 @@
 ./header_complex.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./header_complex.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./header_complex.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./header_complex.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./header_complex.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./header_complex.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./header_complex.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./header_complex.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./header_complex.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./header_complex.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./header_complex.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./header_complex.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -44,7 +52,6 @@
 ./header_complex.lo: ../../include/net-snmp/library/check_varbind.h
 ./header_complex.lo: ../../include/net-snmp/library/container.h
 ./header_complex.lo: ../../include/net-snmp/library/factory.h
-./header_complex.lo: ../../include/net-snmp/library/snmp_logging.h
 ./header_complex.lo: ../../include/net-snmp/library/container_binary_array.h
 ./header_complex.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./header_complex.lo: ../../include/net-snmp/library/container_iterator.h
@@ -54,11 +61,10 @@
 ./header_complex.lo: ../../include/net-snmp/config_api.h
 ./header_complex.lo: ../../include/net-snmp/library/read_config.h
 ./header_complex.lo: ../../include/net-snmp/library/default_store.h
+./header_complex.lo: ../../include/net-snmp/net-snmp-config.h
 ./header_complex.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./header_complex.lo: ../../include/net-snmp/library/snmp_enum.h
 ./header_complex.lo: ../../include/net-snmp/library/vacm.h
-./header_complex.lo: ../../include/net-snmp/output_api.h
-./header_complex.lo: ../../include/net-snmp/library/snmp_debug.h
 ./header_complex.lo: ../../include/net-snmp/snmpv3_api.h
 ./header_complex.lo: ../../include/net-snmp/library/snmpv3.h
 ./header_complex.lo: ../../include/net-snmp/library/transform_oids.h
@@ -67,6 +73,7 @@
 ./header_complex.lo: ../../include/net-snmp/library/lcd_time.h
 ./header_complex.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./header_complex.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./header_complex.lo: ../../include/net-snmp/library/snmptsm.h
 ./header_complex.lo: ../../include/net-snmp/library/snmpusm.h
 ./header_complex.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./header_complex.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -103,26 +110,24 @@
 ./header_complex.lo: ../../include/net-snmp/agent/table_iterator.h
 ./header_complex.lo: ../../include/net-snmp/agent/table_container.h
 ./header_complex.lo: ../../include/net-snmp/agent/table_array.h
-./header_complex.lo: ../../include/net-snmp/agent/mfd.h header_complex.h
+./header_complex.lo: ../../include/net-snmp/agent/mfd.h
+./header_complex.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./header_complex.lo: header_complex.h
 ./kernel_sunos5.lo: ../../include/net-snmp/net-snmp-config.h
-./kernel_sunos5.lo: ../../include/net-snmp/system/linux.h
-./kernel_sunos5.lo: ../../include/net-snmp/system/sysv.h
-./kernel_sunos5.lo: ../../include/net-snmp/system/generic.h
-./kernel_sunos5.lo: ../../include/net-snmp/machine/generic.h
 ./testhandler.lo: ../../include/net-snmp/net-snmp-config.h
-./testhandler.lo: ../../include/net-snmp/system/linux.h
-./testhandler.lo: ../../include/net-snmp/system/sysv.h
-./testhandler.lo: ../../include/net-snmp/system/generic.h
-./testhandler.lo: ../../include/net-snmp/machine/generic.h
 ./testhandler.lo: ../../include/net-snmp/net-snmp-includes.h
 ./testhandler.lo: ../../include/net-snmp/definitions.h
 ./testhandler.lo: ../../include/net-snmp/types.h 
+./testhandler.lo: ../../include/net-snmp/library/oid.h
 ./testhandler.lo: ../../include/net-snmp/library/types.h
 ./testhandler.lo: ../../include/net-snmp/library/snmp_api.h
 ./testhandler.lo: ../../include/net-snmp/varbind_api.h
 ./testhandler.lo: ../../include/net-snmp/library/snmp_client.h
 ./testhandler.lo: ../../include/net-snmp/pdu_api.h
 ./testhandler.lo: ../../include/net-snmp/library/asn1.h
+./testhandler.lo: ../../include/net-snmp/output_api.h
+./testhandler.lo: ../../include/net-snmp/library/snmp_debug.h
+./testhandler.lo: ../../include/net-snmp/library/snmp_logging.h
 ./testhandler.lo: ../../include/net-snmp/session_api.h
 ./testhandler.lo: ../../include/net-snmp/library/callback.h
 ./testhandler.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -130,8 +135,12 @@
 ./testhandler.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./testhandler.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./testhandler.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./testhandler.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./testhandler.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./testhandler.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./testhandler.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./testhandler.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./testhandler.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./testhandler.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./testhandler.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./testhandler.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -153,7 +162,6 @@
 ./testhandler.lo: ../../include/net-snmp/library/check_varbind.h
 ./testhandler.lo: ../../include/net-snmp/library/container.h
 ./testhandler.lo: ../../include/net-snmp/library/factory.h
-./testhandler.lo: ../../include/net-snmp/library/snmp_logging.h
 ./testhandler.lo: ../../include/net-snmp/library/container_binary_array.h
 ./testhandler.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./testhandler.lo: ../../include/net-snmp/library/container_iterator.h
@@ -166,8 +174,6 @@
 ./testhandler.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./testhandler.lo: ../../include/net-snmp/library/snmp_enum.h
 ./testhandler.lo: ../../include/net-snmp/library/vacm.h
-./testhandler.lo: ../../include/net-snmp/output_api.h
-./testhandler.lo: ../../include/net-snmp/library/snmp_debug.h
 ./testhandler.lo: ../../include/net-snmp/snmpv3_api.h
 ./testhandler.lo: ../../include/net-snmp/library/snmpv3.h
 ./testhandler.lo: ../../include/net-snmp/library/transform_oids.h
@@ -176,6 +182,7 @@
 ./testhandler.lo: ../../include/net-snmp/library/lcd_time.h
 ./testhandler.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./testhandler.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./testhandler.lo: ../../include/net-snmp/library/snmptsm.h
 ./testhandler.lo: ../../include/net-snmp/library/snmpusm.h
 ./testhandler.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./testhandler.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -212,21 +219,23 @@
 ./testhandler.lo: ../../include/net-snmp/agent/table_iterator.h
 ./testhandler.lo: ../../include/net-snmp/agent/table_container.h
 ./testhandler.lo: ../../include/net-snmp/agent/table_array.h
-./testhandler.lo: ../../include/net-snmp/agent/mfd.h testhandler.h
+./testhandler.lo: ../../include/net-snmp/agent/mfd.h
+./testhandler.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./testhandler.lo: testhandler.h
 ./util_funcs.lo: ../../include/net-snmp/net-snmp-config.h
-./util_funcs.lo: ../../include/net-snmp/system/linux.h
-./util_funcs.lo: ../../include/net-snmp/system/sysv.h
-./util_funcs.lo: ../../include/net-snmp/system/generic.h
-./util_funcs.lo: ../../include/net-snmp/machine/generic.h
 ./util_funcs.lo: ../../include/net-snmp/net-snmp-includes.h
-./util_funcs.lo: ../../include/net-snmp/definitions.h
+./util_funcs.lo:  ../../include/net-snmp/definitions.h
 ./util_funcs.lo: ../../include/net-snmp/types.h 
+./util_funcs.lo: ../../include/net-snmp/library/oid.h
 ./util_funcs.lo: ../../include/net-snmp/library/types.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmp_api.h
 ./util_funcs.lo: ../../include/net-snmp/varbind_api.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmp_client.h
 ./util_funcs.lo: ../../include/net-snmp/pdu_api.h
 ./util_funcs.lo: ../../include/net-snmp/library/asn1.h
+./util_funcs.lo: ../../include/net-snmp/output_api.h
+./util_funcs.lo: ../../include/net-snmp/library/snmp_debug.h
+./util_funcs.lo: ../../include/net-snmp/library/snmp_logging.h
 ./util_funcs.lo: ../../include/net-snmp/session_api.h
 ./util_funcs.lo: ../../include/net-snmp/library/callback.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -234,8 +243,12 @@
 ./util_funcs.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./util_funcs.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./util_funcs.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./util_funcs.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./util_funcs.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./util_funcs.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -257,7 +270,6 @@
 ./util_funcs.lo: ../../include/net-snmp/library/check_varbind.h
 ./util_funcs.lo: ../../include/net-snmp/library/container.h
 ./util_funcs.lo: ../../include/net-snmp/library/factory.h
-./util_funcs.lo: ../../include/net-snmp/library/snmp_logging.h
 ./util_funcs.lo: ../../include/net-snmp/library/container_binary_array.h
 ./util_funcs.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./util_funcs.lo: ../../include/net-snmp/library/container_iterator.h
@@ -270,8 +282,6 @@
 ./util_funcs.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmp_enum.h
 ./util_funcs.lo: ../../include/net-snmp/library/vacm.h
-./util_funcs.lo: ../../include/net-snmp/output_api.h
-./util_funcs.lo: ../../include/net-snmp/library/snmp_debug.h
 ./util_funcs.lo: ../../include/net-snmp/snmpv3_api.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmpv3.h
 ./util_funcs.lo: ../../include/net-snmp/library/transform_oids.h
@@ -280,6 +290,7 @@
 ./util_funcs.lo: ../../include/net-snmp/library/lcd_time.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./util_funcs.lo: ../../include/net-snmp/library/snmptsm.h
 ./util_funcs.lo: ../../include/net-snmp/library/snmpusm.h
 ./util_funcs.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./util_funcs.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -316,30 +327,28 @@
 ./util_funcs.lo: ../../include/net-snmp/agent/table_iterator.h
 ./util_funcs.lo: ../../include/net-snmp/agent/table_container.h
 ./util_funcs.lo: ../../include/net-snmp/agent/table_array.h
-./util_funcs.lo: ../../include/net-snmp/agent/mfd.h struct.h util_funcs.h
-./util_funcs.lo: util_funcs/header_generic.h util_funcs/header_simple_table.h
+./util_funcs.lo: ../../include/net-snmp/agent/mfd.h
+./util_funcs.lo: ../../include/net-snmp/agent/snmp_get_statistic.h struct.h
+./util_funcs.lo: util_funcs.h util_funcs/Exit.h util_funcs/header_generic.h
+./util_funcs.lo: util_funcs/header_simple_table.h util_funcs/restart.h
 ./util_funcs.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h utilities/execute.h
 ./util_funcs.lo: ucd-snmp/errormib.h mibdefs.h
 ./winExtDLL.lo: ../../include/net-snmp/net-snmp-config.h
-./winExtDLL.lo: ../../include/net-snmp/system/linux.h
-./winExtDLL.lo: ../../include/net-snmp/system/sysv.h
-./winExtDLL.lo: ../../include/net-snmp/system/generic.h
-./winExtDLL.lo: ../../include/net-snmp/machine/generic.h
 ./winExtDLL.lo: ../../include/net-snmp/agent/mib_module_config.h
 ./agent/extend.lo: ../../include/net-snmp/net-snmp-config.h
-./agent/extend.lo: ../../include/net-snmp/system/linux.h
-./agent/extend.lo: ../../include/net-snmp/system/sysv.h
-./agent/extend.lo: ../../include/net-snmp/system/generic.h
-./agent/extend.lo: ../../include/net-snmp/machine/generic.h
 ./agent/extend.lo: ../../include/net-snmp/net-snmp-includes.h
 ./agent/extend.lo: ../../include/net-snmp/definitions.h
 ./agent/extend.lo: ../../include/net-snmp/types.h 
+./agent/extend.lo: ../../include/net-snmp/library/oid.h
 ./agent/extend.lo: ../../include/net-snmp/library/types.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmp_api.h
 ./agent/extend.lo: ../../include/net-snmp/varbind_api.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmp_client.h
 ./agent/extend.lo: ../../include/net-snmp/pdu_api.h
 ./agent/extend.lo: ../../include/net-snmp/library/asn1.h
+./agent/extend.lo: ../../include/net-snmp/output_api.h
+./agent/extend.lo: ../../include/net-snmp/library/snmp_debug.h
+./agent/extend.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agent/extend.lo: ../../include/net-snmp/session_api.h
 ./agent/extend.lo: ../../include/net-snmp/library/callback.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -347,8 +356,12 @@
 ./agent/extend.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./agent/extend.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agent/extend.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agent/extend.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agent/extend.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./agent/extend.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -370,7 +383,6 @@
 ./agent/extend.lo: ../../include/net-snmp/library/check_varbind.h
 ./agent/extend.lo: ../../include/net-snmp/library/container.h
 ./agent/extend.lo: ../../include/net-snmp/library/factory.h
-./agent/extend.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agent/extend.lo: ../../include/net-snmp/library/container_binary_array.h
 ./agent/extend.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./agent/extend.lo: ../../include/net-snmp/library/container_iterator.h
@@ -383,8 +395,6 @@
 ./agent/extend.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmp_enum.h
 ./agent/extend.lo: ../../include/net-snmp/library/vacm.h
-./agent/extend.lo: ../../include/net-snmp/output_api.h
-./agent/extend.lo: ../../include/net-snmp/library/snmp_debug.h
 ./agent/extend.lo: ../../include/net-snmp/snmpv3_api.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmpv3.h
 ./agent/extend.lo: ../../include/net-snmp/library/transform_oids.h
@@ -393,6 +403,7 @@
 ./agent/extend.lo: ../../include/net-snmp/library/lcd_time.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./agent/extend.lo: ../../include/net-snmp/library/snmptsm.h
 ./agent/extend.lo: ../../include/net-snmp/library/snmpusm.h
 ./agent/extend.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agent/extend.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -430,23 +441,24 @@
 ./agent/extend.lo: ../../include/net-snmp/agent/table_container.h
 ./agent/extend.lo: ../../include/net-snmp/agent/table_array.h
 ./agent/extend.lo: ../../include/net-snmp/agent/mfd.h
+./agent/extend.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./agent/extend.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./agent/extend.lo: agent/extend.h utilities/execute.h struct.h
 ./agent/extend.lo: util_funcs/header_simple_table.h mibdefs.h
 ./agent/nsCache.lo: ../../include/net-snmp/net-snmp-config.h
-./agent/nsCache.lo: ../../include/net-snmp/system/linux.h
-./agent/nsCache.lo: ../../include/net-snmp/system/sysv.h
-./agent/nsCache.lo: ../../include/net-snmp/system/generic.h
-./agent/nsCache.lo: ../../include/net-snmp/machine/generic.h
 ./agent/nsCache.lo: ../../include/net-snmp/net-snmp-includes.h
 ./agent/nsCache.lo: ../../include/net-snmp/definitions.h
 ./agent/nsCache.lo: ../../include/net-snmp/types.h 
+./agent/nsCache.lo: ../../include/net-snmp/library/oid.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/types.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmp_api.h
 ./agent/nsCache.lo: ../../include/net-snmp/varbind_api.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmp_client.h
 ./agent/nsCache.lo: ../../include/net-snmp/pdu_api.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/asn1.h
+./agent/nsCache.lo: ../../include/net-snmp/output_api.h
+./agent/nsCache.lo: ../../include/net-snmp/library/snmp_debug.h
+./agent/nsCache.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agent/nsCache.lo: ../../include/net-snmp/session_api.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/callback.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -454,8 +466,12 @@
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./agent/nsCache.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agent/nsCache.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agent/nsCache.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agent/nsCache.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -477,7 +493,6 @@
 ./agent/nsCache.lo: ../../include/net-snmp/library/check_varbind.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/container.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/factory.h
-./agent/nsCache.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/container_binary_array.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/container_iterator.h
@@ -490,8 +505,6 @@
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmp_enum.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/vacm.h
-./agent/nsCache.lo: ../../include/net-snmp/output_api.h
-./agent/nsCache.lo: ../../include/net-snmp/library/snmp_debug.h
 ./agent/nsCache.lo: ../../include/net-snmp/snmpv3_api.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmpv3.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/transform_oids.h
@@ -500,6 +513,7 @@
 ./agent/nsCache.lo: ../../include/net-snmp/library/lcd_time.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./agent/nsCache.lo: ../../include/net-snmp/library/snmptsm.h
 ./agent/nsCache.lo: ../../include/net-snmp/library/snmpusm.h
 ./agent/nsCache.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agent/nsCache.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -536,21 +550,23 @@
 ./agent/nsCache.lo: ../../include/net-snmp/agent/table_iterator.h
 ./agent/nsCache.lo: ../../include/net-snmp/agent/table_container.h
 ./agent/nsCache.lo: ../../include/net-snmp/agent/table_array.h
-./agent/nsCache.lo: ../../include/net-snmp/agent/mfd.h agent/nsCache.h
+./agent/nsCache.lo: ../../include/net-snmp/agent/mfd.h
+./agent/nsCache.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./agent/nsCache.lo:  agent/nsCache.h
 ./agent/nsDebug.lo: ../../include/net-snmp/net-snmp-config.h
-./agent/nsDebug.lo: ../../include/net-snmp/system/linux.h
-./agent/nsDebug.lo: ../../include/net-snmp/system/sysv.h
-./agent/nsDebug.lo: ../../include/net-snmp/system/generic.h
-./agent/nsDebug.lo: ../../include/net-snmp/machine/generic.h
 ./agent/nsDebug.lo: ../../include/net-snmp/net-snmp-includes.h
 ./agent/nsDebug.lo: ../../include/net-snmp/definitions.h
 ./agent/nsDebug.lo: ../../include/net-snmp/types.h 
+./agent/nsDebug.lo: ../../include/net-snmp/library/oid.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/types.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_api.h
 ./agent/nsDebug.lo: ../../include/net-snmp/varbind_api.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_client.h
 ./agent/nsDebug.lo: ../../include/net-snmp/pdu_api.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/asn1.h
+./agent/nsDebug.lo: ../../include/net-snmp/output_api.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_debug.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agent/nsDebug.lo: ../../include/net-snmp/session_api.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/callback.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -558,8 +574,12 @@
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -581,7 +601,6 @@
 ./agent/nsDebug.lo: ../../include/net-snmp/library/check_varbind.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/container.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/factory.h
-./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/container_binary_array.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/container_iterator.h
@@ -594,8 +613,6 @@
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_enum.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/vacm.h
-./agent/nsDebug.lo: ../../include/net-snmp/output_api.h
-./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_debug.h
 ./agent/nsDebug.lo: ../../include/net-snmp/snmpv3_api.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmpv3.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/transform_oids.h
@@ -604,6 +621,7 @@
 ./agent/nsDebug.lo: ../../include/net-snmp/library/lcd_time.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./agent/nsDebug.lo: ../../include/net-snmp/library/snmptsm.h
 ./agent/nsDebug.lo: ../../include/net-snmp/library/snmpusm.h
 ./agent/nsDebug.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agent/nsDebug.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -640,21 +658,23 @@
 ./agent/nsDebug.lo: ../../include/net-snmp/agent/table_iterator.h
 ./agent/nsDebug.lo: ../../include/net-snmp/agent/table_container.h
 ./agent/nsDebug.lo: ../../include/net-snmp/agent/table_array.h
-./agent/nsDebug.lo: ../../include/net-snmp/agent/mfd.h agent/nsDebug.h
+./agent/nsDebug.lo: ../../include/net-snmp/agent/mfd.h
+./agent/nsDebug.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./agent/nsDebug.lo:  agent/nsDebug.h
 ./agent/nsLogging.lo: ../../include/net-snmp/net-snmp-config.h
-./agent/nsLogging.lo: ../../include/net-snmp/system/linux.h
-./agent/nsLogging.lo: ../../include/net-snmp/system/sysv.h
-./agent/nsLogging.lo: ../../include/net-snmp/system/generic.h
-./agent/nsLogging.lo: ../../include/net-snmp/machine/generic.h
 ./agent/nsLogging.lo: ../../include/net-snmp/net-snmp-includes.h
 ./agent/nsLogging.lo: ../../include/net-snmp/definitions.h
 ./agent/nsLogging.lo: ../../include/net-snmp/types.h 
+./agent/nsLogging.lo: ../../include/net-snmp/library/oid.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/types.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_api.h
 ./agent/nsLogging.lo: ../../include/net-snmp/varbind_api.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_client.h
 ./agent/nsLogging.lo: ../../include/net-snmp/pdu_api.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/asn1.h
+./agent/nsLogging.lo: ../../include/net-snmp/output_api.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_debug.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agent/nsLogging.lo: ../../include/net-snmp/session_api.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/callback.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -662,8 +682,12 @@
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -685,7 +709,6 @@
 ./agent/nsLogging.lo: ../../include/net-snmp/library/check_varbind.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/container.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/factory.h
-./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/container_binary_array.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/container_iterator.h
@@ -698,8 +721,6 @@
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_enum.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/vacm.h
-./agent/nsLogging.lo: ../../include/net-snmp/output_api.h
-./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_debug.h
 ./agent/nsLogging.lo: ../../include/net-snmp/snmpv3_api.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmpv3.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/transform_oids.h
@@ -708,6 +729,7 @@
 ./agent/nsLogging.lo: ../../include/net-snmp/library/lcd_time.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./agent/nsLogging.lo: ../../include/net-snmp/library/snmptsm.h
 ./agent/nsLogging.lo: ../../include/net-snmp/library/snmpusm.h
 ./agent/nsLogging.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agent/nsLogging.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -744,21 +766,23 @@
 ./agent/nsLogging.lo: ../../include/net-snmp/agent/table_iterator.h
 ./agent/nsLogging.lo: ../../include/net-snmp/agent/table_container.h
 ./agent/nsLogging.lo: ../../include/net-snmp/agent/table_array.h
-./agent/nsLogging.lo: ../../include/net-snmp/agent/mfd.h agent/nsLogging.h
+./agent/nsLogging.lo: ../../include/net-snmp/agent/mfd.h
+./agent/nsLogging.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./agent/nsLogging.lo:  agent/nsLogging.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/net-snmp-config.h
-./agent/nsModuleTable.lo: ../../include/net-snmp/system/linux.h
-./agent/nsModuleTable.lo: ../../include/net-snmp/system/sysv.h
-./agent/nsModuleTable.lo: ../../include/net-snmp/system/generic.h
-./agent/nsModuleTable.lo: ../../include/net-snmp/machine/generic.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/definitions.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/types.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/oid.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/types.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/varbind_api.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/pdu_api.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/asn1.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/output_api.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/session_api.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/callback.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -766,8 +790,12 @@
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -789,7 +817,6 @@
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/container.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/factory.h
-./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -802,8 +829,6 @@
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/vacm.h
-./agent/nsModuleTable.lo: ../../include/net-snmp/output_api.h
-./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -812,6 +837,7 @@
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -849,21 +875,22 @@
 ./agent/nsModuleTable.lo: ../../include/net-snmp/agent/table_container.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/agent/table_array.h
 ./agent/nsModuleTable.lo: ../../include/net-snmp/agent/mfd.h
+./agent/nsModuleTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./agent/nsModuleTable.lo: ./agent/nsModuleTable.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/net-snmp-config.h
-./agent/nsTransactionTable.lo: ../../include/net-snmp/system/linux.h
-./agent/nsTransactionTable.lo: ../../include/net-snmp/system/sysv.h
-./agent/nsTransactionTable.lo: ../../include/net-snmp/system/generic.h
-./agent/nsTransactionTable.lo: ../../include/net-snmp/machine/generic.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/definitions.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/types.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/oid.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/types.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/varbind_api.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/pdu_api.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/asn1.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/output_api.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/session_api.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/callback.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -871,8 +898,12 @@
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -894,7 +925,6 @@
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/container.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/factory.h
-./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -907,8 +937,6 @@
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/vacm.h
-./agent/nsTransactionTable.lo: ../../include/net-snmp/output_api.h
-./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -917,6 +945,7 @@
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -954,21 +983,22 @@
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/agent/table_container.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/agent/table_array.h
 ./agent/nsTransactionTable.lo: ../../include/net-snmp/agent/mfd.h
+./agent/nsTransactionTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./agent/nsTransactionTable.lo: ./agent/nsTransactionTable.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/net-snmp-config.h
-./agent/nsVacmAccessTable.lo: ../../include/net-snmp/system/linux.h
-./agent/nsVacmAccessTable.lo: ../../include/net-snmp/system/sysv.h
-./agent/nsVacmAccessTable.lo: ../../include/net-snmp/system/generic.h
-./agent/nsVacmAccessTable.lo: ../../include/net-snmp/machine/generic.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/definitions.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/types.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/oid.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/types.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/varbind_api.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/pdu_api.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/asn1.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/output_api.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/session_api.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/callback.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -976,8 +1006,12 @@
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -999,7 +1033,6 @@
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/container.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/factory.h
-./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1012,8 +1045,6 @@
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/vacm.h
-./agent/nsVacmAccessTable.lo: ../../include/net-snmp/output_api.h
-./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1022,6 +1053,7 @@
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1059,21 +1091,22 @@
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/agent/table_container.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/agent/table_array.h
 ./agent/nsVacmAccessTable.lo: ../../include/net-snmp/agent/mfd.h
+./agent/nsVacmAccessTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./agent/nsVacmAccessTable.lo: ./agent/nsVacmAccessTable.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/net-snmp-config.h
-./agentx/agentx_config.lo: ../../include/net-snmp/system/linux.h
-./agentx/agentx_config.lo: ../../include/net-snmp/system/sysv.h
-./agentx/agentx_config.lo: ../../include/net-snmp/system/generic.h
-./agentx/agentx_config.lo: ../../include/net-snmp/machine/generic.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/net-snmp-includes.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/definitions.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/types.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/oid.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/types.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_api.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/varbind_api.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_client.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/pdu_api.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/asn1.h
+./agentx/agentx_config.lo: ../../include/net-snmp/output_api.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_debug.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/session_api.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/callback.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1081,8 +1114,12 @@
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1104,7 +1141,6 @@
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/check_varbind.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/container.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/factory.h
-./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/container_binary_array.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1117,8 +1153,6 @@
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_enum.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/vacm.h
-./agentx/agentx_config.lo: ../../include/net-snmp/output_api.h
-./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_debug.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/snmpv3_api.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpv3.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1127,6 +1161,7 @@
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/lcd_time.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./agentx/agentx_config.lo: ../../include/net-snmp/library/snmptsm.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/library/snmpusm.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1164,22 +1199,23 @@
 ./agentx/agentx_config.lo: ../../include/net-snmp/agent/table_container.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/agent/table_array.h
 ./agentx/agentx_config.lo: ../../include/net-snmp/agent/mfd.h
+./agentx/agentx_config.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./agentx/agentx_config.lo: ../../agent/snmpd.h agentx/agentx_config.h
 ./agentx/agentx_config.lo: agentx/protocol.h
 ./agentx/client.lo: ../../include/net-snmp/net-snmp-config.h
-./agentx/client.lo: ../../include/net-snmp/system/linux.h
-./agentx/client.lo: ../../include/net-snmp/system/sysv.h
-./agentx/client.lo: ../../include/net-snmp/system/generic.h
-./agentx/client.lo: ../../include/net-snmp/machine/generic.h
 ./agentx/client.lo: ../../include/net-snmp/net-snmp-includes.h
 ./agentx/client.lo: ../../include/net-snmp/definitions.h
 ./agentx/client.lo: ../../include/net-snmp/types.h 
+./agentx/client.lo: ../../include/net-snmp/library/oid.h
 ./agentx/client.lo: ../../include/net-snmp/library/types.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmp_api.h
 ./agentx/client.lo: ../../include/net-snmp/varbind_api.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmp_client.h
 ./agentx/client.lo: ../../include/net-snmp/pdu_api.h
 ./agentx/client.lo: ../../include/net-snmp/library/asn1.h
+./agentx/client.lo: ../../include/net-snmp/output_api.h
+./agentx/client.lo: ../../include/net-snmp/library/snmp_debug.h
+./agentx/client.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agentx/client.lo: ../../include/net-snmp/session_api.h
 ./agentx/client.lo: ../../include/net-snmp/library/callback.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1187,8 +1223,12 @@
 ./agentx/client.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./agentx/client.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agentx/client.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agentx/client.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agentx/client.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./agentx/client.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1210,7 +1250,6 @@
 ./agentx/client.lo: ../../include/net-snmp/library/check_varbind.h
 ./agentx/client.lo: ../../include/net-snmp/library/container.h
 ./agentx/client.lo: ../../include/net-snmp/library/factory.h
-./agentx/client.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agentx/client.lo: ../../include/net-snmp/library/container_binary_array.h
 ./agentx/client.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./agentx/client.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1223,8 +1262,6 @@
 ./agentx/client.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmp_enum.h
 ./agentx/client.lo: ../../include/net-snmp/library/vacm.h
-./agentx/client.lo: ../../include/net-snmp/output_api.h
-./agentx/client.lo: ../../include/net-snmp/library/snmp_debug.h
 ./agentx/client.lo: ../../include/net-snmp/snmpv3_api.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmpv3.h
 ./agentx/client.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1233,6 +1270,7 @@
 ./agentx/client.lo: ../../include/net-snmp/library/lcd_time.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./agentx/client.lo: ../../include/net-snmp/library/snmptsm.h
 ./agentx/client.lo: ../../include/net-snmp/library/snmpusm.h
 ./agentx/client.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agentx/client.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1270,22 +1308,23 @@
 ./agentx/client.lo: ../../include/net-snmp/agent/table_container.h
 ./agentx/client.lo: ../../include/net-snmp/agent/table_array.h
 ./agentx/client.lo: ../../include/net-snmp/agent/mfd.h
+./agentx/client.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./agentx/client.lo: ../../include/net-snmp/agent/agent_index.h
 ./agentx/client.lo: agentx/protocol.h agentx/client.h agentx/subagent.h
 ./agentx/master_admin.lo: ../../include/net-snmp/net-snmp-config.h
-./agentx/master_admin.lo: ../../include/net-snmp/system/linux.h
-./agentx/master_admin.lo: ../../include/net-snmp/system/sysv.h
-./agentx/master_admin.lo: ../../include/net-snmp/system/generic.h
-./agentx/master_admin.lo: ../../include/net-snmp/machine/generic.h
 ./agentx/master_admin.lo: ../../include/net-snmp/net-snmp-includes.h
 ./agentx/master_admin.lo: ../../include/net-snmp/definitions.h
 ./agentx/master_admin.lo: ../../include/net-snmp/types.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/oid.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/types.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_api.h
 ./agentx/master_admin.lo: ../../include/net-snmp/varbind_api.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_client.h
 ./agentx/master_admin.lo: ../../include/net-snmp/pdu_api.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/asn1.h
+./agentx/master_admin.lo: ../../include/net-snmp/output_api.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_debug.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agentx/master_admin.lo: ../../include/net-snmp/session_api.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/callback.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1293,8 +1332,12 @@
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1316,7 +1359,6 @@
 ./agentx/master_admin.lo: ../../include/net-snmp/library/check_varbind.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/container.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/factory.h
-./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/container_binary_array.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1329,8 +1371,6 @@
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_enum.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/vacm.h
-./agentx/master_admin.lo: ../../include/net-snmp/output_api.h
-./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_debug.h
 ./agentx/master_admin.lo: ../../include/net-snmp/snmpv3_api.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmpv3.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1339,6 +1379,7 @@
 ./agentx/master_admin.lo: ../../include/net-snmp/library/lcd_time.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./agentx/master_admin.lo: ../../include/net-snmp/library/snmptsm.h
 ./agentx/master_admin.lo: ../../include/net-snmp/library/snmpusm.h
 ./agentx/master_admin.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agentx/master_admin.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1376,25 +1417,26 @@
 ./agentx/master_admin.lo: ../../include/net-snmp/agent/table_container.h
 ./agentx/master_admin.lo: ../../include/net-snmp/agent/table_array.h
 ./agentx/master_admin.lo: ../../include/net-snmp/agent/mfd.h
+./agentx/master_admin.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./agentx/master_admin.lo: agentx/protocol.h agentx/client.h
 ./agentx/master_admin.lo: ../../include/net-snmp/agent/agent_index.h
 ./agentx/master_admin.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./agentx/master_admin.lo: ../../include/net-snmp/agent/agent_sysORTable.h
 ./agentx/master_admin.lo: ./agentx/master.h
 ./agentx/master.lo: ../../include/net-snmp/net-snmp-config.h
-./agentx/master.lo: ../../include/net-snmp/system/linux.h
-./agentx/master.lo: ../../include/net-snmp/system/sysv.h
-./agentx/master.lo: ../../include/net-snmp/system/generic.h
-./agentx/master.lo: ../../include/net-snmp/machine/generic.h
 ./agentx/master.lo: ../../include/net-snmp/net-snmp-includes.h
 ./agentx/master.lo: ../../include/net-snmp/definitions.h
 ./agentx/master.lo: ../../include/net-snmp/types.h 
+./agentx/master.lo: ../../include/net-snmp/library/oid.h
 ./agentx/master.lo: ../../include/net-snmp/library/types.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmp_api.h
 ./agentx/master.lo: ../../include/net-snmp/varbind_api.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmp_client.h
 ./agentx/master.lo: ../../include/net-snmp/pdu_api.h
 ./agentx/master.lo: ../../include/net-snmp/library/asn1.h
+./agentx/master.lo: ../../include/net-snmp/output_api.h
+./agentx/master.lo: ../../include/net-snmp/library/snmp_debug.h
+./agentx/master.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agentx/master.lo: ../../include/net-snmp/session_api.h
 ./agentx/master.lo: ../../include/net-snmp/library/callback.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1402,8 +1444,12 @@
 ./agentx/master.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./agentx/master.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agentx/master.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agentx/master.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agentx/master.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./agentx/master.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1425,7 +1471,6 @@
 ./agentx/master.lo: ../../include/net-snmp/library/check_varbind.h
 ./agentx/master.lo: ../../include/net-snmp/library/container.h
 ./agentx/master.lo: ../../include/net-snmp/library/factory.h
-./agentx/master.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agentx/master.lo: ../../include/net-snmp/library/container_binary_array.h
 ./agentx/master.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./agentx/master.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1438,8 +1483,6 @@
 ./agentx/master.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmp_enum.h
 ./agentx/master.lo: ../../include/net-snmp/library/vacm.h
-./agentx/master.lo: ../../include/net-snmp/output_api.h
-./agentx/master.lo: ../../include/net-snmp/library/snmp_debug.h
 ./agentx/master.lo: ../../include/net-snmp/snmpv3_api.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmpv3.h
 ./agentx/master.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1448,6 +1491,7 @@
 ./agentx/master.lo: ../../include/net-snmp/library/lcd_time.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./agentx/master.lo: ../../include/net-snmp/library/snmptsm.h
 ./agentx/master.lo: ../../include/net-snmp/library/snmpusm.h
 ./agentx/master.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agentx/master.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1484,22 +1528,24 @@
 ./agentx/master.lo: ../../include/net-snmp/agent/table_iterator.h
 ./agentx/master.lo: ../../include/net-snmp/agent/table_container.h
 ./agentx/master.lo: ../../include/net-snmp/agent/table_array.h
-./agentx/master.lo: ../../include/net-snmp/agent/mfd.h ../../agent/snmpd.h
-./agentx/master.lo: agentx/protocol.h agentx/master_admin.h
+./agentx/master.lo: ../../include/net-snmp/agent/mfd.h
+./agentx/master.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./agentx/master.lo: ../../agent/snmpd.h agentx/protocol.h
+./agentx/master.lo: agentx/master_admin.h
 ./agentx/protocol.lo: ../../include/net-snmp/net-snmp-config.h
-./agentx/protocol.lo: ../../include/net-snmp/system/linux.h
-./agentx/protocol.lo: ../../include/net-snmp/system/sysv.h
-./agentx/protocol.lo: ../../include/net-snmp/system/generic.h
-./agentx/protocol.lo: ../../include/net-snmp/machine/generic.h
 ./agentx/protocol.lo: ../../include/net-snmp/net-snmp-includes.h
 ./agentx/protocol.lo: ../../include/net-snmp/definitions.h
 ./agentx/protocol.lo: ../../include/net-snmp/types.h 
+./agentx/protocol.lo: ../../include/net-snmp/library/oid.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/types.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmp_api.h
 ./agentx/protocol.lo: ../../include/net-snmp/varbind_api.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmp_client.h
 ./agentx/protocol.lo: ../../include/net-snmp/pdu_api.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/asn1.h
+./agentx/protocol.lo: ../../include/net-snmp/output_api.h
+./agentx/protocol.lo: ../../include/net-snmp/library/snmp_debug.h
+./agentx/protocol.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agentx/protocol.lo: ../../include/net-snmp/session_api.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/callback.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1507,8 +1553,12 @@
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./agentx/protocol.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agentx/protocol.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agentx/protocol.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agentx/protocol.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1530,7 +1580,6 @@
 ./agentx/protocol.lo: ../../include/net-snmp/library/check_varbind.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/container.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/factory.h
-./agentx/protocol.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/container_binary_array.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1543,8 +1592,6 @@
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmp_enum.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/vacm.h
-./agentx/protocol.lo: ../../include/net-snmp/output_api.h
-./agentx/protocol.lo: ../../include/net-snmp/library/snmp_debug.h
 ./agentx/protocol.lo: ../../include/net-snmp/snmpv3_api.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmpv3.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1553,22 +1600,23 @@
 ./agentx/protocol.lo: ../../include/net-snmp/library/lcd_time.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./agentx/protocol.lo: ../../include/net-snmp/library/snmptsm.h
 ./agentx/protocol.lo: ../../include/net-snmp/library/snmpusm.h
 ./agentx/protocol.lo: agentx/protocol.h
 ./agentx/subagent.lo: ../../include/net-snmp/net-snmp-config.h
-./agentx/subagent.lo: ../../include/net-snmp/system/linux.h
-./agentx/subagent.lo: ../../include/net-snmp/system/sysv.h
-./agentx/subagent.lo: ../../include/net-snmp/system/generic.h
-./agentx/subagent.lo: ../../include/net-snmp/machine/generic.h
 ./agentx/subagent.lo: ../../include/net-snmp/net-snmp-includes.h
 ./agentx/subagent.lo: ../../include/net-snmp/definitions.h
 ./agentx/subagent.lo: ../../include/net-snmp/types.h 
+./agentx/subagent.lo: ../../include/net-snmp/library/oid.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/types.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmp_api.h
 ./agentx/subagent.lo: ../../include/net-snmp/varbind_api.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmp_client.h
 ./agentx/subagent.lo: ../../include/net-snmp/pdu_api.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/asn1.h
+./agentx/subagent.lo: ../../include/net-snmp/output_api.h
+./agentx/subagent.lo: ../../include/net-snmp/library/snmp_debug.h
+./agentx/subagent.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agentx/subagent.lo: ../../include/net-snmp/session_api.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/callback.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1576,8 +1624,12 @@
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./agentx/subagent.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agentx/subagent.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agentx/subagent.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agentx/subagent.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1599,7 +1651,6 @@
 ./agentx/subagent.lo: ../../include/net-snmp/library/check_varbind.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/container.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/factory.h
-./agentx/subagent.lo: ../../include/net-snmp/library/snmp_logging.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/container_binary_array.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1612,8 +1663,6 @@
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmp_enum.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/vacm.h
-./agentx/subagent.lo: ../../include/net-snmp/output_api.h
-./agentx/subagent.lo: ../../include/net-snmp/library/snmp_debug.h
 ./agentx/subagent.lo: ../../include/net-snmp/snmpv3_api.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmpv3.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1622,6 +1671,7 @@
 ./agentx/subagent.lo: ../../include/net-snmp/library/lcd_time.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./agentx/subagent.lo: ../../include/net-snmp/library/snmptsm.h
 ./agentx/subagent.lo: ../../include/net-snmp/library/snmpusm.h
 ./agentx/subagent.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./agentx/subagent.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1658,27 +1708,28 @@
 ./agentx/subagent.lo: ../../include/net-snmp/agent/table_iterator.h
 ./agentx/subagent.lo: ../../include/net-snmp/agent/table_container.h
 ./agentx/subagent.lo: ../../include/net-snmp/agent/table_array.h
-./agentx/subagent.lo: ../../include/net-snmp/agent/mfd.h ../../agent/snmpd.h
-./agentx/subagent.lo: agentx/protocol.h agentx/client.h
+./agentx/subagent.lo: ../../include/net-snmp/agent/mfd.h
+./agentx/subagent.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./agentx/subagent.lo: ../../agent/snmpd.h agentx/protocol.h agentx/client.h
 ./agentx/subagent.lo: agentx/agentx_config.h
 ./agentx/subagent.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./agentx/subagent.lo: ../../include/net-snmp/agent/sysORTable.h
 ./agentx/subagent.lo: ../../include/net-snmp/agent/agent_sysORTable.h
 ./agentx/subagent.lo: ./agentx/subagent.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/net-snmp-config.h
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/system/linux.h
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/system/sysv.h
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/system/generic.h
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/machine/generic.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/definitions.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/types.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/oid.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/types.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/pdu_api.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/asn1.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/output_api.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/session_api.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1686,8 +1737,12 @@
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1709,7 +1764,6 @@
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/factory.h
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1722,8 +1776,6 @@
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/vacm.h
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/output_api.h
-./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1732,6 +1784,7 @@
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1769,21 +1822,22 @@
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/agent/table_container.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/agent/table_array.h
 ./disman/mteEventNotificationTable.lo: ../../include/net-snmp/agent/mfd.h
+./disman/mteEventNotificationTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./disman/mteEventNotificationTable.lo: ./disman/mteEventNotificationTable.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/net-snmp-config.h
-./disman/mteEventTable.lo: ../../include/net-snmp/system/linux.h
-./disman/mteEventTable.lo: ../../include/net-snmp/system/sysv.h
-./disman/mteEventTable.lo: ../../include/net-snmp/system/generic.h
-./disman/mteEventTable.lo: ../../include/net-snmp/machine/generic.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/definitions.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/types.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/oid.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/types.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/pdu_api.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/asn1.h
+./disman/mteEventTable.lo: ../../include/net-snmp/output_api.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/session_api.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1791,8 +1845,12 @@
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1814,7 +1872,6 @@
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/factory.h
-./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1827,8 +1884,6 @@
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/vacm.h
-./disman/mteEventTable.lo: ../../include/net-snmp/output_api.h
-./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1837,6 +1892,7 @@
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./disman/mteEventTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1874,24 +1930,25 @@
 ./disman/mteEventTable.lo: ../../include/net-snmp/agent/table_container.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/agent/table_array.h
 ./disman/mteEventTable.lo: ../../include/net-snmp/agent/mfd.h
+./disman/mteEventTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./disman/mteEventTable.lo: ./disman/mteTriggerTable.h
 ./disman/mteEventTable.lo: ./disman/mteEventTable.h
 ./disman/mteEventTable.lo: ./disman/mteEventNotificationTable.h
 ./disman/mteEventTable.lo: ./disman/mteObjectsTable.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/net-snmp-config.h
-./disman/mteObjectsTable.lo: ../../include/net-snmp/system/linux.h
-./disman/mteObjectsTable.lo: ../../include/net-snmp/system/sysv.h
-./disman/mteObjectsTable.lo: ../../include/net-snmp/system/generic.h
-./disman/mteObjectsTable.lo: ../../include/net-snmp/machine/generic.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/definitions.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/types.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/oid.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/types.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/pdu_api.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/asn1.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/output_api.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/session_api.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -1899,8 +1956,12 @@
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -1922,7 +1983,6 @@
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/factory.h
-./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -1935,8 +1995,6 @@
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/vacm.h
-./disman/mteObjectsTable.lo: ../../include/net-snmp/output_api.h
-./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -1945,6 +2003,7 @@
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -1982,22 +2041,23 @@
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/agent/table_container.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/agent/table_array.h
 ./disman/mteObjectsTable.lo: ../../include/net-snmp/agent/mfd.h
+./disman/mteObjectsTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./disman/mteObjectsTable.lo: header_complex.h ./disman/mteTriggerTable.h
 ./disman/mteObjectsTable.lo: ./disman/mteObjectsTable.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/net-snmp-config.h
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/system/linux.h
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/system/sysv.h
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/system/generic.h
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/machine/generic.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/definitions.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/types.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/oid.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/types.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/pdu_api.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/asn1.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/output_api.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/session_api.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2005,8 +2065,12 @@
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2028,7 +2092,6 @@
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/factory.h
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2041,8 +2104,6 @@
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/vacm.h
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/output_api.h
-./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2051,6 +2112,7 @@
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2088,23 +2150,24 @@
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/agent/table_container.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/agent/table_array.h
 ./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/agent/mfd.h
+./disman/mteTriggerBooleanTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./disman/mteTriggerBooleanTable.lo: header_complex.h
 ./disman/mteTriggerBooleanTable.lo: ./disman/mteTriggerBooleanTable.h
 ./disman/mteTriggerBooleanTable.lo: ./disman/mteTriggerTable.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/net-snmp-config.h
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/system/linux.h
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/system/sysv.h
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/system/generic.h
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/machine/generic.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/definitions.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/types.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/oid.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/types.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/pdu_api.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/asn1.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/output_api.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/session_api.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2112,8 +2175,12 @@
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2135,7 +2202,6 @@
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/factory.h
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2148,8 +2214,6 @@
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/vacm.h
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/output_api.h
-./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2158,6 +2222,7 @@
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2195,23 +2260,24 @@
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/agent/table_container.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/agent/table_array.h
 ./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/agent/mfd.h
+./disman/mteTriggerDeltaTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./disman/mteTriggerDeltaTable.lo: header_complex.h
 ./disman/mteTriggerDeltaTable.lo: ./disman/mteTriggerDeltaTable.h
 ./disman/mteTriggerDeltaTable.lo: ./disman/mteTriggerTable.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/net-snmp-config.h
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/system/linux.h
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/system/sysv.h
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/system/generic.h
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/machine/generic.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/definitions.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/types.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/oid.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/types.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/pdu_api.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/asn1.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/output_api.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/session_api.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2219,8 +2285,12 @@
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2242,7 +2312,6 @@
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/factory.h
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2255,8 +2324,6 @@
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/vacm.h
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/output_api.h
-./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2265,6 +2332,7 @@
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2302,23 +2370,24 @@
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/agent/table_container.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/agent/table_array.h
 ./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/agent/mfd.h
+./disman/mteTriggerExistenceTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./disman/mteTriggerExistenceTable.lo: header_complex.h
 ./disman/mteTriggerExistenceTable.lo: ./disman/mteTriggerExistenceTable.h
 ./disman/mteTriggerExistenceTable.lo: ./disman/mteTriggerTable.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/net-snmp-config.h
-./disman/mteTriggerTable.lo: ../../include/net-snmp/system/linux.h
-./disman/mteTriggerTable.lo: ../../include/net-snmp/system/sysv.h
-./disman/mteTriggerTable.lo: ../../include/net-snmp/system/generic.h
-./disman/mteTriggerTable.lo: ../../include/net-snmp/machine/generic.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/definitions.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/types.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/oid.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/types.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/pdu_api.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/asn1.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/output_api.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/session_api.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2326,8 +2395,12 @@
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2349,7 +2422,6 @@
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/factory.h
-./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2362,8 +2434,6 @@
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/vacm.h
-./disman/mteTriggerTable.lo: ../../include/net-snmp/output_api.h
-./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2372,6 +2442,7 @@
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2409,6 +2480,7 @@
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/agent/table_container.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/agent/table_array.h
 ./disman/mteTriggerTable.lo: ../../include/net-snmp/agent/mfd.h
+./disman/mteTriggerTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./disman/mteTriggerTable.lo: header_complex.h ./disman/mteTriggerTable.h
 ./disman/mteTriggerTable.lo: ./disman/mteTriggerBooleanTable.h
 ./disman/mteTriggerTable.lo: ./disman/mteTriggerDeltaTable.h
@@ -2417,19 +2489,19 @@
 ./disman/mteTriggerTable.lo: ./disman/mteEventTable.h
 ./disman/mteTriggerTable.lo: ./disman/mteObjectsTable.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/net-snmp-config.h
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/system/linux.h
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/system/sysv.h
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/system/generic.h
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/machine/generic.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/definitions.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/types.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/oid.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/types.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/varbind_api.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/pdu_api.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/asn1.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/output_api.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/session_api.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/callback.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2437,8 +2509,12 @@
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2460,7 +2536,6 @@
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/container.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/factory.h
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2473,8 +2548,6 @@
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/vacm.h
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/output_api.h
-./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2483,6 +2556,7 @@
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2520,23 +2594,24 @@
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/agent/table_container.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/agent/table_array.h
 ./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/agent/mfd.h
+./disman/mteTriggerThresholdTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./disman/mteTriggerThresholdTable.lo: header_complex.h
 ./disman/mteTriggerThresholdTable.lo: ./disman/mteTriggerThresholdTable.h
 ./disman/mteTriggerThresholdTable.lo: ./disman/mteTriggerTable.h
 ./examples/data_set.lo: ../../include/net-snmp/net-snmp-config.h
-./examples/data_set.lo: ../../include/net-snmp/system/linux.h
-./examples/data_set.lo: ../../include/net-snmp/system/sysv.h
-./examples/data_set.lo: ../../include/net-snmp/system/generic.h
-./examples/data_set.lo: ../../include/net-snmp/machine/generic.h
 ./examples/data_set.lo: ../../include/net-snmp/net-snmp-includes.h
 ./examples/data_set.lo: ../../include/net-snmp/definitions.h
 ./examples/data_set.lo: ../../include/net-snmp/types.h
+./examples/data_set.lo: ../../include/net-snmp/library/oid.h
 ./examples/data_set.lo: ../../include/net-snmp/library/types.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmp_api.h
 ./examples/data_set.lo: ../../include/net-snmp/varbind_api.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/data_set.lo: ../../include/net-snmp/pdu_api.h
 ./examples/data_set.lo: ../../include/net-snmp/library/asn1.h
+./examples/data_set.lo: ../../include/net-snmp/output_api.h
+./examples/data_set.lo: ../../include/net-snmp/library/snmp_debug.h
+./examples/data_set.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/data_set.lo: ../../include/net-snmp/session_api.h
 ./examples/data_set.lo: ../../include/net-snmp/library/callback.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2544,8 +2619,12 @@
 ./examples/data_set.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./examples/data_set.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./examples/data_set.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./examples/data_set.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./examples/data_set.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./examples/data_set.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2567,7 +2646,6 @@
 ./examples/data_set.lo: ../../include/net-snmp/library/check_varbind.h
 ./examples/data_set.lo: ../../include/net-snmp/library/container.h
 ./examples/data_set.lo: ../../include/net-snmp/library/factory.h
-./examples/data_set.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/data_set.lo: ../../include/net-snmp/library/container_binary_array.h
 ./examples/data_set.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./examples/data_set.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2580,8 +2658,6 @@
 ./examples/data_set.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmp_enum.h
 ./examples/data_set.lo: ../../include/net-snmp/library/vacm.h
-./examples/data_set.lo: ../../include/net-snmp/output_api.h
-./examples/data_set.lo: ../../include/net-snmp/library/snmp_debug.h
 ./examples/data_set.lo: ../../include/net-snmp/snmpv3_api.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmpv3.h
 ./examples/data_set.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2590,6 +2666,7 @@
 ./examples/data_set.lo: ../../include/net-snmp/library/lcd_time.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./examples/data_set.lo: ../../include/net-snmp/library/snmptsm.h
 ./examples/data_set.lo: ../../include/net-snmp/library/snmpusm.h
 ./examples/data_set.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./examples/data_set.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2627,20 +2704,21 @@
 ./examples/data_set.lo: ../../include/net-snmp/agent/table_container.h
 ./examples/data_set.lo: ../../include/net-snmp/agent/table_array.h
 ./examples/data_set.lo: ../../include/net-snmp/agent/mfd.h
+./examples/data_set.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/net-snmp-config.h
-./examples/delayed_instance.lo: ../../include/net-snmp/system/linux.h
-./examples/delayed_instance.lo: ../../include/net-snmp/system/sysv.h
-./examples/delayed_instance.lo: ../../include/net-snmp/system/generic.h
-./examples/delayed_instance.lo: ../../include/net-snmp/machine/generic.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/net-snmp-includes.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/definitions.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/types.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/oid.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/types.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_api.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/varbind_api.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/pdu_api.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/asn1.h
+./examples/delayed_instance.lo: ../../include/net-snmp/output_api.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_debug.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/session_api.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/callback.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2648,8 +2726,12 @@
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2671,7 +2753,6 @@
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/check_varbind.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/container.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/factory.h
-./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/container_binary_array.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2684,8 +2765,6 @@
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_enum.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/vacm.h
-./examples/delayed_instance.lo: ../../include/net-snmp/output_api.h
-./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_debug.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/snmpv3_api.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpv3.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2694,6 +2773,7 @@
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/lcd_time.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./examples/delayed_instance.lo: ../../include/net-snmp/library/snmptsm.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/library/snmpusm.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2731,21 +2811,22 @@
 ./examples/delayed_instance.lo: ../../include/net-snmp/agent/table_container.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/agent/table_array.h
 ./examples/delayed_instance.lo: ../../include/net-snmp/agent/mfd.h
+./examples/delayed_instance.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./examples/delayed_instance.lo: ./examples/delayed_instance.h
 ./examples/example.lo: ../../include/net-snmp/net-snmp-config.h
-./examples/example.lo: ../../include/net-snmp/system/linux.h
-./examples/example.lo: ../../include/net-snmp/system/sysv.h
-./examples/example.lo: ../../include/net-snmp/system/generic.h
-./examples/example.lo: ../../include/net-snmp/machine/generic.h
 ./examples/example.lo: ../../include/net-snmp/net-snmp-includes.h
 ./examples/example.lo: ../../include/net-snmp/definitions.h
 ./examples/example.lo: ../../include/net-snmp/types.h 
+./examples/example.lo: ../../include/net-snmp/library/oid.h
 ./examples/example.lo: ../../include/net-snmp/library/types.h
 ./examples/example.lo: ../../include/net-snmp/library/snmp_api.h
 ./examples/example.lo: ../../include/net-snmp/varbind_api.h
 ./examples/example.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/example.lo: ../../include/net-snmp/pdu_api.h
 ./examples/example.lo: ../../include/net-snmp/library/asn1.h
+./examples/example.lo: ../../include/net-snmp/output_api.h
+./examples/example.lo: ../../include/net-snmp/library/snmp_debug.h
+./examples/example.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/example.lo: ../../include/net-snmp/session_api.h
 ./examples/example.lo: ../../include/net-snmp/library/callback.h
 ./examples/example.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2753,8 +2834,12 @@
 ./examples/example.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./examples/example.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./examples/example.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./examples/example.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./examples/example.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./examples/example.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./examples/example.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./examples/example.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./examples/example.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./examples/example.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./examples/example.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./examples/example.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2776,7 +2861,6 @@
 ./examples/example.lo: ../../include/net-snmp/library/check_varbind.h
 ./examples/example.lo: ../../include/net-snmp/library/container.h
 ./examples/example.lo: ../../include/net-snmp/library/factory.h
-./examples/example.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/example.lo: ../../include/net-snmp/library/container_binary_array.h
 ./examples/example.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./examples/example.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2789,8 +2873,6 @@
 ./examples/example.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./examples/example.lo: ../../include/net-snmp/library/snmp_enum.h
 ./examples/example.lo: ../../include/net-snmp/library/vacm.h
-./examples/example.lo: ../../include/net-snmp/output_api.h
-./examples/example.lo: ../../include/net-snmp/library/snmp_debug.h
 ./examples/example.lo: ../../include/net-snmp/snmpv3_api.h
 ./examples/example.lo: ../../include/net-snmp/library/snmpv3.h
 ./examples/example.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2799,6 +2881,7 @@
 ./examples/example.lo: ../../include/net-snmp/library/lcd_time.h
 ./examples/example.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./examples/example.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./examples/example.lo: ../../include/net-snmp/library/snmptsm.h
 ./examples/example.lo: ../../include/net-snmp/library/snmpusm.h
 ./examples/example.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./examples/example.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2836,21 +2919,22 @@
 ./examples/example.lo: ../../include/net-snmp/agent/table_container.h
 ./examples/example.lo: ../../include/net-snmp/agent/table_array.h
 ./examples/example.lo: ../../include/net-snmp/agent/mfd.h
+./examples/example.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./examples/example.lo: util_funcs/header_generic.h ./examples/example.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/net-snmp-config.h
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/system/linux.h
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/system/sysv.h
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/system/generic.h
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/machine/generic.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/net-snmp-includes.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/definitions.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/types.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/oid.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/types.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_api.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/varbind_api.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/pdu_api.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/asn1.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/output_api.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_debug.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/session_api.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/callback.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2858,8 +2942,12 @@
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2881,7 +2969,6 @@
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/check_varbind.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/container.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/factory.h
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/container_binary_array.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/container_iterator.h
@@ -2894,8 +2981,6 @@
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_enum.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/vacm.h
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/output_api.h
-./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_debug.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/snmpv3_api.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpv3.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/transform_oids.h
@@ -2904,6 +2989,7 @@
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/lcd_time.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmptsm.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/library/snmpusm.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -2941,22 +3027,23 @@
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/agent/table_container.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/agent/table_array.h
 ./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/agent/mfd.h
+./examples/netSnmpHostsTable_access.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./examples/netSnmpHostsTable_access.lo: ./examples/netSnmpHostsTable_access.h
 ./examples/netSnmpHostsTable_access.lo: ./examples/netSnmpHostsTable_enums.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/net-snmp-config.h
-./examples/netSnmpHostsTable.lo: ../../include/net-snmp/system/linux.h
-./examples/netSnmpHostsTable.lo: ../../include/net-snmp/system/sysv.h
-./examples/netSnmpHostsTable.lo: ../../include/net-snmp/system/generic.h
-./examples/netSnmpHostsTable.lo: ../../include/net-snmp/machine/generic.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/definitions.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/types.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/oid.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/types.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/varbind_api.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/pdu_api.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/asn1.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/output_api.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/session_api.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/callback.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -2964,8 +3051,12 @@
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -2987,7 +3078,6 @@
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/container.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/factory.h
-./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -3000,8 +3090,6 @@
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/vacm.h
-./examples/netSnmpHostsTable.lo: ../../include/net-snmp/output_api.h
-./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -3010,6 +3098,7 @@
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -3047,25 +3136,26 @@
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/agent/table_container.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/agent/table_array.h
 ./examples/netSnmpHostsTable.lo: ../../include/net-snmp/agent/mfd.h
+./examples/netSnmpHostsTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./examples/netSnmpHostsTable.lo: ./examples/netSnmpHostsTable.h
 ./examples/netSnmpHostsTable.lo: ./examples/netSnmpHostsTable_columns.h
 ./examples/netSnmpHostsTable.lo: ./examples/netSnmpHostsTable_enums.h
 ./examples/netSnmpHostsTable.lo: ./examples/netSnmpHostsTable_checkfns.h
 ./examples/netSnmpHostsTable.lo: ./examples/netSnmpHostsTable_access.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/net-snmp-config.h
-./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/system/linux.h
-./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/system/sysv.h
-./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/system/generic.h
-./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/machine/generic.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/net-snmp-includes.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/definitions.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/types.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/oid.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/types.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_api.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/varbind_api.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/pdu_api.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/asn1.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/output_api.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_debug.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/session_api.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/callback.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -3073,8 +3163,12 @@
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -3096,7 +3190,6 @@
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/check_varbind.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/container.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/factory.h
-./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/container_binary_array.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/container_iterator.h
@@ -3109,8 +3202,6 @@
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_enum.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/vacm.h
-./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/output_api.h
-./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_debug.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/snmpv3_api.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpv3.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/transform_oids.h
@@ -3119,24 +3210,25 @@
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/lcd_time.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmptsm.h
 ./examples/netSnmpHostsTable_checkfns.lo: ../../include/net-snmp/library/snmpusm.h
 ./examples/netSnmpHostsTable_checkfns.lo: ./examples/netSnmpHostsTable_checkfns.h
 ./examples/netSnmpHostsTable_checkfns.lo: ./examples/netSnmpHostsTable_checkfns_local.h
 ./examples/netSnmpHostsTable_checkfns.lo: ./examples/netSnmpHostsTable_enums.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/net-snmp-config.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/system/linux.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/system/sysv.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/system/generic.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/machine/generic.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/net-snmp-includes.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/definitions.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/types.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/oid.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/types.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_api.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/varbind_api.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/pdu_api.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/asn1.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/output_api.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_debug.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/session_api.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/callback.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -3144,8 +3236,12 @@
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -3167,7 +3263,6 @@
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/check_varbind.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/container.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/factory.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/container_binary_array.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/container_iterator.h
@@ -3180,8 +3275,6 @@
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_enum.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/vacm.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/output_api.h
-./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_debug.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/snmpv3_api.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpv3.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/transform_oids.h
@@ -3190,23 +3283,24 @@
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/lcd_time.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmptsm.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ../../include/net-snmp/library/snmpusm.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ./examples/netSnmpHostsTable_checkfns.h
 ./examples/netSnmpHostsTable_checkfns_local.lo: ./examples/netSnmpHostsTable_enums.h
 ./examples/notification.lo: ../../include/net-snmp/net-snmp-config.h
-./examples/notification.lo: ../../include/net-snmp/system/linux.h
-./examples/notification.lo: ../../include/net-snmp/system/sysv.h
-./examples/notification.lo: ../../include/net-snmp/system/generic.h
-./examples/notification.lo: ../../include/net-snmp/machine/generic.h
 ./examples/notification.lo: ../../include/net-snmp/net-snmp-includes.h
 ./examples/notification.lo: ../../include/net-snmp/definitions.h
 ./examples/notification.lo: ../../include/net-snmp/types.h
+./examples/notification.lo: ../../include/net-snmp/library/oid.h
 ./examples/notification.lo: ../../include/net-snmp/library/types.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmp_api.h
 ./examples/notification.lo: ../../include/net-snmp/varbind_api.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/notification.lo: ../../include/net-snmp/pdu_api.h
 ./examples/notification.lo: ../../include/net-snmp/library/asn1.h
+./examples/notification.lo: ../../include/net-snmp/output_api.h
+./examples/notification.lo: ../../include/net-snmp/library/snmp_debug.h
+./examples/notification.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/notification.lo: ../../include/net-snmp/session_api.h
 ./examples/notification.lo: ../../include/net-snmp/library/callback.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -3214,8 +3308,12 @@
 ./examples/notification.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./examples/notification.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./examples/notification.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./examples/notification.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./examples/notification.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./examples/notification.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -3237,7 +3335,6 @@
 ./examples/notification.lo: ../../include/net-snmp/library/check_varbind.h
 ./examples/notification.lo: ../../include/net-snmp/library/container.h
 ./examples/notification.lo: ../../include/net-snmp/library/factory.h
-./examples/notification.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/notification.lo: ../../include/net-snmp/library/container_binary_array.h
 ./examples/notification.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./examples/notification.lo: ../../include/net-snmp/library/container_iterator.h
@@ -3250,8 +3347,6 @@
 ./examples/notification.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmp_enum.h
 ./examples/notification.lo: ../../include/net-snmp/library/vacm.h
-./examples/notification.lo: ../../include/net-snmp/output_api.h
-./examples/notification.lo: ../../include/net-snmp/library/snmp_debug.h
 ./examples/notification.lo: ../../include/net-snmp/snmpv3_api.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmpv3.h
 ./examples/notification.lo: ../../include/net-snmp/library/transform_oids.h
@@ -3260,6 +3355,7 @@
 ./examples/notification.lo: ../../include/net-snmp/library/lcd_time.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./examples/notification.lo: ../../include/net-snmp/library/snmptsm.h
 ./examples/notification.lo: ../../include/net-snmp/library/snmpusm.h
 ./examples/notification.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./examples/notification.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -3296,21 +3392,23 @@
 ./examples/notification.lo: ../../include/net-snmp/agent/table_iterator.h
 ./examples/notification.lo: ../../include/net-snmp/agent/table_container.h
 ./examples/notification.lo: ../../include/net-snmp/agent/table_array.h
-./examples/notification.lo: ../../include/net-snmp/agent/mfd.h notification.h
+./examples/notification.lo: ../../include/net-snmp/agent/mfd.h
+./examples/notification.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./examples/notification.lo: notification.h
 ./examples/scalar_int.lo: ../../include/net-snmp/net-snmp-config.h
-./examples/scalar_int.lo: ../../include/net-snmp/system/linux.h
-./examples/scalar_int.lo: ../../include/net-snmp/system/sysv.h
-./examples/scalar_int.lo: ../../include/net-snmp/system/generic.h
-./examples/scalar_int.lo: ../../include/net-snmp/machine/generic.h
 ./examples/scalar_int.lo: ../../include/net-snmp/net-snmp-includes.h
 ./examples/scalar_int.lo: ../../include/net-snmp/definitions.h
 ./examples/scalar_int.lo: ../../include/net-snmp/types.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/oid.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/types.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_api.h
 ./examples/scalar_int.lo: ../../include/net-snmp/varbind_api.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/scalar_int.lo: ../../include/net-snmp/pdu_api.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/asn1.h
+./examples/scalar_int.lo: ../../include/net-snmp/output_api.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_debug.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/scalar_int.lo: ../../include/net-snmp/session_api.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/callback.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -3318,8 +3416,12 @@
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -3341,7 +3443,6 @@
 ./examples/scalar_int.lo: ../../include/net-snmp/library/check_varbind.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/container.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/factory.h
-./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/container_binary_array.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/container_iterator.h
@@ -3354,8 +3455,6 @@
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_enum.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/vacm.h
-./examples/scalar_int.lo: ../../include/net-snmp/output_api.h
-./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_debug.h
 ./examples/scalar_int.lo: ../../include/net-snmp/snmpv3_api.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmpv3.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/transform_oids.h
@@ -3364,6 +3463,7 @@
 ./examples/scalar_int.lo: ../../include/net-snmp/library/lcd_time.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./examples/scalar_int.lo: ../../include/net-snmp/library/snmptsm.h
 ./examples/scalar_int.lo: ../../include/net-snmp/library/snmpusm.h
 ./examples/scalar_int.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./examples/scalar_int.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -3401,20 +3501,21 @@
 ./examples/scalar_int.lo: ../../include/net-snmp/agent/table_container.h
 ./examples/scalar_int.lo: ../../include/net-snmp/agent/table_array.h
 ./examples/scalar_int.lo: ../../include/net-snmp/agent/mfd.h
+./examples/scalar_int.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/net-snmp-config.h
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/system/linux.h
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/system/sysv.h
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/system/generic.h
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/machine/generic.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/net-snmp-includes.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/definitions.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/types.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/oid.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/types.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_api.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/varbind_api.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/pdu_api.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/asn1.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/output_api.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_debug.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/session_api.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/callback.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -3422,8 +3523,12 @@
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -3445,7 +3550,6 @@
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/check_varbind.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/container.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/factory.h
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/container_binary_array.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/container_iterator.h
@@ -3458,8 +3562,6 @@
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_enum.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/vacm.h
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/output_api.h
-./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_debug.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/snmpv3_api.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpv3.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/transform_oids.h
@@ -3468,6 +3570,7 @@
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/lcd_time.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmptsm.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/library/snmpusm.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -3505,22 +3608,23 @@
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/agent/table_container.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/agent/table_array.h
 ./examples/ucdDemoPublic.lo: ../../include/net-snmp/agent/mfd.h
+./examples/ucdDemoPublic.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./examples/ucdDemoPublic.lo: util_funcs/header_generic.h
 ./examples/ucdDemoPublic.lo: ./examples/ucdDemoPublic.h
 ./examples/watched.lo: ../../include/net-snmp/net-snmp-config.h
-./examples/watched.lo: ../../include/net-snmp/system/linux.h
-./examples/watched.lo: ../../include/net-snmp/system/sysv.h
-./examples/watched.lo: ../../include/net-snmp/system/generic.h
-./examples/watched.lo: ../../include/net-snmp/machine/generic.h
 ./examples/watched.lo: ../../include/net-snmp/net-snmp-includes.h
 ./examples/watched.lo: ../../include/net-snmp/definitions.h
 ./examples/watched.lo: ../../include/net-snmp/types.h 
+./examples/watched.lo: ../../include/net-snmp/library/oid.h
 ./examples/watched.lo: ../../include/net-snmp/library/types.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmp_api.h
 ./examples/watched.lo: ../../include/net-snmp/varbind_api.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmp_client.h
 ./examples/watched.lo: ../../include/net-snmp/pdu_api.h
 ./examples/watched.lo: ../../include/net-snmp/library/asn1.h
+./examples/watched.lo: ../../include/net-snmp/output_api.h
+./examples/watched.lo: ../../include/net-snmp/library/snmp_debug.h
+./examples/watched.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/watched.lo: ../../include/net-snmp/session_api.h
 ./examples/watched.lo: ../../include/net-snmp/library/callback.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -3528,8 +3632,12 @@
 ./examples/watched.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./examples/watched.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./examples/watched.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./examples/watched.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./examples/watched.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./examples/watched.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -3551,7 +3659,6 @@
 ./examples/watched.lo: ../../include/net-snmp/library/check_varbind.h
 ./examples/watched.lo: ../../include/net-snmp/library/container.h
 ./examples/watched.lo: ../../include/net-snmp/library/factory.h
-./examples/watched.lo: ../../include/net-snmp/library/snmp_logging.h
 ./examples/watched.lo: ../../include/net-snmp/library/container_binary_array.h
 ./examples/watched.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./examples/watched.lo: ../../include/net-snmp/library/container_iterator.h
@@ -3564,8 +3671,6 @@
 ./examples/watched.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmp_enum.h
 ./examples/watched.lo: ../../include/net-snmp/library/vacm.h
-./examples/watched.lo: ../../include/net-snmp/output_api.h
-./examples/watched.lo: ../../include/net-snmp/library/snmp_debug.h
 ./examples/watched.lo: ../../include/net-snmp/snmpv3_api.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmpv3.h
 ./examples/watched.lo: ../../include/net-snmp/library/transform_oids.h
@@ -3574,6 +3679,7 @@
 ./examples/watched.lo: ../../include/net-snmp/library/lcd_time.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./examples/watched.lo: ../../include/net-snmp/library/snmptsm.h
 ./examples/watched.lo: ../../include/net-snmp/library/snmpusm.h
 ./examples/watched.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./examples/watched.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -3611,21 +3717,22 @@
 ./examples/watched.lo: ../../include/net-snmp/agent/table_container.h
 ./examples/watched.lo: ../../include/net-snmp/agent/table_array.h
 ./examples/watched.lo: ../../include/net-snmp/agent/mfd.h
+./examples/watched.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./host/hr_device.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hr_device.lo: ../../include/net-snmp/system/linux.h
-./host/hr_device.lo: ../../include/net-snmp/system/sysv.h
-./host/hr_device.lo: ../../include/net-snmp/system/generic.h
-./host/hr_device.lo: ../../include/net-snmp/machine/generic.h
-./host/hr_device.lo:  host_res.h 
+./host/hr_device.lo:  host_res.h
 ./host/hr_device.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hr_device.lo: ../../include/net-snmp/definitions.h
 ./host/hr_device.lo: ../../include/net-snmp/types.h 
+./host/hr_device.lo: ../../include/net-snmp/library/oid.h
 ./host/hr_device.lo: ../../include/net-snmp/library/types.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hr_device.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_device.lo: ../../include/net-snmp/pdu_api.h
 ./host/hr_device.lo: ../../include/net-snmp/library/asn1.h
+./host/hr_device.lo: ../../include/net-snmp/output_api.h
+./host/hr_device.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hr_device.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_device.lo: ../../include/net-snmp/session_api.h
 ./host/hr_device.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -3633,8 +3740,12 @@
 ./host/hr_device.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hr_device.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hr_device.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hr_device.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hr_device.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hr_device.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -3656,7 +3767,6 @@
 ./host/hr_device.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hr_device.lo: ../../include/net-snmp/library/container.h
 ./host/hr_device.lo: ../../include/net-snmp/library/factory.h
-./host/hr_device.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_device.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hr_device.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hr_device.lo: ../../include/net-snmp/library/container_iterator.h
@@ -3669,8 +3779,6 @@
 ./host/hr_device.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hr_device.lo: ../../include/net-snmp/library/vacm.h
-./host/hr_device.lo: ../../include/net-snmp/output_api.h
-./host/hr_device.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hr_device.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hr_device.lo: ../../include/net-snmp/library/transform_oids.h
@@ -3679,6 +3787,7 @@
 ./host/hr_device.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hr_device.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hr_device.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hr_device.lo: ../../include/net-snmp/agent/snmp_agent.h
 ./host/hr_device.lo: ../../include/net-snmp/agent/agent_handler.h
@@ -3686,21 +3795,21 @@
 ./host/hr_device.lo: ../../include/net-snmp/agent/var_struct.h
 ./host/hr_device.lo: ../../include/net-snmp/agent/agent_registry.h
 ./host/hr_device.lo: ../../include/net-snmp/library/fd_event_manager.h
-./host/hr_device.lo:  ./host/hr_device.h
-./host/hr_disk.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hr_disk.lo: ../../include/net-snmp/system/linux.h
-./host/hr_disk.lo: ../../include/net-snmp/system/sysv.h
-./host/hr_disk.lo: ../../include/net-snmp/system/generic.h
-./host/hr_disk.lo: ../../include/net-snmp/machine/generic.h host_res.h
+./host/hr_device.lo: ./host/hr_device.h
+./host/hr_disk.lo: ../../include/net-snmp/net-snmp-config.h host_res.h
 ./host/hr_disk.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hr_disk.lo: ../../include/net-snmp/definitions.h
 ./host/hr_disk.lo: ../../include/net-snmp/types.h 
+./host/hr_disk.lo: ../../include/net-snmp/library/oid.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/types.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hr_disk.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_disk.lo: ../../include/net-snmp/pdu_api.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/asn1.h
+./host/hr_disk.lo: ../../include/net-snmp/output_api.h
+./host/hr_disk.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hr_disk.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_disk.lo: ../../include/net-snmp/session_api.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -3708,8 +3817,12 @@
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hr_disk.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hr_disk.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hr_disk.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hr_disk.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -3731,7 +3844,6 @@
 ./host/hr_disk.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/container.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/factory.h
-./host/hr_disk.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/container_iterator.h
@@ -3744,8 +3856,6 @@
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/vacm.h
-./host/hr_disk.lo: ../../include/net-snmp/output_api.h
-./host/hr_disk.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hr_disk.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/transform_oids.h
@@ -3754,6 +3864,7 @@
 ./host/hr_disk.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hr_disk.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hr_disk.lo: ../../include/net-snmp/agent/snmp_agent.h
 ./host/hr_disk.lo: ../../include/net-snmp/agent/agent_handler.h
@@ -3761,22 +3872,22 @@
 ./host/hr_disk.lo: ../../include/net-snmp/agent/var_struct.h
 ./host/hr_disk.lo: ../../include/net-snmp/agent/agent_registry.h
 ./host/hr_disk.lo: ../../include/net-snmp/library/fd_event_manager.h
-./host/hr_disk.lo:  ./host/hr_disk.h
+./host/hr_disk.lo: ./host/hr_disk.h 
 ./host/hr_disk.lo: ../../include/net-snmp/agent/agent_read_config.h
 ./host/hr_filesys.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hr_filesys.lo: ../../include/net-snmp/system/linux.h
-./host/hr_filesys.lo: ../../include/net-snmp/system/sysv.h
-./host/hr_filesys.lo: ../../include/net-snmp/system/generic.h
-./host/hr_filesys.lo: ../../include/net-snmp/machine/generic.h
 ./host/hr_filesys.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hr_filesys.lo: ../../include/net-snmp/definitions.h
 ./host/hr_filesys.lo: ../../include/net-snmp/types.h 
+./host/hr_filesys.lo: ../../include/net-snmp/library/oid.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/types.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hr_filesys.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_filesys.lo: ../../include/net-snmp/pdu_api.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/asn1.h
+./host/hr_filesys.lo: ../../include/net-snmp/output_api.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_filesys.lo: ../../include/net-snmp/session_api.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -3784,8 +3895,12 @@
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -3807,7 +3922,6 @@
 ./host/hr_filesys.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/container.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/factory.h
-./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/container_iterator.h
@@ -3820,8 +3934,6 @@
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/vacm.h
-./host/hr_filesys.lo: ../../include/net-snmp/output_api.h
-./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hr_filesys.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/transform_oids.h
@@ -3830,6 +3942,7 @@
 ./host/hr_filesys.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hr_filesys.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hr_filesys.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hr_filesys.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./host/hr_filesys.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -3867,23 +3980,24 @@
 ./host/hr_filesys.lo: ../../include/net-snmp/agent/table_container.h
 ./host/hr_filesys.lo: ../../include/net-snmp/agent/table_array.h
 ./host/hr_filesys.lo: ../../include/net-snmp/agent/mfd.h
+./host/hr_filesys.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./host/hr_filesys.lo: ../../include/net-snmp/agent/hardware/memory.h
-./host/hr_filesys.lo: host_res.h  ./host/hr_filesys.h
-./host/hr_filesys.lo: ./host/hr_storage.h ./host/hr_disk.h
+./host/hr_filesys.lo: host_res.h ./host/hr_filesys.h ./host/hr_storage.h
+./host/hr_filesys.lo: ./host/hr_disk.h 
 ./host/hrh_filesys.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hrh_filesys.lo: ../../include/net-snmp/system/linux.h
-./host/hrh_filesys.lo: ../../include/net-snmp/system/sysv.h
-./host/hrh_filesys.lo: ../../include/net-snmp/system/generic.h
-./host/hrh_filesys.lo: ../../include/net-snmp/machine/generic.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/definitions.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/types.h 
+./host/hrh_filesys.lo: ../../include/net-snmp/library/oid.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/types.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/varbind_api.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/pdu_api.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/asn1.h
+./host/hrh_filesys.lo: ../../include/net-snmp/output_api.h
+./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/session_api.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/callback.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -3891,8 +4005,12 @@
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -3914,7 +4032,6 @@
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/container.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/factory.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/container_iterator.h
@@ -3927,8 +4044,6 @@
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/vacm.h
-./host/hrh_filesys.lo: ../../include/net-snmp/output_api.h
-./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/transform_oids.h
@@ -3937,6 +4052,7 @@
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hrh_filesys.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -3974,24 +4090,25 @@
 ./host/hrh_filesys.lo: ../../include/net-snmp/agent/table_container.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/agent/table_array.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/agent/mfd.h
+./host/hrh_filesys.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/agent/hardware/memory.h
 ./host/hrh_filesys.lo: ../../include/net-snmp/agent/hardware/fsys.h
-./host/hrh_filesys.lo: host_res.h  ./host/hrh_filesys.h
-./host/hrh_filesys.lo: ./host/hrh_storage.h ./host/hr_disk.h
+./host/hrh_filesys.lo: host_res.h ./host/hrh_filesys.h ./host/hrh_storage.h
+./host/hrh_filesys.lo: ./host/hr_disk.h 
 ./host/hrh_storage.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hrh_storage.lo: ../../include/net-snmp/system/linux.h
-./host/hrh_storage.lo: ../../include/net-snmp/system/sysv.h
-./host/hrh_storage.lo: ../../include/net-snmp/system/generic.h
-./host/hrh_storage.lo: ../../include/net-snmp/machine/generic.h
 ./host/hrh_storage.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hrh_storage.lo: ../../include/net-snmp/definitions.h
 ./host/hrh_storage.lo: ../../include/net-snmp/types.h 
+./host/hrh_storage.lo: ../../include/net-snmp/library/oid.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/types.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hrh_storage.lo: ../../include/net-snmp/varbind_api.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hrh_storage.lo: ../../include/net-snmp/pdu_api.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/asn1.h
+./host/hrh_storage.lo: ../../include/net-snmp/output_api.h
+./host/hrh_storage.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hrh_storage.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hrh_storage.lo: ../../include/net-snmp/session_api.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/callback.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -3999,8 +4116,12 @@
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hrh_storage.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hrh_storage.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hrh_storage.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hrh_storage.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -4022,7 +4143,6 @@
 ./host/hrh_storage.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/container.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/factory.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/container_iterator.h
@@ -4035,8 +4155,6 @@
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/vacm.h
-./host/hrh_storage.lo: ../../include/net-snmp/output_api.h
-./host/hrh_storage.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hrh_storage.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/transform_oids.h
@@ -4045,6 +4163,7 @@
 ./host/hrh_storage.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hrh_storage.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hrh_storage.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hrh_storage.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./host/hrh_storage.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -4082,24 +4201,25 @@
 ./host/hrh_storage.lo: ../../include/net-snmp/agent/table_container.h
 ./host/hrh_storage.lo: ../../include/net-snmp/agent/table_array.h
 ./host/hrh_storage.lo: ../../include/net-snmp/agent/mfd.h
+./host/hrh_storage.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./host/hrh_storage.lo: ../../include/net-snmp/agent/hardware/memory.h
 ./host/hrh_storage.lo: ../../include/net-snmp/agent/hardware/fsys.h
-./host/hrh_storage.lo: host_res.h  ./host/hrh_filesys.h
-./host/hrh_storage.lo: ./host/hrh_storage.h ./host/hr_disk.h
+./host/hrh_storage.lo: host_res.h ./host/hrh_filesys.h ./host/hrh_storage.h
+./host/hrh_storage.lo: ./host/hr_disk.h 
 ./host/hr_network.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hr_network.lo: ../../include/net-snmp/system/linux.h
-./host/hr_network.lo: ../../include/net-snmp/system/sysv.h
-./host/hr_network.lo: ../../include/net-snmp/system/generic.h
-./host/hr_network.lo: ../../include/net-snmp/machine/generic.h
 ./host/hr_network.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hr_network.lo: ../../include/net-snmp/definitions.h
 ./host/hr_network.lo: ../../include/net-snmp/types.h 
+./host/hr_network.lo: ../../include/net-snmp/library/oid.h
 ./host/hr_network.lo: ../../include/net-snmp/library/types.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hr_network.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_network.lo: ../../include/net-snmp/pdu_api.h
 ./host/hr_network.lo: ../../include/net-snmp/library/asn1.h
+./host/hr_network.lo: ../../include/net-snmp/output_api.h
+./host/hr_network.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hr_network.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_network.lo: ../../include/net-snmp/session_api.h
 ./host/hr_network.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -4107,8 +4227,12 @@
 ./host/hr_network.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hr_network.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hr_network.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hr_network.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hr_network.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hr_network.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -4130,7 +4254,6 @@
 ./host/hr_network.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hr_network.lo: ../../include/net-snmp/library/container.h
 ./host/hr_network.lo: ../../include/net-snmp/library/factory.h
-./host/hr_network.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_network.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hr_network.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hr_network.lo: ../../include/net-snmp/library/container_iterator.h
@@ -4143,8 +4266,6 @@
 ./host/hr_network.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hr_network.lo: ../../include/net-snmp/library/vacm.h
-./host/hr_network.lo: ../../include/net-snmp/output_api.h
-./host/hr_network.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hr_network.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hr_network.lo: ../../include/net-snmp/library/transform_oids.h
@@ -4153,6 +4274,7 @@
 ./host/hr_network.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hr_network.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hr_network.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hr_network.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./host/hr_network.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -4190,23 +4312,24 @@
 ./host/hr_network.lo: ../../include/net-snmp/agent/table_container.h
 ./host/hr_network.lo: ../../include/net-snmp/agent/table_array.h
 ./host/hr_network.lo: ../../include/net-snmp/agent/mfd.h
+./host/hr_network.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./host/hr_network.lo: ../../include/net-snmp/data_access/interface.h
-./host/hr_network.lo: host_res.h  mibII/interfaces.h
+./host/hr_network.lo:  host_res.h mibII/interfaces.h
 ./host/hr_network.lo: ./host/hr_network.h
-./host/hr_other.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hr_other.lo: ../../include/net-snmp/system/linux.h
-./host/hr_other.lo: ../../include/net-snmp/system/sysv.h
-./host/hr_other.lo: ../../include/net-snmp/system/generic.h
-./host/hr_other.lo: ../../include/net-snmp/machine/generic.h host_res.h
+./host/hr_other.lo: ../../include/net-snmp/net-snmp-config.h host_res.h
 ./host/hr_other.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hr_other.lo: ../../include/net-snmp/definitions.h
 ./host/hr_other.lo: ../../include/net-snmp/types.h 
+./host/hr_other.lo: ../../include/net-snmp/library/oid.h
 ./host/hr_other.lo: ../../include/net-snmp/library/types.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hr_other.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_other.lo: ../../include/net-snmp/pdu_api.h
 ./host/hr_other.lo: ../../include/net-snmp/library/asn1.h
+./host/hr_other.lo: ../../include/net-snmp/output_api.h
+./host/hr_other.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hr_other.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_other.lo: ../../include/net-snmp/session_api.h
 ./host/hr_other.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -4214,8 +4337,12 @@
 ./host/hr_other.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hr_other.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hr_other.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hr_other.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hr_other.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hr_other.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -4237,7 +4364,6 @@
 ./host/hr_other.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hr_other.lo: ../../include/net-snmp/library/container.h
 ./host/hr_other.lo: ../../include/net-snmp/library/factory.h
-./host/hr_other.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_other.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hr_other.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hr_other.lo: ../../include/net-snmp/library/container_iterator.h
@@ -4250,8 +4376,6 @@
 ./host/hr_other.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hr_other.lo: ../../include/net-snmp/library/vacm.h
-./host/hr_other.lo: ../../include/net-snmp/output_api.h
-./host/hr_other.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hr_other.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hr_other.lo: ../../include/net-snmp/library/transform_oids.h
@@ -4260,6 +4384,7 @@
 ./host/hr_other.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hr_other.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hr_other.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hr_other.lo: ../../include/net-snmp/agent/snmp_agent.h
 ./host/hr_other.lo: ../../include/net-snmp/agent/agent_handler.h
@@ -4267,22 +4392,22 @@
 ./host/hr_other.lo: ../../include/net-snmp/agent/var_struct.h
 ./host/hr_other.lo: ../../include/net-snmp/agent/agent_registry.h
 ./host/hr_other.lo: ../../include/net-snmp/library/fd_event_manager.h
-./host/hr_other.lo:  ./host/hr_other.h
+./host/hr_other.lo: ./host/hr_other.h
 ./host/hr_partition.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hr_partition.lo: ../../include/net-snmp/system/linux.h
-./host/hr_partition.lo: ../../include/net-snmp/system/sysv.h
-./host/hr_partition.lo: ../../include/net-snmp/system/generic.h
-./host/hr_partition.lo: ../../include/net-snmp/machine/generic.h
 ./host/hr_partition.lo:  host_res.h
 ./host/hr_partition.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hr_partition.lo: ../../include/net-snmp/definitions.h
 ./host/hr_partition.lo: ../../include/net-snmp/types.h
+./host/hr_partition.lo: ../../include/net-snmp/library/oid.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/types.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hr_partition.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_partition.lo: ../../include/net-snmp/pdu_api.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/asn1.h
+./host/hr_partition.lo: ../../include/net-snmp/output_api.h
+./host/hr_partition.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hr_partition.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_partition.lo: ../../include/net-snmp/session_api.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -4290,8 +4415,12 @@
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hr_partition.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hr_partition.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hr_partition.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hr_partition.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -4313,7 +4442,6 @@
 ./host/hr_partition.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/container.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/factory.h
-./host/hr_partition.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/container_iterator.h
@@ -4326,8 +4454,6 @@
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/vacm.h
-./host/hr_partition.lo: ../../include/net-snmp/output_api.h
-./host/hr_partition.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hr_partition.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/transform_oids.h
@@ -4336,6 +4462,7 @@
 ./host/hr_partition.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hr_partition.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hr_partition.lo: ../../include/net-snmp/agent/snmp_agent.h
 ./host/hr_partition.lo: ../../include/net-snmp/agent/agent_handler.h
@@ -4343,23 +4470,23 @@
 ./host/hr_partition.lo: ../../include/net-snmp/agent/var_struct.h
 ./host/hr_partition.lo: ../../include/net-snmp/agent/agent_registry.h
 ./host/hr_partition.lo: ../../include/net-snmp/library/fd_event_manager.h
-./host/hr_partition.lo:  ./host/hr_partition.h
-./host/hr_partition.lo: ./host/hr_filesys.h ./host/hr_disk.h
+./host/hr_partition.lo: ./host/hr_partition.h ./host/hr_filesys.h
+./host/hr_partition.lo: ./host/hr_disk.h 
 ./host/hr_print.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hr_print.lo: ../../include/net-snmp/system/linux.h
-./host/hr_print.lo: ../../include/net-snmp/system/sysv.h
-./host/hr_print.lo: ../../include/net-snmp/system/generic.h
-./host/hr_print.lo: ../../include/net-snmp/machine/generic.h
-./host/hr_print.lo: host_res.h 
+./host/hr_print.lo:  host_res.h
 ./host/hr_print.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hr_print.lo: ../../include/net-snmp/definitions.h
 ./host/hr_print.lo: ../../include/net-snmp/types.h 
+./host/hr_print.lo: ../../include/net-snmp/library/oid.h
 ./host/hr_print.lo: ../../include/net-snmp/library/types.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hr_print.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_print.lo: ../../include/net-snmp/pdu_api.h
 ./host/hr_print.lo: ../../include/net-snmp/library/asn1.h
+./host/hr_print.lo: ../../include/net-snmp/output_api.h
+./host/hr_print.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hr_print.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_print.lo: ../../include/net-snmp/session_api.h
 ./host/hr_print.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -4367,8 +4494,12 @@
 ./host/hr_print.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hr_print.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hr_print.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hr_print.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hr_print.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hr_print.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -4390,7 +4521,6 @@
 ./host/hr_print.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hr_print.lo: ../../include/net-snmp/library/container.h
 ./host/hr_print.lo: ../../include/net-snmp/library/factory.h
-./host/hr_print.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_print.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hr_print.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hr_print.lo: ../../include/net-snmp/library/container_iterator.h
@@ -4403,8 +4533,6 @@
 ./host/hr_print.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hr_print.lo: ../../include/net-snmp/library/vacm.h
-./host/hr_print.lo: ../../include/net-snmp/output_api.h
-./host/hr_print.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hr_print.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hr_print.lo: ../../include/net-snmp/library/transform_oids.h
@@ -4413,6 +4541,7 @@
 ./host/hr_print.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hr_print.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hr_print.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hr_print.lo: ../../include/net-snmp/agent/snmp_agent.h
 ./host/hr_print.lo: ../../include/net-snmp/agent/agent_handler.h
@@ -4420,24 +4549,24 @@
 ./host/hr_print.lo: ../../include/net-snmp/agent/var_struct.h
 ./host/hr_print.lo: ../../include/net-snmp/agent/agent_registry.h
 ./host/hr_print.lo: ../../include/net-snmp/library/fd_event_manager.h
-./host/hr_print.lo:  ./host/hr_print.h struct.h
-./host/hr_print.lo: util_funcs.h util_funcs/header_generic.h
-./host/hr_print.lo: util_funcs/header_simple_table.h
+./host/hr_print.lo: ./host/hr_print.h struct.h util_funcs.h util_funcs/Exit.h
+./host/hr_print.lo: util_funcs/header_generic.h
+./host/hr_print.lo: util_funcs/header_simple_table.h util_funcs/restart.h
 ./host/hr_print.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h
 ./host/hr_proc.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hr_proc.lo: ../../include/net-snmp/system/linux.h
-./host/hr_proc.lo: ../../include/net-snmp/system/sysv.h
-./host/hr_proc.lo: ../../include/net-snmp/system/generic.h
-./host/hr_proc.lo: ../../include/net-snmp/machine/generic.h
 ./host/hr_proc.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hr_proc.lo: ../../include/net-snmp/definitions.h
 ./host/hr_proc.lo: ../../include/net-snmp/types.h 
+./host/hr_proc.lo: ../../include/net-snmp/library/oid.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/types.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hr_proc.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_proc.lo: ../../include/net-snmp/pdu_api.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/asn1.h
+./host/hr_proc.lo: ../../include/net-snmp/output_api.h
+./host/hr_proc.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hr_proc.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_proc.lo: ../../include/net-snmp/session_api.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -4445,8 +4574,12 @@
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hr_proc.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hr_proc.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hr_proc.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hr_proc.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -4468,7 +4601,6 @@
 ./host/hr_proc.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/container.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/factory.h
-./host/hr_proc.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/container_iterator.h
@@ -4481,8 +4613,6 @@
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/vacm.h
-./host/hr_proc.lo: ../../include/net-snmp/output_api.h
-./host/hr_proc.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hr_proc.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/transform_oids.h
@@ -4491,6 +4621,7 @@
 ./host/hr_proc.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hr_proc.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hr_proc.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hr_proc.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./host/hr_proc.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -4527,26 +4658,27 @@
 ./host/hr_proc.lo: ../../include/net-snmp/agent/table_iterator.h
 ./host/hr_proc.lo: ../../include/net-snmp/agent/table_container.h
 ./host/hr_proc.lo: ../../include/net-snmp/agent/table_array.h
-./host/hr_proc.lo: ../../include/net-snmp/agent/mfd.h 
-./host/hr_proc.lo: host_res.h  ./host/hr_proc.h
-./host/hr_proc.lo: ../../include/net-snmp/agent/auto_nlist.h
+./host/hr_proc.lo: ../../include/net-snmp/agent/mfd.h
+./host/hr_proc.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./host/hr_proc.lo:   host_res.h
+./host/hr_proc.lo: ./host/hr_proc.h ../../include/net-snmp/agent/auto_nlist.h
 ./host/hr_proc.lo: ../../include/net-snmp/agent/hardware/cpu.h
 ./host/hr_proc.lo: ucd-snmp/loadave.h mibdefs.h
 ./host/hr_storage.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hr_storage.lo: ../../include/net-snmp/system/linux.h
-./host/hr_storage.lo: ../../include/net-snmp/system/sysv.h
-./host/hr_storage.lo: ../../include/net-snmp/system/generic.h
-./host/hr_storage.lo: ../../include/net-snmp/machine/generic.h
 ./host/hr_storage.lo:  host_res.h
 ./host/hr_storage.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hr_storage.lo: ../../include/net-snmp/definitions.h
 ./host/hr_storage.lo: ../../include/net-snmp/types.h 
+./host/hr_storage.lo: ../../include/net-snmp/library/oid.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/types.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hr_storage.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_storage.lo: ../../include/net-snmp/pdu_api.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/asn1.h
+./host/hr_storage.lo: ../../include/net-snmp/output_api.h
+./host/hr_storage.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hr_storage.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_storage.lo: ../../include/net-snmp/session_api.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -4554,8 +4686,12 @@
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hr_storage.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hr_storage.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hr_storage.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hr_storage.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -4577,7 +4713,6 @@
 ./host/hr_storage.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/container.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/factory.h
-./host/hr_storage.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/container_iterator.h
@@ -4590,8 +4725,6 @@
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/vacm.h
-./host/hr_storage.lo: ../../include/net-snmp/output_api.h
-./host/hr_storage.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hr_storage.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/transform_oids.h
@@ -4600,6 +4733,7 @@
 ./host/hr_storage.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hr_storage.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hr_storage.lo: ../../include/net-snmp/agent/snmp_agent.h
 ./host/hr_storage.lo: ../../include/net-snmp/agent/agent_handler.h
@@ -4607,8 +4741,7 @@
 ./host/hr_storage.lo: ../../include/net-snmp/agent/var_struct.h
 ./host/hr_storage.lo: ../../include/net-snmp/agent/agent_registry.h
 ./host/hr_storage.lo: ../../include/net-snmp/library/fd_event_manager.h
-./host/hr_storage.lo:  ./host/hr_storage.h
-./host/hr_storage.lo: ./host/hr_filesys.h
+./host/hr_storage.lo: ./host/hr_storage.h ./host/hr_filesys.h
 ./host/hr_storage.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./host/hr_storage.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./host/hr_storage.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -4640,21 +4773,22 @@
 ./host/hr_storage.lo: ../../include/net-snmp/agent/table_container.h
 ./host/hr_storage.lo: ../../include/net-snmp/agent/table_array.h
 ./host/hr_storage.lo: ../../include/net-snmp/agent/mfd.h
+./host/hr_storage.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./host/hr_storage.lo: ../../include/net-snmp/agent/hardware/memory.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/system/linux.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/system/sysv.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/system/generic.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/machine/generic.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/definitions.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/types.h
+./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/oid.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/types.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/varbind_api.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/pdu_api.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/asn1.h
+./host/hrSWInstalledTable.lo: ../../include/net-snmp/output_api.h
+./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/session_api.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/callback.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -4662,8 +4796,12 @@
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -4685,7 +4823,6 @@
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/container.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/factory.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -4698,8 +4835,6 @@
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/vacm.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/output_api.h
-./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -4708,6 +4843,7 @@
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -4745,23 +4881,24 @@
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/table_container.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/table_array.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/mfd.h
+./host/hrSWInstalledTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./host/hrSWInstalledTable.lo: ../../include/net-snmp/data_access/swinst.h
 ./host/hrSWInstalledTable.lo: ./host/hrSWInstalledTable.h
 ./host/hr_swinst.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hr_swinst.lo: ../../include/net-snmp/system/linux.h
-./host/hr_swinst.lo: ../../include/net-snmp/system/sysv.h
-./host/hr_swinst.lo: ../../include/net-snmp/system/generic.h
-./host/hr_swinst.lo: ../../include/net-snmp/machine/generic.h
-./host/hr_swinst.lo: host_res.h 
+./host/hr_swinst.lo:   host_res.h
 ./host/hr_swinst.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hr_swinst.lo: ../../include/net-snmp/definitions.h
 ./host/hr_swinst.lo: ../../include/net-snmp/types.h 
+./host/hr_swinst.lo: ../../include/net-snmp/library/oid.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/types.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hr_swinst.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_swinst.lo: ../../include/net-snmp/pdu_api.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/asn1.h
+./host/hr_swinst.lo: ../../include/net-snmp/output_api.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_swinst.lo: ../../include/net-snmp/session_api.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -4769,8 +4906,12 @@
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -4792,7 +4933,6 @@
 ./host/hr_swinst.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/container.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/factory.h
-./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/container_iterator.h
@@ -4805,8 +4945,6 @@
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/vacm.h
-./host/hr_swinst.lo: ../../include/net-snmp/output_api.h
-./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hr_swinst.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/transform_oids.h
@@ -4815,6 +4953,7 @@
 ./host/hr_swinst.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hr_swinst.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hr_swinst.lo: ../../include/net-snmp/agent/snmp_agent.h
 ./host/hr_swinst.lo: ../../include/net-snmp/agent/agent_handler.h
@@ -4822,14 +4961,11 @@
 ./host/hr_swinst.lo: ../../include/net-snmp/agent/var_struct.h
 ./host/hr_swinst.lo: ../../include/net-snmp/agent/agent_registry.h
 ./host/hr_swinst.lo: ../../include/net-snmp/library/fd_event_manager.h
-./host/hr_swinst.lo:  ./host/hr_swinst.h
+./host/hr_swinst.lo: ./host/hr_swinst.h
 ./host/hr_swrun.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hr_swrun.lo: ../../include/net-snmp/system/linux.h
-./host/hr_swrun.lo: ../../include/net-snmp/system/sysv.h
-./host/hr_swrun.lo: ../../include/net-snmp/system/generic.h
-./host/hr_swrun.lo: ../../include/net-snmp/machine/generic.h
 ./host/hr_swrun.lo: ../../include/net-snmp/output_api.h
 ./host/hr_swrun.lo: ../../include/net-snmp/types.h 
+./host/hr_swrun.lo: ../../include/net-snmp/library/oid.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/types.h
 ./host/hr_swrun.lo: ../../include/net-snmp/definitions.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmp_api.h
@@ -4844,8 +4980,12 @@
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hr_swrun.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hr_swrun.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hr_swrun.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hr_swrun.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -4891,6 +5031,7 @@
 ./host/hr_swrun.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hr_swrun.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hr_swrun.lo: ../../include/net-snmp/agent/snmp_agent.h
 ./host/hr_swrun.lo: ../../include/net-snmp/agent/agent_handler.h
@@ -4898,23 +5039,23 @@
 ./host/hr_swrun.lo: ../../include/net-snmp/agent/var_struct.h
 ./host/hr_swrun.lo: ../../include/net-snmp/agent/agent_registry.h
 ./host/hr_swrun.lo: ../../include/net-snmp/library/fd_event_manager.h
-./host/hr_swrun.lo:  ./host/hr_swrun.h
+./host/hr_swrun.lo: ./host/hr_swrun.h
 ./host/hr_swrun.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./host/hr_swrun.lo: ../../agent/kernel.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/system/linux.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/system/sysv.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/system/generic.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/machine/generic.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/definitions.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/types.h
+./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/oid.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/types.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/varbind_api.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/pdu_api.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/asn1.h
+./host/hrSWRunPerfTable.lo: ../../include/net-snmp/output_api.h
+./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/session_api.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/callback.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -4922,8 +5063,12 @@
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -4945,7 +5090,6 @@
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/container.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/factory.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -4958,8 +5102,6 @@
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/vacm.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/output_api.h
-./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -4968,6 +5110,7 @@
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -5005,23 +5148,24 @@
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/table_container.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/table_array.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/mfd.h
+./host/hrSWRunPerfTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./host/hrSWRunPerfTable.lo: ../../include/net-snmp/data_access/swrun.h
 ./host/hrSWRunPerfTable.lo: ./host/hrSWRunPerfTable.h
 ./host/hrSWRunPerfTable.lo: ./host/data_access/swrun.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/system/linux.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/system/sysv.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/system/generic.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/machine/generic.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/definitions.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/types.h
+./host/hrSWRunTable.lo: ../../include/net-snmp/library/oid.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/types.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/varbind_api.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/pdu_api.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/asn1.h
+./host/hrSWRunTable.lo: ../../include/net-snmp/output_api.h
+./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/session_api.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/callback.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -5029,8 +5173,12 @@
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -5052,7 +5200,6 @@
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/container.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/factory.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -5065,8 +5212,6 @@
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/vacm.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/output_api.h
-./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -5075,6 +5220,7 @@
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -5112,22 +5258,23 @@
 ./host/hrSWRunTable.lo: ../../include/net-snmp/agent/table_container.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/agent/table_array.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/agent/mfd.h
+./host/hrSWRunTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./host/hrSWRunTable.lo: ../../include/net-snmp/data_access/swrun.h
-./host/hrSWRunTable.lo: ./host/hrSWRunTable.h ./host/data_access/swrun.h
+./host/hrSWRunTable.lo: ./host/data_access/swrun.h ./host/hrSWRunTable.h
 ./host/hr_system.lo: ../../include/net-snmp/net-snmp-config.h
-./host/hr_system.lo: ../../include/net-snmp/system/linux.h
-./host/hr_system.lo: ../../include/net-snmp/system/sysv.h
-./host/hr_system.lo: ../../include/net-snmp/system/generic.h
-./host/hr_system.lo: ../../include/net-snmp/machine/generic.h
 ./host/hr_system.lo: ../../include/net-snmp/net-snmp-includes.h
 ./host/hr_system.lo: ../../include/net-snmp/definitions.h
 ./host/hr_system.lo: ../../include/net-snmp/types.h 
+./host/hr_system.lo: ../../include/net-snmp/library/oid.h
 ./host/hr_system.lo: ../../include/net-snmp/library/types.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmp_api.h
 ./host/hr_system.lo: ../../include/net-snmp/varbind_api.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmp_client.h
 ./host/hr_system.lo: ../../include/net-snmp/pdu_api.h
 ./host/hr_system.lo: ../../include/net-snmp/library/asn1.h
+./host/hr_system.lo: ../../include/net-snmp/output_api.h
+./host/hr_system.lo: ../../include/net-snmp/library/snmp_debug.h
+./host/hr_system.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_system.lo: ../../include/net-snmp/session_api.h
 ./host/hr_system.lo: ../../include/net-snmp/library/callback.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -5135,8 +5282,12 @@
 ./host/hr_system.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./host/hr_system.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./host/hr_system.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./host/hr_system.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./host/hr_system.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./host/hr_system.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -5158,7 +5309,6 @@
 ./host/hr_system.lo: ../../include/net-snmp/library/check_varbind.h
 ./host/hr_system.lo: ../../include/net-snmp/library/container.h
 ./host/hr_system.lo: ../../include/net-snmp/library/factory.h
-./host/hr_system.lo: ../../include/net-snmp/library/snmp_logging.h
 ./host/hr_system.lo: ../../include/net-snmp/library/container_binary_array.h
 ./host/hr_system.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./host/hr_system.lo: ../../include/net-snmp/library/container_iterator.h
@@ -5171,8 +5321,6 @@
 ./host/hr_system.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmp_enum.h
 ./host/hr_system.lo: ../../include/net-snmp/library/vacm.h
-./host/hr_system.lo: ../../include/net-snmp/output_api.h
-./host/hr_system.lo: ../../include/net-snmp/library/snmp_debug.h
 ./host/hr_system.lo: ../../include/net-snmp/snmpv3_api.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmpv3.h
 ./host/hr_system.lo: ../../include/net-snmp/library/transform_oids.h
@@ -5181,6 +5329,7 @@
 ./host/hr_system.lo: ../../include/net-snmp/library/lcd_time.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./host/hr_system.lo: ../../include/net-snmp/library/snmptsm.h
 ./host/hr_system.lo: ../../include/net-snmp/library/snmpusm.h
 ./host/hr_system.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./host/hr_system.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -5217,23 +5366,24 @@
 ./host/hr_system.lo: ../../include/net-snmp/agent/table_iterator.h
 ./host/hr_system.lo: ../../include/net-snmp/agent/table_container.h
 ./host/hr_system.lo: ../../include/net-snmp/agent/table_array.h
-./host/hr_system.lo: ../../include/net-snmp/agent/mfd.h host.h host_res.h
-./host/hr_system.lo:  ./host/hr_system.h
+./host/hr_system.lo: ../../include/net-snmp/agent/mfd.h
+./host/hr_system.lo: ../../include/net-snmp/agent/snmp_get_statistic.h host.h
+./host/hr_system.lo: host_res.h ./host/hr_system.h
 ./host/hr_system.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/net-snmp-config.h
-./ip-mib/ip_scalars.lo: ../../include/net-snmp/system/linux.h
-./ip-mib/ip_scalars.lo: ../../include/net-snmp/system/sysv.h
-./ip-mib/ip_scalars.lo: ../../include/net-snmp/system/generic.h
-./ip-mib/ip_scalars.lo: ../../include/net-snmp/machine/generic.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/definitions.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/types.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/oid.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/types.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_api.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/varbind_api.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_client.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/pdu_api.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/asn1.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/output_api.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_debug.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/session_api.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/callback.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -5241,8 +5391,12 @@
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -5264,7 +5418,6 @@
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/check_varbind.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/container.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/factory.h
-./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/container_iterator.h
@@ -5277,8 +5430,6 @@
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/vacm.h
-./ip-mib/ip_scalars.lo: ../../include/net-snmp/output_api.h
-./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/snmpv3_api.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpv3.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/transform_oids.h
@@ -5287,6 +5438,7 @@
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/lcd_time.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmptsm.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/library/snmpusm.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -5324,24 +5476,25 @@
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/agent/table_container.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/agent/table_array.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/agent/mfd.h
+./ip-mib/ip_scalars.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ip-mib/ip_scalars.lo: ../../include/net-snmp/data_access/ip_scalars.h
 ./ip-mib/ip_scalars.lo: ./ip-mib/ip_scalars.h
 ./mibII/at.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/at.lo: ../../include/net-snmp/system/linux.h
-./mibII/at.lo: ../../include/net-snmp/system/sysv.h
-./mibII/at.lo: ../../include/net-snmp/system/generic.h
-./mibII/at.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/at.lo: ./mibII/mibII_common.h 
-./mibII/at.lo: ../../agent/kernel.h 
+./mibII/at.lo:  ../../agent/kernel.h
 ./mibII/at.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/at.lo: ../../include/net-snmp/definitions.h
 ./mibII/at.lo: ../../include/net-snmp/types.h 
+./mibII/at.lo: ../../include/net-snmp/library/oid.h
 ./mibII/at.lo: ../../include/net-snmp/library/types.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/at.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/at.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/at.lo: ../../include/net-snmp/library/asn1.h
+./mibII/at.lo: ../../include/net-snmp/output_api.h
+./mibII/at.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/at.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/at.lo: ../../include/net-snmp/session_api.h
 ./mibII/at.lo: ../../include/net-snmp/library/callback.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -5349,8 +5502,12 @@
 ./mibII/at.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/at.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/at.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/at.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/at.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/at.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -5372,7 +5529,6 @@
 ./mibII/at.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/at.lo: ../../include/net-snmp/library/container.h
 ./mibII/at.lo: ../../include/net-snmp/library/factory.h
-./mibII/at.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/at.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/at.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/at.lo: ../../include/net-snmp/library/container_iterator.h
@@ -5385,8 +5541,6 @@
 ./mibII/at.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/at.lo: ../../include/net-snmp/library/vacm.h
-./mibII/at.lo: ../../include/net-snmp/output_api.h
-./mibII/at.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/at.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/at.lo: ../../include/net-snmp/library/transform_oids.h
@@ -5395,6 +5549,7 @@
 ./mibII/at.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/at.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/at.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/at.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/at.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -5432,25 +5587,26 @@
 ./mibII/at.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/at.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/at.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/at.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/at.lo: ../../include/net-snmp/agent/auto_nlist.h ./mibII/at.h
 ./mibII/at.lo: ./mibII/interfaces.h
 ./mibII/at.lo: ../../include/net-snmp/data_access/interface.h
 ./mibII/icmp.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/icmp.lo: ../../include/net-snmp/system/linux.h
-./mibII/icmp.lo: ../../include/net-snmp/system/sysv.h
-./mibII/icmp.lo: ../../include/net-snmp/system/generic.h
-./mibII/icmp.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/icmp.lo: ./mibII/mibII_common.h 
-./mibII/icmp.lo: ../../agent/kernel.h 
+./mibII/icmp.lo:  ../../agent/kernel.h
 ./mibII/icmp.lo: ../../include/net-snmp/net-snmp-includes.h
-./mibII/icmp.lo: ../../include/net-snmp/definitions.h
-./mibII/icmp.lo: ../../include/net-snmp/types.h
+./mibII/icmp.lo:  ../../include/net-snmp/definitions.h
+./mibII/icmp.lo: ../../include/net-snmp/types.h 
+./mibII/icmp.lo: ../../include/net-snmp/library/oid.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/types.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/icmp.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/icmp.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/asn1.h
+./mibII/icmp.lo: ../../include/net-snmp/output_api.h
+./mibII/icmp.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/icmp.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/icmp.lo: ../../include/net-snmp/session_api.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/callback.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -5458,8 +5614,12 @@
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/icmp.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/icmp.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/icmp.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/icmp.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -5481,7 +5641,6 @@
 ./mibII/icmp.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/container.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/factory.h
-./mibII/icmp.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/container_iterator.h
@@ -5494,8 +5653,6 @@
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/vacm.h
-./mibII/icmp.lo: ../../include/net-snmp/output_api.h
-./mibII/icmp.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/icmp.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/transform_oids.h
@@ -5504,6 +5661,7 @@
 ./mibII/icmp.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/icmp.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/icmp.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/icmp.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/icmp.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -5541,25 +5699,26 @@
 ./mibII/icmp.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/icmp.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/icmp.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/icmp.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/icmp.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./mibII/icmp.lo: ../../include/net-snmp/agent/sysORTable.h
 ./mibII/icmp.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./mibII/icmp.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h ./mibII/icmp.h
 ./mibII/interfaces.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/interfaces.lo: ../../include/net-snmp/system/linux.h
-./mibII/interfaces.lo: ../../include/net-snmp/system/sysv.h
-./mibII/interfaces.lo: ../../include/net-snmp/system/generic.h
-./mibII/interfaces.lo: ../../include/net-snmp/machine/generic.h
-./mibII/interfaces.lo: ../../agent/kernel.h 
+./mibII/interfaces.lo:  ../../agent/kernel.h
 ./mibII/interfaces.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/interfaces.lo: ../../include/net-snmp/definitions.h
-./mibII/interfaces.lo: ../../include/net-snmp/types.h
+./mibII/interfaces.lo: ../../include/net-snmp/types.h 
+./mibII/interfaces.lo: ../../include/net-snmp/library/oid.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/types.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/interfaces.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/interfaces.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/asn1.h
+./mibII/interfaces.lo: ../../include/net-snmp/output_api.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/interfaces.lo: ../../include/net-snmp/session_api.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/callback.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -5567,8 +5726,12 @@
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -5590,7 +5753,6 @@
 ./mibII/interfaces.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/container.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/factory.h
-./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/container_iterator.h
@@ -5603,8 +5765,6 @@
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/vacm.h
-./mibII/interfaces.lo: ../../include/net-snmp/output_api.h
-./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/interfaces.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/transform_oids.h
@@ -5613,6 +5773,7 @@
 ./mibII/interfaces.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/interfaces.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/interfaces.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/interfaces.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/interfaces.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -5650,6 +5811,7 @@
 ./mibII/interfaces.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/interfaces.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/interfaces.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/interfaces.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/interfaces.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./mibII/interfaces.lo: ../../include/net-snmp/agent/sysORTable.h
 ./mibII/interfaces.lo: ../../include/net-snmp/agent/agent_callbacks.h
@@ -5657,20 +5819,20 @@
 ./mibII/interfaces.lo: ./mibII/interfaces.h struct.h
 ./mibII/interfaces.lo: util_funcs/header_generic.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/ipAddr.lo: ../../include/net-snmp/system/linux.h
-./mibII/ipAddr.lo: ../../include/net-snmp/system/sysv.h
-./mibII/ipAddr.lo: ../../include/net-snmp/system/generic.h
-./mibII/ipAddr.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/ipAddr.lo:  ../../agent/kernel.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/definitions.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/types.h 
+./mibII/ipAddr.lo: ../../include/net-snmp/library/oid.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/types.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/asn1.h
+./mibII/ipAddr.lo: ../../include/net-snmp/output_api.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/session_api.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/callback.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -5678,8 +5840,12 @@
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -5701,7 +5867,6 @@
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/container.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/factory.h
-./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/container_iterator.h
@@ -5714,8 +5879,6 @@
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/vacm.h
-./mibII/ipAddr.lo: ../../include/net-snmp/output_api.h
-./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/transform_oids.h
@@ -5724,6 +5887,7 @@
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/ipAddr.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -5761,26 +5925,27 @@
 ./mibII/ipAddr.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/ipAddr.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./mibII/ipAddr.lo: ../../include/net-snmp/data_access/interface.h
 ./mibII/ipAddr.lo: ./mibII/ip.h ./mibII/var_route.h ./mibII/route_write.h
 ./mibII/ipAddr.lo: ./mibII/at.h ./mibII/interfaces.h
 ./mibII/ip.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/ip.lo: ../../include/net-snmp/system/linux.h
-./mibII/ip.lo: ../../include/net-snmp/system/sysv.h
-./mibII/ip.lo: ../../include/net-snmp/system/generic.h
-./mibII/ip.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/ip.lo: ./mibII/mibII_common.h 
-./mibII/ip.lo: ../../agent/kernel.h 
+./mibII/ip.lo:  ../../agent/kernel.h
 ./mibII/ip.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/ip.lo: ../../include/net-snmp/definitions.h
 ./mibII/ip.lo: ../../include/net-snmp/types.h 
+./mibII/ip.lo: ../../include/net-snmp/library/oid.h
 ./mibII/ip.lo: ../../include/net-snmp/library/types.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/ip.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/ip.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/ip.lo: ../../include/net-snmp/library/asn1.h
+./mibII/ip.lo: ../../include/net-snmp/output_api.h
+./mibII/ip.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/ip.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/ip.lo: ../../include/net-snmp/session_api.h
 ./mibII/ip.lo: ../../include/net-snmp/library/callback.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -5788,8 +5953,12 @@
 ./mibII/ip.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/ip.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/ip.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/ip.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/ip.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/ip.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -5811,7 +5980,6 @@
 ./mibII/ip.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/ip.lo: ../../include/net-snmp/library/container.h
 ./mibII/ip.lo: ../../include/net-snmp/library/factory.h
-./mibII/ip.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/ip.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/ip.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/ip.lo: ../../include/net-snmp/library/container_iterator.h
@@ -5824,8 +5992,6 @@
 ./mibII/ip.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/ip.lo: ../../include/net-snmp/library/vacm.h
-./mibII/ip.lo: ../../include/net-snmp/output_api.h
-./mibII/ip.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/ip.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/ip.lo: ../../include/net-snmp/library/transform_oids.h
@@ -5834,6 +6000,7 @@
 ./mibII/ip.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/ip.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/ip.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/ip.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/ip.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -5871,6 +6038,7 @@
 ./mibII/ip.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/ip.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/ip.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/ip.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/ip.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./mibII/ip.lo: ../../include/net-snmp/agent/sysORTable.h
 ./mibII/ip.lo: ../../include/net-snmp/agent/agent_callbacks.h
@@ -5878,20 +6046,20 @@
 ./mibII/ip.lo: ./mibII/var_route.h ./mibII/route_write.h ./mibII/at.h
 ./mibII/ip.lo: ./mibII/ipAddr.h ./mibII/interfaces.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/system/linux.h
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/system/sysv.h
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/system/generic.h
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/ipCidrRouteTable_access.lo: ./mibII/route_headers.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/definitions.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/types.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/oid.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/types.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/asn1.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/output_api.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/session_api.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/callback.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -5899,8 +6067,12 @@
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -5922,7 +6094,6 @@
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/container.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/factory.h
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/container_iterator.h
@@ -5935,8 +6106,6 @@
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/vacm.h
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/output_api.h
-./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/transform_oids.h
@@ -5945,6 +6114,7 @@
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -5982,23 +6152,24 @@
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/ipCidrRouteTable_access.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/ipCidrRouteTable_access.lo: ./mibII/ipCidrRouteTable_access.h
 ./mibII/ipCidrRouteTable_access.lo: ./mibII/ipCidrRouteTable_enums.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/system/linux.h
-./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/system/sysv.h
-./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/system/generic.h
-./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/ipCidrRouteTable.lo: ./mibII/route_headers.h 
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/definitions.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/types.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/oid.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/types.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/asn1.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/output_api.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/session_api.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/callback.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -6006,8 +6177,12 @@
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -6029,7 +6204,6 @@
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/container.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/factory.h
-./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -6042,8 +6216,6 @@
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/vacm.h
-./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/output_api.h
-./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -6052,6 +6224,7 @@
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -6089,6 +6262,7 @@
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/ipCidrRouteTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/ipCidrRouteTable.lo: ./mibII/ipCidrRouteTable.h
 ./mibII/ipCidrRouteTable.lo: ./mibII/ipCidrRouteTable_columns.h
 ./mibII/ipCidrRouteTable.lo: ./mibII/ipCidrRouteTable_enums.h
@@ -6096,19 +6270,19 @@
 ./mibII/ipCidrRouteTable.lo: ./mibII/ipCidrRouteTable_access.h
 ./mibII/ipCidrRouteTable.lo: ./mibII/var_route.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/system/linux.h
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/system/sysv.h
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/system/generic.h
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/definitions.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/types.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/oid.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/types.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/asn1.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/output_api.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/session_api.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/callback.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -6116,8 +6290,12 @@
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -6139,7 +6317,6 @@
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/container.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/factory.h
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/container_iterator.h
@@ -6152,8 +6329,6 @@
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/vacm.h
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/output_api.h
-./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/transform_oids.h
@@ -6162,23 +6337,24 @@
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ./mibII/ipCidrRouteTable_checkfns.h
 ./mibII/ipCidrRouteTable_checkfns.lo: ./mibII/ipCidrRouteTable_enums.h
 ./mibII/ipv6.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/ipv6.lo: ../../include/net-snmp/system/linux.h
-./mibII/ipv6.lo: ../../include/net-snmp/system/sysv.h
-./mibII/ipv6.lo: ../../include/net-snmp/system/generic.h
-./mibII/ipv6.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/ipv6.lo: ../../include/net-snmp/net-snmp-includes.h
-./mibII/ipv6.lo: ../../include/net-snmp/definitions.h
+./mibII/ipv6.lo:  ../../include/net-snmp/definitions.h
 ./mibII/ipv6.lo: ../../include/net-snmp/types.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/oid.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/types.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/ipv6.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/ipv6.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/asn1.h
+./mibII/ipv6.lo: ../../include/net-snmp/output_api.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/ipv6.lo: ../../include/net-snmp/session_api.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/callback.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -6186,8 +6362,12 @@
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -6209,7 +6389,6 @@
 ./mibII/ipv6.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/container.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/factory.h
-./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/container_iterator.h
@@ -6222,8 +6401,6 @@
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/vacm.h
-./mibII/ipv6.lo: ../../include/net-snmp/output_api.h
-./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/ipv6.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/transform_oids.h
@@ -6232,6 +6409,7 @@
 ./mibII/ipv6.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/ipv6.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/ipv6.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/ipv6.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/ipv6.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -6269,23 +6447,24 @@
 ./mibII/ipv6.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/ipv6.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/ipv6.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/ipv6.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/ipv6.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./mibII/ipv6.lo: ../../agent/kernel.h ./mibII/ipv6.h ./mibII/var_route.h
 ./mibII/ipv6.lo: ./mibII/route_write.h ./mibII/at.h ./mibII/interfaces.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/kernel_linux.lo: ../../include/net-snmp/system/linux.h
-./mibII/kernel_linux.lo: ../../include/net-snmp/system/sysv.h
-./mibII/kernel_linux.lo: ../../include/net-snmp/system/generic.h
-./mibII/kernel_linux.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/definitions.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/types.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/oid.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/types.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/asn1.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/output_api.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/session_api.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/callback.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -6293,8 +6472,12 @@
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -6316,7 +6499,6 @@
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/container.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/factory.h
-./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/container_iterator.h
@@ -6329,8 +6511,6 @@
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/vacm.h
-./mibII/kernel_linux.lo: ../../include/net-snmp/output_api.h
-./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/transform_oids.h
@@ -6339,6 +6519,7 @@
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -6376,21 +6557,22 @@
 ./mibII/kernel_linux.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/kernel_linux.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/kernel_linux.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/kernel_linux.lo: ./mibII/kernel_linux.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/system/linux.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/system/sysv.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/system/generic.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/definitions.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/types.h
+./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/oid.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/types.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/asn1.h
+./mibII/kernel_netbsd.lo: ../../include/net-snmp/output_api.h
+./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/session_api.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/callback.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -6398,8 +6580,12 @@
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -6421,7 +6607,6 @@
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/container.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/factory.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/container_iterator.h
@@ -6434,8 +6619,6 @@
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/vacm.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/output_api.h
-./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/transform_oids.h
@@ -6444,6 +6627,7 @@
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -6481,21 +6665,22 @@
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/kernel_netbsd.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/kernel_netbsd.lo: ./mibII/kernel_netbsd.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/mta_sendmail.lo: ../../include/net-snmp/system/linux.h
-./mibII/mta_sendmail.lo: ../../include/net-snmp/system/sysv.h
-./mibII/mta_sendmail.lo: ../../include/net-snmp/system/generic.h
-./mibII/mta_sendmail.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/definitions.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/types.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/oid.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/types.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/asn1.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/output_api.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/session_api.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/callback.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -6503,8 +6688,12 @@
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -6526,7 +6715,6 @@
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/container.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/factory.h
-./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/container_iterator.h
@@ -6539,8 +6727,6 @@
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/vacm.h
-./mibII/mta_sendmail.lo: ../../include/net-snmp/output_api.h
-./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/transform_oids.h
@@ -6549,6 +6735,7 @@
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -6586,21 +6773,22 @@
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/mta_sendmail.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/mta_sendmail.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/mta_sendmail.lo: ./mibII/mta_sendmail.h 
 ./mibII/route_write.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/route_write.lo: ../../include/net-snmp/system/linux.h
-./mibII/route_write.lo: ../../include/net-snmp/system/sysv.h
-./mibII/route_write.lo: ../../include/net-snmp/system/generic.h
-./mibII/route_write.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/route_write.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/route_write.lo: ../../include/net-snmp/definitions.h
 ./mibII/route_write.lo: ../../include/net-snmp/types.h
+./mibII/route_write.lo: ../../include/net-snmp/library/oid.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/types.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/route_write.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/route_write.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/asn1.h
+./mibII/route_write.lo: ../../include/net-snmp/output_api.h
+./mibII/route_write.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/route_write.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/route_write.lo: ../../include/net-snmp/session_api.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/callback.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -6608,8 +6796,12 @@
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/route_write.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/route_write.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/route_write.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/route_write.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -6631,7 +6823,6 @@
 ./mibII/route_write.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/container.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/factory.h
-./mibII/route_write.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/container_iterator.h
@@ -6644,8 +6835,6 @@
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/vacm.h
-./mibII/route_write.lo: ../../include/net-snmp/output_api.h
-./mibII/route_write.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/route_write.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/transform_oids.h
@@ -6654,6 +6843,7 @@
 ./mibII/route_write.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/route_write.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/route_write.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/route_write.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/route_write.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -6690,23 +6880,24 @@
 ./mibII/route_write.lo: ../../include/net-snmp/agent/table_iterator.h
 ./mibII/route_write.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/route_write.lo: ../../include/net-snmp/agent/table_array.h
-./mibII/route_write.lo: ../../include/net-snmp/agent/mfd.h ./mibII/ip.h
-./mibII/route_write.lo: ./mibII/var_route.h ./mibII/route_write.h
-./mibII/route_write.lo: ./mibII/at.h
+./mibII/route_write.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/route_write.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./mibII/route_write.lo: ./mibII/ip.h ./mibII/var_route.h
+./mibII/route_write.lo: ./mibII/route_write.h ./mibII/at.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/setSerialNo.lo: ../../include/net-snmp/system/linux.h
-./mibII/setSerialNo.lo: ../../include/net-snmp/system/sysv.h
-./mibII/setSerialNo.lo: ../../include/net-snmp/system/generic.h
-./mibII/setSerialNo.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/definitions.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/types.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/oid.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/types.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/asn1.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/output_api.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/session_api.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/callback.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -6714,8 +6905,12 @@
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -6737,7 +6932,6 @@
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/container.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/factory.h
-./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/container_iterator.h
@@ -6750,8 +6944,6 @@
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/vacm.h
-./mibII/setSerialNo.lo: ../../include/net-snmp/output_api.h
-./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/transform_oids.h
@@ -6760,6 +6952,7 @@
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -6797,21 +6990,22 @@
 ./mibII/setSerialNo.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/setSerialNo.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/setSerialNo.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/setSerialNo.lo: ./mibII/setSerialNo.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/system/linux.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/system/sysv.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/system/generic.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/definitions.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/types.h
+./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/oid.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/types.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/asn1.h
+./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/output_api.h
+./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/session_api.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/callback.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -6819,8 +7013,12 @@
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -6842,7 +7040,6 @@
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/container.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/factory.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/container_iterator.h
@@ -6855,8 +7052,6 @@
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/vacm.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/output_api.h
-./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/transform_oids.h
@@ -6865,6 +7060,7 @@
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -6902,24 +7098,24 @@
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/sysORTable.h
 ./mibII/snmp_mib_5_5.lo: ../../include/net-snmp/agent/agent_callbacks.h
-./mibII/snmp_mib_5_5.lo: ./utilities/snmp_get_statistic.h
 ./mibII/snmp_mib_5_5.lo: ./mibII/snmp_mib_5_5.h ./mibII/updates.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/snmp_mib.lo: ../../include/net-snmp/system/linux.h
-./mibII/snmp_mib.lo: ../../include/net-snmp/system/sysv.h
-./mibII/snmp_mib.lo: ../../include/net-snmp/system/generic.h
-./mibII/snmp_mib.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/definitions.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/types.h 
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/oid.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/types.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/asn1.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/output_api.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/session_api.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/callback.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -6927,8 +7123,12 @@
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -6950,7 +7150,6 @@
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/container.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/factory.h
-./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/container_iterator.h
@@ -6963,8 +7162,6 @@
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/vacm.h
-./mibII/snmp_mib.lo: ../../include/net-snmp/output_api.h
-./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/transform_oids.h
@@ -6973,6 +7170,7 @@
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -7010,23 +7208,24 @@
 ./mibII/snmp_mib.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/snmp_mib.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/agent/sysORTable.h
 ./mibII/snmp_mib.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./mibII/snmp_mib.lo: ./mibII/snmp_mib.h ./mibII/updates.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/sysORTable.lo: ../../include/net-snmp/system/linux.h
-./mibII/sysORTable.lo: ../../include/net-snmp/system/sysv.h
-./mibII/sysORTable.lo: ../../include/net-snmp/system/generic.h
-./mibII/sysORTable.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/definitions.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/types.h 
+./mibII/sysORTable.lo: ../../include/net-snmp/library/oid.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/types.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/asn1.h
+./mibII/sysORTable.lo: ../../include/net-snmp/output_api.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/session_api.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/callback.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -7034,8 +7233,12 @@
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -7057,7 +7260,6 @@
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/container.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/factory.h
-./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -7070,8 +7272,6 @@
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/vacm.h
-./mibII/sysORTable.lo: ../../include/net-snmp/output_api.h
-./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -7080,6 +7280,7 @@
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/sysORTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -7117,24 +7318,25 @@
 ./mibII/sysORTable.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/sysORTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/agent/agent_sysORTable.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/agent/sysORTable.h
 ./mibII/sysORTable.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./mibII/sysORTable.lo: ./mibII/sysORTable.h
 ./mibII/system_mib.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/system_mib.lo: ../../include/net-snmp/system/linux.h
-./mibII/system_mib.lo: ../../include/net-snmp/system/sysv.h
-./mibII/system_mib.lo: ../../include/net-snmp/system/generic.h
-./mibII/system_mib.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/system_mib.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/system_mib.lo: ../../include/net-snmp/definitions.h
 ./mibII/system_mib.lo: ../../include/net-snmp/types.h 
+./mibII/system_mib.lo: ../../include/net-snmp/library/oid.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/types.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/system_mib.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/system_mib.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/asn1.h
+./mibII/system_mib.lo: ../../include/net-snmp/output_api.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/system_mib.lo: ../../include/net-snmp/session_api.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/callback.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -7142,8 +7344,12 @@
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -7165,7 +7371,6 @@
 ./mibII/system_mib.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/container.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/factory.h
-./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/container_iterator.h
@@ -7178,8 +7383,6 @@
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/vacm.h
-./mibII/system_mib.lo: ../../include/net-snmp/output_api.h
-./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/system_mib.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/transform_oids.h
@@ -7188,6 +7391,7 @@
 ./mibII/system_mib.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/system_mib.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/system_mib.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/system_mib.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/system_mib.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -7225,28 +7429,30 @@
 ./mibII/system_mib.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/system_mib.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/system_mib.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/system_mib.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/system_mib.lo: ../../include/net-snmp/agent/sysORTable.h
 ./mibII/system_mib.lo: ../../include/net-snmp/agent/agent_callbacks.h
-./mibII/system_mib.lo: util_funcs.h util_funcs/header_generic.h
-./mibII/system_mib.lo: util_funcs/header_simple_table.h struct.h
-./mibII/system_mib.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h
+./mibII/system_mib.lo: util_funcs.h util_funcs/Exit.h
+./mibII/system_mib.lo: util_funcs/header_generic.h
+./mibII/system_mib.lo: util_funcs/header_simple_table.h util_funcs/restart.h
+./mibII/system_mib.lo: struct.h util_funcs/MIB_STATS_CACHE_TIMEOUT.h
 ./mibII/system_mib.lo: ./mibII/system_mib.h ./mibII/updates.h
 ./mibII/tcp.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/tcp.lo: ../../include/net-snmp/system/linux.h
-./mibII/tcp.lo: ../../include/net-snmp/system/sysv.h
-./mibII/tcp.lo: ../../include/net-snmp/system/generic.h
-./mibII/tcp.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/tcp.lo: ./mibII/mibII_common.h 
-./mibII/tcp.lo: ../../agent/kernel.h 
+./mibII/tcp.lo:  ../../agent/kernel.h
 ./mibII/tcp.lo: ../../include/net-snmp/net-snmp-includes.h
-./mibII/tcp.lo: ../../include/net-snmp/definitions.h
+./mibII/tcp.lo:  ../../include/net-snmp/definitions.h
 ./mibII/tcp.lo: ../../include/net-snmp/types.h 
+./mibII/tcp.lo: ../../include/net-snmp/library/oid.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/types.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/tcp.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/tcp.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/asn1.h
+./mibII/tcp.lo: ../../include/net-snmp/output_api.h
+./mibII/tcp.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/tcp.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/tcp.lo: ../../include/net-snmp/session_api.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/callback.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -7254,8 +7460,12 @@
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/tcp.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/tcp.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/tcp.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/tcp.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -7277,7 +7487,6 @@
 ./mibII/tcp.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/container.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/factory.h
-./mibII/tcp.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/container_iterator.h
@@ -7290,8 +7499,6 @@
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/vacm.h
-./mibII/tcp.lo: ../../include/net-snmp/output_api.h
-./mibII/tcp.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/tcp.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/transform_oids.h
@@ -7300,6 +7507,7 @@
 ./mibII/tcp.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/tcp.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/tcp.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/tcp.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/tcp.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -7337,27 +7545,28 @@
 ./mibII/tcp.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/tcp.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/tcp.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/tcp.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/tcp.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./mibII/tcp.lo: ../../include/net-snmp/agent/sysORTable.h
 ./mibII/tcp.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./mibII/tcp.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h ./mibII/tcp.h
 ./mibII/tcp.lo: ./mibII/tcpTable.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/tcpTable.lo: ../../include/net-snmp/system/linux.h
-./mibII/tcpTable.lo: ../../include/net-snmp/system/sysv.h
-./mibII/tcpTable.lo: ../../include/net-snmp/system/generic.h
-./mibII/tcpTable.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/tcpTable.lo: ./mibII/mibII_common.h 
 ./mibII/tcpTable.lo:  ../../agent/kernel.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/definitions.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/types.h 
+./mibII/tcpTable.lo: ../../include/net-snmp/library/oid.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/types.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/asn1.h
+./mibII/tcpTable.lo: ../../include/net-snmp/output_api.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/session_api.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/callback.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -7365,8 +7574,12 @@
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -7388,7 +7601,6 @@
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/container.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/factory.h
-./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -7401,8 +7613,6 @@
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/vacm.h
-./mibII/tcpTable.lo: ../../include/net-snmp/output_api.h
-./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -7411,6 +7621,7 @@
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/tcpTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -7448,24 +7659,25 @@
 ./mibII/tcpTable.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/tcpTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/tcpTable.lo: ../../include/net-snmp/agent/auto_nlist.h ./mibII/tcp.h
 ./mibII/tcpTable.lo: ./mibII/tcpTable.h
 ./mibII/udp.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/udp.lo: ../../include/net-snmp/system/linux.h
-./mibII/udp.lo: ../../include/net-snmp/system/sysv.h
-./mibII/udp.lo: ../../include/net-snmp/system/generic.h
-./mibII/udp.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/udp.lo: ./mibII/mibII_common.h 
-./mibII/udp.lo: ../../agent/kernel.h 
+./mibII/udp.lo:  ../../agent/kernel.h
 ./mibII/udp.lo: ../../include/net-snmp/net-snmp-includes.h
-./mibII/udp.lo: ../../include/net-snmp/definitions.h
+./mibII/udp.lo:  ../../include/net-snmp/definitions.h
 ./mibII/udp.lo: ../../include/net-snmp/types.h 
+./mibII/udp.lo: ../../include/net-snmp/library/oid.h
 ./mibII/udp.lo: ../../include/net-snmp/library/types.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/udp.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/udp.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/udp.lo: ../../include/net-snmp/library/asn1.h
+./mibII/udp.lo: ../../include/net-snmp/output_api.h
+./mibII/udp.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/udp.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/udp.lo: ../../include/net-snmp/session_api.h
 ./mibII/udp.lo: ../../include/net-snmp/library/callback.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -7473,8 +7685,12 @@
 ./mibII/udp.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/udp.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/udp.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/udp.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/udp.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/udp.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -7496,7 +7712,6 @@
 ./mibII/udp.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/udp.lo: ../../include/net-snmp/library/container.h
 ./mibII/udp.lo: ../../include/net-snmp/library/factory.h
-./mibII/udp.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/udp.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/udp.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/udp.lo: ../../include/net-snmp/library/container_iterator.h
@@ -7509,8 +7724,6 @@
 ./mibII/udp.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/udp.lo: ../../include/net-snmp/library/vacm.h
-./mibII/udp.lo: ../../include/net-snmp/output_api.h
-./mibII/udp.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/udp.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/udp.lo: ../../include/net-snmp/library/transform_oids.h
@@ -7519,6 +7732,7 @@
 ./mibII/udp.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/udp.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/udp.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/udp.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/udp.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -7556,27 +7770,28 @@
 ./mibII/udp.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/udp.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/udp.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/udp.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/udp.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./mibII/udp.lo: ../../include/net-snmp/agent/sysORTable.h
 ./mibII/udp.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./mibII/udp.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h ./mibII/udp.h
 ./mibII/udp.lo: ./mibII/udpTable.h
 ./mibII/udpTable.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/udpTable.lo: ../../include/net-snmp/system/linux.h
-./mibII/udpTable.lo: ../../include/net-snmp/system/sysv.h
-./mibII/udpTable.lo: ../../include/net-snmp/system/generic.h
-./mibII/udpTable.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/udpTable.lo: ./mibII/mibII_common.h 
 ./mibII/udpTable.lo:  ../../agent/kernel.h
 ./mibII/udpTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/udpTable.lo: ../../include/net-snmp/definitions.h
 ./mibII/udpTable.lo: ../../include/net-snmp/types.h 
+./mibII/udpTable.lo: ../../include/net-snmp/library/oid.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/types.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/udpTable.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/udpTable.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/asn1.h
+./mibII/udpTable.lo: ../../include/net-snmp/output_api.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/udpTable.lo: ../../include/net-snmp/session_api.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/callback.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -7584,8 +7799,12 @@
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -7607,7 +7826,6 @@
 ./mibII/udpTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/container.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/factory.h
-./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -7620,8 +7838,6 @@
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/vacm.h
-./mibII/udpTable.lo: ../../include/net-snmp/output_api.h
-./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/udpTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -7630,6 +7846,7 @@
 ./mibII/udpTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/udpTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/udpTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/udpTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/udpTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -7667,22 +7884,23 @@
 ./mibII/udpTable.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/udpTable.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/udpTable.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/udpTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/udpTable.lo: ../../include/net-snmp/agent/auto_nlist.h ./mibII/udp.h
 ./mibII/udpTable.lo: ./mibII/udpTable.h
 ./mibII/updates.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/updates.lo: ../../include/net-snmp/system/linux.h
-./mibII/updates.lo: ../../include/net-snmp/system/sysv.h
-./mibII/updates.lo: ../../include/net-snmp/system/generic.h
-./mibII/updates.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/updates.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/updates.lo: ../../include/net-snmp/definitions.h
 ./mibII/updates.lo: ../../include/net-snmp/types.h 
+./mibII/updates.lo: ../../include/net-snmp/library/oid.h
 ./mibII/updates.lo: ../../include/net-snmp/library/types.h
 ./mibII/updates.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/updates.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/updates.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/updates.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/updates.lo: ../../include/net-snmp/library/asn1.h
+./mibII/updates.lo: ../../include/net-snmp/output_api.h
+./mibII/updates.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/updates.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/updates.lo: ../../include/net-snmp/session_api.h
 ./mibII/updates.lo: ../../include/net-snmp/library/callback.h
 ./mibII/updates.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -7690,8 +7908,12 @@
 ./mibII/updates.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/updates.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/updates.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/updates.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/updates.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/updates.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/updates.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/updates.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/updates.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/updates.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/updates.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/updates.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -7713,7 +7935,6 @@
 ./mibII/updates.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/updates.lo: ../../include/net-snmp/library/container.h
 ./mibII/updates.lo: ../../include/net-snmp/library/factory.h
-./mibII/updates.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/updates.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/updates.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/updates.lo: ../../include/net-snmp/library/container_iterator.h
@@ -7726,8 +7947,6 @@
 ./mibII/updates.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/updates.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/updates.lo: ../../include/net-snmp/library/vacm.h
-./mibII/updates.lo: ../../include/net-snmp/output_api.h
-./mibII/updates.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/updates.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/updates.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/updates.lo: ../../include/net-snmp/library/transform_oids.h
@@ -7736,6 +7955,7 @@
 ./mibII/updates.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/updates.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/updates.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/updates.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/updates.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/updates.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/updates.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -7773,20 +7993,21 @@
 ./mibII/updates.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/updates.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/updates.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/updates.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/vacm_conf.lo: ../../include/net-snmp/system/linux.h
-./mibII/vacm_conf.lo: ../../include/net-snmp/system/sysv.h
-./mibII/vacm_conf.lo: ../../include/net-snmp/system/generic.h
-./mibII/vacm_conf.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/definitions.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/types.h 
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/oid.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/types.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/asn1.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/output_api.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/session_api.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/callback.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -7794,8 +8015,12 @@
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -7817,7 +8042,6 @@
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/container.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/factory.h
-./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/container_iterator.h
@@ -7830,8 +8054,6 @@
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/vacm.h
-./mibII/vacm_conf.lo: ../../include/net-snmp/output_api.h
-./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/transform_oids.h
@@ -7840,6 +8062,7 @@
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -7877,22 +8100,23 @@
 ./mibII/vacm_conf.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/vacm_conf.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/vacm_conf.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./mibII/vacm_conf.lo: ./mibII/vacm_conf.h ../../agent/snmpd.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/vacm_context.lo: ../../include/net-snmp/system/linux.h
-./mibII/vacm_context.lo: ../../include/net-snmp/system/sysv.h
-./mibII/vacm_context.lo: ../../include/net-snmp/system/generic.h
-./mibII/vacm_context.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/definitions.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/types.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/oid.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/types.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/asn1.h
+./mibII/vacm_context.lo: ../../include/net-snmp/output_api.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/session_api.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/callback.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -7900,8 +8124,12 @@
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -7923,7 +8151,6 @@
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/container.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/factory.h
-./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/container_iterator.h
@@ -7936,8 +8163,6 @@
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/vacm.h
-./mibII/vacm_context.lo: ../../include/net-snmp/output_api.h
-./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/transform_oids.h
@@ -7946,6 +8171,7 @@
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/vacm_context.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -7983,21 +8209,22 @@
 ./mibII/vacm_context.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/vacm_context.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/vacm_context.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/vacm_context.lo: ./mibII/vacm_context.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/vacm_vars.lo: ../../include/net-snmp/system/linux.h
-./mibII/vacm_vars.lo: ../../include/net-snmp/system/sysv.h
-./mibII/vacm_vars.lo: ../../include/net-snmp/system/generic.h
-./mibII/vacm_vars.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/definitions.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/types.h 
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/oid.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/types.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/asn1.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/output_api.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/session_api.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/callback.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -8005,8 +8232,12 @@
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -8028,7 +8259,6 @@
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/container.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/factory.h
-./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/container_iterator.h
@@ -8041,8 +8271,6 @@
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/vacm.h
-./mibII/vacm_vars.lo: ../../include/net-snmp/output_api.h
-./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/transform_oids.h
@@ -8051,6 +8279,7 @@
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -8088,24 +8317,25 @@
 ./mibII/vacm_vars.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/vacm_vars.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./mibII/vacm_vars.lo: ../../include/net-snmp/agent/sysORTable.h
 ./mibII/vacm_vars.lo: ./mibII/vacm_vars.h util_funcs/header_generic.h
 ./mibII/var_route.lo: ../../include/net-snmp/net-snmp-config.h
-./mibII/var_route.lo: ../../include/net-snmp/system/linux.h
-./mibII/var_route.lo: ../../include/net-snmp/system/sysv.h
-./mibII/var_route.lo: ../../include/net-snmp/system/generic.h
-./mibII/var_route.lo: ../../include/net-snmp/machine/generic.h
 ./mibII/var_route.lo: ./mibII/route_headers.h 
 ./mibII/var_route.lo: ../../include/net-snmp/net-snmp-includes.h
 ./mibII/var_route.lo: ../../include/net-snmp/definitions.h
 ./mibII/var_route.lo: ../../include/net-snmp/types.h 
+./mibII/var_route.lo: ../../include/net-snmp/library/oid.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/types.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmp_api.h
 ./mibII/var_route.lo: ../../include/net-snmp/varbind_api.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmp_client.h
 ./mibII/var_route.lo: ../../include/net-snmp/pdu_api.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/asn1.h
+./mibII/var_route.lo: ../../include/net-snmp/output_api.h
+./mibII/var_route.lo: ../../include/net-snmp/library/snmp_debug.h
+./mibII/var_route.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/var_route.lo: ../../include/net-snmp/session_api.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/callback.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -8113,8 +8343,12 @@
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./mibII/var_route.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mibII/var_route.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mibII/var_route.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mibII/var_route.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -8136,7 +8370,6 @@
 ./mibII/var_route.lo: ../../include/net-snmp/library/check_varbind.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/container.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/factory.h
-./mibII/var_route.lo: ../../include/net-snmp/library/snmp_logging.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/container_binary_array.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/container_iterator.h
@@ -8149,8 +8382,6 @@
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmp_enum.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/vacm.h
-./mibII/var_route.lo: ../../include/net-snmp/output_api.h
-./mibII/var_route.lo: ../../include/net-snmp/library/snmp_debug.h
 ./mibII/var_route.lo: ../../include/net-snmp/snmpv3_api.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmpv3.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/transform_oids.h
@@ -8159,6 +8390,7 @@
 ./mibII/var_route.lo: ../../include/net-snmp/library/lcd_time.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./mibII/var_route.lo: ../../include/net-snmp/library/snmptsm.h
 ./mibII/var_route.lo: ../../include/net-snmp/library/snmpusm.h
 ./mibII/var_route.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./mibII/var_route.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -8196,25 +8428,26 @@
 ./mibII/var_route.lo: ../../include/net-snmp/agent/table_container.h
 ./mibII/var_route.lo: ../../include/net-snmp/agent/table_array.h
 ./mibII/var_route.lo: ../../include/net-snmp/agent/mfd.h
+./mibII/var_route.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./mibII/var_route.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./mibII/var_route.lo: ../../include/net-snmp/data_access/interface.h
 ./mibII/var_route.lo: ./mibII/ip.h ./mibII/var_route.h ./mibII/route_write.h
 ./mibII/var_route.lo: ./mibII/at.h ../../agent/kernel.h ./mibII/interfaces.h
 ./mibII/var_route.lo: struct.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/net-snmp-config.h
-./misc/ipfwacc.lo: ../../include/net-snmp/system/linux.h
-./misc/ipfwacc.lo: ../../include/net-snmp/system/sysv.h
-./misc/ipfwacc.lo: ../../include/net-snmp/system/generic.h
-./misc/ipfwacc.lo: ../../include/net-snmp/machine/generic.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/net-snmp-includes.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/definitions.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/types.h 
+./misc/ipfwacc.lo: ../../include/net-snmp/library/oid.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/types.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_api.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/varbind_api.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_client.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/pdu_api.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/asn1.h
+./misc/ipfwacc.lo: ../../include/net-snmp/output_api.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_debug.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_logging.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/session_api.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/callback.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -8222,8 +8455,12 @@
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -8245,7 +8482,6 @@
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/check_varbind.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/container.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/factory.h
-./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_logging.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/container_binary_array.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/container_iterator.h
@@ -8258,8 +8494,6 @@
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_enum.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/vacm.h
-./misc/ipfwacc.lo: ../../include/net-snmp/output_api.h
-./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_debug.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/snmpv3_api.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpv3.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/transform_oids.h
@@ -8268,6 +8502,7 @@
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/lcd_time.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./misc/ipfwacc.lo: ../../include/net-snmp/library/snmptsm.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/library/snmpusm.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -8305,21 +8540,22 @@
 ./misc/ipfwacc.lo: ../../include/net-snmp/agent/table_container.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/agent/table_array.h
 ./misc/ipfwacc.lo: ../../include/net-snmp/agent/mfd.h
+./misc/ipfwacc.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./misc/ipfwacc.lo: util_funcs/header_simple_table.h ./misc/ipfwacc.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/net-snmp-config.h
-./notification-log-mib/notification_log.lo: ../../include/net-snmp/system/linux.h
-./notification-log-mib/notification_log.lo: ../../include/net-snmp/system/sysv.h
-./notification-log-mib/notification_log.lo: ../../include/net-snmp/system/generic.h
-./notification-log-mib/notification_log.lo: ../../include/net-snmp/machine/generic.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/net-snmp-includes.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/definitions.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/types.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/oid.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/types.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_api.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/varbind_api.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_client.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/pdu_api.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/asn1.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/output_api.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_debug.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_logging.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/session_api.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/callback.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -8327,8 +8563,12 @@
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -8350,7 +8590,6 @@
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/check_varbind.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/container.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/factory.h
-./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_logging.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/container_binary_array.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/container_iterator.h
@@ -8363,8 +8602,6 @@
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_enum.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/vacm.h
-./notification-log-mib/notification_log.lo: ../../include/net-snmp/output_api.h
-./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_debug.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/snmpv3_api.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpv3.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/transform_oids.h
@@ -8373,6 +8610,7 @@
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/lcd_time.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmptsm.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/library/snmpusm.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -8410,23 +8648,24 @@
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/agent/table_container.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/agent/table_array.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/agent/mfd.h
+./notification-log-mib/notification_log.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/agent/sysORTable.h
 ./notification-log-mib/notification_log.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./notification-log-mib/notification_log.lo: ./notification-log-mib/notification_log.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/net-snmp-config.h
-./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/system/linux.h
-./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/system/sysv.h
-./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/system/generic.h
-./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/machine/generic.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/definitions.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/types.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/oid.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/types.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/varbind_api.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/pdu_api.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/asn1.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/output_api.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/session_api.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/callback.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -8434,8 +8673,12 @@
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -8457,7 +8700,6 @@
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/container.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/factory.h
-./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -8470,8 +8712,6 @@
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/vacm.h
-./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/output_api.h
-./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -8480,6 +8720,7 @@
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -8517,22 +8758,23 @@
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/agent/table_container.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/agent/table_array.h
 ./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/agent/mfd.h
+./notification/snmpNotifyFilterProfileTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./notification/snmpNotifyFilterProfileTable.lo: header_complex.h
 ./notification/snmpNotifyFilterProfileTable.lo: ./notification/snmpNotifyFilterProfileTable.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/net-snmp-config.h
-./notification/snmpNotifyTable.lo: ../../include/net-snmp/system/linux.h
-./notification/snmpNotifyTable.lo: ../../include/net-snmp/system/sysv.h
-./notification/snmpNotifyTable.lo: ../../include/net-snmp/system/generic.h
-./notification/snmpNotifyTable.lo: ../../include/net-snmp/machine/generic.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/definitions.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/types.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/oid.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/types.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/varbind_api.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/pdu_api.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/asn1.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/output_api.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/session_api.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/callback.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -8540,8 +8782,12 @@
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -8563,7 +8809,6 @@
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/container.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/factory.h
-./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -8576,8 +8821,6 @@
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/vacm.h
-./notification/snmpNotifyTable.lo: ../../include/net-snmp/output_api.h
-./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -8586,6 +8829,7 @@
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -8623,6 +8867,7 @@
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/agent/table_container.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/agent/table_array.h
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/agent/mfd.h
+./notification/snmpNotifyTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./notification/snmpNotifyTable.lo: header_complex.h
 ./notification/snmpNotifyTable.lo: ./notification/snmpNotifyTable.h
 ./notification/snmpNotifyTable.lo: ./notification/snmpNotifyFilterProfileTable.h
@@ -8638,19 +8883,19 @@
 ./notification/snmpNotifyTable.lo: ../../include/net-snmp/agent/sysORTable.h
 ./notification/snmpNotifyTable.lo: notification-log-mib/notification_log.h
 ./Rmon/agutil.lo: ../../include/net-snmp/net-snmp-config.h
-./Rmon/agutil.lo: ../../include/net-snmp/system/linux.h
-./Rmon/agutil.lo: ../../include/net-snmp/system/sysv.h
-./Rmon/agutil.lo: ../../include/net-snmp/system/generic.h
-./Rmon/agutil.lo: ../../include/net-snmp/machine/generic.h
 ./Rmon/agutil.lo: ../../include/net-snmp/net-snmp-includes.h
 ./Rmon/agutil.lo: ../../include/net-snmp/definitions.h
 ./Rmon/agutil.lo: ../../include/net-snmp/types.h 
+./Rmon/agutil.lo: ../../include/net-snmp/library/oid.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/types.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_api.h
 ./Rmon/agutil.lo: ../../include/net-snmp/varbind_api.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_client.h
 ./Rmon/agutil.lo: ../../include/net-snmp/pdu_api.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/asn1.h
+./Rmon/agutil.lo: ../../include/net-snmp/output_api.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_debug.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_logging.h
 ./Rmon/agutil.lo: ../../include/net-snmp/session_api.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/callback.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -8658,8 +8903,12 @@
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -8681,7 +8930,6 @@
 ./Rmon/agutil.lo: ../../include/net-snmp/library/check_varbind.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/container.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/factory.h
-./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_logging.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/container_binary_array.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/container_iterator.h
@@ -8694,8 +8942,6 @@
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_enum.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/vacm.h
-./Rmon/agutil.lo: ../../include/net-snmp/output_api.h
-./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_debug.h
 ./Rmon/agutil.lo: ../../include/net-snmp/snmpv3_api.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmpv3.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/transform_oids.h
@@ -8704,6 +8950,7 @@
 ./Rmon/agutil.lo: ../../include/net-snmp/library/lcd_time.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./Rmon/agutil.lo: ../../include/net-snmp/library/snmptsm.h
 ./Rmon/agutil.lo: ../../include/net-snmp/library/snmpusm.h
 ./Rmon/agutil.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./Rmon/agutil.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -8740,22 +8987,23 @@
 ./Rmon/agutil.lo: ../../include/net-snmp/agent/table_iterator.h
 ./Rmon/agutil.lo: ../../include/net-snmp/agent/table_container.h
 ./Rmon/agutil.lo: ../../include/net-snmp/agent/table_array.h
-./Rmon/agutil.lo: ../../include/net-snmp/agent/mfd.h ./Rmon/agutil.h
-./Rmon/agutil.lo: ./Rmon/agutil_api.h
-./Rmon/alarm.lo: ../../include/net-snmp/net-snmp-config.h
-./Rmon/alarm.lo: ../../include/net-snmp/system/linux.h
-./Rmon/alarm.lo: ../../include/net-snmp/system/sysv.h
-./Rmon/alarm.lo: ../../include/net-snmp/system/generic.h
-./Rmon/alarm.lo: ../../include/net-snmp/machine/generic.h
+./Rmon/agutil.lo: ../../include/net-snmp/agent/mfd.h
+./Rmon/agutil.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./Rmon/agutil.lo: ./Rmon/agutil.h ./Rmon/agutil_api.h
+./Rmon/alarm.lo: ../../include/net-snmp/net-snmp-config.h 
 ./Rmon/alarm.lo: ../../include/net-snmp/net-snmp-includes.h
-./Rmon/alarm.lo: ../../include/net-snmp/definitions.h
+./Rmon/alarm.lo:  ../../include/net-snmp/definitions.h
 ./Rmon/alarm.lo: ../../include/net-snmp/types.h 
+./Rmon/alarm.lo: ../../include/net-snmp/library/oid.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/types.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_api.h
 ./Rmon/alarm.lo: ../../include/net-snmp/varbind_api.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_client.h
 ./Rmon/alarm.lo: ../../include/net-snmp/pdu_api.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/asn1.h
+./Rmon/alarm.lo: ../../include/net-snmp/output_api.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_debug.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_logging.h
 ./Rmon/alarm.lo: ../../include/net-snmp/session_api.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/callback.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -8763,8 +9011,12 @@
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -8786,7 +9038,6 @@
 ./Rmon/alarm.lo: ../../include/net-snmp/library/check_varbind.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/container.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/factory.h
-./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_logging.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/container_binary_array.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/container_iterator.h
@@ -8799,8 +9050,6 @@
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_enum.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/vacm.h
-./Rmon/alarm.lo: ../../include/net-snmp/output_api.h
-./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_debug.h
 ./Rmon/alarm.lo: ../../include/net-snmp/snmpv3_api.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmpv3.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/transform_oids.h
@@ -8809,6 +9058,7 @@
 ./Rmon/alarm.lo: ../../include/net-snmp/library/lcd_time.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./Rmon/alarm.lo: ../../include/net-snmp/library/snmptsm.h
 ./Rmon/alarm.lo: ../../include/net-snmp/library/snmpusm.h
 ./Rmon/alarm.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./Rmon/alarm.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -8845,22 +9095,23 @@
 ./Rmon/alarm.lo: ../../include/net-snmp/agent/table_iterator.h
 ./Rmon/alarm.lo: ../../include/net-snmp/agent/table_container.h
 ./Rmon/alarm.lo: ../../include/net-snmp/agent/table_array.h
-./Rmon/alarm.lo: ../../include/net-snmp/agent/mfd.h ./Rmon/alarm.h
-./Rmon/alarm.lo: ./Rmon/agutil_api.h ./Rmon/row_api.h
+./Rmon/alarm.lo: ../../include/net-snmp/agent/mfd.h
+./Rmon/alarm.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./Rmon/alarm.lo: ./Rmon/alarm.h ./Rmon/agutil_api.h ./Rmon/row_api.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/net-snmp-config.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/system/linux.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/system/sysv.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/system/generic.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/machine/generic.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/definitions.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/types.h 
+./Rmon/alarmTable.lo: ../../include/net-snmp/library/oid.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/types.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/varbind_api.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/pdu_api.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/asn1.h
+./Rmon/alarmTable.lo: ../../include/net-snmp/output_api.h
+./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/session_api.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/callback.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -8868,8 +9119,12 @@
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -8891,7 +9146,6 @@
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/container.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/factory.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -8904,8 +9158,6 @@
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/vacm.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/output_api.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -8914,6 +9166,7 @@
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -8950,22 +9203,23 @@
 ./Rmon/alarmTable.lo: ../../include/net-snmp/agent/table_iterator.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/agent/table_container.h
 ./Rmon/alarmTable.lo: ../../include/net-snmp/agent/table_array.h
-./Rmon/alarmTable.lo: ../../include/net-snmp/agent/mfd.h utilities/iquery.h
-./Rmon/alarmTable.lo: ./Rmon/alarmTable.h
-./Rmon/event.lo: ../../include/net-snmp/net-snmp-config.h
-./Rmon/event.lo: ../../include/net-snmp/system/linux.h
-./Rmon/event.lo: ../../include/net-snmp/system/sysv.h
-./Rmon/event.lo: ../../include/net-snmp/system/generic.h
-./Rmon/event.lo: ../../include/net-snmp/machine/generic.h
+./Rmon/alarmTable.lo: ../../include/net-snmp/agent/mfd.h
+./Rmon/alarmTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./Rmon/alarmTable.lo: utilities/iquery.h ./Rmon/alarmTable.h
+./Rmon/event.lo: ../../include/net-snmp/net-snmp-config.h 
 ./Rmon/event.lo: ../../include/net-snmp/net-snmp-includes.h
-./Rmon/event.lo: ../../include/net-snmp/definitions.h
+./Rmon/event.lo:  ../../include/net-snmp/definitions.h
 ./Rmon/event.lo: ../../include/net-snmp/types.h 
+./Rmon/event.lo: ../../include/net-snmp/library/oid.h
 ./Rmon/event.lo: ../../include/net-snmp/library/types.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmp_api.h
 ./Rmon/event.lo: ../../include/net-snmp/varbind_api.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmp_client.h
 ./Rmon/event.lo: ../../include/net-snmp/pdu_api.h
 ./Rmon/event.lo: ../../include/net-snmp/library/asn1.h
+./Rmon/event.lo: ../../include/net-snmp/output_api.h
+./Rmon/event.lo: ../../include/net-snmp/library/snmp_debug.h
+./Rmon/event.lo: ../../include/net-snmp/library/snmp_logging.h
 ./Rmon/event.lo: ../../include/net-snmp/session_api.h
 ./Rmon/event.lo: ../../include/net-snmp/library/callback.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -8973,8 +9227,12 @@
 ./Rmon/event.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./Rmon/event.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./Rmon/event.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./Rmon/event.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./Rmon/event.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./Rmon/event.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -8996,7 +9254,6 @@
 ./Rmon/event.lo: ../../include/net-snmp/library/check_varbind.h
 ./Rmon/event.lo: ../../include/net-snmp/library/container.h
 ./Rmon/event.lo: ../../include/net-snmp/library/factory.h
-./Rmon/event.lo: ../../include/net-snmp/library/snmp_logging.h
 ./Rmon/event.lo: ../../include/net-snmp/library/container_binary_array.h
 ./Rmon/event.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./Rmon/event.lo: ../../include/net-snmp/library/container_iterator.h
@@ -9009,8 +9266,6 @@
 ./Rmon/event.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmp_enum.h
 ./Rmon/event.lo: ../../include/net-snmp/library/vacm.h
-./Rmon/event.lo: ../../include/net-snmp/output_api.h
-./Rmon/event.lo: ../../include/net-snmp/library/snmp_debug.h
 ./Rmon/event.lo: ../../include/net-snmp/snmpv3_api.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmpv3.h
 ./Rmon/event.lo: ../../include/net-snmp/library/transform_oids.h
@@ -9019,6 +9274,7 @@
 ./Rmon/event.lo: ../../include/net-snmp/library/lcd_time.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./Rmon/event.lo: ../../include/net-snmp/library/snmptsm.h
 ./Rmon/event.lo: ../../include/net-snmp/library/snmpusm.h
 ./Rmon/event.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./Rmon/event.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -9055,22 +9311,23 @@
 ./Rmon/event.lo: ../../include/net-snmp/agent/table_iterator.h
 ./Rmon/event.lo: ../../include/net-snmp/agent/table_container.h
 ./Rmon/event.lo: ../../include/net-snmp/agent/table_array.h
-./Rmon/event.lo: ../../include/net-snmp/agent/mfd.h ./Rmon/event.h
-./Rmon/event.lo: ./Rmon/agutil_api.h ./Rmon/row_api.h
+./Rmon/event.lo: ../../include/net-snmp/agent/mfd.h
+./Rmon/event.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./Rmon/event.lo: ./Rmon/event.h ./Rmon/agutil_api.h ./Rmon/row_api.h
 ./Rmon/history.lo: ../../include/net-snmp/net-snmp-config.h
-./Rmon/history.lo: ../../include/net-snmp/system/linux.h
-./Rmon/history.lo: ../../include/net-snmp/system/sysv.h
-./Rmon/history.lo: ../../include/net-snmp/system/generic.h
-./Rmon/history.lo: ../../include/net-snmp/machine/generic.h
 ./Rmon/history.lo: ../../include/net-snmp/net-snmp-includes.h
 ./Rmon/history.lo: ../../include/net-snmp/definitions.h
 ./Rmon/history.lo: ../../include/net-snmp/types.h 
+./Rmon/history.lo: ../../include/net-snmp/library/oid.h
 ./Rmon/history.lo: ../../include/net-snmp/library/types.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmp_api.h
 ./Rmon/history.lo: ../../include/net-snmp/varbind_api.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmp_client.h
 ./Rmon/history.lo: ../../include/net-snmp/pdu_api.h
 ./Rmon/history.lo: ../../include/net-snmp/library/asn1.h
+./Rmon/history.lo: ../../include/net-snmp/output_api.h
+./Rmon/history.lo: ../../include/net-snmp/library/snmp_debug.h
+./Rmon/history.lo: ../../include/net-snmp/library/snmp_logging.h
 ./Rmon/history.lo: ../../include/net-snmp/session_api.h
 ./Rmon/history.lo: ../../include/net-snmp/library/callback.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -9078,8 +9335,12 @@
 ./Rmon/history.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./Rmon/history.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./Rmon/history.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./Rmon/history.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./Rmon/history.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./Rmon/history.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -9101,7 +9362,6 @@
 ./Rmon/history.lo: ../../include/net-snmp/library/check_varbind.h
 ./Rmon/history.lo: ../../include/net-snmp/library/container.h
 ./Rmon/history.lo: ../../include/net-snmp/library/factory.h
-./Rmon/history.lo: ../../include/net-snmp/library/snmp_logging.h
 ./Rmon/history.lo: ../../include/net-snmp/library/container_binary_array.h
 ./Rmon/history.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./Rmon/history.lo: ../../include/net-snmp/library/container_iterator.h
@@ -9114,8 +9374,6 @@
 ./Rmon/history.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmp_enum.h
 ./Rmon/history.lo: ../../include/net-snmp/library/vacm.h
-./Rmon/history.lo: ../../include/net-snmp/output_api.h
-./Rmon/history.lo: ../../include/net-snmp/library/snmp_debug.h
 ./Rmon/history.lo: ../../include/net-snmp/snmpv3_api.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmpv3.h
 ./Rmon/history.lo: ../../include/net-snmp/library/transform_oids.h
@@ -9124,6 +9382,7 @@
 ./Rmon/history.lo: ../../include/net-snmp/library/lcd_time.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./Rmon/history.lo: ../../include/net-snmp/library/snmptsm.h
 ./Rmon/history.lo: ../../include/net-snmp/library/snmpusm.h
 ./Rmon/history.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./Rmon/history.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -9160,22 +9419,23 @@
 ./Rmon/history.lo: ../../include/net-snmp/agent/table_iterator.h
 ./Rmon/history.lo: ../../include/net-snmp/agent/table_container.h
 ./Rmon/history.lo: ../../include/net-snmp/agent/table_array.h
-./Rmon/history.lo: ../../include/net-snmp/agent/mfd.h ./Rmon/history.h
-./Rmon/history.lo: ./Rmon/agutil_api.h ./Rmon/row_api.h
+./Rmon/history.lo: ../../include/net-snmp/agent/mfd.h
+./Rmon/history.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./Rmon/history.lo: ./Rmon/history.h ./Rmon/agutil_api.h ./Rmon/row_api.h
 ./Rmon/rows.lo: ../../include/net-snmp/net-snmp-config.h
-./Rmon/rows.lo: ../../include/net-snmp/system/linux.h
-./Rmon/rows.lo: ../../include/net-snmp/system/sysv.h
-./Rmon/rows.lo: ../../include/net-snmp/system/generic.h
-./Rmon/rows.lo: ../../include/net-snmp/machine/generic.h
 ./Rmon/rows.lo: ../../include/net-snmp/net-snmp-includes.h
 ./Rmon/rows.lo:  ../../include/net-snmp/definitions.h
 ./Rmon/rows.lo: ../../include/net-snmp/types.h 
+./Rmon/rows.lo: ../../include/net-snmp/library/oid.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/types.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmp_api.h
 ./Rmon/rows.lo: ../../include/net-snmp/varbind_api.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmp_client.h
 ./Rmon/rows.lo: ../../include/net-snmp/pdu_api.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/asn1.h
+./Rmon/rows.lo: ../../include/net-snmp/output_api.h
+./Rmon/rows.lo: ../../include/net-snmp/library/snmp_debug.h
+./Rmon/rows.lo: ../../include/net-snmp/library/snmp_logging.h
 ./Rmon/rows.lo: ../../include/net-snmp/session_api.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/callback.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -9183,8 +9443,12 @@
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./Rmon/rows.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./Rmon/rows.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./Rmon/rows.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./Rmon/rows.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -9206,7 +9470,6 @@
 ./Rmon/rows.lo: ../../include/net-snmp/library/check_varbind.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/container.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/factory.h
-./Rmon/rows.lo: ../../include/net-snmp/library/snmp_logging.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/container_binary_array.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/container_iterator.h
@@ -9219,8 +9482,6 @@
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmp_enum.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/vacm.h
-./Rmon/rows.lo: ../../include/net-snmp/output_api.h
-./Rmon/rows.lo: ../../include/net-snmp/library/snmp_debug.h
 ./Rmon/rows.lo: ../../include/net-snmp/snmpv3_api.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmpv3.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/transform_oids.h
@@ -9229,6 +9490,7 @@
 ./Rmon/rows.lo: ../../include/net-snmp/library/lcd_time.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./Rmon/rows.lo: ../../include/net-snmp/library/snmptsm.h
 ./Rmon/rows.lo: ../../include/net-snmp/library/snmpusm.h
 ./Rmon/rows.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./Rmon/rows.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -9265,22 +9527,23 @@
 ./Rmon/rows.lo: ../../include/net-snmp/agent/table_iterator.h
 ./Rmon/rows.lo: ../../include/net-snmp/agent/table_container.h
 ./Rmon/rows.lo: ../../include/net-snmp/agent/table_array.h
-./Rmon/rows.lo: ../../include/net-snmp/agent/mfd.h ./Rmon/agutil_api.h
-./Rmon/rows.lo: ./Rmon/rows.h ./Rmon/row_api.h
+./Rmon/rows.lo: ../../include/net-snmp/agent/mfd.h
+./Rmon/rows.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./Rmon/rows.lo: ./Rmon/agutil_api.h ./Rmon/rows.h ./Rmon/row_api.h
 ./Rmon/statistics.lo: ../../include/net-snmp/net-snmp-config.h
-./Rmon/statistics.lo: ../../include/net-snmp/system/linux.h
-./Rmon/statistics.lo: ../../include/net-snmp/system/sysv.h
-./Rmon/statistics.lo: ../../include/net-snmp/system/generic.h
-./Rmon/statistics.lo: ../../include/net-snmp/machine/generic.h
 ./Rmon/statistics.lo: ../../include/net-snmp/net-snmp-includes.h
 ./Rmon/statistics.lo: ../../include/net-snmp/definitions.h
 ./Rmon/statistics.lo: ../../include/net-snmp/types.h 
+./Rmon/statistics.lo: ../../include/net-snmp/library/oid.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/types.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_api.h
 ./Rmon/statistics.lo: ../../include/net-snmp/varbind_api.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_client.h
 ./Rmon/statistics.lo: ../../include/net-snmp/pdu_api.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/asn1.h
+./Rmon/statistics.lo: ../../include/net-snmp/output_api.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_debug.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_logging.h
 ./Rmon/statistics.lo: ../../include/net-snmp/session_api.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/callback.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -9288,8 +9551,12 @@
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -9311,7 +9578,6 @@
 ./Rmon/statistics.lo: ../../include/net-snmp/library/check_varbind.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/container.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/factory.h
-./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_logging.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/container_binary_array.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/container_iterator.h
@@ -9324,8 +9590,6 @@
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_enum.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/vacm.h
-./Rmon/statistics.lo: ../../include/net-snmp/output_api.h
-./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_debug.h
 ./Rmon/statistics.lo: ../../include/net-snmp/snmpv3_api.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmpv3.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/transform_oids.h
@@ -9334,6 +9598,7 @@
 ./Rmon/statistics.lo: ../../include/net-snmp/library/lcd_time.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./Rmon/statistics.lo: ../../include/net-snmp/library/snmptsm.h
 ./Rmon/statistics.lo: ../../include/net-snmp/library/snmpusm.h
 ./Rmon/statistics.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./Rmon/statistics.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -9370,22 +9635,24 @@
 ./Rmon/statistics.lo: ../../include/net-snmp/agent/table_iterator.h
 ./Rmon/statistics.lo: ../../include/net-snmp/agent/table_container.h
 ./Rmon/statistics.lo: ../../include/net-snmp/agent/table_array.h
-./Rmon/statistics.lo: ../../include/net-snmp/agent/mfd.h ./Rmon/statistics.h
-./Rmon/statistics.lo: ./Rmon/agutil_api.h ./Rmon/row_api.h
+./Rmon/statistics.lo: ../../include/net-snmp/agent/mfd.h
+./Rmon/statistics.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./Rmon/statistics.lo: ./Rmon/statistics.h ./Rmon/agutil_api.h
+./Rmon/statistics.lo: ./Rmon/row_api.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -9393,8 +9660,12 @@
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -9416,7 +9687,6 @@
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -9429,8 +9699,6 @@
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -9439,6 +9707,7 @@
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -9476,22 +9745,23 @@
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpAssocLocalAddrTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ./sctp-mib/sctpAssocLocalAddrTable.h
 ./sctp-mib/sctpAssocLocalAddrTable.lo: ./sctp-mib/sctpTables_common.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -9499,8 +9769,12 @@
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -9522,7 +9796,6 @@
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -9535,8 +9808,6 @@
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -9545,6 +9816,7 @@
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -9582,22 +9854,23 @@
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpAssocRemAddrTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ./sctp-mib/sctpAssocRemAddrTable.h
 ./sctp-mib/sctpAssocRemAddrTable.lo: ./sctp-mib/sctpTables_common.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -9605,8 +9878,12 @@
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -9628,7 +9905,6 @@
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -9641,8 +9917,6 @@
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -9651,6 +9925,7 @@
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -9688,22 +9963,23 @@
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpAssocTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpAssocTable.lo: ./sctp-mib/sctpAssocTable.h
 ./sctp-mib/sctpAssocTable.lo: ./sctp-mib/sctpTables_common.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -9711,8 +9987,12 @@
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -9734,7 +10014,6 @@
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -9747,8 +10026,6 @@
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -9757,6 +10034,7 @@
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -9794,22 +10072,23 @@
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpLookupLocalPortTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ./sctp-mib/sctpLookupLocalPortTable.h
 ./sctp-mib/sctpLookupLocalPortTable.lo: ./sctp-mib/sctpTables_common.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -9817,8 +10096,12 @@
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -9840,7 +10123,6 @@
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -9853,8 +10135,6 @@
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -9863,6 +10143,7 @@
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -9900,22 +10181,23 @@
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpLookupRemHostNameTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ./sctp-mib/sctpLookupRemHostNameTable.h
 ./sctp-mib/sctpLookupRemHostNameTable.lo: ./sctp-mib/sctpTables_common.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -9923,8 +10205,12 @@
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -9946,7 +10232,6 @@
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -9959,8 +10244,6 @@
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -9969,6 +10252,7 @@
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -10006,22 +10290,23 @@
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpLookupRemIPAddrTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ./sctp-mib/sctpLookupRemIPAddrTable.h
 ./sctp-mib/sctpLookupRemIPAddrTable.lo: ./sctp-mib/sctpTables_common.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -10029,8 +10314,12 @@
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -10052,7 +10341,6 @@
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -10065,8 +10353,6 @@
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -10075,6 +10361,7 @@
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -10112,22 +10399,23 @@
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpLookupRemPortTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ./sctp-mib/sctpLookupRemPortTable.h
 ./sctp-mib/sctpLookupRemPortTable.lo: ./sctp-mib/sctpTables_common.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -10135,8 +10423,12 @@
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -10158,7 +10450,6 @@
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/container_iterator.h
@@ -10171,8 +10462,6 @@
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/transform_oids.h
@@ -10181,6 +10470,7 @@
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -10218,22 +10508,23 @@
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ./sctp-mib/sctpLookupRemPrimIPAddrTable.h
 ./sctp-mib/sctpLookupRemPrimIPAddrTable.lo: ./sctp-mib/sctpTables_common.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -10241,8 +10532,12 @@
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -10264,7 +10559,6 @@
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/container_iterator.h
@@ -10277,8 +10571,6 @@
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/transform_oids.h
@@ -10287,6 +10579,7 @@
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -10324,22 +10617,23 @@
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpScalars.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpScalars.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpScalars.lo: ./sctp-mib/sctpScalars.h
 ./sctp-mib/sctpScalars.lo: ./sctp-mib/sctpScalars_common.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -10347,8 +10641,12 @@
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -10370,7 +10668,6 @@
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/container_iterator.h
@@ -10383,8 +10680,6 @@
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/transform_oids.h
@@ -10393,6 +10688,7 @@
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -10430,21 +10726,22 @@
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpScalars_common.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpScalars_common.lo: ./sctp-mib/sctpScalars_common.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -10452,8 +10749,12 @@
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -10475,7 +10776,6 @@
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/container_iterator.h
@@ -10488,8 +10788,6 @@
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/transform_oids.h
@@ -10498,6 +10796,7 @@
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -10535,21 +10834,22 @@
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpScalars_freebsd.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpScalars_freebsd.lo: ./sctp-mib/sctpScalars_common.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -10557,8 +10857,12 @@
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -10580,7 +10884,6 @@
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/container_iterator.h
@@ -10593,8 +10896,6 @@
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/transform_oids.h
@@ -10603,6 +10904,7 @@
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -10640,21 +10942,22 @@
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpScalars_linux.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpScalars_linux.lo: ./sctp-mib/sctpScalars_common.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -10662,8 +10965,12 @@
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -10685,7 +10992,6 @@
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/container_iterator.h
@@ -10698,8 +11004,6 @@
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/transform_oids.h
@@ -10708,6 +11012,7 @@
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -10745,22 +11050,23 @@
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpScalars_solaris2.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpScalars_solaris2.lo: ./sctp-mib/sctpScalars_common.h
 ./sctp-mib/sctpScalars_solaris2.lo: kernel_sunos5.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -10768,8 +11074,12 @@
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -10791,7 +11101,6 @@
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/container_iterator.h
@@ -10804,8 +11113,6 @@
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/transform_oids.h
@@ -10814,6 +11121,7 @@
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -10851,6 +11159,7 @@
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpTables_common.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpTables_common.lo: ./sctp-mib/sctpTables_common.h
 ./sctp-mib/sctpTables_common.lo: ./sctp-mib/sctpAssocTable.h
 ./sctp-mib/sctpTables_common.lo: ./sctp-mib/sctpAssocRemAddrTable.h
@@ -10861,19 +11170,19 @@
 ./sctp-mib/sctpTables_common.lo: ./sctp-mib/sctpLookupRemPrimIPAddrTable.h
 ./sctp-mib/sctpTables_common.lo: ./sctp-mib/sctpLookupRemIPAddrTable.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -10881,8 +11190,12 @@
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -10904,7 +11217,6 @@
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/container_iterator.h
@@ -10917,8 +11229,6 @@
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/transform_oids.h
@@ -10927,6 +11237,7 @@
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -10964,27 +11275,30 @@
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpTables_freebsd.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpTables_freebsd.lo: ./sctp-mib/sctpAssocTable.h
 ./sctp-mib/sctpTables_freebsd.lo: ./sctp-mib/sctpTables_common.h
 ./sctp-mib/sctpTables_freebsd.lo: ./sctp-mib/sctpAssocLocalAddrTable.h
 ./sctp-mib/sctpTables_freebsd.lo: ./sctp-mib/sctpAssocRemAddrTable.h
-./sctp-mib/sctpTables_freebsd.lo: util_funcs.h util_funcs/header_generic.h
-./sctp-mib/sctpTables_freebsd.lo: util_funcs/header_simple_table.h struct.h
+./sctp-mib/sctpTables_freebsd.lo: util_funcs.h util_funcs/Exit.h
+./sctp-mib/sctpTables_freebsd.lo: util_funcs/header_generic.h
+./sctp-mib/sctpTables_freebsd.lo: util_funcs/header_simple_table.h
+./sctp-mib/sctpTables_freebsd.lo: util_funcs/restart.h struct.h
 ./sctp-mib/sctpTables_freebsd.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -10992,8 +11306,12 @@
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -11015,7 +11333,6 @@
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/container_iterator.h
@@ -11028,8 +11345,6 @@
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/transform_oids.h
@@ -11038,6 +11353,7 @@
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -11075,25 +11391,26 @@
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpTables_linux.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpTables_linux.lo: ./sctp-mib/sctpAssocTable.h
 ./sctp-mib/sctpTables_linux.lo: ./sctp-mib/sctpTables_common.h
 ./sctp-mib/sctpTables_linux.lo: ./sctp-mib/sctpAssocLocalAddrTable.h
 ./sctp-mib/sctpTables_linux.lo: ./sctp-mib/sctpAssocRemAddrTable.h
 ./sctp-mib/sctpTables_linux.lo: ../../agent/mibgroup/util_funcs/get_pid_from_inode.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/net-snmp-config.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/system/linux.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/system/sysv.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/system/generic.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/machine/generic.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/net-snmp-includes.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/definitions.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/types.h
+./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/oid.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/types.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp_api.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/varbind_api.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp_client.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/pdu_api.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/asn1.h
+./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/output_api.h
+./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp_debug.h
+./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/session_api.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/callback.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -11101,8 +11418,12 @@
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -11124,7 +11445,6 @@
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/check_varbind.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/container.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/factory.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp_logging.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/container_binary_array.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/container_iterator.h
@@ -11137,8 +11457,6 @@
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp_enum.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/vacm.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/output_api.h
-./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp_debug.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/snmpv3_api.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmpv3.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/transform_oids.h
@@ -11147,6 +11465,7 @@
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/lcd_time.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmptsm.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/library/snmpusm.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -11184,28 +11503,31 @@
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/table_container.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/table_array.h
 ./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/mfd.h
+./sctp-mib/sctpTables_solaris2.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./sctp-mib/sctpTables_solaris2.lo: ./sctp-mib/sctpAssocTable.h
 ./sctp-mib/sctpTables_solaris2.lo: ./sctp-mib/sctpTables_common.h
 ./sctp-mib/sctpTables_solaris2.lo: ./sctp-mib/sctpAssocLocalAddrTable.h
 ./sctp-mib/sctpTables_solaris2.lo: ./sctp-mib/sctpAssocRemAddrTable.h
-./sctp-mib/sctpTables_solaris2.lo: util_funcs.h util_funcs/header_generic.h
-./sctp-mib/sctpTables_solaris2.lo: util_funcs/header_simple_table.h struct.h
+./sctp-mib/sctpTables_solaris2.lo: util_funcs.h util_funcs/Exit.h
+./sctp-mib/sctpTables_solaris2.lo: util_funcs/header_generic.h
+./sctp-mib/sctpTables_solaris2.lo: util_funcs/header_simple_table.h
+./sctp-mib/sctpTables_solaris2.lo: util_funcs/restart.h struct.h
 ./sctp-mib/sctpTables_solaris2.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h
 ./sctp-mib/sctpTables_solaris2.lo: kernel_sunos5.h
 ./smux/smux.lo: ../../include/net-snmp/net-snmp-config.h
-./smux/smux.lo: ../../include/net-snmp/system/linux.h
-./smux/smux.lo: ../../include/net-snmp/system/sysv.h
-./smux/smux.lo: ../../include/net-snmp/system/generic.h
-./smux/smux.lo: ../../include/net-snmp/machine/generic.h
 ./smux/smux.lo: ../../include/net-snmp/net-snmp-includes.h
-./smux/smux.lo: ../../include/net-snmp/definitions.h
+./smux/smux.lo:  ../../include/net-snmp/definitions.h
 ./smux/smux.lo: ../../include/net-snmp/types.h 
+./smux/smux.lo: ../../include/net-snmp/library/oid.h
 ./smux/smux.lo: ../../include/net-snmp/library/types.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmp_api.h
 ./smux/smux.lo: ../../include/net-snmp/varbind_api.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmp_client.h
 ./smux/smux.lo: ../../include/net-snmp/pdu_api.h
 ./smux/smux.lo: ../../include/net-snmp/library/asn1.h
+./smux/smux.lo: ../../include/net-snmp/output_api.h
+./smux/smux.lo: ../../include/net-snmp/library/snmp_debug.h
+./smux/smux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./smux/smux.lo: ../../include/net-snmp/session_api.h
 ./smux/smux.lo: ../../include/net-snmp/library/callback.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -11213,8 +11535,12 @@
 ./smux/smux.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./smux/smux.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./smux/smux.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./smux/smux.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./smux/smux.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./smux/smux.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -11236,7 +11562,6 @@
 ./smux/smux.lo: ../../include/net-snmp/library/check_varbind.h
 ./smux/smux.lo: ../../include/net-snmp/library/container.h
 ./smux/smux.lo: ../../include/net-snmp/library/factory.h
-./smux/smux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./smux/smux.lo: ../../include/net-snmp/library/container_binary_array.h
 ./smux/smux.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./smux/smux.lo: ../../include/net-snmp/library/container_iterator.h
@@ -11249,8 +11574,6 @@
 ./smux/smux.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmp_enum.h
 ./smux/smux.lo: ../../include/net-snmp/library/vacm.h
-./smux/smux.lo: ../../include/net-snmp/output_api.h
-./smux/smux.lo: ../../include/net-snmp/library/snmp_debug.h
 ./smux/smux.lo: ../../include/net-snmp/snmpv3_api.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmpv3.h
 ./smux/smux.lo: ../../include/net-snmp/library/transform_oids.h
@@ -11259,6 +11582,7 @@
 ./smux/smux.lo: ../../include/net-snmp/library/lcd_time.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./smux/smux.lo: ../../include/net-snmp/library/snmptsm.h
 ./smux/smux.lo: ../../include/net-snmp/library/snmpusm.h
 ./smux/smux.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./smux/smux.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -11295,22 +11619,23 @@
 ./smux/smux.lo: ../../include/net-snmp/agent/table_iterator.h
 ./smux/smux.lo: ../../include/net-snmp/agent/table_container.h
 ./smux/smux.lo: ../../include/net-snmp/agent/table_array.h
-./smux/smux.lo: ../../include/net-snmp/agent/mfd.h smux.h mibdefs.h
-./smux/smux.lo: ../../agent/snmpd.h
+./smux/smux.lo: ../../include/net-snmp/agent/mfd.h
+./smux/smux.lo: ../../include/net-snmp/agent/snmp_get_statistic.h smux.h
+./smux/smux.lo: mibdefs.h ../../agent/snmpd.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/net-snmp-config.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/system/linux.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/system/sysv.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/system/generic.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/machine/generic.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/net-snmp-includes.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/definitions.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/types.h 
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/oid.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/types.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_api.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/varbind_api.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_client.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/pdu_api.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/asn1.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/output_api.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_debug.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_logging.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/session_api.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/callback.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -11318,8 +11643,12 @@
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -11341,7 +11670,6 @@
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/check_varbind.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/container.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/factory.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_logging.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/container_binary_array.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/container_iterator.h
@@ -11354,8 +11682,6 @@
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_enum.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/vacm.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/output_api.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_debug.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/snmpv3_api.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpv3.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/transform_oids.h
@@ -11364,6 +11690,7 @@
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/lcd_time.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmptsm.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/library/snmpusm.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -11400,22 +11727,23 @@
 ./smux/snmp_bgp.lo: ../../include/net-snmp/agent/table_iterator.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/agent/table_container.h
 ./smux/snmp_bgp.lo: ../../include/net-snmp/agent/table_array.h
-./smux/snmp_bgp.lo: ../../include/net-snmp/agent/mfd.h smux.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/agent/mfd.h
+./smux/snmp_bgp.lo: ../../include/net-snmp/agent/snmp_get_statistic.h smux.h
 ./smux/snmp_bgp.lo: ./smux/snmp_bgp.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/net-snmp-config.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/system/linux.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/system/sysv.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/system/generic.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/machine/generic.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/net-snmp-includes.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/definitions.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/types.h 
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/oid.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/types.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_api.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/varbind_api.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_client.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/pdu_api.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/asn1.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/output_api.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_debug.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_logging.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/session_api.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/callback.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -11423,8 +11751,12 @@
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -11446,7 +11778,6 @@
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/check_varbind.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/container.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/factory.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_logging.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/container_binary_array.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/container_iterator.h
@@ -11459,8 +11790,6 @@
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_enum.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/vacm.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/output_api.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_debug.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/snmpv3_api.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpv3.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/transform_oids.h
@@ -11469,6 +11798,7 @@
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/lcd_time.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmptsm.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/library/snmpusm.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -11505,22 +11835,23 @@
 ./smux/snmp_ospf.lo: ../../include/net-snmp/agent/table_iterator.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/agent/table_container.h
 ./smux/snmp_ospf.lo: ../../include/net-snmp/agent/table_array.h
-./smux/snmp_ospf.lo: ../../include/net-snmp/agent/mfd.h smux.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/agent/mfd.h
+./smux/snmp_ospf.lo: ../../include/net-snmp/agent/snmp_get_statistic.h smux.h
 ./smux/snmp_ospf.lo: ./smux/snmp_ospf.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/net-snmp-config.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/system/linux.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/system/sysv.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/system/generic.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/machine/generic.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/net-snmp-includes.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/definitions.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/types.h 
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/oid.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/types.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_api.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/varbind_api.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_client.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/pdu_api.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/asn1.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/output_api.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_debug.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_logging.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/session_api.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/callback.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -11528,8 +11859,12 @@
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -11551,7 +11886,6 @@
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/check_varbind.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/container.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/factory.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_logging.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/container_binary_array.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/container_iterator.h
@@ -11564,8 +11898,6 @@
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_enum.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/vacm.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/output_api.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_debug.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/snmpv3_api.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpv3.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/transform_oids.h
@@ -11574,6 +11906,7 @@
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/lcd_time.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmptsm.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/library/snmpusm.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -11610,22 +11943,23 @@
 ./smux/snmp_rip2.lo: ../../include/net-snmp/agent/table_iterator.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/agent/table_container.h
 ./smux/snmp_rip2.lo: ../../include/net-snmp/agent/table_array.h
-./smux/snmp_rip2.lo: ../../include/net-snmp/agent/mfd.h smux.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/agent/mfd.h
+./smux/snmp_rip2.lo: ../../include/net-snmp/agent/snmp_get_statistic.h smux.h
 ./smux/snmp_rip2.lo: ./smux/snmp_rip2.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/net-snmp-config.h
-./snmpv3/snmpEngine.lo: ../../include/net-snmp/system/linux.h
-./snmpv3/snmpEngine.lo: ../../include/net-snmp/system/sysv.h
-./snmpv3/snmpEngine.lo: ../../include/net-snmp/system/generic.h
-./snmpv3/snmpEngine.lo: ../../include/net-snmp/machine/generic.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/net-snmp-includes.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/definitions.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/types.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/oid.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/types.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_api.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/varbind_api.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_client.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/pdu_api.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/asn1.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/output_api.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_debug.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_logging.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/session_api.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/callback.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -11633,8 +11967,12 @@
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -11656,7 +11994,6 @@
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/check_varbind.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/container.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/factory.h
-./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_logging.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/container_binary_array.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/container_iterator.h
@@ -11669,8 +12006,6 @@
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_enum.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/vacm.h
-./snmpv3/snmpEngine.lo: ../../include/net-snmp/output_api.h
-./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_debug.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/snmpv3_api.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpv3.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/transform_oids.h
@@ -11679,6 +12014,7 @@
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/lcd_time.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmptsm.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/library/snmpusm.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -11716,23 +12052,24 @@
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/agent/table_container.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/agent/table_array.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/agent/mfd.h
+./snmpv3/snmpEngine.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/agent/sysORTable.h
 ./snmpv3/snmpEngine.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./snmpv3/snmpEngine.lo: util_funcs/header_generic.h ./snmpv3/snmpEngine.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/net-snmp-config.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/system/linux.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/system/sysv.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/system/generic.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/machine/generic.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/net-snmp-includes.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/definitions.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/types.h
+./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/oid.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/types.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp_api.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/varbind_api.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp_client.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/pdu_api.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/asn1.h
+./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/output_api.h
+./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp_debug.h
+./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp_logging.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/session_api.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/callback.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -11740,8 +12077,12 @@
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -11763,7 +12104,6 @@
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/check_varbind.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/container.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/factory.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp_logging.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/container_binary_array.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/container_iterator.h
@@ -11776,8 +12116,6 @@
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp_enum.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/vacm.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/output_api.h
-./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp_debug.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/snmpv3_api.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmpv3.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/transform_oids.h
@@ -11786,6 +12124,7 @@
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/lcd_time.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmptsm.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/library/snmpusm.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -11823,24 +12162,24 @@
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/table_container.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/table_array.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/mfd.h
+./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/sysORTable.h
 ./snmpv3/snmpMPDStats_5_5.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./snmpv3/snmpMPDStats_5_5.lo: ./snmpv3/snmpMPDStats_5_5.h
-./snmpv3/snmpMPDStats_5_5.lo: ./utilities/snmp_get_statistic.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/net-snmp-config.h
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/system/linux.h
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/system/sysv.h
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/system/generic.h
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/machine/generic.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/net-snmp-includes.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/definitions.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/types.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/oid.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/types.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_api.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/varbind_api.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_client.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/pdu_api.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/asn1.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/output_api.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_debug.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_logging.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/session_api.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/callback.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -11848,8 +12187,12 @@
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -11871,7 +12214,6 @@
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/check_varbind.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/container.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/factory.h
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_logging.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/container_binary_array.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/container_iterator.h
@@ -11884,8 +12226,6 @@
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_enum.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/vacm.h
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/output_api.h
-./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_debug.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/snmpv3_api.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpv3.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/transform_oids.h
@@ -11894,6 +12234,7 @@
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/lcd_time.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmptsm.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/library/snmpusm.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -11931,23 +12272,24 @@
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/agent/table_container.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/agent/table_array.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/agent/mfd.h
+./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/agent/sysORTable.h
 ./snmpv3/snmpMPDStats.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./snmpv3/snmpMPDStats.lo: ./snmpv3/snmpMPDStats.h util_funcs/header_generic.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/net-snmp-config.h
-./snmpv3/usmConf.lo: ../../include/net-snmp/system/linux.h
-./snmpv3/usmConf.lo: ../../include/net-snmp/system/sysv.h
-./snmpv3/usmConf.lo: ../../include/net-snmp/system/generic.h
-./snmpv3/usmConf.lo: ../../include/net-snmp/machine/generic.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/net-snmp-includes.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/definitions.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/types.h 
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/oid.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/types.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_api.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/varbind_api.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_client.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/pdu_api.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/asn1.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/output_api.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_debug.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_logging.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/session_api.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/callback.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -11955,8 +12297,12 @@
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -11978,7 +12324,6 @@
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/check_varbind.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/container.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/factory.h
-./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_logging.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/container_binary_array.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/container_iterator.h
@@ -11991,8 +12336,6 @@
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_enum.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/vacm.h
-./snmpv3/usmConf.lo: ../../include/net-snmp/output_api.h
-./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_debug.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/snmpv3_api.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpv3.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/transform_oids.h
@@ -12001,6 +12344,7 @@
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/lcd_time.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmptsm.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/library/snmpusm.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -12038,20 +12382,21 @@
 ./snmpv3/usmConf.lo: ../../include/net-snmp/agent/table_container.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/agent/table_array.h
 ./snmpv3/usmConf.lo: ../../include/net-snmp/agent/mfd.h
+./snmpv3/usmConf.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/net-snmp-config.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/system/linux.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/system/sysv.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/system/generic.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/machine/generic.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/net-snmp-includes.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/definitions.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/types.h
+./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/oid.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/types.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp_api.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/varbind_api.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp_client.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/pdu_api.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/asn1.h
+./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/output_api.h
+./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp_debug.h
+./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp_logging.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/session_api.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/callback.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -12059,8 +12404,12 @@
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -12082,7 +12431,6 @@
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/check_varbind.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/container.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/factory.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp_logging.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/container_binary_array.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/container_iterator.h
@@ -12095,8 +12443,6 @@
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp_enum.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/vacm.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/output_api.h
-./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp_debug.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/snmpv3_api.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmpv3.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/transform_oids.h
@@ -12105,6 +12451,7 @@
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/lcd_time.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmptsm.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/library/snmpusm.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -12142,24 +12489,24 @@
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/table_container.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/table_array.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/mfd.h
+./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/sysORTable.h
 ./snmpv3/usmStats_5_5.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./snmpv3/usmStats_5_5.lo: ./snmpv3/usmStats_5_5.h
-./snmpv3/usmStats_5_5.lo: ./utilities/snmp_get_statistic.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/net-snmp-config.h
-./snmpv3/usmStats.lo: ../../include/net-snmp/system/linux.h
-./snmpv3/usmStats.lo: ../../include/net-snmp/system/sysv.h
-./snmpv3/usmStats.lo: ../../include/net-snmp/system/generic.h
-./snmpv3/usmStats.lo: ../../include/net-snmp/machine/generic.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/net-snmp-includes.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/definitions.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/types.h 
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/oid.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/types.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_api.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/varbind_api.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_client.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/pdu_api.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/asn1.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/output_api.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_debug.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_logging.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/session_api.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/callback.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -12167,8 +12514,12 @@
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -12190,7 +12541,6 @@
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/check_varbind.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/container.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/factory.h
-./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_logging.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/container_binary_array.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/container_iterator.h
@@ -12203,8 +12553,6 @@
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_enum.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/vacm.h
-./snmpv3/usmStats.lo: ../../include/net-snmp/output_api.h
-./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_debug.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/snmpv3_api.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpv3.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/transform_oids.h
@@ -12213,6 +12561,7 @@
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/lcd_time.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmptsm.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/library/snmpusm.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -12250,23 +12599,24 @@
 ./snmpv3/usmStats.lo: ../../include/net-snmp/agent/table_container.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/agent/table_array.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/agent/mfd.h
+./snmpv3/usmStats.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/agent/sysORTable.h
 ./snmpv3/usmStats.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./snmpv3/usmStats.lo: util_funcs/header_generic.h ./snmpv3/usmStats.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/net-snmp-config.h
-./snmpv3/usmUser.lo: ../../include/net-snmp/system/linux.h
-./snmpv3/usmUser.lo: ../../include/net-snmp/system/sysv.h
-./snmpv3/usmUser.lo: ../../include/net-snmp/system/generic.h
-./snmpv3/usmUser.lo: ../../include/net-snmp/machine/generic.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/net-snmp-includes.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/definitions.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/types.h 
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/oid.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/types.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_api.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/varbind_api.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_client.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/pdu_api.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/asn1.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/output_api.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_debug.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_logging.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/session_api.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/callback.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -12274,8 +12624,12 @@
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -12297,7 +12651,6 @@
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/check_varbind.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/container.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/factory.h
-./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_logging.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/container_binary_array.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/container_iterator.h
@@ -12310,8 +12663,6 @@
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_enum.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/vacm.h
-./snmpv3/usmUser.lo: ../../include/net-snmp/output_api.h
-./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_debug.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/snmpv3_api.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpv3.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/transform_oids.h
@@ -12320,6 +12671,7 @@
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/lcd_time.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmptsm.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/library/snmpusm.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -12357,21 +12709,22 @@
 ./snmpv3/usmUser.lo: ../../include/net-snmp/agent/table_container.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/agent/table_array.h
 ./snmpv3/usmUser.lo: ../../include/net-snmp/agent/mfd.h
+./snmpv3/usmUser.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./snmpv3/usmUser.lo: util_funcs/header_generic.h ./snmpv3/usmUser.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/net-snmp-config.h
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/system/linux.h
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/system/sysv.h
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/system/generic.h
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/machine/generic.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/net-snmp-includes.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/definitions.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/types.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/oid.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/types.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_api.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/varbind_api.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_client.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/pdu_api.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/asn1.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/output_api.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_debug.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_logging.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/session_api.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/callback.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -12379,8 +12732,12 @@
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -12402,7 +12759,6 @@
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/check_varbind.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/container.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/factory.h
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_logging.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/container_binary_array.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/container_iterator.h
@@ -12415,8 +12771,6 @@
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_enum.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/vacm.h
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/output_api.h
-./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_debug.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/snmpv3_api.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpv3.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/transform_oids.h
@@ -12425,6 +12779,7 @@
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/lcd_time.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmptsm.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/library/snmpusm.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -12462,22 +12817,23 @@
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/agent/table_container.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/agent/table_array.h
 ./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/agent/mfd.h
+./target/snmpTargetAddrEntry.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./target/snmpTargetAddrEntry.lo: ./target/snmpTargetAddrEntry.h
 ./target/snmpTargetAddrEntry.lo: util_funcs/header_generic.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/net-snmp-config.h
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/system/linux.h
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/system/sysv.h
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/system/generic.h
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/machine/generic.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/net-snmp-includes.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/definitions.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/types.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/oid.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/types.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_api.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/varbind_api.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_client.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/pdu_api.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/asn1.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/output_api.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_debug.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_logging.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/session_api.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/callback.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -12485,8 +12841,12 @@
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -12508,7 +12868,6 @@
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/check_varbind.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/container.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/factory.h
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_logging.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/container_binary_array.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/container_iterator.h
@@ -12521,8 +12880,6 @@
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_enum.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/vacm.h
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/output_api.h
-./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_debug.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/snmpv3_api.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpv3.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/transform_oids.h
@@ -12531,6 +12888,7 @@
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/lcd_time.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmptsm.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/library/snmpusm.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -12568,21 +12926,22 @@
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/agent/table_container.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/agent/table_array.h
 ./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/agent/mfd.h
+./target/snmpTargetParamsEntry.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./target/snmpTargetParamsEntry.lo: ./target/snmpTargetParamsEntry.h
 ./target/target.lo: ../../include/net-snmp/net-snmp-config.h
-./target/target.lo: ../../include/net-snmp/system/linux.h
-./target/target.lo: ../../include/net-snmp/system/sysv.h
-./target/target.lo: ../../include/net-snmp/system/generic.h
-./target/target.lo: ../../include/net-snmp/machine/generic.h
 ./target/target.lo: ../../include/net-snmp/net-snmp-includes.h
 ./target/target.lo: ../../include/net-snmp/definitions.h
 ./target/target.lo: ../../include/net-snmp/types.h 
+./target/target.lo: ../../include/net-snmp/library/oid.h
 ./target/target.lo: ../../include/net-snmp/library/types.h
 ./target/target.lo: ../../include/net-snmp/library/snmp_api.h
 ./target/target.lo: ../../include/net-snmp/varbind_api.h
 ./target/target.lo: ../../include/net-snmp/library/snmp_client.h
 ./target/target.lo: ../../include/net-snmp/pdu_api.h
 ./target/target.lo: ../../include/net-snmp/library/asn1.h
+./target/target.lo: ../../include/net-snmp/output_api.h
+./target/target.lo: ../../include/net-snmp/library/snmp_debug.h
+./target/target.lo: ../../include/net-snmp/library/snmp_logging.h
 ./target/target.lo: ../../include/net-snmp/session_api.h
 ./target/target.lo: ../../include/net-snmp/library/callback.h
 ./target/target.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -12590,8 +12949,12 @@
 ./target/target.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./target/target.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./target/target.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./target/target.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./target/target.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./target/target.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./target/target.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./target/target.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./target/target.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./target/target.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./target/target.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./target/target.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -12613,7 +12976,6 @@
 ./target/target.lo: ../../include/net-snmp/library/check_varbind.h
 ./target/target.lo: ../../include/net-snmp/library/container.h
 ./target/target.lo: ../../include/net-snmp/library/factory.h
-./target/target.lo: ../../include/net-snmp/library/snmp_logging.h
 ./target/target.lo: ../../include/net-snmp/library/container_binary_array.h
 ./target/target.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./target/target.lo: ../../include/net-snmp/library/container_iterator.h
@@ -12626,8 +12988,6 @@
 ./target/target.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./target/target.lo: ../../include/net-snmp/library/snmp_enum.h
 ./target/target.lo: ../../include/net-snmp/library/vacm.h
-./target/target.lo: ../../include/net-snmp/output_api.h
-./target/target.lo: ../../include/net-snmp/library/snmp_debug.h
 ./target/target.lo: ../../include/net-snmp/snmpv3_api.h
 ./target/target.lo: ../../include/net-snmp/library/snmpv3.h
 ./target/target.lo: ../../include/net-snmp/library/transform_oids.h
@@ -12636,6 +12996,7 @@
 ./target/target.lo: ../../include/net-snmp/library/lcd_time.h
 ./target/target.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./target/target.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./target/target.lo: ../../include/net-snmp/library/snmptsm.h
 ./target/target.lo: ../../include/net-snmp/library/snmpusm.h
 ./target/target.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./target/target.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -12673,22 +13034,23 @@
 ./target/target.lo: ../../include/net-snmp/agent/table_container.h
 ./target/target.lo: ../../include/net-snmp/agent/table_array.h
 ./target/target.lo: ../../include/net-snmp/agent/mfd.h
+./target/target.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./target/target.lo: ./target/snmpTargetAddrEntry.h
 ./target/target.lo: ./target/snmpTargetParamsEntry.h target.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/net-snmp-config.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/system/linux.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/system/sysv.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/system/generic.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/machine/generic.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/net-snmp-includes.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/definitions.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/types.h
+./target/target_counters_5_5.lo: ../../include/net-snmp/library/oid.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/types.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp_api.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/varbind_api.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp_client.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/pdu_api.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/asn1.h
+./target/target_counters_5_5.lo: ../../include/net-snmp/output_api.h
+./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp_debug.h
+./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp_logging.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/session_api.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/callback.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -12696,8 +13058,12 @@
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -12719,7 +13085,6 @@
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/check_varbind.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/container.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/factory.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp_logging.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/container_binary_array.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/container_iterator.h
@@ -12732,8 +13097,6 @@
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp_enum.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/vacm.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/output_api.h
-./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp_debug.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/snmpv3_api.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmpv3.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/transform_oids.h
@@ -12742,6 +13105,7 @@
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/lcd_time.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmptsm.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/library/snmpusm.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -12779,22 +13143,22 @@
 ./target/target_counters_5_5.lo: ../../include/net-snmp/agent/table_container.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/agent/table_array.h
 ./target/target_counters_5_5.lo: ../../include/net-snmp/agent/mfd.h
+./target/target_counters_5_5.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./target/target_counters_5_5.lo: ./target/target_counters_5_5.h
-./target/target_counters_5_5.lo: ./utilities/snmp_get_statistic.h
 ./target/target_counters.lo: ../../include/net-snmp/net-snmp-config.h
-./target/target_counters.lo: ../../include/net-snmp/system/linux.h
-./target/target_counters.lo: ../../include/net-snmp/system/sysv.h
-./target/target_counters.lo: ../../include/net-snmp/system/generic.h
-./target/target_counters.lo: ../../include/net-snmp/machine/generic.h
 ./target/target_counters.lo: ../../include/net-snmp/net-snmp-includes.h
 ./target/target_counters.lo: ../../include/net-snmp/definitions.h
 ./target/target_counters.lo: ../../include/net-snmp/types.h
+./target/target_counters.lo: ../../include/net-snmp/library/oid.h
 ./target/target_counters.lo: ../../include/net-snmp/library/types.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmp_api.h
 ./target/target_counters.lo: ../../include/net-snmp/varbind_api.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmp_client.h
 ./target/target_counters.lo: ../../include/net-snmp/pdu_api.h
 ./target/target_counters.lo: ../../include/net-snmp/library/asn1.h
+./target/target_counters.lo: ../../include/net-snmp/output_api.h
+./target/target_counters.lo: ../../include/net-snmp/library/snmp_debug.h
+./target/target_counters.lo: ../../include/net-snmp/library/snmp_logging.h
 ./target/target_counters.lo: ../../include/net-snmp/session_api.h
 ./target/target_counters.lo: ../../include/net-snmp/library/callback.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -12802,8 +13166,12 @@
 ./target/target_counters.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./target/target_counters.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./target/target_counters.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./target/target_counters.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./target/target_counters.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./target/target_counters.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -12825,7 +13193,6 @@
 ./target/target_counters.lo: ../../include/net-snmp/library/check_varbind.h
 ./target/target_counters.lo: ../../include/net-snmp/library/container.h
 ./target/target_counters.lo: ../../include/net-snmp/library/factory.h
-./target/target_counters.lo: ../../include/net-snmp/library/snmp_logging.h
 ./target/target_counters.lo: ../../include/net-snmp/library/container_binary_array.h
 ./target/target_counters.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./target/target_counters.lo: ../../include/net-snmp/library/container_iterator.h
@@ -12838,8 +13205,6 @@
 ./target/target_counters.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmp_enum.h
 ./target/target_counters.lo: ../../include/net-snmp/library/vacm.h
-./target/target_counters.lo: ../../include/net-snmp/output_api.h
-./target/target_counters.lo: ../../include/net-snmp/library/snmp_debug.h
 ./target/target_counters.lo: ../../include/net-snmp/snmpv3_api.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmpv3.h
 ./target/target_counters.lo: ../../include/net-snmp/library/transform_oids.h
@@ -12848,6 +13213,7 @@
 ./target/target_counters.lo: ../../include/net-snmp/library/lcd_time.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./target/target_counters.lo: ../../include/net-snmp/library/snmptsm.h
 ./target/target_counters.lo: ../../include/net-snmp/library/snmpusm.h
 ./target/target_counters.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./target/target_counters.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -12885,21 +13251,130 @@
 ./target/target_counters.lo: ../../include/net-snmp/agent/table_container.h
 ./target/target_counters.lo: ../../include/net-snmp/agent/table_array.h
 ./target/target_counters.lo: ../../include/net-snmp/agent/mfd.h
+./target/target_counters.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./target/target_counters.lo: ./target/target_counters.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/net-snmp-config.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/net-snmp-includes.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/definitions.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/types.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/oid.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/types.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmp_api.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/varbind_api.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmp_client.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/pdu_api.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/asn1.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/output_api.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmp_debug.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmp_logging.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/session_api.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/callback.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmp_transport.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmp_service.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmpUnixDomain.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmpTCPDomain.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmpIPXDomain.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/ucd_compat.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/mib.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/mib_api.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/parse.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/oid_stash.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmp_impl.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmp.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmp-tc.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/getopt.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/utilities.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/system.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/tools.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/int64.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/mt_support.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmp_alarm.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/data_list.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/check_varbind.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/container.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/factory.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/container_binary_array.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/container_list_ssll.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/container_iterator.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/container.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmp_assert.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/version.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/config_api.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/read_config.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/default_store.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmp_parse_args.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmp_enum.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/vacm.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/snmpv3_api.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmpv3.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/transform_oids.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/keytools.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/scapi.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/lcd_time.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmp_secmod.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmptsm.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/snmpusm.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/mib_module_config.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/agent_module_config.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/snmp_agent.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/snmp_vars.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/agent_handler.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/var_struct.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/agent_registry.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/library/fd_event_manager.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/ds_agent.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/agent_read_config.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/agent_trap.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/all_helpers.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/instance.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/baby_steps.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/scalar.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/scalar_group.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/watcher.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/multiplexer.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/null.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/debug_handler.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/cache_handler.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/old_api.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/read_only.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/row_merge.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/serialize.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/bulk_to_next.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/mode_end_call.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/table.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/table_data.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/table_dataset.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/table_tdata.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/table_iterator.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/table_container.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/table_array.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/mfd.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./tsm-mib/snmpTsmConfigurationUsePrefix.lo: ./tsm-mib/snmpTsmConfigurationUsePrefix.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/net-snmp-config.h
-./tunnel/tunnel.lo: ../../include/net-snmp/system/linux.h
-./tunnel/tunnel.lo: ../../include/net-snmp/system/sysv.h
-./tunnel/tunnel.lo: ../../include/net-snmp/system/generic.h
-./tunnel/tunnel.lo: ../../include/net-snmp/machine/generic.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/net-snmp-includes.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/definitions.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/types.h 
+./tunnel/tunnel.lo: ../../include/net-snmp/library/oid.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/types.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_api.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/varbind_api.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_client.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/pdu_api.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/asn1.h
+./tunnel/tunnel.lo: ../../include/net-snmp/output_api.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_debug.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_logging.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/session_api.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/callback.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -12907,8 +13382,12 @@
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -12930,7 +13409,6 @@
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/check_varbind.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/container.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/factory.h
-./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_logging.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/container_binary_array.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/container_iterator.h
@@ -12943,8 +13421,6 @@
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_enum.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/vacm.h
-./tunnel/tunnel.lo: ../../include/net-snmp/output_api.h
-./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_debug.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/snmpv3_api.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpv3.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/transform_oids.h
@@ -12953,6 +13429,7 @@
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/lcd_time.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./tunnel/tunnel.lo: ../../include/net-snmp/library/snmptsm.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/library/snmpusm.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -12990,6 +13467,7 @@
 ./tunnel/tunnel.lo: ../../include/net-snmp/agent/table_container.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/agent/table_array.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/agent/mfd.h
+./tunnel/tunnel.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/agent/sysORTable.h
 ./tunnel/tunnel.lo: ../../include/net-snmp/agent/agent_callbacks.h tunnel.h
 ./tunnel/tunnel.lo: if-mib/ifTable/ifTable.h
@@ -13000,19 +13478,19 @@
 ./tunnel/tunnel.lo: if-mib/ifTable/ifTable_data_access.h
 ./tunnel/tunnel.lo: if-mib/ifTable/ifTable_defs.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/disk.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/disk.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/disk.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/disk.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/types.h 
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -13020,8 +13498,12 @@
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -13043,7 +13525,6 @@
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/container_iterator.h
@@ -13056,8 +13537,6 @@
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/disk.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/transform_oids.h
@@ -13066,6 +13545,7 @@
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -13103,23 +13583,134 @@
 ./ucd-snmp/disk.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/disk.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/disk.lo: ../../include/net-snmp/agent/auto_nlist.h struct.h
 ./ucd-snmp/disk.lo: ./ucd-snmp/disk.h mibdefs.h
 ./ucd-snmp/disk.lo: util_funcs/header_simple_table.h ./ucd-snmp/errormib.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/net-snmp-config.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/net-snmp-includes.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/definitions.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/types.h 
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/oid.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/types.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmp_api.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/varbind_api.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmp_client.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/pdu_api.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmp_logging.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/session_api.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/callback.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmp_transport.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmp_service.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmpUnixDomain.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmpTCPDomain.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmpIPXDomain.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/ucd_compat.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/mib.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/mib_api.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/parse.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/oid_stash.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmp_impl.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmp.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmp-tc.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/getopt.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/utilities.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/system.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/tools.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/int64.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/mt_support.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmp_alarm.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/data_list.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/check_varbind.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/container.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/factory.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/container_binary_array.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/container_list_ssll.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/container_iterator.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/container.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmp_assert.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/version.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/config_api.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/read_config.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/default_store.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmp_parse_args.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmp_enum.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/vacm.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/snmpv3_api.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmpv3.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/transform_oids.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/keytools.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/scapi.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/lcd_time.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmp_secmod.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmptsm.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/snmpusm.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/mib_module_config.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/agent_module_config.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/snmp_agent.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/snmp_vars.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/agent_handler.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/var_struct.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/agent_registry.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/library/fd_event_manager.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/ds_agent.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/agent_read_config.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/agent_trap.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/all_helpers.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/instance.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/baby_steps.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/scalar.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/scalar_group.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/watcher.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/multiplexer.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/null.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/debug_handler.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/cache_handler.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/old_api.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/read_only.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/row_merge.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/serialize.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/bulk_to_next.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/mode_end_call.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/table.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/table_data.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/table_dataset.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/table_tdata.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/table_iterator.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/table_container.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/table_array.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./ucd-snmp/disk_hw.lo: ../../include/net-snmp/agent/hardware/fsys.h struct.h
+./ucd-snmp/disk_hw.lo: ./ucd-snmp/disk.h mibdefs.h
+./ucd-snmp/disk_hw.lo: util_funcs/header_simple_table.h ./ucd-snmp/errormib.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/diskio.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/diskio.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/diskio.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/diskio.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/types.h 
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -13127,8 +13718,12 @@
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -13150,7 +13745,6 @@
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/container_iterator.h
@@ -13163,8 +13757,6 @@
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/diskio.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/transform_oids.h
@@ -13173,6 +13765,7 @@
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -13210,21 +13803,22 @@
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/diskio.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/diskio.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/diskio.lo: util_funcs/header_simple_table.h ./ucd-snmp/diskio.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/types.h 
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -13232,8 +13826,12 @@
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -13255,7 +13853,6 @@
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/container_iterator.h
@@ -13268,8 +13865,6 @@
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/transform_oids.h
@@ -13278,6 +13873,7 @@
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -13314,25 +13910,27 @@
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/agent/table_iterator.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/dlmod.lo: ../../include/net-snmp/agent/table_array.h
-./ucd-snmp/dlmod.lo: ../../include/net-snmp/agent/mfd.h struct.h util_funcs.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/dlmod.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./ucd-snmp/dlmod.lo: struct.h util_funcs.h util_funcs/Exit.h
 ./ucd-snmp/dlmod.lo: util_funcs/header_generic.h
-./ucd-snmp/dlmod.lo: util_funcs/header_simple_table.h
+./ucd-snmp/dlmod.lo: util_funcs/header_simple_table.h util_funcs/restart.h
 ./ucd-snmp/dlmod.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h
 ./ucd-snmp/dlmod.lo: ./ucd-snmp/dlmod.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/errormib.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/errormib.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/errormib.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/errormib.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/types.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -13340,8 +13938,12 @@
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -13363,7 +13965,6 @@
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/container_iterator.h
@@ -13376,8 +13977,6 @@
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/errormib.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/transform_oids.h
@@ -13386,6 +13985,7 @@
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -13423,23 +14023,24 @@
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/errormib.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/errormib.lo: ../../include/net-snmp/agent/auto_nlist.h struct.h
 ./ucd-snmp/errormib.lo: ./ucd-snmp/errormib.h mibdefs.h
 ./ucd-snmp/errormib.lo: util_funcs/header_generic.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/extensible.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/extensible.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/extensible.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/extensible.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/types.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -13447,8 +14048,12 @@
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -13470,7 +14075,6 @@
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/container_iterator.h
@@ -13483,8 +14087,6 @@
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/extensible.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/transform_oids.h
@@ -13493,6 +14095,7 @@
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -13530,25 +14133,30 @@
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/extensible.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./ucd-snmp/extensible.lo: ../../include/net-snmp/agent/agent_callbacks.h
 ./ucd-snmp/extensible.lo: struct.h ./ucd-snmp/extensible.h mibdefs.h
-./ucd-snmp/extensible.lo: utilities/execute.h
+./ucd-snmp/extensible.lo: ../../agent/mibgroup/util_funcs.h util_funcs/Exit.h
+./ucd-snmp/extensible.lo: util_funcs/header_generic.h
 ./ucd-snmp/extensible.lo: util_funcs/header_simple_table.h
+./ucd-snmp/extensible.lo: util_funcs/restart.h
+./ucd-snmp/extensible.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h
+./ucd-snmp/extensible.lo: utilities/execute.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/file.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/file.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/file.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/file.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/types.h 
+./ucd-snmp/file.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/file.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -13556,8 +14164,12 @@
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -13579,7 +14191,6 @@
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/container_iterator.h
@@ -13592,8 +14203,6 @@
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/file.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/transform_oids.h
@@ -13602,6 +14211,7 @@
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/file.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -13638,23 +14248,24 @@
 ./ucd-snmp/file.lo: ../../include/net-snmp/agent/table_iterator.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/file.lo: ../../include/net-snmp/agent/table_array.h
-./ucd-snmp/file.lo: ../../include/net-snmp/agent/mfd.h struct.h
-./ucd-snmp/file.lo: ./ucd-snmp/file.h mibdefs.h
+./ucd-snmp/file.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/file.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./ucd-snmp/file.lo: struct.h ./ucd-snmp/file.h mibdefs.h
 ./ucd-snmp/file.lo: util_funcs/header_simple_table.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/types.h 
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -13662,8 +14273,12 @@
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -13685,7 +14300,6 @@
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/container_iterator.h
@@ -13698,8 +14312,6 @@
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/transform_oids.h
@@ -13708,6 +14320,7 @@
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -13744,22 +14357,23 @@
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/agent/table_iterator.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/hpux.lo: ../../include/net-snmp/agent/table_array.h
-./ucd-snmp/hpux.lo: ../../include/net-snmp/agent/mfd.h ./ucd-snmp/hpux.h
-./ucd-snmp/hpux.lo: mibdefs.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/hpux.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./ucd-snmp/hpux.lo: ./ucd-snmp/hpux.h mibdefs.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/types.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -13767,8 +14381,12 @@
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -13790,7 +14408,6 @@
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/container_iterator.h
@@ -13803,8 +14420,6 @@
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/transform_oids.h
@@ -13813,6 +14428,7 @@
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -13850,22 +14466,23 @@
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/lmSensors.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/lmSensors.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/lmSensors.lo: util_funcs/header_simple_table.h
 ./ucd-snmp/lmSensors.lo:  ./ucd-snmp/lmSensors.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/types.h
+./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -13873,8 +14490,12 @@
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -13896,7 +14517,6 @@
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/container_iterator.h
@@ -13909,8 +14529,6 @@
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/transform_oids.h
@@ -13919,6 +14537,7 @@
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -13956,22 +14575,24 @@
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/lmsensorsMib.lo: ../../include/net-snmp/agent/hardware/sensors.h
+./ucd-snmp/lmsensorsMib.lo: hardware/sensors/hw_sensors.h
 ./ucd-snmp/lmsensorsMib.lo: ucd-snmp/lmsensorsMib.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/loadave.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/loadave.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/loadave.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/loadave.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/types.h 
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -13979,8 +14600,12 @@
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -14002,7 +14627,6 @@
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/container_iterator.h
@@ -14015,8 +14639,6 @@
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/loadave.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/transform_oids.h
@@ -14025,6 +14647,7 @@
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -14062,130 +14685,26 @@
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/loadave.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/loadave.lo: ../../include/net-snmp/agent/auto_nlist.h struct.h
 ./ucd-snmp/loadave.lo: ./ucd-snmp/loadave.h mibdefs.h
 ./ucd-snmp/loadave.lo: util_funcs/header_simple_table.h ../../agent/kernel.h
 ./ucd-snmp/logmatch.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/machine/generic.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/net-snmp-includes.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/definitions.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/types.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/types.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp_api.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/varbind_api.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp_client.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/pdu_api.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/asn1.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/session_api.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/callback.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp_transport.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp_service.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmpUnixDomain.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmpUDPDomain.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmpTCPDomain.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmpIPXDomain.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/ucd_compat.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/mib.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/mib_api.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/parse.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/oid_stash.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp_impl.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp-tc.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/getopt.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/utilities.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/system.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/tools.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/int64.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/mt_support.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp_alarm.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/data_list.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/check_varbind.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/container.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp_logging.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/container_binary_array.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/container_list_ssll.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/container_iterator.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/container.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp_assert.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/version.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/config_api.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/read_config.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/default_store.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp_parse_args.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp_enum.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp_debug.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/snmpv3_api.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmpv3.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/transform_oids.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/keytools.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/scapi.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/lcd_time.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmp_secmod.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/snmpusm.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/mib_module_config.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/agent_module_config.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/snmp_agent.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/snmp_vars.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/agent_handler.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/var_struct.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/agent_registry.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/library/fd_event_manager.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/ds_agent.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/agent_read_config.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/agent_trap.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/all_helpers.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/instance.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/baby_steps.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/scalar.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/scalar_group.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/watcher.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/multiplexer.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/null.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/debug_handler.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/cache_handler.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/old_api.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/read_only.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/row_merge.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/serialize.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/mode_end_call.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/table.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/table_data.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/table_dataset.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/table_tdata.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/table_iterator.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/table_container.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/table_array.h
-./ucd-snmp/logmatch.lo: ../../include/net-snmp/agent/mfd.h struct.h
-./ucd-snmp/logmatch.lo: ./ucd-snmp/logmatch.h mibdefs.h 
-./ucd-snmp/logmatch.lo: util_funcs/header_generic.h
-./ucd-snmp/logmatch.lo: util_funcs/header_simple_table.h
+./ucd-snmp/logmatch.lo: ./ucd-snmp/logmatch.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/types.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -14193,8 +14712,12 @@
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -14216,7 +14739,6 @@
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/container_iterator.h
@@ -14229,8 +14751,6 @@
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/transform_oids.h
@@ -14239,6 +14759,7 @@
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -14276,23 +14797,24 @@
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/memory_aix4.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./ucd-snmp/memory_aix4.lo: util_funcs/header_generic.h ./ucd-snmp/memory.h
 ./ucd-snmp/memory_aix4.lo: ./ucd-snmp/memory_aix4.h mibdefs.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/memory.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/memory.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/memory.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/memory.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/types.h 
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -14300,8 +14822,12 @@
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -14323,7 +14849,6 @@
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/container_iterator.h
@@ -14336,8 +14861,6 @@
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/memory.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/transform_oids.h
@@ -14346,6 +14869,7 @@
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -14383,22 +14907,23 @@
 ./ucd-snmp/memory.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/memory.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/memory.lo: ../../include/net-snmp/agent/hardware/memory.h
 ./ucd-snmp/memory.lo: ./ucd-snmp/memory.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/types.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -14406,8 +14931,12 @@
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -14429,7 +14958,6 @@
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/container_iterator.h
@@ -14442,8 +14970,6 @@
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/transform_oids.h
@@ -14452,6 +14978,7 @@
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -14489,23 +15016,24 @@
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/memory_darwin7.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./ucd-snmp/memory_darwin7.lo: util_funcs/header_generic.h ./ucd-snmp/memory.h
 ./ucd-snmp/memory_darwin7.lo: ./ucd-snmp/memory_darwin7.h mibdefs.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/types.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -14513,8 +15041,12 @@
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -14536,7 +15068,6 @@
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/container_iterator.h
@@ -14549,8 +15080,6 @@
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/transform_oids.h
@@ -14559,6 +15088,7 @@
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -14596,23 +15126,24 @@
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/memory_dynix.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./ucd-snmp/memory_dynix.lo: util_funcs/header_generic.h ./ucd-snmp/memory.h
 ./ucd-snmp/memory_dynix.lo: ./ucd-snmp/memory_dynix.h mibdefs.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/types.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -14620,8 +15151,12 @@
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -14643,7 +15178,6 @@
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/container_iterator.h
@@ -14656,8 +15190,6 @@
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/transform_oids.h
@@ -14666,6 +15198,7 @@
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -14703,26 +15236,29 @@
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/memory_freebsd2.lo: ../../include/net-snmp/agent/auto_nlist.h
-./ucd-snmp/memory_freebsd2.lo: util_funcs.h util_funcs/header_generic.h
-./ucd-snmp/memory_freebsd2.lo: util_funcs/header_simple_table.h struct.h
+./ucd-snmp/memory_freebsd2.lo: util_funcs.h util_funcs/Exit.h
+./ucd-snmp/memory_freebsd2.lo: util_funcs/header_generic.h
+./ucd-snmp/memory_freebsd2.lo: util_funcs/header_simple_table.h
+./ucd-snmp/memory_freebsd2.lo: util_funcs/restart.h struct.h
 ./ucd-snmp/memory_freebsd2.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h
 ./ucd-snmp/memory_freebsd2.lo: ./ucd-snmp/memory.h
 ./ucd-snmp/memory_freebsd2.lo: ./ucd-snmp/memory_freebsd2.h mibdefs.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/types.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -14730,8 +15266,12 @@
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -14753,7 +15293,6 @@
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/container_iterator.h
@@ -14766,8 +15305,6 @@
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/transform_oids.h
@@ -14776,6 +15313,7 @@
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -14813,23 +15351,24 @@
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/memory_hpux.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./ucd-snmp/memory_hpux.lo: ./ucd-snmp/memory.h ./ucd-snmp/memory_hpux.h
 ./ucd-snmp/memory_hpux.lo: mibdefs.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/types.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -14837,8 +15376,12 @@
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -14860,7 +15403,6 @@
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/container_iterator.h
@@ -14873,8 +15415,6 @@
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/transform_oids.h
@@ -14883,6 +15423,7 @@
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -14920,23 +15461,24 @@
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/memory_netbsd1.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./ucd-snmp/memory_netbsd1.lo: util_funcs/header_generic.h ./ucd-snmp/memory.h
 ./ucd-snmp/memory_netbsd1.lo: ./ucd-snmp/memory_netbsd1.h mibdefs.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/types.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -14944,8 +15486,12 @@
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -14967,7 +15513,6 @@
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/container_iterator.h
@@ -14980,8 +15525,6 @@
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/transform_oids.h
@@ -14990,6 +15533,7 @@
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -15027,24 +15571,25 @@
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/memory_solaris2.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./ucd-snmp/memory_solaris2.lo: util_funcs/header_generic.h
 ./ucd-snmp/memory_solaris2.lo: ./ucd-snmp/memory.h
 ./ucd-snmp/memory_solaris2.lo: ./ucd-snmp/memory_solaris2.h mibdefs.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/pass.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/pass.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/pass.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/pass.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/types.h 
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -15052,8 +15597,12 @@
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -15075,7 +15624,6 @@
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/container_iterator.h
@@ -15088,8 +15636,6 @@
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/pass.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/transform_oids.h
@@ -15098,6 +15644,7 @@
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -15134,26 +15681,28 @@
 ./ucd-snmp/pass.lo: ../../include/net-snmp/agent/table_iterator.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/pass.lo: ../../include/net-snmp/agent/table_array.h
-./ucd-snmp/pass.lo: ../../include/net-snmp/agent/mfd.h struct.h
-./ucd-snmp/pass.lo: ./ucd-snmp/pass.h mibdefs.h ./ucd-snmp/pass_common.h
-./ucd-snmp/pass.lo: ./ucd-snmp/extensible.h util_funcs.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/pass.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./ucd-snmp/pass.lo: struct.h ./ucd-snmp/pass.h mibdefs.h
+./ucd-snmp/pass.lo: ./ucd-snmp/pass_common.h ./ucd-snmp/extensible.h
+./ucd-snmp/pass.lo: util_funcs.h util_funcs/Exit.h
 ./ucd-snmp/pass.lo: util_funcs/header_generic.h
-./ucd-snmp/pass.lo: util_funcs/header_simple_table.h
+./ucd-snmp/pass.lo: util_funcs/header_simple_table.h util_funcs/restart.h
 ./ucd-snmp/pass.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/types.h
+./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/pass_common.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -15161,8 +15710,12 @@
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -15184,7 +15737,6 @@
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/container_iterator.h
@@ -15197,8 +15749,6 @@
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/transform_oids.h
@@ -15207,6 +15757,7 @@
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -15244,25 +15795,27 @@
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/pass_common.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/pass_common.lo: ../../agent/mibgroup/util_funcs.h
-./ucd-snmp/pass_common.lo: util_funcs/header_generic.h
-./ucd-snmp/pass_common.lo: util_funcs/header_simple_table.h struct.h
+./ucd-snmp/pass_common.lo: util_funcs/Exit.h util_funcs/header_generic.h
+./ucd-snmp/pass_common.lo: util_funcs/header_simple_table.h
+./ucd-snmp/pass_common.lo: util_funcs/restart.h struct.h
 ./ucd-snmp/pass_common.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h
 ./ucd-snmp/pass_common.lo: ./ucd-snmp/pass_common.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/types.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -15270,8 +15823,12 @@
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -15293,7 +15850,6 @@
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/container_iterator.h
@@ -15306,8 +15862,6 @@
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/transform_oids.h
@@ -15316,6 +15870,7 @@
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -15352,26 +15907,29 @@
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/agent/table_iterator.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/pass_persist.lo: ../../include/net-snmp/agent/table_array.h
-./ucd-snmp/pass_persist.lo: ../../include/net-snmp/agent/mfd.h struct.h
-./ucd-snmp/pass_persist.lo: ./ucd-snmp/pass_persist.h mibdefs.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/pass_persist.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./ucd-snmp/pass_persist.lo: struct.h ./ucd-snmp/pass_persist.h mibdefs.h
 ./ucd-snmp/pass_persist.lo: ./ucd-snmp/pass_common.h ./ucd-snmp/extensible.h
-./ucd-snmp/pass_persist.lo: util_funcs.h util_funcs/header_generic.h
+./ucd-snmp/pass_persist.lo: util_funcs.h util_funcs/Exit.h
+./ucd-snmp/pass_persist.lo: util_funcs/header_generic.h
 ./ucd-snmp/pass_persist.lo: util_funcs/header_simple_table.h
+./ucd-snmp/pass_persist.lo: util_funcs/restart.h
 ./ucd-snmp/pass_persist.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/types.h 
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -15379,8 +15937,12 @@
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -15402,7 +15964,6 @@
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/container_iterator.h
@@ -15415,8 +15976,6 @@
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/transform_oids.h
@@ -15425,6 +15984,7 @@
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -15461,25 +16021,28 @@
 ./ucd-snmp/proc.lo: ../../include/net-snmp/agent/table_iterator.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/proc.lo: ../../include/net-snmp/agent/table_array.h
-./ucd-snmp/proc.lo: ../../include/net-snmp/agent/mfd.h struct.h
-./ucd-snmp/proc.lo: ./ucd-snmp/proc.h mibdefs.h ./ucd-snmp/errormib.h
-./ucd-snmp/proc.lo: util_funcs.h util_funcs/header_generic.h
-./ucd-snmp/proc.lo: util_funcs/header_simple_table.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./ucd-snmp/proc.lo: struct.h ./ucd-snmp/proc.h mibdefs.h
+./ucd-snmp/proc.lo: ../../include/net-snmp/data_access/swrun.h
+./ucd-snmp/proc.lo: ./ucd-snmp/errormib.h util_funcs.h util_funcs/Exit.h
+./ucd-snmp/proc.lo: util_funcs/header_generic.h
+./ucd-snmp/proc.lo: util_funcs/header_simple_table.h util_funcs/restart.h
 ./ucd-snmp/proc.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h ../../agent/kernel.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/types.h 
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -15487,8 +16050,12 @@
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -15510,7 +16077,6 @@
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/container_iterator.h
@@ -15523,8 +16089,6 @@
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/transform_oids.h
@@ -15533,6 +16097,7 @@
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -15569,21 +16134,23 @@
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/agent/table_iterator.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/proxy.lo: ../../include/net-snmp/agent/table_array.h
-./ucd-snmp/proxy.lo: ../../include/net-snmp/agent/mfd.h ./ucd-snmp/proxy.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/proxy.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./ucd-snmp/proxy.lo: ./ucd-snmp/proxy.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/types.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -15591,8 +16158,12 @@
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -15614,7 +16185,6 @@
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/container_iterator.h
@@ -15627,8 +16197,6 @@
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/transform_oids.h
@@ -15637,6 +16205,7 @@
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -15673,25 +16242,28 @@
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/agent/table_iterator.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/versioninfo.lo: ../../include/net-snmp/agent/table_array.h
-./ucd-snmp/versioninfo.lo: ../../include/net-snmp/agent/mfd.h struct.h
-./ucd-snmp/versioninfo.lo: ./ucd-snmp/versioninfo.h mibdefs.h util_funcs.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/versioninfo.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./ucd-snmp/versioninfo.lo: struct.h ./ucd-snmp/versioninfo.h mibdefs.h
+./ucd-snmp/versioninfo.lo: util_funcs.h util_funcs/Exit.h
 ./ucd-snmp/versioninfo.lo: util_funcs/header_generic.h
 ./ucd-snmp/versioninfo.lo: util_funcs/header_simple_table.h
+./ucd-snmp/versioninfo.lo: util_funcs/restart.h
 ./ucd-snmp/versioninfo.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/types.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -15699,8 +16271,12 @@
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -15722,7 +16298,6 @@
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/container_iterator.h
@@ -15735,8 +16310,6 @@
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/transform_oids.h
@@ -15745,6 +16318,7 @@
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -15781,23 +16355,24 @@
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/agent/table_iterator.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/agent/table_array.h
-./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/agent/mfd.h mibdefs.h
-./ucd-snmp/vmstat_aix4.lo: util_funcs/header_generic.h ./ucd-snmp/vmstat.h
-./ucd-snmp/vmstat_aix4.lo: ./ucd-snmp/vmstat_aix4.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/vmstat_aix4.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./ucd-snmp/vmstat_aix4.lo: mibdefs.h util_funcs/header_generic.h
+./ucd-snmp/vmstat_aix4.lo: ./ucd-snmp/vmstat.h ./ucd-snmp/vmstat_aix4.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/types.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -15805,8 +16380,12 @@
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -15828,7 +16407,6 @@
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/container_iterator.h
@@ -15841,8 +16419,6 @@
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/transform_oids.h
@@ -15851,6 +16427,7 @@
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -15888,23 +16465,24 @@
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/vmstat_bsdi4.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./ucd-snmp/vmstat_bsdi4.lo: util_funcs/header_generic.h ./ucd-snmp/vmstat.h
 ./ucd-snmp/vmstat_bsdi4.lo: mibdefs.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/types.h 
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -15912,8 +16490,12 @@
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -15935,7 +16517,6 @@
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/container_iterator.h
@@ -15948,8 +16529,6 @@
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/transform_oids.h
@@ -15958,6 +16537,7 @@
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -15995,23 +16575,24 @@
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/vmstat.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./ucd-snmp/vmstat.lo: ../../include/net-snmp/agent/hardware/cpu.h
 ./ucd-snmp/vmstat.lo: ./ucd-snmp/vmstat.h mibdefs.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/types.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -16019,8 +16600,12 @@
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -16042,7 +16627,6 @@
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/container_iterator.h
@@ -16055,8 +16639,6 @@
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/transform_oids.h
@@ -16065,6 +16647,7 @@
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -16102,23 +16685,24 @@
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/vmstat_darwin7.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./ucd-snmp/vmstat_darwin7.lo: util_funcs/header_generic.h ./ucd-snmp/vmstat.h
 ./ucd-snmp/vmstat_darwin7.lo: mibdefs.h ./ucd-snmp/vmstat_darwin7.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/types.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -16126,8 +16710,12 @@
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -16149,7 +16737,6 @@
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/container_iterator.h
@@ -16162,8 +16749,6 @@
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/transform_oids.h
@@ -16172,6 +16757,7 @@
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -16208,23 +16794,24 @@
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/agent/table_iterator.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/agent/table_array.h
-./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/agent/mfd.h mibdefs.h
-./ucd-snmp/vmstat_dynix.lo: util_funcs/header_generic.h ./ucd-snmp/vmstat.h
-./ucd-snmp/vmstat_dynix.lo: ./ucd-snmp/vmstat_dynix.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/vmstat_dynix.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./ucd-snmp/vmstat_dynix.lo: mibdefs.h util_funcs/header_generic.h
+./ucd-snmp/vmstat_dynix.lo: ./ucd-snmp/vmstat.h ./ucd-snmp/vmstat_dynix.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/types.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -16232,8 +16819,12 @@
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -16255,7 +16846,6 @@
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/container_iterator.h
@@ -16268,8 +16858,6 @@
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/transform_oids.h
@@ -16278,6 +16866,7 @@
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -16315,24 +16904,25 @@
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/vmstat_freebsd2.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./ucd-snmp/vmstat_freebsd2.lo: util_funcs/header_generic.h
 ./ucd-snmp/vmstat_freebsd2.lo: ./ucd-snmp/vmstat.h mibdefs.h
 ./ucd-snmp/vmstat_freebsd2.lo: ./ucd-snmp/vmstat_freebsd2.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/types.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -16340,8 +16930,12 @@
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -16363,7 +16957,6 @@
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/container_iterator.h
@@ -16376,8 +16969,6 @@
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/transform_oids.h
@@ -16386,6 +16977,7 @@
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -16422,23 +17014,24 @@
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/agent/table_iterator.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/agent/table_array.h
-./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/agent/mfd.h mibdefs.h
-./ucd-snmp/vmstat_hpux.lo: util_funcs/header_generic.h ./ucd-snmp/vmstat.h
-./ucd-snmp/vmstat_hpux.lo: ./ucd-snmp/vmstat_hpux.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/vmstat_hpux.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./ucd-snmp/vmstat_hpux.lo: mibdefs.h util_funcs/header_generic.h
+./ucd-snmp/vmstat_hpux.lo: ./ucd-snmp/vmstat.h ./ucd-snmp/vmstat_hpux.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/types.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -16446,8 +17039,12 @@
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -16469,7 +17066,6 @@
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/container_iterator.h
@@ -16482,8 +17078,6 @@
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/transform_oids.h
@@ -16492,6 +17086,7 @@
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -16529,24 +17124,25 @@
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./ucd-snmp/vmstat_linux.lo: ../../include/net-snmp/agent/hardware/cpu.h
 ./ucd-snmp/vmstat_linux.lo: mibdefs.h struct.h util_funcs/header_generic.h
 ./ucd-snmp/vmstat_linux.lo: ./ucd-snmp/vmstat.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/types.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -16554,8 +17150,12 @@
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -16577,7 +17177,6 @@
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/container_iterator.h
@@ -16590,8 +17189,6 @@
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/transform_oids.h
@@ -16600,6 +17197,7 @@
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -16637,23 +17235,24 @@
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/agent/table_array.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./ucd-snmp/vmstat_netbsd1.lo: ../../include/net-snmp/agent/auto_nlist.h
 ./ucd-snmp/vmstat_netbsd1.lo: util_funcs/header_generic.h ./ucd-snmp/vmstat.h
 ./ucd-snmp/vmstat_netbsd1.lo: mibdefs.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/net-snmp-config.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/system/linux.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/system/sysv.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/system/generic.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/machine/generic.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/net-snmp-includes.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/definitions.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/types.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/oid.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/types.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_api.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/varbind_api.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_client.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/pdu_api.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/asn1.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/output_api.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_debug.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/session_api.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/callback.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -16661,8 +17260,12 @@
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -16684,7 +17287,6 @@
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/check_varbind.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/container.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/factory.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_logging.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/container_binary_array.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/container_iterator.h
@@ -16697,8 +17299,6 @@
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_enum.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/vacm.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/output_api.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_debug.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/snmpv3_api.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpv3.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/transform_oids.h
@@ -16707,6 +17307,7 @@
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/lcd_time.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmptsm.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/library/snmpusm.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -16743,18 +17344,53 @@
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/agent/table_iterator.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/agent/table_container.h
 ./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/agent/table_array.h
-./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/agent/mfd.h mibdefs.h
-./ucd-snmp/vmstat_solaris2.lo: util_funcs/header_generic.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/agent/mfd.h
+./ucd-snmp/vmstat_solaris2.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./ucd-snmp/vmstat_solaris2.lo: mibdefs.h util_funcs/header_generic.h
 ./ucd-snmp/vmstat_solaris2.lo: ./ucd-snmp/vmstat.h
 ./ucd-snmp/vmstat_solaris2.lo: ./ucd-snmp/vmstat_solaris2.h
+./util_funcs/Exit.lo: ../../include/net-snmp/net-snmp-config.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmp_logging.h
+./util_funcs/Exit.lo: ../../include/net-snmp/types.h 
+./util_funcs/Exit.lo: ../../include/net-snmp/library/oid.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/types.h
+./util_funcs/Exit.lo: ../../include/net-snmp/definitions.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmp_api.h
+./util_funcs/Exit.lo: ../../include/net-snmp/varbind_api.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmp_client.h
+./util_funcs/Exit.lo: ../../include/net-snmp/pdu_api.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/asn1.h
+./util_funcs/Exit.lo: ../../include/net-snmp/output_api.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmp_debug.h
+./util_funcs/Exit.lo: ../../include/net-snmp/session_api.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/callback.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmp_transport.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmp_service.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmpUnixDomain.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmpTCPDomain.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmpIPXDomain.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/ucd_compat.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/mib.h
+./util_funcs/Exit.lo: ../../include/net-snmp/mib_api.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/parse.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/oid_stash.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmp_impl.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmp.h
+./util_funcs/Exit.lo: ../../include/net-snmp/library/snmp-tc.h
+./util_funcs/Exit.lo:  ./util_funcs/Exit.h
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/net-snmp-config.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/system/linux.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/system/sysv.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/system/generic.h
-./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/machine/generic.h
 ./util_funcs/get_pid_from_inode.lo: ./util_funcs/get_pid_from_inode.h
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/output_api.h
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/types.h
+./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/oid.h
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/types.h
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/definitions.h
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmp_api.h
@@ -16769,8 +17405,12 @@
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -16784,19 +17424,19 @@
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmp_debug.h
 ./util_funcs/get_pid_from_inode.lo: ../../include/net-snmp/library/snmp_logging.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/net-snmp-config.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/system/linux.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/system/sysv.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/system/generic.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/machine/generic.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/net-snmp-includes.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/definitions.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/types.h
+./util_funcs/header_generic.lo: ../../include/net-snmp/library/oid.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/types.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp_api.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/varbind_api.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp_client.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/pdu_api.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/asn1.h
+./util_funcs/header_generic.lo: ../../include/net-snmp/output_api.h
+./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp_debug.h
+./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp_logging.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/session_api.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/callback.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -16804,8 +17444,12 @@
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -16827,7 +17471,6 @@
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/check_varbind.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/container.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/factory.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp_logging.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/container_binary_array.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/container_iterator.h
@@ -16840,8 +17483,6 @@
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp_enum.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/vacm.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/output_api.h
-./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp_debug.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/snmpv3_api.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmpv3.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/transform_oids.h
@@ -16850,6 +17491,7 @@
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/lcd_time.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmptsm.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/library/snmpusm.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -16887,21 +17529,22 @@
 ./util_funcs/header_generic.lo: ../../include/net-snmp/agent/table_container.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/agent/table_array.h
 ./util_funcs/header_generic.lo: ../../include/net-snmp/agent/mfd.h
+./util_funcs/header_generic.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./util_funcs/header_generic.lo: ./util_funcs/header_generic.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/net-snmp-config.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/system/linux.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/system/sysv.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/system/generic.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/machine/generic.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/net-snmp-includes.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/definitions.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/types.h
+./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/oid.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/types.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp_api.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/varbind_api.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp_client.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/pdu_api.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/asn1.h
+./util_funcs/header_simple_table.lo: ../../include/net-snmp/output_api.h
+./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp_debug.h
+./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp_logging.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/session_api.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/callback.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -16909,8 +17552,12 @@
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -16932,7 +17579,6 @@
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/check_varbind.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/container.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/factory.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp_logging.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/container_binary_array.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/container_iterator.h
@@ -16945,8 +17591,6 @@
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp_enum.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/vacm.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/output_api.h
-./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp_debug.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/snmpv3_api.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmpv3.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/transform_oids.h
@@ -16955,6 +17599,7 @@
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/lcd_time.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmptsm.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/library/snmpusm.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -16992,21 +17637,92 @@
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/table_container.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/table_array.h
 ./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/mfd.h
+./util_funcs/header_simple_table.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
 ./util_funcs/header_simple_table.lo: ./util_funcs/header_simple_table.h
+./util_funcs/restart.lo: ../../include/net-snmp/net-snmp-config.h
+./util_funcs/restart.lo: ../../include/net-snmp/net-snmp-includes.h
+./util_funcs/restart.lo: ../../include/net-snmp/definitions.h
+./util_funcs/restart.lo: ../../include/net-snmp/types.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/oid.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/types.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmp_api.h
+./util_funcs/restart.lo: ../../include/net-snmp/varbind_api.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmp_client.h
+./util_funcs/restart.lo: ../../include/net-snmp/pdu_api.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/asn1.h
+./util_funcs/restart.lo: ../../include/net-snmp/output_api.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmp_debug.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmp_logging.h
+./util_funcs/restart.lo: ../../include/net-snmp/session_api.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/callback.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmp_transport.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmp_service.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmpUnixDomain.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmpTCPDomain.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmpIPXDomain.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/ucd_compat.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/mib.h
+./util_funcs/restart.lo: ../../include/net-snmp/mib_api.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/parse.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/oid_stash.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmp_impl.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmp.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmp-tc.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/getopt.h
+./util_funcs/restart.lo: ../../include/net-snmp/utilities.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/system.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/tools.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/int64.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/mt_support.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmp_alarm.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/data_list.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/check_varbind.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/container.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/factory.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/container_binary_array.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/container_list_ssll.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/container_iterator.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/container.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmp_assert.h
+./util_funcs/restart.lo: ../../include/net-snmp/version.h
+./util_funcs/restart.lo: ../../include/net-snmp/config_api.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/read_config.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/default_store.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmp_parse_args.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmp_enum.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/vacm.h
+./util_funcs/restart.lo: ../../include/net-snmp/snmpv3_api.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmpv3.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/transform_oids.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/keytools.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/scapi.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/lcd_time.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmp_secmod.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmptsm.h
+./util_funcs/restart.lo: ../../include/net-snmp/library/snmpusm.h
 ./utilities/execute.lo: ../../include/net-snmp/net-snmp-config.h
-./utilities/execute.lo: ../../include/net-snmp/system/linux.h
-./utilities/execute.lo: ../../include/net-snmp/system/sysv.h
-./utilities/execute.lo: ../../include/net-snmp/system/generic.h
-./utilities/execute.lo: ../../include/net-snmp/machine/generic.h
 ./utilities/execute.lo: ../../include/net-snmp/net-snmp-includes.h
 ./utilities/execute.lo: ../../include/net-snmp/definitions.h
 ./utilities/execute.lo: ../../include/net-snmp/types.h
+./utilities/execute.lo: ../../include/net-snmp/library/oid.h
 ./utilities/execute.lo: ../../include/net-snmp/library/types.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmp_api.h
 ./utilities/execute.lo: ../../include/net-snmp/varbind_api.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmp_client.h
 ./utilities/execute.lo: ../../include/net-snmp/pdu_api.h
 ./utilities/execute.lo: ../../include/net-snmp/library/asn1.h
+./utilities/execute.lo: ../../include/net-snmp/output_api.h
+./utilities/execute.lo: ../../include/net-snmp/library/snmp_debug.h
+./utilities/execute.lo: ../../include/net-snmp/library/snmp_logging.h
 ./utilities/execute.lo: ../../include/net-snmp/session_api.h
 ./utilities/execute.lo: ../../include/net-snmp/library/callback.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -17014,8 +17730,12 @@
 ./utilities/execute.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./utilities/execute.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./utilities/execute.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./utilities/execute.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./utilities/execute.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./utilities/execute.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -17037,7 +17757,6 @@
 ./utilities/execute.lo: ../../include/net-snmp/library/check_varbind.h
 ./utilities/execute.lo: ../../include/net-snmp/library/container.h
 ./utilities/execute.lo: ../../include/net-snmp/library/factory.h
-./utilities/execute.lo: ../../include/net-snmp/library/snmp_logging.h
 ./utilities/execute.lo: ../../include/net-snmp/library/container_binary_array.h
 ./utilities/execute.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./utilities/execute.lo: ../../include/net-snmp/library/container_iterator.h
@@ -17050,8 +17769,6 @@
 ./utilities/execute.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmp_enum.h
 ./utilities/execute.lo: ../../include/net-snmp/library/vacm.h
-./utilities/execute.lo: ../../include/net-snmp/output_api.h
-./utilities/execute.lo: ../../include/net-snmp/library/snmp_debug.h
 ./utilities/execute.lo: ../../include/net-snmp/snmpv3_api.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmpv3.h
 ./utilities/execute.lo: ../../include/net-snmp/library/transform_oids.h
@@ -17060,6 +17777,7 @@
 ./utilities/execute.lo: ../../include/net-snmp/library/lcd_time.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./utilities/execute.lo: ../../include/net-snmp/library/snmptsm.h
 ./utilities/execute.lo: ../../include/net-snmp/library/snmpusm.h
 ./utilities/execute.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./utilities/execute.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -17097,24 +17815,22 @@
 ./utilities/execute.lo: ../../include/net-snmp/agent/table_container.h
 ./utilities/execute.lo: ../../include/net-snmp/agent/table_array.h
 ./utilities/execute.lo: ../../include/net-snmp/agent/mfd.h
-./utilities/execute.lo: ucd-snmp/errormib.h mibdefs.h util_funcs.h
-./utilities/execute.lo: util_funcs/header_generic.h
-./utilities/execute.lo: util_funcs/header_simple_table.h struct.h
-./utilities/execute.lo: util_funcs/MIB_STATS_CACHE_TIMEOUT.h
+./utilities/execute.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./utilities/execute.lo: ucd-snmp/errormib.h mibdefs.h struct.h
 ./utilities/iquery.lo: ../../include/net-snmp/net-snmp-config.h
-./utilities/iquery.lo: ../../include/net-snmp/system/linux.h
-./utilities/iquery.lo: ../../include/net-snmp/system/sysv.h
-./utilities/iquery.lo: ../../include/net-snmp/system/generic.h
-./utilities/iquery.lo: ../../include/net-snmp/machine/generic.h
 ./utilities/iquery.lo: ../../include/net-snmp/net-snmp-includes.h
 ./utilities/iquery.lo: ../../include/net-snmp/definitions.h
 ./utilities/iquery.lo: ../../include/net-snmp/types.h 
+./utilities/iquery.lo: ../../include/net-snmp/library/oid.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/types.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmp_api.h
 ./utilities/iquery.lo: ../../include/net-snmp/varbind_api.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmp_client.h
 ./utilities/iquery.lo: ../../include/net-snmp/pdu_api.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/asn1.h
+./utilities/iquery.lo: ../../include/net-snmp/output_api.h
+./utilities/iquery.lo: ../../include/net-snmp/library/snmp_debug.h
+./utilities/iquery.lo: ../../include/net-snmp/library/snmp_logging.h
 ./utilities/iquery.lo: ../../include/net-snmp/session_api.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/callback.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -17122,8 +17838,12 @@
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./utilities/iquery.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./utilities/iquery.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./utilities/iquery.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./utilities/iquery.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -17145,7 +17865,6 @@
 ./utilities/iquery.lo: ../../include/net-snmp/library/check_varbind.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/container.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/factory.h
-./utilities/iquery.lo: ../../include/net-snmp/library/snmp_logging.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/container_binary_array.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/container_iterator.h
@@ -17158,8 +17877,6 @@
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmp_enum.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/vacm.h
-./utilities/iquery.lo: ../../include/net-snmp/output_api.h
-./utilities/iquery.lo: ../../include/net-snmp/library/snmp_debug.h
 ./utilities/iquery.lo: ../../include/net-snmp/snmpv3_api.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmpv3.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/transform_oids.h
@@ -17168,6 +17885,7 @@
 ./utilities/iquery.lo: ../../include/net-snmp/library/lcd_time.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./utilities/iquery.lo: ../../include/net-snmp/library/snmptsm.h
 ./utilities/iquery.lo: ../../include/net-snmp/library/snmpusm.h
 ./utilities/iquery.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./utilities/iquery.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -17204,21 +17922,23 @@
 ./utilities/iquery.lo: ../../include/net-snmp/agent/table_iterator.h
 ./utilities/iquery.lo: ../../include/net-snmp/agent/table_container.h
 ./utilities/iquery.lo: ../../include/net-snmp/agent/table_array.h
-./utilities/iquery.lo: ../../include/net-snmp/agent/mfd.h utilities/iquery.h
+./utilities/iquery.lo: ../../include/net-snmp/agent/mfd.h
+./utilities/iquery.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
+./utilities/iquery.lo: utilities/iquery.h
 ./utilities/override.lo: ../../include/net-snmp/net-snmp-config.h
-./utilities/override.lo: ../../include/net-snmp/system/linux.h
-./utilities/override.lo: ../../include/net-snmp/system/sysv.h
-./utilities/override.lo: ../../include/net-snmp/system/generic.h
-./utilities/override.lo: ../../include/net-snmp/machine/generic.h
 ./utilities/override.lo: ../../include/net-snmp/net-snmp-includes.h
 ./utilities/override.lo: ../../include/net-snmp/definitions.h
 ./utilities/override.lo: ../../include/net-snmp/types.h
+./utilities/override.lo: ../../include/net-snmp/library/oid.h
 ./utilities/override.lo: ../../include/net-snmp/library/types.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmp_api.h
 ./utilities/override.lo: ../../include/net-snmp/varbind_api.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmp_client.h
 ./utilities/override.lo: ../../include/net-snmp/pdu_api.h
 ./utilities/override.lo: ../../include/net-snmp/library/asn1.h
+./utilities/override.lo: ../../include/net-snmp/output_api.h
+./utilities/override.lo: ../../include/net-snmp/library/snmp_debug.h
+./utilities/override.lo: ../../include/net-snmp/library/snmp_logging.h
 ./utilities/override.lo: ../../include/net-snmp/session_api.h
 ./utilities/override.lo: ../../include/net-snmp/library/callback.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -17226,8 +17946,12 @@
 ./utilities/override.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./utilities/override.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./utilities/override.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./utilities/override.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./utilities/override.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./utilities/override.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -17249,7 +17973,6 @@
 ./utilities/override.lo: ../../include/net-snmp/library/check_varbind.h
 ./utilities/override.lo: ../../include/net-snmp/library/container.h
 ./utilities/override.lo: ../../include/net-snmp/library/factory.h
-./utilities/override.lo: ../../include/net-snmp/library/snmp_logging.h
 ./utilities/override.lo: ../../include/net-snmp/library/container_binary_array.h
 ./utilities/override.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./utilities/override.lo: ../../include/net-snmp/library/container_iterator.h
@@ -17262,8 +17985,6 @@
 ./utilities/override.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmp_enum.h
 ./utilities/override.lo: ../../include/net-snmp/library/vacm.h
-./utilities/override.lo: ../../include/net-snmp/output_api.h
-./utilities/override.lo: ../../include/net-snmp/library/snmp_debug.h
 ./utilities/override.lo: ../../include/net-snmp/snmpv3_api.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmpv3.h
 ./utilities/override.lo: ../../include/net-snmp/library/transform_oids.h
@@ -17272,6 +17993,7 @@
 ./utilities/override.lo: ../../include/net-snmp/library/lcd_time.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./utilities/override.lo: ../../include/net-snmp/library/snmptsm.h
 ./utilities/override.lo: ../../include/net-snmp/library/snmpusm.h
 ./utilities/override.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
 ./utilities/override.lo: ../../include/net-snmp/agent/mib_module_config.h
@@ -17309,108 +18031,4 @@
 ./utilities/override.lo: ../../include/net-snmp/agent/table_container.h
 ./utilities/override.lo: ../../include/net-snmp/agent/table_array.h
 ./utilities/override.lo: ../../include/net-snmp/agent/mfd.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/net-snmp-config.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/system/linux.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/system/sysv.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/system/generic.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/machine/generic.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/net-snmp-includes.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/definitions.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/types.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/types.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_api.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/varbind_api.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_client.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/pdu_api.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/asn1.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/session_api.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/callback.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_transport.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_service.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmpUnixDomain.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmpUDPDomain.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmpTCPDomain.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmpIPXDomain.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/ucd_compat.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/mib.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/mib_api.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/parse.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/oid_stash.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_impl.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmp.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmp-tc.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/getopt.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/utilities.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/system.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/tools.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/int64.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/mt_support.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_alarm.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/data_list.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/check_varbind.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/container.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/factory.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_logging.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/container_binary_array.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/container_list_ssll.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/container_iterator.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/container.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_assert.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/version.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/config_api.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/read_config.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/default_store.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_parse_args.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_enum.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/vacm.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/output_api.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_debug.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/snmpv3_api.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmpv3.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/transform_oids.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/keytools.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/scapi.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/lcd_time.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmp_secmod.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/snmpusm.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/net-snmp-agent-includes.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/mib_module_config.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/agent_module_config.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/snmp_agent.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/snmp_vars.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/agent_handler.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/var_struct.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/agent_registry.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/library/fd_event_manager.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/ds_agent.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/agent_read_config.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/agent_trap.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/all_helpers.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/instance.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/baby_steps.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/scalar.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/scalar_group.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/watcher.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/multiplexer.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/null.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/debug_handler.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/cache_handler.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/old_api.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/read_only.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/row_merge.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/serialize.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/bulk_to_next.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/mode_end_call.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/table.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/table_data.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/table_dataset.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/table_tdata.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/table_iterator.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/table_container.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/table_array.h
-./utilities/snmp_get_statistic.lo: ../../include/net-snmp/agent/mfd.h
-./utilities/snmp_get_statistic.lo: ./utilities/snmp_get_statistic.h
+./utilities/override.lo: ../../include/net-snmp/agent/snmp_get_statistic.h
diff --git a/agent/mibgroup/Rmon/agutil.c b/agent/mibgroup/Rmon/agutil.c
index 26ba173..12c6342 100644
--- a/agent/mibgroup/Rmon/agutil.c
+++ b/agent/mibgroup/Rmon/agutil.c
@@ -200,20 +200,7 @@
 u_long
 AGUTIL_sys_up_time(void)
 {
-    struct timeval  current, delta;
-    extern struct timeval starttime;
-
-    gettimeofday(&current, NULL);
-    current.tv_sec--;
-    current.tv_usec += 1000000L;
-    delta.tv_sec = current.tv_sec - starttime.tv_sec;
-    delta.tv_usec = current.tv_usec - starttime.tv_usec;
-    if (delta.tv_usec > 1000000L) {
-        delta.tv_usec -= 1000000L;
-        delta.tv_sec++;
-    }
-
-    return delta.tv_sec * 100 + delta.tv_usec / 10000;
+    return netsnmp_get_agent_runtime();
 }
 
 /*
diff --git a/agent/mibgroup/Rmon/alarm.c b/agent/mibgroup/Rmon/alarm.c
index aac5b42..95cb017 100644
--- a/agent/mibgroup/Rmon/alarm.c
+++ b/agent/mibgroup/Rmon/alarm.c
@@ -27,11 +27,7 @@
 #include <unistd.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
diff --git a/agent/mibgroup/Rmon/event.c b/agent/mibgroup/Rmon/event.c
index 127cf3f..8d2d4a1 100644
--- a/agent/mibgroup/Rmon/event.c
+++ b/agent/mibgroup/Rmon/event.c
@@ -24,11 +24,7 @@
 #include <stdlib.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
diff --git a/agent/mibgroup/Rmon/history.c b/agent/mibgroup/Rmon/history.c
index ad03eef..c8e9c25 100644
--- a/agent/mibgroup/Rmon/history.c
+++ b/agent/mibgroup/Rmon/history.c
@@ -24,11 +24,7 @@
 #include <stdlib.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
diff --git a/agent/mibgroup/Rmon/rows.c b/agent/mibgroup/Rmon/rows.c
index d67c567..924a93b 100644
--- a/agent/mibgroup/Rmon/rows.c
+++ b/agent/mibgroup/Rmon/rows.c
@@ -267,7 +267,7 @@
 {
     table_ptr->name = name;
     if (!table_ptr->name)
-        table_ptr->name = "Unknown";
+        table_ptr->name = NETSNMP_REMOVE_CONST(char*,"Unknown");
 
     table_ptr->max_number_of_entries = max_number_of_entries;
     table_ptr->ClbkCreate = ClbkCreate;
diff --git a/agent/mibgroup/Rmon/statistics.c b/agent/mibgroup/Rmon/statistics.c
index 6ccb844..3ed4acb 100644
--- a/agent/mibgroup/Rmon/statistics.c
+++ b/agent/mibgroup/Rmon/statistics.c
@@ -24,11 +24,7 @@
 #include <stdlib.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
diff --git a/agent/mibgroup/agent/extend.c b/agent/mibgroup/agent/extend.c
index 7004ea5..239eeb3 100644
--- a/agent/mibgroup/agent/extend.c
+++ b/agent/mibgroup/agent/extend.c
@@ -213,8 +213,8 @@
     snmpd_register_config_handler("exec", extend_parse_config, NULL, NULL);
     snmpd_register_config_handler("sh",   extend_parse_config, NULL, NULL);
     snmpd_register_config_handler("execFix", extend_parse_config, NULL, NULL);
-    compatability_entries = calloc( max_compatability_entries,
-                                    sizeof(netsnmp_old_extend));
+    compatability_entries = (netsnmp_old_extend *)
+        calloc( max_compatability_entries, sizeof(netsnmp_old_extend));
     REGISTER_MIB("ucd-extensible", old_extensible_variables,
                  variable2, old_extensible_variables_oid);
 #endif
@@ -234,6 +234,10 @@
 int
 extend_load_cache(netsnmp_cache *cache, void *magic)
 {
+#ifndef USING_UTILITIES_EXECUTE_MODULE
+    NETSNMP_LOGONCE((LOG_WARNING,"support for run_exec_command not available\n"));
+    return -1;
+#else
     int  out_len = 1024*100;
     char out_buf[ 1024*100 ];
     int  cmd_len = 255*2 + 2;	/* 2 * DisplayStrings */
@@ -273,7 +277,7 @@
             }
         }
         if ( extension->numlines > 1 ) {
-            extension->lines = calloc( sizeof(char *), extension->numlines );
+            extension->lines = (char**)calloc( sizeof(char *), extension->numlines );
             memcpy( extension->lines, line_buf,
                                        sizeof(char *) * extension->numlines );
         } else {
@@ -282,6 +286,7 @@
     }
     extension->result = ret;
     return ret;
+#endif /* !defined(USING_UTILITIES_EXECUTE_MODULE) */
 }
 
 void
@@ -1111,8 +1116,8 @@
     oid oid_buf[MAX_OID_LEN];
     int oid_len;
     int i;
-    char *token;
-    int   token_len;
+    char  *token;
+    size_t token_len;
 
     if (!request || !table_info || !table_info->indexes
                  || !table_info->indexes->next_variable) {
diff --git a/agent/mibgroup/agent/nsCache.c b/agent/mibgroup/agent/nsCache.c
index a773aeb..5815e90 100644
--- a/agent/mibgroup/agent/nsCache.c
+++ b/agent/mibgroup/agent/nsCache.c
@@ -42,7 +42,7 @@
 #define NSCACHE_STATUS_ACTIVE   4
 #define NSCACHE_STATUS_EXPIRED  5
 
-extern struct snmp_alarm *
+NETSNMP_IMPORT struct snmp_alarm *
 sa_find_specific(unsigned int clientreg);
 
 
diff --git a/agent/mibgroup/agent/nsLogging.c b/agent/mibgroup/agent/nsLogging.c
index 7a21fa8..344e53a 100644
--- a/agent/mibgroup/agent/nsLogging.c
+++ b/agent/mibgroup/agent/nsLogging.c
@@ -444,11 +444,11 @@
                 switch (*request->requestvb->val.integer) {
                     case RS_ACTIVE:
                     case RS_CREATEANDGO:
-                        logh->enabled = 1;
+                        netsnmp_enable_this_loghandler(logh);
                         break;
                     case RS_NOTINSERVICE:
                     case RS_CREATEANDWAIT:
-                        logh->enabled = 0;
+                        netsnmp_disable_this_loghandler(logh);
                         break;
 		    case RS_DESTROY:
 		        netsnmp_remove_loghandler( logh );
diff --git a/agent/mibgroup/agent/nsModuleTable.c b/agent/mibgroup/agent/nsModuleTable.c
index bc45691..1d763f3 100644
--- a/agent/mibgroup/agent/nsModuleTable.c
+++ b/agent/mibgroup/agent/nsModuleTable.c
@@ -136,18 +136,18 @@
     *my_data_context = ctree->tree;
 
     vptr = put_index_data;
-    snmp_set_var_value(vptr, (u_char *) ctree->context_ptr->context_name,
+    snmp_set_var_value(vptr, ctree->context_ptr->context_name,
                        strlen(ctree->context_ptr->context_name));
 
     vptr = vptr->next_variable;
     snmp_set_var_value(vptr,
-                       (u_char *)ctree->context_ptr->first_subtree->name_a,
+                       ctree->context_ptr->first_subtree->name_a,
                        ctree->context_ptr->first_subtree->namelen *
                        sizeof(oid));
 
     ultmp = ctree->context_ptr->first_subtree->priority;
     vptr = vptr->next_variable;
-    snmp_set_var_value(vptr, (u_char *) & ultmp, sizeof(ultmp));
+    snmp_set_var_value(vptr, & ultmp, sizeof(ultmp));
 
     return put_index_data;
 }
@@ -184,16 +184,16 @@
     *my_data_context = ctree->tree;
 
     vptr = put_index_data;
-    snmp_set_var_value(vptr, (u_char *) ctree->context_ptr->context_name,
+    snmp_set_var_value(vptr, ctree->context_ptr->context_name,
                        strlen(ctree->context_ptr->context_name));
 
     vptr = vptr->next_variable;
-    snmp_set_var_value(vptr, (u_char *) ctree->tree->name_a,
+    snmp_set_var_value(vptr, ctree->tree->name_a,
                        ctree->tree->namelen * sizeof(oid));
 
     ultmp = ctree->tree->priority;
     vptr = vptr->next_variable;
-    snmp_set_var_value(vptr, (u_char *) & ultmp, sizeof(ultmp));
+    snmp_set_var_value(vptr, & ultmp, sizeof(ultmp));
 
     return put_index_data;
 }
diff --git a/agent/mibgroup/agent_mibs.h b/agent/mibgroup/agent_mibs.h
index 8c0de1c..50dd159 100644
--- a/agent/mibgroup/agent_mibs.h
+++ b/agent/mibgroup/agent_mibs.h
@@ -1,6 +1,8 @@
 config_require(agent/nsTransactionTable)
 config_require(agent/nsModuleTable)
+#ifndef NETSNMP_NO_DEBUGGING
 config_require(agent/nsDebug)
+#endif
 config_require(agent/nsCache)
 config_require(agent/nsLogging)
 config_require(agent/nsVacmAccessTable)
diff --git a/agent/mibgroup/agentx/client.c b/agent/mibgroup/agentx/client.c
index 1dbdd2b..58987e3 100644
--- a/agent/mibgroup/agentx/client.c
+++ b/agent/mibgroup/agentx/client.c
@@ -19,11 +19,7 @@
 #endif
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -36,9 +32,6 @@
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
@@ -48,8 +41,6 @@
 #include "agentx/client.h"
 #include "agentx/subagent.h"
 
-extern struct timeval starttime;
-
         /*
          * AgentX handling utility routines
          *
@@ -63,7 +54,6 @@
                    int reqid, netsnmp_pdu *pdu, void *magic)
 {
     struct synch_state *state = (struct synch_state *) magic;
-    struct timeval  now, diff;
 
     if (!state || reqid != state->reqid) {
         return handle_agentx_packet(op, session, reqid, pdu, magic);
@@ -80,17 +70,7 @@
             /*
              * Synchronise sysUpTime with the master agent
              */
-            gettimeofday(&now, NULL);
-            now.tv_sec--;
-            now.tv_usec += 1000000L;
-            diff.tv_sec = pdu->time / 100;
-            diff.tv_usec = (pdu->time - (diff.tv_sec * 100)) * 10000;
-            starttime.tv_sec = now.tv_sec - diff.tv_sec;
-            starttime.tv_usec = now.tv_usec - diff.tv_usec;
-            if (starttime.tv_usec > 1000000L) {
-                starttime.tv_usec -= 1000000L;
-                starttime.tv_sec++;
-            }
+            netsnmp_set_agent_uptime(pdu->time);
         }
     } else if (op == NETSNMP_CALLBACK_OP_TIMED_OUT) {
         state->pdu = NULL;
@@ -212,7 +192,7 @@
     pdu->range_subid = range_subid;
     if (contextName) {
         pdu->flags |= AGENTX_MSG_FLAG_NON_DEFAULT_CONTEXT;
-        pdu->community = strdup(contextName);
+        pdu->community = (u_char *) strdup(contextName);
         pdu->community_len = strlen(contextName);
     }
 
@@ -269,7 +249,7 @@
     pdu->range_subid = range_subid;
     if (contextName) {
         pdu->flags |= AGENTX_MSG_FLAG_NON_DEFAULT_CONTEXT;
-        pdu->community = strdup(contextName);
+        pdu->community = (u_char *) strdup(contextName);
         pdu->community_len = strlen(contextName);
     }
 
diff --git a/agent/mibgroup/agentx/master.c b/agent/mibgroup/agentx/master.c
index 05f148f..1ffc043 100644
--- a/agent/mibgroup/agentx/master.c
+++ b/agent/mibgroup/agentx/master.c
@@ -31,9 +31,6 @@
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
diff --git a/agent/mibgroup/agentx/master_admin.c b/agent/mibgroup/agentx/master_admin.c
index f1cea3f..8dae9f1 100644
--- a/agent/mibgroup/agentx/master_admin.c
+++ b/agent/mibgroup/agentx/master_admin.c
@@ -13,11 +13,7 @@
 #include <stdlib.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -29,9 +25,6 @@
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
@@ -48,9 +41,6 @@
 #include <net-snmp/agent/agent_sysORTable.h>
 #include "master.h"
 
-extern struct timeval starttime;
-
-
 
 netsnmp_session *
 find_agentx_session(netsnmp_session * session, int sessid)
@@ -68,7 +58,6 @@
 open_agentx_session(netsnmp_session * session, netsnmp_pdu *pdu)
 {
     netsnmp_session *sp;
-    struct timeval  now;
 
     DEBUGMSGTL(("agentx/master", "open %8p\n", session));
     sp = (netsnmp_session *) malloc(sizeof(netsnmp_session));
@@ -108,8 +97,7 @@
                                                  name_length);
     sp->securityAuthProtoLen = pdu->variables->name_length;
     sp->securityName = strdup((char *) pdu->variables->val.string);
-    gettimeofday(&now, NULL);
-    sp->engineTime = calculate_time_diff(&now, &starttime);
+    sp->engineTime = (netsnmp_get_agent_runtime() + 50) / 100;
 
     sp->subsession = session;   /* link back to head */
     sp->flags |= SNMP_FLAGS_SUBSESSION;
@@ -229,7 +217,7 @@
     reg->handler->myvoid = session;
     reg->global_cacheid = cacheid;
     if (NULL != pdu->community)
-        reg->contextName = strdup(pdu->community);
+        reg->contextName = strdup((char *)pdu->community);
 
     /*
      * register mib. Note that for failure cases, the registration info
@@ -412,10 +400,10 @@
 int
 agentx_notify(netsnmp_session * session, netsnmp_pdu *pdu)
 {
-    netsnmp_session *sp;
+    netsnmp_session       *sp;
     netsnmp_variable_list *var;
-    extern oid      sysuptime_oid[], snmptrap_oid[];
-    extern size_t   sysuptime_oid_len, snmptrap_oid_len;
+    extern const oid       sysuptime_oid[], snmptrap_oid[];
+    extern const size_t    sysuptime_oid_len, snmptrap_oid_len;
 
     sp = find_agentx_session(session, pdu->sessid);
     if (sp == NULL)
@@ -477,7 +465,6 @@
                             int reqid, netsnmp_pdu *pdu, void *magic)
 {
     netsnmp_agent_session *asp;
-    struct timeval  now;
 
     if (operation == NETSNMP_CALLBACK_OP_DISCONNECT) {
         DEBUGMSGTL(("agentx/master",
@@ -580,8 +567,7 @@
         break;
     }
 
-    gettimeofday(&now, NULL);
-    asp->pdu->time = calculate_time_diff(&now, &starttime);
+    asp->pdu->time = netsnmp_get_agent_uptime();
     asp->pdu->command = AGENTX_MSG_RESPONSE;
     asp->pdu->errstat = asp->status;
     DEBUGMSGTL(("agentx/master", "send response, stat %d (req=0x%lx,trans="
diff --git a/agent/mibgroup/agentx/protocol.c b/agent/mibgroup/agentx/protocol.c
index 771b45b..0845cf1 100644
--- a/agent/mibgroup/agentx/protocol.c
+++ b/agent/mibgroup/agentx/protocol.c
@@ -26,11 +26,7 @@
 #endif
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -46,10 +42,6 @@
 #include <arpa/inet.h>
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #include <net-snmp/net-snmp-includes.h>
 
 #include "agentx/protocol.h"
@@ -708,7 +700,7 @@
 	 * pdu->community and pdu->community_len fields, respectively. */
 	if (pdu->contextName != NULL && pdu->community == NULL)
 	{	
-		pdu->community     = strdup(pdu->contextName);
+		pdu->community     = (u_char *) strdup(pdu->contextName);
 		pdu->community_len = pdu->contextNameLen;
 		pdu->flags |= AGENTX_MSG_FLAG_NON_DEFAULT_CONTEXT;
 	}
@@ -1172,8 +1164,8 @@
      */
     tmp_oid_len = (prefix ? n_subid + 5 : n_subid);
     if (*oid_len < tmp_oid_len) {
-        DEBUGMSGTL(("agentx", "Oversized Object ID (buf=%d pdu=%d)\n",
-		    (int) *oid_len, tmp_oid_len));
+        DEBUGMSGTL(("agentx", "Oversized Object ID (buf=%" NETSNMP_PRIz "d"
+		    " pdu=%d)\n", *oid_len, tmp_oid_len));
         DEBUGINDENTLESS();
         return NULL;
     }
@@ -1627,7 +1619,7 @@
 		 * need to copy the context into the PDU's context fields.  */
 		if (pdu->community_len > 0 && pdu->contextName == NULL)
 		{
-			pdu->contextName    = strdup(pdu->community);
+			pdu->contextName    = strdup((char *) pdu->community);
 			pdu->contextNameLen = pdu->community_len;
 		}
 
diff --git a/agent/mibgroup/agentx/subagent.c b/agent/mibgroup/agentx/subagent.c
index 03a38b7..1c00db1 100644
--- a/agent/mibgroup/agentx/subagent.c
+++ b/agent/mibgroup/agentx/subagent.c
@@ -8,11 +8,7 @@
 #include <stdlib.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -21,9 +17,6 @@
 #  include <time.h>
 # endif
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
@@ -173,8 +166,6 @@
 save_set_vars(netsnmp_session * ss, netsnmp_pdu *pdu)
 {
     struct agent_netsnmp_set_info *ptr;
-    struct timeval  now;
-    extern struct timeval starttime;
 
     ptr = (struct agent_netsnmp_set_info *)
         malloc(sizeof(struct agent_netsnmp_set_info));
@@ -187,8 +178,7 @@
     ptr->transID = pdu->transid;
     ptr->sess = ss;
     ptr->mode = SNMP_MSG_INTERNAL_SET_RESERVE1;
-    gettimeofday(&now, NULL);
-    ptr->uptime = calculate_time_diff(&now, &starttime);
+    ptr->uptime = netsnmp_get_agent_uptime();
 
     ptr->var_list = snmp_clone_varbind(pdu->variables);
     if (ptr->var_list == NULL) {
@@ -499,7 +489,7 @@
      */
 
     internal_pdu = snmp_clone_pdu(pdu);
-    internal_pdu->contextName = internal_pdu->community;
+    internal_pdu->contextName = (char *) internal_pdu->community;
     internal_pdu->contextNameLen = internal_pdu->community_len;
     internal_pdu->community = NULL;
     internal_pdu->community_len = 0;
@@ -707,7 +697,7 @@
 }
 
 
-int
+static int
 agentx_sysOR_callback(int majorID, int minorID, void *serverarg,
                       void *clientarg)
 {
@@ -914,9 +904,10 @@
 static void
 agentx_reopen_sysORTable(const struct sysORTable* data, void* v)
 {
-  netsnmp_session *agentx_ss = (netsnmp_session *) v;
-  agentx_add_agentcaps(agentx_ss, data->OR_oid, data->OR_oidlen,
-  	                          data->OR_descr);
+    netsnmp_session *agentx_ss = (netsnmp_session *) v;
+  
+    agentx_add_agentcaps(agentx_ss, data->OR_oid, data->OR_oidlen,
+                         data->OR_descr);
 }
 
 /*
diff --git a/agent/mibgroup/default_modules.h b/agent/mibgroup/default_modules.h
index 7f953d3..1d767ae 100644
--- a/agent/mibgroup/default_modules.h
+++ b/agent/mibgroup/default_modules.h
@@ -13,7 +13,8 @@
 config_require(mibII/sysORTable)
 config_require(mibII/vacm_vars)
 config_require(mibII/vacm_conf)
-config_require(utilities/execute)
+config_require(util_funcs/Exit)
+config_require(util_funcs/restart)
 
 /* very few default mibs */
 config_add_mib(SNMPv2-MIB)
diff --git a/agent/mibgroup/disman/event/mteEvent.c b/agent/mibgroup/disman/event/mteEvent.c
index 2fe6979..05360d3 100644
--- a/agent/mibgroup/disman/event/mteEvent.c
+++ b/agent/mibgroup/disman/event/mteEvent.c
@@ -338,9 +338,9 @@
                        oid *suffix, size_t sfx_len ) /* Matching instance  */
 {
     netsnmp_variable_list *var, *v2;
-    oid    snmptrap_oid[]   = { 1,3,6,1,6,3,1,1,4,1,0 };
-    size_t snmptrap_oid_len = OID_LENGTH(snmptrap_oid);
-    netsnmp_session *s;
+    extern const oid       snmptrap_oid[];
+    extern const size_t    snmptrap_oid_len;
+    netsnmp_session       *s;
 
          /*
           * The Event-MIB specification says that objects from the
diff --git a/agent/mibgroup/disman/event/mteEvent.h b/agent/mibgroup/disman/event/mteEvent.h
index b358519..3be5c6e 100644
--- a/agent/mibgroup/disman/event/mteEvent.h
+++ b/agent/mibgroup/disman/event/mteEvent.h
@@ -46,7 +46,7 @@
      * Column values for the main mteEventTable
      */
     char            mteEventComment[MTE_STR2_LEN+1];
-    char            mteEventActions;
+    u_char          mteEventActions;
 
     /*
      * Column values for Notification events (mteEventNotificationTable)
diff --git a/agent/mibgroup/disman/event/mteEventConf.c b/agent/mibgroup/disman/event/mteEventConf.c
index 1b9de78..72e3ae3 100644
--- a/agent/mibgroup/disman/event/mteEventConf.c
+++ b/agent/mibgroup/disman/event/mteEventConf.c
@@ -469,7 +469,7 @@
 store_mteETable(int majorID, int minorID, void *serverarg, void *clientarg)
 {
     char            line[SNMP_MAXBUF];
-    char           *cptr;
+    char           *cptr, *cp;
     void           *vp;
     size_t          tint;
     netsnmp_tdata_row *row;
@@ -499,12 +499,12 @@
         strcat(line, "_mteETable ");
         cptr = line + strlen(line);
 
-        vp   = entry->mteOwner;        tint = strlen( vp );
-        cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
-        vp   = entry->mteEName;        tint = strlen( vp );
-        cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
-        vp   = entry->mteEventComment; tint = strlen( vp );
-        cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
+        cp   = entry->mteOwner;        tint = strlen( cp );
+        cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
+        cp   = entry->mteEName;        tint = strlen( cp );
+        cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
+        cp   = entry->mteEventComment; tint = strlen( cp );
+        cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
         /* ... (but skip the mteEventAction field)... */
         tint = entry->flags & (MTE_EVENT_FLAG_ENABLED|MTE_EVENT_FLAG_ACTIVE); 
         cptr = read_config_store_data( ASN_UNSIGNED,  cptr, &tint, NULL );
@@ -520,17 +520,17 @@
             strcat(line, "_mteENotTable ");
             cptr = line + strlen(line);
     
-            vp = entry->mteOwner;         tint = strlen( vp );
-            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp, &tint );
-            vp = entry->mteEName;         tint = strlen( vp );
-            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp, &tint );
+            cp = entry->mteOwner;         tint = strlen( cp );
+            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &cp, &tint );
+            cp = entry->mteEName;         tint = strlen( cp );
+            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &cp, &tint );
             vp   = entry->mteNotification;
             cptr = read_config_store_data(ASN_OBJECT_ID, cptr, &vp,
                                           &entry->mteNotification_len);
-            vp = entry->mteNotifyOwner;   tint = strlen( vp );
-            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp, &tint );
-            vp = entry->mteNotifyObjects; tint = strlen( vp );
-            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp, &tint );
+            cp = entry->mteNotifyOwner;   tint = strlen( cp );
+            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &cp, &tint );
+            cp = entry->mteNotifyObjects; tint = strlen( cp );
+            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &cp, &tint );
             snmpd_store_config(line);
         }
 
@@ -539,19 +539,19 @@
             strcat(line, "_mteESetTable ");
             cptr = line + strlen(line);
     
-            vp = entry->mteOwner;         tint = strlen( vp );
-            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp, &tint );
-            vp = entry->mteEName;         tint = strlen( vp );
-            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp, &tint );
+            cp = entry->mteOwner;         tint = strlen( cp );
+            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &cp, &tint );
+            cp = entry->mteEName;         tint = strlen( cp );
+            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &cp, &tint );
             vp   = entry->mteSetOID;
             cptr = read_config_store_data(ASN_OBJECT_ID, cptr, &vp,
                                           &entry->mteSetOID_len);
             tint = entry->mteSetValue;
             cptr = read_config_store_data(ASN_INTEGER,   cptr, &tint, NULL);
-            vp = entry->mteSetTarget;     tint = strlen( vp );
-            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp, &tint );
-            vp = entry->mteSetContext;    tint = strlen( vp );
-            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp, &tint );
+            cp = entry->mteSetTarget;     tint = strlen( cp );
+            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &cp, &tint );
+            cp = entry->mteSetContext;    tint = strlen( cp );
+            cptr = read_config_store_data(ASN_OCTET_STR, cptr, &cp, &tint );
             tint = entry->flags & (MTE_SET_FLAG_OBJWILD|MTE_SET_FLAG_CTXWILD); 
             cptr = read_config_store_data(ASN_UNSIGNED,  cptr, &tint, NULL);
             snmpd_store_config(line);
diff --git a/agent/mibgroup/disman/event/mteObjectsConf.c b/agent/mibgroup/disman/event/mteObjectsConf.c
index 3e9c11b..7679865 100644
--- a/agent/mibgroup/disman/event/mteObjectsConf.c
+++ b/agent/mibgroup/disman/event/mteObjectsConf.c
@@ -111,7 +111,7 @@
 store_mteOTable(int majorID, int minorID, void *serverarg, void *clientarg)
 {
     char            line[SNMP_MAXBUF];
-    char           *cptr;
+    char           *cptr, *cp;
     void           *vp;
     size_t          tint;
     netsnmp_tdata_row *row;
@@ -137,10 +137,10 @@
         strcat(line, "_mteOTable ");
         cptr = line + strlen(line);
 
-        vp = entry->mteOwner; tint = strlen( vp );
-        cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp, &tint );
-        vp = entry->mteOName; tint = strlen( vp );
-        cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp, &tint );
+        cp = entry->mteOwner; tint = strlen( cp );
+        cptr = read_config_store_data(ASN_OCTET_STR, cptr, &cp, &tint );
+        cp = entry->mteOName; tint = strlen( cp );
+        cptr = read_config_store_data(ASN_OCTET_STR, cptr, &cp, &tint );
         cptr = read_config_store_data(ASN_UNSIGNED,  cptr,
                                       &entry->mteOIndex, NULL);
         vp   = entry->mteObjectID;
diff --git a/agent/mibgroup/disman/event/mteObjectsTable.c b/agent/mibgroup/disman/event/mteObjectsTable.c
index 96482e5..5843f58 100644
--- a/agent/mibgroup/disman/event/mteObjectsTable.c
+++ b/agent/mibgroup/disman/event/mteObjectsTable.c
@@ -309,6 +309,10 @@
                 }
             }
         }
+
+        /** set up to save persistent store */
+        snmp_store_needed(NULL);
+
         break;
     }
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/disman/event/mteTrigger.h b/agent/mibgroup/disman/event/mteTrigger.h
index 2b3eb48..19626b1 100644
--- a/agent/mibgroup/disman/event/mteTrigger.h
+++ b/agent/mibgroup/disman/event/mteTrigger.h
@@ -122,8 +122,8 @@
     /*
      * Column values for Existence tests (mteTriggerExistenceTable)
      */
-    char            mteTExTest;
-    char            mteTExStartup;
+    u_char          mteTExTest;
+    u_char          mteTExStartup;
     char            mteTExObjOwner[MTE_STR1_LEN+1];
     char            mteTExObjects[ MTE_STR1_LEN+1];
     char            mteTExEvOwner[ MTE_STR1_LEN+1];
diff --git a/agent/mibgroup/disman/event/mteTriggerConf.c b/agent/mibgroup/disman/event/mteTriggerConf.c
index c015e24..3ce9106 100644
--- a/agent/mibgroup/disman/event/mteTriggerConf.c
+++ b/agent/mibgroup/disman/event/mteTriggerConf.c
@@ -24,13 +24,16 @@
     /*
      * Register config handler for user-level (fixed) triggers ...
      */
-    snmpd_register_config_handler("monitor",
-                                   parse_mteMonitor,  NULL,
-                                  "triggername [-I] [-i OID | -o OID]* [-e event] expression ");
-    snmpd_register_config_handler("defaultMonitors",
-                                   parse_default_mteMonitors, NULL, "yes|no");
-    snmpd_register_config_handler("linkUpDownNotifications",
-                                   parse_linkUpDown_traps,    NULL, "yes|no");
+    snmpd_register_const_config_handler("monitor",
+                                        parse_mteMonitor,
+                                        NULL,
+                                        "triggername [-I] [-i OID | -o OID]* [-e event] expression ");
+    snmpd_register_const_config_handler("defaultMonitors",
+                                        parse_default_mteMonitors,
+                                        NULL, "yes|no");
+    snmpd_register_const_config_handler("linkUpDownNotifications",
+                                        parse_linkUpDown_traps,
+                                        NULL, "yes|no");
 
     /*
      * ... for persistent storage of various event table entries ...
@@ -140,11 +143,11 @@
 
 
 void
-parse_mteMonitor(const char *token, char *line)
+parse_mteMonitor(const char *token, const char *line)
 {
     char   buf[  SPRINT_MAX_LEN];
     char   tname[MTE_STR1_LEN+1];
-    char  *cp;
+    const char  *cp;
     long   test = 0;
 
     char   ename[MTE_STR1_LEN+1];
@@ -163,7 +166,7 @@
     char   oid_name_buf[SPRINT_MAX_LEN];
     oid    name_buf[MAX_OID_LEN];
     size_t name_buf_len;
-    long   op    = 0;
+    u_char op    = 0;
     long   value = 0;
 
     struct mteObject  *object;
@@ -183,9 +186,9 @@
     memset( buf,   0, sizeof(buf));
     memset( tname, 0, sizeof(tname));
     memset( ename, 0, sizeof(ename));
-    for (cp = copy_nword(line, buf, SPRINT_MAX_LEN);
+    for (cp = copy_nword_const(line, buf, SPRINT_MAX_LEN);
          ;
-         cp = copy_nword(cp,   buf, SPRINT_MAX_LEN)) {
+         cp = copy_nword_const(cp,   buf, SPRINT_MAX_LEN)) {
 
         if ( buf[0] == '-' ) {
             switch (buf[1]) {
@@ -198,7 +201,7 @@
             case 'r':
             case 'u':
                 /* skip option parameter */
-                cp = skip_token( cp );
+                cp = skip_token_const( cp );
                 break;
             case 'D':
             case 'I':
@@ -212,7 +215,7 @@
                  *      Handle either case.
                  */
                 if (cp && *cp != '-')
-                    cp = skip_token( cp );
+                    cp = skip_token_const( cp );
                 break;
             case '0':
             case '1':
@@ -276,7 +279,7 @@
         * Otherwise the first token is the OID to be monitored.
         *   Skip it and look at the next token (if any).
         */
-        cp = copy_nword(cp,   buf, SPRINT_MAX_LEN);
+        cp = copy_nword_const(cp,   buf, SPRINT_MAX_LEN);
         if (cp) {
             /*
              * If this is a numeric value, then it'll be the MIN
@@ -284,7 +287,7 @@
              * Otherwise it'll be the operation field of a
              *   boolean test (the third form)
              */
-            if ( isdigit(buf[0]) || buf[0] == '-' )
+            if ( isdigit((unsigned char)(buf[0])) || buf[0] == '-' )
                 test = MTE_TRIGGER_THRESHOLD;
             else
                 test = MTE_TRIGGER_BOOLEAN;
@@ -315,9 +318,9 @@
      * Now start parsing again at the beginning of the directive,
      *   extracting the various options...
      */
-    for (cp = copy_nword(line, buf, SPRINT_MAX_LEN);
+    for (cp = copy_nword_const(line, buf, SPRINT_MAX_LEN);
          ;
-         cp = copy_nword(cp,   buf, SPRINT_MAX_LEN)) {
+         cp = copy_nword_const(cp,   buf, SPRINT_MAX_LEN)) {
 
         if (buf[0] == '-' ) {
             switch (buf[1]) {
@@ -332,7 +335,7 @@
                 memset( oid_name_buf, 0, sizeof(oid_name_buf));
                 memset(     name_buf, 0, sizeof(    name_buf));
                 name_buf_len = MAX_OID_LEN;
-                cp = copy_nword(cp, oid_name_buf, MTE_STR1_LEN);
+                cp = copy_nword_const(cp, oid_name_buf, MTE_STR1_LEN);
                 if (!snmp_parse_oid(oid_name_buf, name_buf, &name_buf_len)) {
                     snmp_log(LOG_ERR, "discontinuity OID: %s\n", oid_name_buf);
                     config_perror("unknown discontinuity OID");
@@ -346,7 +349,7 @@
                 break;
     
             case 'e':   /*  event */
-                cp     = copy_nword(cp, ename, MTE_STR1_LEN);
+                cp     = copy_nword_const(cp, ename, MTE_STR1_LEN);
                 break;
     
             case 'I':   /* value instance */
@@ -367,7 +370,7 @@
                     continue;
                 }
                 idx++;
-                cp     = copy_nword(cp, buf, SPRINT_MAX_LEN);
+                cp     = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
                 object = mteObjects_addOID( "snmpd.conf", tname, idx, buf, 0 );
                 if (!object) {
                     snmp_log(LOG_ERR, "Unknown payload OID: %s\n", buf);
@@ -379,7 +382,7 @@
     
             case 'o':   /*  object  */
                 idx++;
-                cp     = copy_nword(cp, buf, SPRINT_MAX_LEN);
+                cp     = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
                 object = mteObjects_addOID( "snmpd.conf", tname, idx, buf, 1 );
                 if (!object) {
                     snmp_log(LOG_ERR, "Unknown payload OID: %s\n", buf);
@@ -390,7 +393,7 @@
                 break;
     
             case 'r':   /*  repeat frequency */
-                cp     = copy_nword(cp, buf, SPRINT_MAX_LEN);
+                cp     = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
                 repeat = strtoul(buf, NULL, 0);
                 break;
     
@@ -406,7 +409,7 @@
                 break;
     
             case 'u':   /*  user */
-                cp     = copy_nword(cp, buf, SPRINT_MAX_LEN);
+                cp     = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
                 sess   = netsnmp_iquery_user_session(buf);
                 if (NULL == sess) {
                     snmp_log(LOG_ERR, "user name %s not found\n", buf);
@@ -447,7 +450,7 @@
                        } else {
                            op = MTE_EXIST_ABSENT;
                        }
-                       cp = copy_nword(cp, buf, SPRINT_MAX_LEN);
+                       cp = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
                     }
                     /*
                      * ... then extract the monitored OID.
@@ -455,7 +458,7 @@
                      */
                     memcpy(oid_name_buf, buf, SPRINT_MAX_LEN);
                     cp = NULL;  /* To terminate the processing loop */
-                    DEBUGMSGTL(("disman:event:conf", "%s: Exist (%s, %ld)\n",
+                    DEBUGMSGTL(("disman:event:conf", "%s: Exist (%s, %d)\n",
                                                      tname, oid_name_buf, op));
                     break;
     
@@ -465,7 +468,7 @@
                      *   identify the boolean operator ...
                      */
                     memcpy(oid_name_buf, buf, SPRINT_MAX_LEN);
-                    cp = copy_nword(cp, buf, SPRINT_MAX_LEN);
+                    cp = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
                     if (buf[0] == '!') {
                        op = MTE_BOOL_UNEQUAL;
                     } else if (buf[0] == '=') {
@@ -487,10 +490,10 @@
                      * ... then extract the comparison value.
                      *     (ignoring anything that remains)
                      */
-                    cp    = copy_nword(cp, buf, SPRINT_MAX_LEN);
+                    cp    = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
                     value = strtol(buf, NULL, 0);
                     cp = NULL;  /* To terminate the processing loop */
-                    DEBUGMSGTL(("disman:event:conf", "%s: Bool (%s, %ld, %ld)\n",
+                    DEBUGMSGTL(("disman:event:conf", "%s: Bool (%s, %d, %ld)\n",
                                               tname, oid_name_buf, op, value));
                     break;
     
@@ -501,7 +504,7 @@
                      */
                     memcpy(oid_name_buf, buf, SPRINT_MAX_LEN);
                     memset(         buf,   0, SPRINT_MAX_LEN);
-                    cp  = copy_nword(cp, buf, SPRINT_MAX_LEN);
+                    cp  = copy_nword_const(cp, buf, SPRINT_MAX_LEN);
                         value = strtol(buf, NULL, 0);
     
                     /*
@@ -689,7 +692,7 @@
             }
             value = strtol(cp, NULL, 0);
             entry->mteTThDFallValue  = value;
-            cp = skip_token(cp);
+            cp = skip_token_const(cp);
             value = strtol(cp, NULL, 0);
             entry->mteTThDRiseValue  = value;
             /*
@@ -729,7 +732,7 @@
 }
 
 void
-parse_linkUpDown_traps(const char *token, char *line)
+parse_linkUpDown_traps(const char *token, const char *line)
 {
     /*
      * XXX - This isn't strictly correct according to the
@@ -748,7 +751,7 @@
 
 
 void
-parse_default_mteMonitors(const char *token, char *line)
+parse_default_mteMonitors(const char *token, const char *line)
 {
     if (strncmp( line, "yes", 3) == 0) {
         DEBUGMSGTL(("disman:event:conf", "Registering default monitors\n"));
@@ -1268,7 +1271,7 @@
 store_mteTTable(int majorID, int minorID, void *serverarg, void *clientarg)
 {
     char            line[SNMP_MAXBUF];
-    char           *cptr;
+    char           *cptr, *cp;
     void           *vp;
     size_t          tint;
     netsnmp_tdata_row *row;
@@ -1298,12 +1301,12 @@
         strcat(line, "_mteTTable ");
         cptr = line + strlen(line);
 
-        vp   = entry->mteOwner;          tint = strlen( vp );
-        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
-        vp   = entry->mteTName;          tint = strlen( vp );
-        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
-        vp   = entry->mteTriggerComment; tint = strlen( vp );
-        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
+        cp   = entry->mteOwner;          tint = strlen( cp );
+        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
+        cp   = entry->mteTName;          tint = strlen( cp );
+        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
+        cp   = entry->mteTriggerComment; tint = strlen( cp );
+        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
         /*
          * ... (but skip the mteTriggerTest and
          *      assorted boolean flag fields)...
@@ -1311,16 +1314,16 @@
         vp   = entry->mteTriggerValueID;
         tint = entry->mteTriggerValueID_len;
         cptr = read_config_store_data(   ASN_OBJECT_ID, cptr, &vp,  &tint );
-        vp   = entry->mteTriggerTarget;  tint = strlen( vp );
-        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
-        vp   = entry->mteTriggerContext; tint = strlen( vp );
-        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
+        cp   = entry->mteTriggerTarget;  tint = strlen( cp );
+        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
+        cp   = entry->mteTriggerContext; tint = strlen( cp );
+        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
         tint = entry->mteTriggerFrequency;
         cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );
-        vp   = entry->mteTriggerOOwner;  tint = strlen( vp );
-        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
-        vp   = entry->mteTriggerObjects; tint = strlen( vp );
-        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
+        cp   = entry->mteTriggerOOwner;  tint = strlen( cp );
+        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
+        cp   = entry->mteTriggerObjects; tint = strlen( cp );
+        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
         tint = entry->flags &
                   (MTE_TRIGGER_FLAG_VWILD  |MTE_TRIGGER_FLAG_CWILD|
                    MTE_TRIGGER_FLAG_ENABLED|MTE_TRIGGER_FLAG_ACTIVE);
@@ -1337,10 +1340,10 @@
             strcat(line, "_mteTDTable ");
             cptr = line + strlen(line);
 
-            vp   = entry->mteOwner;          tint = strlen( vp );
-            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTName;          tint = strlen( vp );
-            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
+            cp   = entry->mteOwner;          tint = strlen( cp );
+            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTName;          tint = strlen( cp );
+            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
 
             vp   = entry->mteDeltaDiscontID;
             tint = entry->mteDeltaDiscontID_len;
@@ -1362,24 +1365,24 @@
             strcat(line, "_mteTExTable ");
             cptr = line + strlen(line);
 
-            vp   = entry->mteOwner;          tint = strlen( vp );
-            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTName;          tint = strlen( vp );
-            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
+            cp   = entry->mteOwner;          tint = strlen( cp );
+            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTName;          tint = strlen( cp );
+            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
 
             tint = (entry->mteTExTest    & 0xff) << 8;
             tint|= (entry->mteTExStartup & 0xff);
             cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );
 
-            vp   = entry->mteTExObjOwner;  tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTExObjects;   tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
+            cp   = entry->mteTExObjOwner;  tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTExObjects;   tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
 
-            vp   = entry->mteTExEvOwner;   tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTExEvent;     tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
+            cp   = entry->mteTExEvOwner;   tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTExEvent;     tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
 
             snmpd_store_config(line);
         }
@@ -1388,10 +1391,10 @@
             strcat(line, "_mteTBlTable ");
             cptr = line + strlen(line);
 
-            vp   = entry->mteOwner;          tint = strlen( vp );
-            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTName;          tint = strlen( vp );
-            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
+            cp   = entry->mteOwner;          tint = strlen( cp );
+            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTName;          tint = strlen( cp );
+            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
 
             tint =  entry->mteTBoolComparison;
             tint |= (entry->flags & MTE_TRIGGER_FLAG_BSTART);
@@ -1399,15 +1402,15 @@
             tint =  entry->mteTBoolValue;
             cptr = read_config_store_data(   ASN_INTEGER,   cptr, &tint, NULL );
 
-            vp   = entry->mteTBoolObjOwner; tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTBoolObjects; tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
+            cp   = entry->mteTBoolObjOwner; tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTBoolObjects; tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
 
-            vp   = entry->mteTBoolEvOwner; tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTBoolEvent;   tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
+            cp   = entry->mteTBoolEvOwner; tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTBoolEvent;   tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
 
             snmpd_store_config(line);
         }
@@ -1416,10 +1419,10 @@
             strcat(line, "_mteTThTable ");
             cptr = line + strlen(line);
 
-            vp   = entry->mteOwner;          tint = strlen( vp );
-            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTName;          tint = strlen( vp );
-            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
+            cp   = entry->mteOwner;          tint = strlen( cp );
+            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTName;          tint = strlen( cp );
+            cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
 
             cptr = read_config_store_data(ASN_UNSIGNED, cptr,
                                          &entry->mteTThStartup,    NULL );
@@ -1432,28 +1435,28 @@
             cptr = read_config_store_data(ASN_INTEGER,  cptr,
                                          &entry->mteTThDFallValue, NULL );
 
-            vp   = entry->mteTThObjOwner; tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTThObjects; tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
+            cp   = entry->mteTThObjOwner; tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTThObjects; tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
 
-            vp   = entry->mteTThRiseOwner; tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTThRiseEvent; tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTThFallOwner; tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTThFallEvent; tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
+            cp   = entry->mteTThRiseOwner; tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTThRiseEvent; tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTThFallOwner; tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTThFallEvent; tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
 
-            vp   = entry->mteTThDRiseOwner; tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTThDRiseEvent; tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTThDFallOwner; tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
-            vp   = entry->mteTThDFallEvent; tint = strlen( vp );
-            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &vp,  &tint );
+            cp   = entry->mteTThDRiseOwner; tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTThDRiseEvent; tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTThDFallOwner; tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
+            cp   = entry->mteTThDFallEvent; tint = strlen( cp );
+            cptr = read_config_store_data( ASN_OCTET_STR, cptr, &cp,  &tint );
 
             snmpd_store_config(line);
         }
diff --git a/agent/mibgroup/disman/event/mteTriggerConf.h b/agent/mibgroup/disman/event/mteTriggerConf.h
index 560c3ea..bfbcfcb 100644
--- a/agent/mibgroup/disman/event/mteTriggerConf.h
+++ b/agent/mibgroup/disman/event/mteTriggerConf.h
@@ -7,9 +7,9 @@
  * function declarations 
  */
 void            init_mteTriggerConf(void);
-void            parse_mteMonitor( const char *, char *);
-void            parse_default_mteMonitors( const char *, char *);
-void            parse_linkUpDown_traps(const char *, char *);
+void            parse_mteMonitor( const char *, const char *);
+void            parse_default_mteMonitors( const char *, const char *);
+void            parse_linkUpDown_traps(const char *, const char *);
 
 void            parse_mteTTable(  const char *, char *);
 void            parse_mteTDTable( const char *, char *);
diff --git a/agent/mibgroup/disman/event/mteTriggerTable.c b/agent/mibgroup/disman/event/mteTriggerTable.c
index 6239612..145f079 100644
--- a/agent/mibgroup/disman/event/mteTriggerTable.c
+++ b/agent/mibgroup/disman/event/mteTriggerTable.c
@@ -463,6 +463,10 @@
                 break;
             }
         }
+
+        /** set up to save persistent store */
+        snmp_store_needed(NULL);
+
         break;
     }
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/disman/expr/expExpressionConf.c b/agent/mibgroup/disman/expr/expExpressionConf.c
index 8831a57..0a5f3fd 100644
--- a/agent/mibgroup/disman/expr/expExpressionConf.c
+++ b/agent/mibgroup/disman/expr/expExpressionConf.c
@@ -229,7 +229,7 @@
 store_expETable(int majorID, int minorID, void *serverarg, void *clientarg)
 {
     char                  line[SNMP_MAXBUF];
-    char                 *cptr;
+    char                 *cptr, *cp;
     void                 *vp;
     size_t                tint;
     netsnmp_tdata_row    *row;
@@ -259,17 +259,17 @@
         strcat(line, "_expETable ");
         cptr = line + strlen(line);
 
-        vp   = entry->expOwner;          tint = strlen( vp );
-        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
-        vp   = entry->expName;           tint = strlen( vp );
-        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
+        cp   = entry->expOwner;          tint = strlen( cp );
+        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
+        cp   = entry->expName;           tint = strlen( cp );
+        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
 
-        vp   = entry->expExpression;     tint = strlen( vp );
-        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
+        cp   = entry->expExpression;     tint = strlen( cp );
+        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
         tint = entry->expValueType;
         cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );
-        vp   = entry->expComment;        tint = strlen( vp );
-        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
+        cp   = entry->expComment;        tint = strlen( cp );
+        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
         tint = entry->expDeltaInterval;
         cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );
 
diff --git a/agent/mibgroup/disman/expr/expObjectConf.c b/agent/mibgroup/disman/expr/expObjectConf.c
index 6e18c22..c75c934 100644
--- a/agent/mibgroup/disman/expr/expObjectConf.c
+++ b/agent/mibgroup/disman/expr/expObjectConf.c
@@ -115,7 +115,7 @@
 store_expOTable(int majorID, int minorID, void *serverarg, void *clientarg)
 {
     char                  line[SNMP_MAXBUF];
-    char                 *cptr;
+    char                 *cptr, *cp;
     void                 *vp;
     size_t                tint;
     netsnmp_tdata_row    *row;
@@ -145,10 +145,10 @@
         strcat(line, "_expOTable ");
         cptr = line + strlen(line);
 
-        vp   = entry->expOwner;          tint = strlen( vp );
-        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
-        vp   = entry->expName;           tint = strlen( vp );
-        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &vp,  &tint );
+        cp   = entry->expOwner;          tint = strlen( cp );
+        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
+        cp   = entry->expName;           tint = strlen( cp );
+        cptr = read_config_store_data(   ASN_OCTET_STR, cptr, &cp,  &tint );
         tint = entry->expObjectIndex;
         cptr = read_config_store_data(   ASN_UNSIGNED,  cptr, &tint, NULL );
 
diff --git a/agent/mibgroup/disman/expr/expValueTable.c b/agent/mibgroup/disman/expr/expValueTable.c
index 2fdb4fc..d74dbd1 100644
--- a/agent/mibgroup/disman/expr/expValueTable.c
+++ b/agent/mibgroup/disman/expr/expValueTable.c
@@ -124,7 +124,7 @@
         }
         if ( vp->val.objid[0] != 0 ) {
             DEBUGMSGTL(( "disman:expr:val",
-                         "non-zero instance (%d)\n", vp->val.objid[0]));
+                         "non-zero instance (%" NETSNMP_PRIo "d)\n", vp->val.objid[0]));
             return NULL;  /* Invalid instance */
         }
 
@@ -158,7 +158,7 @@
          */
         if ( vp->val_len > 0 && vp->val.objid[0] != 0 ) {
             DEBUGMSGTL(( "disman:expr:val",
-                         "non-zero next instance (%d)\n", vp->val.objid[0]));
+                         "non-zero next instance (%" NETSNMP_PRIo "d)\n", vp->val.objid[0]));
             return NULL;        /* All valid instances start with .0 */
         }
         plen = exp->expPrefix_len;
diff --git a/agent/mibgroup/disman/expression/expExpressionTable.c b/agent/mibgroup/disman/expression/expExpressionTable.c
index 4abef99..53ca52a 100644
--- a/agent/mibgroup/disman/expression/expExpressionTable.c
+++ b/agent/mibgroup/disman/expression/expExpressionTable.c
@@ -582,6 +582,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -666,6 +667,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -755,6 +757,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -839,6 +842,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1163,6 +1167,7 @@
                 StorageTmp->have_copied_auth_info = 1;
             }
         }
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/disman/expression/expObjectTable.c b/agent/mibgroup/disman/expression/expObjectTable.c
index 857adee..f61ac1f 100644
--- a/agent/mibgroup/disman/expression/expObjectTable.c
+++ b/agent/mibgroup/disman/expression/expObjectTable.c
@@ -575,6 +575,7 @@
          * previous values, as these are from a different object?  
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -655,6 +656,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -736,7 +738,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
-
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -833,6 +835,7 @@
          * previous values, as these are from a different object?  
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -916,7 +919,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
-
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1000,7 +1003,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
-
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1095,6 +1098,7 @@
          * previous values, as these are from a different object?  
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1179,7 +1183,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
-
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1450,6 +1454,7 @@
                 StorageTmp->expObjectEntryStatus = RS_NOTINSERVICE;
             }
         }
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/disman/mteObjectsTable.c b/agent/mibgroup/disman/mteObjectsTable.c
index 6a479dd..786eee3 100644
--- a/agent/mibgroup/disman/mteObjectsTable.c
+++ b/agent/mibgroup/disman/mteObjectsTable.c
@@ -425,6 +425,9 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+
+        snmp_store_needed(NULL);
+
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -509,6 +512,8 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
 
+        snmp_store_needed(NULL);
+
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -777,6 +782,8 @@
                 StorageTmp->mteObjectsEntryStatus = RS_NOTINSERVICE;
             }
         }
+        snmp_store_needed(NULL);
+
         break;
     }
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/disman/mteTriggerTable.c b/agent/mibgroup/disman/mteTriggerTable.c
index 3e4a775..c260d12 100644
--- a/agent/mibgroup/disman/mteTriggerTable.c
+++ b/agent/mibgroup/disman/mteTriggerTable.c
@@ -1606,6 +1606,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1693,6 +1694,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1775,7 +1777,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
-
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1870,6 +1872,7 @@
          * previous values, as these are from a different object?  
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1953,7 +1956,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
-
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2043,6 +2046,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2132,6 +2136,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2215,7 +2220,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
-
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2302,6 +2307,7 @@
             StorageTmp->mteTriggerEntryStatus == RS_ACTIVE)
             mte_enable_trigger(StorageTmp);
 
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2391,6 +2397,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2480,6 +2487,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2568,7 +2576,7 @@
         else if (StorageTmp->mteTriggerEnabled == MTETRIGGERENABLED_FALSE)
             mte_disable_trigger(StorageTmp);
 
-
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2899,6 +2907,7 @@
             StorageTmp->mteTriggerEnabled == MTETRIGGERENABLED_TRUE &&
             StorageTmp->mteTriggerEntryStatus == RS_ACTIVE)
             mte_enable_trigger(StorageTmp);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/disman/nslookup/lookupCtlTable.c b/agent/mibgroup/disman/nslookup/lookupCtlTable.c
index 0eb5c16..3cd9624 100644
--- a/agent/mibgroup/disman/nslookup/lookupCtlTable.c
+++ b/agent/mibgroup/disman/nslookup/lookupCtlTable.c
@@ -6,7 +6,6 @@
  *File Name:lookupCtlTable.c
  *File Description:Rows of the lookupCtlTable MIB add , delete and read.Rows of lookupResultsTable
  *              MIB add and delete.
- 
  *
  *Current Version:1.0
  *Author:ChenJing
@@ -16,33 +15,29 @@
 /*
  * This should always be included first before anything else 
  */
-#if HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if HAVE_STRING_H
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-
-#include <netdb.h>
-#include <netinet/in.h>
-
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <arpa/inet.h>
-
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
+#include <arpa/inet.h>
+#include <netdb.h>
+
 #include "lookupCtlTable.h"
 #include "lookupResultsTable.h"
 #include "header_complex.h"
 
+#ifndef INETADDRESSTYPE_ENUMS
+#define INETADDRESSTYPE_ENUMS
+
+#define INETADDRESSTYPE_UNKNOWN  0
+#define INETADDRESSTYPE_IPV4     1
+#define INETADDRESSTYPE_IPV6     2
+#define INETADDRESSTYPE_IPV4Z    3
+#define INETADDRESSTYPE_IPV6Z    4
+#define INETADDRESSTYPE_DNS     16
+
+#endif                          /* INETADDRESSTYPE_ENUMS */
+
 /*
  *For discontinuity checking.
  */
@@ -53,7 +48,7 @@
 
 struct variable2 lookupCtlTable_variables[] = {
     /*
-     * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix 
+     * magic number        , variable type , ro/rw , callback fn  , L, oidsuffix
      */
     {COLUMN_LOOKUPCTLTARGETADDRESSTYPE, ASN_INTEGER, NETSNMP_OLDAPI_RWRITE,
      var_lookupCtlTable, 2, {1, 3}},
@@ -74,7 +69,6 @@
  * global storage of our data, saved in and configured by header_complex() 
  */
 
-
 struct header_complex_index *lookupCtlTableStorage = NULL;
 struct header_complex_index *lookupResultsTableStorage = NULL;
 
@@ -82,7 +76,6 @@
 int modify_lookupCtlOperStatus(struct lookupTable_data *thedata, long val);
 int modify_lookupCtlRc(struct lookupTable_data *thedata, long val);
 
-
 void
 init_lookupCtlTable(void)
 {
@@ -115,11 +108,12 @@
     struct lookupTable_data *StorageNew = NULL;
     StorageNew = SNMP_MALLOC_STRUCT(lookupTable_data);
     if (StorageNew == NULL) {
+        snmp_log(LOG_ERR, "Out in memory in nslookup-mib/create_lookupTable_date\n");
         exit(1);
     }
     StorageNew->lookupCtlTargetAddress = strdup("");
     StorageNew->lookupCtlTargetAddressLen = 0;
-    StorageNew->lookupCtlOperStatus = 2l;
+    StorageNew->lookupCtlOperStatus = 2L;
     StorageNew->lookupCtlTime = 0;
     StorageNew->storagetype = ST_NONVOLATILE;
     return StorageNew;
@@ -133,16 +127,17 @@
 {
     netsnmp_variable_list *vars = NULL;
 
-
     DEBUGMSGTL(("lookupCtlTable", "adding data...  "));
     /*
      * add the index variables to the varbind list, which is 
      * used by header_complex to index the data 
      */
-
-
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->lookupCtlOwnerIndex, thedata->lookupCtlOwnerIndexLen);   /* lookupCtlOwnerIndex */
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->lookupCtlOperationName, thedata->lookupCtlOperationNameLen);     /* lookupCtlOperationName */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
+        (char *) thedata->lookupCtlOwnerIndex,
+        thedata->lookupCtlOwnerIndexLen);
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
+        (char *) thedata->lookupCtlOperationName,
+        thedata->lookupCtlOperationNameLen);
 
 
     if (header_complex_add_data(&lookupCtlTableStorage, vars, thedata) ==
@@ -164,10 +159,15 @@
     p = thedata->ResultsTable;
     if (thedata->ResultsTable != NULL)
         do {
-            snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR, (char *) p->lookupCtlOwnerIndex, p->lookupCtlOwnerIndexLen);  /* lookupCtlOwnerIndex */
-            snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR, (char *) p->lookupCtlOperationName, p->lookupCtlOperationNameLen);    /* lookupCtlOperationName */
-            snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_UNSIGNED, (char *) &p->lookupResultsIndex, sizeof(p->lookupResultsIndex));       /* lookupResultsIndex */
-
+            snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR,
+                (char *) p->lookupCtlOwnerIndex,
+                p->lookupCtlOwnerIndexLen);
+            snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR,
+                (char *) p->lookupCtlOperationName,
+                p->lookupCtlOperationNameLen);
+            snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_UNSIGNED,
+                (char *) &p->lookupResultsIndex,
+                sizeof(p->lookupResultsIndex));
 
             DEBUGMSGTL(("lookupResultsTable", "adding data...  "));
             /*
@@ -185,7 +185,6 @@
             p = p->next;
         } while (p != NULL);
 
-
     DEBUGMSGTL(("lookupResultsTable", "done.\n"));
     return SNMPERR_SUCCESS;
 }
@@ -222,8 +221,7 @@
 parse_lookupCtlTable(const char *token, char *line)
 {
     size_t          tmpint;
-    struct lookupTable_data *StorageTmp =
-        SNMP_MALLOC_STRUCT(lookupTable_data);
+    struct lookupTable_data *StorageTmp = SNMP_MALLOC_STRUCT(lookupTable_data);
 
     DEBUGMSGTL(("lookupCtlTable", "parsing config...  "));
 
@@ -306,10 +304,8 @@
     struct lookupTable_data *StorageTmp;
     struct header_complex_index *hcindex;
 
-
     DEBUGMSGTL(("lookupCtlTable", "storing data...  "));
 
-
     for (hcindex = lookupCtlTableStorage; hcindex != NULL;
          hcindex = hcindex->next) {
         StorageTmp = (struct lookupTable_data *) hcindex->data;
@@ -319,7 +315,6 @@
             strcat(line, "lookupCtlTable ");
             cptr = line + strlen(line);
 
-
             cptr =
                 read_config_store_data(ASN_OCTET_STR, cptr,
                                        &StorageTmp->lookupCtlOwnerIndex,
@@ -356,9 +351,6 @@
                 read_config_store_data(ASN_INTEGER, cptr,
                                        &StorageTmp->lookupCtlRowStatus,
                                        &tmpint);
-
-
-
             snmpd_store_config(line);
         }
     }
@@ -380,8 +372,6 @@
                    size_t *length,
                    int exact, size_t *var_len, WriteMethod ** write_method)
 {
-
-
     struct lookupTable_data *StorageTmp = NULL;
 
     /*
@@ -399,8 +389,6 @@
      * this is where we do the value assignments for the mib results.
      */
     switch (vp->magic) {
-
-
     case COLUMN_LOOKUPCTLTARGETADDRESSTYPE:
         *write_method = write_lookupCtlTargetAddressType;
         *var_len = sizeof(StorageTmp->lookupCtlTargetAddressType);
@@ -409,28 +397,23 @@
     case COLUMN_LOOKUPCTLTARGETADDRESS:
         *write_method = write_lookupCtlTargetAddress;
         *var_len = (StorageTmp->lookupCtlTargetAddressLen);
-
         return (u_char *) StorageTmp->lookupCtlTargetAddress;
 
     case COLUMN_LOOKUPCTLOPERSTATUS:
         *var_len = sizeof(StorageTmp->lookupCtlOperStatus);
-
         return (u_char *) & StorageTmp->lookupCtlOperStatus;
 
     case COLUMN_LOOKUPCTLTIME:
         *var_len = sizeof(StorageTmp->lookupCtlTime);
-
         return (u_char *) & StorageTmp->lookupCtlTime;
 
     case COLUMN_LOOKUPCTLRC:
         *var_len = sizeof(StorageTmp->lookupCtlRc);
-
         return (u_char *) & StorageTmp->lookupCtlRc;
 
     case COLUMN_LOOKUPCTLROWSTATUS:
         *write_method = write_lookupCtlRowStatus;
         *var_len = sizeof(StorageTmp->lookupCtlRowStatus);
-
         return (u_char *) & StorageTmp->lookupCtlRowStatus;
 
     default:
@@ -440,28 +423,67 @@
 }
 
 
+static struct lookupResultsTable_data *
+add_result(struct lookupTable_data *item, int index,
+        int iatype, const void *data, size_t data_len)
+{
+    struct lookupResultsTable_data *temp;
+    temp = SNMP_MALLOC_STRUCT(lookupResultsTable_data);
+    if (temp == NULL) {
+        snmp_log(LOG_ERR, "Out of memory in nslookup-mib/run_lookup\n");
+        return NULL;
+    }
+    temp->lookupResultsIndex = index;
+    temp->next = NULL;
+
+    temp->lookupCtlOwnerIndex = malloc(item->lookupCtlOwnerIndexLen + 1);
+    if (temp->lookupCtlOwnerIndex == NULL) {
+        snmp_log(LOG_ERR, "Out of memory in nslookup-mib/run_lookup\n");
+        free(temp);
+        return NULL;
+    }
+    memcpy(temp->lookupCtlOwnerIndex,
+           item->lookupCtlOwnerIndex,
+           item->lookupCtlOwnerIndexLen + 1);
+    temp->lookupCtlOwnerIndex[item->lookupCtlOwnerIndexLen] = '\0';
+    temp->lookupCtlOwnerIndexLen = item->lookupCtlOwnerIndexLen;
+
+    temp->lookupCtlOperationName = malloc(item->lookupCtlOperationNameLen + 1);
+    if (temp->lookupCtlOperationName == NULL) {
+        snmp_log(LOG_ERR, "Out of memory in nslookup-mib/run_lookup\n");
+        free(temp->lookupCtlOwnerIndex);
+        free(temp);
+        return NULL;
+    }
+    memcpy(temp->lookupCtlOperationName,
+           item->lookupCtlOperationName,
+           item->lookupCtlOperationNameLen + 1);
+    temp->lookupCtlOperationName[item->lookupCtlOperationNameLen] = '\0';
+    temp->lookupCtlOperationNameLen = item->lookupCtlOperationNameLen;
+
+    temp->lookupResultsAddressType = iatype;
+    temp->lookupResultsAddress = malloc(data_len + 1);
+    memcpy(temp->lookupResultsAddress, data, data_len);
+    temp->lookupResultsAddress[data_len] = '\0';
+    temp->lookupResultsAddressLen = data_len;
+    if (!item->ResultsTable)
+        item->ResultsTable = temp;
+
+    return temp;
+}
+
 void
 run_lookup(struct lookupTable_data *item)
 {
-
     long            addressType;
     char           *address = NULL;
     size_t          addresslen;
     struct lookupResultsTable_data *current = NULL;
     struct lookupResultsTable_data *temp = NULL;
-    int             i = 0, n = 1, t = 0;
-
-    /* for ipv4,ipv6 */
-    unsigned int    addr_in, addr_in6;
-    struct hostent *lookup = NULL;
+    int             i = 0, n = 1;
 
     struct timeval  tpstart, tpend;
-    unsigned long   timeuse, timeuse4, timeuse6;
-
-    /* for dns */
-
-    struct in_addr  a;
-    struct in6_addr a6;
+    unsigned long   timeuse, timeuse4 = 0, timeuse6 = 0;
 
     if (item == NULL)
         return;
@@ -472,454 +494,274 @@
     memcpy(address, item->lookupCtlTargetAddress, addresslen + 1);
     address[addresslen] = '\0';
 
-    if (addressType == 1) {
-        addr_in = inet_addr(address);
-        if (addr_in == 0xffffffff
-            && strcmp(address, "255.255.255.255") != 0) {
+    if (addressType == INETADDRESSTYPE_IPV4) {
+        struct in_addr addr_in;
+        struct hostent *lookup;
+
+        if (!inet_aton(address, &addr_in)) {
             DEBUGMSGTL(("lookupResultsTable", "Invalid argument: %s\n",
                         address));
+            modify_lookupCtlRc(item, 99);
             return;
         }
 
         gettimeofday(&tpstart, NULL);
-        lookup = gethostbyaddr((char *) &addr_in, 4, AF_INET);
+        lookup = gethostbyaddr(&addr_in, sizeof(addr_in), AF_INET);
         gettimeofday(&tpend, NULL);
         timeuse = 1000000 * (tpend.tv_sec - tpstart.tv_sec) +
             tpend.tv_usec - tpstart.tv_usec;
         timeuse /= 1000;
         modify_lookupCtlTime(item, timeuse);
-        modify_lookupCtlOperStatus(item, 3l);
+        modify_lookupCtlOperStatus(item, 3L);
 
         if (lookup == NULL) {
             DEBUGMSGTL(("lookupCtlTable",
                         "Can't get a network host entry for ipv4 address: %s\n",
                         address));
-            modify_lookupCtlRc(item, 1l);
+            modify_lookupCtlRc(item, h_errno);
             return;
         } else {
-            modify_lookupCtlRc(item, 0l);
+            modify_lookupCtlRc(item, 0L);
             if (lookup->h_name != NULL) {
-                current = temp =
-                    SNMP_MALLOC_STRUCT(lookupResultsTable_data);
-                if (temp == NULL) {
-                    exit(1);
-                }
-                temp->lookupResultsIndex = n;
-
-                temp->lookupCtlOwnerIndex =
-                    (char *) malloc(item->lookupCtlOwnerIndexLen + 1);
-                if (temp->lookupCtlOwnerIndex == NULL) {
-                    exit(1);
-                }
-                memcpy(temp->lookupCtlOwnerIndex,
-                       item->lookupCtlOwnerIndex,
-                       item->lookupCtlOwnerIndexLen + 1);
-                temp->lookupCtlOwnerIndex[item->lookupCtlOwnerIndexLen] =
-                    '\0';
-                temp->lookupCtlOwnerIndexLen =
-                    item->lookupCtlOwnerIndexLen;
-
-                temp->lookupCtlOperationName =
-                    (char *) malloc(item->lookupCtlOperationNameLen + 1);
-                if (temp->lookupCtlOperationName == NULL) {
-                    exit(1);
-                }
-                memcpy(temp->lookupCtlOperationName,
-                       item->lookupCtlOperationName,
-                       item->lookupCtlOperationNameLen + 1);
-                temp->lookupCtlOperationName[item->
-                                             lookupCtlOperationNameLen] =
-                    '\0';
-                temp->lookupCtlOperationNameLen =
-                    item->lookupCtlOperationNameLen;
-
-                temp->lookupResultsAddressType = 16;
-                temp->lookupResultsAddress =
-                    (char *) malloc(strlen(lookup->h_name) + 1);
-                memcpy(temp->lookupResultsAddress, lookup->h_name,
-                       strlen(lookup->h_name) + 1);
-                temp->lookupResultsAddress[strlen(lookup->h_name)] = '\0';
-                temp->lookupResultsAddressLen = strlen(lookup->h_name);
-                item->ResultsTable = temp;
+                current = temp = add_result(item, n, INETADDRESSTYPE_DNS,
+                            lookup->h_name, strlen(lookup->h_name));
                 n = n + 1;
-
             }
 
             i = 0;
             while (lookup->h_aliases[i]) {
-                temp = SNMP_MALLOC_STRUCT(lookupResultsTable_data);
-                if (temp == NULL) {
-                    exit(1);
-                }
-                temp->lookupCtlOwnerIndex =
-                    (char *) malloc(item->lookupCtlOwnerIndexLen + 1);
-                if (temp->lookupCtlOwnerIndex == NULL) {
-                    exit(1);
-                }
-                memcpy(temp->lookupCtlOwnerIndex,
-                       item->lookupCtlOwnerIndex,
-                       item->lookupCtlOwnerIndexLen + 1);
-                temp->lookupCtlOwnerIndex[item->lookupCtlOwnerIndexLen] =
-                    '\0';
-                temp->lookupCtlOwnerIndexLen =
-                    item->lookupCtlOwnerIndexLen;
-
-                temp->lookupCtlOperationName =
-                    (char *) malloc(item->lookupCtlOperationNameLen + 1);
-                if (temp->lookupCtlOperationName == NULL) {
-                    exit(1);
-                }
-                memcpy(temp->lookupCtlOperationName,
-                       item->lookupCtlOperationName,
-                       item->lookupCtlOperationNameLen + 1);
-                temp->lookupCtlOperationName[item->
-                                             lookupCtlOperationNameLen] =
-                    '\0';
-                temp->lookupCtlOperationNameLen =
-                    item->lookupCtlOperationNameLen;
-
-                temp->lookupResultsIndex = n;
-                temp->lookupResultsAddressType = 16;
-                temp->lookupResultsAddress =
-                    (char *) malloc(strlen(lookup->h_aliases[i]) + 1);
-                memcpy(temp->lookupResultsAddress, lookup->h_aliases[i],
-                       strlen(lookup->h_aliases[i]) + 1);
-                temp->lookupResultsAddress[strlen(lookup->h_aliases[i])] =
-                    '\0';
-                temp->lookupResultsAddressLen =
-                    strlen(lookup->h_aliases[i]);
+                temp = add_result(item, n, INETADDRESSTYPE_DNS,
+                            lookup->h_aliases[i], strlen(lookup->h_aliases[i]));
                 current->next = temp;
                 current = temp;
                 i = i + 1;
                 n = n + 1;
             }
-            current->next = NULL;
-
         }
 
-
         if (item->ResultsTable != NULL)
             if (lookupResultsTable_add(item) != SNMPERR_SUCCESS)
                 DEBUGMSGTL(("lookupResultsTable",
                             "registered an entry error\n"));
-
         SNMP_FREE(address);
-        address = NULL;
         return;
     }
 
-    else if (addressType == 16) {
+    else if (addressType == INETADDRESSTYPE_DNS) {
+        struct hostent *lookup;
+#if HAVE_GETADDRINFO
+        int             res;
+        struct addrinfo *ais;
+        struct addrinfo hints = { 0, AF_INET6, SOCK_DGRAM };
+#endif
 
         gettimeofday(&tpstart, NULL);
         lookup = gethostbyname(address);
         gettimeofday(&tpend, NULL);
         timeuse4 = 1000000 * (tpend.tv_sec - tpstart.tv_sec) +
             tpend.tv_usec - tpstart.tv_usec;
-        timeuse4 /= 1000;
         if (lookup == NULL) {
             DEBUGMSGTL(("lookupCtlTable",
                         "Can't get a network host entry for %s\n",
                         address));
+            modify_lookupCtlRc(item, h_errno);
         } else {
-            while (*lookup->h_addr_list) {
-                memcpy(&a, *lookup->h_addr_list++, sizeof(a));
+            while (lookup->h_addr_list[i]) {
+                char buf[64];
+                int buflen;
 
-                temp = SNMP_MALLOC_STRUCT(lookupResultsTable_data);
-                if (temp == NULL) {
-                    exit(1);
-                }
-                temp->lookupResultsIndex = n;
-
-                temp->lookupCtlOwnerIndex =
-                    (char *) malloc(item->lookupCtlOwnerIndexLen + 1);
-                if (temp->lookupCtlOwnerIndex == NULL) {
-                    exit(1);
-                }
-                memcpy(temp->lookupCtlOwnerIndex,
-                       item->lookupCtlOwnerIndex,
-                       item->lookupCtlOwnerIndexLen + 1);
-                temp->lookupCtlOwnerIndex[item->lookupCtlOwnerIndexLen] =
-                    '\0';
-                temp->lookupCtlOwnerIndexLen =
-                    item->lookupCtlOwnerIndexLen;
-
-                temp->lookupCtlOperationName =
-                    (char *) malloc(item->lookupCtlOperationNameLen + 1);
-                if (temp->lookupCtlOperationName == NULL) {
-                    exit(1);
+                inet_ntop(lookup->h_addrtype, lookup->h_addr_list[i], buf, sizeof(buf));
+                buflen = strlen(buf);
+                switch (lookup->h_addrtype) {
+                case AF_INET:
+                    temp = add_result(item, n, INETADDRESSTYPE_IPV4, buf, buflen);
+                    break;
+                case AF_INET6:
+                    temp = add_result(item, n, INETADDRESSTYPE_IPV6, buf, buflen);
+                    break;
+                default:
+                    snmp_log(LOG_ERR, "nslookup-mib/run_lookup: Unknown address type %d\n", lookup->h_addrtype);
+                    temp = add_result(item, n, INETADDRESSTYPE_UNKNOWN, "", 0);
+                    break;
                 }
 
-                memcpy(temp->lookupCtlOperationName,
-                       item->lookupCtlOperationName,
-                       item->lookupCtlOperationNameLen + 1);
-                temp->lookupCtlOperationName[item->
-                                             lookupCtlOperationNameLen] =
-                    '\0';
-                temp->lookupCtlOperationNameLen =
-                    item->lookupCtlOperationNameLen;
-
-                temp->lookupResultsAddressType = 1;
-                temp->lookupResultsAddress =
-                    (char *) malloc(strlen(inet_ntoa(a)) + 1);
-                if (temp->lookupResultsAddress == NULL) {
-                    exit(1);
-                }
-                memcpy(temp->lookupResultsAddress, inet_ntoa(a),
-                       strlen(inet_ntoa(a)) + 1);
-                temp->lookupResultsAddress[strlen(inet_ntoa(a))] = '\0';
-                temp->lookupResultsAddressLen = strlen(inet_ntoa(a));
                 if (n == 1)
                     item->ResultsTable = temp;
                 else
                     current->next = temp;
                 current = temp;
                 n = n + 1;
-
+                i = i + 1;
             }
-            current->next = NULL;
-            t = n;
-
         }
 
-        struct hostent *hp;
-        char            pa[64];
-        char           *hostname = NULL;
-
+#if HAVE_GETADDRINFO
         gettimeofday(&tpstart, NULL);
-        hp = gethostbyname2(address, AF_INET6);
+        res = getaddrinfo(address, NULL, &hints, &ais);
         gettimeofday(&tpend, NULL);
         timeuse6 = 1000000 * (tpend.tv_sec - tpstart.tv_sec) +
             tpend.tv_usec - tpstart.tv_usec;
-        timeuse6 /= 1000;
 
-        if (hp == NULL) {
+        if (res != 0) {
             DEBUGMSGTL(("lookupCtlTable",
                         "Can't get a ipv6 network host entry for %s\n",
                         address));
+            modify_lookupCtlRc(item, res);
         } else {
-            while (*hp->h_addr_list) {
-                memmove((caddr_t) & a6, *hp->h_addr_list++, 16);
-                hostname = (char *) hp->h_name;
+            struct addrinfo *aip = ais;
+            while (aip) {
+                char buf[64];
+                int buflen;
 
-                temp = SNMP_MALLOC_STRUCT(lookupResultsTable_data);
-                if (temp == NULL) {
-                    exit(1);
+                switch (aip->ai_family) {
+                case AF_INET:
+                    inet_ntop(aip->ai_family,
+                        &((struct sockaddr_in *)aip->ai_addr)->sin_addr,
+                        buf, sizeof(buf));
+                    buflen = strlen(buf);
+                    temp = add_result(item, n, INETADDRESSTYPE_IPV4, buf, buflen);
+                    break;
+                case AF_INET6:
+                    inet_ntop(aip->ai_family,
+                        &((struct sockaddr_in6 *)aip->ai_addr)->sin6_addr,
+                        buf, sizeof(buf));
+                    buflen = strlen(buf);
+                    temp = add_result(item, n, INETADDRESSTYPE_IPV6, buf, buflen);
+                    break;
+                default:
+                    snmp_log(LOG_ERR, "nslookup-mib/run_lookup: Unknown address type %d\n", aip->ai_family);
+                    temp = add_result(item, n, INETADDRESSTYPE_UNKNOWN, "", 0);
+                    break;
                 }
-                temp->lookupResultsIndex = n;
+                DEBUGMSGTL(("lookupCtlTable", "Adding %d %s\n", n, buf));
 
-                temp->lookupCtlOwnerIndex =
-                    (char *) malloc(item->lookupCtlOwnerIndexLen + 1);
-                if (temp->lookupCtlOwnerIndex == NULL) {
-                    exit(1);
-                }
-                memcpy(temp->lookupCtlOwnerIndex,
-                       item->lookupCtlOwnerIndex,
-                       item->lookupCtlOwnerIndexLen + 1);
-                temp->lookupCtlOwnerIndex[item->lookupCtlOwnerIndexLen] =
-                    '\0';
-                temp->lookupCtlOwnerIndexLen =
-                    item->lookupCtlOwnerIndexLen;
-
-                temp->lookupCtlOperationName =
-                    (char *) malloc(item->lookupCtlOperationNameLen + 1);
-                if (temp->lookupCtlOperationName == NULL) {
-                    exit(1);
-                }
-                memcpy(temp->lookupCtlOperationName,
-                       item->lookupCtlOperationName,
-                       item->lookupCtlOperationNameLen + 1);
-                temp->lookupCtlOperationName[item->
-                                             lookupCtlOperationNameLen] =
-                    '\0';
-                temp->lookupCtlOperationNameLen =
-                    item->lookupCtlOperationNameLen;
-
-                temp->lookupResultsAddressType = 2;
-                temp->lookupResultsAddress =
-                    (char *)
-                    malloc(strlen(inet_ntop(AF_INET6, &a6, pa, 64)) + 1);
-                memcpy(temp->lookupResultsAddress,
-                       inet_ntop(AF_INET6, &a6, pa, 64),
-                       strlen(inet_ntop(AF_INET6, &a6, pa, 64)) + 1);
-                temp->
-                    lookupResultsAddress[strlen
-                                         (inet_ntop
-                                          (AF_INET6, &a6, pa, 64))] = '\0';
-                temp->lookupResultsAddressLen =
-                    strlen(inet_ntop(AF_INET6, &a6, pa, 64));
                 if (n == 1)
                     item->ResultsTable = temp;
                 else
                     current->next = temp;
                 current = temp;
                 n = n + 1;
-
+                aip = aip->ai_next;
             }
-            current->next = NULL;
+            freeaddrinfo(ais);
         }
+#elif HAVE_GETHOSTBYNAME2
+        gettimeofday(&tpstart, NULL);
+        lookup = gethostbyname2(address, AF_INET6);
+        gettimeofday(&tpend, NULL);
+        timeuse6 = 1000000 * (tpend.tv_sec - tpstart.tv_sec) +
+            tpend.tv_usec - tpstart.tv_usec;
+
+        if (lookup == NULL) {
+            DEBUGMSGTL(("lookupCtlTable",
+                        "Can't get a ipv6 network host entry for %s\n",
+                        address));
+            modify_lookupCtlRc(item, h_errno);
+        } else {
+            i = 0;
+            while (lookup->h_addr_list[i]) {
+                char buf[64];
+                int buflen;
+
+                inet_ntop(lookup->h_addrtype, lookup->h_addr_list[i],
+                        buf, sizeof(buf));
+                buflen = strlen(buf);
+                switch (lookup->h_addrtype) {
+                case AF_INET:
+                    temp = add_result(item, n, INETADDRESSTYPE_IPV4, buf, buflen);
+                    break;
+                case AF_INET6:
+                    temp = add_result(item, n, INETADDRESSTYPE_IPV6, buf, buflen);
+                    break;
+                default:
+                    snmp_log(LOG_ERR, "nslookup-mib/run_lookup: Unknown address type %d\n", lookup->h_addrtype);
+                    temp = add_result(item, n, INETADDRESSTYPE_UNKNOWN, "", 0);
+                    break;
+                }
+                DEBUGMSGTL(("lookupCtlTable", "Adding %d %s\n", n, buf));
+
+                if (n == 1)
+                    item->ResultsTable = temp;
+                else
+                    current->next = temp;
+                current = temp;
+                n = n + 1;
+                i = i + 1;
+            }
+        }
+#endif
+
         timeuse = timeuse4 + timeuse6;
+        timeuse /= 1000;
         modify_lookupCtlTime(item, timeuse);
-        modify_lookupCtlOperStatus(item, 3l);
+        modify_lookupCtlOperStatus(item, 3L);
 
         if (item->ResultsTable != NULL) {
-
-            modify_lookupCtlRc(item, 0l);
+            modify_lookupCtlRc(item, 0L);
             if (lookupResultsTable_add(item) != SNMPERR_SUCCESS)
                 DEBUGMSGTL(("lookupResultsTable",
                             "registered an entry error\n"));
-        } else {
-            modify_lookupCtlRc(item, 1l);
         }
         SNMP_FREE(address);
-        address = NULL;
-
         return;
-
     }
 
+    else if (addressType == INETADDRESSTYPE_IPV6) {
+        struct in6_addr addr_in6;
+        struct hostent *lookup;
 
-    else if (addressType == 2) {
         if (inet_pton(AF_INET6, address, &addr_in6) == 1)
             DEBUGMSGTL(("lookupCtlTable", "success! \n"));
         else
             DEBUGMSGTL(("lookupCtlTable", "error! \n"));
 
-
         gettimeofday(&tpstart, NULL);
-        lookup = gethostbyaddr((char *) &addr_in6, 16, AF_INET6);
+        lookup = gethostbyaddr(&addr_in6, sizeof(addr_in6), AF_INET6);
         gettimeofday(&tpend, NULL);
         timeuse = 1000000 * (tpend.tv_sec - tpstart.tv_sec) +
             tpend.tv_usec - tpstart.tv_usec;
         timeuse /= 1000;
         modify_lookupCtlTime(item, timeuse);
-        modify_lookupCtlOperStatus(item, 3l);
+        modify_lookupCtlOperStatus(item, 3L);
 
         if (lookup == NULL) {
             DEBUGMSGTL(("lookupCtlTable",
                         "Can't get a network host entry for %s\n",
                         address));
-            modify_lookupCtlRc(item, 1l);
+            modify_lookupCtlRc(item, h_errno);
             return;
         } else {
-            modify_lookupCtlRc(item, 0l);
+            modify_lookupCtlRc(item, 0L);
             if (lookup->h_name != NULL) {
-                current = temp =
-                    SNMP_MALLOC_STRUCT(lookupResultsTable_data);
-                if (temp == NULL) {
-                    exit(1);
-                }
-                temp->lookupResultsIndex = n;
-
-                temp->lookupCtlOwnerIndex =
-                    (char *) malloc(item->lookupCtlOwnerIndexLen + 1);
-                if (temp->lookupCtlOwnerIndex == NULL) {
-                    exit(1);
-                }
-                memcpy(temp->lookupCtlOwnerIndex,
-                       item->lookupCtlOwnerIndex,
-                       item->lookupCtlOwnerIndexLen + 1);
-                temp->lookupCtlOwnerIndex[item->lookupCtlOwnerIndexLen] =
-                    '\0';
-                temp->lookupCtlOwnerIndexLen =
-                    item->lookupCtlOwnerIndexLen;
-
-                temp->lookupCtlOperationName =
-                    (char *) malloc(item->lookupCtlOperationNameLen + 1);
-                if (temp->lookupCtlOperationName == NULL) {
-                    exit(1);
-                }
-                memcpy(temp->lookupCtlOperationName,
-                       item->lookupCtlOperationName,
-                       item->lookupCtlOperationNameLen + 1);
-                temp->lookupCtlOperationName[item->
-                                             lookupCtlOperationNameLen] =
-                    '\0';
-                temp->lookupCtlOperationNameLen =
-                    item->lookupCtlOperationNameLen;
-
-                temp->lookupResultsAddressType = 16;
-                temp->lookupResultsAddress =
-                    (char *) malloc(strlen(lookup->h_name) + 1);
-                memcpy(temp->lookupResultsAddress, lookup->h_name,
-                       strlen(lookup->h_name) + 1);
-                temp->lookupResultsAddress[strlen(lookup->h_name)] = '\0';
-                temp->lookupResultsAddressLen = strlen(lookup->h_name);
-                item->ResultsTable = temp;
+                current = temp = add_result(item, n, INETADDRESSTYPE_DNS,
+                            lookup->h_name, strlen(lookup->h_name));
                 n = n + 1;
-
             }
 
             i = 0;
             while (lookup->h_aliases[i]) {
-                temp = SNMP_MALLOC_STRUCT(lookupResultsTable_data);
-                if (temp == NULL) {
-                    exit(1);
-                }
-                temp->lookupCtlOwnerIndex =
-                    (char *) malloc(item->lookupCtlOwnerIndexLen + 1);
-                if (temp->lookupCtlOwnerIndex == NULL) {
-                    exit(1);
-                }
-                memcpy(temp->lookupCtlOwnerIndex,
-                       item->lookupCtlOwnerIndex,
-                       item->lookupCtlOwnerIndexLen + 1);
-                temp->lookupCtlOwnerIndex[item->lookupCtlOwnerIndexLen] =
-                    '\0';
-                temp->lookupCtlOwnerIndexLen =
-                    item->lookupCtlOwnerIndexLen;
-
-                temp->lookupCtlOperationName =
-                    (char *) malloc(item->lookupCtlOperationNameLen + 1);
-                if (temp->lookupCtlOperationName == NULL) {
-                    exit(1);
-                }
-                memcpy(temp->lookupCtlOperationName,
-                       item->lookupCtlOperationName,
-                       item->lookupCtlOperationNameLen + 1);
-                temp->lookupCtlOperationName[item->
-                                             lookupCtlOperationNameLen] =
-                    '\0';
-                temp->lookupCtlOperationNameLen =
-                    item->lookupCtlOperationNameLen;
-
-                temp->lookupResultsIndex = n;
-                temp->lookupResultsAddressType = 16;
-                temp->lookupResultsAddress =
-                    (char *) malloc(strlen(lookup->h_aliases[i]) + 1);
-                if (temp->lookupResultsAddress == NULL) {
-                    exit(1);
-                }
-                memcpy(temp->lookupResultsAddress, lookup->h_aliases[i],
-                       strlen(lookup->h_aliases[i]) + 1);
-                temp->lookupResultsAddress[strlen(lookup->h_aliases[i])] =
-                    '\0';
-                temp->lookupResultsAddressLen =
-                    strlen(lookup->h_aliases[i]);
+                current = temp = add_result(item, n, INETADDRESSTYPE_DNS,
+                            lookup->h_aliases[i], strlen(lookup->h_aliases[i]));
                 current->next = temp;
                 current = temp;
                 i = i + 1;
                 n = n + 1;
-
             }
 
             if (item->ResultsTable != NULL)
                 current->next = NULL;
             else
                 current = NULL;
-
         }
 
-
         if (item->ResultsTable != NULL)
             if (lookupResultsTable_add(item) != SNMPERR_SUCCESS)
                 DEBUGMSGTL(("lookupResultsTable",
                             "registered an entry error\n"));
         SNMP_FREE(address);
-        address = NULL;
         return;
     } else {
         SNMP_FREE(address);
-        address = NULL;
         return;
     }
 }
@@ -931,8 +773,11 @@
     netsnmp_variable_list *vars = NULL;
     struct lookupTable_data *StorageTmp = NULL;
 
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->lookupCtlOwnerIndex, thedata->lookupCtlOwnerIndexLen);   /* lookupCtlOwnerIndex */
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->lookupCtlOperationName, thedata->lookupCtlOperationNameLen);     /* lookupCtlOperationName */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
+        (char *) thedata->lookupCtlOwnerIndex, thedata->lookupCtlOwnerIndexLen);
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
+        (char *) thedata->lookupCtlOperationName,
+        thedata->lookupCtlOperationNameLen);
 
 
     if ((StorageTmp =
@@ -956,8 +801,11 @@
     netsnmp_variable_list *vars = NULL;
     struct lookupTable_data *StorageTmp = NULL;
 
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->lookupCtlOwnerIndex, thedata->lookupCtlOwnerIndexLen);   /* lookupCtlOwnerIndex */
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->lookupCtlOperationName, thedata->lookupCtlOperationNameLen);     /* lookupCtlOperationName */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
+        (char *) thedata->lookupCtlOwnerIndex, thedata->lookupCtlOwnerIndexLen);
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
+        (char *) thedata->lookupCtlOperationName,
+        thedata->lookupCtlOperationNameLen);
 
 
     if ((StorageTmp =
@@ -981,8 +829,11 @@
     netsnmp_variable_list *vars = NULL;
     struct lookupTable_data *StorageTmp = NULL;
 
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->lookupCtlOwnerIndex, thedata->lookupCtlOwnerIndexLen);   /* lookupCtlOwnerIndex */
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->lookupCtlOperationName, thedata->lookupCtlOperationNameLen);     /* lookupCtlOperationName */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
+        (char *) thedata->lookupCtlOwnerIndex, thedata->lookupCtlOwnerIndexLen);
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
+        (char *) thedata->lookupCtlOperationName,
+        thedata->lookupCtlOperationNameLen);
 
 
     if ((StorageTmp =
@@ -1009,8 +860,11 @@
     oid             newoid[MAX_OID_LEN];
     size_t          newoid_len;
 
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->lookupCtlOwnerIndex, thedata->lookupCtlOwnerIndexLen);   /* lookupCtlOwnerIndex */
-    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR, (char *) thedata->lookupCtlOperationName, thedata->lookupCtlOperationNameLen);     /* lookupCtlOperationName */
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
+        (char *) thedata->lookupCtlOwnerIndex, thedata->lookupCtlOwnerIndexLen);
+    snmp_varlist_add_variable(&vars, NULL, 0, ASN_OCTET_STR,
+        (char *) thedata->lookupCtlOperationName,
+        thedata->lookupCtlOperationNameLen);
     memset(newoid, '\0', MAX_OID_LEN * sizeof(oid));
     header_complex_generate_oid(newoid, &newoid_len, NULL, 0, vars);
 
@@ -1075,32 +929,28 @@
         }
         break;
 
-
     case RESERVE2:
         /*
          * memory reseveration, final preparation... 
          */
         break;
 
-
     case FREE:
         /*
          * Release any resources that have been allocated 
          */
         break;
 
-
     case ACTION:
         /*
          * The variable has been stored in objid for
          * you to use, and you have just been asked to do something with
-         * it.  Note that anything done here must be reversable in the UNDO case 
+         * it.  Note that anything done here must be reversable in the UNDO case
          */
         tmpvar = StorageTmp->lookupCtlTargetAddressType;
         StorageTmp->lookupCtlTargetAddressType = *((long *) var_val);
         break;
 
-
     case UNDO:
         /*
          * Back out any changes made in the ACTION case 
@@ -1108,12 +958,15 @@
         StorageTmp->lookupCtlTargetAddressType = tmpvar;
         break;
 
-
     case COMMIT:
         /*
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+
+        /** set up to save persistent store */
+        snmp_store_needed(NULL);
+
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1156,37 +1009,32 @@
                      "write to lookupCtlTargetAddress not ASN_OCTET_STR\n");
             return SNMP_ERR_WRONGTYPE;
         }
-
         break;
 
-
     case RESERVE2:
         /*
          * memory reseveration, final preparation... 
          */
-
         break;
 
-
     case FREE:
         /*
          * Release any resources that have been allocated 
          */
-
         break;
 
-
     case ACTION:
         /*
          * The variable has been stored in long_ret for
          * you to use, and you have just been asked to do something with
-         * it.  Note that anything done here must be reversable in the UNDO case 
+         * it.  Note that anything done here must be reversable in the UNDO case
          */
         tmpvar = StorageTmp->lookupCtlTargetAddress;
         tmplen = StorageTmp->lookupCtlTargetAddressLen;
 
         if ((StorageTmp->lookupCtlTargetAddress =
              (char *) malloc(var_val_len + 1)) == NULL) {
+            snmp_log(LOG_ERR, "Out of memory in nslookup-mib/write_lookupCtlTargetAddress\n");
             exit(1);
         }
         memcpy(StorageTmp->lookupCtlTargetAddress, var_val, var_val_len);
@@ -1195,7 +1043,6 @@
 
         break;
 
-
     case UNDO:
         /*
          * Back out any changes made in the ACTION case 
@@ -1207,7 +1054,6 @@
 
         break;
 
-
     case COMMIT:
         /*
          * Things are working well, so it's now safe to make the change
@@ -1217,6 +1063,9 @@
         free(tmpvar);
         tmpvar = NULL;
 
+        /** set up to save persistent store */
+        snmp_store_needed(NULL);
+
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1224,9 +1073,6 @@
 
 
 
-
-
-
 int
 write_lookupCtlRowStatus(int action,
                          u_char * var_val,
@@ -1235,7 +1081,7 @@
                          u_char * statP, oid * name, size_t name_len)
 {
     struct lookupTable_data *StorageTmp = NULL;
-    static struct lookupTable_data *StorageNew, *StorageDel = NULL;
+    static struct lookupTable_data *StorageNew = NULL, *StorageDel = NULL;
     size_t          newlen =
         name_len - (sizeof(lookupCtlTable_variables_oid) / sizeof(oid) +
                     3 - 1);
@@ -1282,7 +1128,6 @@
              * ditch illegal values now 
              */
             if (set_value == RS_ACTIVE || set_value == RS_NOTINSERVICE) {
-
                 return SNMP_ERR_INCONSISTENTVALUE;
             }
 
@@ -1384,7 +1229,7 @@
              * XXX: fill in default row values here into StorageNew 
              */
 
-            StorageNew->lookupCtlTargetAddressType = 1; /* ipv4 */
+            StorageNew->lookupCtlTargetAddressType = INETADDRESSTYPE_IPV4;
 
             StorageNew->lookupCtlRowStatus = set_value;
 
@@ -1395,13 +1240,8 @@
              * XXX: free, zero vars, no longer needed? 
              */
         }
-
-
         break;
 
-
-
-
     case FREE:
         /*
          * XXX: free, zero vars 
@@ -1411,9 +1251,6 @@
          */
         break;
 
-
-
-
     case ACTION:
         /*
          * The variable has been stored in set_value for you to
@@ -1421,8 +1258,6 @@
          * it.  Note that anything done here must be reversable in
          * the UNDO case 
          */
-
-
         if (StorageTmp == NULL) {
             /*
              * row creation, so add it 
@@ -1431,11 +1266,9 @@
                 return SNMP_ERR_NOERROR;
             }
             if (StorageNew != NULL)
-#if 1
                 DEBUGMSGTL(("lookupCtlTable",
                             "write_lookupCtlRowStatus entering new=%d...  \n",
                             action));
-#endif
             lookupCtlTable_add(StorageNew);
             /*
              * XXX: ack, and if it is NULL? 
@@ -1467,9 +1300,6 @@
         }
         break;
 
-
-
-
     case UNDO:
         /*
          * Back out any changes made in the ACTION case 
@@ -1501,9 +1331,6 @@
         }
         break;
 
-
-
-
     case COMMIT:
         /*
          * Things are working well, so it's now safe to make the change
@@ -1517,15 +1344,9 @@
 
         if (StorageDel != NULL) {
             SNMP_FREE(StorageDel->lookupCtlOwnerIndex);
-            StorageDel->lookupCtlOwnerIndex = NULL;
             SNMP_FREE(StorageDel->lookupCtlOperationName);
-            StorageDel->lookupCtlOperationName = NULL;
             SNMP_FREE(StorageDel->lookupCtlTargetAddress);
-            StorageDel->lookupCtlTargetAddress = NULL;
             SNMP_FREE(StorageDel);
-            StorageDel = NULL;
-
-            StorageDel = 0;
             /*
              * XXX: free it, its dead 
              */
@@ -1541,17 +1362,18 @@
             }
         }
         if (StorageTmp && StorageTmp->lookupCtlRowStatus == RS_ACTIVE) {
-#if 1
             DEBUGMSGTL(("lookupCtlTable",
                         "write_lookupCtlRowStatus entering runbefore=%ld...  \n",
                         StorageTmp->lookupCtlTargetAddressType));
 
-#endif
-            modify_lookupCtlOperStatus(StorageTmp, 2l);
+            modify_lookupCtlOperStatus(StorageTmp, 2L);
             run_lookup((struct lookupTable_data *) StorageTmp);
 
         }
 
+        /** set up to save persistent store */
+        snmp_store_needed(NULL);
+
         break;
     }
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/disman/nslookup/lookupCtlTable.h b/agent/mibgroup/disman/nslookup/lookupCtlTable.h
index f73b062..7a729ab 100644
--- a/agent/mibgroup/disman/nslookup/lookupCtlTable.h
+++ b/agent/mibgroup/disman/nslookup/lookupCtlTable.h
@@ -24,9 +24,8 @@
     /*
      * our storage structure(s) 
      */
+
 struct lookupTable_data {
-
-
     char           *lookupCtlOwnerIndex;        /* string */
     size_t          lookupCtlOwnerIndexLen;
     char           *lookupCtlOperationName;     /* string */
@@ -41,10 +40,10 @@
     int             storagetype;
 
     struct lookupResultsTable_data *ResultsTable;
-
-
 };
-typedef struct lookupResultsTable_data {
+
+
+struct lookupResultsTable_data {
     struct lookupResultsTable_data *next;
     char           *lookupCtlOwnerIndex;        /* string */
     size_t          lookupCtlOwnerIndexLen;
@@ -55,7 +54,7 @@
     char           *lookupResultsAddress;
     size_t          lookupResultsAddressLen;
     int             storagetype;
-} resultsIns;
+};
 
 /*
  * function declarations 
@@ -77,11 +76,11 @@
  */
 #define COLUMN_LOOKUPCTLOWNERINDEX		1
 #define COLUMN_LOOKUPCTLOPERATIONNAME		2
-#define COLUMN_LOOKUPCTLTARGETADDRESSTYPE		3
+#define COLUMN_LOOKUPCTLTARGETADDRESSTYPE	3
 #define COLUMN_LOOKUPCTLTARGETADDRESS		4
 #define COLUMN_LOOKUPCTLOPERSTATUS		5
-#define COLUMN_LOOKUPCTLTIME		6
-#define COLUMN_LOOKUPCTLRC		7
+#define COLUMN_LOOKUPCTLTIME			6
+#define COLUMN_LOOKUPCTLRC			7
 #define COLUMN_LOOKUPCTLROWSTATUS		8
 
 #endif                          /* LOOKUPMIB_H */
diff --git a/agent/mibgroup/disman/nslookup/lookupResultsTable.c b/agent/mibgroup/disman/nslookup/lookupResultsTable.c
index bfb56c9..d6a937c 100644
--- a/agent/mibgroup/disman/nslookup/lookupResultsTable.c
+++ b/agent/mibgroup/disman/nslookup/lookupResultsTable.c
@@ -14,20 +14,6 @@
 /*
  * This should always be included first before anything else 
  */
-#if HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if HAVE_STRING_H
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-
-
-
 
 #include <net-snmp/net-snmp-config.h>
 #include <net-snmp/net-snmp-includes.h>
@@ -239,9 +225,15 @@
 {
     netsnmp_variable_list *vars_list = NULL;
 
-    snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR, (char *) thedata->lookupCtlOwnerIndex, thedata->lookupCtlOwnerIndexLen);      /* lookupCtlOwnerIndex */
-    snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR, (char *) thedata->lookupCtlOperationName, thedata->lookupCtlOperationNameLen);        /* lookupCtlOperationName */
-    snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_UNSIGNED, (char *) &thedata->lookupResultsIndex, sizeof(thedata->lookupResultsIndex));   /* lookupResultsIndex */
+    snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR,
+    		(char *) thedata->lookupCtlOwnerIndex,
+		thedata->lookupCtlOwnerIndexLen);
+    snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_OCTET_STR,
+    		(char *) thedata->lookupCtlOperationName,
+		thedata->lookupCtlOperationNameLen);
+    snmp_varlist_add_variable(&vars_list, NULL, 0, ASN_UNSIGNED,
+    		(char *) &thedata->lookupResultsIndex,
+		sizeof(thedata->lookupResultsIndex));
 
     /*
      * XXX: fill in default row values here into StorageNew 
diff --git a/agent/mibgroup/disman/ping/pingCtlTable.c b/agent/mibgroup/disman/ping/pingCtlTable.c
index ca5c2ee..db473be 100644
--- a/agent/mibgroup/disman/ping/pingCtlTable.c
+++ b/agent/mibgroup/disman/ping/pingCtlTable.c
@@ -2233,6 +2233,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2330,6 +2331,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2419,6 +2421,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2509,6 +2512,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2601,6 +2605,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2703,6 +2708,7 @@
             modify_ResultsOper(StorageTmp, 2);
         }
 
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2799,6 +2805,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2884,6 +2891,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2969,6 +2977,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3056,6 +3065,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3154,6 +3164,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3245,6 +3256,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3336,6 +3348,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3433,6 +3446,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3529,6 +3543,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3615,6 +3630,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3713,6 +3729,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3798,6 +3815,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3886,6 +3904,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3974,6 +3993,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -4344,6 +4364,7 @@
             }
 
         }
+        snmp_store_needed(NULL);
 
         break;
     }
diff --git a/agent/mibgroup/disman/schedule/schedConf.c b/agent/mibgroup/disman/schedule/schedConf.c
index 2e67b73..4fb9850 100644
--- a/agent/mibgroup/disman/schedule/schedConf.c
+++ b/agent/mibgroup/disman/schedule/schedConf.c
@@ -74,11 +74,11 @@
     /*
      * Skip over optional assignment in "var = value"
      */
-    while (line && isspace(*line))
+    while (line && isspace((unsigned char)(*line)))
         line++;
     if (line && *line == '=' ) {
         line++;
-        while (line && isspace(*line)) {
+        while (line && isspace((unsigned char)(*line))) {
             line++;
         }
     }
@@ -119,7 +119,7 @@
 _sched_convert_bits( char *cron_spec, char *bit_buf,
                      int  bit_buf_len, int max_val, int startAt1 ) {
     char *cp = cron_spec;
-    char b[] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
+    u_char b[] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
     int val, major, minor;
     int overshoot;
 
@@ -219,11 +219,11 @@
     /*
      * Skip over optional assignment in "var = value"
      */
-    while (line && isspace(*line))
+    while (line && isspace((unsigned char)(*line)))
         line++;
     if ( *line == '=' ) {
         line++;
-        while (line && isspace(*line)) {
+        while (line && isspace((unsigned char)(*line))) {
             line++;
         }
     }
@@ -357,7 +357,7 @@
 {
     char              line[SNMP_MAXBUF];
     char              time_bits[22];  /* schedWeekDay..schedMinute */
-    char             *cptr;
+    char             *cptr, *cp;
     void             *vp;
     size_t            tint;
     netsnmp_tdata_row *row;
@@ -387,12 +387,12 @@
         strcpy(line, "_schedTable ");
         cptr = line + strlen(line);
 
-        vp   = entry->schedOwner;     tint = strlen( vp );
-        cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp,  &tint );
-        vp   = entry->schedName;      tint = strlen( vp );
-        cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp,  &tint );
-        vp   = entry->schedDescr;     tint = strlen( vp );
-        cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp,  &tint );
+        cp   = entry->schedOwner;     tint = strlen( cp );
+        cptr = read_config_store_data(ASN_OCTET_STR, cptr, &cp,  &tint );
+        cp   = entry->schedName;      tint = strlen( cp );
+        cptr = read_config_store_data(ASN_OCTET_STR, cptr, &cp,  &tint );
+        cp   = entry->schedDescr;     tint = strlen( cp );
+        cptr = read_config_store_data(ASN_OCTET_STR, cptr, &cp,  &tint );
         tint = entry->schedInterval;
         cptr = read_config_store_data(ASN_UNSIGNED,  cptr, &tint, NULL );
 
@@ -408,8 +408,8 @@
         vp   = time_bits;    tint = 22;
         cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp, &tint );
 
-        vp   = entry->schedContextName; tint = strlen( vp );
-        cptr = read_config_store_data(ASN_OCTET_STR, cptr, &vp,  &tint );
+        cp   = entry->schedContextName; tint = strlen( cp );
+        cptr = read_config_store_data(ASN_OCTET_STR, cptr, &cp,  &tint );
         vp   = entry->schedVariable;
         tint = entry->schedVariable_len;
         cptr = read_config_store_data(ASN_OBJECT_ID, cptr, &vp,  &tint );
diff --git a/agent/mibgroup/disman/schedule/schedCore.c b/agent/mibgroup/disman/schedule/schedCore.c
index 28400f5..c914769 100644
--- a/agent/mibgroup/disman/schedule/schedCore.c
+++ b/agent/mibgroup/disman/schedule/schedCore.c
@@ -11,6 +11,25 @@
 
 netsnmp_tdata *schedule_table;
 
+
+#if !defined(HAVE_LOCALTIME_R) && !defined(localtime_r)
+/*
+ * localtime_r() replacement for older MinGW versions.
+ * Note: this implementation is not thread-safe, while it should.
+ */
+struct tm      *
+localtime_r(const time_t * timer, struct tm *result)
+{
+    struct tm      *result_p;
+
+    result_p = localtime(timer);
+    if (result && result_p)
+        *result = *result_p;
+    return result_p;
+}
+#endif
+
+
     /*
      * Initialize the container for the schedule table,
      * regardless of which initialisation routine is called first.
@@ -84,10 +103,10 @@
      * Internal utility routines to help interpret
      *  calendar-based schedule bit strings
      */
-static char _masks[] = { /* 0xff, */ 0x7f, 0x3f, 0x1f,
-                         0x0f, 0x07, 0x03, 0x01, 0x00 };
-static char _bits[]  = { 0x80, 0x40, 0x20, 0x10,
-                         0x08, 0x04, 0x02, 0x01 };
+static u_char _masks[] = { /* 0xff, */ 0x7f, 0x3f, 0x1f,
+                           0x0f, 0x07, 0x03, 0x01, 0x00 };
+static u_char _bits[]  = { 0x80, 0x40, 0x20, 0x10,
+                           0x08, 0x04, 0x02, 0x01 };
 
 /*
  * Are any of the bits set?
@@ -146,7 +165,7 @@
         /*
          * Look for the first bit that's set
          */
-    for ( i=0; i<len; i++ ) {
+    for ( i=0; i<(int)len; i++ ) {
         if ( buf[i] != 0 ) {
             major = i*8;
             for ( j=0; j<8; j++ ) {
@@ -164,9 +183,9 @@
                                31, 30, 31, 31,
                                30, 31, 30, 31, 29 };
 
-static char _truncate[] = { 0xfe, 0xf0, 0xfe, 0xfc,
-                            0xfe, 0xfc, 0xfe, 0xfe,
-                            0xfc, 0xfe, 0xfc, 0xfe, 0xf8 };
+static u_char _truncate[] = { 0xfe, 0xf0, 0xfe, 0xfc,
+                              0xfe, 0xfc, 0xfe, 0xfe,
+                              0xfc, 0xfe, 0xfc, 0xfe, 0xf8 };
 
 /*
  * What is the next day with a relevant bit set?
diff --git a/agent/mibgroup/disman/schedule/schedTable.c b/agent/mibgroup/disman/schedule/schedTable.c
index b8e36d7..d8863fd 100644
--- a/agent/mibgroup/disman/schedule/schedTable.c
+++ b/agent/mibgroup/disman/schedule/schedTable.c
@@ -165,7 +165,7 @@
                  * Convert 'schedLastFailed' timestamp
                  *   into DateAndTime string
                  */
-                cp = date_n_time( &entry->schedLastFailed, &len );
+                cp = (char *) date_n_time( &entry->schedLastFailed, &len );
                 snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,
                                          cp, len);
                 break;
diff --git a/agent/mibgroup/disman/traceroute/traceRouteCtlTable.c b/agent/mibgroup/disman/traceroute/traceRouteCtlTable.c
index 3c722cf..6cc9571 100644
--- a/agent/mibgroup/disman/traceroute/traceRouteCtlTable.c
+++ b/agent/mibgroup/disman/traceroute/traceRouteCtlTable.c
@@ -1606,6 +1606,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1707,7 +1708,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        tmpvar = NULL;
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1789,6 +1790,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1873,6 +1875,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -1960,6 +1963,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2049,6 +2053,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2128,7 +2133,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
-
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2215,6 +2220,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2296,6 +2302,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2377,6 +2384,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2473,7 +2481,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        tmpvar = NULL;
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2557,6 +2565,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2654,7 +2663,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        tmpvar = NULL;
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2738,6 +2747,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2823,6 +2833,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2909,6 +2920,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -2990,6 +3002,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3083,6 +3096,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3199,6 +3213,7 @@
                 modify_trResultsOper(StorageTmp, 2);
             }
         }
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3298,7 +3313,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        tmpvar = NULL;
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3383,6 +3398,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3480,7 +3496,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        tmpvar = NULL;
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3562,6 +3578,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -3655,7 +3672,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
-        tmpvar = NULL;
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -4020,6 +4037,7 @@
             }
 
         }
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c b/agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c
index b110950..ef83450 100644
--- a/agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c
+++ b/agent/mibgroup/etherlike-mib/data_access/dot3stats_linux.c
@@ -487,7 +487,7 @@
  *      non-0 if value available
  */
 static int
-getulongfromsysclassnetstatistics(const char *ifname, char *ctrname, u_long *valuep)
+getulongfromsysclassnetstatistics(const char *ifname, const char *ctrname, u_long *valuep)
 {
     char path[256];
     FILE *fp;
@@ -904,7 +904,7 @@
         fd = ourfd = socket(AF_INET, SOCK_DGRAM, 0);
         if(ourfd < 0) {
             DEBUGMSGTL(("access:dot3StatsTable:ioctl",
-                        "dot3Stats_ioctl_get couldn't create a socket\n", name));
+                        "dot3Stats_ioctl_get couldn't create a socket\n"));
             snmp_log (LOG_ERR, "access:dot3StatsTable:ioctl, _dot3Stats_ioctl_get error on interface '%s'\n", name);
 
             return -2;
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c
index d992ab9..5414001 100644
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c
+++ b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_data_access.c
@@ -355,7 +355,7 @@
 #endif
 
     DEBUGMSGT(("verbose:dot3StatsTable:dot3StatsTable_container_load",
-               "inserted %d records\n", count));
+               "inserted %" NETSNMP_PRIz "d records\n", count));
 
     return MFD_SUCCESS;
 }                               /* dot3StatsTable_container_load */
diff --git a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.c b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.c
index f2685cc..743424a 100644
--- a/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.c
+++ b/agent/mibgroup/etherlike-mib/dot3StatsTable/dot3StatsTable_interface.c
@@ -145,7 +145,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = DOT3STATSTABLE_MIN_COL;
     tbl_info->max_column = DOT3STATSTABLE_MAX_COL;
diff --git a/agent/mibgroup/examples/delayed_instance.c b/agent/mibgroup/examples/delayed_instance.c
index 850db8c..45ef993 100644
--- a/agent/mibgroup/examples/delayed_instance.c
+++ b/agent/mibgroup/examples/delayed_instance.c
@@ -224,7 +224,7 @@
          * update current value 
          */
         delay_time = *(requests->requestvb->val.integer);
-        DEBUGMSGTL(("testhandler", "updated delay_time -> %d\n",
+        DEBUGMSGTL(("testhandler", "updated delay_time -> %ld\n",
                     delay_time));
         break;
 
diff --git a/agent/mibgroup/examples/example.c b/agent/mibgroup/examples/example.c
index 5869d37..dd97daf 100644
--- a/agent/mibgroup/examples/example.c
+++ b/agent/mibgroup/examples/example.c
@@ -719,7 +719,7 @@
         var_obj.name = example_string_oid;
         var_obj.name_length = sizeof(example_string_oid) / sizeof(oid); /* number of sub-ids */
         var_obj.type = ASN_OCTET_STR;   /* type of variable */
-        var_obj.val.string = example_str;       /* value */
+        var_obj.val.string = (unsigned char *) example_str;       /* value */
         var_obj.val_len = strlen(example_str);
         DEBUGMSGTL(("example", "write_exampletrap2 sending the v2 trap\n"));
         send_v2trap(&var_trap);
diff --git a/agent/mibgroup/examples/netSnmpHostsTable.c b/agent/mibgroup/examples/netSnmpHostsTable.c
index 3091751..3a1a428 100644
--- a/agent/mibgroup/examples/netSnmpHostsTable.c
+++ b/agent/mibgroup/examples/netSnmpHostsTable.c
@@ -71,7 +71,7 @@
                                      0);
 
     /** Define the minimum and maximum accessible columns.  This
-        optimizes retrival. */
+        optimizes retrieval. */
     table_info->min_column = 2;
     table_info->max_column = 5;
 
diff --git a/agent/mibgroup/examples/netSnmpHostsTable_access.c b/agent/mibgroup/examples/netSnmpHostsTable_access.c
index e56cd1d..3d2e5fb 100644
--- a/agent/mibgroup/examples/netSnmpHostsTable_access.c
+++ b/agent/mibgroup/examples/netSnmpHostsTable_access.c
@@ -167,7 +167,7 @@
 
 /** Create a data_context for non-existent rows that SETs are performed on.
  *  return a void * pointer which will be passed to subsequent get_XXX
- *  and set_XXX functions for data retrival and modification during
+ *  and set_XXX functions for data retrieval and modification during
  *  this SET request.
  *
  *  The indexs are encoded (in order) into the index_data pointer if it
diff --git a/agent/mibgroup/examples/scalar_int.c b/agent/mibgroup/examples/scalar_int.c
index 503bdd4..4380fce 100644
--- a/agent/mibgroup/examples/scalar_int.c
+++ b/agent/mibgroup/examples/scalar_int.c
@@ -29,7 +29,7 @@
 /*
  * Then, we declare the variables we want to be accessed 
  */
-static long     example1 = 42;  /* default value */
+static long      example1 = 42;  /* default value */
 
 /*
  * our initialization routine, automatically called by the agent 
diff --git a/agent/mibgroup/examples/ucdDemoPublic.c b/agent/mibgroup/examples/ucdDemoPublic.c
index ea90ab6..8e9e66a 100644
--- a/agent/mibgroup/examples/ucdDemoPublic.c
+++ b/agent/mibgroup/examples/ucdDemoPublic.c
@@ -13,11 +13,7 @@
 #endif
 
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -27,10 +23,6 @@
 # endif
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/library/tools.h>
@@ -133,7 +125,7 @@
 
     case UCDDEMOPUBLICSTRING:
         *write_method = write_ucdDemoPublicString;
-        *var_len = strlen(publicString);
+        *var_len = strlen((const char*)publicString);
         return (unsigned char *) publicString;
 
     case UCDDEMOUSERLIST:
diff --git a/agent/mibgroup/hardware/cpu.h b/agent/mibgroup/hardware/cpu.h
index 5e42e96..3956679 100644
--- a/agent/mibgroup/hardware/cpu.h
+++ b/agent/mibgroup/hardware/cpu.h
@@ -21,7 +21,7 @@
 #elif (defined(freebsd2) || defined(freebsd3))
 config_require(hardware/cpu/cpu_nlist)
 
-#elif (defined(aix4) || defined(aix5) || defined(aix6))
+#elif (defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7))
 config_require(hardware/cpu/cpu_perfstat)
 
 #elif (defined(solaris2))
diff --git a/agent/mibgroup/hardware/cpu/cpu.c b/agent/mibgroup/hardware/cpu/cpu.c
index 4b29dbc..2b6868e 100644
--- a/agent/mibgroup/hardware/cpu/cpu.c
+++ b/agent/mibgroup/hardware/cpu/cpu.c
@@ -84,8 +84,8 @@
          */
     cpu = SNMP_MALLOC_TYPEDEF( netsnmp_cpu_info );
     if (!cpu) {
-        return NULL;
         DEBUGMSG(("cpu", "(failed)\n"));
+        return NULL;
     }
     DEBUGMSG(("cpu", "(created)\n"));
     cpu->idx = idx;
@@ -181,7 +181,7 @@
              * First time through, we need to create buffers
              * for the historical stats
              */
-            cpu->history  = calloc( _cpuHistoryLen, sizeof(struct netsnmp_cpu_history));
+            cpu->history  = (struct netsnmp_cpu_history *)calloc( _cpuHistoryLen, sizeof(struct netsnmp_cpu_history));
         } else {
             /*
              * Otherwise, rotate these values - in descending order
diff --git a/agent/mibgroup/hardware/cpu/cpu_kstat.c b/agent/mibgroup/hardware/cpu/cpu_kstat.c
index 2e8db25..33f188e 100644
--- a/agent/mibgroup/hardware/cpu/cpu_kstat.c
+++ b/agent/mibgroup/hardware/cpu/cpu_kstat.c
@@ -23,7 +23,7 @@
      *   (including descriptions)
      */
 void init_cpu_kstat( void ) {
-    int               i, n=0, clock, state_begin;
+    int               i = 0, n = 0, clock, state_begin;
     char              ctype[15], ftype[15], state[10];
     kstat_t          *ksp;
     kstat_named_t    *ks_data;
diff --git a/agent/mibgroup/hardware/cpu/cpu_linux.c b/agent/mibgroup/hardware/cpu/cpu_linux.c
index cb4ebd0..81634b5 100644
--- a/agent/mibgroup/hardware/cpu/cpu_linux.c
+++ b/agent/mibgroup/hardware/cpu/cpu_linux.c
@@ -112,11 +112,11 @@
     }
     if (bsize == 0) {
         bsize = getpagesize()-1;
-        buff = malloc(bsize+1);
+        buff = (char*)malloc(bsize+1);
     }
     while ((bytes_read = read(statfd, buff, bsize)) == bsize) {
         bsize += BUFSIZ;
-        buff = realloc(buff, bsize+1);
+        buff = (char*)realloc(buff, bsize+1);
         DEBUGMSGTL(("cpu", "/proc/stat buffer increased to %d\n", bsize));
         close(statfd);
         statfd = open(STAT_FILE, O_RDONLY, 0);
@@ -217,11 +217,11 @@
       } else {
         if (vmbsize == 0) {
 	    vmbsize = getpagesize()-1;
-	    vmbuff = malloc(vmbsize+1);
+	    vmbuff = (char*)malloc(vmbsize+1);
         }
         while ((bytes_read = read(vmstatfd, vmbuff, vmbsize)) == vmbsize) {
 	    vmbsize += BUFSIZ;
-	    vmbuff = realloc(vmbuff, vmbsize+1);
+	    vmbuff = (char*)realloc(vmbuff, vmbsize+1);
 	    close(vmstatfd);
 	    vmstatfd = open(VMSTAT_FILE, O_RDONLY, 0);
 	    if (vmstatfd == -1) {
diff --git a/agent/mibgroup/hardware/cpu/cpu_perfstat.c b/agent/mibgroup/hardware/cpu/cpu_perfstat.c
index b714ed4..47d56c6 100644
--- a/agent/mibgroup/hardware/cpu/cpu_perfstat.c
+++ b/agent/mibgroup/hardware/cpu/cpu_perfstat.c
@@ -11,6 +11,7 @@
 #include <unistd.h>
 #include <sys/types.h>
 
+#include <sys/protosw.h>
 #include <libperfstat.h>
 
 void _cpu_copy_stats( netsnmp_cpu_info *cpu );
@@ -27,7 +28,7 @@
     strcpy(cpu->name, "Overall CPU statistics");
 
     cpu_num = perfstat_cpu( NULL, NULL, sizeof(perfstat_cpu_t), 0 );
-    cs2 = malloc( cpu_num*sizeof(perfstat_cpu_t));
+    cs2 = (perfstat_cpu_t*)malloc( cpu_num*sizeof(perfstat_cpu_t));
  
     strcpy( name.name, "");
     if (perfstat_cpu(&name, cs2, sizeof(perfstat_cpu_t), cpu_num) > 0) {
@@ -83,7 +84,7 @@
      * Per-CPU statistics
      */
     n   = cs.ncpus;   /* XXX - Compare against cpu_num */
-    cs2 = malloc( n*sizeof(perfstat_cpu_t));
+    cs2 = (perfstat_cpu_t*)malloc( n*sizeof(perfstat_cpu_t));
     strcpy( name.name, "");
     if (perfstat_cpu(&name, cs2, sizeof(perfstat_cpu_t), n) > 0) {
         for ( i = 0; i < n; i++ ) {
diff --git a/agent/mibgroup/hardware/cpu/cpu_sysctl.c b/agent/mibgroup/hardware/cpu/cpu_sysctl.c
index c610269..1238d3f 100644
--- a/agent/mibgroup/hardware/cpu/cpu_sysctl.c
+++ b/agent/mibgroup/hardware/cpu/cpu_sysctl.c
@@ -75,13 +75,23 @@
 
 #if defined(__NetBSD__)
 #define NETSNMP_KERN_CPU  KERN_CP_TIME
+#define NETSNMP_KERN_MCPU
+#define NETSNMP_KERN_MCPU_TYPE NETSNMP_CPU_STATS
 #elif defined(KERN_CPUSTATS)              /* BSDi */
 #define NETSNMP_KERN_CPU  KERN_CPUSTATS
+#elif defined(KERN_CPTIME2)                /* OpenBSD */
+#define NETSNMP_KERN_CPU  KERN_CPTIME
+#define NETSNMP_KERN_MCPU
+#define NETSNMP_KERN_MCPU_TYPE u_int64_t
 #elif defined(KERN_CPTIME)                /* OpenBSD */
 #define NETSNMP_KERN_CPU  KERN_CPTIME
 
 #elif defined(__FreeBSD__)
 #define NETSNMP_KERN_CPU  0    /* dummy value - sysctlnametomib(2) should be used */
+#if defined(HAVE_KERN_CP_TIMES)
+#define NETSNMP_KERN_MCPU 1    /* Enable support for multi-cpu stats. Valid for FreeBSD >=6.4, >=7.1, >=8.0 and beyond */
+#define NETSNMP_KERN_MCPU_TYPE NETSNMP_CPU_STATS
+#endif
 
 #else
 #error "No CPU statistics sysctl token"
@@ -144,7 +154,9 @@
      * Load the latest CPU usage statistics
      */
 int netsnmp_cpu_arch_load( netsnmp_cache *cache, void *magic ) {
+#ifdef NETSNMP_KERN_MCPU
     int                     i;
+#endif
 
     /*
      * Strictly speaking, BSDi ought to use
@@ -154,11 +166,15 @@
      * Don't fight it, Dave - go with the flow....
      */
     NETSNMP_CPU_STATS cpu_stats[CPUSTATES];
+#if !defined(__FreeBSD__) && !defined(__NetBSD__)
     int            cpu_mib[] = { CTL_KERN, NETSNMP_KERN_CPU };
+#endif
+#ifdef KERN_CPTIME2
+    int            mcpu_mib[] = { CTL_KERN, KERN_CPTIME2, 0 };
+#endif
     size_t         cpu_size  = sizeof(cpu_stats);
 #ifdef NETSNMP_KERN_MCPU 
     NETSNMP_KERN_MCPU_TYPE *mcpu_stats;
-    int            mcpu_mib[] = { CTL_KERN, NETSNMP_KERN_MCPU };
     size_t         mcpu_size;
 #endif
     NETSNMP_VM_STATS_TYPE mem_stats;
@@ -171,12 +187,12 @@
 #else
     sysctl(cpu_mib, 2,  cpu_stats, &cpu_size, NULL, 0);
 #endif
-    cpu->user_ticks = (unsigned long long)cpu_stats[CP_USER];
-    cpu->nice_ticks = (unsigned long long)cpu_stats[CP_NICE];
-    cpu->sys2_ticks = (unsigned long long)cpu_stats[CP_SYS]+cpu_stats[CP_INTR];
-    cpu->kern_ticks = (unsigned long long)cpu_stats[CP_SYS];
-    cpu->idle_ticks = (unsigned long long)cpu_stats[CP_IDLE];
-    cpu->intrpt_ticks = (unsigned long long)cpu_stats[CP_INTR];
+    cpu->user_ticks = cpu_stats[CP_USER];
+    cpu->nice_ticks = cpu_stats[CP_NICE];
+    cpu->sys2_ticks = cpu_stats[CP_SYS]+cpu_stats[CP_INTR];
+    cpu->kern_ticks = cpu_stats[CP_SYS];
+    cpu->idle_ticks = cpu_stats[CP_IDLE];
+    cpu->intrpt_ticks = cpu_stats[CP_INTR];
         /* wait_ticks, sirq_ticks unused */
     
         /*
@@ -184,24 +200,65 @@
          *   XXX - Do these really belong here ?
          */
     sysctl(mem_mib, 2, &mem_stats, &mem_size, NULL, 0);
-    cpu->nInterrupts  = (unsigned long long)mem_stats.NS_VM_INTR;
-    cpu->nCtxSwitches = (unsigned long long)mem_stats.NS_VM_SWTCH;
-    cpu->swapIn       = (unsigned long long)mem_stats.NS_VM_SWAPIN;
-    cpu->swapOut      = (unsigned long long)mem_stats.NS_VM_SWAPOUT;
+    cpu->nInterrupts  = mem_stats.NS_VM_INTR;
+    cpu->nCtxSwitches = mem_stats.NS_VM_SWTCH;
+    cpu->swapIn       = mem_stats.NS_VM_SWAPIN;
+    cpu->swapOut      = mem_stats.NS_VM_SWAPOUT;
 #ifdef NS_VM_PAGEIN
-    cpu->pageIn       = (unsigned long long)mem_stats.NS_VM_PAGEIN;
+    cpu->pageIn       = mem_stats.NS_VM_PAGEIN;
 #endif
 #ifdef NS_VM_PAGEOUT
-    cpu->pageOut      = (unsigned long long)mem_stats.NS_VM_PAGEOUT;
+    cpu->pageOut      = mem_stats.NS_VM_PAGEOUT;
 #endif
 
 #ifdef NETSNMP_KERN_MCPU
-    mcpu_size  = cpu_num*sizeof(NETSNMP_KERN_MCPU_TYPE);
+#if defined(HAVE_KERN_CP_TIMES)
+    sysctlbyname("kern.cp_times", NULL, &mcpu_size, NULL, 0);
     mcpu_stats = malloc(mcpu_size);
-    sysctl(mcpu_mib, 2, mcpu_stats, &mcpu_size, NULL, 0);
+    sysctlbyname("kern.cp_times", mcpu_stats, &mcpu_size, NULL, 0);
+#elif defined(KERN_CPTIME2)
+    mcpu_size  = sizeof(cpu_stats);
+    mcpu_stats = malloc(mcpu_size);
+#else
+    mcpu_size  = cpu_num*sizeof(cpu_stats);
+    mcpu_stats = malloc(mcpu_size);
+    sysctlbyname("kern.cp_time", mcpu_stats, &mcpu_size, NULL, 0);
+#endif
     for ( i = 0; i < cpu_num; i++ ) {
         cpu = netsnmp_cpu_get_byIdx( i, 0 );
         /* XXX - per-CPU statistics - mcpu_mib[i].??? */
+#ifdef KERN_CPTIME2
+	mcpu_mib[2] = i;
+	sysctl(mcpu_mib, 3, mcpu_stats, &mcpu_size, NULL, 0);
+#endif
+	/* Almost copy & paste of previous cpu stats stuff :) */
+	cpu->user_ticks = mcpu_stats[(i*CPUSTATES)+CP_USER];
+	cpu->nice_ticks = mcpu_stats[(i*CPUSTATES)+CP_NICE];
+	cpu->sys2_ticks = mcpu_stats[(i*CPUSTATES)+CP_SYS]+mcpu_stats[(i*CPUSTATES)+CP_INTR];
+	cpu->kern_ticks = mcpu_stats[(i*CPUSTATES)+CP_SYS];
+	cpu->idle_ticks = mcpu_stats[(i*CPUSTATES)+CP_IDLE];
+	cpu->intrpt_ticks = mcpu_stats[(i*CPUSTATES)+CP_INTR];
+	    /* wait_ticks, sirq_ticks unused */
+
+	    /*
+	     * Interrupt/Context Switch statistics
+	     *   XXX - Do these really belong here ?
+	     */
+
+	/* There's no really need to execute another sysctl()
+	 *
+	 * sysctl(mem_mib, 2, &mem_stats, &mem_size, NULL, 0);
+	 */
+	cpu->nInterrupts  = mem_stats.NS_VM_INTR;
+	cpu->nCtxSwitches = mem_stats.NS_VM_SWTCH;
+	cpu->swapIn       = mem_stats.NS_VM_SWAPIN;
+	cpu->swapOut      = mem_stats.NS_VM_SWAPOUT;
+#ifdef NS_VM_PAGEIN
+	cpu->pageIn       = mem_stats.NS_VM_PAGEIN;
+#endif
+#ifdef NS_VM_PAGEOUT
+	cpu->pageOut      = mem_stats.NS_VM_PAGEOUT;
+#endif
     }
     free(mcpu_stats);
 #else
diff --git a/agent/mibgroup/hardware/fsys.h b/agent/mibgroup/hardware/fsys.h
index 81022ff..e30a5a6 100644
--- a/agent/mibgroup/hardware/fsys.h
+++ b/agent/mibgroup/hardware/fsys.h
@@ -1,5 +1,5 @@
 config_require(hardware/fsys/hw_fsys)
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
 config_require(hardware/fsys/fsys_mntctl)
 #elif defined(HAVE_GETVFSSTAT) || defined(HAVE_GETFSSTAT)
 config_require(hardware/fsys/fsys_getfsstats)
diff --git a/agent/mibgroup/hardware/fsys/fsys_getfsstats.c b/agent/mibgroup/hardware/fsys/fsys_getfsstats.c
index 6289b8e..b9a8fe6 100644
--- a/agent/mibgroup/hardware/fsys/fsys_getfsstats.c
+++ b/agent/mibgroup/hardware/fsys/fsys_getfsstats.c
@@ -88,6 +88,8 @@
        return NETSNMP_FS_TYPE_EXT2;
     else if ( !strcmp(typename, MOUNT_NTFS) )
        return NETSNMP_FS_TYPE_NTFS;
+    else if ( !strcmp(typename, MOUNT_ZFS) )
+       return NETSNMP_FS_TYPE_OTHER;
 
        /*
         * NetBSD also recognises the following filesystem types:
@@ -138,7 +140,7 @@
     n = NSFS_GETFSSTAT( NULL, 0, 0 );
     if ( n==0 )
         return;
-    stats = malloc( n * sizeof( struct NSFS_STATFS ));
+    stats = (struct NSFS_STATFS *)malloc( n * sizeof( struct NSFS_STATFS ));
     n = NSFS_GETFSSTAT( stats, n * sizeof( struct NSFS_STATFS ), MNT_NOWAIT );
 
     /*
diff --git a/agent/mibgroup/hardware/fsys/fsys_mntctl.c b/agent/mibgroup/hardware/fsys/fsys_mntctl.c
index da91557..079154c 100644
--- a/agent/mibgroup/hardware/fsys/fsys_mntctl.c
+++ b/agent/mibgroup/hardware/fsys/fsys_mntctl.c
@@ -29,21 +29,21 @@
 }
 
 int
-_fsys_type( int type )
+_fsys_type( int type)
 {
     DEBUGMSGTL(("fsys:type", "Classifying %d\n", type));
 
     switch ( type ) {
-        case MNT_AIX:
-        case MNT_JFS:
+        case  MNT_AIX:
+        case  MNT_JFS:
             return NETSNMP_FS_TYPE_BERKELEY;
 
-        case MNT_CDROM:
+        case  MNT_CDROM:
             return NETSNMP_FS_TYPE_ISO9660;
 
-        case MNT_NFS:
-        case MNT_NFS3:
-        case MNT_AUTOFS:
+        case  MNT_NFS:
+        case  MNT_NFS3:
+        case  MNT_AUTOFS:
             return NETSNMP_FS_TYPE_NFS;
 
     /*
@@ -69,7 +69,7 @@
         default:
             return NETSNMP_FS_TYPE_IGNORE;
     }
-    return NETSNMP_FS_TYPE_IGNORE;    /* Not reached */
+    return NETSNMP_FS_TYPE_IGNORE;  /* Not reached */
 }
 
 void
diff --git a/agent/mibgroup/hardware/fsys/fsys_mntent.c b/agent/mibgroup/hardware/fsys/fsys_mntent.c
index 2a45af5..46e2709 100644
--- a/agent/mibgroup/hardware/fsys/fsys_mntent.c
+++ b/agent/mibgroup/hardware/fsys/fsys_mntent.c
@@ -140,6 +140,8 @@
               !strcmp(typename, MNTTYPE_OCFS2) ||
               !strcmp(typename, MNTTYPE_CVFS) ||
               !strcmp(typename, MNTTYPE_SIMFS) ||
+              !strcmp(typename, MNTTYPE_BTRFS) ||
+              !strcmp(typename, MNTTYPE_ZFS) ||
               !strcmp(typename, MNTTYPE_LOFS))
        return NETSNMP_FS_TYPE_OTHER;
 
diff --git a/agent/mibgroup/hardware/fsys/hw_fsys.c b/agent/mibgroup/hardware/fsys/hw_fsys.c
index 4a5a230..048ee66 100644
--- a/agent/mibgroup/hardware/fsys/hw_fsys.c
+++ b/agent/mibgroup/hardware/fsys/hw_fsys.c
@@ -86,6 +86,7 @@
 int
 netsnmp_fsys_load( netsnmp_cache *cache, void *data )
 {
+    /* XXX - check cache timeliness */
     return _fsys_load();
 }
 
@@ -106,6 +107,7 @@
 _fsys_load( void )
 {
     netsnmp_fsys_arch_load();
+    /* XXX - update cache timestamp */
     return 0;
 }
 
@@ -244,7 +246,7 @@
  *  Convert fsys size information to 1K units
  *    (attempting to avoid 32-bit overflow!)
  */
-unsigned int
+unsigned long long
 _fsys_to_K( int size, int units )
 {
     int factor = 1;
@@ -257,33 +259,53 @@
         return size/2;
     } else if ( units < 1024 ) {
         factor = 1024 / units;   /* Assuming power of two */
-        return (size * factor);
+        return (size / factor);
     } else {
         factor = units / 1024;   /* Assuming multiple of 1K */
-        return (size / factor);
+        return (size * factor);
     }
 }
 
-unsigned int
-netsnmp_fsys_size( netsnmp_fsys_info *f) {
+unsigned long long
+netsnmp_fsys_size_ull( netsnmp_fsys_info *f) {
     if ( !f ) {
         return 0;
     }
     return _fsys_to_K( f->size, f->units );
 }
 
-unsigned int
-netsnmp_fsys_used( netsnmp_fsys_info *f) {
+unsigned long long
+netsnmp_fsys_used_ull( netsnmp_fsys_info *f) {
     if ( !f ) {
         return 0;
     }
     return _fsys_to_K( f->used, f->units );
 }
 
-unsigned int
-netsnmp_fsys_avail( netsnmp_fsys_info *f) {
+unsigned long long
+netsnmp_fsys_avail_ull( netsnmp_fsys_info *f) {
     if ( !f ) {
         return 0;
     }
     return _fsys_to_K( f->avail, f->units );
 }
+
+
+int
+netsnmp_fsys_size( netsnmp_fsys_info *f) {
+    unsigned long long v = netsnmp_fsys_size_ull(f);
+    return (int)v;
+}
+
+int
+netsnmp_fsys_used( netsnmp_fsys_info *f) {
+    unsigned long long v = netsnmp_fsys_used_ull(f);
+    return (int)v;
+}
+
+int
+netsnmp_fsys_avail( netsnmp_fsys_info *f) {
+    unsigned long long v = netsnmp_fsys_avail_ull(f);
+    return (int)v;
+}
+
diff --git a/agent/mibgroup/hardware/fsys/mnttypes.h b/agent/mibgroup/hardware/fsys/mnttypes.h
index fac935e..997283e 100644
--- a/agent/mibgroup/hardware/fsys/mnttypes.h
+++ b/agent/mibgroup/hardware/fsys/mnttypes.h
@@ -145,6 +145,12 @@
 #ifndef MNTTYPE_SIMFS
 #define MNTTYPE_SIMFS     "simfs"
 #endif
+#ifndef MNTTYPE_BTRFS
+#define MNTTYPE_BTRFS     "btrfs"
+#endif
+#ifndef MNTTYPE_ZFS
+#define MNTTYPE_ZFS       "zfs"
+#endif
 
 /*
  *  File systems to skip
diff --git a/agent/mibgroup/hardware/fsys/mounts.h b/agent/mibgroup/hardware/fsys/mounts.h
index 2148888..fd448d6 100644
--- a/agent/mibgroup/hardware/fsys/mounts.h
+++ b/agent/mibgroup/hardware/fsys/mounts.h
@@ -56,6 +56,9 @@
 #ifndef MOUNT_UFS
 #define MOUNT_UFS    "ufs"
 #endif
+#ifndef MOUNT_ZFS
+#define MOUNT_ZFS    "zfs"
+#endif
 
 /*
 #ifndef MNTTYPE_AFS
diff --git a/agent/mibgroup/hardware/memory.h b/agent/mibgroup/hardware/memory.h
index c0670e4..c33450a 100644
--- a/agent/mibgroup/hardware/memory.h
+++ b/agent/mibgroup/hardware/memory.h
@@ -12,7 +12,7 @@
 #elif (defined(netbsd) || defined(netbsd1) || defined(netbsdelf) || defined(netbsdelf2)|| defined(netbsdelf3) || defined(openbsd))
 config_require(hardware/memory/memory_netbsd)
 
-#elif (defined(aix4) || defined(aix5) || defined(aix6))
+#elif (defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7))
 config_require(hardware/memory/memory_aix)
 
 #elif (defined(solaris2))
diff --git a/agent/mibgroup/hardware/memory/memory_aix.c b/agent/mibgroup/hardware/memory/memory_aix.c
index 2519dd9..ad24526 100644
--- a/agent/mibgroup/hardware/memory/memory_aix.c
+++ b/agent/mibgroup/hardware/memory/memory_aix.c
@@ -4,6 +4,7 @@
 #include <net-snmp/agent/hardware/memory.h>
 
 #include <unistd.h>
+#include <sys/protosw.h>
 #include <libperfstat.h>
 #include <sys/stat.h>
 
diff --git a/agent/mibgroup/hardware/memory/memory_freebsd.c b/agent/mibgroup/hardware/memory/memory_freebsd.c
index 02e8be2..8d18698 100644
--- a/agent/mibgroup/hardware/memory/memory_freebsd.c
+++ b/agent/mibgroup/hardware/memory/memory_freebsd.c
@@ -24,7 +24,7 @@
 quad_t    swapUsed;
 quad_t    swapFree;
 
-int swapmode(long);
+static int swapmode(long);
 
 
     /*
@@ -36,10 +36,15 @@
     long           pagesize;
     int            nswap;
 
-    struct vmmeter vmem;
+#if !defined(VM_TOTAL)
+    unsigned int   free_mem;
+    size_t         free_size = sizeof(free_mem);
+    unsigned int   mem_pages;
+#else
     struct vmtotal total;
     size_t         total_size  = sizeof(total);
-    int            total_mib[] = { CTL_VM, VM_METER };
+    int            total_mib[] = { CTL_VM, VM_TOTAL };
+#endif
 
     u_long         phys_mem;
     u_long         user_mem;
@@ -58,7 +63,12 @@
     /*
      * Retrieve the memory information from the underlying O/S...
      */
+#if !defined(VM_TOTAL)
+    sysctlbyname("vm.stats.vm.v_free_count", &free_mem,    &free_size,    NULL, 0);
+    sysctlbyname("vm.stats.vm.v_page_count", &mem_pages,    &free_size,    NULL, 0);
+#else
     sysctl(total_mib,    2, &total,    &total_size,    NULL, 0);
+#endif
     sysctl(phys_mem_mib, 2, &phys_mem, &mem_size,      NULL, 0);
     sysctl(user_mem_mib, 2, &user_mem, &mem_size,      NULL, 0);
     sysctlbyname("vm.stats.vm.v_cache_count",    &cache_count, &cache_size, NULL, 0);
@@ -83,7 +93,11 @@
              mem->descr = strdup("Physical memory");
         mem->units = pagesize;
         mem->size  = phys_mem/pagesize;
+#if !defined(VM_TOTAL)
+	mem->free  = free_mem;
+#else
         mem->free  = total.t_free;
+#endif
     }
 
     mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_USERMEM, 1 );
@@ -93,8 +107,13 @@
         if (!mem->descr)
              mem->descr = strdup("Real memory");
         mem->units = pagesize;
+#if !defined(VM_TOTAL)
+	mem->size  = user_mem/pagesize;
+	mem->free  = free_mem;
+#else
         mem->size  = total.t_rm;
-        mem->free  = total.t_arm;
+        mem->free  = total.t_rm - total.t_arm;
+#endif
     }
 
     mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_VIRTMEM, 1 );
@@ -104,10 +123,16 @@
         if (!mem->descr)
              mem->descr = strdup("Virtual memory");
         mem->units = pagesize;
+#if !defined(VM_TOTAL)
+	mem->size  = mem_pages+swapTotal;
+	mem->free  = free_mem+swapFree;
+#else
         mem->size  = total.t_vm;
-        mem->free  = total.t_avm;
+        mem->free  = total.t_vm - total.t_avm;
+#endif
     }
 
+#if defined(VM_TOTAL)
     mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_SHARED, 1 );
     if (!mem) {
         snmp_log_perror("No Shared Memory info entry");
@@ -116,7 +141,7 @@
              mem->descr = strdup("Shared virtual memory");
         mem->units = pagesize;
         mem->size  = total.t_vmshr;
-        mem->free  = total.t_avmshr;
+        mem->free  = total.t_vmshr - total.t_avmshr;
     }
 
     mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_SHARED2, 1 );
@@ -127,8 +152,9 @@
              mem->descr = strdup("Shared real memory");
         mem->units = pagesize;
         mem->size  = total.t_rmshr;
-        mem->free  = total.t_armshr;
+        mem->free  = total.t_rmshr - total.t_armshr;
     }
+#endif
 
     mem = netsnmp_memory_get_byIdx( NETSNMP_MEM_TYPE_CACHED, 1 );
     if (!mem) {
@@ -137,8 +163,8 @@
         if (!mem->descr)
              mem->descr = strdup("Cached memory");
         mem->units = pagesize;
-        mem->size  = cache_max + inact_count;
-        mem->free  = cache_max - cache_count;
+        mem->size  = cache_count;
+        mem->free  = 0;
     }
 
     nswap = swapmode(pagesize);
@@ -181,7 +207,7 @@
  * This is just way too ugly ;) 
  */
 
-int
+static int
 swapmode(long pagesize)
 {
     struct extensible ext;
@@ -212,22 +238,21 @@
 
 #include <sys/conf.h>
 
-int
+extern kvm_t *kd;
+
+static int
 swapmode(long pagesize)
 {
     int             i, n;
-    static kvm_t   *kd = NULL;
     struct kvm_swap kswap[16];
     netsnmp_memory_info *mem;
     char buf[1024];
 
-    if (kd == NULL)
-        kd = kvm_openfiles(NULL, NULL, NULL, O_RDONLY, NULL);
     n = kvm_getswapinfo(kd, kswap, sizeof(kswap) / sizeof(kswap[0]), 0);
 
     swapUsed = swapTotal = swapFree = 0;
 
-    if ( n > 1 ) {
+    if ( n > 0 ) {
         /*
          * If there are multiple swap devices, then record
          *   the statistics for each one separately...
diff --git a/agent/mibgroup/hardware/memory/memory_linux.c b/agent/mibgroup/hardware/memory/memory_linux.c
index 36d431e..8c189c5 100644
--- a/agent/mibgroup/hardware/memory/memory_linux.c
+++ b/agent/mibgroup/hardware/memory/memory_linux.c
@@ -43,7 +43,7 @@
     }
     if (bsize == 0) {
         bsize = MEMINFO_INIT_SIZE;
-        buff = malloc(bsize+1);
+        buff = (char*)malloc(bsize+1);
         if (NULL == buff) {
             snmp_log(LOG_ERR, "malloc failed\n");
             close(statfd);
@@ -51,7 +51,7 @@
         }
     }
     while ((bytes_read = read(statfd, buff, bsize)) == bsize) {
-        b = realloc(buff, bsize + MEMINFO_STEP_SIZE + 1);
+        b = (char*)realloc(buff, bsize + MEMINFO_STEP_SIZE + 1);
         if (NULL == b) {
             snmp_log(LOG_ERR, "malloc failed\n");
             close(statfd);
diff --git a/agent/mibgroup/hardware/memory/memory_solaris.c b/agent/mibgroup/hardware/memory/memory_solaris.c
index 3dfff8b..42f203e 100644
--- a/agent/mibgroup/hardware/memory/memory_solaris.c
+++ b/agent/mibgroup/hardware/memory/memory_solaris.c
@@ -129,7 +129,7 @@
     char buf[1024];
 
     num = swapctl(SC_GETNSWP, 0);
-    s = malloc(num * sizeof(swapent_t) + sizeof(struct swaptable));
+    s = (swaptbl_t*)malloc(num * sizeof(swapent_t) + sizeof(struct swaptable));
     if (!s)
         return;
 
diff --git a/agent/mibgroup/hardware/sensors.h b/agent/mibgroup/hardware/sensors.h
index 00af302..b88d915 100644
--- a/agent/mibgroup/hardware/sensors.h
+++ b/agent/mibgroup/hardware/sensors.h
@@ -1,6 +1,6 @@
 config_require(hardware/sensors/hw_sensors)
 
-#if defined(solaris)
+#if defined(solaris2)
 # if defined(HAVE_PICL_H)
 config_require(hardware/sensors/picld_sensors)
 # else
diff --git a/agent/mibgroup/hardware/sensors/hw_sensors.c b/agent/mibgroup/hardware/sensors/hw_sensors.c
index c466eac..1a01645 100644
--- a/agent/mibgroup/hardware/sensors/hw_sensors.c
+++ b/agent/mibgroup/hardware/sensors/hw_sensors.c
@@ -132,7 +132,7 @@
  *  or (optionally) insert a new one into the container
  */
 netsnmp_sensor_info *
-sensor_by_name( char *name, int create_type )
+sensor_by_name( const char *name, int create_type )
 {
     netsnmp_sensor_info *sp;
 
diff --git a/agent/mibgroup/hardware/sensors/hw_sensors.h b/agent/mibgroup/hardware/sensors/hw_sensors.h
index 7ac26cf..17eccf5 100644
--- a/agent/mibgroup/hardware/sensors/hw_sensors.h
+++ b/agent/mibgroup/hardware/sensors/hw_sensors.h
@@ -1 +1,2 @@
 void init_hw_sensors( void );
+void shutdown_hw_sensors( void );
diff --git a/agent/mibgroup/hardware/sensors/kstat_sensors.c b/agent/mibgroup/hardware/sensors/kstat_sensors.c
index d503c43..62bbb10 100644
--- a/agent/mibgroup/hardware/sensors/kstat_sensors.c
+++ b/agent/mibgroup/hardware/sensors/kstat_sensors.c
@@ -156,5 +156,6 @@
         }
     }
 
+    kstat_close(kc);
     return 0;
 }
diff --git a/agent/mibgroup/hardware/sensors/picld_sensors.c b/agent/mibgroup/hardware/sensors/picld_sensors.c
index a4c7006..a4617b2 100644
--- a/agent/mibgroup/hardware/sensors/picld_sensors.c
+++ b/agent/mibgroup/hardware/sensors/picld_sensors.c
@@ -6,7 +6,6 @@
 #include <time.h>
 
 #include <picl.h>
-#include </usr/platform/sun4u/include/sys/envctrl.h>
 
 void netsnmp_sensor_arch_init( void ) {
     DEBUGMSGTL(("sensors:arch", "Initialise PICLd Sensors module\n"));
@@ -18,7 +17,7 @@
  * Handle a numeric-valued sensor
  */
 static int
-read_num_sensor( picl_nodehdl_t childh, char *propval, float *value )
+read_num_sensor( picl_nodehdl_t childh, const char *propval, float *value )
 {
     picl_nodehdl_t  sensorh;
     picl_propinfo_t sensor_info;
@@ -87,7 +86,7 @@
 }
 
 static int
-process_num_sensor( picl_nodehdl_t childh, char *propname, char *propval, int typ )
+process_num_sensor( picl_nodehdl_t childh, const char *propname, const char *propval, int typ )
 {
     netsnmp_sensor_info        *sp;
     float                       value;
@@ -115,16 +114,16 @@
 /*
  *    Handle an enumeration-valued sensor
  */
-char *switch_settings[] = { "OFF","ON","NORMAL","LOCKED",
-                            "UNKNOWN","DIAG","SECURE",
-                            NULL };
-char *led_settings[]    = { "OFF","ON","BLINK",
-                            NULL };
-char *i2c_settings[]    = { "OK",
-                            NULL };
+const char *switch_settings[] = { "OFF","ON","NORMAL","LOCKED",
+				  "UNKNOWN","DIAG","SECURE",
+                                  NULL };
+const char *led_settings[]    = { "OFF","ON","BLINK",
+                                  NULL };
+const char *i2c_settings[]    = { "OK",
+                                  NULL };
 
 static int
-read_enum_sensor( picl_nodehdl_t childh, float *value, char **options )
+read_enum_sensor( picl_nodehdl_t childh, float *value, const char **options )
 {
     picl_nodehdl_t  sensorh;
     picl_propinfo_t sensor_info;
@@ -169,7 +168,7 @@
 }
 
 static int
-process_enum_sensor( picl_nodehdl_t childh, char *propname, int typ, char **options )
+process_enum_sensor( picl_nodehdl_t childh, const char *propname, int typ, const char **options )
 {
     netsnmp_sensor_info        *sp;
     float                       value;
@@ -191,11 +190,6 @@
     }
     return 0;
 }
-static int
-process_enum_sensor( picl_nodehdl_t childh, char *propname, int typ, char **options )
-{
-    return 0;
-}
 
 
 
@@ -213,7 +207,7 @@
     DEBUGMSGTL(("sensors:arch:detail", "process_sensors - level %d\n", level));
 
     /* Look up the first child node at this level */
-    error_code = pick_get_propval_by_name( nodeh, PICL_PROP_CHILD,
+    error_code = picl_get_propval_by_name( nodeh, PICL_PROP_CHILD,
                                            &childh, sizeof(childh));
     if ( error_code != PICL_SUCCESS ) {
         DEBUGMSGTL(("sensors:arch:detail", "Failed to get first child node (%d)\n",
@@ -223,7 +217,7 @@
 
     /* Step through the child nodes, retrieving the name and class of each one */
     while ( error_code == PICL_SUCCESS ) {
-        error_code = pick_get_propval_by_name( childh, PICL_PROP_NAME,
+        error_code = picl_get_propval_by_name( childh, PICL_PROP_NAME,
                                                propname, sizeof(propname)-1);
         if ( error_code != PICL_SUCCESS ) {
             /* The Node With No Name */
@@ -232,7 +226,7 @@
             return( error_code );
         }
 
-        error_code = pick_get_propval_by_name( childh, PICL_PROP_CLASSNAME,
+        error_code = picl_get_propval_by_name( childh, PICL_PROP_CLASSNAME,
                                                propclass, sizeof(propclass)-1);
         if ( error_code != PICL_SUCCESS ) {
             /* The Classless Society */
@@ -298,7 +292,7 @@
         /*
          *  Move on to the next child node at the current level (if any)
          */
-        error_code = pick_get_propval_by_name( childh, PICL_PROP_PEER,
+        error_code = picl_get_propval_by_name( childh, PICL_PROP_PEER,
                                                &nexth, sizeof(nexth));
         if ( error_code != PICL_SUCCESS ) {
             /* That's All Folks! */
diff --git a/agent/mibgroup/header_complex.c b/agent/mibgroup/header_complex.c
index 9561ecd..ee42544 100644
--- a/agent/mibgroup/header_complex.c
+++ b/agent/mibgroup/header_complex.c
@@ -5,9 +5,6 @@
 #include <net-snmp/net-snmp-config.h>
 
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
diff --git a/agent/mibgroup/host/data_access/swinst.c b/agent/mibgroup/host/data_access/swinst.c
index 9ab8573..bb55181 100644
--- a/agent/mibgroup/host/data_access/swinst.c
+++ b/agent/mibgroup/host/data_access/swinst.c
@@ -163,7 +163,8 @@
 void
 netsnmp_swinst_entry_free(netsnmp_swinst_entry *entry)
 {
-    DEBUGMSGTL(("swinst:entry:free", "index %lu\n", entry->swIndex));
+    DEBUGMSGTL(("swinst:entry:free", "index %" NETSNMP_PRIo "u\n",
+                entry->swIndex));
 
     free(entry);
 }
diff --git a/agent/mibgroup/host/data_access/swinst.h b/agent/mibgroup/host/data_access/swinst.h
index 704a318..0c80561 100644
--- a/agent/mibgroup/host/data_access/swinst.h
+++ b/agent/mibgroup/host/data_access/swinst.h
@@ -22,6 +22,8 @@
  */
 #if   defined( darwin )
     config_require(host/data_access/swinst_darwin)
+#elif defined( HAVE_DPKG_QUERY )
+    config_require(host/data_access/swinst_apt)
 #elif defined( HAVE_LIBRPM ) && defined( linux )
     config_require(host/data_access/swinst_rpm)
 #elif defined( HAVE_PKGLOCS_H ) || defined( hpux9 ) || defined( hpux10 ) || defined( hpux11 ) || defined( freebsd2 ) || defined( linux ) || defined( openbsd )
@@ -31,4 +33,7 @@
     config_require(host/data_access/swinst_null)
 #endif
 
+void init_swinst( void );
+void shutdown_swinst( void );
+
 #endif /* NETSNMP_ACCESS_SWINST_CONFIG_H */
diff --git a/agent/mibgroup/host/data_access/swinst_apt.c b/agent/mibgroup/host/data_access/swinst_apt.c
new file mode 100644
index 0000000..8035a90
--- /dev/null
+++ b/agent/mibgroup/host/data_access/swinst_apt.c
@@ -0,0 +1,101 @@
+/*
+ * swinst_rpm.c:
+ *     hrSWInstalledTable data access:
+ */
+#include <net-snmp/net-snmp-config.h>
+
+#include <stdio.h>
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/library/container.h>
+#include <net-snmp/library/snmp_debug.h>
+#include <net-snmp/data_access/swinst.h>
+
+char pkg_directory[SNMP_MAXBUF];
+static char apt_fmt[SNMP_MAXBUF];
+
+/* ---------------------------------------------------------------------
+ */
+void
+netsnmp_swinst_arch_init(void)
+{
+    strlcpy(pkg_directory, "/var/lib/dpkg/info", sizeof(pkg_directory));
+    snprintf(apt_fmt, SNMP_MAXBUF, "%%%d[^#]#%%%d[^#]#%%%d[^#]#%%%d[^#]#%%%d[^#]#%%%ds",
+	SNMP_MAXBUF, SNMP_MAXBUF, SNMP_MAXBUF,
+	SNMP_MAXBUF, SNMP_MAXBUF, SNMP_MAXBUF);
+}
+
+void
+netsnmp_swinst_arch_shutdown(void)
+{
+     /* Nothing to do */
+     return;
+}
+
+/* ---------------------------------------------------------------------
+ */
+int
+netsnmp_swinst_arch_load( netsnmp_container *container, u_int flags)
+{
+    FILE *p = popen("dpkg-query --show --showformat '${Package}#${Version}#${Section}#${Priority}#${Essential}#${Status}\n'", "r");
+    char package[SNMP_MAXBUF];
+    char version[SNMP_MAXBUF];
+    char section[SNMP_MAXBUF];
+    char priority[SNMP_MAXBUF];
+    char essential[SNMP_MAXBUF];
+    char status[SNMP_MAXBUF];
+    char buf[BUFSIZ];
+    netsnmp_swinst_entry *entry;
+    int i = 0;
+
+    if (p == NULL) {
+	snmp_perror("dpkg-list");
+	return 1;
+    }
+
+    while (fgets(buf, BUFSIZ, p)) {
+	DEBUGMSG(("swinst_apt", "entry: %s\n", buf));
+        entry = netsnmp_swinst_entry_create( i++ );
+        if (NULL == entry)
+            continue;   /* error already logged by function */
+        CONTAINER_INSERT(container, entry);
+
+	sscanf(buf, apt_fmt, package, version, section, priority, essential, status);
+	if (strstr(status, "not-installed"))
+	    continue;
+
+        entry->swName_len = snprintf( entry->swName, sizeof(entry->swName),
+                                      "%s-%s", package, version);
+	if (entry->swName_len >= sizeof(entry->swName))
+	    entry->swName_len = sizeof(entry->swName)-1;
+        entry->swType = (strcmp(essential, "yes") == 0)
+                        ? 2      /* operatingSystem */
+                        : 4;     /*  application    */
+
+        entry->swDate_len = 8;
+	memcpy(entry->swDate, "\0\0\1\1\0\0\0\0", 8);
+    }
+    pclose(p);
+    DEBUGMSGTL(("swinst:load:arch"," loaded %zd entries\n",
+                CONTAINER_SIZE(container)));
+
+    return 0;
+}
diff --git a/agent/mibgroup/host/data_access/swinst_darwin.c b/agent/mibgroup/host/data_access/swinst_darwin.c
index 02c8b43..bbf5a2f 100644
--- a/agent/mibgroup/host/data_access/swinst_darwin.c
+++ b/agent/mibgroup/host/data_access/swinst_darwin.c
@@ -258,6 +258,8 @@
             snprintf(entry->swName, sizeof(entry->swName),
                      "%s %s", CFStringGetCStringPtr(prodName,0),
                      CFStringGetCStringPtr(version,0));
+	if (entry->swName_len >= sizeof(entry->swName))
+	    entry->swName_len = sizeof(entry->swName)-1;
 
         DEBUGMSGTL(("swinst:arch:darwin", "\t%s %s\n", file, entry->swName));
 
diff --git a/agent/mibgroup/host/data_access/swinst_null.c b/agent/mibgroup/host/data_access/swinst_null.c
index 48adcd7..e4f9158 100644
--- a/agent/mibgroup/host/data_access/swinst_null.c
+++ b/agent/mibgroup/host/data_access/swinst_null.c
@@ -44,7 +44,7 @@
 netsnmp_swinst_arch_load( netsnmp_container *container, u_int flags)
 {
     /* Nothing to do */
-    DEBUGMSGTL(("swinst:load:arch"," loaded %d entries\n",
+    DEBUGMSGTL(("swinst:load:arch"," loaded %" NETSNMP_PRIz "d entries\n",
                 CONTAINER_SIZE(container)));
 
     return 0;
diff --git a/agent/mibgroup/host/data_access/swinst_pkginfo.c b/agent/mibgroup/host/data_access/swinst_pkginfo.c
index 3e617f6..bc8ee2e 100644
--- a/agent/mibgroup/host/data_access/swinst_pkginfo.c
+++ b/agent/mibgroup/host/data_access/swinst_pkginfo.c
@@ -88,10 +88,11 @@
 #ifdef HAVE_PKGINFO
     char                 *v, *c;
 #endif
-    char                  buf[ BUFSIZ ], *cp;
+    char                  buf[ BUFSIZ ];
+    unsigned char        *cp;
     time_t                install_time;
     size_t                date_len;
-    int                   rc, i = 1;
+    int                   i = 1;
     netsnmp_swinst_entry *entry;
 
     if ( !pkg_directory[0] ) {
@@ -107,7 +108,7 @@
         entry = netsnmp_swinst_entry_create( i++ );
         if (NULL == entry)
             continue;   /* error already logged by function */
-        rc = CONTAINER_INSERT(container, entry);
+        CONTAINER_INSERT(container, entry);
 
 #ifdef HAVE_PKGINFO
         v = pkgparam( dp->d_name, "VERSION" );
@@ -115,6 +116,8 @@
 
         entry->swName_len = snprintf( entry->swName, sizeof(entry->swName),
                                       "%s-%s", dp->d_name, v );
+	if (entry->swName_len >= sizeof(entry->swName))
+	    entry->swName_len = sizeof(entry->swName)-1;
         entry->swType = (NULL != strstr( c, "system"))
                         ? 2      /* operatingSystem */
                         : 4;     /*  application    */
@@ -123,6 +126,8 @@
 #else
         entry->swName_len = snprintf( entry->swName, sizeof(entry->swName),
                                       "%s", dp->d_name );
+	if (entry->swName_len >= sizeof(entry->swName))
+	    entry->swName_len = sizeof(entry->swName)-1;
 
         /* no information about O/S vs application packages ??? */
 #endif
@@ -137,7 +142,7 @@
     closedir( d );
 
     DEBUGMSGTL(("swinst:load:arch"," loaded %d entries\n",
-                CONTAINER_SIZE(container)));
+                (int)CONTAINER_SIZE(container)));
 
     return 0;
 }
diff --git a/agent/mibgroup/host/data_access/swinst_rpm.c b/agent/mibgroup/host/data_access/swinst_rpm.c
index a53aaea..dae8f6a 100644
--- a/agent/mibgroup/host/data_access/swinst_rpm.c
+++ b/agent/mibgroup/host/data_access/swinst_rpm.c
@@ -124,6 +124,8 @@
 
         entry->swName_len = snprintf( entry->swName, sizeof(entry->swName),
                                       "%s-%s-%s", n, v, r);
+        if (entry->swName_len > sizeof(entry->swName))
+            entry->swName_len = sizeof(entry->swName);
         entry->swType = (NULL != strstr( g, "System Environment"))
                         ? 2      /* operatingSystem */
                         : 4;     /*  application    */
diff --git a/agent/mibgroup/host/data_access/swrun.c b/agent/mibgroup/host/data_access/swrun.c
index a24669f..812030f 100644
--- a/agent/mibgroup/host/data_access/swrun.c
+++ b/agent/mibgroup/host/data_access/swrun.c
@@ -94,7 +94,7 @@
         return 0;    /* or -1 */
 
     it = CONTAINER_ITERATOR( swrun_container );
-    while ( entry = ITERATOR_NEXT( it )) {
+    while ((entry = (netsnmp_swrun_entry*)ITERATOR_NEXT( it )) != NULL) {
         if (0 == strcmp( entry->hrSWRunName, name ))
             i++;
     }
@@ -153,8 +153,6 @@
 netsnmp_container *
 netsnmp_swrun_container(void)
 {
-    netsnmp_container *container;
-
     DEBUGMSGTL(("swrun:container", "init\n"));
 
     /*
diff --git a/agent/mibgroup/host/data_access/swrun.h b/agent/mibgroup/host/data_access/swrun.h
index 4ff1598..2ae53f5 100644
--- a/agent/mibgroup/host/data_access/swrun.h
+++ b/agent/mibgroup/host/data_access/swrun.h
@@ -32,7 +32,7 @@
 # else
     config_require(host/data_access/swrun_kvm_proc)
 # endif
-#elif defined( aix4 ) || defined( aix5 ) || defined( aix6 )
+#elif defined( aix4 ) || defined( aix5 ) || defined( aix6 ) || defined( aix7 )
     config_require(host/data_access/swrun_procinfo)
 #elif HAVE_KVM_GETPROCS
     config_require(host/data_access/swrun_kinfo)
@@ -45,6 +45,9 @@
     config_require(host/data_access/swrun_null)
 #endif
 
+void init_swrun(void);
+void shutdown_swrun(void);
+
 netsnmp_cache     *netsnmp_swrun_cache(void);
 netsnmp_container *netsnmp_swrun_container(void);
 
diff --git a/agent/mibgroup/host/data_access/swrun_kinfo.c b/agent/mibgroup/host/data_access/swrun_kinfo.c
index 5adcb90..20fde72 100644
--- a/agent/mibgroup/host/data_access/swrun_kinfo.c
+++ b/agent/mibgroup/host/data_access/swrun_kinfo.c
@@ -273,7 +273,28 @@
 #endif
                              ;
 
+#ifdef netbsd5
         switch (proc_table[i].SWRUN_K_STAT) {
+	case LSONPROC:
+        case LSRUN:   entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNING;
+                      break;
+        case LSSLEEP: entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNABLE;
+                      break;
+        case LSIDL:
+	case LSSUSPENDED:
+        case LSSTOP:  entry->hrSWRunStatus = HRSWRUNSTATUS_NOTRUNNABLE;
+                      break;
+	case LSDEAD:
+        case LSZOMB:  entry->hrSWRunStatus = HRSWRUNSTATUS_INVALID;
+		      break;
+        default:   
+		      entry->hrSWRunStatus = HRSWRUNSTATUS_INVALID;
+		      snmp_log(LOG_ERR, "Bad process status %c (0x%x)\n", proc_table[i].SWRUN_K_STAT, proc_table[i].SWRUN_K_STAT);
+                      break;
+        }
+#else
+        switch (proc_table[i].SWRUN_K_STAT & 0xFF) {
+        case SONPROC:
         case SRUN:    entry->hrSWRunStatus = HRSWRUNSTATUS_RUNNING;
                       break;
         case SSLEEP:
@@ -284,10 +305,16 @@
         case SSTOP:
         case SLOCK:   entry->hrSWRunStatus = HRSWRUNSTATUS_NOTRUNNABLE;
                       break;
-        case SZOMB:
-        default:      entry->hrSWRunStatus = HRSWRUNSTATUS_INVALID;   /* i.e. "not loaded" */
+
+        case SDEAD:
+        case SZOMB:   entry->hrSWRunStatus = HRSWRUNSTATUS_INVALID;   /* i.e. "not loaded" */
+                      break;
+
+        default:      entry->hrSWRunStatus = HRSWRUNSTATUS_INVALID;   /* Actually invalid  */
+		      snmp_log(LOG_ERR, "Bad process status %c (0x%x)\n", proc_table[i].SWRUN_K_STAT, proc_table[i].SWRUN_K_STAT);
                       break;
         }
+#endif
         
 #if defined(freebsd5) && __FreeBSD_version >= 500014
          entry->hrSWRunPerfCPU  = (proc_table[i].ki_rusage.ru_utime.tv_sec*1000000 + proc_table[i].ki_rusage.ru_utime.tv_usec) / 10000;
diff --git a/agent/mibgroup/host/data_access/swrun_procfs_psinfo.c b/agent/mibgroup/host/data_access/swrun_procfs_psinfo.c
index c8124d4..ed961ee 100644
--- a/agent/mibgroup/host/data_access/swrun_procfs_psinfo.c
+++ b/agent/mibgroup/host/data_access/swrun_procfs_psinfo.c
@@ -141,7 +141,7 @@
     closedir( procdir );
 
     DEBUGMSGTL(("swrun:load:arch"," loaded %d entries\n",
-                CONTAINER_SIZE(container)));
+                (int)CONTAINER_SIZE(container)));
 
     return 0;
 }
diff --git a/agent/mibgroup/host/data_access/swrun_procfs_status.c b/agent/mibgroup/host/data_access/swrun_procfs_status.c
index 688fc38..f059aa5 100644
--- a/agent/mibgroup/host/data_access/swrun_procfs_status.c
+++ b/agent/mibgroup/host/data_access/swrun_procfs_status.c
@@ -55,7 +55,7 @@
     DIR                 *procdir = NULL;
     struct dirent       *procentry_p;
     FILE                *fp;
-    int                  pid, rc, i;
+    int                  pid, i;
     unsigned long long   cpu;
     char                 buf[BUFSIZ], buf2[BUFSIZ], *cp;
     netsnmp_swrun_entry *entry;
@@ -77,7 +77,6 @@
         entry = netsnmp_swrun_entry_create(pid);
         if (NULL == entry)
             continue;   /* error already logged by function */
-        rc = CONTAINER_INSERT(container, entry);
 
         /*
          * Now extract the interesting information
@@ -89,8 +88,16 @@
          */
         snprintf( buf2, BUFSIZ, "/proc/%d/status", pid );
         fp = fopen( buf2, "r" );
+        if (!fp) {
+            netsnmp_swrun_entry_free(entry);
+            continue; /* file (process) probably went away */
+	}
         memset(buf, 0, sizeof(buf));
-        fgets( buf, BUFSIZ-1, fp );
+        if (fgets( buf, BUFSIZ-1, fp ) == NULL) {
+            fclose(fp);
+            netsnmp_swrun_entry_free(entry);
+            continue;
+        }
         fclose(fp);
 
         for ( cp = buf; *cp != ':'; cp++ )
@@ -110,11 +117,15 @@
          */
         snprintf( buf2, BUFSIZ, "/proc/%d/cmdline", pid );
         fp = fopen( buf2, "r" );
+        if (!fp) {
+            netsnmp_swrun_entry_free(entry);
+            continue; /* file (process) probably went away */
+        }
+        entry->hrSWRunType = HRSWRUNTYPE_APPLICATION;
         memset(buf, 0, sizeof(buf));
         cp = fgets( buf, BUFSIZ-1, fp );
         fclose(fp);
-
-        if ( cp ) {
+        if (cp != NULL) {
             /*
              *     argv[0]   is hrSWRunPath
              */ 
@@ -136,23 +147,26 @@
                           (int)sizeof(entry->hrSWRunParameters) - 1,
                           buf + entry->hrSWRunPath_len + 1);
         } else {
-            memcpy(entry->hrSWRunPath, entry->hrSWRunName, entry->hrSWRunName_len);
-            entry->hrSWRunPath_len       = entry->hrSWRunName_len;
+            /* empty /proc/PID/cmdline, it's probably a kernel thread */
+            entry->hrSWRunPath_len = 0;
             entry->hrSWRunParameters_len = 0;
             entry->hrSWRunType = HRSWRUNTYPE_OPERATINGSYSTEM;
         }
- 
-        /*
-         * XXX - No information regarding system processes vs applications
-         */
-        entry->hrSWRunType = HRSWRUNTYPE_APPLICATION;
 
         /*
          *   {xxx} {xxx} STATUS  {xxx}*10  UTIME STIME  {xxx}*8 RSS
          */
         snprintf( buf, BUFSIZ, "/proc/%d/stat", pid );
         fp = fopen( buf, "r" );
-        fgets( buf, BUFSIZ-1, fp );
+        if (!fp) {
+            netsnmp_swrun_entry_free(entry);
+            continue; /* file (process) probably went away */
+	}
+        if (fgets( buf, BUFSIZ-1, fp ) == NULL) {
+            fclose(fp);
+            netsnmp_swrun_entry_free(entry);
+            continue;
+        }
         fclose(fp);
 
         cp = buf;
@@ -191,10 +205,11 @@
         }
         entry->hrSWRunPerfMem  = atol( cp );       /* rss   */
         entry->hrSWRunPerfMem *= (pagesize/1024);  /* in kB */
+        CONTAINER_INSERT(container, entry);
     }
     closedir( procdir );
 
-    DEBUGMSGTL(("swrun:load:arch"," loaded %d entries\n",
+    DEBUGMSGTL(("swrun:load:arch"," loaded %" NETSNMP_PRIz "d entries\n",
                 CONTAINER_SIZE(container)));
 
     return 0;
diff --git a/agent/mibgroup/host/hrSWInstalledTable.c b/agent/mibgroup/host/hrSWInstalledTable.c
index 2f44702..6f940bf 100644
--- a/agent/mibgroup/host/hrSWInstalledTable.c
+++ b/agent/mibgroup/host/hrSWInstalledTable.c
@@ -45,10 +45,10 @@
     size_t          hrSWInstalledTable_oid_len =
         OID_LENGTH(hrSWInstalledTable_oid);
     netsnmp_handler_registration *reg;
-    netsnmp_mib_handler *handler;
-    netsnmp_container *container;
-    netsnmp_cache *cache;
-    netsnmp_table_registration_info *table_info;
+    netsnmp_mib_handler *handler = NULL;
+    netsnmp_container *container = NULL;
+    netsnmp_cache *cache = NULL;
+    netsnmp_table_registration_info *table_info = NULL;
 
     DEBUGMSGTL(("hrSWInstalled", "initialize\n"));
 
diff --git a/agent/mibgroup/host/hrSWRunPerfTable.c b/agent/mibgroup/host/hrSWRunPerfTable.c
index 5067bb2..0bf471b 100644
--- a/agent/mibgroup/host/hrSWRunPerfTable.c
+++ b/agent/mibgroup/host/hrSWRunPerfTable.c
@@ -44,8 +44,8 @@
     size_t          hrSWRunPerfTable_oid_len =
         OID_LENGTH(hrSWRunPerfTable_oid);
     netsnmp_handler_registration *reg;
-    netsnmp_mib_handler *handler;
-    netsnmp_table_registration_info *table_info;
+    netsnmp_mib_handler *handler = NULL;
+    netsnmp_table_registration_info *table_info = NULL;
 
     reg =
         netsnmp_create_handler_registration("hrSWRunPerfTable",
diff --git a/agent/mibgroup/host/hrSWRunTable.c b/agent/mibgroup/host/hrSWRunTable.c
index c09f58f..9d92841 100644
--- a/agent/mibgroup/host/hrSWRunTable.c
+++ b/agent/mibgroup/host/hrSWRunTable.c
@@ -19,8 +19,8 @@
 #include <net-snmp/agent/table_container.h>
 #include <net-snmp/data_access/swrun.h>
 #include <net-snmp/agent/cache_handler.h>
-#include "hrSWRunTable.h"
 #include "data_access/swrun.h"
+#include "hrSWRunTable.h"
 
 #include <signal.h>
 
diff --git a/agent/mibgroup/host/hr_disk.c b/agent/mibgroup/host/hr_disk.c
index 7725fa8..679264b 100644
--- a/agent/mibgroup/host/hr_disk.c
+++ b/agent/mibgroup/host/hr_disk.c
@@ -192,8 +192,10 @@
 static void     parse_disk_config(const char *, char *);
 static void     free_disk_config(void);
 
+#ifdef linux
 static void     Add_LVM_Disks(void);
 static void     Remove_LVM_Disks(void);
+#endif
 
         /*********************
 	 *
@@ -287,7 +289,9 @@
 void
 shutdown_hr_disk(void)
 {
+#ifdef linux
     Remove_LVM_Disks();
+#endif
 }
 
 #define ITEM_STRING	1
@@ -1335,6 +1339,7 @@
 #endif
 
 
+#ifdef linux
 #if defined(HAVE_REGEX_H) && defined(HAVE_REGCOMP)
 static char    *lvm_device_names[MAX_NUMBER_DISK_TYPES];
 static int      lvm_device_count;
@@ -1376,7 +1381,7 @@
     while ((d = readdir(dir)) != NULL) {
         res = regexec(&lvol, d->d_name, 0, NULL, 0);
         if (res == 0) {
-            char           *path = malloc(PATH_MAX + 1);
+            char *path = (char*)malloc(PATH_MAX + 1);
             if (path == NULL) {
                 DEBUGMSGTL(("host/hr_disk",
                             "Add_LVM_Disks: cannot allocate memory for device %s",
@@ -1418,4 +1423,4 @@
     lvm_device_count = 0;
 #endif
 }
-
+#endif
diff --git a/agent/mibgroup/host/hr_filesys.c b/agent/mibgroup/host/hr_filesys.c
index e85bfec..60a1629 100644
--- a/agent/mibgroup/host/hr_filesys.c
+++ b/agent/mibgroup/host/hr_filesys.c
@@ -53,7 +53,11 @@
 #include <stdlib.h>
 #endif
 
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if HAVE_NBUTIL_H
+#include <nbutil.h>
+#endif
+
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
 #include <sys/mntctl.h>
 #include <sys/vmount.h>
 #include <sys/statfs.h>
@@ -120,6 +124,16 @@
 #define	HRFS_name	f_mntfromname
 #define HRFS_statfs	statvfs
 #define	HRFS_type	f_fstypename
+#elif defined(HAVE_GETFSSTAT) && !defined(HAVE_STATFS) && defined(HAVE_STATVFS)
+
+static struct statfs	*fsstats = NULL;
+struct statfs		*HRFS_entry;
+static int		fscount;
+#define HRFS_mount	f_mntonname
+#define HRFS_name	f_mntfromname
+#define HRFS_statfs	statvfs
+#define HRFS_type	f_fstypename
+
 #elif defined(HAVE_GETFSSTAT)
 static struct statfs *fsstats = 0;
 static int      fscount;
@@ -148,7 +162,7 @@
 #define HRFS_statfs	win_statfs
 #define	HRFS_type	f_type
 
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
 
 struct vmount *aixmnt, *aixcurr;
 struct HRFS_entry {
@@ -232,7 +246,7 @@
 {
     REGISTER_MIB("host/hr_filesys", hrfsys_variables, variable4,
                  hrfsys_variables_oid);
-#if defined(aix4) || defined(aix5) || defined(aix6) 
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
     /* something leaks, make it idiot-safe */
     aixmnt = NULL;
     aixcurr = NULL;
@@ -346,9 +360,9 @@
         *var_len = strlen(string);
         return (u_char *) string;
     case HRFSYS_RMOUNT:
-        if (Check_HR_FileSys_NFS()) {
+        if (Check_HR_FileSys_NFS())
             strlcpy(string, HRFS_entry->HRFS_name, sizeof(string));
-        } else
+        else
             string[0] = '\0';
         *var_len = strlen(string);
         return (u_char *) string;
@@ -425,7 +439,7 @@
             break;
 #endif
         }
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         switch (HRFS_entry->HRFS_type) {
         case MNT_AIX:
         case MNT_JFS:
@@ -546,10 +560,14 @@
 #if defined(HAVE_STATVFS) && defined(__NetBSD__)
 	long_return = HRFS_entry->f_flag & MNT_RDONLY ? 2 : 1;
 #elif defined(HAVE_GETFSSTAT)
+#if HAVE_STRUCT_STATFS_F_FLAGS
         long_return = HRFS_entry->f_flags & MNT_RDONLY ? 2 : 1;
+#else
+        long_return = HRFS_entry->f_flag & MNT_RDONLY ? 2 : 1;
+#endif
 #elif defined(cygwin)
         long_return = 1;
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         long_return = (HRFS_entry->HRFS_flags & MNT_READONLY) == 0 ? 1 : 2;
 #else
 #if HAVE_HASMNTOPT
@@ -612,7 +630,7 @@
     getfsstat(fsstats, fscount * sizeof(*fsstats), MNT_NOWAIT);
 #endif
     HRFS_index = 0;
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
     int ret;
     uint size;
     ret = 0;
@@ -707,7 +725,7 @@
         return -1;
     HRFS_entry = fsstats + HRFS_index;
     return ++HRFS_index;
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
     if(aixcurr == NULL) {
         if(aixmnt != NULL) free(aixmnt);
         aixmnt = NULL;
@@ -779,7 +797,7 @@
 #if HAVE_GETFSSTAT && !defined(MFSNAMELEN)
     if ((HRFS_entry->HRFS_type == MOUNT_NFS) ||
         (HRFS_entry->HRFS_type == MOUNT_AFS))
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
     if(HRFS_entry->HRFS_type == MNT_NFS || HRFS_entry->HRFS_type == MNT_NFS3)
 #else /* HAVE_GETFSSTAT */
     if ( HRFS_entry->HRFS_type != NULL && (
@@ -823,7 +841,7 @@
     if (fsstats)
         free((char *) fsstats);
     fsstats = NULL;
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
     if(aixmnt != NULL) {
         free(aixmnt);
         aixmnt = NULL;
@@ -880,13 +898,13 @@
                 continue;
 
             ++cp2;
-            while (isspace(*cp2))
+            while (isspace(*cp2 & 0xFF))
                 ++cp2;          /* Now find the dump level */
 
             if (level == FULL_DUMP) {
                 if (*(cp2++) != '0')
                     continue;   /* Not interested in partial dumps */
-                while (isspace(*cp2))
+                while (isspace(*cp2 & 0xFF))
                     ++cp2;
 
                 dumpdate = ctime_to_timet(cp2);
@@ -895,7 +913,7 @@
             } else {            /* Partial Dump */
                 if (*(cp2++) == '0')
                     continue;   /* Not interested in full dumps */
-                while (isspace(*cp2))
+                while (isspace(*cp2 & 0xFF))
                     ++cp2;
 
                 tmp = ctime_to_timet(cp2);
diff --git a/agent/mibgroup/host/hr_print.h b/agent/mibgroup/host/hr_print.h
index 23ca143..7acee8d 100644
--- a/agent/mibgroup/host/hr_print.h
+++ b/agent/mibgroup/host/hr_print.h
@@ -6,6 +6,7 @@
 #define _MIBGROUP_HRPRINT_H
 
 config_require(host/hr_device)
+config_require(util_funcs)
 
 extern void     init_hr_print(void);
 extern FindVarMethod var_hrprint;
diff --git a/agent/mibgroup/host/hr_storage.c b/agent/mibgroup/host/hr_storage.c
index 754884c..264fecc 100644
--- a/agent/mibgroup/host/hr_storage.c
+++ b/agent/mibgroup/host/hr_storage.c
@@ -19,13 +19,7 @@
 #include <unistd.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <windows.h>
-#  include <errno.h>
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -112,7 +106,10 @@
 #endif                          /* if HAVE_SYS_SYSCTL_H */
 #endif                          /* ifndef dynix */
 
-#if (defined(aix4) || defined(aix5) || defined(aix6)) && HAVE_LIBPERFSTAT_H
+#if (defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)) && HAVE_LIBPERFSTAT_H
+#ifdef HAVE_SYS_PROTOSW_H
+#include <sys/protosw.h>
+#endif
 #include <libperfstat.h>
 #endif
 
@@ -160,6 +157,9 @@
 #else
 #include <strings.h>
 #endif
+#if HAVE_NBUTIL_H
+#include <nbutil.h>
+#endif
 
 #include <net-snmp/utilities.h>
 #include <net-snmp/output_api.h>
@@ -215,6 +215,14 @@
 #define HRFS_mount	mnt_dir
 #define HRFS_HAS_FRSIZE HAVE_STRUCT_STATVFS_F_FRSIZE
 
+#elif defined(HAVE_GETFSSTAT) && !defined(HAVE_STATFS) && defined(HAVE_STATVFS)
+
+extern struct statfs *HRFS_entry;
+extern int      fscount;
+#define HRFS_statfs	statvfs
+#define HRFS_mount	f_mntonname
+#define HRFS_HAS_FRSIZE STRUCT_STATVFS_HAS_F_FRSIZE
+
 #elif defined(HAVE_GETFSSTAT)
 
 extern struct statfs *HRFS_entry;
@@ -559,7 +567,7 @@
         if (store_idx > NETSNMP_MEM_TYPE_MAX)
             if (storageUseNFS && Check_HR_FileSys_NFS())
                 storage_type_id[storage_type_len - 1] = 10;     /* Network Disk */
-#if HAVE_HASMNTOPT && !(defined(aix4) || defined(aix5) || defined(aix6))
+#if HAVE_HASMNTOPT && !(defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7))
             /* 
              * hasmntopt takes "const struct mntent*", but HRFS_entry has been
              * defined differently for AIX, so skip this for AIX
diff --git a/agent/mibgroup/host/hr_swinst.c b/agent/mibgroup/host/hr_swinst.c
index fe969af..c03ae44 100644
--- a/agent/mibgroup/host/hr_swinst.c
+++ b/agent/mibgroup/host/hr_swinst.c
@@ -131,7 +131,7 @@
 int             header_hrswInstEntry(struct variable *, oid *, size_t *,
                                      int, size_t *, WriteMethod **);
 
-extern struct timeval starttime;
+#define starttime (*(const struct timeval*)netsnmp_get_agent_starttime())
 
         /*********************
 	 *
@@ -252,7 +252,6 @@
                  hrswinst_variables_oid);
 }
 
-
 /*
  * header_hrswinst(...
  * Arguments:
@@ -440,7 +439,7 @@
 #ifdef HAVE_PKGINFO
             pver = pkgparam(swi->swi_name, "VERSION");
             /* 1 spot for the terminating null and one for the dash */
-            if (pver &&
+            if (pver && 
                (strlen(pver) + 2 + strlen(string) <= sizeof(string))) {
                 strcat(string, "-");
                 strcat(string, pver);
diff --git a/agent/mibgroup/host/hr_swrun.c b/agent/mibgroup/host/hr_swrun.c
index b1727cb..dda1d3f 100644
--- a/agent/mibgroup/host/hr_swrun.c
+++ b/agent/mibgroup/host/hr_swrun.c
@@ -91,7 +91,7 @@
 
 #include "kernel_sunos5.h"
 #endif
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
 #include <procinfo.h>
 #include <sys/types.h>
 #endif
@@ -128,7 +128,7 @@
 struct kinfo_proc *proc_table;
 #elif defined(solaris2)
 int            *proc_table;
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
 struct procsinfo *proc_table;
 #else
 struct proc    *proc_table;
@@ -679,7 +679,7 @@
 #else
         strlcpy(string, proc_buf->p_user.u_comm, sizeof(string));
 #endif
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         strlcpy(string, proc_table[LowProcIndex].pi_comm, sizeof(string));
         cp = strchr(string, ' ');
         if (cp != NULL)
@@ -802,7 +802,7 @@
             *cp1++ = *cp++;
         *cp1 = 0;
 #endif
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         strlcpy(string, proc_table[LowProcIndex].pi_comm, sizeof(string));
         cp = strchr(string, ' ');
         if (cp != NULL)
@@ -907,7 +907,7 @@
             cp++;
         strcpy(string, cp);
 #endif
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         cp = strchr(proc_table[LowProcIndex].pi_comm, ' ');
         if (cp != NULL) {
             cp++;
@@ -987,7 +987,7 @@
             long_return = 2;    /* operatingSystem */
         else
             long_return = 4;    /* application */
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
 		if (proc_table[LowProcIndex].pi_flags & SKPROC) {
 			long_return = 2;	/* kernel process */
 		} else
@@ -1074,7 +1074,7 @@
 #else
         switch (proc_buf->p_stat) {
 #endif
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         switch (proc_table[LowProcIndex].pi_state) {
 #else
         switch (proc_table[LowProcIndex].p_stat) {
@@ -1217,7 +1217,7 @@
                 long_return = 0;
             }
         }
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         long_return = proc_table[LowProcIndex].pi_ru.ru_utime.tv_sec * 100 +
             proc_table[LowProcIndex].pi_ru.ru_utime.tv_usec / 10000000 + /* nanoseconds */
             proc_table[LowProcIndex].pi_ru.ru_stime.tv_sec * 100 +
@@ -1269,7 +1269,7 @@
 #else
         long_return = proc_buf->p_swrss;
 #endif
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         long_return = proc_table[LowProcIndex].pi_size * getpagesize() / 1024;
 #elif HAVE_KVM_GETPROC2
         long_return = proc_table[LowProcIndex].p_vm_tsize +
@@ -1519,7 +1519,7 @@
             nproc = current_proc_entry;
         closedir(f);
     }
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
     {
 		pid_t proc_index = 0;
 		int avail = 1024;
@@ -1631,7 +1631,7 @@
         if (proc_table[current_proc_entry].kp_proc.p_stat != 0)
             return proc_table[current_proc_entry++].kp_proc.p_pid;
     #endif
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         if (proc_table[current_proc_entry].pi_state != 0)
             return proc_table[current_proc_entry++].pi_pid;
         else
@@ -1666,7 +1666,7 @@
 #if defined(hpux10) || defined(hpux11) || HAVE_KVM_GETPROCS || HAVE_KVM_GETPROC2 || defined(solaris2)
     total = nproc;
 #else
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
     for (i = 0; i < nproc; ++i) {
         if (proc_table[i].pi_state != 0)
 #elif !defined(linux) && !defined(cygwin) && !defined(dynix)
diff --git a/agent/mibgroup/host/hrh_filesys.c b/agent/mibgroup/host/hrh_filesys.c
index 6c75b1a..ec343ed 100644
--- a/agent/mibgroup/host/hrh_filesys.c
+++ b/agent/mibgroup/host/hrh_filesys.c
@@ -54,7 +54,7 @@
 #include <stdlib.h>
 #endif
 
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
 #include <sys/mntctl.h>
 #include <sys/vmount.h>
 #include <sys/statfs.h>
@@ -229,13 +229,13 @@
         long_return = fsys_idx;
         return (u_char *) & long_return;
     case HRFSYS_MOUNT:
-        snprintf(string, sizeof(string), HRFS_entry->path);
+        snprintf(string, sizeof(string), "%s", HRFS_entry->path);
         string[ sizeof(string)-1 ] = 0;
         *var_len = strlen(string);
         return (u_char *) string;
     case HRFSYS_RMOUNT:
         if (HRFS_entry->flags & NETSNMP_FS_FLAG_REMOTE) {
-            snprintf(string, sizeof(string), HRFS_entry->device);
+            snprintf(string, sizeof(string), "%s", HRFS_entry->device);
             string[ sizeof(string)-1 ] = 0;
         } else
             string[0] = '\0';
@@ -284,6 +284,7 @@
     netsnmp_cache_check_and_reload( c );
 
     HRFS_entry = NULL;
+    HRFS_index = 0;
 }
 
 int
@@ -298,7 +299,8 @@
     while ( HRFS_entry && !(HRFS_entry->flags & NETSNMP_FS_FLAG_ACTIVE))
         HRFS_entry = netsnmp_fsys_get_next( HRFS_entry );
 
-    return (HRFS_entry ? HRFS_entry->idx.oids[0] : -1 );
+    HRFS_index = (HRFS_entry ? HRFS_entry->idx.oids[0] : -1 );
+    return HRFS_index;
 }
 
 
@@ -345,13 +347,13 @@
                 continue;
 
             ++cp2;
-            while (isspace(*cp2))
+            while (isspace(0xFF & *cp2))
                 ++cp2;          /* Now find the dump level */
 
             if (level == FULL_DUMP) {
                 if (*(cp2++) != '0')
                     continue;   /* Not interested in partial dumps */
-                while (isspace(*cp2))
+                while (isspace(0xFF & *cp2))
                     ++cp2;
 
                 dumpdate = ctime_to_timet(cp2);
@@ -360,7 +362,7 @@
             } else {            /* Partial Dump */
                 if (*(cp2++) == '0')
                     continue;   /* Not interested in full dumps */
-                while (isspace(*cp2))
+                while (isspace(0xFF & *cp2))
                     ++cp2;
 
                 tmp = ctime_to_timet(cp2);
diff --git a/agent/mibgroup/host_res.h b/agent/mibgroup/host_res.h
index d9f54b9..1dba388 100644
--- a/agent/mibgroup/host_res.h
+++ b/agent/mibgroup/host_res.h
@@ -21,12 +21,12 @@
 #define _KERNEL 1
 #define _I_DEFINED_KERNEL
 #endif
-#if defined (WIN32) && !defined (cygwin)
-#include <winsock.h>
-#else /* WIN32 */
+#if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
+#endif
+#if HAVE_NET_IF_H
 #include <net/if.h>
-#endif /* WIN32 */
+#endif
 #ifdef _I_DEFINED_KERNEL
 #undef _KERNEL
 #endif
diff --git a/agent/mibgroup/if-mib/data_access/interface.c b/agent/mibgroup/if-mib/data_access/interface.c
index 629c99a..5f5c7ff 100644
--- a/agent/mibgroup/if-mib/data_access/interface.c
+++ b/agent/mibgroup/if-mib/data_access/interface.c
@@ -250,8 +250,8 @@
         return NULL;
     }
 
-    tmp.name = (char *)name;
-    return CONTAINER_FIND(container->next, &tmp);
+    tmp.name = NETSNMP_REMOVE_CONST(char *, name);
+    return (netsnmp_interface_entry*)CONTAINER_FIND(container->next, &tmp);
 }
 
 /**
@@ -372,7 +372,7 @@
     }
    
     if (NULL != it)
-        e = ITERATOR_FIRST(it);
+        e = (netsnmp_interface_entry*)ITERATOR_FIRST(it);
 }
 
 int
@@ -406,7 +406,7 @@
     if (entry)
         *entry = e;
 
-    e = ITERATOR_NEXT(it);
+    e = (netsnmp_interface_entry*)ITERATOR_NEXT(it);
 
     return 1;
 }
@@ -469,7 +469,7 @@
 static void
 _access_interface_entry_save_name(const char *name, oid index)
 {
-    oid tmp;
+    int tmp;
 
     if(NULL == name)
         return;
@@ -477,19 +477,17 @@
     tmp = se_find_value_in_slist("interfaces", name);
     if (tmp == SE_DNE) {
         se_add_pair_to_slist("interfaces", strdup(name), index);
-        DEBUGMSGTL(("access:interface:ifIndex", "saved ifIndex %lu for %s\n",
+        DEBUGMSGTL(("access:interface:ifIndex",
+                    "saved ifIndex %" NETSNMP_PRIo "u for %s\n",
                     index, name));
     }
     else
-        if (index != tmp) {
-            static int logged = 0;
-            if (!logged) {
-                snmp_log(LOG_ERR, "IfIndex of an interface changed. Such " \
-                         "interfaces will appear multiple times in IF-MIB.\n");
-                logged = 1;
-            }
-            DEBUGMSGTL(("access:interface:ifIndex", "index %lu != tmp for %s\n",
-                         index, name));
+        if (index != (oid)tmp) {
+            NETSNMP_LOGONCE((LOG_ERR, "IfIndex of an interface changed. Such " \
+                         "interfaces will appear multiple times in IF-MIB.\n"));
+            DEBUGMSGTL(("access:interface:ifIndex",
+                        "index %" NETSNMP_PRIo "u != tmp for %s\n",
+                        index, name));
         }
 }
 
@@ -532,48 +530,78 @@
         memcpy(prev_vals->old_stats, &prev_vals->stats, sizeof(prev_vals->stats));
     }
 
-        netsnmp_c64_check32_and_update(&prev_vals->stats.ibytes,
+        if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.ibytes,
                                        &new_vals->stats.ibytes,
                                        &prev_vals->old_stats->ibytes,
-                                       &need_wrap_check);
+                                       &need_wrap_check))
+            DEBUGMSGTL(("access:interface",
+                    "Error expanding ifHCInOctets to 64bits\n"));
 
-	if (new_vals->ns_flags & NETSNMP_INTERFACE_FLAGS_CALCULATE_UCAST) {
-            netsnmp_c64_check32_and_update(&prev_vals->stats.iall,
+        if (new_vals->ns_flags & NETSNMP_INTERFACE_FLAGS_CALCULATE_UCAST) {
+            if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.iall,
                                            &new_vals->stats.iall,
                                            &prev_vals->old_stats->iall,
-                                           &need_wrap_check);
+                                           &need_wrap_check))
+                DEBUGMSGTL(("access:interface",
+                        "Error expanding packet count to 64bits\n"));
         } else {
-            netsnmp_c64_check32_and_update(&prev_vals->stats.iucast,
+            if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.iucast,
                                            &new_vals->stats.iucast,
                                            &prev_vals->old_stats->iucast,
-                                           &need_wrap_check);
+                                           &need_wrap_check))
+                DEBUGMSGTL(("access:interface",
+                        "Error expanding ifHCInUcastPkts to 64bits\n"));
         }
 
-        netsnmp_c64_check32_and_update(&prev_vals->stats.imcast,
+        if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.iucast,
+                                       &new_vals->stats.iucast,
+                                       &prev_vals->old_stats->iucast,
+                                       &need_wrap_check))
+            DEBUGMSGTL(("access:interface",
+                    "Error expanding ifHCInUcastPkts to 64bits\n"));
+
+        if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.imcast,
                                        &new_vals->stats.imcast,
                                        &prev_vals->old_stats->imcast,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.ibcast,
+                                       &need_wrap_check))
+            DEBUGMSGTL(("access:interface",
+                    "Error expanding ifHCInMulticastPkts to 64bits\n"));
+
+        if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.ibcast,
                                        &new_vals->stats.ibcast,
                                        &prev_vals->old_stats->ibcast,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.obytes,
+                                       &need_wrap_check))
+            DEBUGMSGTL(("access:interface",
+                    "Error expanding ifHCInBroadcastPkts to 64bits\n"));
+
+        if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.obytes,
                                        &new_vals->stats.obytes,
                                        &prev_vals->old_stats->obytes,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.oucast,
+                                       &need_wrap_check))
+            DEBUGMSGTL(("access:interface",
+                    "Error expanding ifHCOutOctets to 64bits\n"));
+
+        if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.oucast,
                                        &new_vals->stats.oucast,
                                        &prev_vals->old_stats->oucast,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.omcast,
+                                       &need_wrap_check))
+            DEBUGMSGTL(("access:interface",
+                    "Error expanding ifHCOutUcastPkts to 64bits\n"));
+
+        if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.omcast,
                                        &new_vals->stats.omcast,
                                        &prev_vals->old_stats->omcast,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.obcast,
+                                       &need_wrap_check))
+            DEBUGMSGTL(("access:interface",
+                    "Error expanding ifHCOutMulticastPkts to 64bits\n"));
+
+        if (0 != netsnmp_c64_check32_and_update(&prev_vals->stats.obcast,
                                        &new_vals->stats.obcast,
                                        &prev_vals->old_stats->obcast,
-                                       &need_wrap_check);
-    
+                                       &need_wrap_check))
+            DEBUGMSGTL(("access:interface",
+                    "Error expanding ifHCOutBroadcastPkts to 64bits\n"));
+
     /*
      * Copy 32 bit counters
      */
@@ -685,7 +713,7 @@
         if (NULL != lhs->paddr)
             SNMP_FREE(lhs->paddr);
         if (rhs->paddr) {
-            lhs->paddr = malloc(rhs->paddr_len);
+            lhs->paddr = (char*)malloc(rhs->paddr_len);
             if(NULL == lhs->paddr)
                 return -2;
             memcpy(lhs->paddr,rhs->paddr,rhs->paddr_len);
@@ -823,7 +851,7 @@
     netsnmp_conf_if_list   *if_ptr = conf_list, *if_next;
     while (if_ptr) {
         if_next = if_ptr->next;
-        free(if_ptr->name);
+        free(NETSNMP_REMOVE_CONST(char *, if_ptr->name));
         free(if_ptr);
         if_ptr = if_next;
     }
diff --git a/agent/mibgroup/if-mib/data_access/interface.h b/agent/mibgroup/if-mib/data_access/interface.h
index f4c0e5e..353b254 100644
--- a/agent/mibgroup/if-mib/data_access/interface.h
+++ b/agent/mibgroup/if-mib/data_access/interface.h
@@ -32,6 +32,7 @@
 
 #   if defined( linux )
 
+    config_require(util_funcs)
     config_require(if-mib/data_access/interface_linux)
     config_require(if-mib/data_access/interface_ioctl)
 
diff --git a/agent/mibgroup/if-mib/data_access/interface_ioctl.c b/agent/mibgroup/if-mib/data_access/interface_ioctl.c
index aeab0ce..5bfbf9a 100644
--- a/agent/mibgroup/if-mib/data_access/interface_ioctl.c
+++ b/agent/mibgroup/if-mib/data_access/interface_ioctl.c
@@ -107,7 +107,7 @@
         SNMP_FREE(ifentry->paddr);
     }
     if(NULL == ifentry->paddr) 
-        ifentry->paddr = malloc(IFHWADDRLEN);
+        ifentry->paddr = (char*)malloc(IFHWADDRLEN);
 
     if(NULL == ifentry->paddr) {
             rc = -4;
@@ -408,7 +408,7 @@
     rc = _ioctl_get(fd, SIOCGIFINDEX, &ifrq, name);
     if (rc < 0) {
         DEBUGMSGTL(("access:interface:ioctl",
-                   "ifindex_get error on interface '%s'\n", name));
+                   "ifindex_get error on inerface '%s'\n", name));
         return 0;
     }
 
@@ -479,8 +479,7 @@
             if (NULL != ptr)
                 *ptr = 0;
             
-            if (if_index !=
-                netsnmp_access_interface_ioctl_ifindex_get(sd, ifrp->ifr_name))
+            if (if_index != (int)netsnmp_access_interface_ioctl_ifindex_get(sd, ifrp->ifr_name))
                 continue;
         }
 
diff --git a/agent/mibgroup/if-mib/data_access/interface_linux.c b/agent/mibgroup/if-mib/data_access/interface_linux.c
index 0ed9303..df09737 100644
--- a/agent/mibgroup/if-mib/data_access/interface_linux.c
+++ b/agent/mibgroup/if-mib/data_access/interface_linux.c
@@ -492,7 +492,7 @@
     if (!(devin = fopen("/proc/net/dev", "r"))) {
         DEBUGMSGTL(("access:interface",
                     "Failed to load Interface Table (linux1)\n"));
-        snmp_log(LOG_ERR, "cannot open /proc/net/dev ...\n");
+        NETSNMP_LOGONCE((LOG_ERR, "cannot open /proc/net/dev ...\n"));
         return -2;
     }
 
diff --git a/agent/mibgroup/if-mib/data_access/interface_openbsd.c b/agent/mibgroup/if-mib/data_access/interface_openbsd.c
index 5da2fdc..204568b 100644
--- a/agent/mibgroup/if-mib/data_access/interface_openbsd.c
+++ b/agent/mibgroup/if-mib/data_access/interface_openbsd.c
@@ -27,7 +27,7 @@
 #include <net/if_types.h>
 #include <net/if_media.h>
 
-extern struct timeval starttime;
+#define starttime (*(const struct timeval*)netsnmp_get_agent_starttime())
 
 int
 netsnmp_openbsd_interface_get_if_speed(char *name, u_int *speed, u_int *speed_high);
@@ -92,7 +92,7 @@
         return -2;
     }
 
-    if_list = malloc(if_list_size);
+    if_list = (u_char*)malloc(if_list_size);
     if (if_list == NULL) {
         snmp_log(LOG_ERR, "could not allocate memory for interface info (%u bytes)\n", if_list_size);
         return -3;
@@ -148,7 +148,7 @@
         /* get physical address */
         if (adl != NULL && adl->sdl_alen > 0) {
             entry->paddr_len = adl->sdl_alen;
-            entry->paddr = malloc(entry->paddr_len);
+            entry->paddr = (char*)malloc(entry->paddr_len);
             memcpy(entry->paddr, adl->sdl_data + adl->sdl_nlen, adl->sdl_alen);
             DEBUGMSGTL(("access:interface:container:arch",
                         "%s: paddr_len=%d, entry->paddr=%x:%x:%x:%x:%x:%x\n",
@@ -156,7 +156,7 @@
                         entry->paddr[0], entry->paddr[1], entry->paddr[2],
                         entry->paddr[3], entry->paddr[4], entry->paddr[5]));
         } else {
-            entry->paddr = malloc(6);
+            entry->paddr = (char*)malloc(6);
             entry->paddr_len = 6;
             memset(entry->paddr, 0, 6);
         }
diff --git a/agent/mibgroup/if-mib/data_access/interface_solaris2.c b/agent/mibgroup/if-mib/data_access/interface_solaris2.c
index 0bc0afa..2b0fc4c 100644
--- a/agent/mibgroup/if-mib/data_access/interface_solaris2.c
+++ b/agent/mibgroup/if-mib/data_access/interface_solaris2.c
@@ -104,7 +104,7 @@
         /*
          * collect the information needed by IF-MIB
          */
-        entry->paddr = malloc(ife.ifPhysAddress.o_length);
+        entry->paddr = (char*)malloc(ife.ifPhysAddress.o_length);
         if (entry->paddr == NULL) {
             netsnmp_access_interface_entry_free(entry);
             error = 1;
diff --git a/agent/mibgroup/if-mib/data_access/interface_sysctl.c b/agent/mibgroup/if-mib/data_access/interface_sysctl.c
index 054eb0a..72560a4 100644
--- a/agent/mibgroup/if-mib/data_access/interface_sysctl.c
+++ b/agent/mibgroup/if-mib/data_access/interface_sysctl.c
@@ -49,7 +49,7 @@
 #   define ARCH_PROMISC_FLAG IFF_PROMISC
 #endif
 
-extern struct timeval starttime;
+#define starttime (*(const struct timeval*)netsnmp_get_agent_starttime())
 
 /* sa_len roundup macro. */
 #define ROUNDUP(a) \
@@ -281,7 +281,7 @@
                 netsnmp_sysctl_ifmedia_to_speed(media_list[i], &t_speed,
                                                 &t_speed_high);
                 if (t_speed_high > m_speed_high ||
-                    (t_speed_high == m_speed_high && t_speed > t_speed)) {
+                    (t_speed_high == m_speed_high && t_speed > m_speed)) {
                     m_speed_high = t_speed_high;
                     m_speed = t_speed;
                 }
@@ -349,7 +349,7 @@
         return -2;
     }
 
-    if_list = malloc(if_list_size);
+    if_list = (u_char*)malloc(if_list_size);
     if (if_list == NULL) {
         snmp_log(LOG_ERR, "could not allocate memory for interface info "
                  "(%zu bytes)\n", if_list_size);
@@ -413,7 +413,7 @@
         /* get physical address */
         if (adl != NULL && adl->sdl_alen > 0) {
             entry->paddr_len = adl->sdl_alen;
-            entry->paddr = malloc(entry->paddr_len);
+            entry->paddr = (char*)malloc(entry->paddr_len);
             memcpy(entry->paddr, adl->sdl_data + adl->sdl_nlen, adl->sdl_alen);
             DEBUGMSGTL(("access:interface:container:sysctl",
                         "%s: paddr_len=%d, entry->paddr=%x:%x:%x:%x:%x:%x\n",
@@ -421,7 +421,7 @@
                         entry->paddr[0], entry->paddr[1], entry->paddr[2],
                         entry->paddr[3], entry->paddr[4], entry->paddr[5]));
         } else {
-            entry->paddr = malloc(6);
+            entry->paddr = (char*)malloc(6);
             entry->paddr_len = 6;
             memset(entry->paddr, 0, 6);
         }
diff --git a/agent/mibgroup/if-mib/ifTable/ifTable.c b/agent/mibgroup/if-mib/ifTable/ifTable.c
index c212981..80829cc 100644
--- a/agent/mibgroup/if-mib/ifTable/ifTable.c
+++ b/agent/mibgroup/if-mib/ifTable/ifTable.c
@@ -31,7 +31,7 @@
 #   include "ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h"
 #endif
 #ifdef USING_IP_MIB_IPV6INTERFACETABLE_IPV6INTERFACETABLE_MODULE
-#   include "ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h"
+#   include "ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h"
 #endif
 #ifdef USING_IF_MIB_IFXTABLE_IFXTABLE_MODULE
 #   include "if-mib/ifXTable/ifXTable.h"
@@ -278,9 +278,9 @@
          */
         if (MFD_SUCCESS == rc) {
             /*
-             * save changed rows, if you haven't already
+             * notify library to save changed rows
              */
-            snmp_store(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+            snmp_store_needed(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
                                              NETSNMP_DS_LIB_APPTYPE));
         }
 
@@ -473,7 +473,7 @@
          * allocate space for ifDescr data
          */
         (*ifDescr_val_ptr_ptr) =
-            malloc(tmp_len * sizeof(rowreq_ctx->data.ifDescr[0]));
+            (char*)malloc(tmp_len * sizeof(rowreq_ctx->data.ifDescr[0]));
         if (NULL == (*ifDescr_val_ptr_ptr)) {
             snmp_log(LOG_ERR, "could not allocate memory\n");
             return MFD_ERROR;
@@ -751,7 +751,7 @@
          * allocate space for ifPhysAddress data
          */
         (*ifPhysAddress_val_ptr_ptr) =
-            malloc(rowreq_ctx->data.ifPhysAddress_len *
+            (char*)malloc(rowreq_ctx->data.ifPhysAddress_len *
                    sizeof(rowreq_ctx->data.ifPhysAddress[0]));
         if (NULL == (*ifPhysAddress_val_ptr_ptr)) {
             snmp_log(LOG_ERR, "could not allocate memory\n");
@@ -1772,9 +1772,9 @@
     /*
      * hard coded
      */
-    netsnmp_assert((*ifSpecific_val_ptr_len_ptr) > nullOidLen);
-    (*ifSpecific_val_ptr_len_ptr) = nullOidLen;
-    memcpy(*ifSpecific_val_ptr_ptr, &nullOid, nullOidLen);
+    netsnmp_assert((*ifSpecific_val_ptr_len_ptr) > (size_t)nullOidLen);
+    (*ifSpecific_val_ptr_len_ptr) = (size_t)nullOidLen;
+    memcpy(*ifSpecific_val_ptr_ptr, &nullOid, (size_t)nullOidLen);
 #endif
 
     return MFD_SUCCESS;
diff --git a/agent/mibgroup/if-mib/ifTable/ifTable.h b/agent/mibgroup/if-mib/ifTable/ifTable.h
index 2f96292..452b863 100644
--- a/agent/mibgroup/if-mib/ifTable/ifTable.h
+++ b/agent/mibgroup/if-mib/ifTable/ifTable.h
@@ -343,6 +343,9 @@
      *********************************************************************
      * function prototypes
      */
+    	
+    int             _mfd_ifTable_undo_setup_allocate(ifTable_rowreq_ctx *rowreq_ctx);
+    void            _mfd_ifTable_undo_setup_release(ifTable_rowreq_ctx *rowreq_ctx);
     int             ifTable_pre_request(ifTable_registration *
                                         user_context);
     int             ifTable_post_request(ifTable_registration *
diff --git a/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c b/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c
index b5bc3b7..faf37d6 100644
--- a/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c
+++ b/agent/mibgroup/if-mib/ifTable/ifTable_data_access.c
@@ -23,6 +23,10 @@
 #   include "mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h"
 #endif
 
+#ifdef USING_IP_MIB_IPV6INTERFACETABLE_IPV6INTERFACETABLE_MODULE
+#   include "mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h"
+#endif
+
 typedef struct cd_container_s {
     netsnmp_container *current;
     netsnmp_container *deleted;
@@ -315,7 +319,7 @@
      * both containers use the same index.
      */
     netsnmp_interface_entry *ifentry =
-        CONTAINER_FIND(ifcontainer, rowreq_ctx);
+        (netsnmp_interface_entry*)CONTAINER_FIND(ifcontainer, rowreq_ctx);
 
 #ifdef USING_IP_MIB_IPV4INTERFACETABLE_IPV4INTERFACETABLE_MODULE
     /*
@@ -372,12 +376,8 @@
             int rc = strcmp(rowreq_ctx->data.ifName,
                             ifentry->name);
             if (rc != 0) {
-                static int logged = 0;
-                if (!logged) {
-                    snmp_log(LOG_ERR, "Name of an interface changed. Such " \
-                        "interfaces will keep its old name in IF-MIB.\n");
-                    logged = 1;
-                }
+                NETSNMP_LOGONCE((LOG_ERR, "Name of an interface changed. Such " \
+                        "interfaces will keep its old name in IF-MIB.\n"));
                 DEBUGMSGTL(("ifTable:access", "interface %s changed name to %s, ignoring\n",
                     rowreq_ctx->data.ifName, ifentry->name));
             }
diff --git a/agent/mibgroup/if-mib/ifTable/ifTable_data_access.h b/agent/mibgroup/if-mib/ifTable/ifTable_data_access.h
index 14e35cd..445929b 100644
--- a/agent/mibgroup/if-mib/ifTable/ifTable_data_access.h
+++ b/agent/mibgroup/if-mib/ifTable/ifTable_data_access.h
@@ -46,7 +46,7 @@
      * A 10 Mbps stream can wrap if*Octets in ~57 minutes.
      * At 100 Mbps it is ~5 minutes, and at 1 Gbps, ~34 seconds.
      */
-#define IFTABLE_CACHE_TIMEOUT   15
+#define IFTABLE_CACHE_TIMEOUT   3
 
 #define IFTABLE_REMOVE_MISSING_AFTER     (5 * 60) /* seconds */
 
diff --git a/agent/mibgroup/if-mib/ifTable/ifTable_interface.c b/agent/mibgroup/if-mib/ifTable/ifTable_interface.c
index e362fda..49de356 100644
--- a/agent/mibgroup/if-mib/ifTable/ifTable_interface.c
+++ b/agent/mibgroup/if-mib/ifTable/ifTable_interface.c
@@ -222,7 +222,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = IFTABLE_MIN_COL;
     tbl_info->max_column = IFTABLE_MAX_COL;
@@ -656,7 +656,7 @@
                           netsnmp_agent_request_info *agtreq_info,
                           netsnmp_request_info *requests)
 {
-    ifTable_rowreq_ctx *rowreq_ctx =
+    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -710,7 +710,7 @@
                            netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    ifTable_rowreq_ctx *rowreq_ctx =
+    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifTable:_mfd_ifTable_object_lookup",
@@ -970,7 +970,7 @@
                         netsnmp_agent_request_info *agtreq_info,
                         netsnmp_request_info *requests)
 {
-    ifTable_rowreq_ctx *rowreq_ctx =
+    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1265,7 +1265,7 @@
                            netsnmp_agent_request_info *agtreq_info,
                            netsnmp_request_info *requests)
 {
-    ifTable_rowreq_ctx *rowreq_ctx =
+    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc;
@@ -1312,7 +1312,7 @@
                                 netsnmp_request_info *requests)
 {
     int             rc;
-    ifTable_rowreq_ctx *rowreq_ctx =
+    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:ifTable:_mfd_ifTable_check_dependencies",
                 "called\n"));
@@ -1423,7 +1423,7 @@
                         netsnmp_request_info *requests)
 {
     int             rc;
-    ifTable_rowreq_ctx *rowreq_ctx =
+    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifTable:_mfd_ifTable_undo_setup", "called\n"));
@@ -1497,7 +1497,7 @@
                           netsnmp_agent_request_info *agtreq_info,
                           netsnmp_request_info *requests)
 {
-    ifTable_rowreq_ctx *rowreq_ctx =
+    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1576,7 +1576,7 @@
                         netsnmp_agent_request_info *agtreq_info,
                         netsnmp_request_info *requests)
 {
-    ifTable_rowreq_ctx *rowreq_ctx =
+    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -1623,7 +1623,7 @@
                     netsnmp_request_info *requests)
 {
     int             rc;
-    ifTable_rowreq_ctx *rowreq_ctx =
+    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifTable:_mfd_ifTable_commit", "called\n"));
@@ -1665,7 +1665,7 @@
                          netsnmp_request_info *requests)
 {
     int             rc;
-    ifTable_rowreq_ctx *rowreq_ctx =
+    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifTable:_mfd_ifTable_undo_commit", "called\n"));
@@ -1743,7 +1743,7 @@
                          netsnmp_request_info *requests)
 {
     int             rc;
-    ifTable_rowreq_ctx *rowreq_ctx =
+    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
 
@@ -1796,7 +1796,7 @@
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    ifTable_rowreq_ctx *rowreq_ctx =
+    ifTable_rowreq_ctx *rowreq_ctx = (ifTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifTable:_mfd_ifTable_irreversible:commit",
@@ -1985,7 +1985,7 @@
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = CONTAINER_FIND(ifTable_if_ctx.container, &oid_idx);
+    rowreq_ctx = (ifTable_rowreq_ctx*)CONTAINER_FIND(ifTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
diff --git a/agent/mibgroup/if-mib/ifXTable/ifXTable.c b/agent/mibgroup/if-mib/ifXTable/ifXTable.c
index 1a24275..23f7137 100644
--- a/agent/mibgroup/if-mib/ifXTable/ifXTable.c
+++ b/agent/mibgroup/if-mib/ifXTable/ifXTable.c
@@ -235,9 +235,9 @@
          */
         if (MFD_SUCCESS == rc) {
             /*
-             * save changed rows, if you haven't already
+             * notify library to save changed rows
              */
-            snmp_store(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+            snmp_store_needed(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
                                              NETSNMP_DS_LIB_APPTYPE));
         }
 
@@ -399,7 +399,7 @@
 ifName_get(ifXTable_rowreq_ctx * rowreq_ctx, char **ifName_val_ptr_ptr,
            size_t * ifName_val_ptr_len_ptr)
 {
-    int             tmp_len;
+    size_t tmp_len;
 
    /** we should have a non-NULL pointer and enough storage */
     netsnmp_assert((NULL != ifName_val_ptr_ptr)
@@ -424,7 +424,7 @@
         /*
          * allocate space for ifName data
          */
-        (*ifName_val_ptr_ptr) = malloc(tmp_len);
+        (*ifName_val_ptr_ptr) = (char*)malloc(tmp_len);
         if (NULL == (*ifName_val_ptr_ptr)) {
             snmp_log(LOG_ERR, "could not allocate memory\n");
             return MFD_ERROR;
@@ -1492,7 +1492,7 @@
         /*
          * allocate space for ifAlias data
          */
-        (*ifAlias_val_ptr_ptr) =
+        (*ifAlias_val_ptr_ptr) = (char*)
             malloc(rowreq_ctx->data.ifAlias_len *
                    sizeof(rowreq_ctx->data.ifAlias[0]));
         if (NULL == (*ifAlias_val_ptr_ptr)) {
diff --git a/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c b/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
index 9f064cf..15074ea 100644
--- a/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
+++ b/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
@@ -188,7 +188,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = IFXTABLE_MIN_COL;
     tbl_info->max_column = IFXTABLE_MAX_COL;
@@ -552,7 +552,7 @@
                            netsnmp_agent_request_info *agtreq_info,
                            netsnmp_request_info *requests)
 {
-    ifXTable_rowreq_ctx *rowreq_ctx =
+    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -607,7 +607,7 @@
                             netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    ifXTable_rowreq_ctx *rowreq_ctx =
+    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifXTable:_mfd_ifXTable_object_lookup",
@@ -845,7 +845,7 @@
                          netsnmp_agent_request_info *agtreq_info,
                          netsnmp_request_info *requests)
 {
-    ifXTable_rowreq_ctx *rowreq_ctx =
+    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1162,7 +1162,7 @@
                             netsnmp_agent_request_info *agtreq_info,
                             netsnmp_request_info *requests)
 {
-    ifXTable_rowreq_ctx *rowreq_ctx =
+    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc;
@@ -1210,7 +1210,7 @@
                                  netsnmp_request_info *requests)
 {
     int             rc;
-    ifXTable_rowreq_ctx *rowreq_ctx =
+    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:ifXTable:_mfd_ifXTable_check_dependencies",
                 "called\n"));
@@ -1294,7 +1294,7 @@
                          netsnmp_request_info *requests)
 {
     int             rc;
-    ifXTable_rowreq_ctx *rowreq_ctx =
+    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifXTable:_mfd_ifXTable_undo_setup", "called\n"));
@@ -1357,7 +1357,7 @@
                            netsnmp_agent_request_info *agtreq_info,
                            netsnmp_request_info *requests)
 {
-    ifXTable_rowreq_ctx *rowreq_ctx =
+    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1459,7 +1459,7 @@
                          netsnmp_agent_request_info *agtreq_info,
                          netsnmp_request_info *requests)
 {
-    ifXTable_rowreq_ctx *rowreq_ctx =
+    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -1506,7 +1506,7 @@
                      netsnmp_request_info *requests)
 {
     int             rc;
-    ifXTable_rowreq_ctx *rowreq_ctx =
+    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifXTable:_mfd_ifXTable_commit", "called\n"));
@@ -1539,7 +1539,7 @@
                           netsnmp_request_info *requests)
 {
     int             rc;
-    ifXTable_rowreq_ctx *rowreq_ctx =
+    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifXTable:_mfd_ifXTable_undo_commit",
@@ -1632,7 +1632,7 @@
                           netsnmp_request_info *requests)
 {
     int             rc;
-    ifXTable_rowreq_ctx *rowreq_ctx =
+    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
 
@@ -1687,7 +1687,7 @@
                                   netsnmp_agent_request_info *agtreq_info,
                                   netsnmp_request_info *requests)
 {
-    ifXTable_rowreq_ctx *rowreq_ctx =
+    ifXTable_rowreq_ctx *rowreq_ctx = (ifXTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ifXTable:_mfd_ifXTable_irreversible:commit",
@@ -1870,7 +1870,7 @@
      * be treated a little differently. Specifically, you will need
      * (4 * len) + 4 [3 ASCII chars per byte + 1 for ., + 4 for len].
      *
-     * 3) Also, remeber to add space for the identifier and seperator
+     * 3) Also, remember to add space for the identifier and separator
      * characters (for example, each column is prefixed by the
      * column number and a semicolon. To allow for the maximum
      * column values, 12 bytes [11 for oid + 1 for ':'] per
@@ -1991,7 +1991,7 @@
                  "_ifXTable_container_row_restore\n");
         return;
     }
-    rowreq_ctx = CONTAINER_FIND(container, &index);
+    rowreq_ctx = (ifXTable_rowreq_ctx*)CONTAINER_FIND(container, &index);
     if (NULL == rowreq_ctx) {
         snmp_log(LOG_DEBUG, "error finding row index in "
                  "_ifXTable_container_row_restore\n");
@@ -2002,7 +2002,7 @@
      * loop through and get each column
      */
     buf = skip_white(buf);
-    while ((NULL != buf) && isdigit(*buf)) {
+    while ((NULL != buf) && isdigit(*buf & 0xFF)) {
         /*
          * extract column, skip ':'
          */
@@ -2081,7 +2081,8 @@
         break;
 
     case COLUMN_IFALIAS:   /** DisplayString = ASN_OCTET_STR */
-        buf = read_config_save_octet_string(buf, rowreq_ctx->data.ifAlias,
+        buf = read_config_save_octet_string(buf,
+                                            (u_char *) rowreq_ctx->data.ifAlias,
                                             rowreq_ctx->data.ifAlias_len);
         break;
 
@@ -2164,7 +2165,7 @@
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = CONTAINER_FIND(ifXTable_if_ctx.container, &oid_idx);
+    rowreq_ctx = (ifXTable_rowreq_ctx*)CONTAINER_FIND(ifXTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
diff --git a/agent/mibgroup/ip-forward-mib/data_access/route_common.c b/agent/mibgroup/ip-forward-mib/data_access/route_common.c
index 974de55..e2901f9 100644
--- a/agent/mibgroup/ip-forward-mib/data_access/route_common.c
+++ b/agent/mibgroup/ip-forward-mib/data_access/route_common.c
@@ -47,13 +47,16 @@
 
     DEBUGMSGTL(("access:route:container", "load\n"));
 
-    if (NULL == container)
-        container = netsnmp_container_find("access:_route:table_container");
     if (NULL == container) {
-        snmp_log(LOG_ERR, "no container specified/found for access_route\n");
-        return NULL;
+        container = netsnmp_container_find("access:_route:fifo");
+        if (NULL == container) {
+            snmp_log(LOG_ERR, "no container specified/found for access_route\n");
+            return NULL;
+        }
     }
 
+    container->container_name = strdup("_route");
+
     rc =  netsnmp_access_route_container_arch_load(container, load_flags);
     if (0 != rc) {
         netsnmp_access_route_container_free(container, NETSNMP_ACCESS_ROUTE_FREE_NOFLAGS);
diff --git a/agent/mibgroup/ip-forward-mib/data_access/route_ioctl.c b/agent/mibgroup/ip-forward-mib/data_access/route_ioctl.c
index c20e0af..815c415 100644
--- a/agent/mibgroup/ip-forward-mib/data_access/route_ioctl.c
+++ b/agent/mibgroup/ip-forward-mib/data_access/route_ioctl.c
@@ -54,10 +54,6 @@
 #include <stdlib.h>
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/data_access/route.h>
diff --git a/agent/mibgroup/ip-forward-mib/data_access/route_linux.c b/agent/mibgroup/ip-forward-mib/data_access/route_linux.c
index c5d7633..f8d78a9 100644
--- a/agent/mibgroup/ip-forward-mib/data_access/route_linux.c
+++ b/agent/mibgroup/ip-forward-mib/data_access/route_linux.c
@@ -53,7 +53,7 @@
      * fetch routes from the proc file-system:
      */
     if (!(in = fopen("/proc/net/route", "r"))) {
-        snmp_log(LOG_ERR, "cannot open /proc/net/route\n");
+        NETSNMP_LOGONCE((LOG_ERR, "cannot open /proc/net/route\n"));
         return -2;
     }
 
@@ -71,9 +71,9 @@
 
     while (fgets(line, sizeof(line), in)) {
         char            rtent_name[32];
-        int             refcnt, flags, rc;
-        uint32_t        dest, nexthop, mask;
-        unsigned        use;
+        int             refcnt, rc;
+        uint32_t        dest, nexthop, mask, tmp_mask;
+        unsigned        flags, use;
 
         entry = netsnmp_access_route_entry_create();
 
@@ -83,13 +83,13 @@
          * BE eth0  00000000 C0A80101 0003  0      0   0   FFFFFFFF 1500 0   0 
          * LE eth0  00000000 0101A8C0 0003  0      0   0   00FFFFFF    0 0   0  
          */
-        rc = sscanf(line, "%s %x %x %x %u %d %d %x %*d %*d %*d\n",
+        rc = sscanf(line, "%s %x %x %x %d %u %d %x %*d %*d %*d\n",
                     rtent_name, &dest, &nexthop,
                     /*
                      * XXX: fix type of the args 
                      */
                     &flags, &refcnt, &use, &entry->rt_metric1,
-                    &mask);
+                    &tmp_mask);
         DEBUGMSGTL(("9:access:route:container", "line |%s|\n", line));
         if (8 != rc) {
             snmp_log(LOG_ERR,
@@ -121,8 +121,10 @@
          */
         entry->ns_rt_index = ++(*index);
 
+        mask = htonl(tmp_mask);
+
 #ifdef USING_IP_FORWARD_MIB_IPCIDRROUTETABLE_IPCIDRROUTETABLE_MODULE
-        memcpy(&entry->rt_mask, &mask, 4);
+        entry->rt_mask = mask;
         /** entry->rt_tos = XXX; */
         /** rt info ?? */
 #endif
@@ -161,12 +163,12 @@
          * as the policy, to distinguise between them. Hopefully this is
          * unique.
          * xxx-rks: It should really only be for the duplicate case, but that
-         *     would be more complicated thanI want to get into now. Fix later.
+         *     would be more complicated than I want to get into now. Fix later.
          */
         if (0 == nexthop) {
-            entry->rt_policy = &entry->if_index;
-            entry->rt_policy_len = 1;
-            entry->flags |= NETSNMP_ACCESS_ROUTE_POLICY_STATIC;
+            entry->rt_policy = calloc(3, sizeof(oid));
+            entry->rt_policy[2] = entry->if_index;
+            entry->rt_policy_len = sizeof(oid)*3;
         }
 #endif
 
@@ -311,11 +313,11 @@
         /*
          * on linux, default routes all look alike, and would have the same
          * indexed based on dest and next hop. So we use our arbitrary index
-         * as the policy, to distinguise between them.
+         * as the policy, to distinguish between them.
          */
-        entry->rt_policy = &entry->ns_rt_index;
-        entry->rt_policy_len = 1;
-        entry->flags |= NETSNMP_ACCESS_ROUTE_POLICY_STATIC;
+        entry->rt_policy = calloc(3, sizeof(oid));
+        entry->rt_policy[2] = entry->ns_rt_index;
+        entry->rt_policy_len = sizeof(oid)*3;
 #endif
 
         /*
diff --git a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c
index b46080a..8def1d9 100644
--- a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c
+++ b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable.c
@@ -410,25 +410,27 @@
     /*
      * inetCidrRoutePolicy(4)/OBJECTID/ASN_OBJECT_ID/oid(oid)//L/a/w/e/r/d/h 
      */
-    tbl_idx->inetCidrRoutePolicy_len = sizeof(tbl_idx->inetCidrRoutePolicy) / sizeof(tbl_idx->inetCidrRoutePolicy[0]);  /* max length */
+    tbl_idx->inetCidrRoutePolicy_len = sizeof(tbl_idx->inetCidrRoutePolicy) / sizeof(tbl_idx->inetCidrRoutePolicy[0]);
     /** WARNING: this code might not work for netsnmp_route_entry */
     /*
      * make sure there is enough space for inetCidrRoutePolicy data
      */
     if ((NULL == tbl_idx->inetCidrRoutePolicy) ||
         (tbl_idx->inetCidrRoutePolicy_len <
-         (inetCidrRoutePolicy_val_ptr_len))) {
-        snmp_log(LOG_ERR, "not enough space for value\n");
+         (inetCidrRoutePolicy_val_ptr_len / sizeof(inetCidrRoutePolicy_val_ptr[0])))) {
+        snmp_log(LOG_ERR,
+	    "inetCidrRoutePolicy: Not enough space for value (%d < %d)\n",
+	    (int)tbl_idx->inetCidrRoutePolicy_len,
+	    (int)(inetCidrRoutePolicy_val_ptr_len / sizeof(inetCidrRoutePolicy_val_ptr[0])));
         return MFD_ERROR;
     }
     if (0 == inetCidrRoutePolicy_val_ptr_len) {
-        inetCidrRoutePolicy_val_ptr_len = nullOidLen / sizeof(oid);
+        inetCidrRoutePolicy_val_ptr_len = nullOidLen;
         inetCidrRoutePolicy_val_ptr = nullOid;
     }
-    tbl_idx->inetCidrRoutePolicy_len = inetCidrRoutePolicy_val_ptr_len;
+    tbl_idx->inetCidrRoutePolicy_len = inetCidrRoutePolicy_val_ptr_len / sizeof(oid);
     memcpy(tbl_idx->inetCidrRoutePolicy, inetCidrRoutePolicy_val_ptr,
-           inetCidrRoutePolicy_val_ptr_len *
-           sizeof(inetCidrRoutePolicy_val_ptr[0]));
+           inetCidrRoutePolicy_val_ptr_len);
 
     /*
      * inetCidrRouteNextHopType(5)/InetAddressType/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h 
@@ -446,11 +448,14 @@
      */
     if ((NULL == tbl_idx->inetCidrRouteNextHop) ||
         (tbl_idx->inetCidrRouteNextHop_len <
-         (inetCidrRouteNextHop_val_ptr_len))) {
-        snmp_log(LOG_ERR, "not enough space for value\n");
+         (inetCidrRouteNextHop_val_ptr_len / sizeof(inetCidrRouteNextHop_val_ptr[0])))) {
+        snmp_log(LOG_ERR,
+	    "inetCidrRouteNexthop: Not enough space for value (%d < %d)\n",
+	    (int)tbl_idx->inetCidrRouteNextHop_len,
+	    (int)(inetCidrRouteNextHop_val_ptr_len / sizeof(inetCidrRouteNextHop_val_ptr[0])));
         return MFD_ERROR;
     }
-    tbl_idx->inetCidrRouteNextHop_len = inetCidrRouteNextHop_val_ptr_len;
+    tbl_idx->inetCidrRouteNextHop_len = inetCidrRouteNextHop_val_ptr_len / sizeof(inetCidrRouteNextHop_val_ptr[0]);
     memcpy(tbl_idx->inetCidrRouteNextHop, inetCidrRouteNextHop_val_ptr,
            inetCidrRouteNextHop_val_ptr_len *
            sizeof(inetCidrRouteNextHop_val_ptr[0]));
diff --git a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c
index ffedb08..559c0ca 100644
--- a/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c
+++ b/agent/mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.c
@@ -197,7 +197,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = INETCIDRROUTETABLE_MIN_COL;
     tbl_info->max_column = INETCIDRROUTETABLE_MAX_COL;
@@ -791,7 +791,7 @@
                                      *agtreq_info,
                                      netsnmp_request_info *requests)
 {
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -909,7 +909,7 @@
                                       netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetCidrRouteTable:_mfd_inetCidrRouteTable_object_lookup", "called\n"));
@@ -1103,7 +1103,7 @@
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1613,7 +1613,7 @@
                                       *agtreq_info,
                                       netsnmp_request_info *requests)
 {
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc;
@@ -1661,7 +1661,7 @@
                                            netsnmp_request_info *requests)
 {
     int             rc;
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:inetCidrRouteTable:_mfd_inetCidrRouteTable_check_dependencies", "called\n"));
 
@@ -1783,7 +1783,7 @@
                                    netsnmp_request_info *requests)
 {
     int             rc;
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetCidrRouteTable:_mfd_inetCidrRouteTable_undo_setup", "called\n"));
@@ -1848,7 +1848,7 @@
                                      *agtreq_info,
                                      netsnmp_request_info *requests)
 {
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -2003,7 +2003,7 @@
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -2051,7 +2051,7 @@
                                netsnmp_request_info *requests)
 {
     int             rc;
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetCidrRouteTable:_mfd_inetCidrRouteTable_commit", "called\n"));
@@ -2085,7 +2085,7 @@
                                     netsnmp_request_info *requests)
 {
     int             rc;
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetCidrRouteTable:_mfd_inetCidrRouteTable_undo_commit", "called\n"));
@@ -2131,7 +2131,7 @@
                                     netsnmp_request_info *requests)
 {
     int             rc;
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetCidrRouteTable:_mfd_inetCidrRouteTable_undo_values", "called\n"));
@@ -2165,7 +2165,7 @@
                                             *agtreq_info,
                                             netsnmp_request_info *requests)
 {
-    inetCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    inetCidrRouteTable_rowreq_ctx *rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetCidrRouteTable:_mfd_inetCidrRouteTable_irreversible:commit", "called\n"));
@@ -2303,7 +2303,7 @@
     /*
      * cache init
      */
-    if_ctx->cache = netsnmp_cache_create(30,    /* timeout in seconds */
+    if_ctx->cache = netsnmp_cache_create(INETCIDRROUTETABLE_CACHE_TIMEOUT,
                                          _cache_load, _cache_free,
                                          inetCidrRouteTable_oid,
                                          inetCidrRouteTable_oid_size);
@@ -2316,15 +2316,22 @@
     if_ctx->cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
 
     inetCidrRouteTable_container_init(&if_ctx->container, if_ctx->cache);
-    if (NULL == if_ctx->container)
+    if (NULL == if_ctx->container) {
         if_ctx->container =
             netsnmp_container_find("inetCidrRouteTable:table_container");
-    if (NULL == if_ctx->container) {
-        snmp_log(LOG_ERR, "error creating container in "
-                 "inetCidrRouteTable_container_init\n");
-        return;
+        if (NULL == if_ctx->container) {
+            snmp_log(LOG_ERR, "error creating container in "
+                     "inetCidrRouteTable_container_init\n");
+            return;
+        }
     }
 
+    if_ctx->container->container_name = strdup("inetCidrRouteTable");
+
+    /* set allow duplicates this makes insert O(1) */
+    netsnmp_binary_array_options_set(if_ctx->container, 1,
+                                     CONTAINER_KEY_ALLOW_DUPLICATES);
+
     if (NULL != if_ctx->cache)
         if_ctx->cache->magic = (void *) if_ctx->container;
 }                               /* _inetCidrRouteTable_container_init */
@@ -2368,7 +2375,7 @@
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx =
+    rowreq_ctx = (inetCidrRouteTable_rowreq_ctx*)
         CONTAINER_FIND(inetCidrRouteTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
diff --git a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c
index 2503dce..323c1bc 100644
--- a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c
+++ b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable.c
@@ -706,13 +706,13 @@
      * copy (* ipCidrRouteInfo_val_ptr_ptr ) data and (* ipCidrRouteInfo_val_ptr_len_ptr ) from rowreq_ctx->data
      */
     /** nullOidLen is in bytes, so not sizeof(oid) needed */
-    if ((*ipCidrRouteInfo_val_ptr_len_ptr) < nullOidLen) {
-        (*ipCidrRouteInfo_val_ptr_ptr) = malloc(nullOidLen);
+    if ((*ipCidrRouteInfo_val_ptr_len_ptr) < (size_t)nullOidLen) {
+        (*ipCidrRouteInfo_val_ptr_ptr) = (oid*)malloc(nullOidLen);
         if (NULL == (*ipCidrRouteInfo_val_ptr_ptr))
             return MFD_ERROR;
     }
-    (*ipCidrRouteInfo_val_ptr_len_ptr) = nullOidLen;
-    memcpy((*ipCidrRouteInfo_val_ptr_ptr), nullOid, nullOidLen);
+    (*ipCidrRouteInfo_val_ptr_len_ptr) = (size_t)nullOidLen;
+    memcpy((*ipCidrRouteInfo_val_ptr_ptr), nullOid, (size_t)nullOidLen);
 
     return MFD_SUCCESS;
 }                               /* ipCidrRouteInfo_get */
diff --git a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c
index a113347..c45fdd2 100644
--- a/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c
+++ b/agent/mibgroup/ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface.c
@@ -188,7 +188,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = IPCIDRROUTETABLE_MIN_COL;
     tbl_info->max_column = IPCIDRROUTETABLE_MAX_COL;
@@ -672,7 +672,7 @@
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -791,7 +791,7 @@
                                     netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipCidrRouteTable:_mfd_ipCidrRouteTable_object_lookup", "called\n"));
@@ -1022,7 +1022,7 @@
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1456,7 +1456,7 @@
                                     *agtreq_info,
                                     netsnmp_request_info *requests)
 {
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1611,7 +1611,7 @@
                                  netsnmp_request_info *requests)
 {
     int             rc;
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipCidrRouteTable:_mfd_ipCidrRouteTable_undo_setup", "called\n"));
@@ -1675,7 +1675,7 @@
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1840,7 +1840,7 @@
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -1888,7 +1888,7 @@
                              netsnmp_request_info *requests)
 {
     int             rc;
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipCidrRouteTable:_mfd_ipCidrRouteTable_commit",
@@ -1922,7 +1922,7 @@
                                   netsnmp_request_info *requests)
 {
     int             rc;
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipCidrRouteTable:_mfd_ipCidrRouteTable_undo_commit", "called\n"));
@@ -2064,7 +2064,7 @@
                                   netsnmp_request_info *requests)
 {
     int             rc;
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
 
@@ -2118,7 +2118,7 @@
                                           *agtreq_info,
                                           netsnmp_request_info *requests)
 {
-    ipCidrRouteTable_rowreq_ctx *rowreq_ctx =
+    ipCidrRouteTable_rowreq_ctx *rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipCidrRouteTable:_mfd_ipCidrRouteTable_irreversible:commit", "called\n"));
@@ -2254,7 +2254,7 @@
     /*
      * cache init
      */
-    if_ctx->cache = netsnmp_cache_create(30,    /* timeout in seconds */
+    if_ctx->cache = netsnmp_cache_create(IPCIDRROUTETABLE_CACHE_TIMEOUT,
                                          _cache_load, _cache_free,
                                          ipCidrRouteTable_oid,
                                          ipCidrRouteTable_oid_size);
@@ -2267,15 +2267,22 @@
     if_ctx->cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
 
     ipCidrRouteTable_container_init(&if_ctx->container, if_ctx->cache);
-    if (NULL == if_ctx->container)
+    if (NULL == if_ctx->container) {
         if_ctx->container =
             netsnmp_container_find("ipCidrRouteTable:table_container");
-    if (NULL == if_ctx->container) {
-        snmp_log(LOG_ERR, "error creating container in "
-                 "ipCidrRouteTable_container_init\n");
-        return;
+        if (NULL == if_ctx->container) {
+            snmp_log(LOG_ERR, "error creating container in "
+                     "ipCidrRouteTable_container_init\n");
+            return;
+        }
     }
 
+    if_ctx->container->container_name = strdup("ipCidrRouteTable");
+
+    /* set allow duplicates this makes insert O(1) */
+    netsnmp_binary_array_options_set(if_ctx->container, 1,
+                                     CONTAINER_KEY_ALLOW_DUPLICATES);
+
     if (NULL != if_ctx->cache)
         if_ctx->cache->magic = (void *) if_ctx->container;
 }                               /* _ipCidrRouteTable_container_init */
@@ -2319,7 +2326,7 @@
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx =
+    rowreq_ctx = (ipCidrRouteTable_rowreq_ctx*)
         CONTAINER_FIND(ipCidrRouteTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
diff --git a/agent/mibgroup/ip-mib.h b/agent/mibgroup/ip-mib.h
index 83752e5..4e8317f 100644
--- a/agent/mibgroup/ip-mib.h
+++ b/agent/mibgroup/ip-mib.h
@@ -3,6 +3,8 @@
  */
 
 config_require(ip-mib/ipAddressTable);
+config_require(ip-mib/ipAddressPrefixTable);
+config_require(ip-mib/ipDefaultRouterTable);
 config_require(ip-mib/inetNetToMediaTable);
 config_require(ip-mib/ipSystemStatsTable);
 config_require(ip-mib/ip_scalars);
diff --git a/agent/mibgroup/ip-mib/data_access/arp_common.c b/agent/mibgroup/ip-mib/data_access/arp_common.c
index c794c3a..5c7d6d5 100644
--- a/agent/mibgroup/ip-mib/data_access/arp_common.c
+++ b/agent/mibgroup/ip-mib/data_access/arp_common.c
@@ -62,8 +62,11 @@
 
     DEBUGMSGTL(("access:arp:container", "load\n"));
 
-    if (NULL == container)
+    if (NULL == container) {
         container = netsnmp_container_find("access:arp:table_container");
+        if (container)
+            container->container_name = strdup("arp");
+    }
     if (NULL == container) {
         snmp_log(LOG_ERR, "no container specified/found for access_arp\n");
         return NULL;
diff --git a/agent/mibgroup/ip-mib/data_access/arp_linux.c b/agent/mibgroup/ip-mib/data_access/arp_linux.c
index 2069ef1..4ddaffd 100644
--- a/agent/mibgroup/ip-mib/data_access/arp_linux.c
+++ b/agent/mibgroup/ip-mib/data_access/arp_linux.c
@@ -14,9 +14,10 @@
 #include <arpa/inet.h>
 #include <linux/types.h>
 #include <asm/types.h>
-#ifdef NETSNMP_ENABLE_IPV6
 #ifdef HAVE_LINUX_RTNETLINK_H
 #include <linux/rtnetlink.h>
+#endif
+#ifdef NETSNMP_ENABLE_IPV6
 #define NIP6(addr) \
         ntohs((addr).s6_addr16[0]), \
         ntohs((addr).s6_addr16[1]), \
@@ -28,10 +29,11 @@
         ntohs((addr).s6_addr16[7])
 #define NIP6_FMT "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x"
 #endif
-#endif
 
 int _load_v4(netsnmp_container *container, int idx_offset);
+#ifdef NETSNMP_ENABLE_IPV6
 static int _load_v6(netsnmp_container *container, int idx_offset);
+#endif
 #ifdef HAVE_LINUX_RTNETLINK_H
 int get_translation_table_info (int sd, int *status, 
                                 char *buff, size_t size);
@@ -103,7 +105,7 @@
     while (fgets(line, sizeof(line), in)) {
         
         int             za, zb, zc, zd;
-        int             tmp_flags;
+        unsigned int    tmp_flags;
         char            ifname[21];
 
         rc = sscanf(line,
@@ -258,7 +260,7 @@
          entry->ns_arp_index = ++idx_offset;
          if(fillup_entry_info (entry, nlmp) < 0) {
             DEBUGMSGTL(("access:arp:load_v6", "skipping netlink message that"
-                        "did not contain valid ARP information\n"));
+                        " did not contain valid ARP information\n"));
             netsnmp_access_arp_entry_free(entry);
             status -= NLMSG_ALIGN(len);
             nlmp = (struct nlmsghdr*)((char*)nlmp + NLMSG_ALIGN(len));
diff --git a/agent/mibgroup/ip-mib/data_access/ipaddress_common.c b/agent/mibgroup/ip-mib/data_access/ipaddress_common.c
index ac62c40..b9f3c67 100644
--- a/agent/mibgroup/ip-mib/data_access/ipaddress_common.c
+++ b/agent/mibgroup/ip-mib/data_access/ipaddress_common.c
@@ -211,7 +211,8 @@
      * make sure interface and ifIndex match up
      */
     if (NULL == netsnmp_access_interface_name_find(entry->if_index)) {
-        DEBUGMSGT(("access:ipaddress:set", "cant find name for index %ld\n",
+        DEBUGMSGT(("access:ipaddress:set",
+                   "cant find name for index %" NETSNMP_PRIo "d\n",
                   entry->if_index));
         return -1;
     }
diff --git a/agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c b/agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c
index 57fb9bb..f281bb6 100644
--- a/agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c
+++ b/agent/mibgroup/ip-mib/data_access/ipaddress_ioctl.c
@@ -35,7 +35,7 @@
     if ((NULL == entry) || (NULL == entry->arch_data))
         return NULL;
 
-    return netsnmp_get_list_data(entry->arch_data, LIST_TOKEN);
+    return (_ioctl_extras*)netsnmp_get_list_data(entry->arch_data, LIST_TOKEN);
 }
 
 /**
@@ -159,14 +159,6 @@
 
         DEBUGMSGTL(("access:ipaddress:container",
                     " interface %d, %s\n", i, ifrp->ifr_name));
-
-        if (AF_INET != ifrp->ifr_addr.sa_family) {
-            DEBUGMSGTL(("access:ipaddress:container",
-                        " skipping %s; non AF_INET family %d\n",
-                        ifrp->ifr_name, ifrp->ifr_addr.sa_family));
-            continue;
-        }
-
         /*
          */
         entry = netsnmp_access_ipaddress_entry_create();
@@ -191,6 +183,7 @@
         /*
          * set indexes
          */
+        netsnmp_assert(AF_INET == ifrp->ifr_addr.sa_family);
         si = (struct sockaddr_in *) &ifrp->ifr_addr;
         entry->ia_address_len = sizeof(si->sin_addr.s_addr);
         ipval = si->sin_addr.s_addr;
@@ -314,7 +307,7 @@
 
         DEBUGIF("access:ipaddress:container") {
             DEBUGMSGT_NC(("access:ipaddress:container",
-                          " if %d: addr len %d, index 0x%lx\n",
+                          " if %d: addr len %d, index 0x%" NETSNMP_PRIo "x\n",
                           i, entry->ia_address_len, entry->if_index));
             if (4 == entry->ia_address_len)
                 DEBUGMSGT_NC(("access:ipaddress:container", " address %p\n",
@@ -340,6 +333,7 @@
 
         if (CONTAINER_INSERT(container, entry) < 0) {
             DEBUGMSGTL(("access:ipaddress:container","error with ipaddress_entry: insert into container failed.\n"));
+            NETSNMP_LOGONCE((LOG_ERR, "Duplicate IPv4 address detected, some interfaces may not be visible in IP-MIB\n"));
             netsnmp_access_ipaddress_entry_free(entry);
             continue;
         }
@@ -390,7 +384,7 @@
     netsnmp_assert(NULL != ifc.ifc_buf);
     DEBUGMSGTL(("access:ipaddress:container", "processing %d interfaces\n", interfaces));
 
-    alias_list = malloc(interfaces * sizeof(int));
+    alias_list = (int*)malloc(interfaces * sizeof(int));
     if (NULL == alias_list) {
         close(sd);
         return -2;
@@ -473,7 +467,8 @@
         int   alias_idx;
 
         if (NULL == name) {
-            DEBUGMSGT(("access:ipaddress:set", "cant find name for index %ld\n",
+            DEBUGMSGT(("access:ipaddress:set",
+                       "cant find name for index %" NETSNMP_PRIo "d\n",
                        entry->if_index));
             close(fd);
             return -1;
@@ -576,7 +571,7 @@
      */
 
     for (i = 8;; i *= 2) {
-        ifc->ifc_buf = calloc(i, sizeof(struct ifreq));
+        ifc->ifc_buf = (caddr_t)calloc(i, sizeof(struct ifreq));
         if (NULL == ifc->ifc_buf) {
             snmp_log(LOG_ERR, "could not allocate memory for %d interfaces\n",
                      i);
@@ -641,7 +636,7 @@
         { IFF_AUTOMEDIA,   "auto media select active"},
     };
     short unknown = flags;
-    int i;
+    size_t i;
 
     for(i = 0; i < sizeof(map)/sizeof(map[0]); ++i)
         if(flags & map[i].flag) {
diff --git a/agent/mibgroup/ip-mib/data_access/ipaddress_linux.h b/agent/mibgroup/ip-mib/data_access/ipaddress_linux.h
index 1cae279..600ceaf 100644
--- a/agent/mibgroup/ip-mib/data_access/ipaddress_linux.h
+++ b/agent/mibgroup/ip-mib/data_access/ipaddress_linux.h
@@ -17,6 +17,5 @@
  *    HPUX11 had different reuirements than other HPUX, that should
  *    be handled in the *_hpux.h header file.
  */
-config_require(ip-mib/data_access/ipaddress_linux)
 config_require(ip-mib/data_access/ipaddress_ioctl)
-
+config_require(util_funcs)
diff --git a/agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c b/agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c
index f2d8e0b..3979037 100644
--- a/agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c
+++ b/agent/mibgroup/ip-mib/data_access/ipaddress_solaris2.c
@@ -157,7 +157,7 @@
             netsnmp_access_interface_index_find(ipae.ipAdEntIfIndex.o_bytes);
         if (entry->if_index == 0) {
             DEBUGMSGTL(("access:ipaddress:container", "cannot find if %s\n",
-                        ipae.ipAdEntIfIndex));
+                        ipae.ipAdEntIfIndex.o_bytes));
             netsnmp_access_ipaddress_entry_free(entry);
             return (-2);    
         }
diff --git a/agent/mibgroup/ip-mib/data_access/ipv6scopezone_common.c b/agent/mibgroup/ip-mib/data_access/ipv6scopezone_common.c
index fdf712b..7462ebe 100644
--- a/agent/mibgroup/ip-mib/data_access/ipv6scopezone_common.c
+++ b/agent/mibgroup/ip-mib/data_access/ipv6scopezone_common.c
@@ -63,8 +63,11 @@
 
     DEBUGMSGTL(("access:scopezone:container", "load\n"));
 
-    if (NULL == container)
+    if (NULL == container) {
         container = netsnmp_access_scopezone_container_init(load_flags);
+        if (container)
+            container->container_name = strdup("scopezone");
+    }
     if (NULL == container) {
         snmp_log(LOG_ERR, "no container specified/found for access_scopezone\n");
         return NULL;
diff --git a/agent/mibgroup/ip-mib/data_access/ipv6scopezone_linux.c b/agent/mibgroup/ip-mib/data_access/ipv6scopezone_linux.c
index b814f60..7d60641 100644
--- a/agent/mibgroup/ip-mib/data_access/ipv6scopezone_linux.c
+++ b/agent/mibgroup/ip-mib/data_access/ipv6scopezone_linux.c
@@ -25,8 +25,9 @@
 netsnmp_access_scopezone_container_arch_load(netsnmp_container* container,
                                              u_int load_flags)
 {
-    int rc1 = 0, idx_offset = 0;
+    int rc1 = 0;
 #if defined (NETSNMP_ENABLE_IPV6)
+    int idx_offset = 0;
 
     if (NULL == container) {
         snmp_log(LOG_ERR, "no container specified/found for access_scopezone_\n");
diff --git a/agent/mibgroup/ip-mib/data_access/scalars_linux.c b/agent/mibgroup/ip-mib/data_access/scalars_linux.c
index 02c416a..6ba356b 100644
--- a/agent/mibgroup/ip-mib/data_access/scalars_linux.c
+++ b/agent/mibgroup/ip-mib/data_access/scalars_linux.c
@@ -28,7 +28,7 @@
         return -2;
     }
 
-    rc = fscanf(filep, "%ld", value);
+    rc = fscanf(filep, "%lu", value);
     fclose(filep);
     if (1 != rc) {
         DEBUGMSGTL(("access:ipForwarding", "could not read %s\n",
@@ -96,7 +96,7 @@
         return -2;
     }
 
-    rc = fscanf(filep, "%ld", value);
+    rc = fscanf(filep, "%lu", value);
     fclose(filep);
     if (1 != rc) {
         DEBUGMSGTL(("access:ipv6IpForwarding", "could not read %s\n",
diff --git a/agent/mibgroup/ip-mib/data_access/systemstats_common.c b/agent/mibgroup/ip-mib/data_access/systemstats_common.c
index f7c0212..29109bd 100644
--- a/agent/mibgroup/ip-mib/data_access/systemstats_common.c
+++ b/agent/mibgroup/ip-mib/data_access/systemstats_common.c
@@ -96,8 +96,11 @@
 
     DEBUGMSGTL(("access:systemstats:container", "load\n"));
 
-    if (NULL == container)
+    if (NULL == container) {
         container = netsnmp_access_systemstats_container_init(load_flags);
+        if (NULL != container)
+            container->container_name = strdup("systemstats_autocreate");
+    }
     if (NULL == container) {
         snmp_log(LOG_ERR, "no container specified/found for access_systemstats\n");
         return NULL;
@@ -163,7 +166,8 @@
 /**
  */
 netsnmp_systemstats_entry *
-netsnmp_access_systemstats_entry_create(int version, int if_index)
+netsnmp_access_systemstats_entry_create(int version, int if_index,
+        const char *tableName)
 {
     netsnmp_systemstats_entry *entry =
         SNMP_MALLOC_TYPEDEF(netsnmp_systemstats_entry);
@@ -177,7 +181,7 @@
     entry->oid_index.oids = entry->index;
     entry->index[0] = version;
     entry->index[1] = if_index;
-
+    entry->tableName = tableName;
     return entry;
 }
 
@@ -329,90 +333,215 @@
         /*
          * update 64bit counters
          */
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInNoRoutes,
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINNOROUTES])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCInNoRoutes,
                                        &new_vals->stats.HCInNoRoutes,
                                        &prev_vals->old_stats->HCInNoRoutes,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutNoRoutes,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCInNoRoutes to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTNOROUTES])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCOutNoRoutes,
                                        &new_vals->stats.HCOutNoRoutes,
                                        &prev_vals->old_stats->HCOutNoRoutes,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutDiscards,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCOutNoRoutes to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTDISCARDS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCOutDiscards,
                                        &new_vals->stats.HCOutDiscards,
                                        &prev_vals->old_stats->HCOutDiscards,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutFragReqds,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCOutDiscards to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGREQDS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCOutFragReqds,
                                        &new_vals->stats.HCOutFragReqds,
                                        &prev_vals->old_stats->HCOutFragReqds,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutFragOKs,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCOutFragReqds to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGOKS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCOutFragOKs,
                                        &new_vals->stats.HCOutFragOKs,
                                        &prev_vals->old_stats->HCOutFragOKs,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutFragFails,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCOutFragOKs to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGFAILS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCOutFragFails,
                                        &new_vals->stats.HCOutFragFails,
                                        &prev_vals->old_stats->HCOutFragFails,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutFragCreates,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCOutFragFails to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGCREATES])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCOutFragCreates,
                                        &new_vals->stats.HCOutFragCreates,
                                        &prev_vals->old_stats->HCOutFragCreates,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInReceives,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCOutFragCreates to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINRECEIVES])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCInReceives,
                                        &new_vals->stats.HCInReceives,
                                        &prev_vals->old_stats->HCInReceives,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInOctets,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCInReceives to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINOCTETS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCInOctets,
                                        &new_vals->stats.HCInOctets,
                                        &prev_vals->old_stats->HCInOctets,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInForwDatagrams,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCInOctets to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINFORWDATAGRAMS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCInForwDatagrams,
                                        &new_vals->stats.HCInForwDatagrams,
                                        &prev_vals->old_stats->HCInForwDatagrams,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInDelivers,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCInForwDatagrams to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINDELIVERS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCInDelivers,
                                        &new_vals->stats.HCInDelivers,
                                        &prev_vals->old_stats->HCInDelivers,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutRequests,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCInDelivers to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTREQUESTS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCOutRequests,
                                        &new_vals->stats.HCOutRequests,
                                        &prev_vals->old_stats->HCOutRequests,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutForwDatagrams,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCOutRequests to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFORWDATAGRAMS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCOutForwDatagrams,
                                        &new_vals->stats.HCOutForwDatagrams,
                                        &prev_vals->old_stats->HCOutForwDatagrams,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutTransmits,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCOutForwDatagrams to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTTRANSMITS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCOutTransmits,
                                        &new_vals->stats.HCOutTransmits,
                                        &prev_vals->old_stats->HCOutTransmits,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutOctets,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCOutTransmits to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTOCTETS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCOutOctets,
                                        &new_vals->stats.HCOutOctets,
                                        &prev_vals->old_stats->HCOutOctets,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInMcastPkts,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCOutOctets to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINMCASTPKTS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCInMcastPkts,
                                        &new_vals->stats.HCInMcastPkts,
                                        &prev_vals->old_stats->HCInMcastPkts,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInMcastOctets,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCInMcastPkts to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINMCASTOCTETS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCInMcastOctets,
                                        &new_vals->stats.HCInMcastOctets,
                                        &prev_vals->old_stats->HCInMcastOctets,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutMcastPkts,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCInMcastOctets to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTMCASTPKTS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCOutMcastPkts,
                                        &new_vals->stats.HCOutMcastPkts,
                                        &prev_vals->old_stats->HCOutMcastPkts,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutMcastOctets,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCOutMcastPkts to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTMCASTOCTETS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCOutMcastOctets,
                                        &new_vals->stats.HCOutMcastOctets,
                                        &prev_vals->old_stats->HCOutMcastOctets,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCInBcastPkts,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCOutMcastOctets to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCINBCASTPKTS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCInBcastPkts,
                                        &new_vals->stats.HCInBcastPkts,
                                        &prev_vals->old_stats->HCInBcastPkts,
-                                       &need_wrap_check);
-        netsnmp_c64_check32_and_update(&prev_vals->stats.HCOutBcastPkts,
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCInBcastPkts to 64bits in %s\n",
+                        prev_vals->tableName));
+
+        if (new_vals->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTBCASTPKTS])
+            if (0 != netsnmp_c64_check32_and_update(
+                                       &prev_vals->stats.HCOutBcastPkts,
                                        &new_vals->stats.HCOutBcastPkts,
                                        &prev_vals->old_stats->HCOutBcastPkts,
-                                       &need_wrap_check);
+                                       &need_wrap_check))
+                NETSNMP_LOGONCE((LOG_ERR,
+                        "Error expanding HCOutBcastPkts to 64bits in %s\n",
+                        prev_vals->tableName));
     }
 
     /*
diff --git a/agent/mibgroup/ip-mib/data_access/systemstats_linux.c b/agent/mibgroup/ip-mib/data_access/systemstats_linux.c
index 3ba8646..4a26e41 100644
--- a/agent/mibgroup/ip-mib/data_access/systemstats_linux.c
+++ b/agent/mibgroup/ip-mib/data_access/systemstats_linux.c
@@ -116,7 +116,7 @@
     if (!(devin = fopen("/proc/net/snmp", "r"))) {
         DEBUGMSGTL(("access:systemstats",
                     "Failed to load Systemstats Table (linux1)\n"));
-        snmp_log(LOG_ERR, "cannot open /proc/net/snmp ...\n");
+        NETSNMP_LOGONCE((LOG_ERR, "cannot open /proc/net/snmp ...\n"));
         return -2;
     }
 
@@ -160,7 +160,8 @@
         while (*stats == ' ') /* skip spaces before stats */
             stats++;
 
-        entry = netsnmp_access_systemstats_entry_create(1, 0);
+        entry = netsnmp_access_systemstats_entry_create(1, 0,
+                    "ipSystemStatsTable.ipv4");
         if(NULL == entry) {
             netsnmp_access_systemstats_container_free(container,
                                                       NETSNMP_ACCESS_SYSTEMSTATS_FREE_NOFLAGS);
@@ -280,6 +281,7 @@
     if (!(devin = fopen("/proc/net/netstat", "r"))) {
         DEBUGMSGTL(("access:systemstats",
                     "cannot open /proc/net/netstat\n"));
+        NETSNMP_LOGONCE((LOG_ERR,"cannot open /proc/net/netstat\n"));
         return -2;
     }
 
@@ -551,7 +553,8 @@
     const char     *filename = "/proc/net/snmp6";
     int rc = 0;
     
-    entry = netsnmp_access_systemstats_entry_create(2, 0);
+    entry = netsnmp_access_systemstats_entry_create(2, 0,
+            "ipSystemStatsTable.ipv6");
     if(NULL == entry)
         return -3;
     
@@ -661,7 +664,8 @@
             scan_val = strtoull(scan_str, NULL, 0);
         }
         
-        entry = netsnmp_access_systemstats_entry_create(2, scan_val);
+        entry = netsnmp_access_systemstats_entry_create(2, scan_val,
+                "ipIfStatsTable.ipv6");
         if(NULL == entry) {
             fclose(devin);
             closedir(dev_snmp6_dir);
diff --git a/agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c b/agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c
index 202ab1a..f2ec497 100644
--- a/agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c
+++ b/agent/mibgroup/ip-mib/data_access/systemstats_solaris2.c
@@ -129,7 +129,8 @@
     int i;
     
     netsnmp_systemstats_entry *ep =
-        netsnmp_access_systemstats_entry_create(ipe->ipIfStatsIPVersion, 0); 
+        netsnmp_access_systemstats_entry_create(ipe->ipIfStatsIPVersion, 0,
+                "ipSystemStatsTable"); 
 
     DEBUGMSGTL(("access:systemstats:arch", "insert entry for v%d\n",
                 ipe->ipIfStatsIPVersion)); 
diff --git a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h
index 632854b..85a8738 100644
--- a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h
+++ b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable.h
@@ -253,12 +253,19 @@
                                             * rowreq_ctx,
                                             u_long *
                                             inetNetToMediaState_val_ptr);
+
     int
         inetNetToMediaRowStatus_get(inetNetToMediaTable_rowreq_ctx *
                                     rowreq_ctx,
                                     u_long *
                                     inetNetToMediaRowStatus_val_ptr);
 
+    int
+        inetNetToMediaRowStatus_set(inetNetToMediaTable_rowreq_ctx *
+                                    rowreq_ctx,
+                                    u_long
+                                    inetNetToMediaRowStatus_val);
+
 
     int
         inetNetToMediaTable_indexes_set_tbl_idx
diff --git a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c
index e18f98a..8fddb70 100644
--- a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c
+++ b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access.c
@@ -194,7 +194,7 @@
           rowreq_ctx->data->arp_ipaddress_len))) {
 
         /* try to find old entry */
-        old = CONTAINER_FIND(container, rowreq_ctx);
+        old = (inetNetToMediaTable_rowreq_ctx*)CONTAINER_FIND(container, rowreq_ctx);
         if (old != NULL) {
             /* the entry is already there, update it */
             netsnmp_access_arp_entry_update(old->data, arp_entry);
@@ -316,7 +316,7 @@
                        (netsnmp_container_obj_func *) _collect_invalid_arp_ctx,
                        to_delete);
     while (CONTAINER_SIZE(to_delete)) {
-        inetNetToMediaTable_rowreq_ctx *ctx = CONTAINER_FIRST(to_delete);
+        inetNetToMediaTable_rowreq_ctx *ctx = (inetNetToMediaTable_rowreq_ctx*)CONTAINER_FIRST(to_delete);
         CONTAINER_REMOVE(container, ctx);
         inetNetToMediaTable_release_rowreq_ctx(ctx);
         CONTAINER_REMOVE(to_delete, NULL);
diff --git a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c
index 18cc33a..62e364f 100644
--- a/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c
+++ b/agent/mibgroup/ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface.c
@@ -192,7 +192,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = INETNETTOMEDIATABLE_MIN_COL;
     tbl_info->max_column = INETNETTOMEDIATABLE_MAX_COL;
@@ -690,7 +690,7 @@
                                       *agtreq_info,
                                       netsnmp_request_info *requests)
 {
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -809,7 +809,7 @@
                                        netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetNetToMediaTable:_mfd_inetNetToMediaTable_object_lookup", "called\n"));
@@ -947,7 +947,7 @@
                                     *agtreq_info,
                                     netsnmp_request_info *requests)
 {
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1258,7 +1258,7 @@
                                        *agtreq_info,
                                        netsnmp_request_info *requests)
 {
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc;
@@ -1306,7 +1306,7 @@
                                             netsnmp_request_info *requests)
 {
     int             rc;
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:inetNetToMediaTable:_mfd_inetNetToMediaTable_check_dependencies", "called\n"));
 
@@ -1392,7 +1392,7 @@
                                     netsnmp_request_info *requests)
 {
     int             rc;
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetNetToMediaTable:_mfd_inetNetToMediaTable_undo_setup", "called\n"));
@@ -1457,7 +1457,7 @@
                                       *agtreq_info,
                                       netsnmp_request_info *requests)
 {
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1563,7 +1563,7 @@
                                     *agtreq_info,
                                     netsnmp_request_info *requests)
 {
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -1611,7 +1611,7 @@
                                 netsnmp_request_info *requests)
 {
     int             rc;
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetNetToMediaTable:_mfd_inetNetToMediaTable_commit", "called\n"));
@@ -1645,7 +1645,7 @@
                                      netsnmp_request_info *requests)
 {
     int             rc;
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetNetToMediaTable:_mfd_inetNetToMediaTable_undo_commit", "called\n"));
@@ -1739,7 +1739,7 @@
                                      netsnmp_request_info *requests)
 {
     int             rc;
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
 
@@ -1794,7 +1794,7 @@
                                              *agtreq_info, netsnmp_request_info
                                              *requests)
 {
-    inetNetToMediaTable_rowreq_ctx *rowreq_ctx =
+    inetNetToMediaTable_rowreq_ctx *rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:inetNetToMediaTable:_mfd_inetNetToMediaTable_irreversible:commit", "called\n"));
@@ -1947,9 +1947,12 @@
     if_ctx->cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
 
     inetNetToMediaTable_container_init(&if_ctx->container, if_ctx->cache);
-    if (NULL == if_ctx->container)
+    if (NULL == if_ctx->container) {
         if_ctx->container =
             netsnmp_container_find("inetNetToMediaTable:table_container");
+        if (if_ctx->container)
+            if_ctx->container->container_name = strdup("inetNetToMediaTable");
+    }
     if (NULL == if_ctx->container) {
         snmp_log(LOG_ERR, "error creating container in "
                  "inetNetToMediaTable_container_init\n");
@@ -1999,7 +2002,7 @@
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx =
+    rowreq_ctx = (inetNetToMediaTable_rowreq_ctx*)
         CONTAINER_FIND(inetNetToMediaTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
diff --git a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c
index 16db509..f4bb085 100644
--- a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c
+++ b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.c
@@ -255,7 +255,7 @@
                                          tbl_idx,
                                          long ipAddressPrefixIfIndex_val,
                                          u_long ipAddressPrefixType_val,
-                                         char
+                                         u_char
                                          *ipAddressPrefixPrefix_val_ptr,
                                          size_t
                                          ipAddressPrefixPrefix_val_ptr_len,
@@ -318,7 +318,7 @@
                                  rowreq_ctx,
                                  long ipAddressPrefixIfIndex_val,
                                  u_long ipAddressPrefixType_val,
-                                 char *ipAddressPrefixPrefix_val_ptr,
+                                 u_char *ipAddressPrefixPrefix_val_ptr,
                                  size_t ipAddressPrefixPrefix_val_ptr_len,
                                  u_long ipAddressPrefixLength_val)
 {
@@ -593,7 +593,7 @@
      * copy (* ipAddressPrefixAdvPreferredLifetime_val_ptr ) from rowreq_ctx->data
      */
     if (INETADDRESSTYPE_IPV4 == rowreq_ctx->tbl_idx.ipAddressPrefixType)
-        (*ipAddressPrefixAdvPreferredLifetime_val_ptr) = 4294967295;    /* per MIB */
+        (*ipAddressPrefixAdvPreferredLifetime_val_ptr) = 4294967295U;    /* per MIB */
     else
         (*ipAddressPrefixAdvPreferredLifetime_val_ptr) =
             rowreq_ctx->data.ipAddressPrefixAdvPreferredLifetime;
@@ -660,7 +660,7 @@
      * copy (* ipAddressPrefixAdvValidLifetime_val_ptr ) from rowreq_ctx->data
      */
     if (INETADDRESSTYPE_IPV4 == rowreq_ctx->tbl_idx.ipAddressPrefixType)
-        (*ipAddressPrefixAdvValidLifetime_val_ptr) = 4294967295;        /* per MIB */
+        (*ipAddressPrefixAdvValidLifetime_val_ptr) = 4294967295U;        /* per MIB */
     else
         (*ipAddressPrefixAdvValidLifetime_val_ptr) =
             rowreq_ctx->data.ipAddressPrefixAdvValidLifetime;
diff --git a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
index 201e557..24b22a2 100644
--- a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
+++ b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable.h
@@ -271,7 +271,7 @@
         ipAddressPrefixTable_indexes_set_tbl_idx
         (ipAddressPrefixTable_mib_index * tbl_idx,
          long ipAddressPrefixIfIndex_val, u_long ipAddressPrefixType_val,
-         char *ipAddressPrefixPrefix_val_ptr,
+         u_char *ipAddressPrefixPrefix_val_ptr,
          size_t ipAddressPrefixPrefix_val_ptr_len,
          u_long ipAddressPrefixLength_val);
     int
@@ -279,7 +279,7 @@
                                          rowreq_ctx,
                                          long ipAddressPrefixIfIndex_val,
                                          u_long ipAddressPrefixType_val,
-                                         char
+                                         u_char
                                          *ipAddressPrefixPrefix_val_ptr,
                                          size_t
                                          ipAddressPrefixPrefix_val_ptr_len,
diff --git a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c
index 9159e12..4fb6905 100644
--- a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c
+++ b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access.c
@@ -202,7 +202,7 @@
     ipAddressTable_rowreq_ctx *addr_rowreq_ctx;
     netsnmp_container *addr_container;
     netsnmp_iterator *addr_it;
-    size_t          count = 0;
+    int             count = 0;
     u_char          tmp_pfx[NETSNMP_ACCESS_IPADDRESS_BUF_SIZE];
 
     DEBUGMSGTL(("verbose:ipAddressPrefixTable:ipAddressPrefixTable_container_load", "called\n"));
diff --git a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.c b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.c
index 1909a4b..942425d 100644
--- a/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.c
+++ b/agent/mibgroup/ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface.c
@@ -155,7 +155,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = IPADDRESSPREFIXTABLE_MIN_COL;
     tbl_info->max_column = IPADDRESSPREFIXTABLE_MAX_COL;
diff --git a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c
index c1fad74..ec48fca 100644
--- a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c
+++ b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.c
@@ -333,8 +333,8 @@
  *  Otherwise, just do a direct copy.
  */
 int
-ipAddressAddrType_map(u_long * mib_ipAddressAddrType_val_ptr,
-                      u_long raw_ipAddressAddrType_val)
+ipAddressAddrType_map(long * mib_ipAddressAddrType_val_ptr,
+                      long raw_ipAddressAddrType_val)
 {
     netsnmp_assert(NULL != mib_ipAddressAddrType_val_ptr);
 
@@ -382,8 +382,8 @@
  */
 int
 ipAddressTable_indexes_set_tbl_idx(ipAddressTable_mib_index * tbl_idx,
-                                   u_long ipAddressAddrType_val,
-                                   char *ipAddressAddr_val_ptr,
+                                   long ipAddressAddrType_val,
+                                   u_char *ipAddressAddr_val_ptr,
                                    size_t ipAddressAddr_val_ptr_len)
 {
     DEBUGMSGTL(("verbose:ipAddressTable:ipAddressTable_indexes_set_tbl_idx", "called\n"));
@@ -431,7 +431,7 @@
 int
 ipAddressTable_indexes_set(ipAddressTable_rowreq_ctx * rowreq_ctx,
                            u_long ipAddressAddrType_val,
-                           char *ipAddressAddr_val_ptr,
+                           u_char *ipAddressAddr_val_ptr,
                            size_t ipAddressAddr_val_ptr_len)
 {
     DEBUGMSGTL(("verbose:ipAddressTable:ipAddressTable_indexes_set",
@@ -626,7 +626,7 @@
     oid            *dst, tmp_oid[MAX_OID_LEN] =
         { 1, 3, 6, 1, 2, 1, 4, 32, 1, 5 };
     u_char          tmp_buf[NETSNMP_ACCESS_IPADDRESS_BUF_SIZE];
-    int             len;
+    size_t          len;
 
    /** we should have a non-NULL pointer and enough storage */
     netsnmp_assert((NULL != ipAddressPrefix_val_ptr_ptr)
@@ -657,7 +657,7 @@
 
     len *= sizeof((*ipAddressPrefix_val_ptr_ptr)[0]);
     if ((*ipAddressPrefix_val_ptr_len_ptr) < len) {
-        (*ipAddressPrefix_val_ptr_ptr) = malloc(len);
+        (*ipAddressPrefix_val_ptr_ptr) = (oid*)malloc(len);
         if (NULL == (*ipAddressPrefix_val_ptr_ptr)) {
             snmp_log(LOG_ERR, "could not allocate memory\n");
             return MFD_ERROR;
@@ -1472,7 +1472,7 @@
     /*
      * if the new value is the same as the old, accept it.
      */
-    if (ipAddressIfIndex_val == rowreq_ctx->data->if_index)
+    if (ipAddressIfIndex_val == (long)rowreq_ctx->data->if_index)
         return MFD_SUCCESS;
 
     /*
@@ -1559,8 +1559,8 @@
      * TODO:461:M: |-> Set ipAddressIfIndex value.
      * set ipAddressIfIndex value in rowreq_ctx->data
      */
-    if (rowreq_ctx->data->if_index != ipAddressIfIndex_val)
-        rowreq_ctx->data->if_index = ipAddressIfIndex_val;
+    if (rowreq_ctx->data->if_index != (oid)ipAddressIfIndex_val)
+        rowreq_ctx->data->if_index  = (oid)ipAddressIfIndex_val;
     else
         rowreq_ctx->column_set_flags &= ~COLUMN_IPADDRESSIFINDEX_FLAG;
 
diff --git a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h
index 740f4fa..fe8f04a 100644
--- a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h
+++ b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable.h
@@ -96,13 +96,13 @@
         /*
          * ipAddressAddrType(1)/InetAddressType/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h
          */
-        u_long          ipAddressAddrType;
+        long            ipAddressAddrType;
 
         /*
          * ipAddressAddr(2)/InetAddress/ASN_OCTET_STR/char(char)//L/a/w/e/R/d/h
          */
         /** 128 - 1(other indexes) - oid length(10) = 116 */
-        char            ipAddressAddr[116];
+        u_char          ipAddressAddr[116];
         size_t          ipAddressAddr_len;
 
 
@@ -227,9 +227,9 @@
     /*
      * indexes
      */
-    int             ipAddressAddrType_map(u_long *
+    int             ipAddressAddrType_map(long *
                                           mib_ipAddressAddrType_val_ptr,
-                                          u_long
+                                          long
                                           raw_ipAddressAddrType_val);
 
     int             ipAddressIfIndex_get(ipAddressTable_rowreq_ctx *
@@ -270,15 +270,15 @@
     int
         ipAddressTable_indexes_set_tbl_idx(ipAddressTable_mib_index *
                                            tbl_idx,
-                                           u_long ipAddressAddrType_val,
-                                           char *ipAddressAddr_val_ptr,
+                                           long ipAddressAddrType_val,
+                                           u_char *ipAddressAddr_val_ptr,
                                            size_t
                                            ipAddressAddr_val_ptr_len);
     int             ipAddressTable_indexes_set(ipAddressTable_rowreq_ctx *
                                                rowreq_ctx,
                                                u_long
                                                ipAddressAddrType_val,
-                                               char *ipAddressAddr_val_ptr,
+                                               u_char *ipAddressAddr_val_ptr,
                                                size_t
                                                ipAddressAddr_val_ptr_len);
 
diff --git a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c
index 7a4a23d..ca1ae47 100644
--- a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c
+++ b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_data_access.c
@@ -134,6 +134,7 @@
     *container_ptr_ptr =
         netsnmp_container_find("ipAddressTable:table_container");
     if (NULL != *container_ptr_ptr) {
+        (*container_ptr_ptr)->container_name = strdup("ipAddressTable");
         ipAddressTable_container_load(*container_ptr_ptr);
         CONTAINER_FOR_EACH(*container_ptr_ptr,
                            (netsnmp_container_obj_func *) _clear_times,
@@ -201,13 +202,13 @@
 _check_entry_for_updates(ipAddressTable_rowreq_ctx * rowreq_ctx,
                          void **magic)
 {
-    netsnmp_container *ipaddress_container = magic[0];
-    netsnmp_container *to_delete = (netsnmp_container *) magic[1];
+    netsnmp_container *ipaddress_container = (netsnmp_container*)magic[0];
+    netsnmp_container *to_delete           = (netsnmp_container*)magic[1];
 
     /*
      * check for matching entry using secondary index.
      */
-    netsnmp_ipaddress_entry *ipaddress_entry =
+    netsnmp_ipaddress_entry *ipaddress_entry = (netsnmp_ipaddress_entry*)
         CONTAINER_FIND(ipaddress_container, rowreq_ctx->data);
     if (NULL == ipaddress_entry) {
         DEBUGMSGTL(("ipAddressTable:access", "removing missing entry\n"));
@@ -259,7 +260,7 @@
         (MFD_SUCCESS ==
          ipAddressTable_indexes_set(rowreq_ctx,
                                     ipaddress_entry->ia_address_len,
-                                    (char *) ipaddress_entry->ia_address,
+                                    ipaddress_entry->ia_address,
                                     ipaddress_entry->ia_address_len))) {
         if (CONTAINER_INSERT(container, rowreq_ctx) < 0) {
             DEBUGMSGTL (("ipAddressTable:access","container insert failed for new entry\n"));
@@ -379,7 +380,7 @@
             /*
              * get from delete list
              */
-            tmp_ctx = CONTAINER_FIRST(tmp_container);
+            tmp_ctx = (ipAddressTable_rowreq_ctx*)CONTAINER_FIRST(tmp_container);
 
             /*
              * release context, delete from table container
diff --git a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c
index e24e46f..98c3ad0 100644
--- a/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c
+++ b/agent/mibgroup/ip-mib/ipAddressTable/ipAddressTable_interface.c
@@ -184,7 +184,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = IPADDRESSTABLE_MIN_COL;
     tbl_info->max_column = IPADDRESSTABLE_MAX_COL;
@@ -640,7 +640,7 @@
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    ipAddressTable_rowreq_ctx *rowreq_ctx =
+    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -759,7 +759,7 @@
                                   netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    ipAddressTable_rowreq_ctx *rowreq_ctx =
+    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipAddressTable:_mfd_ipAddressTable_object_lookup", "called\n"));
@@ -934,7 +934,7 @@
                                netsnmp_agent_request_info *agtreq_info,
                                netsnmp_request_info *requests)
 {
-    ipAddressTable_rowreq_ctx *rowreq_ctx =
+    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1292,7 +1292,7 @@
                                   netsnmp_agent_request_info *agtreq_info,
                                   netsnmp_request_info *requests)
 {
-    ipAddressTable_rowreq_ctx *rowreq_ctx =
+    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc;
@@ -1339,7 +1339,7 @@
                                        netsnmp_request_info *requests)
 {
     int             rc;
-    ipAddressTable_rowreq_ctx *rowreq_ctx =
+    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:ipAddressTable:_mfd_ipAddressTable_check_dependencies", "called\n"));
 
@@ -1438,7 +1438,7 @@
                                netsnmp_request_info *requests)
 {
     int             rc;
-    ipAddressTable_rowreq_ctx *rowreq_ctx =
+    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipAddressTable:_mfd_ipAddressTable_undo_setup",
@@ -1503,7 +1503,7 @@
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    ipAddressTable_rowreq_ctx *rowreq_ctx =
+    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1622,7 +1622,7 @@
                                netsnmp_agent_request_info *agtreq_info,
                                netsnmp_request_info *requests)
 {
-    ipAddressTable_rowreq_ctx *rowreq_ctx =
+    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -1670,7 +1670,7 @@
                            netsnmp_request_info *requests)
 {
     int             rc;
-    ipAddressTable_rowreq_ctx *rowreq_ctx =
+    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipAddressTable:_mfd_ipAddressTable_commit",
@@ -1704,7 +1704,7 @@
                                 netsnmp_request_info *requests)
 {
     int             rc;
-    ipAddressTable_rowreq_ctx *rowreq_ctx =
+    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipAddressTable:_mfd_ipAddressTable_undo_commit",
@@ -1812,7 +1812,7 @@
                                 netsnmp_request_info *requests)
 {
     int             rc;
-    ipAddressTable_rowreq_ctx *rowreq_ctx =
+    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
 
@@ -1867,7 +1867,7 @@
                                         *agtreq_info,
                                         netsnmp_request_info *requests)
 {
-    ipAddressTable_rowreq_ctx *rowreq_ctx =
+    ipAddressTable_rowreq_ctx *rowreq_ctx = (ipAddressTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipAddressTable:_mfd_ipAddressTable_irreversible:commit", "called\n"));
@@ -2063,7 +2063,7 @@
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = CONTAINER_FIND(ipAddressTable_if_ctx.container, &oid_idx);
+    rowreq_ctx = (ipAddressTable_rowreq_ctx*)CONTAINER_FIND(ipAddressTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
diff --git a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.c b/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.c
index 7da7ba0..52ca44f 100644
--- a/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.c
+++ b/agent/mibgroup/ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface.c
@@ -153,7 +153,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = IPDEFAULTROUTERTABLE_MIN_COL;
     tbl_info->max_column = IPDEFAULTROUTERTABLE_MAX_COL;
diff --git a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.c b/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.c
index 50a6af8..7919dea 100644
--- a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.c
+++ b/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_access.c
@@ -124,8 +124,10 @@
      */
     *container_ptr_ptr =
         netsnmp_container_find("ipIfStatsTable:table_container");
-    if (NULL != *container_ptr_ptr)
+    if (NULL != *container_ptr_ptr) {
+        (*container_ptr_ptr)->container_name = strdup("ipIfStatsTable");
         ipIfStatsTable_container_load(*container_ptr_ptr);
+    }
     if (NULL == cache) {
         snmp_log(LOG_ERR,
                  "bad cache param to ipIfStatsTable_container_init\n");
@@ -160,7 +162,7 @@
     /*
      * check for matching entry. works because indexes are the same.
      */
-    ifstats_entry = CONTAINER_FIND(stats, rowreq_ctx->data);
+    ifstats_entry = (netsnmp_systemstats_entry*)CONTAINER_FIND(stats, rowreq_ctx->data);
     if (NULL == ifstats_entry) {
         DEBUGMSGTL(("ipIfStatsTable:access",
                     "updating missing entry\n"));
diff --git a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c b/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c
index d415a83..3fd1d09 100644
--- a/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c
+++ b/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c
@@ -163,7 +163,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = IPIFSTATSTABLE_MIN_COL;
     tbl_info->max_column = IPIFSTATSTABLE_MAX_COL;
@@ -592,7 +592,7 @@
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    ipIfStatsTable_rowreq_ctx *rowreq_ctx =
+    ipIfStatsTable_rowreq_ctx *rowreq_ctx = (ipIfStatsTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -639,7 +639,7 @@
                                   netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    ipIfStatsTable_rowreq_ctx *rowreq_ctx =
+    ipIfStatsTable_rowreq_ctx *rowreq_ctx = (ipIfStatsTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipIfStatsTable:_mfd_ipIfStatsTable_object_lookup", "called\n"));
@@ -1143,7 +1143,7 @@
                                netsnmp_agent_request_info *agtreq_info,
                                netsnmp_request_info *requests)
 {
-    ipIfStatsTable_rowreq_ctx *rowreq_ctx =
+    ipIfStatsTable_rowreq_ctx *rowreq_ctx = (ipIfStatsTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1389,7 +1389,7 @@
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = CONTAINER_FIND(ipIfStatsTable_if_ctx.container, &oid_idx);
+    rowreq_ctx = (ipIfStatsTable_rowreq_ctx*)CONTAINER_FIND(ipIfStatsTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
diff --git a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c
index a9027ae..300ed7a 100644
--- a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c
+++ b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access.c
@@ -119,6 +119,8 @@
 
 
     *container_ptr_ptr = netsnmp_container_find("ipSystemStatsTable:table_container");
+    if (NULL != *container_ptr_ptr)
+        (*container_ptr_ptr)->container_name = strdup("ipSystemStatsTable");
 
     if (NULL == cache) {
         snmp_log(LOG_ERR,
@@ -156,7 +158,7 @@
     /*
      * check for matching entry. works because indexes are the same.
      */
-    netsnmp_systemstats_entry *systemstats_entry =
+    netsnmp_systemstats_entry *systemstats_entry = (netsnmp_systemstats_entry*)
         CONTAINER_FIND(stats, rowreq_ctx->data);
     if (NULL == systemstats_entry) {
         DEBUGMSGTL(("ipSystemStatsTable:access",
diff --git a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c
index 089812c..097cebb 100644
--- a/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c
+++ b/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c
@@ -149,7 +149,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = IPSYSTEMSTATSTABLE_MIN_COL;
     tbl_info->max_column = IPSYSTEMSTATSTABLE_MAX_COL;
@@ -548,7 +548,7 @@
                                      *agtreq_info,
                                      netsnmp_request_info *requests)
 {
-    ipSystemStatsTable_rowreq_ctx *rowreq_ctx =
+    ipSystemStatsTable_rowreq_ctx *rowreq_ctx = (ipSystemStatsTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -594,7 +594,7 @@
                                       netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    ipSystemStatsTable_rowreq_ctx *rowreq_ctx =
+    ipSystemStatsTable_rowreq_ctx *rowreq_ctx = (ipSystemStatsTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipSystemStatsTable:_mfd_ipSystemStatsTable_object_lookup", "called\n"));
@@ -1106,7 +1106,7 @@
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    ipSystemStatsTable_rowreq_ctx *rowreq_ctx =
+    ipSystemStatsTable_rowreq_ctx *rowreq_ctx = (ipSystemStatsTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1361,7 +1361,7 @@
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx =
+    rowreq_ctx = (ipSystemStatsTable_rowreq_ctx*)
         CONTAINER_FIND(ipSystemStatsTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
diff --git a/agent/mibgroup/ip-mib/ip_scalars.c b/agent/mibgroup/ip-mib/ip_scalars.c
index 0e6074a..7f6087d 100644
--- a/agent/mibgroup/ip-mib/ip_scalars.c
+++ b/agent/mibgroup/ip-mib/ip_scalars.c
@@ -301,7 +301,7 @@
                           netsnmp_agent_request_info   *reqinfo,
                           netsnmp_request_info         *requests)
 {
-    u_long   value;
+    long   value;
 
     /* We are never called for a GETNEXT if it's registered as a
        "instance", as it's "magically" handled for us.  */
diff --git a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h
index 41e791f..8123908 100644
--- a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h
+++ b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable.h
@@ -39,6 +39,7 @@
      *********************************************************************
      * function declarations
      */
+    void            initialize_table_ipv4InterfaceTable(void);
     void            init_ipv4InterfaceTable(void);
     void            shutdown_ipv4InterfaceTable(void);
 
diff --git a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access.c b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access.c
index 84a98ff..c9e14ff 100644
--- a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access.c
+++ b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access.c
@@ -138,7 +138,7 @@
              * yes.
              */
             DEBUGMSGTL(("ipv4InterfaceTable:check_entry_for_updates",
-                        "inserted row for %d\n", entry->index));
+                        "inserted row for %" NETSNMP_PRIo "d\n", entry->index));
             CONTAINER_INSERT(c, ift_rrc);
             changed = 1;
         }
@@ -152,7 +152,7 @@
              * no
              */
             DEBUGMSGTL(("ipv4InterfaceTable:check_entry_for_updates",
-                        "removed  row for %d\n",
+                        "removed  row for %" NETSNMP_PRIo "d\n",
                         ift_rrc->data.ifentry->index));
             CONTAINER_REMOVE(c, ift_rrc);
             changed = 1;
@@ -164,7 +164,7 @@
                  ift_rrc->data.ifentry->retransmit_v4) ||
                 (entry->reasm_max_v4 != ift_rrc->data.ifentry->reasm_max_v4)) {
                 DEBUGMSGTL(("ipv4InterfaceTable:check_entry_for_updates",
-                            "row changed for %d\n",
+                            "row changed for %" NETSNMP_PRIo "d\n",
                             ift_rrc->data.ifentry->index));
                 changed = 1;
             }
diff --git a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c
index 6f1aa49..f1e7844 100644
--- a/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c
+++ b/agent/mibgroup/ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface.c
@@ -44,6 +44,8 @@
 
 #include "ipv4InterfaceTable_interface.h"
 
+#include "if-mib/ifTable/ifTable.h"
+
 #include <ctype.h>
 
 /**********************************************************************
@@ -194,7 +196,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = IPV4INTERFACETABLE_MIN_COL;
     tbl_info->max_column = IPV4INTERFACETABLE_MAX_COL;
@@ -447,8 +449,6 @@
                                      *agtreq_info,
                                      netsnmp_request_info *requests)
 {
-    ipv4InterfaceTable_rowreq_ctx *rowreq_ctx =
-        netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
     DEBUGMSGTL(("internal:ipv4InterfaceTable:_mfd_ipv4InterfaceTable_post_request", "called\n"));
@@ -1270,6 +1270,7 @@
                  "ipv4InterfaceTable_container_init\n");
         return;
     }
+    if_ctx->container->container_name = strdup("ipv4InterfaceTable");
 
 }                               /* _ipv4InterfaceTable_container_init */
 
diff --git a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h
index a260732..e2a87a1 100644
--- a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h
+++ b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable.h
@@ -39,6 +39,7 @@
      *********************************************************************
      * function declarations
      */
+    void            initialize_table_ipv6InterfaceTable(void);
     void            init_ipv6InterfaceTable(void);
     void            shutdown_ipv6InterfaceTable(void);
 
diff --git a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.c b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.c
index b1408fd..33c65a9 100644
--- a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.c
+++ b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.c
@@ -138,7 +138,7 @@
              * yes.
              */
             DEBUGMSGTL(("ipv6InterfaceTable:check_entry_for_updates",
-                        "inserted row for index %d\n", entry->index));
+                        "inserted row for index %" NETSNMP_PRIo "d\n", entry->index));
             CONTAINER_INSERT(c, ift_rrc);
             changed = 1;
         }
@@ -152,7 +152,7 @@
              * no
              */
             DEBUGMSGTL(("ipv6InterfaceTable:check_entry_for_updates",
-                        "removed  row for index %d\n",
+                        "removed  row for index %" NETSNMP_PRIo "d\n",
                         ift_rrc->data.ifentry->index));
             CONTAINER_REMOVE(c, ift_rrc);
             changed = 1;
@@ -190,7 +190,7 @@
                     && (entry->forwarding_v6 !=
                         ift_rrc->data.ifentry->forwarding_v6))) {
                 DEBUGMSGTL(("ipv6InterfaceTable:check_entry_for_updates",
-                            "row changed for index %d\n",
+                            "row changed for index %" NETSNMP_PRIo "d\n",
                             ift_rrc->data.ifentry->index));
                 changed = 1;
             }
@@ -329,7 +329,7 @@
         ++count;
     }
 
-    DEBUGMSGT(("verbose:ipv6InterfaceTable:ipv6InterfaceTable_container_load", "inserted %d records\n", count));
+    DEBUGMSGT(("verbose:ipv6InterfaceTable:ipv6InterfaceTable_container_load", "inserted %d records\n", (int)count));
 
     return MFD_SUCCESS;
 }                               /* ipv6InterfaceTable_container_load */
diff --git a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.h b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.h
index 41d7157..664c3d7 100644
--- a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.h
+++ b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access.h
@@ -35,26 +35,14 @@
      */
 
 
-    int
-     
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        ipv6InterfaceTable_init_data(ipv6InterfaceTable_registration *
-                                     ipv6InterfaceTable_reg);
+    int             ipv6InterfaceTable_init_data(ipv6InterfaceTable_registration *
+                                                 ipv6InterfaceTable_reg);
 
 
+    void            ipv6InterfaceTable_check_entry_for_updates(
+                            const ifTable_rowreq_ctx * ift_rrc,
+			    netsnmp_interface_entry *entry);
+
     void            ipv6InterfaceTable_container_init(netsnmp_container
                                                       **container_ptr_ptr);
     void            ipv6InterfaceTable_container_shutdown(netsnmp_container
@@ -65,24 +53,8 @@
     void            ipv6InterfaceTable_container_free(netsnmp_container
                                                       *container);
 
-    int
-     
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        
-        ipv6InterfaceTable_row_prep(ipv6InterfaceTable_rowreq_ctx *
-                                    rowreq_ctx);
+    int             ipv6InterfaceTable_row_prep(ipv6InterfaceTable_rowreq_ctx *
+                                                rowreq_ctx);
 
 
 
diff --git a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c
index 4202616..aa8fc3f 100644
--- a/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c
+++ b/agent/mibgroup/ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface.c
@@ -194,7 +194,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = IPV6INTERFACETABLE_MIN_COL;
     tbl_info->max_column = IPV6INTERFACETABLE_MAX_COL;
@@ -1352,7 +1352,7 @@
                  "ipv6InterfaceTable_container_init\n");
         return;
     }
-
+    if_ctx->container->container_name = strdup("ipv6InterfaceTable");
 }                               /* _ipv6InterfaceTable_container_init */
 
 /**
diff --git a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.c b/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.c
index 40769ad..a6e952e 100644
--- a/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.c
+++ b/agent/mibgroup/ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface.c
@@ -153,7 +153,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = IPV6SCOPEZONEINDEXTABLE_MIN_COL;
     tbl_info->max_column = IPV6SCOPEZONEINDEXTABLE_MAX_COL;
@@ -552,7 +552,7 @@
                                           *agtreq_info,
                                           netsnmp_request_info *requests)
 {
-    ipv6ScopeZoneIndexTable_rowreq_ctx *rowreq_ctx =
+    ipv6ScopeZoneIndexTable_rowreq_ctx *rowreq_ctx = (ipv6ScopeZoneIndexTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -651,7 +651,7 @@
                                            netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    ipv6ScopeZoneIndexTable_rowreq_ctx *rowreq_ctx =
+    ipv6ScopeZoneIndexTable_rowreq_ctx *rowreq_ctx = (ipv6ScopeZoneIndexTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:ipv6ScopeZoneIndexTable:_mfd_ipv6ScopeZoneIndexTable_object_lookup", "called\n"));
@@ -869,7 +869,7 @@
                                         *agtreq_info,
                                         netsnmp_request_info *requests)
 {
-    ipv6ScopeZoneIndexTable_rowreq_ctx *rowreq_ctx =
+    ipv6ScopeZoneIndexTable_rowreq_ctx *rowreq_ctx = (ipv6ScopeZoneIndexTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1021,10 +1021,14 @@
     if_ctx->cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
 
     ipv6ScopeZoneIndexTable_container_init(&if_ctx->container, if_ctx->cache);
-    if (NULL == if_ctx->container)
+    if (NULL == if_ctx->container) {
         if_ctx->container =
             netsnmp_container_find
             ("ipv6ScopeZoneIndexTable:table_container");
+        if (if_ctx->container)
+            if_ctx->container->container_name =
+                 strdup("ipv6ScopeZoneIndexTable");
+    }
     if (NULL == if_ctx->container) {
         snmp_log(LOG_ERR, "error creating container in "
                  "ipv6ScopeZoneIndexTable_container_init\n");
@@ -1075,7 +1079,7 @@
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx =
+    rowreq_ctx = (ipv6ScopeZoneIndexTable_rowreq_ctx*)
         CONTAINER_FIND(ipv6ScopeZoneIndexTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
diff --git a/agent/mibgroup/kernel_sunos5.c b/agent/mibgroup/kernel_sunos5.c
index 9a534fc..67718e2 100644
--- a/agent/mibgroup/kernel_sunos5.c
+++ b/agent/mibgroup/kernel_sunos5.c
@@ -240,7 +240,7 @@
 
     for (i = 0; i < MIBCACHE_SIZE; i++) {
 	DEBUGMSGTL(("kernel_sunos5", "cache[%d] time %ld ttl %d\n", i,
-		    Mibcache[i].cache_time, Mibcache[i].cache_ttl));
+		    Mibcache[i].cache_time, (int)Mibcache[i].cache_ttl));
 	if (Mibcache[i].cache_time < period) {
 	    Mibcache[i].cache_time = 0;
 	} else {
@@ -375,7 +375,7 @@
     kstat_t        *ks, *kstat_data;
     kstat_named_t  *d;
     uint_t          i;
-    int             instance;
+    int             instance = 0;
     char            module_name[64];
     int             ret;
     u_longlong_t    val;    /* The largest value */
@@ -482,11 +482,11 @@
 		break;
 	    case KSTAT_DATA_INT64:
 		*(int64_t *)v = d->value.i64;
-		DEBUGMSGTL(("kernel_sunos5", "value: %ld\n", d->value.i64));
+		DEBUGMSGTL(("kernel_sunos5", "value: %ld\n", (long)d->value.i64));
 		break;
 	    case KSTAT_DATA_UINT64:
 		*(uint64_t *)v = d->value.ui64;
-		DEBUGMSGTL(("kernel_sunos5", "value: %lu\n", d->value.ui64));
+		DEBUGMSGTL(("kernel_sunos5", "value: %lu\n", (unsigned long)d->value.ui64));
 		break;
 #else
 	    case KSTAT_DATA_LONG:
@@ -539,7 +539,7 @@
     kstat_ctl_t    *ksc;
     kstat_t        *ks, *kstat_data;
     kstat_named_t  *d;
-    size_t          i, instance;
+    size_t          i, instance = 0;
     char            module_name[64];
     int             ret;
 
@@ -664,7 +664,7 @@
      */
 
     DEBUGMSGTL(("kernel_sunos5", "getMibstat (%d, *, %d, %d, *, *)\n",
-		grid, entrysize, req_type));
+		grid, (int)entrysize, req_type));
     cachep = &Mibcache[grid];
     mibgr = Mibmap[grid].group;
     mibtb = Mibmap[grid].table;
@@ -682,7 +682,7 @@
     cache_valid = (cachep->cache_time > 0);
 
     DEBUGMSGTL(("kernel_sunos5","... cache_valid %d time %ld ttl %d now %ld\n",
-		cache_valid, cachep->cache_time, cachep->cache_ttl,
+		cache_valid, cachep->cache_time, (int)cachep->cache_ttl,
 		time(NULL)));
     if (cache_valid) {
 	/*
@@ -789,7 +789,7 @@
          */
         DEBUGMSGTL(("kernel_sunos5", 
             "bad cache length %d - not multiple of entry size %d\n", 
-            len, entrysize));
+            (int)len, (int)entrysize));
         return NOT_FOUND;
     }
 
@@ -1043,7 +1043,7 @@
 	    }
 	} while (rc == MOREDATA && result != FOUND);
 
-	DEBUGMSGTL(("kernel_sunos5", "...... getmib buffer size is %d\n", *size));
+	DEBUGMSGTL(("kernel_sunos5", "...... getmib buffer size is %d\n", (int)*size));
 
 	if (result == FOUND) {      /* Search is successful */
 	    if (rc != MOREDATA) {
@@ -1184,7 +1184,7 @@
         return (errp->dl_errno);
     }
     default:
-        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type: %x\n", dlp->dl_primitive));
+        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type: %x\n", (unsigned)dlp->dl_primitive));
         return (-1);
     }
 }
@@ -1230,7 +1230,7 @@
             return (-1); 
 
         DEBUGMSGTL(("kernel_sunos5:dlpi", "dl_mac_type: %x\n",
-	           info->dl_mac_type));
+	           (unsigned)info->dl_mac_type));
 	switch (info->dl_mac_type) {
 	case DL_CSMACD:
 	case DL_ETHER:
@@ -1295,15 +1295,15 @@
         dl_error_ack_t *errp = (dl_error_ack_t *)buf;
 
         DEBUGMSGTL(("kernel_sunos5:dlpi",
-                    "got DL_ERROR_ACK: dlpi %d, error %d\n", errp->dl_errno,
-                    errp->dl_unix_errno));
+                    "got DL_ERROR_ACK: dlpi %ld, error %ld\n",
+		    (long)errp->dl_errno, (long)errp->dl_unix_errno));
 
         if (ctlbuf.len < DL_ERROR_ACK_SIZE)
             return (-1);
         return (errp->dl_errno);
     }
     default:
-        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type %x\n", dlp->dl_primitive));
+        DEBUGMSGTL(("kernel_sunos5:dlpi", "got type %x\n", (unsigned)dlp->dl_primitive));
         return (-1);
     }
 }
@@ -1346,7 +1346,7 @@
     int m = 1;
     int i = strlen(devname) - 1;
 
-    while (i >= 0 && isdigit(devname[i])) {
+    while (i >= 0 && isdigit(devname[i] & 0xFF)) {
         ppa += m * (devname[i] - '0'); 
         m *= 10;
         i--;
diff --git a/agent/mibgroup/mibII.h b/agent/mibgroup/mibII.h
index 1b21057..1b94a59 100644
--- a/agent/mibgroup/mibII.h
+++ b/agent/mibgroup/mibII.h
@@ -15,7 +15,7 @@
 config_require(mibII/setSerialNo)
 
 /* mibII/ipv6 is activated via --enable-ipv6 and only builds on Linux+*BSD */
-#if defined(NETSNMP_ENABLE_IPV6) && (defined(linux) || defined(freebsd3) || defined(netbsd1) || defined(openbsd))
+#if defined(NETSNMP_ENABLE_IPV6) && (defined(linux) || defined(freebsd3) || defined(netbsd1) || defined(openbsd4)) 
 config_require(mibII/ipv6)
 #endif
 
@@ -29,6 +29,14 @@
  */
 #if defined( linux )
 config_require(ip-mib ip-forward-mib tcp-mib udp-mib)
+#elif defined(solaris2)
+config_require(tcp-mib udp-mib)
+#elif defined(freebsd4) || defined(dragonfly)
+config_require(tcp-mib udp-mib)
+#elif defined(openbsd4)
+config_require(tcp-mib udp-mib)
+#elif defined(netbsd1)
+config_require(tcp-mib udp-mib)
 #endif
 
 /*
diff --git a/agent/mibgroup/mibII/at.c b/agent/mibgroup/mibII/at.c
index ebe4a03..e968074 100644
--- a/agent/mibgroup/mibII/at.c
+++ b/agent/mibgroup/mibII/at.c
@@ -31,11 +31,7 @@
 #endif
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# if defined (WIN32) || defined (cygwin)
-#  include <sys/timeb.h>
-# else
 # include <sys/time.h>
-# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -89,9 +85,6 @@
 #ifdef solaris2
 #include "kernel_sunos5.h"
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #ifdef hpux11
 #include <sys/mib.h>
@@ -360,7 +353,8 @@
                                     mp->ipNetToMediaIfIndex.o_length);
 #endif
     DEBUGMSGTL(("mibII/at", "......... AT_Cmp %lx<>%lx %d<>%d (%.5s)\n",
-                mp->ipNetToMediaNetAddress, ((if_ip_t *) addr)->ipAddr,
+                (unsigned long)mp->ipNetToMediaNetAddress,
+                (unsigned long)((if_ip_t *) addr)->ipAddr,
                 ((if_ip_t *) addr)->ifIdx, index,
                 mp->ipNetToMediaIfIndex.o_bytes));
     if (mp->ipNetToMediaNetAddress != ((if_ip_t *) addr)->ipAddr)
@@ -396,7 +390,7 @@
     static mib2_ipNetToMediaEntry_t Lowentry;
     int             Found = 0;
     req_e           req_type;
-    int             offset, olength;
+    int             offset, olength = 0;
     static in_addr_t      addr_ret;
 
     /*
@@ -638,7 +632,7 @@
     i = 0;
     while (fgets(line, sizeof(line), in)) {
         u_long          tmp_a;
-        int             tmp_flags;
+        unsigned int    tmp_flags;
         if (i >= arptab_curr_max_size) {
             struct arptab  *newtab = (struct arptab *)
                 realloc(at, (sizeof(struct arptab) *
@@ -862,7 +856,7 @@
 }
 #endif                          /* solaris2 */
 
-#else                           /* WIN32 cygwin */
+#elif defined(HAVE_IPHLPAPI_H)  /* WIN32 cygwin */
 #include <iphlpapi.h>
 
 extern WriteMethod write_arp;
@@ -896,6 +890,7 @@
     DWORD           status = NO_ERROR;
     DWORD           dwActualSize = 0;
     UINT            i;
+    int             j;
     u_char          dest_addr[4];
     void           *result = NULL;
     static in_addr_t	addr_ret;
@@ -919,6 +914,7 @@
             status = GetIpNetTable(pIpNetTable, &dwActualSize, TRUE);
     }
 
+    i = -1;
 
     if (status == NO_ERROR) {
         for (i = 0; i < pIpNetTable->dwNumEntries; ++i) {
@@ -973,16 +969,16 @@
             arp_row->dwIndex = name[10];
 
             if (*length == 15) {        /* ipNetToMediaTable */
-                i = 11;
+                j = 11;
             } else {            /* at Table */
 
-                i = 12;
+                j = 12;
             }
 
-            dest_addr[0] = (u_char) name[i];
-            dest_addr[1] = (u_char) name[i + 1];
-            dest_addr[2] = (u_char) name[i + 2];
-            dest_addr[3] = (u_char) name[i + 3];
+            dest_addr[0] = (u_char) name[j];
+            dest_addr[1] = (u_char) name[j + 1];
+            dest_addr[2] = (u_char) name[j + 2];
+            dest_addr[3] = (u_char) name[j + 3];
             arp_row->dwAddr = *((DWORD *) dest_addr);
 
             arp_row->dwType = 4;        /* Static */
@@ -995,6 +991,7 @@
     memcpy((char *) name, (char *) lowest, oid_length * sizeof(oid));
     *length = oid_length;
     *write_method = write_arp;
+    netsnmp_assert(0 <= i && i < pIpNetTable->dwNumEntries);
     *arp_row = pIpNetTable->table[i];
 
     switch (vp->magic) {
diff --git a/agent/mibgroup/mibII/icmp.c b/agent/mibgroup/mibII/icmp.c
index af63395..10f731c 100644
--- a/agent/mibgroup/mibII/icmp.c
+++ b/agent/mibgroup/mibII/icmp.c
@@ -38,14 +38,17 @@
 #endif
 
 /* redefine ICMP6 message types from glibc < 2.4 to newer names */
-#ifdef ICMP6_MEMBERSHIP_QUERY
+#ifndef MLD_LISTENER_QUERY
 #define MLD_LISTENER_QUERY ICMP6_MEMBERSHIP_QUERY
 #define MLD_LISTENER_REPORT ICMP6_MEMBERSHIP_REPORT
 #define MLD_LISTENER_REDUCTION ICMP6_MEMBERSHIP_REDUCTION
 #endif /* ICMP6_MEMBERSHIP_QUERY */
 
 
-#if defined(HAVE_LIBPERFSTAT_H) && (defined(aix4) || defined(aix5) || defined(aix6)) && !defined(FIRST_PROTOCOL)
+#if defined(HAVE_LIBPERFSTAT_H) && (defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)) && !defined(FIRST_PROTOCOL)
+#ifdef HAVE_SYS_PROTOSW_H
+#include <sys/protosw.h>
+#endif
 #include <libperfstat.h>
 #ifdef FIRST_PROTOCOL
 perfstat_protocol_t ps_proto;
@@ -160,8 +163,10 @@
 {
     struct icmp_mib v4icmp;
     struct icmp4_msg_mib v4icmpmsg;
+#ifdef NETSNMP_ENABLE_IPV6
     struct icmp6_mib v6icmp;
     struct icmp6_msg_mib v6icmpmsg;
+#endif
     int i, j, k, flag, inc;
 
     memset(&icmp_msg_stats_table, 0, sizeof(icmp_msg_stats_table));
@@ -372,7 +377,7 @@
                      netsnmp_variable_list *index,
                      netsnmp_iterator_info *data)
 {
-	int i = (int)(*loop_context);
+	int i = (int)(intptr_t)(*loop_context);
 	netsnmp_variable_list *idx = index;
 
 	if(i > 1)
@@ -388,7 +393,7 @@
 
 	*data_context = &icmp_stats_table[i];
 
-	*loop_context = (void *)(++i);
+	*loop_context = (void *)(intptr_t)(++i);
 	
 	return index;
 }
@@ -412,7 +417,7 @@
                           netsnmp_variable_list *index,
                           netsnmp_iterator_info *data)
 {
-    int i = (int)(*loop_context);
+    int i = (int)(intptr_t)(*loop_context);
     netsnmp_variable_list *idx = index;
 
     if(i >= ICMP_MSG_STATS_IPV4_COUNT + ICMP_MSG_STATS_IPV6_COUNT)
@@ -430,7 +435,7 @@
             sizeof(uint32_t));
 
     *data_context = &icmp_msg_stats_table[i];
-    *loop_context = (void *)(++i);
+    *loop_context = (void *)(intptr_t)(++i);
 
     return index;
 }
@@ -442,7 +447,7 @@
                            netsnmp_variable_list *index,
                            netsnmp_iterator_info *data)
 {
-    *loop_context = 0;
+    *loop_context = NULL;
     *data_context = NULL;
     return icmp_msg_stats_next_entry(loop_context, data_context, index, data);
 }
@@ -619,7 +624,7 @@
 #undef ICMP_NSTATS
 #endif
 
-#if defined (WIN32) || defined (cygwin)
+#ifdef HAVE_IPHLPAPI_H
 #include <iphlpapi.h>
 #define ICMP_STAT_STRUCTURE MIB_ICMP
 #endif
diff --git a/agent/mibgroup/mibII/interfaces.c b/agent/mibgroup/mibII/interfaces.c
index 32883f3..467657a 100644
--- a/agent/mibgroup/mibII/interfaces.c
+++ b/agent/mibgroup/mibII/interfaces.c
@@ -37,9 +37,6 @@
 #include <sys/param.h>
 #endif
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if defined(NETSNMP_IFNET_NEEDS_KERNEL) && !defined(_KERNEL) && defined(NETSNMP_IFNET_NEEDS_KERNEL_LATE)
 #define _KERNEL 1
 #define _I_DEFINED_KERNEL
@@ -57,11 +54,7 @@
 #endif
 
 #if TIME_WITH_SYS_TIME
-# if defined (WIN32) || defined (cygwin)
-#  include <sys/timeb.h>
-# else
 # include <sys/time.h>
-# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -204,13 +197,13 @@
 #include "struct.h"
 #include "util_funcs/header_generic.h"
 
-/* if you want caching enabled for speed retrival purposes, set this to 5?*/
+/* if you want caching enabled for speed retrieval purposes, set this to 5?*/
 #define MINLOADFREQ 0                     /* min reload frequency in seconds */
 #ifdef linux
 static unsigned long LastLoad = 0;        /* ET in secs at last table load */
 #endif
 
-extern struct timeval starttime;
+#define starttime (*(const struct timeval*)netsnmp_get_agent_starttime())
 
 struct variable3 interfaces_variables[] = {
     {NETSNMP_IFNUMBER, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
@@ -840,7 +833,7 @@
         return (u_char *) & long_return;
     case NETSNMP_IFPHYSADDRESS:
         Interface_Get_Ether_By_Index(interface, return_buf);
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
 	*var_len = 0;
 #else
         if ((return_buf[0] == 0) && (return_buf[1] == 0) &&
@@ -889,7 +882,7 @@
         return (u_char *) & long_return;
     case NETSNMP_IFINOCTETS:
 #ifdef HAVE_STRUCT_IFNET_IF_IBYTES
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         long_return = (u_long) ifnet.if_ibytes & 0xffffffff;
 #else
         long_return = (u_long) ifnet.if_ibytes;
@@ -903,13 +896,13 @@
         return (u_char *) & long_return;
     case NETSNMP_IFINUCASTPKTS:
         {
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
             long_return = (u_long) ifnet.if_ipackets & 0xffffffff;
 #else
             long_return = (u_long) ifnet.if_ipackets;
 #endif
 #if HAVE_STRUCT_IFNET_IF_IMCASTS
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
             long_return -= (u_long) ifnet.if_imcasts & 0xffffffff;
 #else
             long_return -= (u_long) ifnet.if_imcasts;
@@ -919,7 +912,7 @@
         return (u_char *) & long_return;
     case NETSNMP_IFINNUCASTPKTS:
 #if HAVE_STRUCT_IFNET_IF_IMCASTS
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         long_return = (u_long) ifnet.if_imcasts & 0xffffffff;
 #else
         long_return = (u_long) ifnet.if_imcasts;
@@ -933,7 +926,7 @@
         return (u_char *) & long_return;
     case NETSNMP_IFINDISCARDS:
 #if HAVE_STRUCT_IFNET_IF_IQDROPS
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         long_return = (u_long) ifnet.if_iqdrops & 0xffffffff;
 #else
         long_return = (u_long) ifnet.if_iqdrops;
@@ -946,7 +939,7 @@
 #endif
         return (u_char *) & long_return;
     case NETSNMP_IFINERRORS:
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         long_return = (u_long) ifnet.if_ierrors & 0xffffffff;
 #else
         long_return = (u_long) ifnet.if_ierrors;
@@ -954,7 +947,7 @@
         return (u_char *) & long_return;
     case NETSNMP_IFINUNKNOWNPROTOS:
 #if HAVE_STRUCT_IFNET_IF_NOPROTO
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         long_return = (u_long) ifnet.if_noproto & 0xffffffff;
 #else
         long_return = (u_long) ifnet.if_noproto;
@@ -968,7 +961,7 @@
         return (u_char *) & long_return;
     case NETSNMP_IFOUTOCTETS:
 #ifdef HAVE_STRUCT_IFNET_IF_OBYTES
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         long_return = (u_long) ifnet.if_obytes & 0xffffffff;
 #else
         long_return = (u_long) ifnet.if_obytes;
@@ -982,13 +975,13 @@
         return (u_char *) & long_return;
     case NETSNMP_IFOUTUCASTPKTS:
         {
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
             long_return = (u_long) ifnet.if_opackets & 0xffffffff;
 #else
             long_return = (u_long) ifnet.if_opackets;
 #endif
 #if HAVE_STRUCT_IFNET_IF_OMCASTS
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
             long_return -= (u_long) ifnet.if_omcasts & 0xffffffff;
 #else
             long_return -= (u_long) ifnet.if_omcasts;
@@ -998,7 +991,7 @@
         return (u_char *) & long_return;
     case NETSNMP_IFOUTNUCASTPKTS:
 #if HAVE_STRUCT_IFNET_IF_OMCASTS
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         long_return = (u_long) ifnet.if_omcasts & 0xffffffff;
 #else
         long_return = (u_long) ifnet.if_omcasts;
@@ -1011,21 +1004,21 @@
 #endif
         return (u_char *) & long_return;
     case NETSNMP_IFOUTDISCARDS:
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         long_return = ifnet.if_snd.ifq_drops & 0xffffffff;
 #else
         long_return = ifnet.if_snd.ifq_drops;
 #endif
         return (u_char *) & long_return;
     case NETSNMP_IFOUTERRORS:
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         long_return = ifnet.if_oerrors & 0xffffffff;
 #else
         long_return = ifnet.if_oerrors;
 #endif
         return (u_char *) & long_return;
     case NETSNMP_IFOUTQLEN:
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
         long_return = ifnet.if_snd.ifq_len & 0xffffffff;
 #else
         long_return = ifnet.if_snd.ifq_len;
@@ -1562,7 +1555,7 @@
      */
     if (!(devin = fopen("/proc/net/dev", "r"))) {
         close(fd);
-        snmp_log(LOG_ERR, "cannot open /proc/net/dev - continuing...\n");
+        NETSNMP_LOGONCE((LOG_ERR, "cannot open /proc/net/dev.\n"));
         return; /** exit (1); **/
     }
 
@@ -2657,7 +2650,7 @@
 #endif                          /* HAVE_NET_IF_MIB_H */
 #endif                          /* !USE_SYSCTL_IFLIST */
 
-#else                           /* WIN32 cygwin */
+#elif defined(HAVE_IPHLPAPI_H)  /* WIN32 cygwin */
 #include <iphlpapi.h>
 
 WriteMethod     writeIfEntry;
@@ -2794,7 +2787,7 @@
         return (u_char *) & long_return;
     case NETSNMP_IFSPEED:
         if (if_ptr)
-            long_return = if_ptr->speed;
+            long_return = (long) if_ptr->speed;
         else
         long_return = (long) ifRow.dwSpeed;
         return (u_char *) & long_return;
diff --git a/agent/mibgroup/mibII/ip.c b/agent/mibgroup/mibII/ip.c
index 1401bd1..2482a91 100644
--- a/agent/mibgroup/mibII/ip.c
+++ b/agent/mibgroup/mibII/ip.c
@@ -33,7 +33,10 @@
 #define IP_STATS_CACHE_TIMEOUT	MIB_STATS_CACHE_TIMEOUT
 #endif
 
-#if defined(HAVE_LIBPERFSTAT_H) && (defined(aix4) || defined(aix5) || defined(aix6)) && !defined(FIRST_PROTOCOL)
+#if defined(HAVE_LIBPERFSTAT_H) && (defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)) && !defined(FIRST_PROTOCOL)
+#ifdef HAVE_SYS_PROTOSW_H
+#include <sys/protosw.h>
+#endif
 #include <libperfstat.h>
 #ifdef FIRST_PROTOCOL
 perfstat_protocol_t ps_proto;
@@ -234,7 +237,7 @@
 #undef IP_NSTATS
 #endif
 
-#if defined (WIN32) || defined (cygwin)
+#ifdef HAVE_IPHLPAPI_H
 #include <iphlpapi.h>
 #define IP_STAT_STRUCTURE MIB_IPSTATS
 long            ipForwarding;
diff --git a/agent/mibgroup/mibII/ipAddr.c b/agent/mibgroup/mibII/ipAddr.c
index 4199392..3326626 100644
--- a/agent/mibgroup/mibII/ipAddr.c
+++ b/agent/mibgroup/mibII/ipAddr.c
@@ -39,9 +39,6 @@
 #include <strings.h>
 #endif
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_SYS_SYSCTL_H
 #ifdef _I_DEFINED_KERNEL
 #undef _KERNEL
@@ -959,7 +956,7 @@
 
 #endif                          /* NETSNMP_CAN_USE_SYSCTL && IPCTL_STATS */
 
-#else                           /* WIN32 cygwin */
+#elif defined(HAVE_IPHLPAPI_H)  /* WIN32 cygwin */
 #include <iphlpapi.h>
 u_char         *
 var_ipAddrEntry(struct variable *vp,
diff --git a/agent/mibgroup/mibII/ipCidrRouteTable.c b/agent/mibgroup/mibII/ipCidrRouteTable.c
index 57ab14b..172f284 100644
--- a/agent/mibgroup/mibII/ipCidrRouteTable.c
+++ b/agent/mibgroup/mibII/ipCidrRouteTable.c
@@ -73,7 +73,7 @@
                                      0);
 
     /** Define the minimum and maximum accessible columns.  This
-        optimizes retrival. */
+        optimizes retrieval. */
     table_info->min_column = 1;
     table_info->max_column = 16;
 
diff --git a/agent/mibgroup/mibII/ipv6.c b/agent/mibgroup/mibII/ipv6.c
index 5941cb0..33a3db7 100644
--- a/agent/mibgroup/mibII/ipv6.c
+++ b/agent/mibgroup/mibII/ipv6.c
@@ -2082,7 +2082,7 @@
         p = if_getname(interface);
         if (p) {
             *var_len = strlen(p);
-            return p;
+            return (u_char *) p;
         }
         break;
     case IPV6IFLOWLAYER:
diff --git a/agent/mibgroup/mibII/mibII_common.h b/agent/mibgroup/mibII/mibII_common.h
index c7499d3..160ab82 100644
--- a/agent/mibgroup/mibII/mibII_common.h
+++ b/agent/mibgroup/mibII/mibII_common.h
@@ -11,9 +11,6 @@
 #include <strings.h>
 #endif
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #if HAVE_SYS_PARAM_H
 #include <sys/param.h>
diff --git a/agent/mibgroup/mibII/route_headers.h b/agent/mibgroup/mibII/route_headers.h
index bf7e806..eace2e2 100644
--- a/agent/mibgroup/mibII/route_headers.h
+++ b/agent/mibgroup/mibII/route_headers.h
@@ -40,11 +40,7 @@
 #include <sys/socket.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# if defined (WIN32) || defined (cygwin)
-#  include <sys/timeb.h>
-# else
 # include <sys/time.h>
-# endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -149,10 +145,6 @@
 #endif
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #if HAVE_NLIST_H
 #include <nlist.h>
 #endif
diff --git a/agent/mibgroup/mibII/route_write.c b/agent/mibgroup/mibII/route_write.c
index 3e2799e..5820ee1 100644
--- a/agent/mibgroup/mibII/route_write.c
+++ b/agent/mibgroup/mibII/route_write.c
@@ -60,10 +60,6 @@
 #include <stdlib.h>
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -597,7 +593,7 @@
     return SNMP_ERR_NOERROR;
 }
 
-#else                           /* WIN32 cygwin */
+#elif defined(HAVE_IPHLPAPI_H)  /* WIN32 cygwin */
 #include <iphlpapi.h>
 
 extern PMIB_IPFORWARDROW route_row;
diff --git a/agent/mibgroup/mibII/snmp_mib_5_5.c b/agent/mibgroup/mibII/snmp_mib_5_5.c
index 161e65d..2efffeb 100644
--- a/agent/mibgroup/mibII/snmp_mib_5_5.c
+++ b/agent/mibgroup/mibII/snmp_mib_5_5.c
@@ -3,7 +3,7 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/sysORTable.h>
 
-#include <utilities/snmp_get_statistic.h>
+#include <net-snmp/agent/snmp_get_statistic.h>
 
 #include "snmp_mib_5_5.h"
 #include "updates.h"
diff --git a/agent/mibgroup/mibII/snmp_mib_5_5.h b/agent/mibgroup/mibII/snmp_mib_5_5.h
index b3e452b..2e56103 100644
--- a/agent/mibgroup/mibII/snmp_mib_5_5.h
+++ b/agent/mibgroup/mibII/snmp_mib_5_5.h
@@ -1,5 +1,4 @@
 config_require(mibII/updates)
-config_require(utilities/snmp_get_statistic)
 config_exclude(mibII/snmp_mib)
 
 void            init_snmp_mib_5_5(void);
diff --git a/agent/mibgroup/mibII/sysORTable.c b/agent/mibgroup/mibII/sysORTable.c
index 941d53d..567478a 100644
--- a/agent/mibgroup/mibII/sysORTable.c
+++ b/agent/mibgroup/mibII/sysORTable.c
@@ -52,9 +52,9 @@
 	    else
 		++sysORNextIndex;
 
-	    for (value = it->curr(it);
+	    for (value = (sysORTable_entry*)it->curr(it);
 		 value && value->sysORIndex < cur;
-		 value = ITERATOR_NEXT(it)) {
+		 value = (sysORTable_entry*)ITERATOR_NEXT(it)) {
 	    }
 
 	    if (value && value->sysORIndex == cur) {
@@ -101,7 +101,7 @@
                 "unregister_cb(%d, %d, %p, %p)\n", major, minor, serv, client));
     sysORLastChange = ((struct sysORTable*)(serv))->OR_uptime;
 
-    while ((value = ITERATOR_NEXT(it)) && value->data != serv);
+    while ((value = (sysORTable_entry*)ITERATOR_NEXT(it)) && value->data != serv);
     ITERATOR_RELEASE(it);
     if(value) {
 	CONTAINER_REMOVE(table, value);
@@ -215,6 +215,7 @@
         CONTAINER_FREE(table);
         return;
     }
+    table->container_name = strdup("sysORTable");
 
     netsnmp_table_helper_add_indexes(sysORTable_table_info,
                                      ASN_INTEGER, /** index: sysORIndex */
diff --git a/agent/mibgroup/mibII/system_mib.c b/agent/mibgroup/mibII/system_mib.c
index 532ea22..9b5bf56 100644
--- a/agent/mibgroup/mibII/system_mib.c
+++ b/agent/mibgroup/mibII/system_mib.c
@@ -27,9 +27,6 @@
 #include <strings.h>
 #endif
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #if HAVE_UTSNAME_H
 #include <utsname.h>
diff --git a/agent/mibgroup/mibII/tcp.c b/agent/mibgroup/mibII/tcp.c
index d95cb94..2be9481 100644
--- a/agent/mibgroup/mibII/tcp.c
+++ b/agent/mibgroup/mibII/tcp.c
@@ -62,7 +62,10 @@
 #define TCP_STATS_CACHE_TIMEOUT	MIB_STATS_CACHE_TIMEOUT
 #endif
 
-#if defined(HAVE_LIBPERFSTAT_H) && (defined(aix4) || defined(aix5) || defined(aix6)) && !defined(FIRST_PROTOCOL)
+#if defined(HAVE_LIBPERFSTAT_H) && (defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)) && !defined(FIRST_PROTOCOL)
+#ifdef HAVE_SYS_PROTOSW_H
+#include <sys/protosw.h>
+#endif
 #include <libperfstat.h>
 #ifdef FIRST_PROTOCOL
 perfstat_protocol_t ps_proto;
@@ -176,7 +179,7 @@
 #undef TCP_NSTATS
 #endif
 
-#if defined (WIN32) || defined (cygwin)
+#ifdef HAVE_IPHLPAPI_H
 #include <iphlpapi.h>
 #define TCP_STAT_STRUCTURE     MIB_TCPSTATS
 #endif
diff --git a/agent/mibgroup/mibII/tcpTable.c b/agent/mibgroup/mibII/tcpTable.c
index 9368c89..ddd4b2c 100644
--- a/agent/mibgroup/mibII/tcpTable.c
+++ b/agent/mibgroup/mibII/tcpTable.c
@@ -67,7 +67,7 @@
 #define	TCPTABLE_IS_LINKED_LIST
 #else
 
-#if defined (WIN32) || defined (cygwin)
+#ifdef HAVE_IPHLPAPI_H
 #include <iphlpapi.h>
 #define	TCPTABLE_ENTRY_TYPE	MIB_TCPROW
 #define	TCPTABLE_STATE		dwState 
@@ -95,6 +95,7 @@
     int             state;
     netsnmp_inpcb  *inp_next;
 };
+#undef INP_NEXT_SYMBOL
 #define INP_NEXT_SYMBOL		inp_next
 #define	TCPTABLE_ENTRY_TYPE	netsnmp_inpcb 
 #define	TCPTABLE_STATE		state 
@@ -679,7 +680,7 @@
 
     if (!(in = fopen("/proc/net/tcp", "r"))) {
         DEBUGMSGTL(("mibII/tcpTable", "Failed to load TCP Table (linux1)\n"));
-        snmp_log(LOG_ERR, "snmpd: cannot open /proc/net/tcp ...\n");
+        NETSNMP_LOGONCE((LOG_ERR, "snmpd: cannot open /proc/net/tcp ...\n"));
         return -1;
     }
 
@@ -690,7 +691,8 @@
      */
     while (line == fgets(line, sizeof(line), in)) {
         struct inpcb    pcb, *nnew;
-        int             state, lp, fp, uid;
+        unsigned int    lp, fp;
+        int             state, uid;
 
         if (6 != sscanf(line,
                         "%*d: %x:%x %x:%x %x %*X:%*X %*X:%*X %*X %d",
diff --git a/agent/mibgroup/mibII/udp.c b/agent/mibgroup/mibII/udp.c
index 832d32f..c9f8a4f 100644
--- a/agent/mibgroup/mibII/udp.c
+++ b/agent/mibgroup/mibII/udp.c
@@ -37,7 +37,10 @@
 #define UDP_STATS_CACHE_TIMEOUT	MIB_STATS_CACHE_TIMEOUT
 #endif
 
-#if defined(HAVE_LIBPERFSTAT_H) && (defined(aix4) || defined(aix5) || defined(aix6)) && !defined(FIRST_PROTOCOL)
+#if defined(HAVE_LIBPERFSTAT_H) && (defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)) && !defined(FIRST_PROTOCOL)
+#ifdef HAVE_SYS_PROTOSW_H
+#include <sys/protosw.h>
+#endif
 #include <libperfstat.h>
 #ifdef FIRST_PROTOCOL
 perfstat_protocol_t ps_proto;
@@ -138,7 +141,7 @@
 #undef UDP_NSTATS
 #endif
 
-#ifdef WIN32
+#ifdef HAVE_IPHLPAPI_H
 #include <iphlpapi.h>
 #define UDP_STAT_STRUCTURE MIB_UDPSTATS
 #endif
diff --git a/agent/mibgroup/mibII/udpTable.c b/agent/mibgroup/mibII/udpTable.c
index 87d1c55..f461f02 100644
--- a/agent/mibgroup/mibII/udpTable.c
+++ b/agent/mibgroup/mibII/udpTable.c
@@ -53,7 +53,7 @@
 #define	UDPTABLE_IS_LINKED_LIST
 #else
 
-#if defined (WIN32) || defined (cygwin)
+#ifdef HAVE_IPHLPAPI_H
 #include <iphlpapi.h>
 #define	UDPTABLE_ENTRY_TYPE	MIB_UDPROW		/* ??? */
 #define	UDPTABLE_LOCALADDRESS	dwLocalAddr
@@ -478,7 +478,7 @@
 
     if (!(in = fopen("/proc/net/udp", "r"))) {
         DEBUGMSGTL(("mibII/udpTable", "Failed to load UDP Table (linux)\n"));
-        snmp_log(LOG_ERR, "snmpd: cannot open /proc/net/udp ...\n");
+        NETSNMP_LOGONCE((LOG_ERR, "snmpd: cannot open /proc/net/udp ...\n"));
         return -1;
     }
 
diff --git a/agent/mibgroup/mibII/updates.c b/agent/mibgroup/mibII/updates.c
index 3dd5836..87bed89 100644
--- a/agent/mibgroup/mibII/updates.c
+++ b/agent/mibgroup/mibII/updates.c
@@ -12,8 +12,10 @@
 
     if (reqinfo->mode == MODE_SET_RESERVE1 && *set < 0)
         netsnmp_request_set_error(requests, SNMP_ERR_NOTWRITABLE);
-    else if (reqinfo->mode == MODE_SET_COMMIT)
+    else if (reqinfo->mode == MODE_SET_COMMIT) {
         *set = 1;
+        snmp_store_needed(reginfo->handlerName);
+    }
     return SNMP_ERR_NOERROR;
 }
 
diff --git a/agent/mibgroup/mibII/vacm_conf.c b/agent/mibgroup/mibII/vacm_conf.c
index 8b2ae77..337a5fc 100644
--- a/agent/mibgroup/mibII/vacm_conf.c
+++ b/agent/mibgroup/mibII/vacm_conf.c
@@ -40,9 +40,6 @@
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
@@ -69,14 +66,17 @@
                                   "name context model level prefix viewname viewval");
     snmpd_register_config_handler("view", vacm_parse_view, vacm_free_view,
                                   "name type subtree [mask]");
-    snmpd_register_config_handler("vacmView", vacm_parse_config_view, NULL,
-                                  NULL);
-    snmpd_register_config_handler("vacmGroup", vacm_parse_config_group,
-                                  NULL, NULL);
-    snmpd_register_config_handler("vacmAccess", vacm_parse_config_access,
-                                  NULL, NULL);
-    snmpd_register_config_handler("vacmAuthAccess", vacm_parse_config_auth_access,
-                                  NULL, NULL);
+    snmpd_register_const_config_handler("vacmView",
+                                        vacm_parse_config_view, NULL, NULL);
+    snmpd_register_const_config_handler("vacmGroup",
+                                        vacm_parse_config_group,
+                                        NULL, NULL);
+    snmpd_register_const_config_handler("vacmAccess",
+                                        vacm_parse_config_access,
+                                        NULL, NULL);
+    snmpd_register_const_config_handler("vacmAuthAccess",
+                                        vacm_parse_config_auth_access,
+                                        NULL, NULL);
 
     /* easy community auth handler */
     snmpd_register_config_handler("authcommunity",
@@ -624,7 +624,7 @@
     size_t          suboid_len = 0;
     size_t          mask_len = 0;
     u_char          viewMask[VACMSTRINGLEN];
-    int             i;
+    size_t          i;
     char            *st;
 
     name = strtok_r(param, " \t\n", &st);
@@ -661,7 +661,7 @@
         return;
     }
     if (mask) {
-        int             val;
+        unsigned int val;
         i = 0;
         for (mask = strtok_r(mask, " .:", &st); mask; mask = strtok_r(NULL, " .:", &st)) {
             if (i >= sizeof(viewMask)) {
@@ -943,6 +943,7 @@
     commcount++;
 
 #if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
+#ifdef NETSNMP_TRANSPORT_UDP_DOMAIN
     if (parsetype == VACM_CREATE_SIMPLE_COMIPV4 ||
         parsetype == VACM_CREATE_SIMPLE_COM) {
         vacm_gen_com2sec(commcount, community, addressname,
@@ -950,13 +951,14 @@
                          secname, sizeof(secname),
                          view_ptr, sizeof(viewname), commversion, context);
     }
-    
+#endif
+
 #ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
     if (parsetype == VACM_CREATE_SIMPLE_COMUNIX ||
         parsetype == VACM_CREATE_SIMPLE_COM) {
-        if (context && *context)
-            snprintf(line, sizeof(line), "-Cn %s %s %s '%s'",
-                 context, secname, addressname, community);
+        if ( *context )
+           snprintf(line, sizeof(line), "-Cn %s %s %s '%s'",
+             context, secname, addressname, community);
         else
             snprintf(line, sizeof(line), "%s %s '%s'",
                  secname, addressname, community);
@@ -995,7 +997,7 @@
              */
             snprintf(grpname, sizeof(grpname), "grp%.28s", secname);
             for (tmp=grpname; *tmp; tmp++)
-                if (!isalnum(*tmp))
+                if (!isalnum((unsigned char)(*tmp)))
                     *tmp = '_';
             snprintf(line, sizeof(line),
                      "%s %s \"%s\"", grpname, model, secname);
@@ -1006,7 +1008,7 @@
     } else {
         snprintf(grpname, sizeof(grpname), "grp%.28s", secname);
         for (tmp=grpname; *tmp; tmp++)
-            if (!isalnum(*tmp))
+            if (!isalnum((unsigned char)(*tmp)))
                 *tmp = '_';
     }
 
@@ -1255,8 +1257,8 @@
     struct vacm_groupEntry *gp;
     struct vacm_viewEntry *vp;
     char            vacm_default_context[1] = "";
-    char           *contextName = vacm_default_context;
-    char           *sn = NULL;
+    const char     *contextName = vacm_default_context;
+    const char     *sn = NULL;
     char           *vn;
     const char     *pdu_community;
 
@@ -1303,7 +1305,9 @@
          * community string to a security name for us.  
          */
 
-        if (pdu->tDomain == netsnmpUDPDomain
+        if (0) {
+#ifdef NETSNMP_TRANSPORT_UDP_DOMAIN
+        } else if (pdu->tDomain == netsnmpUDPDomain
 #ifdef NETSNMP_TRANSPORT_TCP_DOMAIN
             || pdu->tDomain == netsnmp_snmpTCPDomain
 #endif
@@ -1322,6 +1326,7 @@
             SNMP_FREE(pdu->contextName);
             pdu->contextName = strdup(contextName);
             pdu->contextNameLen = strlen(contextName);
+#endif
 #ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
         } else if (pdu->tDomain == netsnmp_UDPIPv6Domain
 #ifdef NETSNMP_TRANSPORT_TCPIPV6_DOMAIN
diff --git a/agent/mibgroup/mibII/vacm_vars.c b/agent/mibgroup/mibII/vacm_vars.c
index 6b73a95..3ad51d4 100644
--- a/agent/mibgroup/mibII/vacm_vars.c
+++ b/agent/mibgroup/mibII/vacm_vars.c
@@ -40,9 +40,6 @@
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
@@ -53,11 +50,7 @@
 #include "util_funcs/header_generic.h"
 
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -151,7 +144,7 @@
 {
     struct vacm_groupEntry *gp;
     oid            *groupSubtree;
-    int             groupSubtreeLen;
+    ssize_t         groupSubtreeLen;
     int             secmodel;
     char            secname[VACMSTRINGLEN], *cp;
 
diff --git a/agent/mibgroup/mibII/var_route.c b/agent/mibgroup/mibII/var_route.c
index dfc1e8d..e6286dc 100644
--- a/agent/mibgroup/mibII/var_route.c
+++ b/agent/mibgroup/mibII/var_route.c
@@ -431,7 +431,8 @@
      * IPADDR starts at offset 10.
      */
     register int    Save_Valid, result, RtIndex;
-    static int      saveNameLen = 0, saveExact = 0, saveRtIndex = 0;
+    static size_t   saveNameLen = 0;
+    static int      saveExact = 0, saveRtIndex = 0;
     static oid      saveName[MAX_OID_LEN], Current[MAX_OID_LEN];
     u_char         *cp;
     oid            *op;
@@ -1316,15 +1317,15 @@
     rtsize = 0;
 
     if (!(in = fopen("/proc/net/route", "r"))) {
-        snmp_log(LOG_ERR, "cannot open /proc/net/route - burps\n");
+        NETSNMP_LOGONCE((LOG_ERR, "cannot open /proc/net/route - burps\n"));
         return;
     }
 
     while (fgets(line, sizeof(line), in)) {
         struct rtentry  rtent;
         char            rtent_name[32];
-        int             refcnt, flags, metric;
-        unsigned        use;
+        int             refcnt, metric;
+        unsigned        flags, use;
 
         rt = &rtent;
         memset((char *) rt, (0), sizeof(*rt));
@@ -1335,18 +1336,15 @@
          * Iface Dest GW Flags RefCnt Use Metric Mask MTU Win IRTT
          * eth0 0A0A0A0A 00000000 05 0 0 0 FFFFFFFF 1500 0 0 
          */
-        if (8 != sscanf(line, "%s %x %x %x %u %d %d %x %*d %*d %*d\n",
+        if (8 != sscanf(line, "%s %x %x %x %d %u %d %x %*d %*d %*d\n",
                         rt->rt_dev,
-                        &(((struct sockaddr_in *) &(rtent.rt_dst))->
-                          sin_addr.s_addr),
-                        &(((struct sockaddr_in *) &(rtent.rt_gateway))->
-                          sin_addr.s_addr),
+                        &(((struct sockaddr_in *) &(rtent.rt_dst))->sin_addr.s_addr),
+                        &(((struct sockaddr_in *) &(rtent.rt_gateway))->sin_addr.s_addr),
                         /*
                          * XXX: fix type of the args 
                          */
                         &flags, &refcnt, &use, &metric,
-                        &(((struct sockaddr_in *) &(rtent.rt_genmask))->
-                          sin_addr.s_addr)))
+                        &(((struct sockaddr_in *) &(rtent.rt_genmask))->sin_addr.s_addr)))
             continue;
 
         strlcpy(name, rt->rt_dev, sizeof(name));
@@ -1445,7 +1443,7 @@
 
 #endif                          /* solaris2 */
 
-#else                           /* WIN32 cygwin */
+#elif defined(HAVE_IPHLPAPI_H)  /* WIN32 cygwin */
 #include <iphlpapi.h>
 #ifndef MIB_IPPROTO_NETMGMT
 #define MIB_IPPROTO_NETMGMT 3
diff --git a/agent/mibgroup/mibincl.h b/agent/mibgroup/mibincl.h
index 28ed599..3d48768 100644
--- a/agent/mibgroup/mibincl.h
+++ b/agent/mibgroup/mibincl.h
@@ -12,11 +12,7 @@
 #include <malloc.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
diff --git a/agent/mibgroup/notification-log-mib/notification_log.c b/agent/mibgroup/notification-log-mib/notification_log.c
index d6a1ee4..bd6a821 100644
--- a/agent/mibgroup/notification-log-mib/notification_log.c
+++ b/agent/mibgroup/notification-log-mib/notification_log.c
@@ -165,7 +165,7 @@
         data = (netsnmp_table_data_set_storage *) row->data;
         data = netsnmp_table_data_set_find_column(data, COLUMN_NLMLOGTIME);
 
-        if (uptime < ((long)(*(data->data.integer) + max_age * 100 * 60)))
+        if (uptime < ((u_long)(*(data->data.integer) + max_age * 100 * 60)))
             break;
         ++count;
     }
diff --git a/agent/mibgroup/notification/snmpNotifyFilterProfileTable.c b/agent/mibgroup/notification/snmpNotifyFilterProfileTable.c
index 3887dda..0088e0c 100644
--- a/agent/mibgroup/notification/snmpNotifyFilterProfileTable.c
+++ b/agent/mibgroup/notification/snmpNotifyFilterProfileTable.c
@@ -10,9 +10,6 @@
 #include <net-snmp/net-snmp-config.h>
 
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -402,7 +399,7 @@
          */
         tmpvar = StorageTmp->snmpNotifyFilterProfileName;
         tmplen = StorageTmp->snmpNotifyFilterProfileNameLen;
-        StorageTmp->snmpNotifyFilterProfileName = calloc(1, var_val_len + 1);
+        StorageTmp->snmpNotifyFilterProfileName = (char*)calloc(1, var_val_len + 1);
         if (NULL == StorageTmp->snmpNotifyFilterProfileName)
             return SNMP_ERR_RESOURCEUNAVAILABLE;
         break;
@@ -442,6 +439,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -534,7 +532,7 @@
          * Things are working well, so it's now safe to make the change
          * permanently.  Make sure that anything done here can't fail! 
          */
-
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
@@ -787,6 +785,7 @@
                 StorageTmp->snmpNotifyFilterProfileRowStatus = RS_NOTINSERVICE;
             StorageNew = NULL;
         }
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/notification/snmpNotifyTable.c b/agent/mibgroup/notification/snmpNotifyTable.c
index f1abeab..f627ed6 100644
--- a/agent/mibgroup/notification/snmpNotifyTable.c
+++ b/agent/mibgroup/notification/snmpNotifyTable.c
@@ -10,9 +10,6 @@
 #include <net-snmp/net-snmp-config.h>
 
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -112,8 +109,8 @@
     size_t                 profileNameLen;
     struct vacm_viewEntry *vp, *head;
     int                    vb_oid_excluded = 0;
-    extern oid             snmptrap_oid[];
-    extern size_t          snmptrap_oid_len;
+    extern const oid       snmptrap_oid[];
+    extern const size_t    snmptrap_oid_len;
 
     netsnmp_assert(NULL != paramName);
     netsnmp_assert(NULL != pdu);
@@ -571,12 +568,14 @@
     line =
         read_config_read_data(ASN_INTEGER, line,
                               &StorageTmp->snmpNotifyStorageType, &tmpint);
+    if (!StorageTmp->snmpNotifyStorageType)
+        StorageTmp->snmpNotifyStorageType = ST_READONLY;
 
     line =
         read_config_read_data(ASN_INTEGER, line,
                               &StorageTmp->snmpNotifyRowStatus, &tmpint);
-
-
+    if (!StorageTmp->snmpNotifyRowStatus)
+        StorageTmp->snmpNotifyRowStatus = RS_ACTIVE;
 
 
     snmpNotifyTable_add(StorageTmp);
@@ -782,10 +781,10 @@
         if (var_val_type != ASN_OCTET_STR) {
             return SNMP_ERR_WRONGTYPE;
         }
-        if (var_val_len < 0 || var_val_len > 255) {
+        if (var_val_len > 255) {
             return SNMP_ERR_WRONGLENGTH;
         }
-        if (!snmpTagValid(var_val, var_val_len)) {
+        if (!snmpTagValid((char *) var_val, var_val_len)) {
             return SNMP_ERR_WRONGVALUE;
         }
         break;
@@ -797,7 +796,7 @@
          */
         tmpvar = StorageTmp->snmpNotifyTag;
         tmplen = StorageTmp->snmpNotifyTagLen;
-        StorageTmp->snmpNotifyTag = calloc(1, var_val_len + 1);
+        StorageTmp->snmpNotifyTag = (char*)calloc(1, var_val_len + 1);
         if (NULL == StorageTmp->snmpNotifyTag)
             return SNMP_ERR_RESOURCEUNAVAILABLE;
         break;
@@ -833,6 +832,7 @@
          * permanently.  Make sure that anything done here can't fail! 
          */
         SNMP_FREE(tmpvar);
+        snmp_store_needed(NULL);
         break;
     }
 
@@ -1053,7 +1053,7 @@
             if (StorageNew == NULL) {
                 return SNMP_ERR_RESOURCEUNAVAILABLE;
             }
-            StorageNew->snmpNotifyName = calloc( 1, vp->val_len + 1 );
+            StorageNew->snmpNotifyName = (char*)calloc( 1, vp->val_len + 1 );
             if (StorageNew->snmpNotifyName == NULL) {
                 return SNMP_ERR_RESOURCEUNAVAILABLE;
             }
@@ -1168,6 +1168,7 @@
             StorageTmp->snmpNotifyRowStatus = RS_NOTINSERVICE;
             StorageNew = NULL;
         }
+        snmp_store_needed(NULL);
         break;
     }
     return SNMP_ERR_NOERROR;
diff --git a/agent/mibgroup/notification/snmpNotifyTable.h b/agent/mibgroup/notification/snmpNotifyTable.h
index 241c7ce..9a93645 100644
--- a/agent/mibgroup/notification/snmpNotifyTable.h
+++ b/agent/mibgroup/notification/snmpNotifyTable.h
@@ -57,6 +57,7 @@
 
 
      void            init_snmpNotifyTable(void);
+     void            shutdown_snmpNotifyTable(void);
      FindVarMethod   var_snmpNotifyTable;
      void            parse_snmpNotifyTable(const char *, char *);
 
diff --git a/agent/mibgroup/rmon-mib/data_access/etherstats_linux.c b/agent/mibgroup/rmon-mib/data_access/etherstats_linux.c
index eb646fd..d4b6e69 100644
--- a/agent/mibgroup/rmon-mib/data_access/etherstats_linux.c
+++ b/agent/mibgroup/rmon-mib/data_access/etherstats_linux.c
@@ -292,7 +292,7 @@
         fd = ourfd = socket(AF_INET, SOCK_DGRAM, 0);
         if(ourfd < 0) {
             DEBUGMSGTL(("access:etherStatsTable:ioctl",
-                        "_etherStats_ioctl_get couldn't create a socket\n", name));
+                        "_etherStats_ioctl_get couldn't create a socket\n"));
             snmp_log (LOG_ERR, "access:etherStatsTable:ioctl, _etherStats_ioctl_get error on inerface '%s'\n", name);
 
             return -2;
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c
index 0f671d0..974636a 100644
--- a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c
+++ b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_data_access.c
@@ -332,7 +332,7 @@
 #endif
     
     DEBUGMSGT(("verbose:etherStatsTable:etherStatsTable_container_load",
-               "inserted %d records\n", count));
+               "inserted %" NETSNMP_PRIz "d records\n", count));
 
     return MFD_SUCCESS;
 }
diff --git a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c
index 910362a..38e92af 100644
--- a/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c
+++ b/agent/mibgroup/rmon-mib/etherStatsTable/etherStatsTable_interface.c
@@ -181,7 +181,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = ETHERSTATSTABLE_MIN_COL;
     tbl_info->max_column = ETHERSTATSTABLE_MAX_COL;
diff --git a/agent/mibgroup/sctp-mib/sctpScalars_common.c b/agent/mibgroup/sctp-mib/sctpScalars_common.c
index 5a9ee34..2a895a8 100644
--- a/agent/mibgroup/sctp-mib/sctpScalars_common.c
+++ b/agent/mibgroup/sctp-mib/sctpScalars_common.c
@@ -8,7 +8,6 @@
 static netsnmp_sctp_stats prev_sctp_stats;
 
 netsnmp_sctp_params sctp_params;
-static netsnmp_sctp_params prev_sctp_params;
 
 static int      need_wrap_check = 1;
 
@@ -55,46 +54,75 @@
     /*
      * Update 64 bit counters
      */
-    netsnmp_c64_check32_and_update(&sctp_stats.out_ctrl_chunks,
+    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.out_ctrl_chunks,
                                    &new_stats.out_ctrl_chunks,
                                    &prev_sctp_stats.out_ctrl_chunks,
-                                   &need_wrap_check);
-    netsnmp_c64_check32_and_update(&sctp_stats.out_order_chunks,
+                                   &need_wrap_check))
+        NETSNMP_LOGONCE((LOG_ERR,
+                "SCTP: Error expanding sctpOutCtrlChunks to 64bits\n"));
+
+    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.out_order_chunks,
                                    &new_stats.out_order_chunks,
                                    &prev_sctp_stats.out_order_chunks,
-                                   &need_wrap_check);
-    netsnmp_c64_check32_and_update(&sctp_stats.out_unorder_chunks,
+                                   &need_wrap_check))
+        NETSNMP_LOGONCE((LOG_ERR,
+                "SCTP: Error expanding sctpOutOrderChunks to 64bits\n"));
+
+    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.out_unorder_chunks,
                                    &new_stats.out_unorder_chunks,
                                    &prev_sctp_stats.out_unorder_chunks,
-                                   &need_wrap_check);
-    netsnmp_c64_check32_and_update(&sctp_stats.in_ctrl_chunks,
+                                   &need_wrap_check))
+        NETSNMP_LOGONCE((LOG_ERR,
+                "SCTP: Error expanding sctpOutUnorderChunks to 64bits\n"));
+
+    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.in_ctrl_chunks,
                                    &new_stats.in_ctrl_chunks,
                                    &prev_sctp_stats.in_ctrl_chunks,
-                                   &need_wrap_check);
-    netsnmp_c64_check32_and_update(&sctp_stats.in_order_chunks,
+                                   &need_wrap_check))
+        NETSNMP_LOGONCE((LOG_ERR,
+                "SCTP: Error expanding sctpInCtrlChunks to 64bits\n"));
+
+    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.in_order_chunks,
                                    &new_stats.in_order_chunks,
                                    &prev_sctp_stats.in_order_chunks,
-                                   &need_wrap_check);
-    netsnmp_c64_check32_and_update(&sctp_stats.in_unorder_chunks,
+                                   &need_wrap_check))
+        NETSNMP_LOGONCE((LOG_ERR,
+                "SCTP: Error expanding sctpInOrderChunks to 64bits\n"));
+
+    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.in_unorder_chunks,
                                    &new_stats.in_unorder_chunks,
                                    &prev_sctp_stats.in_unorder_chunks,
-                                   &need_wrap_check);
-    netsnmp_c64_check32_and_update(&sctp_stats.frag_usr_msgs,
+                                   &need_wrap_check))
+        NETSNMP_LOGONCE((LOG_ERR,
+                "SCTP: Error expanding sctpInUnorderChunks to 64bits\n"));
+
+    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.frag_usr_msgs,
                                    &new_stats.frag_usr_msgs,
                                    &prev_sctp_stats.frag_usr_msgs,
-                                   &need_wrap_check);
-    netsnmp_c64_check32_and_update(&sctp_stats.reasm_usr_msgs,
+                                   &need_wrap_check))
+        NETSNMP_LOGONCE((LOG_ERR,
+                "SCTP: Error expanding sctpFragUsrMsgs to 64bits\n"));
+
+    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.reasm_usr_msgs,
                                    &new_stats.reasm_usr_msgs,
                                    &prev_sctp_stats.reasm_usr_msgs,
-                                   &need_wrap_check);
-    netsnmp_c64_check32_and_update(&sctp_stats.out_sctp_packs,
+                                   &need_wrap_check))
+        NETSNMP_LOGONCE((LOG_ERR,
+                "SCTP: Error expanding sctpReasmUsrMsgs to 64bits\n"));
+
+    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.out_sctp_packs,
                                    &new_stats.out_sctp_packs,
                                    &prev_sctp_stats.out_sctp_packs,
-                                   &need_wrap_check);
-    netsnmp_c64_check32_and_update(&sctp_stats.in_sctp_packs,
+                                   &need_wrap_check))
+        NETSNMP_LOGONCE((LOG_ERR,
+                "SCTP: Error expanding sctpOutSCTPPacks to 64bits\n"));
+
+    if (0 != netsnmp_c64_check32_and_update(&sctp_stats.in_sctp_packs,
                                    &new_stats.in_sctp_packs,
                                    &prev_sctp_stats.in_sctp_packs,
-                                   &need_wrap_check);
+                                   &need_wrap_check))
+        NETSNMP_LOGONCE((LOG_ERR,
+                "SCTP: Error expanding sctpInSCTPPacks to 64bits\n"));
 
     /*
      * Update prev_stats for next computation.
diff --git a/agent/mibgroup/smux/smux.c b/agent/mibgroup/smux/smux.c
index cd3385a..698717c 100644
--- a/agent/mibgroup/smux/smux.c
+++ b/agent/mibgroup/smux/smux.c
@@ -26,11 +26,7 @@
 #include <err.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -47,8 +43,6 @@
 #include <sys/stat.h>
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
-#elif HAVE_WINSOCK_H
-#include <winsock.h>
 #endif
 #if HAVE_SYS_FILIO_H
 #include <sys/filio.h>
@@ -350,7 +344,8 @@
     u_char          buf[SMUXMAXPKTSIZE], *ptr, sout[3], type;
     int             reterr;
     size_t          var_len, datalen, name_length, packet_len;
-    ssize_t         len, tmp_len;
+    size_t          len;
+    ssize_t         tmp_len;
     long            reqid, errsts, erridx;
     u_char          *dataptr;
 
@@ -574,9 +569,10 @@
     u_char          data[SMUXMAXPKTSIZE], *ptr, type;
     struct sockaddr_in in_socket;
     struct timeval  tv;
-    int             fail, fd, alen;
+    int             fail, fd;
+    socklen_t       alen;
     int             length;
-    ssize_t         len;
+    size_t          len;
 
     alen = sizeof(struct sockaddr_in);
     /*
@@ -1366,7 +1362,7 @@
                   size_t * return_len, u_char * return_type, int sd)
 {
     u_char          packet[SMUXMAXPKTSIZE], *ptr, result[SMUXMAXPKTSIZE];
-    int             length = SMUXMAXPKTSIZE;
+    ssize_t         length = SMUXMAXPKTSIZE;
     int             tmp_length;
     u_char          type;
     size_t          packet_len;
@@ -1395,7 +1391,7 @@
     }
 
     DEBUGMSGTL(("smux",
-                "[smux_snmp_process] Sent %d request to peer; %d bytes\n",
+                "[smux_snmp_process] Sent %d request to peer; %" NETSNMP_PRIz "d bytes\n",
                 (int) type, length));
 
     while (1) {
@@ -1418,7 +1414,7 @@
             }
         }
 
-        DEBUGMSGTL(("smux", "[smux_snmp_process] Peeked at %d bytes\n",
+        DEBUGMSGTL(("smux", "[smux_snmp_process] Peeked at %" NETSNMP_PRIz "d bytes\n",
                     length));
         DEBUGDUMPSETUP("smux_snmp_process", result, length);
 
@@ -1453,7 +1449,7 @@
            return NULL;
         }
 
-        DEBUGMSGTL(("smux", "[smux_snmp_process] Received %d bytes\n",
+        DEBUGMSGTL(("smux", "[smux_snmp_process] Received %" NETSNMP_PRIz "d bytes\n",
                     length));
 
         if (result[0] == SMUX_TRAP) {
@@ -1992,7 +1988,7 @@
             /*
              * XXX 
              */
-            if (len == 0)
+            if (len == NULL)
                 return NULL;
             var_val_len = SMUXMAXSTRLEN;
             asn_parse_string(var_val, &maxlen, &vartype,
@@ -2016,7 +2012,7 @@
             /*
              * XXX 
              */
-            if (len == 0)
+            if (len == NULL)
                 return NULL;
             var_val_len = SMUXMAXSTRLEN;
             asn_parse_bitstring(var_val, &maxlen, &vartype,
diff --git a/agent/mibgroup/smux/smux.h b/agent/mibgroup/smux/smux.h
index d151f7d..88b8a3d 100644
--- a/agent/mibgroup/smux/smux.h
+++ b/agent/mibgroup/smux/smux.h
@@ -2,6 +2,11 @@
  * Smux module authored by Rohit Dube.
  * Rewritten by Nick Amato <naamato@merit.net>.
  */
+
+#ifndef NETSNMP_TRANSPORT_IPV4BASE_DOMAIN
+config_error(smux/smux depends on the IPv4Base transport domain)
+#endif
+
 config_belongs_in(agent_module)
 
 #define SMUXPORT 199
@@ -65,8 +70,6 @@
 extern int      smux_process(int);
 extern void     smux_parse_peer_auth(const char *, char *);
 extern void     smux_free_peer_auth(void);
-extern void     send_enterprise_trap_vars(int, int, oid *, int,
-                                          netsnmp_variable_list *);
 
 /* Add socket-fd to list */
 int smux_snmp_select_list_add(int sd);
diff --git a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c
index c85125d..5b56f1f 100644
--- a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c
+++ b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.c
@@ -267,9 +267,9 @@
          */
         if (MFD_SUCCESS == rc) {
             /*
-             * save changed rows, if you haven't already
+             * notify library to save changed rows
              */
-            snmp_store(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+            snmp_store_needed(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
                                              NETSNMP_DS_LIB_APPTYPE));
         }
 
@@ -544,7 +544,7 @@
         /*
          * allocate space for snmpNotifyFilterMask data
          */
-        (*snmpNotifyFilterMask_val_ptr_ptr) =
+        (*snmpNotifyFilterMask_val_ptr_ptr) = (char*)
             malloc(rowreq_ctx->data.snmpNotifyFilterMask_len *
                    sizeof(rowreq_ctx->data.snmpNotifyFilterMask[0]));
         if (NULL == (*snmpNotifyFilterMask_val_ptr_ptr)) {
diff --git a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c
index 3c6bcc5..94d8687 100644
--- a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c
+++ b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access.c
@@ -496,7 +496,7 @@
 {
     oid             tmp_oid[MAX_OID_LEN];
     netsnmp_index   tmp_idx;
-    int             i, j;
+    size_t          i, j;
     netsnmp_void_array *s;
     struct vacm_viewEntry *tmp;
     snmpNotifyFilterTable_rowreq_ctx *rowreq;
@@ -526,7 +526,7 @@
     /*
      * allocate temporary storage
      */
-    tmp = calloc(sizeof(struct vacm_viewEntry), s->size + 1);
+    tmp = (struct vacm_viewEntry*)calloc(sizeof(struct vacm_viewEntry), s->size + 1);
     if (NULL == tmp) {
         free(s->array);
         free(s);
diff --git a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c
index 9f64b46..af4ad37 100644
--- a/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c
+++ b/agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface.c
@@ -220,7 +220,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = SNMPNOTIFYFILTERTABLE_MIN_COL;
     tbl_info->max_column = SNMPNOTIFYFILTERTABLE_MAX_COL;
@@ -729,7 +729,7 @@
                                         *agtreq_info,
                                         netsnmp_request_info *requests)
 {
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -848,7 +848,7 @@
                                          netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:snmpNotifyFilterTable:_mfd_snmpNotifyFilterTable_object_lookup", "called\n"));
@@ -975,7 +975,7 @@
                                       *agtreq_info,
                                       netsnmp_request_info *requests)
 {
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1254,7 +1254,7 @@
                                          *agtreq_info,
                                          netsnmp_request_info *requests)
 {
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc;
@@ -1302,7 +1302,7 @@
                                               *requests)
 {
     int             rc;
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:snmpNotifyFilterTable:_mfd_snmpNotifyFilterTable_check_dependencies", "called\n"));
 
@@ -1395,7 +1395,7 @@
                                       netsnmp_request_info *requests)
 {
     int             rc;
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:snmpNotifyFilterTable:_mfd_snmpNotifyFilterTable_undo_setup", "called\n"));
@@ -1460,7 +1460,7 @@
                                         *agtreq_info,
                                         netsnmp_request_info *requests)
 {
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1574,7 +1574,7 @@
                                       *agtreq_info,
                                       netsnmp_request_info *requests)
 {
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -1622,7 +1622,7 @@
                                   netsnmp_request_info *requests)
 {
     int             rc;
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:snmpNotifyFilterTable:_mfd_snmpNotifyFilterTable_commit", "called\n"));
@@ -1655,7 +1655,7 @@
                                        netsnmp_request_info *requests)
 {
     int             rc;
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:snmpNotifyFilterTable:_mfd_snmpNotifyFilterTable_undo_commit", "called\n"));
@@ -1755,7 +1755,7 @@
                                        netsnmp_request_info *requests)
 {
     int             rc;
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
 
@@ -1811,7 +1811,7 @@
                                                *agtreq_info, netsnmp_request_info
                                                *requests)
 {
-    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx =
+    snmpNotifyFilterTable_rowreq_ctx *rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:snmpNotifyFilterTable:_mfd_snmpNotifyFilterTable_irreversible:commit", "called\n"));
@@ -2095,7 +2095,7 @@
      * be treated a little differently. Specifically, you will need
      * (4 * len) + 4 [3 ASCII chars per byte + 1 for ., + 4 for len].
      *
-     * 3) Also, remeber to add space for the identifier and seperator
+     * 3) Also, remember to add space for the identifier and separator
      * characters (for example, each column is prefixed by the
      * column number and a semicolon. To allow for the maximum
      * column values, 12 bytes [11 for oid + 1 for ':'] per
@@ -2223,7 +2223,7 @@
      * loop through and get each column
      */
     buf = skip_white(buf);
-    while ((NULL != buf) && isdigit(*buf)) {
+    while ((NULL != buf) && isdigit((unsigned char)(*buf))) {
         /*
          * extract column, skip ':'
          */
@@ -2428,7 +2428,7 @@
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx =
+    rowreq_ctx = (snmpNotifyFilterTable_rowreq_ctx*)
         CONTAINER_FIND(snmpNotifyFilterTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
diff --git a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_access.c b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_access.c
index 351cbd3..a139c9f 100644
--- a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_access.c
+++ b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_access.c
@@ -265,7 +265,7 @@
         ++count;
     }
 
-    DEBUGMSGT(("verbose:usmDHUserKeyTable:usmDHUserKeyTable_container_load", "inserted %d records\n", count));
+    DEBUGMSGT(("verbose:usmDHUserKeyTable:usmDHUserKeyTable_container_load", "inserted %d records\n", (int)count));
 
     return MFD_SUCCESS;
 }                               /* usmDHUserKeyTable_container_load */
diff --git a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_get.c b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_get.c
index d609ce6..427d26f 100644
--- a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_get.c
+++ b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_get.c
@@ -18,6 +18,7 @@
  */
 #define NEED_USMDH_FUNCTIONS
 #include "usmDHUserKeyTable.h"
+#include "snmp-usm-dh-objects-mib/usmDHParameters/usmDHParameters.h"
 
 DH             *
 usmDHGetUserDHptr(struct usmUser *user, int for_auth_key)
@@ -57,7 +58,7 @@
 
 int
 usmDHGetUserKeyChange(struct usmUser *user, int for_auth_key,
-                      char **keyobj, size_t *keyobj_len)
+                      u_char **keyobj, size_t *keyobj_len)
 {
     DH             *dh;
 
@@ -183,7 +184,7 @@
 int
 usmDHUserKeyTable_indexes_set_tbl_idx(usmDHUserKeyTable_mib_index *
                                       tbl_idx,
-                                      char *usmUserEngineID_val_ptr,
+                                      u_char *usmUserEngineID_val_ptr,
                                       size_t usmUserEngineID_val_ptr_len,
                                       char *usmUserName_val_ptr,
                                       size_t usmUserName_val_ptr_len)
@@ -245,7 +246,7 @@
  */
 int
 usmDHUserKeyTable_indexes_set(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                              char *usmUserEngineID_val_ptr,
+                              u_char *usmUserEngineID_val_ptr,
                               size_t usmUserEngineID_val_ptr_len,
                               char *usmUserName_val_ptr,
                               size_t usmUserName_val_ptr_len)
@@ -328,7 +329,7 @@
  */
 int
 usmDHUserAuthKeyChange_get(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                           char **usmDHUserAuthKeyChange_val_ptr_ptr,
+                           u_char **usmDHUserAuthKeyChange_val_ptr_ptr,
                            size_t *usmDHUserAuthKeyChange_val_ptr_len_ptr)
 {
    /** we should have a non-NULL pointer and enough storage */
@@ -411,7 +412,7 @@
  */
 int
 usmDHUserOwnAuthKeyChange_get(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                              char **usmDHUserOwnAuthKeyChange_val_ptr_ptr,
+                              u_char **usmDHUserOwnAuthKeyChange_val_ptr_ptr,
                               size_t
                               *usmDHUserOwnAuthKeyChange_val_ptr_len_ptr)
 {
@@ -495,7 +496,7 @@
  */
 int
 usmDHUserPrivKeyChange_get(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                           char **usmDHUserPrivKeyChange_val_ptr_ptr,
+                           u_char **usmDHUserPrivKeyChange_val_ptr_ptr,
                            size_t *usmDHUserPrivKeyChange_val_ptr_len_ptr)
 {
    /** we should have a non-NULL pointer and enough storage */
@@ -578,7 +579,7 @@
  */
 int
 usmDHUserOwnPrivKeyChange_get(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                              char **usmDHUserOwnPrivKeyChange_val_ptr_ptr,
+                              u_char **usmDHUserOwnPrivKeyChange_val_ptr_ptr,
                               size_t
                               *usmDHUserOwnPrivKeyChange_val_ptr_len_ptr)
 {
diff --git a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_get.h b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_get.h
index b725e11..83c028e 100644
--- a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_get.h
+++ b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_get.h
@@ -26,7 +26,8 @@
 
 #ifdef NEED_USMDH_FUNCTIONS
     int             usmDHGetUserKeyChange(struct usmUser *user,
-                                          int for_auth_key, char **keyobj,
+                                          int for_auth_key,
+                                          u_char **keyobj,
                                           size_t *keyobj_len);
     DH             *usmDHGetUserDHptr(struct usmUser *user,
                                       int for_auth_key);
@@ -54,29 +55,38 @@
      */
 
     int             usmDHUserAuthKeyChange_get(usmDHUserKeyTable_rowreq_ctx
-                                               * rowreq_ctx, char
-                                               **usmDHUserAuthKeyChange_val_ptr_ptr, size_t
+                                               * rowreq_ctx,
+                                               u_char
+                                               **usmDHUserAuthKeyChange_val_ptr_ptr,
+                                               size_t
                                                *usmDHUserAuthKeyChange_val_ptr_len_ptr);
     int            
         usmDHUserOwnAuthKeyChange_get(usmDHUserKeyTable_rowreq_ctx *
-                                      rowreq_ctx, char
-                                      **usmDHUserOwnAuthKeyChange_val_ptr_ptr, size_t
+                                      rowreq_ctx,
+                                      u_char
+                                      **usmDHUserOwnAuthKeyChange_val_ptr_ptr,
+                                      size_t
                                       *usmDHUserOwnAuthKeyChange_val_ptr_len_ptr);
     int             usmDHUserPrivKeyChange_get(usmDHUserKeyTable_rowreq_ctx
-                                               * rowreq_ctx, char
-                                               **usmDHUserPrivKeyChange_val_ptr_ptr, size_t
+                                               * rowreq_ctx,
+                                               u_char
+                                               **usmDHUserPrivKeyChange_val_ptr_ptr,
+                                               size_t
                                                *usmDHUserPrivKeyChange_val_ptr_len_ptr);
     int            
         usmDHUserOwnPrivKeyChange_get(usmDHUserKeyTable_rowreq_ctx *
-                                      rowreq_ctx, char
-                                      **usmDHUserOwnPrivKeyChange_val_ptr_ptr, size_t
+                                      rowreq_ctx,
+                                      u_char
+                                      **usmDHUserOwnPrivKeyChange_val_ptr_ptr,
+                                      size_t
                                       *usmDHUserOwnPrivKeyChange_val_ptr_len_ptr);
 
 
     int            
         usmDHUserKeyTable_indexes_set_tbl_idx(usmDHUserKeyTable_mib_index *
-                                              tbl_idx, char
-                                              *usmUserEngineID_val_ptr, size_t
+                                              tbl_idx,
+                                              u_char *usmUserEngineID_val_ptr,
+                                              size_t
                                               usmUserEngineID_val_ptr_len,
                                               char *usmUserName_val_ptr,
                                               size_t
@@ -84,7 +94,7 @@
     int            
         usmDHUserKeyTable_indexes_set(usmDHUserKeyTable_rowreq_ctx *
                                       rowreq_ctx,
-                                      char *usmUserEngineID_val_ptr,
+                                      u_char *usmUserEngineID_val_ptr,
                                       size_t usmUserEngineID_val_ptr_len,
                                       char *usmUserName_val_ptr,
                                       size_t usmUserName_val_ptr_len);
diff --git a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_set.c b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_set.c
index 08e5ff2..8536105 100644
--- a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_set.c
+++ b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_set.c
@@ -22,13 +22,13 @@
 
 int
 usmDHUserCheckValue(struct usmUser *user, int for_auth_key,
-                    char *val, size_t val_len)
+                    u_char *val, size_t val_len)
 {
     /*
      * The set value must be composed of 2 parts, the first being the
      * current value 
      */
-    char           *current_value;
+    u_char         *current_value;
     size_t          current_value_len;
 
     DEBUGMSGTL(("verbose:usmDHUserKeyTable:usmDHUserCheckValue",
@@ -50,11 +50,11 @@
 
 int
 usmDHSetKey(struct usmUser *user, int for_auth_key,
-            char *val, size_t val_len)
+            u_char *val, size_t val_len)
 {
     DH             *dh;
     BIGNUM         *other_pub;
-    char           *key;
+    u_char         *key;
     size_t          key_len;
 
     DEBUGMSGTL(("verbose:usmDHUserKeyTable:usmDHSetKey", "called\n"));
@@ -336,7 +336,6 @@
 usmDHUserKeyTable_commit(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx)
 {
     int             rc = MFD_SUCCESS;
-    int             save_flags;
 
     DEBUGMSGTL(("verbose:usmDHUserKeyTable:usmDHUserKeyTable_commit",
                 "called\n"));
@@ -528,7 +527,7 @@
 int
 usmDHUserAuthKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx *
                                    rowreq_ctx,
-                                   char *usmDHUserAuthKeyChange_val_ptr,
+                                   u_char *usmDHUserAuthKeyChange_val_ptr,
                                    size_t
                                    usmDHUserAuthKeyChange_val_ptr_len)
 {
@@ -605,7 +604,7 @@
  */
 int
 usmDHUserAuthKeyChange_set(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                           char *usmDHUserAuthKeyChange_val_ptr,
+                           u_char *usmDHUserAuthKeyChange_val_ptr,
                            size_t usmDHUserAuthKeyChange_val_ptr_len)
 {
 
@@ -728,8 +727,9 @@
  */
 int
 usmDHUserOwnAuthKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx *
-                                      rowreq_ctx, char
-                                      *usmDHUserOwnAuthKeyChange_val_ptr, size_t
+                                      rowreq_ctx,
+                                      u_char *usmDHUserOwnAuthKeyChange_val_ptr,
+                                      size_t
                                       usmDHUserOwnAuthKeyChange_val_ptr_len)
 {
     DEBUGMSGTL(("verbose:usmDHUserKeyTable:usmDHUserOwnAuthKeyChange_check_value", "called\n"));
@@ -798,7 +798,7 @@
  */
 int
 usmDHUserOwnAuthKeyChange_set(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                              char *usmDHUserOwnAuthKeyChange_val_ptr,
+                              u_char *usmDHUserOwnAuthKeyChange_val_ptr,
                               size_t usmDHUserOwnAuthKeyChange_val_ptr_len)
 {
 
@@ -912,7 +912,7 @@
 int
 usmDHUserPrivKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx *
                                    rowreq_ctx,
-                                   char *usmDHUserPrivKeyChange_val_ptr,
+                                   u_char *usmDHUserPrivKeyChange_val_ptr,
                                    size_t
                                    usmDHUserPrivKeyChange_val_ptr_len)
 {
@@ -989,7 +989,7 @@
  */
 int
 usmDHUserPrivKeyChange_set(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                           char *usmDHUserPrivKeyChange_val_ptr,
+                           u_char *usmDHUserPrivKeyChange_val_ptr,
                            size_t usmDHUserPrivKeyChange_val_ptr_len)
 {
 
@@ -1113,8 +1113,9 @@
  */
 int
 usmDHUserOwnPrivKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx *
-                                      rowreq_ctx, char
-                                      *usmDHUserOwnPrivKeyChange_val_ptr, size_t
+                                      rowreq_ctx,
+                                      u_char *usmDHUserOwnPrivKeyChange_val_ptr,
+                                      size_t
                                       usmDHUserOwnPrivKeyChange_val_ptr_len)
 {
     DEBUGMSGTL(("verbose:usmDHUserKeyTable:usmDHUserOwnPrivKeyChange_check_value", "called\n"));
@@ -1183,7 +1184,7 @@
  */
 int
 usmDHUserOwnPrivKeyChange_set(usmDHUserKeyTable_rowreq_ctx * rowreq_ctx,
-                              char *usmDHUserOwnPrivKeyChange_val_ptr,
+                              u_char *usmDHUserOwnPrivKeyChange_val_ptr,
                               size_t usmDHUserOwnPrivKeyChange_val_ptr_len)
 {
 
diff --git a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_set.h b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_set.h
index 04f4ebe..e7c7059 100644
--- a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_set.h
+++ b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_data_set.h
@@ -54,15 +54,19 @@
 
     int            
         usmDHUserAuthKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx *
-                                           rowreq_ctx, char
-                                           *usmDHUserAuthKeyChange_val_ptr, size_t
+                                           rowreq_ctx,
+                                           u_char
+                                           *usmDHUserAuthKeyChange_val_ptr,
+                                           size_t
                                            usmDHUserAuthKeyChange_val_ptr_len);
     int            
         usmDHUserAuthKeyChange_undo_setup(usmDHUserKeyTable_rowreq_ctx *
                                           rowreq_ctx);
     int             usmDHUserAuthKeyChange_set(usmDHUserKeyTable_rowreq_ctx
-                                               * rowreq_ctx, char
-                                               *usmDHUserAuthKeyChange_val_ptr, size_t
+                                               * rowreq_ctx,
+                                               u_char
+                                               *usmDHUserAuthKeyChange_val_ptr,
+                                               size_t
                                                usmDHUserAuthKeyChange_val_ptr_len);
     int            
         usmDHUserAuthKeyChange_undo(usmDHUserKeyTable_rowreq_ctx *
@@ -70,16 +74,20 @@
 
     int            
         usmDHUserOwnAuthKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx
-                                              * rowreq_ctx, char
-                                              *usmDHUserOwnAuthKeyChange_val_ptr, size_t
+                                              * rowreq_ctx,
+                                              u_char
+                                              *usmDHUserOwnAuthKeyChange_val_ptr,
+                                              size_t
                                               usmDHUserOwnAuthKeyChange_val_ptr_len);
     int            
         usmDHUserOwnAuthKeyChange_undo_setup(usmDHUserKeyTable_rowreq_ctx *
                                              rowreq_ctx);
     int            
         usmDHUserOwnAuthKeyChange_set(usmDHUserKeyTable_rowreq_ctx *
-                                      rowreq_ctx, char
-                                      *usmDHUserOwnAuthKeyChange_val_ptr, size_t
+                                      rowreq_ctx,
+                                      u_char
+                                      *usmDHUserOwnAuthKeyChange_val_ptr,
+                                      size_t
                                       usmDHUserOwnAuthKeyChange_val_ptr_len);
     int            
         usmDHUserOwnAuthKeyChange_undo(usmDHUserKeyTable_rowreq_ctx *
@@ -87,15 +95,19 @@
 
     int            
         usmDHUserPrivKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx *
-                                           rowreq_ctx, char
-                                           *usmDHUserPrivKeyChange_val_ptr, size_t
+                                           rowreq_ctx,
+                                           u_char
+                                           *usmDHUserPrivKeyChange_val_ptr,
+                                           size_t
                                            usmDHUserPrivKeyChange_val_ptr_len);
     int            
         usmDHUserPrivKeyChange_undo_setup(usmDHUserKeyTable_rowreq_ctx *
                                           rowreq_ctx);
     int             usmDHUserPrivKeyChange_set(usmDHUserKeyTable_rowreq_ctx
-                                               * rowreq_ctx, char
-                                               *usmDHUserPrivKeyChange_val_ptr, size_t
+                                               * rowreq_ctx,
+                                               u_char
+                                               *usmDHUserPrivKeyChange_val_ptr,
+                                               size_t
                                                usmDHUserPrivKeyChange_val_ptr_len);
     int            
         usmDHUserPrivKeyChange_undo(usmDHUserKeyTable_rowreq_ctx *
@@ -103,16 +115,20 @@
 
     int            
         usmDHUserOwnPrivKeyChange_check_value(usmDHUserKeyTable_rowreq_ctx
-                                              * rowreq_ctx, char
-                                              *usmDHUserOwnPrivKeyChange_val_ptr, size_t
+                                              * rowreq_ctx,
+                                              u_char
+                                              *usmDHUserOwnPrivKeyChange_val_ptr,
+                                              size_t
                                               usmDHUserOwnPrivKeyChange_val_ptr_len);
     int            
         usmDHUserOwnPrivKeyChange_undo_setup(usmDHUserKeyTable_rowreq_ctx *
                                              rowreq_ctx);
     int            
         usmDHUserOwnPrivKeyChange_set(usmDHUserKeyTable_rowreq_ctx *
-                                      rowreq_ctx, char
-                                      *usmDHUserOwnPrivKeyChange_val_ptr, size_t
+                                      rowreq_ctx,
+                                      u_char
+                                      *usmDHUserOwnPrivKeyChange_val_ptr,
+                                      size_t
                                       usmDHUserOwnPrivKeyChange_val_ptr_len);
     int            
         usmDHUserOwnPrivKeyChange_undo(usmDHUserKeyTable_rowreq_ctx *
diff --git a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_interface.c b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_interface.c
index 9abaf9c..bea67ed 100644
--- a/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_interface.c
+++ b/agent/mibgroup/snmp-usm-dh-objects-mib/usmDHUserKeyTable/usmDHUserKeyTable_interface.c
@@ -184,7 +184,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = USMDHUSERKEYTABLE_MIN_COL;
     tbl_info->max_column = USMDHUSERKEYTABLE_MAX_COL;
@@ -764,7 +764,7 @@
     case COLUMN_USMDHUSERAUTHKEYCHANGE:
         var->type = ASN_OCTET_STR;
         rc = usmDHUserAuthKeyChange_get(rowreq_ctx,
-                                        (char **) &var->val.string,
+                                        &var->val.string,
                                         &var->val_len);
         break;
 
@@ -774,7 +774,7 @@
     case COLUMN_USMDHUSEROWNAUTHKEYCHANGE:
         var->type = ASN_OCTET_STR;
         rc = usmDHUserOwnAuthKeyChange_get(rowreq_ctx,
-                                           (char **) &var->val.string,
+                                           &var->val.string,
                                            &var->val_len);
         break;
 
@@ -784,7 +784,7 @@
     case COLUMN_USMDHUSERPRIVKEYCHANGE:
         var->type = ASN_OCTET_STR;
         rc = usmDHUserPrivKeyChange_get(rowreq_ctx,
-                                        (char **) &var->val.string,
+                                        &var->val.string,
                                         &var->val_len);
         break;
 
@@ -794,7 +794,7 @@
     case COLUMN_USMDHUSEROWNPRIVKEYCHANGE:
         var->type = ASN_OCTET_STR;
         rc = usmDHUserOwnPrivKeyChange_get(rowreq_ctx,
-                                           (char **) &var->val.string,
+                                           &var->val.string,
                                            &var->val_len);
         break;
 
@@ -919,7 +919,7 @@
             DEBUGMSGTL(("usmDHUserKeyTable:_usmDHUserKeyTable_check_column:usmDHUserAuthKeyChange", "varbind validation failed (eg bad type or size)\n"));
         } else {
             rc = usmDHUserAuthKeyChange_check_value(rowreq_ctx,
-                                                    (char *) var->val.
+                                                    var->val.
                                                     string, var->val_len);
             if ((MFD_SUCCESS != rc) && (MFD_NOT_VALID_EVER != rc)
                 && (MFD_NOT_VALID_NOW != rc)) {
@@ -940,7 +940,7 @@
             DEBUGMSGTL(("usmDHUserKeyTable:_usmDHUserKeyTable_check_column:usmDHUserOwnAuthKeyChange", "varbind validation failed (eg bad type or size)\n"));
         } else {
             rc = usmDHUserOwnAuthKeyChange_check_value(rowreq_ctx,
-                                                       (char *) var->val.
+                                                       var->val.
                                                        string,
                                                        var->val_len);
             if ((MFD_SUCCESS != rc) && (MFD_NOT_VALID_EVER != rc)
@@ -962,7 +962,7 @@
             DEBUGMSGTL(("usmDHUserKeyTable:_usmDHUserKeyTable_check_column:usmDHUserPrivKeyChange", "varbind validation failed (eg bad type or size)\n"));
         } else {
             rc = usmDHUserPrivKeyChange_check_value(rowreq_ctx,
-                                                    (char *) var->val.
+                                                    var->val.
                                                     string, var->val_len);
             if ((MFD_SUCCESS != rc) && (MFD_NOT_VALID_EVER != rc)
                 && (MFD_NOT_VALID_NOW != rc)) {
@@ -983,7 +983,7 @@
             DEBUGMSGTL(("usmDHUserKeyTable:_usmDHUserKeyTable_check_column:usmDHUserOwnPrivKeyChange", "varbind validation failed (eg bad type or size)\n"));
         } else {
             rc = usmDHUserOwnPrivKeyChange_check_value(rowreq_ctx,
-                                                       (char *) var->val.
+                                                       var->val.
                                                        string,
                                                        var->val_len);
             if ((MFD_SUCCESS != rc) && (MFD_NOT_VALID_EVER != rc)
@@ -1283,7 +1283,7 @@
     case COLUMN_USMDHUSERAUTHKEYCHANGE:
         rowreq_ctx->column_set_flags |= COLUMN_USMDHUSERAUTHKEYCHANGE_FLAG;
         rc = usmDHUserAuthKeyChange_set(rowreq_ctx,
-                                        (char *) var->val.string,
+                                        var->val.string,
                                         var->val_len);
         break;
 
@@ -1294,7 +1294,7 @@
         rowreq_ctx->column_set_flags |=
             COLUMN_USMDHUSEROWNAUTHKEYCHANGE_FLAG;
         rc = usmDHUserOwnAuthKeyChange_set(rowreq_ctx,
-                                           (char *) var->val.string,
+                                           var->val.string,
                                            var->val_len);
         break;
 
@@ -1304,7 +1304,7 @@
     case COLUMN_USMDHUSERPRIVKEYCHANGE:
         rowreq_ctx->column_set_flags |= COLUMN_USMDHUSERPRIVKEYCHANGE_FLAG;
         rc = usmDHUserPrivKeyChange_set(rowreq_ctx,
-                                        (char *) var->val.string,
+                                        var->val.string,
                                         var->val_len);
         break;
 
@@ -1315,7 +1315,7 @@
         rowreq_ctx->column_set_flags |=
             COLUMN_USMDHUSEROWNPRIVKEYCHANGE_FLAG;
         rc = usmDHUserOwnPrivKeyChange_set(rowreq_ctx,
-                                           (char *) var->val.string,
+                                           var->val.string,
                                            var->val_len);
         break;
 
diff --git a/agent/mibgroup/snmpv3/snmpEngine.c b/agent/mibgroup/snmpv3/snmpEngine.c
index d5998f0..87f4d91 100644
--- a/agent/mibgroup/snmpv3/snmpEngine.c
+++ b/agent/mibgroup/snmpv3/snmpEngine.c
@@ -3,11 +3,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/sysORTable.h>
@@ -67,8 +62,6 @@
     register_snmpEngine_scalars();
 }
 
-extern struct timeval starttime;
-
 #ifdef NETSNMP_ENABLE_TESTING_CODE
 int             write_engineBoots(int, u_char *, u_char, size_t, u_char *,
                                   oid *, size_t);
diff --git a/agent/mibgroup/snmpv3/snmpMPDStats.c b/agent/mibgroup/snmpv3/snmpMPDStats.c
index 3734acd..ae792df 100644
--- a/agent/mibgroup/snmpv3/snmpMPDStats.c
+++ b/agent/mibgroup/snmpv3/snmpMPDStats.c
@@ -3,11 +3,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/sysORTable.h>
diff --git a/agent/mibgroup/snmpv3/snmpMPDStats_5_5.c b/agent/mibgroup/snmpv3/snmpMPDStats_5_5.c
index 9a2a937..fa23dd5 100644
--- a/agent/mibgroup/snmpv3/snmpMPDStats_5_5.c
+++ b/agent/mibgroup/snmpv3/snmpMPDStats_5_5.c
@@ -10,7 +10,7 @@
 
 #include "snmpMPDStats_5_5.h"
 
-#include <utilities/snmp_get_statistic.h>
+#include <net-snmp/agent/snmp_get_statistic.h>
 
 #define snmpMPDMIB 1, 3, 6, 1, 6, 3, 11
 #define snmpMPDMIBObjects snmpMPDMIB, 2
diff --git a/agent/mibgroup/snmpv3/snmpMPDStats_5_5.h b/agent/mibgroup/snmpv3/snmpMPDStats_5_5.h
index c4da03a..78f3dff 100644
--- a/agent/mibgroup/snmpv3/snmpMPDStats_5_5.h
+++ b/agent/mibgroup/snmpv3/snmpMPDStats_5_5.h
@@ -1,7 +1,6 @@
 #ifndef _MIBGROUP_SNMPMPDSTATS_H
 #define _MIBGROUP_SNMPMPDSTATS_H
 
-config_require(utilities/snmp_get_statistic)
 config_exclude(snmpv3/snmpMPDStats)
 config_add_mib(SNMP-MPD-MIB)
 
diff --git a/agent/mibgroup/snmpv3/usmStats.c b/agent/mibgroup/snmpv3/usmStats.c
index 7451fe6..1aa4105 100644
--- a/agent/mibgroup/snmpv3/usmStats.c
+++ b/agent/mibgroup/snmpv3/usmStats.c
@@ -4,11 +4,6 @@
  */
 
 #include <net-snmp/net-snmp-config.h>
-
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/sysORTable.h>
diff --git a/agent/mibgroup/snmpv3/usmStats_5_5.c b/agent/mibgroup/snmpv3/usmStats_5_5.c
index ec48ae7..b56f19b 100644
--- a/agent/mibgroup/snmpv3/usmStats_5_5.c
+++ b/agent/mibgroup/snmpv3/usmStats_5_5.c
@@ -10,7 +10,7 @@
 
 #include "usmStats_5_5.h"
 
-#include <utilities/snmp_get_statistic.h>
+#include <net-snmp/agent/snmp_get_statistic.h>
 
 #define snmpUsmMIB 1, 3, 6, 1, 6, 3, 15
 #define usmMIBCompliances snmpUsmMIB, 2, 1
diff --git a/agent/mibgroup/snmpv3/usmStats_5_5.h b/agent/mibgroup/snmpv3/usmStats_5_5.h
index afc9f76..d30719e 100644
--- a/agent/mibgroup/snmpv3/usmStats_5_5.h
+++ b/agent/mibgroup/snmpv3/usmStats_5_5.h
@@ -1,7 +1,6 @@
 #ifndef _MIBGROUP_USMSTATS_H
 #define _MIBGROUP_USMSTATS_H
 
-config_require(utilities/snmp_get_statistic)
 config_exclude(snmpv3/usmStats)
 config_add_mib(SNMP-USER-BASED-SM-MIB)
 
diff --git a/agent/mibgroup/snmpv3/usmUser.c b/agent/mibgroup/snmpv3/usmUser.c
index ad7b976..13c0595 100644
--- a/agent/mibgroup/snmpv3/usmUser.c
+++ b/agent/mibgroup/snmpv3/usmUser.c
@@ -11,10 +11,6 @@
 #include <strings.h>
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -1170,7 +1166,7 @@
                     "write to usmUserPublic not ASN_OCTET_STR\n"));
         return SNMP_ERR_WRONGTYPE;
     }
-    if (var_val_len < 0 || var_val_len > 32) {
+    if (var_val_len > 32) {
         DEBUGMSGTL(("usmUser", "write to usmUserPublic: bad length\n"));
         return SNMP_ERR_WRONGLENGTH;
     }
diff --git a/agent/mibgroup/snmpv3mibs.h b/agent/mibgroup/snmpv3mibs.h
index 8e5a015..a5621e5 100644
--- a/agent/mibgroup/snmpv3mibs.h
+++ b/agent/mibgroup/snmpv3mibs.h
@@ -11,4 +11,4 @@
 config_version_require((snmpv3/usmStats, 5.5, snmpv3/usmStats_5_5))
 config_require(snmpv3/usmConf)
 config_require(snmpv3/usmUser)
-#endif                          /* NSMPV3MIBS_H */
+#endif                          /* SNMPV3MIBS_H */
diff --git a/agent/mibgroup/struct.h b/agent/mibgroup/struct.h
index c33c96b..08780cc 100644
--- a/agent/mibgroup/struct.h
+++ b/agent/mibgroup/struct.h
@@ -16,10 +16,10 @@
     int             result;
     char            output[STRMAX];
     struct extensible *next;
-    unsigned long   miboid[MIBMAX];
+    oid             miboid[MIBMAX];
     size_t          miblen;
     int             pid;
-#if defined(WIN32) && !defined (mingw32)
+#if defined(WIN32)
     HANDLE          tid;                /* WIN32 thread */
 #endif
 };
diff --git a/agent/mibgroup/target/snmpTargetAddrEntry.c b/agent/mibgroup/target/snmpTargetAddrEntry.c
index 52f77b4..7dc1b2a 100644
--- a/agent/mibgroup/target/snmpTargetAddrEntry.c
+++ b/agent/mibgroup/target/snmpTargetAddrEntry.c
@@ -15,9 +15,6 @@
 #endif
 #include <stdlib.h>
 #include <ctype.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
@@ -125,7 +122,7 @@
     /*
      * if the list is empty, add the new entry to the top 
      */
-    if ((prev_struct = curr_struct = *listPtr) == 0) {
+    if ((prev_struct = curr_struct = *listPtr) == NULL) {
         *listPtr = newEntry;
         return;
     } else {
@@ -140,7 +137,7 @@
         /*
          * search through the list for an equal or greater OID value 
          */
-        while (curr_struct != 0) {
+        while (curr_struct != NULL) {
             currOIDLen = strlen(curr_struct->name);
             for (i = 0; i < (int) currOIDLen; i++) {
                 currOID[i] = curr_struct->name[i];
@@ -424,7 +421,7 @@
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargetParamsEntry: no Timeout in config string\n"));
         return (0);
-    } else if (!(isdigit(*cptr))) {
+    } else if (!(isdigit((unsigned char)(*cptr)))) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargeParamsEntry: Timeout is not a digit in config string\n"));
         return (0);
@@ -449,7 +446,7 @@
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargetParamsEntry: no Retry Count in config string\n"));
         return (0);
-    } else if (!(isdigit(*cptr))) {
+    } else if (!(isdigit((unsigned char)(*cptr)))) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargeParamsEntry: Retry Count is not a digit in config string\n"));
         return (0);
@@ -472,17 +469,16 @@
 int
 snmpTargetAddr_addTagList(struct targetAddrTable_struct *entry, char *cptr)
 {
-    size_t          len;
     if (cptr == NULL) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargetAddrEntry: no tag list in config string\n"));
         return (0);
     } else {
-        len = strlen(cptr);
+        size_t len = strlen(cptr);
         /*
          * spec check for string 0-255 
          */
-        if (len < 0 || len > 255) {
+        if (len > 255) {
             DEBUGMSGTL(("snmpTargetAddrEntry",
                         "ERROR snmpTargetAddrEntry: tag list out of range in config string\n"));
             return (0);
@@ -527,7 +523,7 @@
                     "ERROR snmpTargetAddrEntry: no storage type in config "
                     "string\n"));
         return (0);
-    } else if (!(isdigit(*cptr))) {
+    } else if (!(isdigit((unsigned char)(*cptr)))) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargetAddrEntry: storage type is not a digit "
                     "in config string\n"));
@@ -564,7 +560,7 @@
                     "ERROR snmpTargetAddrEntry: no Row Status in config "
                     "string\n"));
         return (0);
-    } else if (!(isdigit(*cptr))) {
+    } else if (!(isdigit((unsigned char)(*cptr)))) {
         DEBUGMSGTL(("snmpTargetAddrEntry",
                     "ERROR snmpTargetAddrEntry: Row Status is not a digit in "
                     "config string\n"));
@@ -1606,6 +1602,7 @@
                 }
             }
         }
+        snmp_store_needed(NULL);
     } else if (action == UNDO || action == FREE) {
         snmpTargetAddrOID[snmpTargetAddrOIDLen - 1] =
             SNMPTARGETADDRROWSTATUSCOLUMN;
diff --git a/agent/mibgroup/target/snmpTargetParamsEntry.c b/agent/mibgroup/target/snmpTargetParamsEntry.c
index 3967b82..e515379 100644
--- a/agent/mibgroup/target/snmpTargetParamsEntry.c
+++ b/agent/mibgroup/target/snmpTargetParamsEntry.c
@@ -15,9 +15,6 @@
 #endif
 #include <stdlib.h>
 #include <ctype.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
@@ -98,7 +95,7 @@
     /*
      * if the list is empty, add the new entry to the top 
      */
-    if ((prev_struct = curr_struct = *listPtr) == 0) {
+    if ((prev_struct = curr_struct = *listPtr) == NULL) {
         *listPtr = newEntry;
         return;
     } else {
@@ -329,7 +326,7 @@
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargetParamsEntry: no mp model in config string\n"));
         return (0);
-    } else if (!(isdigit(*cptr))) {
+    } else if (!(isdigit((unsigned char)(*cptr)))) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargeParamsEntry: mp model is not digit in config string\n"));
         return (0);
@@ -354,7 +351,7 @@
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargetParamsEntry: no sec model in config string\n"));
         return (0);
-    } else if (!(isdigit(*cptr))) {
+    } else if (!(isdigit((unsigned char)(*cptr)))) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargeParamsEntry: security model is not digit in config string\n"));
         return (0);
@@ -395,7 +392,7 @@
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargetParamsEntry: no security level in config string\n"));
         return (0);
-    } else if (!(isdigit(*cptr))) {
+    } else if (!(isdigit((unsigned char)(*cptr)))) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargeParamsEntry: security level is not digit in config string\n"));
         return (0);
@@ -421,7 +418,7 @@
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargetParamsEntry: no storage type in config string\n"));
         return (0);
-    } else if (!(isdigit(*cptr))) {
+    } else if (!(isdigit((unsigned char)(*cptr)))) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargeParamsEntry: storage type is not digit in config string\n"));
         return (0);
@@ -459,7 +456,7 @@
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargetParamsEntry: no row status in config string\n"));
         return (0);
-    } else if (!(isdigit(*cptr))) {
+    } else if (!(isdigit((unsigned char)(*cptr)))) {
         DEBUGMSGTL(("snmpTargetParamsEntry",
                     "ERROR snmpTargeParamsEntry: row status is not digit in config string\n"));
         return (0);
@@ -1114,7 +1111,7 @@
                         "write to snmpTargetParamsSecName: not ASN_OCTET_STR\n"));
             return SNMP_ERR_WRONGTYPE;
         }
-        if (var_val_len > 255 || var_val_len < 0) {
+        if (var_val_len > 255) {
             DEBUGMSGTL(("snmpTargetParamsEntry",
                         "write to snmpTargetParamsSecName: bad length\n"));
             return SNMP_ERR_WRONGLENGTH;
@@ -1364,6 +1361,7 @@
                 update_timestamp(params);
             }
         }
+        snmp_store_needed(NULL);
     } else if (action == UNDO || action == FREE) {
         snmpTargetParamsOID[snmpTargetParamsOIDLen - 1] =
             SNMPTARGETPARAMSROWSTATUSCOLUMN;
diff --git a/agent/mibgroup/target/target.c b/agent/mibgroup/target/target.c
index 88ee770..58783ad 100644
--- a/agent/mibgroup/target/target.c
+++ b/agent/mibgroup/target/target.c
@@ -1,8 +1,5 @@
 #include <net-snmp/net-snmp-config.h>
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_STRING_H
 #include <string.h>
 #else
@@ -12,6 +9,18 @@
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
+#if defined(NETSNMP_TRANSPORT_DTLSUDP_DOMAIN) || defined(NETSNMP_TRANSPORT_TLSTCP_DOMAIN)
+#include <openssl/ssl.h>
+#include <openssl/x509v3.h>
+#include <net-snmp/library/cert_util.h>
+#endif
+#ifdef NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+#include <net-snmp/library/snmpTLSTCPDomain.h>
+#endif
+#ifdef NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
+#include <net-snmp/library/snmpDTLSUDPDomain.h>
+#endif
+
 #include "snmpTargetAddrEntry.h"
 #include "snmpTargetParamsEntry.h"
 #include "target.h"
@@ -27,6 +36,9 @@
     char            buf[SPRINT_MAX_LEN];
     char            tags[MAX_TAGS][SPRINT_MAX_LEN], *cp;
     int             numtags = 0, i;
+#if defined(NETSNMP_TRANSPORT_DTLSUDP_DOMAIN) || defined(NETSNMP_TRANSPORT_TLSTCP_DOMAIN)
+    int             tls = 0;
+#endif
     static struct targetParamTable_struct *param;
 
     DEBUGMSGTL(("target_sessions", "looking for: %s\n", taglist));
@@ -159,6 +171,67 @@
                                     free(dst_str);
                                 }
                             }
+                            /*
+                             * if tDomain is tls related, check for tls config
+                             */
+#ifdef NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
+                            tls = snmp_oid_compare(targaddrs->tDomain,
+                                                   targaddrs->tDomainLen,
+                                                   netsnmpDTLSUDPDomain,
+                                                   netsnmpDTLSUDPDomain_len);
+
+#endif
+#ifdef NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+                            if (tls)
+                                tls = snmp_oid_compare(targaddrs->tDomain,
+                                                       targaddrs->tDomainLen,
+                                                       netsnmpTLSTCPDomain,
+                                                       netsnmpTLSTCPDomain_len);
+#endif
+#if defined(NETSNMP_TRANSPORT_DTLSUDP_DOMAIN) || defined(NETSNMP_TRANSPORT_TLSTCP_DOMAIN)
+                            if (!tls) {
+                                netsnmp_cert *cert;
+                                char         *server_id;
+
+                                DEBUGMSGTL(("target_sessions",
+                                            "  looking up our id: %s\n",
+                                            targaddrs->params));
+                                cert =
+                                    netsnmp_cert_find(NS_CERT_IDENTITY,
+                                                      NS_CERTKEY_TARGET_PARAM,
+                                                      targaddrs->params);
+                                netsnmp_assert(t->f_config);
+                                if (cert) {
+                                    DEBUGMSGTL(("target_sessions",
+                                            "  found fingerprint: %s\n", 
+                                                cert->fingerprint));
+                                    t->f_config(t, "our_identity",
+                                                cert->fingerprint);
+                                }
+                                DEBUGMSGTL(("target_sessions",
+                                            "  looking up their id: %s\n",
+                                            targaddrs->name));
+                                cert =
+                                    netsnmp_cert_find(NS_CERT_REMOTE_PEER,
+                                                      NS_CERTKEY_TARGET_ADDR,
+                                                      targaddrs->name);
+                                if (cert) {
+                                    DEBUGMSGTL(("target_sessions",
+                                            "  found fingerprint: %s\n", 
+                                                cert->fingerprint));
+                                    t->f_config(t, "their_identity",
+                                                cert->fingerprint);
+                                }
+                                server_id = netsnmp_tlstmAddr_get_serverId(
+                                    targaddrs->name);
+                                if (server_id) {
+                                    DEBUGMSGTL(("target_sessions",
+                                            "  found serverId: %s\n", 
+                                                server_id));
+                                    t->f_config(t, "their_hostname", server_id);
+                                }
+                            }
+#endif
                             memset(&thissess, 0, sizeof(thissess));
                             thissess.timeout = (targaddrs->timeout) * 10000;
                             thissess.retries = targaddrs->retryCount;
@@ -168,9 +241,11 @@
                                         thissess.timeout));
 
                             if (param->mpModel == SNMP_VERSION_3 &&
-                                param->secModel != 3) {
+                                param->secModel != SNMP_SEC_MODEL_USM &&
+                                param->secModel != SNMP_SEC_MODEL_TSM) {
                                 snmp_log(LOG_ERR,
-                                         "unsupported model/secmodel combo for target %s\n",
+                                         "unsupported mpModel/secModel combo %d/%d for target %s\n",
+                                         param->mpModel, param->secModel,
                                          targaddrs->name);
                                 /*
                                  * XXX: memleak 
diff --git a/agent/mibgroup/target/target_counters_5_5.c b/agent/mibgroup/target/target_counters_5_5.c
index 6e8b25b..7be7de3 100644
--- a/agent/mibgroup/target/target_counters_5_5.c
+++ b/agent/mibgroup/target/target_counters_5_5.c
@@ -11,7 +11,7 @@
 
 #include "target_counters_5_5.h"
 
-#include <utilities/snmp_get_statistic.h>
+#include <net-snmp/agent/snmp_get_statistic.h>
 
 void
 init_target_counters_5_5(void)
diff --git a/agent/mibgroup/target/target_counters_5_5.h b/agent/mibgroup/target/target_counters_5_5.h
index cb812fb..4960bf1 100644
--- a/agent/mibgroup/target/target_counters_5_5.h
+++ b/agent/mibgroup/target/target_counters_5_5.h
@@ -1,4 +1,3 @@
-config_require(utilities/snmp_get_statistic)
 config_exclude(target/target_counters)
 
 void            init_target_counters_5_5(void);
diff --git a/agent/mibgroup/tcp-mib/data_access/tcpConn.h b/agent/mibgroup/tcp-mib/data_access/tcpConn.h
index 1ec3588..0f39a7f 100644
--- a/agent/mibgroup/tcp-mib/data_access/tcpConn.h
+++ b/agent/mibgroup/tcp-mib/data_access/tcpConn.h
@@ -23,6 +23,12 @@
 config_require(util_funcs/get_pid_from_inode)
 #elif defined( solaris2 )
 config_require(tcp-mib/data_access/tcpConn_solaris2)
+#elif defined(freebsd4) || defined(dragonfly)
+config_require(tcp-mib/data_access/tcpConn_freebsd4)
+#elif defined(openbsd4)
+config_require(tcp-mib/data_access/tcpConn_openbsd)
+#elif defined(netbsd1)
+config_require(tcp-mib/data_access/tcpConn_netbsd)
 #else
 config_require(tcp-mib/data_access/tcpConn_unsup)
 #endif
diff --git a/agent/mibgroup/tcp-mib/data_access/tcpConn_common.c b/agent/mibgroup/tcp-mib/data_access/tcpConn_common.c
index 9b0cb78..e9f2b8f 100644
--- a/agent/mibgroup/tcp-mib/data_access/tcpConn_common.c
+++ b/agent/mibgroup/tcp-mib/data_access/tcpConn_common.c
@@ -189,7 +189,7 @@
     if (! (entry->flags & NETSNMP_ACCESS_TCPCONN_DELETE))
         return -1;
     
-    rc = netsnmp_arch_tcpconn_delete(entry);
+    rc = netsnmp_arch_tcpconn_entry_delete(entry);
     
     return rc;
 }
diff --git a/agent/mibgroup/tcp-mib/data_access/tcpConn_freebsd4.c b/agent/mibgroup/tcp-mib/data_access/tcpConn_freebsd4.c
new file mode 100644
index 0000000..fed1e84
--- /dev/null
+++ b/agent/mibgroup/tcp-mib/data_access/tcpConn_freebsd4.c
@@ -0,0 +1,223 @@
+/*
+ *  tcpConnTable MIB architecture support for FreeBSD/DragonFlyBSD
+ */
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/data_access/tcpConn.h>
+
+#include "tcp-mib/tcpConnectionTable/tcpConnectionTable_constants.h"
+#include "tcp-mib/data_access/tcpConn_private.h"
+
+#include "mibII/mibII_common.h"
+
+#if HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+#if HAVE_NETINET_TCP_TIMER_H
+#include <netinet/tcp_timer.h>
+#endif
+#if HAVE_NETINET_TCPIP_H
+#include <netinet/tcpip.h>
+#endif
+#if HAVE_NETINET_TCP_VAR_H
+#include <netinet/tcp_var.h>
+#endif
+
+static int _load(netsnmp_container *container, u_int flags);
+
+/*
+ * initialize arch specific storage
+ *
+ * @retval  0: success
+ * @retval <0: error
+ */
+int
+netsnmp_arch_tcpconn_entry_init(netsnmp_tcpconn_entry *entry)
+{
+    /*
+     * init
+     */
+    return 0;
+}
+
+/*
+ * cleanup arch specific storage
+ */
+void
+netsnmp_arch_tcpconn_entry_cleanup(netsnmp_tcpconn_entry *entry)
+{
+    /*
+     * cleanup
+     */
+}
+
+/*
+ * copy arch specific storage
+ */
+int
+netsnmp_arch_tcpconn_entry_copy(netsnmp_tcpconn_entry *lhs,
+                                  netsnmp_tcpconn_entry *rhs)
+{
+    return 0;
+}
+
+/*
+ * delete an entry
+ */
+int
+netsnmp_arch_tcpconn_entry_delete(netsnmp_tcpconn_entry *entry)
+{
+    if (NULL == entry)
+        return -1;
+    /** xxx-rks:9 tcpConn delete not implemented */
+    return -1;
+}
+
+
+/**
+ *
+ * @retval  0 no errors
+ * @retval !0 errors
+ */
+int
+netsnmp_arch_tcpconn_container_load(netsnmp_container *container,
+                                    u_int load_flags )
+{
+    int rc = 0;
+
+    DEBUGMSGTL(("access:tcpconn:container",
+                "tcpconn_container_arch_load (flags %x)\n", load_flags));
+
+    if (NULL == container) {
+        snmp_log(LOG_ERR, "no container specified/found for access_tcpconn\n");
+        return -1;
+    }
+
+    rc = _load(container, load_flags);
+
+    return rc;
+}
+
+#if defined(freebsd4) || defined(darwin)
+    #define NS_ELEM struct xtcpcb
+#else
+    #define NS_ELEM struct xinpcb
+#endif
+
+/**
+ *
+ * @retval  0 no errors
+ * @retval !0 errors
+ */
+static int
+_load(netsnmp_container *container, u_int load_flags)
+{
+    size_t   len;
+    int      sname[] = { CTL_NET, PF_INET, IPPROTO_TCP, TCPCTL_PCBLIST };
+    char     *tcpcb_buf = NULL;
+#if defined(dragonfly)
+    struct xinpcb  *xig = NULL;
+    int      StateMap[] = { 1, 1, 2, 3, 4, 5, 8, 6, 10, 9, 7, 11 };
+#else
+    struct xinpgen *xig = NULL;
+    int      StateMap[] = { 1, 2, 3, 4, 5, 8, 6, 10, 9, 7, 11 };
+#endif
+    netsnmp_tcpconn_entry  *entry;
+    int      state;
+    int      rc = 0;
+
+    /*
+     *  Read in the buffer containing the TCP table data
+     */
+    len = 0;
+    if (sysctl(sname, 4, 0, &len, 0, 0) < 0 ||
+       (tcpcb_buf = malloc(len)) == NULL)
+        return -1;
+    if (sysctl(sname, 4, tcpcb_buf, &len, 0, 0) < 0) {
+        free(tcpcb_buf);
+        return -1;
+    }
+
+    /*
+     *  Unpick this into the constituent 'xinpgen' structures, and extract
+     *     the 'inpcb' elements into a linked list (built in reverse)
+     */
+#if defined(dragonfly)
+    xig = (struct xinpcb  *) tcpcb_buf;
+#else
+    xig = (struct xinpgen *) tcpcb_buf;
+    xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
+#endif
+
+#if defined(dragonfly)
+    while (xig && (xig->xi_len > sizeof(struct xinpcb)))
+#else
+    while (xig && (xig->xig_len > sizeof(struct xinpgen)))
+#endif
+    {
+	NS_ELEM pcb = *((NS_ELEM *) xig);
+#if defined(dragonfly)
+	xig = (struct xinpcb  *) ((char *) xig + xig->xi_len);
+#else
+	xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
+#endif
+	state = StateMap[pcb.xt_tp.t_state];
+
+	if (load_flags) {
+	    if (state == TCPCONNECTIONSTATE_LISTEN) {
+		if (load_flags & NETSNMP_ACCESS_TCPCONN_LOAD_NOLISTEN) {
+		    DEBUGMSGT(("verbose:access:tcpconn:container",
+			       " skipping listen\n"));
+		    continue;
+		}
+	    }
+	    else if (load_flags & NETSNMP_ACCESS_TCPCONN_LOAD_ONLYLISTEN) {
+		DEBUGMSGT(("verbose:access:tcpconn:container",
+			    " skipping non-listen\n"));
+		continue;
+	    }
+	}
+
+#if !defined(NETSNMP_ENABLE_IPV6)
+	if (pcb.xt_inp.inp_vflag & INP_IPV6)
+	    continue;
+#endif
+
+        entry = netsnmp_access_tcpconn_entry_create();
+        if(NULL == entry) {
+            rc = -3;
+            break;
+        }
+
+        /** oddly enough, these appear to already be in network order */
+        entry->loc_port = htons(pcb.xt_inp.inp_lport);
+        entry->rmt_port = htons(pcb.xt_inp.inp_fport);
+        entry->tcpConnState = state;
+        entry->pid = 0;
+        
+        /** the addr string may need work */
+	if (pcb.xt_inp.inp_vflag & INP_IPV6) {
+	    entry->loc_addr_len = entry->rmt_addr_len = 16;
+	    memcpy(entry->loc_addr, &pcb.xt_inp.in6p_laddr, 16);
+	    memcpy(entry->rmt_addr, &pcb.xt_inp.in6p_faddr, 16);
+	}
+	else {
+	    entry->loc_addr_len = entry->rmt_addr_len = 4;
+	    memcpy(entry->loc_addr, &pcb.xt_inp.inp_laddr, 4);
+	    memcpy(entry->rmt_addr, &pcb.xt_inp.inp_faddr, 4);
+	}
+
+        /*
+         * add entry to container
+         */
+        entry->arbitrary_index = CONTAINER_SIZE(container) + 1;
+        CONTAINER_INSERT(container, entry);
+    }
+
+    if(rc<0)
+        return rc;
+
+    return 0;
+}
diff --git a/agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c b/agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c
index 376cf5c..2bf588a 100644
--- a/agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c
+++ b/agent/mibgroup/tcp-mib/data_access/tcpConn_linux.c
@@ -60,7 +60,7 @@
  * delete an entry
  */
 int
-netsnmp_arch_tcpconn_delete(netsnmp_tcpconn_entry *entry)
+netsnmp_arch_tcpconn_entry_delete(netsnmp_tcpconn_entry *entry)
 {
     if (NULL == entry)
         return -1;
@@ -134,7 +134,7 @@
      */
     while (fgets(line, sizeof(line), in)) {
         netsnmp_tcpconn_entry *entry;
-        int             state, rc, local_port, remote_port, tmp_state;
+        unsigned int    state, local_port, remote_port, tmp_state;
         unsigned long long inode;
         size_t          buf_len, offset;
         char            local_addr[10], remote_addr[10];
diff --git a/agent/mibgroup/tcp-mib/data_access/tcpConn_netbsd.c b/agent/mibgroup/tcp-mib/data_access/tcpConn_netbsd.c
new file mode 100644
index 0000000..b4229ff
--- /dev/null
+++ b/agent/mibgroup/tcp-mib/data_access/tcpConn_netbsd.c
@@ -0,0 +1,229 @@
+/*
+ *  tcpConnTable MIB architecture support for NetBSD
+ */
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/data_access/tcpConn.h>
+
+#include "tcp-mib/tcpConnectionTable/tcpConnectionTable_constants.h"
+#include "tcp-mib/data_access/tcpConn_private.h"
+
+#include "mibII/mibII_common.h"
+
+#if HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+#if HAVE_NETINET_TCP_TIMER_H
+#include <netinet/tcp_timer.h>
+#endif
+#if HAVE_NETINET_TCPIP_H
+#include <netinet/tcpip.h>
+#endif
+#if HAVE_NETINET_TCP_VAR_H
+#include <netinet/tcp_var.h>
+#endif
+
+static int _load(netsnmp_container *container, u_int flags, int var);
+
+/*
+ * initialize arch specific storage
+ *
+ * @retval  0: success
+ * @retval <0: error
+ */
+int
+netsnmp_arch_tcpconn_entry_init(netsnmp_tcpconn_entry *entry)
+{
+    /*
+     * init
+     */
+    return 0;
+}
+
+/*
+ * cleanup arch specific storage
+ */
+void
+netsnmp_arch_tcpconn_entry_cleanup(netsnmp_tcpconn_entry *entry)
+{
+    /*
+     * cleanup
+     */
+}
+
+/*
+ * copy arch specific storage
+ */
+int
+netsnmp_arch_tcpconn_entry_copy(netsnmp_tcpconn_entry *lhs,
+                                  netsnmp_tcpconn_entry *rhs)
+{
+    return 0;
+}
+
+/*
+ * delete an entry
+ */
+int
+netsnmp_arch_tcpconn_entry_delete(netsnmp_tcpconn_entry *entry)
+{
+    if (NULL == entry)
+        return -1;
+    /** xxx-rks:9 tcpConn delete not implemented */
+    return -1;
+}
+
+
+/**
+ *
+ * @retval  0 no errors
+ * @retval !0 errors
+ */
+int
+netsnmp_arch_tcpconn_container_load(netsnmp_container *container,
+                                    u_int load_flags )
+{
+    int rc = 0;
+
+    DEBUGMSGTL(("access:tcpconn:container",
+                "tcpconn_container_arch_load (flags %x)\n", load_flags));
+
+    if (NULL == container) {
+        snmp_log(LOG_ERR, "no container specified/found for access_tcpconn\n");
+        return -1;
+    }
+
+    rc = _load(container, load_flags, 4);
+#if defined(NETSNMP_ENABLE_IPV6)
+    rc = _load(container, load_flags, 6);
+#endif
+
+    return rc;
+}
+
+
+/**
+ *
+ * @retval  0 no errors
+ * @retval !0 errors
+ */
+static int
+_load(netsnmp_container *container, u_int load_flags, int ver)
+{
+    const char *mibname;
+    int      mib[8];
+    size_t   mib_len;
+    struct kinfo_pcb *pcblist;
+    size_t   pcb_len;
+    int      StateMap[] = { 1, 2, 3, 4, 5, 8, 6, 10, 9, 7, 11 };
+    netsnmp_tcpconn_entry  *entry;
+    int      state;
+    int      i, rc = 0;
+
+    /*
+     *  Read in the buffer containing the TCP table data
+     */
+    switch (ver) {
+    case 4:
+    	mibname = "net.inet.tcp.pcblist";
+    	break;
+    case 6:
+    	mibname = "net.inet6.tcp6.pcblist";
+	break;
+    default:
+    	snmp_log(LOG_ERR, "tcp-mib:data_access:_load: bad version %d\n", ver);
+	return -1;
+    }
+
+    if (sysctlnametomib(mibname, mib, &mib_len) == -1) {
+    	snmp_log(LOG_ERR, "tcp-mib:data_access:_load: cant resolve mib %s\n", mibname);
+	return -1;
+    }
+
+    if (sysctl(mib, sizeof(mib) / sizeof(*mib), NULL, &pcb_len, NULL, 0) == -1) {
+    	snmp_log(LOG_ERR, "tcp-mib:data_access:_load: cant size mib %s\n", mibname);
+	return -1;
+    }
+
+    if ((pcblist = malloc(pcb_len)) == NULL) {
+    	snmp_log(LOG_ERR, "tcp-mib:data_access:_load: cant allocate mib %s\n", mibname);
+	return -1;
+    }
+    memset(pcblist, 0, pcb_len);
+
+    mib[6] = sizeof(*pcblist);
+    mib[7] = pcb_len / sizeof(*pcblist);
+
+    if (sysctl(mib, sizeof(mib) / sizeof(*mib),
+		    pcblist, &pcb_len, NULL, 0) == -1) {
+    	snmp_log(LOG_ERR, "tcp-mib:data_access:_load: cant size mib %s\n", mibname);
+	return -1;
+    }
+
+    /*
+     *  Unpick this into the constituent structures, and extract
+     *     the 'inpcb' elements into a linked list (built in reverse)
+     */
+    for (i = 0; i < pcb_len / sizeof(*pcblist); i++) {
+	struct kinfo_pcb *pcb = pcblist+i;
+	state = StateMap[pcb->ki_tstate];
+
+	if (load_flags) {
+	    if (state == TCPCONNECTIONSTATE_LISTEN) {
+		if (load_flags & NETSNMP_ACCESS_TCPCONN_LOAD_NOLISTEN) {
+		    DEBUGMSGT(("verbose:access:tcpconn:container",
+			       " skipping listen\n"));
+		    continue;
+		}
+	    }
+	    else if (load_flags & NETSNMP_ACCESS_TCPCONN_LOAD_ONLYLISTEN) {
+		DEBUGMSGT(("verbose:access:tcpconn:container",
+			    " skipping non-listen\n"));
+		continue;
+	    }
+	}
+
+        entry = netsnmp_access_tcpconn_entry_create();
+        if(NULL == entry) {
+            rc = -3;
+            break;
+        }
+
+        entry->tcpConnState = state;
+        entry->pid = 0;
+        
+	if (ver == 6) {
+	    struct sockaddr_in6 src, dst;
+	    memcpy(&src, &pcb->ki_s, sizeof(src));
+	    memcpy(&dst, &pcb->ki_d, sizeof(dst));
+	    entry->loc_addr_len = entry->rmt_addr_len = 16;
+	    memcpy(entry->loc_addr, &src.sin6_addr, 16);
+	    memcpy(entry->rmt_addr, &dst.sin6_addr, 16);
+	    entry->loc_port = ntohs(src.sin6_port);
+	    entry->rmt_port = ntohs(dst.sin6_port);
+	}
+	else {
+	    struct sockaddr_in src, dst;
+	    memcpy(&src, &pcb->ki_s, sizeof(src));
+	    memcpy(&dst, &pcb->ki_d, sizeof(dst));
+	    entry->loc_addr_len = entry->rmt_addr_len = 4;
+	    memcpy(entry->loc_addr, &src.sin_addr, 4);
+	    memcpy(entry->rmt_addr, &dst.sin_addr, 4);
+	    entry->loc_port = ntohs(src.sin_port);
+	    entry->rmt_port = ntohs(dst.sin_port);
+	}
+
+        /*
+         * add entry to container
+         */
+        entry->arbitrary_index = CONTAINER_SIZE(container) + 1;
+        CONTAINER_INSERT(container, entry);
+    }
+
+    if(rc<0)
+        return rc;
+
+    return 0;
+}
diff --git a/agent/mibgroup/tcp-mib/data_access/tcpConn_openbsd.c b/agent/mibgroup/tcp-mib/data_access/tcpConn_openbsd.c
new file mode 100644
index 0000000..001064f
--- /dev/null
+++ b/agent/mibgroup/tcp-mib/data_access/tcpConn_openbsd.c
@@ -0,0 +1,211 @@
+/*
+ *  tcpConnTable MIB architecture support for OpenBSD
+ */
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/data_access/tcpConn.h>
+#include <net-snmp/agent/auto_nlist.h>
+
+#include "tcp-mib/tcpConnectionTable/tcpConnectionTable_constants.h"
+#include "tcp-mib/data_access/tcpConn_private.h"
+
+#include "mibII/mibII_common.h"
+
+#if HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+#if HAVE_NETINET_TCP_TIMER_H
+#include <netinet/tcp_timer.h>
+#endif
+#if HAVE_NETINET_TCPIP_H
+#include <netinet/tcpip.h>
+#endif
+#if HAVE_NETINET_TCP_VAR_H
+#include <netinet/tcp_var.h>
+#endif
+
+static int _load(netsnmp_container *container, u_int flags);
+
+/*
+ * initialize arch specific storage
+ *
+ * @retval  0: success
+ * @retval <0: error
+ */
+int
+netsnmp_arch_tcpconn_entry_init(netsnmp_tcpconn_entry *entry)
+{
+    /*
+     * init
+     */
+    return 0;
+}
+
+/*
+ * cleanup arch specific storage
+ */
+void
+netsnmp_arch_tcpconn_entry_cleanup(netsnmp_tcpconn_entry *entry)
+{
+    /*
+     * cleanup
+     */
+}
+
+/*
+ * copy arch specific storage
+ */
+int
+netsnmp_arch_tcpconn_entry_copy(netsnmp_tcpconn_entry *lhs,
+                                  netsnmp_tcpconn_entry *rhs)
+{
+    return 0;
+}
+
+/*
+ * delete an entry
+ */
+int
+netsnmp_arch_tcpconn_entry_delete(netsnmp_tcpconn_entry *entry)
+{
+    if (NULL == entry)
+        return -1;
+    /** xxx-rks:9 tcpConn delete not implemented */
+    return -1;
+}
+
+
+/**
+ *
+ * @retval  0 no errors
+ * @retval !0 errors
+ */
+int
+netsnmp_arch_tcpconn_container_load(netsnmp_container *container,
+                                    u_int load_flags )
+{
+    int rc = 0;
+
+    DEBUGMSGTL(("access:tcpconn:container",
+                "tcpconn_container_arch_load (flags %x)\n", load_flags));
+
+    if (NULL == container) {
+        snmp_log(LOG_ERR, "no container specified/found for access_tcpconn\n");
+        return -1;
+    }
+
+    rc = _load(container, load_flags);
+
+    return rc;
+}
+
+
+/**
+ *
+ * @retval  0 no errors
+ * @retval !0 errors
+ */
+static int
+_load(netsnmp_container *container, u_int load_flags)
+{
+    struct inpcbtable table;
+    struct inpcb   *head, *next, *prev;
+    struct inpcb   inpcb;
+    struct tcpcb   tcpcb;
+    int      StateMap[] = { 1, 2, 3, 4, 5, 8, 6, 10, 9, 7, 11 };
+    netsnmp_tcpconn_entry  *entry;
+    int      state;
+    int      rc = 0;
+
+    /*
+     *  Read in the buffer containing the TCP table data
+     */
+    if (!auto_nlist(TCP_SYMBOL, (char *)&table, sizeof(table))) {
+	DEBUGMSGTL(("tcp-mib/tcpConn_openbsd", "Failed to read tcp_symbol\n"));
+	return -1;
+    }
+
+    prev = (struct inpcb *)&CIRCLEQ_FIRST(&table.inpt_queue);
+    prev = NULL;
+    head = next = CIRCLEQ_FIRST(&table.inpt_queue);
+
+    while (next) {
+	if (!NETSNMP_KLOOKUP(next, (char *)&inpcb, sizeof(inpcb))) {
+	    DEBUGMSGTL(("tcp-mib/data_access/tcpConn", "klookup inpcb failed\n"));
+	    break;
+	}
+	if (prev && CIRCLEQ_PREV(&inpcb, inp_queue) != prev) {
+	    snmp_log(LOG_ERR,"tcbtable link error\n");
+	    break;
+	}
+	prev = next;
+	next = CIRCLEQ_NEXT(&inpcb, inp_queue);
+	if (!NETSNMP_KLOOKUP(inpcb.inp_ppcb, (char *)&tcpcb, sizeof(tcpcb))) {
+	    DEBUGMSGTL(("tcp-mib/data_access/tcpConn", "klookup tcpcb failed\n"));
+	    break;
+	}
+	state = StateMap[tcpcb.t_state];
+
+	if (load_flags) {
+	    if (state == TCPCONNECTIONSTATE_LISTEN) {
+		if (load_flags & NETSNMP_ACCESS_TCPCONN_LOAD_NOLISTEN) {
+		    DEBUGMSGT(("verbose:access:tcpconn:container",
+			       " skipping listen\n"));
+		    goto skip;
+		}
+	    }
+	    else if (load_flags & NETSNMP_ACCESS_TCPCONN_LOAD_ONLYLISTEN) {
+		DEBUGMSGT(("verbose:access:tcpconn:container",
+			    " skipping non-listen\n"));
+		goto skip;
+	    }
+	}
+
+#if !defined(NETSNMP_ENABLE_IPV6)
+        if (inpcb.inp_flags & INP_IPV6)
+	    goto skip;
+#endif
+
+        entry = netsnmp_access_tcpconn_entry_create();
+        if(NULL == entry) {
+            rc = -3;
+            break;
+        }
+
+        /** oddly enough, these appear to already be in network order */
+        entry->loc_port = ntohs(inpcb.inp_lport);
+        entry->rmt_port = ntohs(inpcb.inp_fport);
+        entry->tcpConnState = state;
+        entry->pid = 0;
+        
+        /** the addr string may need work */
+	if (inpcb.inp_flags & INP_IPV6) {
+	    entry->loc_addr_len = entry->rmt_addr_len = 16;
+	    memcpy(entry->loc_addr, &inpcb.inp_laddr6, 16);
+	    memcpy(entry->rmt_addr, &inpcb.inp_faddr6, 16);
+	}
+	else {
+	    entry->loc_addr_len = entry->rmt_addr_len = 4;
+	    memcpy(entry->loc_addr, &inpcb.inp_laddr, 4);
+	    memcpy(entry->rmt_addr, &inpcb.inp_faddr, 4);
+	}
+	DEBUGMSGTL(("tcp-mib/data_access", "tcp %d %d %d\n",
+	    entry->loc_addr_len, entry->loc_port, entry->rmt_port));
+
+        /*
+         * add entry to container
+         */
+        entry->arbitrary_index = CONTAINER_SIZE(container) + 1;
+        CONTAINER_INSERT(container, entry);
+skip:
+	if (head == next)
+	    break;
+    }
+
+    if(rc<0)
+        return rc;
+
+    return 0;
+}
diff --git a/agent/mibgroup/tcp-mib/data_access/tcpConn_solaris2.c b/agent/mibgroup/tcp-mib/data_access/tcpConn_solaris2.c
index 7c2c6ae..959d708 100644
--- a/agent/mibgroup/tcp-mib/data_access/tcpConn_solaris2.c
+++ b/agent/mibgroup/tcp-mib/data_access/tcpConn_solaris2.c
@@ -40,7 +40,7 @@
 }
 
 int 
-netsnmp_arch_tcpconn_delete(netsnmp_tcpconn_entry *ep)
+netsnmp_arch_tcpconn_entry_delete(netsnmp_tcpconn_entry *ep)
 {
     /*
      * Not implemented 
diff --git a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c
index f5d054f..c999a0e 100644
--- a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c
+++ b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable.c
@@ -355,8 +355,7 @@
         tcpConnectionLocalAddress_val_ptr_len;
     memcpy(tbl_idx->tcpConnectionLocalAddress,
            tcpConnectionLocalAddress_val_ptr,
-           tcpConnectionLocalAddress_val_ptr_len *
-           sizeof(tcpConnectionLocalAddress_val_ptr[0]));
+           tcpConnectionLocalAddress_val_ptr_len);
 
     /*
      * tcpConnectionLocalPort(3)/InetPortNumber/ASN_UNSIGNED/u_long(u_long)//l/a/w/e/R/d/H 
@@ -389,8 +388,7 @@
         tcpConnectionRemAddress_val_ptr_len;
     memcpy(tbl_idx->tcpConnectionRemAddress,
            tcpConnectionRemAddress_val_ptr,
-           tcpConnectionRemAddress_val_ptr_len *
-           sizeof(tcpConnectionRemAddress_val_ptr[0]));
+           tcpConnectionRemAddress_val_ptr_len);
 
     /*
      * tcpConnectionRemPort(6)/InetPortNumber/ASN_UNSIGNED/u_long(u_long)//l/a/w/e/R/d/H 
@@ -406,7 +404,7 @@
  * @internal
  * set row context indexes
  *
- * @param reqreq_ctx the row context that needs updated indexes
+ * @param rowreq_ctx the row context that needs updated indexes
  *
  * @retval MFD_SUCCESS     : success.
  * @retval MFD_ERROR       : other error.
diff --git a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c
index a4f5bbe..dfb9649 100644
--- a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c
+++ b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access.c
@@ -190,7 +190,7 @@
         if (CONTAINER_INSERT(container, rowreq_ctx)) {
             NETSNMP_LOGONCE((LOG_DEBUG,
                     "Error inserting entry to tcpConnectionTable,"\
-                    " entry already exists."));
+                    " entry already exists.\n"));
             tcpConnectionTable_release_rowreq_ctx(rowreq_ctx);
         }
     } else {
diff --git a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c
index 5348614..d1c2fb3 100644
--- a/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c
+++ b/agent/mibgroup/tcp-mib/tcpConnectionTable/tcpConnectionTable_interface.c
@@ -193,7 +193,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = TCPCONNECTIONTABLE_MIN_COL;
     tbl_info->max_column = TCPCONNECTIONTABLE_MAX_COL;
@@ -784,7 +784,7 @@
                                      *agtreq_info,
                                      netsnmp_request_info *requests)
 {
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -840,7 +840,7 @@
                                       netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:tcpConnectionTable:_mfd_tcpConnectionTable_object_lookup", "called\n"));
@@ -921,7 +921,7 @@
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1118,7 +1118,7 @@
                                       *agtreq_info,
                                       netsnmp_request_info *requests)
 {
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc;
@@ -1166,7 +1166,7 @@
                                            netsnmp_request_info *requests)
 {
     int             rc;
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:tcpConnectionTable:_mfd_tcpConnectionTable_check_dependencies", "called\n"));
 
@@ -1233,7 +1233,7 @@
                                    netsnmp_request_info *requests)
 {
     int             rc;
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:tcpConnectionTable:_mfd_tcpConnectionTable_undo_setup", "called\n"));
@@ -1298,7 +1298,7 @@
                                      *agtreq_info,
                                      netsnmp_request_info *requests)
 {
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc;
 
@@ -1381,7 +1381,7 @@
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     int             rc = SNMP_ERR_NOERROR;
@@ -1429,7 +1429,7 @@
                                netsnmp_request_info *requests)
 {
     int             rc;
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:tcpConnectionTable:_mfd_tcpConnectionTable_commit", "called\n"));
@@ -1463,7 +1463,7 @@
                                     netsnmp_request_info *requests)
 {
     int             rc;
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:tcpConnectionTable:_mfd_tcpConnectionTable_undo_commit", "called\n"));
@@ -1542,7 +1542,7 @@
                                     netsnmp_request_info *requests)
 {
     int             rc;
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
 
@@ -1597,7 +1597,7 @@
                                             *agtreq_info,
                                             netsnmp_request_info *requests)
 {
-    tcpConnectionTable_rowreq_ctx *rowreq_ctx =
+    tcpConnectionTable_rowreq_ctx *rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:tcpConnectionTable:_mfd_tcpConnectionTable_irreversible:commit", "called\n"));
@@ -1742,9 +1742,12 @@
     if_ctx->cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
 
     tcpConnectionTable_container_init(&if_ctx->container, if_ctx->cache);
-    if (NULL == if_ctx->container)
+    if (NULL == if_ctx->container) {
         if_ctx->container =
             netsnmp_container_find("tcpConnectionTable:table_container");
+        if (if_ctx->container)
+        if_ctx->container->container_name = strdup("tcpConnectionTable");
+    }
     if (NULL == if_ctx->container) {
         snmp_log(LOG_ERR, "error creating container in "
                  "tcpConnectionTable_container_init\n");
@@ -1794,7 +1797,7 @@
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx =
+    rowreq_ctx = (tcpConnectionTable_rowreq_ctx*)
         CONTAINER_FIND(tcpConnectionTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
diff --git a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c
index cfabdd1..a5c9510 100644
--- a/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c
+++ b/agent/mibgroup/tcp-mib/tcpListenerTable/tcpListenerTable_interface.c
@@ -150,7 +150,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = TCPLISTENERTABLE_MIN_COL;
     tbl_info->max_column = TCPLISTENERTABLE_MAX_COL;
@@ -609,7 +609,7 @@
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    tcpListenerTable_rowreq_ctx *rowreq_ctx =
+    tcpListenerTable_rowreq_ctx *rowreq_ctx = (tcpListenerTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -656,7 +656,7 @@
                                     netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    tcpListenerTable_rowreq_ctx *rowreq_ctx =
+    tcpListenerTable_rowreq_ctx *rowreq_ctx = (tcpListenerTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:tcpListenerTable:_mfd_tcpListenerTable_object_lookup", "called\n"));
@@ -727,7 +727,7 @@
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    tcpListenerTable_rowreq_ctx *rowreq_ctx =
+    tcpListenerTable_rowreq_ctx *rowreq_ctx = (tcpListenerTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -924,9 +924,12 @@
     if_ctx->cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
 
     tcpListenerTable_container_init(&if_ctx->container, if_ctx->cache);
-    if (NULL == if_ctx->container)
+    if (NULL == if_ctx->container) {
         if_ctx->container =
             netsnmp_container_find("tcpListenerTable:table_container");
+        if (if_ctx->container)
+            if_ctx->container->container_name = strdup("tcpListenerTable");
+    }
     if (NULL == if_ctx->container) {
         snmp_log(LOG_ERR, "error creating container in "
                  "tcpListenerTable_container_init\n");
@@ -976,7 +979,7 @@
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx =
+    rowreq_ctx = (tcpListenerTable_rowreq_ctx*)
         CONTAINER_FIND(tcpListenerTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
diff --git a/agent/mibgroup/tlstm-mib.h b/agent/mibgroup/tlstm-mib.h
new file mode 100644
index 0000000..50e6985
--- /dev/null
+++ b/agent/mibgroup/tlstm-mib.h
@@ -0,0 +1,11 @@
+/*
+ * module to include the modules
+ */
+config_require(tlstm-mib/snmpTlstmSession)
+config_require(tlstm-mib/snmpTlstmAddrTable)
+config_require(tlstm-mib/snmpTlstmCertToTSNTable)
+config_require(tlstm-mib/snmpTlstmParamsTable)
+config_add_mib(SNMP-TLS-TM-MIB)
+config_add_mib(SNMP-TSM-MIB)
+
+#define SNMP_TLS_TM_BASE     1, 3, 6, 1, 2, 1, 198
diff --git a/agent/mibgroup/tlstm-mib/snmpTlstmAddrTable.h b/agent/mibgroup/tlstm-mib/snmpTlstmAddrTable.h
new file mode 100644
index 0000000..7b10905
--- /dev/null
+++ b/agent/mibgroup/tlstm-mib/snmpTlstmAddrTable.h
@@ -0,0 +1,7 @@
+#ifndef SNMPTLSTMADDRTABLE_H
+#define SNMPTLSTMADDRTABLE_H
+
+config_require(tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable)
+
+
+#endif                          /* SNMPTLSTMADDRTABLE_H */
diff --git a/agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c b/agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c
new file mode 100644
index 0000000..eda64f3
--- /dev/null
+++ b/agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.c
@@ -0,0 +1,1426 @@
+/*
+ * Note: this file originally auto-generated by mib2c using
+ *  $
+ */
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <openssl/ssl.h>
+#include <openssl/x509.h>
+#include <net-snmp/library/cert_util.h>
+#include "tlstm-mib.h"
+#include "snmpTlstmAddrTable.h"
+
+/** XXX - move these to table_data header? */
+#define FATE_NEWLY_CREATED    1
+#define FATE_NO_CHANGE        0
+#define FATE_DELETE_ME        -1
+
+/***********************************************************************
+ *
+ * PERSISTENCE
+ *
+ ***********************************************************************/
+    /*
+     * structure for undo storage and other vars for set processing 
+     */
+typedef struct tlstmAddrTable_undo_s {
+    char            fate;
+    char            copied;
+    char            is_consistent;
+    netsnmp_request_info *req[TLSTMADDRTABLE_MAX_COLUMN + 1];
+    /*
+     * undo Column space 
+     */
+    char       tlstmAddrServerFingerprint[TLSTMADDRSERVERFINGERPRINT_MAX_SIZE];
+    size_t          tlstmAddrServerFingerprint_len;
+    char            tlstmAddrServerIdentity[TLSTMADDRSERVERIDENTITY_MAX_SIZE];
+    size_t          tlstmAddrServerIdentity_len;
+    char            tlstmAddrStorageType;
+    char            tlstmAddrRowStatus;
+    char            hashType;
+} tlstmAddrTable_undo;
+
+    /*
+     * Typical data structure for a row entry 
+     */
+typedef struct tlstmAddrTable_entry_s {
+    /*
+     * Index values 
+     */
+    char            snmpTargetAddrName[SNMPTARGETADDRNAME_MAX_SIZE];
+    size_t          snmpTargetAddrName_len;
+
+    /*
+     * Column values 
+     */
+    char        tlstmAddrServerFingerprint[TLSTMADDRSERVERFINGERPRINT_MAX_SIZE];
+    size_t          tlstmAddrServerFingerprint_len;
+    char            tlstmAddrServerIdentity[TLSTMADDRSERVERIDENTITY_MAX_SIZE];
+    size_t          tlstmAddrServerIdentity_len;
+    char            tlstmAddrStorageType;
+    char            tlstmAddrRowStatus;
+    char            hashType;
+
+    /*
+     * used during set processing 
+     */
+    tlstmAddrTable_undo *undo;
+
+    /*
+     * user data
+     */
+    struct netsnmp_cert_s   *cert;
+    char                     addr_flags;
+
+} tlstmAddrTable_entry;
+
+netsnmp_tdata_row *tlstmAddrTable_createEntry(netsnmp_tdata * table_data,
+                                              char *snmpTargetAddrName,
+                                              size_t snmpTargetAddrName_len);
+void tlstmAddrTable_removeEntry(netsnmp_tdata * table_data,
+                                netsnmp_tdata_row * row);
+
+static Netsnmp_Node_Handler tlstmAddrTable_handler;
+static int _cache_load(netsnmp_cache *cache, netsnmp_tdata *table);
+static void _cache_free(netsnmp_cache *cache, netsnmp_tdata *table);
+static uint32_t _last_changed = 0;
+static int _count_handler(netsnmp_mib_handler *handler,
+                          netsnmp_handler_registration *reginfo,
+                          netsnmp_agent_request_info *reqinfo,
+                          netsnmp_request_info *requests);
+
+static void _tlstmAddr_init_persistence(void);
+static void _addrs_add(tlstmAddrTable_entry *entry);
+static void _addrs_remove(tlstmAddrTable_entry *entry);
+static void _addr_tweak_storage(tlstmAddrTable_entry *entry);
+static netsnmp_tdata  *_table_data = NULL;
+
+/***********************************************************************
+ *
+ * PERSISTENCE
+ *
+ ***********************************************************************/
+/** Initializes the tlstmAddrTable module */
+void
+init_snmpTlstmAddrTable(void)
+{
+    oid             reg_oid[] = { SNMP_TLS_TM_ADDR_TABLE };
+    const size_t    reg_oid_len = OID_LENGTH(reg_oid);
+    netsnmp_handler_registration *reg;
+    netsnmp_table_registration_info *table_info;
+    netsnmp_cache                   *cache;
+    netsnmp_watcher_info            *watcher;
+
+    DEBUGMSGTL(("tlstmAddrTable:init",
+                "initializing table tlstmAddrTable\n"));
+
+    reg =
+        netsnmp_create_handler_registration("tlstmAddrTable",
+                                            tlstmAddrTable_handler,
+                                            reg_oid, reg_oid_len,
+                                            HANDLER_CAN_RWRITE);
+
+    _table_data = netsnmp_tdata_create_table("tlstmAddrTable", 0);
+    if (NULL == _table_data) {
+        snmp_log(LOG_ERR, "error creating tdata table for tlstmAddrTable\n");
+        return;
+    }
+    table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
+    if (NULL == table_info) {
+        snmp_log(LOG_ERR, "error creating table info for tlstmAddrTable\n");
+        netsnmp_tdata_delete_table(_table_data);
+        _table_data = NULL;
+        return;
+    }
+
+    /*
+     * cache init
+     */
+    cache = netsnmp_cache_create(30, (NetsnmpCacheLoad*)_cache_load,
+                                 (NetsnmpCacheFree*)_cache_free,
+                                 reg_oid, reg_oid_len);
+    if (NULL == cache) {
+        snmp_log(LOG_ERR,"error creating cache for tlstmCertToTSNTable\n");
+        netsnmp_tdata_delete_table(_table_data);
+        _table_data = NULL;
+        return;
+    }
+    cache->magic = (void *)_table_data;
+    cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
+
+    /*
+     * populate index types
+     */
+    netsnmp_table_helper_add_indexes(table_info,
+                                     /* index: snmpTargetAddrName */
+                                     ASN_PRIV_IMPLIED_OCTET_STR, 
+                                     0);
+
+    table_info->min_column = TLSTMADDRTABLE_MIN_COLUMN;
+    table_info->max_column = TLSTMADDRTABLE_MAX_COLUMN;
+
+    netsnmp_tdata_register(reg, _table_data, table_info);
+
+    if (cache) 
+        netsnmp_inject_handler_before( reg, netsnmp_cache_handler_get(cache),
+                                       "table_container");
+
+    /*
+     * register scalars
+     */
+    reg_oid[10] = 7;
+    reg = netsnmp_create_handler_registration("snmpTlstmAddrCount",
+                                              _count_handler, reg_oid,
+                                              OID_LENGTH(reg_oid),
+                                              HANDLER_CAN_RONLY);
+    if (NULL == reg)
+        snmp_log(LOG_ERR,
+                 "could not create handler for snmpTlstmAddrCount\n");
+    else {
+        netsnmp_register_scalar(reg);
+        if (cache) 
+            netsnmp_inject_handler_before(reg,
+                                          netsnmp_cache_handler_get(cache),
+                                          "snmpTlstmAddrCount");
+    }
+    
+    reg_oid[10] = 8;
+    reg = netsnmp_create_handler_registration(
+        "snmpTlstmAddrTableLastChanged", NULL, reg_oid,
+        OID_LENGTH(reg_oid), HANDLER_CAN_RONLY);
+    watcher = netsnmp_create_watcher_info((void*)&_last_changed,
+                                          sizeof(_last_changed),
+                                          ASN_TIMETICKS,
+                                          WATCHER_FIXED_SIZE);
+    if ((NULL == reg) || (NULL == watcher))
+        snmp_log(LOG_ERR,
+                 "could not create handler for snmpTlstmAddrTableLastChanged\n");
+    else
+        netsnmp_register_watched_scalar(reg, watcher);
+
+    /*
+     * Initialise the contents of the table here 
+     */
+    _tlstmAddr_init_persistence();
+}
+
+/***********************************************************************
+ *
+ * PERSISTENCE
+ *
+ ***********************************************************************/
+/*
+ * create a new row in the table 
+ */
+netsnmp_tdata_row *
+tlstmAddrTable_createEntry(netsnmp_tdata * table_data,
+                           char *snmpTargetAddrName,
+                           size_t snmpTargetAddrName_len)
+{
+    tlstmAddrTable_entry *entry;
+    netsnmp_tdata_row *row;
+
+    if (snmpTargetAddrName_len > sizeof(entry->snmpTargetAddrName))
+        return NULL;
+
+    entry = SNMP_MALLOC_TYPEDEF(tlstmAddrTable_entry);
+    if (!entry)
+        return NULL;
+
+    row = netsnmp_tdata_create_row();
+    if (!row) {
+        SNMP_FREE(entry);
+        return NULL;
+    }
+    row->data = entry;
+
+    DEBUGIF("tlstmAddrTable:entry:create") {
+        char name[sizeof(entry->snmpTargetAddrName)+1];
+        snprintf(name, sizeof(name), "%s", snmpTargetAddrName);
+        DEBUGMSGT(("tlstmAddrTable:entry:create", "entry %s %p / row %p\n",
+                   name, entry, row));
+    }
+
+    /*
+     * populate index
+     */
+    memcpy(entry->snmpTargetAddrName, snmpTargetAddrName,
+           snmpTargetAddrName_len);
+    entry->snmpTargetAddrName_len = snmpTargetAddrName_len;
+    netsnmp_tdata_row_add_index(row, ASN_PRIV_IMPLIED_OCTET_STR,
+                                entry->snmpTargetAddrName,
+                                snmpTargetAddrName_len);
+
+    /*
+     * defaults
+     */
+    entry->tlstmAddrServerFingerprint[0] = '\0';
+    entry->tlstmAddrServerFingerprint_len = 0;
+    entry->hashType = 0;
+    entry->tlstmAddrServerIdentity[0] = '\0';
+    entry->tlstmAddrServerIdentity_len = 0;
+    entry->tlstmAddrStorageType = ST_NONVOLATILE;
+    entry->tlstmAddrRowStatus = RS_NOTREADY;
+
+    if (table_data) {
+        DEBUGMSGTL(("tlstmAddrTable:row:insert", "row %p\n",row));
+        netsnmp_tdata_add_row(table_data, row);
+    }
+    return row;
+}
+
+/*
+ * allocate undo resources 
+ */
+static tlstmAddrTable_undo *
+_allocUndo(tlstmAddrTable_entry * entry)
+{
+    if (!entry)
+        return NULL;
+
+    entry->undo = SNMP_MALLOC_TYPEDEF(tlstmAddrTable_undo);
+    if (!entry->undo)
+        return NULL;
+
+    entry->undo->is_consistent = -1;    /* don't know */
+
+    return entry->undo;
+}
+
+/*
+ * free undo resources 
+ */
+static void
+_freeUndo(tlstmAddrTable_entry * entry)
+{
+    if (!entry || !entry->undo)
+        return;
+
+    SNMP_FREE(entry->undo);
+}
+
+/*
+ * remove a row from the table 
+ */
+void
+tlstmAddrTable_removeEntry(netsnmp_tdata * table_data,
+                           netsnmp_tdata_row * row)
+{
+    tlstmAddrTable_entry *entry;
+
+    if (!row)
+        return;                 /* Nothing to remove */
+
+    entry = (tlstmAddrTable_entry *) row->data;
+
+    if (table_data) {
+        DEBUGMSGTL(("tlstmAddrTable:row:remove", "row %p\n",row));
+        netsnmp_tdata_remove_and_delete_row(table_data, row);
+    }
+    else
+        netsnmp_tdata_delete_row(row);
+
+    DEBUGIF("tlstmAddrTable:entry:delete") {
+        char name[sizeof(entry->snmpTargetAddrName)+1];
+        snprintf(name, sizeof(name), "%s", entry->snmpTargetAddrName);
+        DEBUGMSGT(("tlstmAddrTable:entry:delete", "entry %s %p / row %p\n",
+                   name, entry, row));
+    }
+    if (entry && entry->undo)
+        _freeUndo(entry);
+    SNMP_FREE(entry);
+}
+
+
+/***********************************************************************
+ *
+ * PERSISTENCE
+ *
+ ***********************************************************************/
+/** handles requests for the tlstmAddrTable table */
+static int
+tlstmAddrTable_handler(netsnmp_mib_handler *handler,
+                       netsnmp_handler_registration *reginfo,
+                       netsnmp_agent_request_info *reqinfo,
+                       netsnmp_request_info *requests)
+{
+
+    netsnmp_request_info *request = NULL;
+    netsnmp_table_request_info *table_info;
+    netsnmp_tdata  *table_data;
+    netsnmp_tdata_row *table_row;
+    tlstmAddrTable_entry *table_entry;
+    int             ret = SNMP_ERR_NOERROR;
+
+    DEBUGMSGTL(("tlstmAddrTable:handler", "Processing mode %s (%d) request\n",
+                se_find_label_in_slist("agent_mode", reqinfo->mode),
+                reqinfo->mode));
+
+    switch (reqinfo->mode) {
+    /** ######################################################### GET #####
+     *
+     *   Read-support (also covers GetNext requests)
+     */
+    case MODE_GET:
+        for (request = requests; request; request = request->next) {
+            if (request->processed)
+                continue;
+
+            table_entry = (tlstmAddrTable_entry *)
+                netsnmp_tdata_extract_entry(request);
+            table_info = netsnmp_extract_table_info(request);
+            switch (table_info->colnum) {
+            case COLUMN_SNMPTLSTMADDRSERVERFINGERPRINT:
+            {
+                u_char bin[42], *ptr = bin;
+                size_t len = sizeof(bin), offset = 1;
+                int    rc;
+
+                if ((table_entry->hashType == 0) ||
+                    (table_entry->tlstmAddrServerFingerprint_len ==0))
+                    offset = 0;
+                else {
+                    bin[0] = table_entry->hashType;
+                    rc = netsnmp_hex_to_binary(
+                        &ptr, &len, &offset, 0,
+                        table_entry->tlstmAddrServerFingerprint, NULL);
+                    if (1 != rc)
+                        ret = SNMP_ERR_GENERR;
+                }
+                if (ret == SNMP_ERR_NOERROR)
+                    snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,
+                                             bin, offset);
+            }
+                break;          /* case COLUMN_SNMPTLSTMADDRSERVERFINGERPRINT */
+            case COLUMN_SNMPTLSTMADDRSERVERIDENTITY:
+                snmp_set_var_typed_value
+                    (request->requestvb, ASN_OCTET_STR,
+                     (u_char *) table_entry->tlstmAddrServerIdentity,
+                     table_entry->tlstmAddrServerIdentity_len);
+                break;          /* case COLUMN_SNMPTLSTMADDRSERVERIDENTITY */
+            case COLUMN_SNMPTLSTMADDRSTORAGETYPE:
+                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
+                                           table_entry->tlstmAddrStorageType);
+                break;          /* case COLUMN_SNMPTLSTMADDRSTORAGETYPE */
+            case COLUMN_SNMPTLSTMADDRROWSTATUS:
+                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
+                                           table_entry->tlstmAddrRowStatus);
+                break;          /* case COLUMN_SNMPTLSTMADDRROWSTATUS */
+            default:
+                netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT);
+                break;
+            }                   /* switch colnum */
+        }                       /* for requests */
+        break;                  /* case MODE_GET */
+
+        /*
+         * Write-support
+         */
+    /** #################################################### RESERVE1 #####
+     *
+     *   In RESERVE1 we are just checking basic ASN.1 size/type restrictions.
+     * You probably don't need to change any of this code. Don't change any
+     * of the column values here. Save that for the ACTION phase.
+     *
+     *   The next phase is RESERVE2 or FREE.
+     */
+    case MODE_SET_RESERVE1:
+        for (request = requests; request; request = request->next) {
+            table_entry = (tlstmAddrTable_entry *)
+                netsnmp_tdata_extract_entry(request);
+            table_info = netsnmp_extract_table_info(request);
+
+            if ((NULL != table_entry) &&
+                (ST_READONLY == table_entry->tlstmAddrStorageType)) {
+                ret = SNMP_ERR_NOTWRITABLE;
+                break;
+            }
+
+            switch (table_info->colnum) {
+            case COLUMN_SNMPTLSTMADDRSERVERFINGERPRINT:
+                ret = netsnmp_check_vb_type_and_max_size
+                    (request->requestvb, ASN_OCTET_STR,
+                     sizeof(table_entry->tlstmAddrServerFingerprint));
+                /** check len/algorithm MIB requirements */
+                if (ret == SNMP_ERR_NOERROR)
+                    ret = netsnmp_cert_check_vb_fingerprint(request->requestvb);
+                break;          /* case COLUMN_SNMPTLSTMADDRSERVERFINGERPRINT */
+            case COLUMN_SNMPTLSTMADDRSERVERIDENTITY:
+                ret = netsnmp_check_vb_type_and_max_size
+                    (request->requestvb, ASN_OCTET_STR,
+                     sizeof(table_entry->tlstmAddrServerIdentity));
+                break;          /* case COLUMN_SNMPTLSTMADDRSERVERIDENTITY */
+            case COLUMN_SNMPTLSTMADDRSTORAGETYPE:
+                ret = netsnmp_check_vb_storagetype
+                    (request->requestvb,
+                     (table_entry ?
+                      table_entry->tlstmAddrStorageType : ST_NONE));
+                break;          /* case COLUMN_SNMPTLSTMADDRSTORAGETYPE */
+            case COLUMN_SNMPTLSTMADDRROWSTATUS:
+                ret = netsnmp_check_vb_rowstatus_with_storagetype
+                    (request->requestvb,
+                     (table_entry ?
+                      table_entry->tlstmAddrRowStatus : RS_NONEXISTENT),
+                     (table_entry ?
+                      table_entry->tlstmAddrStorageType : ST_NONE));
+                break;          /* case COLUMN_SNMPTLSTMADDRROWSTATUS */
+            default:
+                ret = SNMP_ERR_NOTWRITABLE;
+            }                   /* switch colnum */
+
+            if (ret != SNMP_ERR_NOERROR)
+                break;
+        }                       /* for requests */
+        break;                  /* case MODE_SET_RESERVE1 */
+
+    /** #################################################### RESERVE2 #####
+     *
+     *   RESERVE2 is for checking additional restrictions from the MIB.
+     * Since these restrictions are often in the description of the object,
+     * mib2c can't generate code. It's possible that you need to add
+     * additional checks here. However, don't change any of the column
+     * values here. Save that for the ACTION phase.
+     *
+     *   The next phase is ACTION or FREE.
+     */
+    case MODE_SET_RESERVE2:
+        for (request = requests; request; request = request->next) {
+            table_entry = (tlstmAddrTable_entry *)
+                netsnmp_tdata_extract_entry(request);
+            table_data = netsnmp_tdata_extract_table(request);
+            table_info = netsnmp_extract_table_info(request);
+            /*
+             * if no table_row, create one
+             */
+            if (!table_entry) {
+                table_row = tlstmAddrTable_createEntry
+                    (table_data, (char*)table_info->indexes->val.string,
+                     table_info->indexes->val_len);
+                if (!table_row) {
+                    ret = SNMP_ERR_RESOURCEUNAVAILABLE;
+                    break;
+                }
+                table_entry = table_row->data;
+                _allocUndo(table_entry);
+                if (table_entry && !table_entry->undo) {
+                    tlstmAddrTable_removeEntry(table_data, table_row);
+                    table_row = NULL;
+                    ret = SNMP_ERR_RESOURCEUNAVAILABLE;
+                    break;
+                }
+                table_entry->undo->fate = FATE_NEWLY_CREATED;
+                /** associate row with requests */
+                netsnmp_insert_tdata_row(request, table_row);
+            }
+
+            /** allocate undo structure, if needed */
+            if (!table_entry->undo) {
+                _allocUndo(table_entry);
+                if (!table_entry->undo) {
+                    ret = SNMP_ERR_RESOURCEUNAVAILABLE;
+                    break;
+                }
+            }
+
+            /** don't allow multiple sets of same column */
+            if (table_entry->undo->req[table_info->colnum]) {
+                DEBUGMSGT(("tlstmAddrTable:reserve2",
+                           "multiple sets to col %d in request\n",
+                           table_info->colnum));
+                ret = SNMP_ERR_INCONSISTENTNAME;
+                break;
+            }
+            table_entry->undo->req[table_info->colnum] = request;
+
+            if (ret != SNMP_ERR_NOERROR)
+                break;
+        }                       /* for requests */
+
+        /** make sure rowstatus is used to create rows */
+        if (ret == SNMP_ERR_NOERROR) {
+            for (request = requests; request; request = request->next) {
+                if (request->processed)
+                    continue;
+
+                table_entry = (tlstmAddrTable_entry *)
+                    netsnmp_tdata_extract_entry(request);
+                if ((table_entry->undo->fate != FATE_NEWLY_CREATED) ||
+                    (table_entry->undo->req[COLUMN_SNMPTLSTMADDRROWSTATUS]))
+                    continue;
+                ret = SNMP_ERR_INCONSISTENTNAME;
+                break;
+            }                   /* for requests / creation */
+        }                       /* if no error */
+        break;                  /* case MODE_SET_RESERVE2 */
+
+    /** ######################################################## FREE #####
+     *
+     *   FREE is for cleaning up after a failed request (during either
+     * RESERVE1 or RESERVE2). So any allocated resources need to be
+     * released.
+     *
+     *   This the final phase for this path in the state machine.
+     */
+    case MODE_SET_FREE:
+        /*
+         * release undo resources,  remove any newly created rows
+         */
+        for (request = requests; request; request = request->next) {
+            table_row = netsnmp_tdata_extract_row(request);
+            table_data  =  netsnmp_tdata_extract_table(request);
+            table_entry =
+                (tlstmAddrTable_entry *) table_row ? table_row->
+                data : NULL;
+
+            if (!table_entry || !table_entry->undo)
+                continue;
+
+            /** disassociate row with requests */
+            netsnmp_remove_tdata_row(request, table_row);
+
+            if (FATE_NEWLY_CREATED == table_entry->undo->fate)
+                tlstmAddrTable_removeEntry(table_data, table_row);
+            else
+                _freeUndo(table_entry);
+        }
+        break;                  /* case MODE_SET_FREE */
+
+    /** ###################################################### ACTION #####
+     *
+     *   In the ACTION phase, we perform any sets that can be undone.
+     * (Save anything that can't be undone for the COMMIT phase.)
+     *
+     *   After individual columns have been done, you should check that the
+     * row as a whole is consistent.
+     *
+     * The next phase is UNDO or COMMIT.
+     */
+    case MODE_SET_ACTION:
+        for (request = requests; request; request = request->next) {
+            table_entry = (tlstmAddrTable_entry *)
+                netsnmp_tdata_extract_entry(request);
+            table_info = netsnmp_extract_table_info(request);
+
+            switch (table_info->colnum) {
+            case COLUMN_SNMPTLSTMADDRSERVERFINGERPRINT:
+            {
+                u_char *tmp = (u_char*)table_entry->tlstmAddrServerFingerprint;
+
+                memcpy(table_entry->undo->tlstmAddrServerFingerprint,
+                       table_entry->tlstmAddrServerFingerprint,
+                       sizeof(table_entry->tlstmAddrServerFingerprint));
+                table_entry->undo->tlstmAddrServerFingerprint_len =
+                    table_entry->tlstmAddrServerFingerprint_len;
+                table_entry->undo->hashType = table_entry->hashType;
+
+                table_entry->hashType = request->requestvb->val.string[0];
+                table_entry->tlstmAddrServerFingerprint_len =
+                    sizeof(table_entry->tlstmAddrServerFingerprint);
+                memset(table_entry->tlstmAddrServerFingerprint, 0,
+                       sizeof(table_entry->tlstmAddrServerFingerprint));
+                table_entry->tlstmAddrServerFingerprint_len =
+                    netsnmp_binary_to_hex(&tmp, &table_entry->tlstmAddrServerFingerprint_len,
+                                          0, &request->requestvb->val.string[1],
+                                          request->requestvb->val_len - 1);
+                if (0 == table_entry->tlstmAddrServerFingerprint_len)
+                    ret = SNMP_ERR_GENERR;
+            }
+                break;          /* case COLUMN_SNMPTLSTMADDRSERVERFINGERPRINT */
+            case COLUMN_SNMPTLSTMADDRSERVERIDENTITY:
+                memcpy(table_entry->undo->tlstmAddrServerIdentity,
+                       table_entry->tlstmAddrServerIdentity,
+                       sizeof(table_entry->tlstmAddrServerIdentity));
+                table_entry->undo->tlstmAddrServerIdentity_len =
+                    table_entry->tlstmAddrServerIdentity_len;
+                memset(table_entry->tlstmAddrServerIdentity, 0,
+                       sizeof(table_entry->tlstmAddrServerIdentity));
+                memcpy(table_entry->tlstmAddrServerIdentity,
+                       request->requestvb->val.string,
+                       request->requestvb->val_len);
+                table_entry->tlstmAddrServerIdentity_len =
+                    request->requestvb->val_len;
+                break;          /* case COLUMN_SNMPTLSTMADDRSERVERIDENTITY */
+            case COLUMN_SNMPTLSTMADDRSTORAGETYPE:
+                table_entry->undo->tlstmAddrStorageType =
+                    table_entry->tlstmAddrStorageType;
+                table_entry->tlstmAddrStorageType =
+                    *request->requestvb->val.integer;
+                break;          /* case COLUMN_SNMPTLSTMADDRSTORAGETYPE */
+            case COLUMN_SNMPTLSTMADDRROWSTATUS:
+                table_entry->undo->tlstmAddrRowStatus =
+                    table_entry->tlstmAddrRowStatus;
+                table_entry->tlstmAddrRowStatus =
+                    *request->requestvb->val.integer;
+                break;          /* case COLUMN_SNMPTLSTMADDRROWSTATUS */
+            }                   /* switch colnum */
+            if (ret != SNMP_ERR_NOERROR)
+                break;
+        }                       /* set values for requests */
+
+        if (ret == SNMP_ERR_NOERROR) {
+
+            /*
+             * All columns now have their final values set. check the
+             * internal consistency of each row.
+             */
+            for (request = requests; request; request = request->next) {
+                table_entry = (tlstmAddrTable_entry *)
+                    netsnmp_tdata_extract_entry(request);
+                table_info = netsnmp_extract_table_info(request);
+
+                if (table_entry->undo->is_consistent != -1)
+                    continue;   /* already checked */
+
+                /** assume consistency */
+                table_entry->undo->is_consistent = 1;
+
+                /*
+                 * per mib, can't have empty fingerprint and wildcard id
+                 */
+                if ( (0 == table_entry->tlstmAddrServerFingerprint_len) &&
+                     (1 == table_entry->tlstmAddrServerIdentity_len) &&
+                     ('*' == table_entry->tlstmAddrServerIdentity[0]) ) {
+                    DEBUGMSGTL(("tlstmAddrTable", "fingerprint must not "
+                                "be empty for wildcard (*) identity\n"));
+                    table_entry->undo->is_consistent = 0;
+                }
+                
+                if ((RS_IS_ACTIVE(table_entry->tlstmAddrRowStatus)) &&
+                    ((!table_entry->undo->req[COLUMN_SNMPTLSTMADDRROWSTATUS]) ||
+                     (RS_IS_ACTIVE(table_entry->undo->tlstmAddrRowStatus)))) {
+                    /*
+                     * check mib restrictions on active rows.
+                     */
+                    if (table_entry->undo->req[COLUMN_SNMPTLSTMADDRSERVERFINGERPRINT]) {
+                        table_entry->undo->is_consistent = 0;
+                        request = table_entry->undo->req[COLUMN_SNMPTLSTMADDRSERVERFINGERPRINT];
+                    }
+                    else if (table_entry->undo->req[COLUMN_SNMPTLSTMADDRSERVERIDENTITY]) {
+                        table_entry->undo->is_consistent = 0;
+                        request = table_entry->undo->req[COLUMN_SNMPTLSTMADDRSERVERIDENTITY];
+                    }
+                    else if (table_entry->undo->req[COLUMN_SNMPTLSTMADDRSTORAGETYPE]) {
+                        table_entry->undo->is_consistent = 0;
+                        request = table_entry->undo->req[COLUMN_SNMPTLSTMADDRSTORAGETYPE];
+                    }
+                    
+                    if (!table_entry->undo->is_consistent)
+                        ret = SNMP_ERR_INCONSISTENTVALUE; /* per mib */
+                } /* active row */
+                else if (RS_IS_GOING_ACTIVE
+                         (table_entry->tlstmAddrRowStatus)) {
+                    /** if going active, inconsistency is fatal */
+                    if (!table_entry->undo->is_consistent) {
+                        if (FATE_NEWLY_CREATED == table_entry->undo->fate)
+                            ret = SNMP_ERR_INCONSISTENTNAME;
+                        else
+                            ret = SNMP_ERR_INCONSISTENTVALUE;
+                        request = table_entry->undo->req[COLUMN_SNMPTLSTMADDRROWSTATUS];
+                    }
+                } /* going active */
+                else if (RS_DESTROY == table_entry->tlstmAddrRowStatus) {
+                    /** can't delete active row */
+                    if (RS_IS_ACTIVE(table_entry->undo->tlstmAddrRowStatus)) {
+                        ret = SNMP_ERR_INCONSISTENTVALUE;
+                        request = table_entry->undo->req[COLUMN_SNMPTLSTMADDRROWSTATUS];
+                    }
+                }               /* destroy */
+                if (ret != SNMP_ERR_NOERROR)
+                    break;
+            }                   /* consistency for requests */
+        }                       /* if no error */
+        break;                  /* case MODE_SET_ACTION */
+
+    /** ######################################################## UNDO #####
+     *
+     *   UNDO is for cleaning up any failed requests that went through the
+     * ACTION phase.
+     *
+     *   This the final phase for this path in the state machine.
+     */
+    case MODE_SET_UNDO:
+        for (request = requests; request; request = request->next) {
+            table_row = netsnmp_tdata_extract_row(request);
+            table_entry =
+                (tlstmAddrTable_entry *) table_row ? table_row->
+                data : NULL;
+            table_data = netsnmp_tdata_extract_table(request);
+            table_info = netsnmp_extract_table_info(request);
+
+            switch (table_info->colnum) {
+            case COLUMN_SNMPTLSTMADDRSERVERFINGERPRINT:
+                /*
+                 * restore tlstmAddrServerFingerprint value 
+                 */
+                memcpy(table_entry->tlstmAddrServerFingerprint,
+                       table_entry->undo->tlstmAddrServerFingerprint,
+                       sizeof(table_entry->tlstmAddrServerFingerprint));
+                table_entry->tlstmAddrServerFingerprint_len =
+                    table_entry->undo->tlstmAddrServerFingerprint_len;
+                table_entry->hashType = table_entry->undo->hashType;
+                break;          /* case COLUMN_SNMPTLSTMADDRSERVERFINGERPRINT */
+            case COLUMN_SNMPTLSTMADDRSERVERIDENTITY:
+                /*
+                 * restore tlstmAddrServerIdentity value 
+                 */
+                memcpy(table_entry->tlstmAddrServerIdentity,
+                       table_entry->undo->tlstmAddrServerIdentity,
+                       sizeof(table_entry->tlstmAddrServerIdentity));
+                table_entry->tlstmAddrServerIdentity_len =
+                    table_entry->undo->tlstmAddrServerIdentity_len;
+                break;          /* case COLUMN_SNMPTLSTMADDRSERVERIDENTITY */
+            case COLUMN_SNMPTLSTMADDRSTORAGETYPE:
+                /*
+                 * restore tlstmAddrStorageType value 
+                 */
+                table_entry->tlstmAddrStorageType =
+                    table_entry->undo->tlstmAddrStorageType;
+                break;          /* case COLUMN_SNMPTLSTMADDRSTORAGETYPE */
+            case COLUMN_SNMPTLSTMADDRROWSTATUS:
+                /*
+                 * restore tlstmAddrRowStatus value 
+                 */
+                table_entry->tlstmAddrRowStatus =
+                    table_entry->undo->tlstmAddrRowStatus;
+                break;          /* case COLUMN_SNMPTLSTMADDRROWSTATUS */
+            }                   /* switch colnum */
+        }                       /* for requests */
+
+        /*
+         * release undo data
+         * or remove any newly created rows
+         */
+        for (request = requests; request; request = request->next) {
+            table_row = netsnmp_tdata_extract_row(request);
+            table_entry =
+                (tlstmAddrTable_entry *) table_row ? table_row->
+                data : NULL;
+
+            if (!table_entry || !table_entry->undo)
+                continue;
+
+            /** disassociate row with requests */
+            netsnmp_remove_tdata_row(request, table_row);
+
+            if (FATE_NEWLY_CREATED == table_entry->undo->fate)
+                tlstmAddrTable_removeEntry(table_data, table_row);
+            else
+                _freeUndo(table_entry);
+        }                       /* for requests */
+        break;                  /* case MODE_SET_UNDO */
+
+    /** ###################################################### COMMIT #####
+     *
+     *   COMMIT is the final success state, when all changes are finalized.
+     * There is not recovery state should something faile here.
+     *
+     *   This the final phase for this path in the state machine.
+     */
+    case MODE_SET_COMMIT:
+        for (request = requests; request; request = request->next) {
+            table_row = netsnmp_tdata_extract_row(request);
+            table_data = netsnmp_tdata_extract_table(request);
+            table_info = netsnmp_extract_table_info(request);
+            table_entry = (tlstmAddrTable_entry *)
+                netsnmp_tdata_extract_entry(request);
+
+            if (!table_entry || !table_entry->undo)
+                continue;
+
+            if ((RS_NOTREADY == table_entry->tlstmAddrRowStatus) &&
+                table_entry->undo->is_consistent)
+                table_entry->tlstmAddrRowStatus = RS_NOTINSERVICE;
+            else if ((RS_NOTINSERVICE == table_entry->tlstmAddrRowStatus) &&
+                     (0 == table_entry->undo->is_consistent))
+                table_entry->tlstmAddrRowStatus = RS_NOTREADY;
+
+            /** release undo data for requests with no rowstatus */
+            if (table_entry->undo &&
+                !table_entry->undo->req[COLUMN_SNMPTLSTMADDRROWSTATUS] != 0) {
+
+                _freeUndo(table_entry);
+
+                /** update active addrs */
+                if ((0 == table_entry->addr_flags) &&
+                    (table_entry->tlstmAddrRowStatus == RS_ACTIVE))
+                    _addrs_add(table_entry);
+                else if ((0 != table_entry->addr_flags) &&
+                         (table_entry->tlstmAddrRowStatus == RS_DESTROY))
+                    _addrs_remove(table_entry);
+            }
+
+            switch (table_info->colnum) {
+                case COLUMN_SNMPTLSTMADDRROWSTATUS:
+                    switch (table_entry->tlstmAddrRowStatus) {
+                    case RS_CREATEANDGO:
+                    /** Fall-through */
+                    case RS_ACTIVE:
+                        table_entry->tlstmAddrRowStatus = RS_ACTIVE;
+                        if (0 == table_entry->addr_flags)
+                            _addrs_add(table_entry);
+                        break;
+
+                    case RS_CREATEANDWAIT:
+                        /** Fall-through */
+                    case RS_NOTINSERVICE:
+                        /** simply set status based on consistency */
+                        if (table_entry->undo->is_consistent)
+                            table_entry->tlstmAddrRowStatus =
+                                RS_NOTINSERVICE;
+                        else
+                            table_entry->tlstmAddrRowStatus = RS_NOTREADY;
+                        if (0 != table_entry->addr_flags)
+                            _addrs_remove(table_entry);
+                        break;
+
+                    case RS_DESTROY:
+                        if (0 != table_entry->addr_flags)
+                            _addrs_remove(table_entry);
+                        /** disassociate row with requests */
+                        netsnmp_remove_tdata_row(request, table_row);
+                        tlstmAddrTable_removeEntry(table_data, table_row);
+                        table_row = NULL;
+                        table_entry = NULL;
+                    }
+                    /** release undo data */
+                    _freeUndo(table_entry);
+                    break;      /* case COLUMN_SNMPTLSTMADDRROWSTATUS */
+
+                case COLUMN_SNMPTLSTMADDRSTORAGETYPE:
+                    if (RS_ACTIVE == table_entry->tlstmAddrRowStatus)
+                        _addr_tweak_storage(table_entry);
+                    break;
+
+                case COLUMN_SNMPTLSTMADDRSERVERFINGERPRINT:
+                case COLUMN_SNMPTLSTMADDRSERVERIDENTITY:
+                    break;
+                }               /* switch colnum */
+        }                       /* for requests */
+
+        /** update last changed */
+        _last_changed = netsnmp_get_agent_uptime();
+
+        /** set up to save persistent store */
+        snmp_store_needed(NULL);
+
+        break;                  /* case MODE_SET_COMMIT */
+    }                           /* switch (reqinfo->mode) */
+
+    if (ret != SNMP_ERR_NOERROR)
+        netsnmp_set_request_error(reqinfo, request, ret);
+
+    return SNMP_ERR_NOERROR;
+}
+
+/***********************************************************************
+ *
+ * PERSISTENCE
+ *
+ ***********************************************************************/
+static int
+_count_handler(netsnmp_mib_handler *handler,
+               netsnmp_handler_registration *reginfo,
+               netsnmp_agent_request_info *reqinfo,
+               netsnmp_request_info *requests)
+{
+    int                val;
+
+    if (MODE_GET != reqinfo->mode) {
+        snmp_log(LOG_ERR, "bad mode in RO handler");
+        return SNMP_ERR_GENERR;
+    }
+
+    if ((NULL == _table_data) || (NULL == _table_data->container))
+        val = 0;
+    else
+        val = CONTAINER_SIZE(_table_data->container);
+
+    snmp_set_var_typed_value(requests->requestvb, ASN_GAUGE,
+                             (u_char *) &val, sizeof(val));
+   
+    if (handler->next && handler->next->access_method)
+        return netsnmp_call_next_handler(handler, reginfo, reqinfo,
+                                         requests);
+    
+    return SNMP_ERR_NOERROR;
+}
+
+/** **************************************************************************
+ *
+ * handle cache / interactions with tlstmAddr container in snmplib
+ *
+ ** *************************************************************************/
+static void
+_addrs_add(tlstmAddrTable_entry *entry)
+{
+    netsnmp_container *addrs;
+    snmpTlstmAddr     *addr;
+
+    if (NULL == entry)
+        return;
+
+    DEBUGMSGTL(("tlstmAddrTable:addrs:add", "name %s, fp %s\n",
+                entry->snmpTargetAddrName, entry->tlstmAddrServerFingerprint));
+
+    /** get current active addrs */
+    addrs = netsnmp_tlstmAddr_container();
+    if (NULL == addrs)
+        return;
+
+    addr = netsnmp_tlstmAddr_create(entry->snmpTargetAddrName);
+    if (NULL == addr)
+        return;
+
+    if (entry->tlstmAddrServerFingerprint_len)
+        addr->fingerprint = strdup(entry->tlstmAddrServerFingerprint);
+    if (entry->tlstmAddrServerIdentity_len)
+        addr->identity = strdup(entry->tlstmAddrServerIdentity);
+    addr->hashType = entry->hashType;
+
+    addr->flags = TLSTM_ADDR_FROM_MIB;
+    if (entry->tlstmAddrStorageType == ST_NONVOLATILE)
+        addr->flags |= TLSTM_ADDR_NONVOLATILE;
+
+    if (CONTAINER_INSERT(addrs, addr) != 0) {
+        netsnmp_tlstmAddr_free(addr);
+        snmp_log(LOG_ERR, "could not insert new tlstm addr");
+    }
+}
+
+static void
+_addrs_remove(tlstmAddrTable_entry *entry)
+{
+    netsnmp_container *addrs;
+    snmpTlstmAddr      addr;
+
+    if (NULL == entry)
+        return;
+
+    DEBUGMSGTL(("tlstmAddrTable:addr:remove", "name %s, fp %s\n",
+                entry->snmpTargetAddrName, entry->tlstmAddrServerFingerprint));
+
+    /** get current active addrs */
+    addrs = netsnmp_tlstmAddr_container();
+    if (NULL == addrs)
+        return;
+
+    addr.name = entry->snmpTargetAddrName;
+    if (CONTAINER_REMOVE(addrs, &addr) != 0) {
+        snmp_log(LOG_ERR, "could not remove tlstm addr");
+    }
+    entry->addr_flags = 0;
+}
+
+static void
+_addr_tweak_storage(tlstmAddrTable_entry *entry)
+{
+    netsnmp_container *addrs;
+    snmpTlstmAddr     *addr, index;
+
+    if (NULL == entry)
+        return;
+
+    DEBUGMSGTL(("tlstmAddrTable:addr:tweak", "name %s, st %d\n",
+                entry->snmpTargetAddrName, entry->tlstmAddrStorageType));
+
+    /** get current active addrs */
+    addrs = netsnmp_tlstmAddr_container();
+    if (NULL == addrs)
+        return;
+
+    index.name = entry->snmpTargetAddrName;
+    addr = CONTAINER_FIND(addrs, &index);
+    if (NULL == addr) {
+        DEBUGMSGTL(("tlstmAddrTable:addr:tweak", "couldn't find addr!\n"));
+        return;
+    }
+
+    if (entry->tlstmAddrStorageType == ST_NONVOLATILE)
+        addr->flags |= TLSTM_ADDR_NONVOLATILE;
+    else
+        addr->flags &= ~TLSTM_ADDR_NONVOLATILE;
+}
+
+static netsnmp_tdata_row *
+_entry_from_addr(snmpTlstmAddr  *addr)
+{
+    netsnmp_tdata_row *row;
+    tlstmAddrTable_entry *entry;
+
+    row = tlstmAddrTable_createEntry(NULL, addr->name, strlen(addr->name));
+    if (NULL == row) {
+        snmp_log(LOG_ERR, "can create tlstmAddr row entry\n");
+        return NULL;
+    }
+    entry = row->data;
+
+    if (addr->flags & TLSTM_ADDR_FROM_CONFIG)
+        entry->tlstmAddrStorageType = ST_PERMANENT;
+    else if (! (addr->flags & TLSTM_ADDR_NONVOLATILE))
+        entry->tlstmAddrStorageType = ST_VOLATILE;
+
+    entry->tlstmAddrRowStatus = RS_ACTIVE;
+
+    if (addr->fingerprint) {
+        entry->tlstmAddrServerFingerprint_len = strlen(addr->fingerprint);
+        if (entry->tlstmAddrServerFingerprint_len >
+            sizeof(entry->tlstmAddrServerFingerprint))
+            entry->tlstmAddrServerFingerprint_len =
+                sizeof(entry->tlstmAddrServerFingerprint) - 1;
+        memcpy(entry->tlstmAddrServerFingerprint, addr->fingerprint,
+               entry->tlstmAddrServerFingerprint_len);
+        entry->tlstmAddrServerFingerprint[sizeof(entry->tlstmAddrServerFingerprint) - 1] = 0;
+    }
+
+    if (addr->identity) {
+        entry->tlstmAddrServerIdentity_len = strlen(addr->identity);
+        if (entry->tlstmAddrServerIdentity_len >
+            sizeof(entry->tlstmAddrServerIdentity))
+            entry->tlstmAddrServerIdentity_len =
+                sizeof(entry->tlstmAddrServerIdentity) - 1;
+        memcpy(entry->tlstmAddrServerIdentity, addr->identity,
+               entry->tlstmAddrServerIdentity_len);
+        entry->tlstmAddrServerIdentity[sizeof(entry->tlstmAddrServerIdentity) - 1] = 0;
+    }
+
+    entry->hashType = addr->hashType;
+    entry->addr_flags = addr->flags;
+
+    return row;
+}
+
+static int
+_cache_load(netsnmp_cache *cache, netsnmp_tdata *table)
+{
+    netsnmp_container *addrs;
+    netsnmp_iterator  *itr;
+    snmpTlstmAddr     *addr;
+    netsnmp_tdata_row *row;
+    int                rc = 0;
+
+    DEBUGMSGTL(("tlstmAddrTable:cache:load", "called, %" NETSNMP_PRIz "d rows\n",
+                CONTAINER_SIZE(table->container)));
+
+    /** get current active rows */
+    addrs = netsnmp_tlstmAddr_container();
+    if (NULL == addrs)
+        return 0;
+
+    DEBUGMSGTL(("tlstmAddrTable:cache:load", "tlstmAddr %" NETSNMP_PRIz "d rows\n",
+                CONTAINER_SIZE(addrs)));
+    itr = CONTAINER_ITERATOR(addrs);
+    if (NULL == itr) {
+        DEBUGMSGTL(("tlstmAddrTable:cache:load",
+                    "cant get iterator\n"));
+        return -1;
+    }
+
+    /*
+     * insert rows for active addrs into tbl container
+     */
+    addr = ITERATOR_FIRST(itr);
+    for( ; addr; addr = ITERATOR_NEXT(itr)) {
+
+        row = _entry_from_addr(addr);
+        if (NULL == row) {
+            rc =-1;
+            break;
+        }
+
+        if (netsnmp_tdata_add_row(table, row) != SNMPERR_SUCCESS) {
+            tlstmAddrTable_removeEntry(NULL, row);
+            rc = -1;
+            break;
+        }
+    }
+    ITERATOR_RELEASE(itr);
+
+    DEBUGMSGTL(("tlstmAddrTable:cache:load", "done, %" NETSNMP_PRIz "d rows\n",
+                CONTAINER_SIZE(table->container)));
+
+    return rc;
+}
+
+static void
+_cache_free(netsnmp_cache *cache, netsnmp_tdata *table)
+{
+    netsnmp_tdata_row *row;
+    netsnmp_iterator   *tbl_itr;
+    tlstmAddrTable_entry   *entry;
+
+    DEBUGMSGTL(("tlstmAddrTable:cache:free", "called, %" NETSNMP_PRIz "d rows\n",
+                CONTAINER_SIZE(table->container)));
+
+    tbl_itr = CONTAINER_ITERATOR(table->container);
+    if (NULL == tbl_itr) {
+        DEBUGMSGTL(("tlstmAddrTable:cache:free",
+                    "cant get entry iterator\n"));
+        return;
+    }
+
+    row = ITERATOR_FIRST(tbl_itr);
+    for( ; row; row = ITERATOR_NEXT(tbl_itr)) {
+        entry = row->data;
+
+        /*
+         * remove all active rows (they are in the addrs container kept
+         * by the library). Keep inactive ones for next time.
+         */
+        if (entry->tlstmAddrRowStatus == RS_ACTIVE) {
+            tlstmAddrTable_removeEntry(NULL, row);
+            ITERATOR_REMOVE(tbl_itr);
+            continue;
+        }
+    }
+    ITERATOR_RELEASE(tbl_itr);
+
+    DEBUGMSGTL(("tlstmAddrTable:cache:free", "done, %" NETSNMP_PRIz "d rows\n",
+                CONTAINER_SIZE(table->container)));
+}
+
+/***********************************************************************
+ *
+ * PERSISTENCE
+ *
+ ***********************************************************************/
+
+static int  _tlstmAddrTable_save_rows(int majorID, int minorID,
+                                                void *serverarg,
+                                                void *clientarg);
+static void _tlstmAddrTable_row_restore_mib(const char *token,
+                                                       char *buf);
+static const char mib_token[] = "snmpTlstmAddrEntry";
+
+/************************************************************
+ * *_init_persistence should be called from the main table
+ * init routine.
+ *
+ * If your table depends on rows in another table,
+ * you should register your callback after the other table,
+ * which should ensure the rows on which you depend are saved
+ * (and re-created) before the dependent rows.
+ */
+static void
+_tlstmAddr_init_persistence(void)
+{
+    int             rc;
+
+    if (NULL == _table_data) {
+        snmp_log(LOG_ERR, "no table data for tlstmAddr persistence!\n");
+        return;
+    }
+
+    register_config_handler(NULL, mib_token,
+                            _tlstmAddrTable_row_restore_mib, NULL,
+                            NULL);
+    rc = snmp_register_callback(SNMP_CALLBACK_LIBRARY,
+                                SNMP_CALLBACK_STORE_DATA,
+                                _tlstmAddrTable_save_rows,
+                                _table_data->container);
+
+    if (rc != SNMP_ERR_NOERROR)
+        snmp_log(LOG_ERR, "error registering for STORE_DATA callback "
+                 "in _tlstmAddrTable_init_persistence\n");
+}
+
+static int
+_save_entry(tlstmAddrTable_entry *entry, void *type)
+{
+    char   buf[SNMP_MAXBUF_SMALL], *hashType;
+
+    hashType = se_find_label_in_slist("cert_hash_alg", entry->hashType);
+    if (NULL == hashType) {
+        snmp_log(LOG_ERR, "skipping entry unknown hash type %d\n",
+                 entry->hashType);
+        return SNMP_ERR_GENERR;
+    }
+
+    /*
+     * build the line
+     */
+    netsnmp_assert(0 == entry->snmpTargetAddrName[
+                       entry->snmpTargetAddrName_len]);
+    netsnmp_assert(0 == entry->tlstmAddrServerFingerprint[
+                       entry->tlstmAddrServerFingerprint_len]);
+    snprintf(buf, sizeof(buf), "%s %s --%s %s %s %d", mib_token,
+             entry->snmpTargetAddrName, hashType,
+             entry->tlstmAddrServerFingerprint,
+             entry->tlstmAddrServerIdentity,
+             entry->tlstmAddrRowStatus);
+    buf[sizeof(buf)-1] = 0;
+
+    read_config_store(type, buf);
+    DEBUGMSGTL(("tlstmAddrTable:row:save", "saving entry '%s'\n", buf));
+
+    return SNMP_ERR_NOERROR;
+}
+
+static int
+_save_addrs(snmpTlstmAddr *addrs, void *app_type)
+{
+    char buf[SNMP_MAXBUF_SMALL], *hashType;
+
+    if (NULL == addrs)
+        return SNMP_ERR_GENERR;
+
+    hashType = se_find_label_in_slist("cert_hash_alg", addrs->hashType);
+    if (NULL == hashType) {
+        snmp_log(LOG_ERR, "skipping entry unknown hash type %d\n",
+                 addrs->hashType);
+        return SNMP_ERR_GENERR;
+    }
+    snprintf(buf, sizeof(buf), "%s %s --%s %s %s %d", mib_token, addrs->name,
+             hashType, addrs->fingerprint, addrs->identity, RS_ACTIVE);
+
+    DEBUGMSGTL(("tlstmAddrTable:addrs:save", "saving addrs '%s'\n",
+                buf));
+    read_config_store(app_type, buf);
+
+    return SNMP_ERR_NOERROR;
+}
+
+static int
+_tlstmAddrTable_save_rows(int majorID, int minorID, void *serverarg,
+                      void *clientarg)
+{
+    char            sep[] =
+        "##############################################################";
+    char            buf[] = "#\n" "# tlstmAddr persistent data\n" "#";
+    char           *type = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                                 NETSNMP_DS_LIB_APPTYPE);
+
+    netsnmp_container *mib_addrs = (netsnmp_container *) clientarg;
+    netsnmp_container *active_addrs = netsnmp_tlstmAddr_container();
+    netsnmp_iterator  *tbl_itr, *addrs_itr = NULL;
+    netsnmp_tdata_row *row;
+    snmpTlstmAddr     *addr;
+    tlstmAddrTable_entry *entry;
+
+    if (((NULL == mib_addrs) || (CONTAINER_SIZE(mib_addrs) == 0)) &&
+        ((NULL == active_addrs) || (CONTAINER_SIZE(active_addrs) == 0)))
+        return SNMPERR_SUCCESS;
+
+    read_config_store((char *) type, sep);
+    read_config_store((char *) type, buf);
+
+    /*
+     * save active rows from addr container
+     */
+    if (NULL != active_addrs) {
+        addrs_itr = CONTAINER_ITERATOR(active_addrs);
+        if (NULL == addrs_itr) {
+            DEBUGMSGTL(("tlstmAddrTable:save", "cant get addrs iterator\n"));
+            addr = NULL;
+        }
+        else
+            addr = ITERATOR_FIRST(addrs_itr);
+
+        for( ; addr; addr = ITERATOR_NEXT(addrs_itr)) {
+            /** don't store config rows */
+            if ((addr->flags & TLSTM_ADDR_FROM_CONFIG) ||
+                ! (addr->flags & TLSTM_ADDR_NONVOLATILE))
+                continue;
+            _save_addrs(addr, type);
+        }
+    }
+    ITERATOR_RELEASE(addrs_itr);
+
+    /*
+     * save inactive rows from mib
+     */
+    tbl_itr = CONTAINER_ITERATOR(mib_addrs);
+    if (NULL == tbl_itr)
+        DEBUGMSGTL(("tlstmAddrTable:save", "cant get table iterator\n"));
+    else {
+        row = ITERATOR_FIRST(tbl_itr);
+        for( ; row; row = ITERATOR_NEXT(tbl_itr)) {
+            entry = row->data;
+
+            /*
+             * skip all active rows (should be in active_addrs and thus saved
+             * above) and volatile rows.
+             */
+            if ((entry->tlstmAddrRowStatus == RS_ACTIVE) ||
+                (entry->tlstmAddrStorageType != ST_NONVOLATILE))
+                continue;
+
+            _save_entry(entry, type);
+        }
+        ITERATOR_RELEASE(tbl_itr);
+    }
+
+    read_config_store((char *) type, sep);
+    read_config_store((char *) type, "\n");
+
+    /*
+     * never fails 
+     */
+    return SNMPERR_SUCCESS;
+}
+
+static void
+_tlstmAddrTable_row_restore_mib(const char *token, char *buf)
+{
+    char                   name[SNMPADMINLENGTH + 1], id[SNMPADMINLENGTH + 1],
+                           fingerprint[SNMPTLSFINGERPRINT_MAX_LEN + 1];
+    size_t                 name_len = sizeof(name), id_len = sizeof(id),
+                           fp_len = sizeof(fingerprint);
+    u_char                 hashType, rowStatus;
+    int                    rc;
+
+    /** need somewhere to save rows */
+    netsnmp_assert(_table_data && _table_data->container); 
+
+    rc = netsnmp_tlstmAddr_restore_common(&buf, name, &name_len, id, &id_len,
+                                          fingerprint, &fp_len, &hashType);
+    if (rc < 0)
+        return;
+
+    if (NULL == buf) {
+        config_perror("incomplete line");
+        return;
+    }
+    rowStatus = atoi(buf);
+
+    /*
+     * if row is active, add it to the addrs container so it is available
+     * for use. Do not add it to the table, since it will be added
+     * during cache_load.
+     */
+    if (RS_ACTIVE == rowStatus) {
+        snmpTlstmAddr *addr;
+
+        addr = netsnmp_tlstmAddr_create(name);
+        if (!addr)
+            return;
+
+        if (fp_len)
+            addr->fingerprint = strdup(fingerprint);
+        if (id_len)
+            addr->identity = strdup(id);
+        addr->hashType = hashType;
+        addr->flags = TLSTM_ADDR_FROM_MIB | TLSTM_ADDR_NONVOLATILE;
+
+        netsnmp_tlstmAddr_add(addr);
+    }
+    else {
+        netsnmp_tdata_row     *row;
+        tlstmAddrTable_entry  *entry;
+
+        row = tlstmAddrTable_createEntry(_table_data, name, name_len);
+        if (!row)
+            return;
+
+        entry = row->data;
+        
+        entry->hashType = hashType;
+        memcpy(entry->tlstmAddrServerFingerprint,fingerprint, fp_len);
+        entry->tlstmAddrServerFingerprint_len = fp_len;
+        memcpy(entry->tlstmAddrServerIdentity, id, id_len);
+        entry->tlstmAddrServerIdentity_len = id_len;
+        entry->tlstmAddrStorageType = ST_NONVOLATILE;
+        entry->tlstmAddrRowStatus = rowStatus;
+    }
+}
diff --git a/agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h b/agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h
new file mode 100644
index 0000000..8c0b80a
--- /dev/null
+++ b/agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h
@@ -0,0 +1,37 @@
+/*
+ * Note: this file originally auto-generated by mib2c using
+ *  : mib2c.table_data.conf 15999 2007-03-25 22:32:02Z dts12 $
+ */
+#ifndef SNMPTLSTMADDRTABLE_H
+#define SNMPTLSTMADDRTABLE_H
+
+#define SNMP_TLS_TM_ADDR_COUNT    SNMP_TLS_TM_BASE, 2, 2, 1, 7
+#define SNMP_TLS_TM_ADDR_CHANGED  SNMP_TLS_TM_BASE, 2, 2, 1, 8
+#define SNMP_TLS_TM_ADDR_TABLE    SNMP_TLS_TM_BASE, 2, 2, 1, 9
+
+/*
+ * function declarations 
+ */
+void            init_snmpTlstmAddrTable(void);
+
+/*
+ * index definitions for table tlstmAddrTable 
+ */
+#define SNMPTARGETADDRNAME_MAX_SIZE  255
+
+/*
+ * column number definitions for table tlstmAddrTable 
+ */
+#define COLUMN_SNMPTLSTMADDRSERVERFINGERPRINT       1
+#define COLUMN_SNMPTLSTMADDRSERVERIDENTITY          2
+#define COLUMN_SNMPTLSTMADDRSTORAGETYPE             3
+#define COLUMN_SNMPTLSTMADDRROWSTATUS               4
+
+#define TLSTMADDRTABLE_MIN_COLUMN         COLUMN_SNMPTLSTMADDRSERVERFINGERPRINT
+#define TLSTMADDRTABLE_MAX_COLUMN         COLUMN_SNMPTLSTMADDRROWSTATUS
+
+#define TLSTMADDRSERVERFINGERPRINT_MAX_SIZE      255
+#define TLSTMADDRSERVERIDENTITY_MAX_SIZE         255
+
+
+#endif                          /* SNMPTLSTMADDRTABLE_H */
diff --git a/agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable.h b/agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable.h
new file mode 100644
index 0000000..ebfa0ec
--- /dev/null
+++ b/agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable.h
@@ -0,0 +1,6 @@
+#ifndef SNMPTLSTMCERTTOTSNTABLE_H
+#define SNMPTLSTMCERTTOTSNTABLE_H
+
+config_require(tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable)
+
+#endif                          /* SNMPTLSTMCERTTOTSNTABLE_H */
diff --git a/agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c b/agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c
new file mode 100644
index 0000000..3f79197
--- /dev/null
+++ b/agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.c
@@ -0,0 +1,1363 @@
+/*
+ * Note: this file originally auto-generated by mib2c using
+ *  $
+ */
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <openssl/ssl.h>
+#include <openssl/x509.h>
+#include <net-snmp/library/cert_util.h>
+#include "tlstm-mib.h"
+#include "snmpTlstmCertToTSNTable.h"
+
+/** XXX - move these to table_data header? */
+#define FATE_NEWLY_CREATED    1
+#define FATE_NO_CHANGE        0
+#define FATE_DELETE_ME        -1
+
+#define MAP_MIB_CONFIG_TOKEN "snmpTlstmCertToTSNEntry"
+
+extern netsnmp_cert_map *netsnmp_certToTSN_parse_common(char **line);
+
+
+    /*
+     * structure for undo storage and other vars for set processing 
+     */
+typedef struct certToTSN_undo_s {
+    char            fate;
+    char            copied;
+    char            is_consistent;
+    netsnmp_request_info *req[SNMPTLSTMCERTTOTSN_TABLE_MAX_COL+1];
+
+    /*
+     * undo Column space 
+     */
+    char            fingerprint[SNMPTLSTMCERTTOTSN_FINGERPRINT_MAX_SIZE];
+    size_t          fingerprint_len;
+    int             mapType;
+    char            data[SNMPTLSTMCERTTOTSN_DATA_MAX_SIZE];
+    size_t          data_len;
+    u_char          hashType;
+    char            storageType;
+    char            rowStatus;
+} certToTSN_undo;
+
+    /*
+     * Typical data structure for a row entry 
+     */
+typedef struct certToTSN_entry_s {
+    /*
+     * Index values 
+     */
+    u_long          tlstmCertToTSNID;
+
+    /*
+     * Column values 
+     */
+    char            fingerprint[SNMPTLSTMCERTTOTSN_FINGERPRINT_MAX_SIZE];
+    size_t          fingerprint_len;
+    int             mapType;
+    char            data[SNMPTLSTMCERTTOTSN_DATA_MAX_SIZE];
+    size_t          data_len;
+    char            storageType;
+    char            rowStatus;
+    u_char          hashType;
+    char            map_flags;
+
+    /*
+     * used during set processing 
+     */
+    certToTSN_undo *undo;
+} certToTSN_entry;
+
+static Netsnmp_Node_Handler tlstmCertToTSNTable_handler;
+static oid _oid2type(oid *val, int val_len);
+/** static int _type2oid(int type, oid *val, int *val_len); */
+static int _cache_load(netsnmp_cache *cache, netsnmp_tdata *table);
+static void _cache_free(netsnmp_cache *cache, netsnmp_tdata *table);
+static void _cert_map_add(certToTSN_entry *entry);
+static void _cert_map_remove(certToTSN_entry *entry);
+static int _count_handler(netsnmp_mib_handler *handler,
+                          netsnmp_handler_registration *reginfo,
+                          netsnmp_agent_request_info *reqinfo,
+                          netsnmp_request_info *requests);
+static void _parse_mib_maps(const char *token, char *line);
+static int _save_maps(int majorID, int minorID, void *server, void *client);
+static int _save_map(netsnmp_cert_map *map, int row_status, void *type);
+static void _cert_map_tweak_storage(certToTSN_entry *entry);
+
+static netsnmp_tdata *_table = NULL;
+static uint32_t _last_changed = 0;
+
+
+/** Initializes the tlstmCertToTSNTable module */
+void
+init_snmpTlstmCertToTSNTable(void)
+{
+    init_snmpTlstmCertToTSNTable_context(NULL);
+}
+
+void
+init_snmpTlstmCertToTSNTable_context(const char *contextName)
+{
+    oid             reg_oid[]   =  { SNMP_TLS_TM_CERT_TABLE };
+    const size_t    reg_oid_len =  OID_LENGTH(reg_oid);
+    netsnmp_handler_registration    *reg;
+    netsnmp_table_registration_info *info;
+    netsnmp_cache                   *cache;
+    netsnmp_watcher_info            *watcher;
+    const char *mib_map_help = 
+        MAP_MIB_CONFIG_TOKEN " table persistence (internal use)";
+
+    DEBUGMSGTL(("tlstmCertToSN:init",
+                "initializing table tlstmCertToTSNTable\n"));
+
+    reg = netsnmp_create_handler_registration
+        ("tlstmCertToTSNTable", tlstmCertToTSNTable_handler,
+         reg_oid, reg_oid_len,
+         HANDLER_CAN_RWRITE);
+    if (NULL == reg) {
+        snmp_log(LOG_ERR,
+                 "error creating handler registration for tlstmCertToSN\n");
+        return;
+    }
+
+    if (NULL != contextName)
+        reg->contextName = strdup(contextName);
+
+    _table = netsnmp_tdata_create_table("tlstmCertToTSNTable", 0);
+    if (NULL == _table) {
+        snmp_log(LOG_ERR,
+                 "error creating tdata table for tlstmCertToTSNTable\n");
+        return;
+    }
+    info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
+    if (NULL == info) {
+        snmp_log(LOG_ERR,
+                 "error creating table info for tlstmCertToTSNTable\n");
+        netsnmp_tdata_delete_table(_table);
+        _table = NULL;
+        return;
+    }
+    netsnmp_table_helper_add_indexes(info, 
+                                     /* index: tlstmCertToTSNID */
+                                     ASN_UNSIGNED,  0);
+
+    info->min_column = SNMPTLSTMCERTTOTSN_TABLE_MIN_COL;
+    info->max_column = SNMPTLSTMCERTTOTSN_TABLE_MAX_COL;
+
+    /*
+     * cache init
+     */
+    cache = netsnmp_cache_create(30, (NetsnmpCacheLoad*)_cache_load,
+                                 (NetsnmpCacheFree*)_cache_free,
+                                 reg_oid,
+                                 reg_oid_len);
+    if (NULL == cache) {
+        snmp_log(LOG_ERR,"error creating cache for tlstmCertToTSNTable\n");
+        netsnmp_tdata_delete_table(_table);
+        _table = NULL;
+        return;
+    }
+    cache->magic = (void *)_table;
+    cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
+
+    netsnmp_tdata_register(reg, _table, info);
+
+    if (cache) 
+        netsnmp_inject_handler_before( reg, netsnmp_cache_handler_get(cache),
+                                       "table_container");
+
+    /*
+     * register scalars
+     */
+    reg_oid[10] = 1;
+    reg = netsnmp_create_handler_registration("snmpTlstmCertToTSNCount",
+                                              _count_handler, reg_oid,
+                                              OID_LENGTH(reg_oid),
+                                              HANDLER_CAN_RONLY);
+    if (NULL == reg)
+        snmp_log(LOG_ERR,
+                 "could not create handler for snmpTlstmCertToTSNCount\n");
+    else {
+        if (NULL != contextName)
+            reg->contextName = strdup(contextName);
+
+        netsnmp_register_scalar(reg);
+        if (cache) 
+            netsnmp_inject_handler_before(reg, netsnmp_cache_handler_get(cache),
+                                          "table_container");
+    }
+    
+    reg_oid[10] = 2;
+    reg = netsnmp_create_handler_registration(
+        "snmpTlstmCertToTSNTableLastChanged", NULL, reg_oid,
+        OID_LENGTH(reg_oid), HANDLER_CAN_RONLY);
+    watcher = netsnmp_create_watcher_info((void*)&_last_changed,
+                                          sizeof(_last_changed),
+                                          ASN_TIMETICKS,
+                                          WATCHER_FIXED_SIZE);
+    if ((NULL == reg) || (NULL == watcher))
+        snmp_log(LOG_ERR,
+                 "could not create handler for snmpTlstmCertToTSNCount\n");
+    else {
+        if (NULL != contextName)
+            reg->contextName = strdup(contextName);
+        netsnmp_register_watched_scalar(reg, watcher);
+    }
+
+    /*
+     * persistence
+     */
+    register_config_handler(NULL, MAP_MIB_CONFIG_TOKEN, _parse_mib_maps, NULL,
+                            mib_map_help);
+    if (snmp_register_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_STORE_DATA,
+                               _save_maps, NULL) != SNMP_ERR_NOERROR)
+        snmp_log(LOG_ERR, "error registering for STORE_DATA callback "
+                 "for certToTSN\n");
+
+}
+
+/*
+ * create a new row in the table 
+ */
+netsnmp_tdata_row *
+tlstmCertToTSNTable_createEntry(netsnmp_tdata * table, u_long tlstmCertToTSNID)
+{
+    certToTSN_entry *entry;
+    netsnmp_tdata_row *row;
+
+    entry = SNMP_MALLOC_TYPEDEF(certToTSN_entry);
+    if (!entry)
+        return NULL;
+
+    row = netsnmp_tdata_create_row();
+    if (!row) {
+        SNMP_FREE(entry);
+        return NULL;
+    }
+    row->data = entry;
+
+    DEBUGMSGT(("tlstmCertToSN:entry:create", "entry %p / row %p\n",
+               entry, row));
+    /*
+     * populate index
+     */
+    entry->tlstmCertToTSNID = tlstmCertToTSNID;
+    netsnmp_tdata_row_add_index(row, ASN_UNSIGNED,
+                                &(entry->tlstmCertToTSNID),
+                                sizeof(entry->tlstmCertToTSNID));
+   /*
+    * assign default column values
+    */
+    entry->mapType = TSNM_tlstmCertSpecified;
+    entry->storageType = ST_NONVOLATILE;
+    entry->rowStatus = RS_NOTREADY;
+
+    if (table) {
+        DEBUGMSGTL(("tlstmCertToTSN:row:insert", "row %p\n", row));
+        netsnmp_tdata_add_row(table, row);
+    }
+    return row;
+}
+
+/*
+ * allocate undo resources 
+ */
+static certToTSN_undo *
+_allocUndo(certToTSN_entry * entry)
+{
+    if (!entry)
+        return NULL;
+
+    netsnmp_assert(!entry->undo);
+
+    entry->undo = SNMP_MALLOC_TYPEDEF(certToTSN_undo);
+    if (!entry->undo)
+        return NULL;
+
+    entry->undo->is_consistent = -1;   /* don't know */
+
+    return entry->undo;
+}
+
+/*
+ * free undo resources 
+ */
+static void
+_freeUndo(certToTSN_entry * entry)
+{
+    if (!entry || !entry->undo)
+        return;
+
+    /*
+     * TODO: release any allocated resources 
+     */
+    SNMP_FREE(entry->undo);
+}
+
+/*
+ * remove a row from the table 
+ */
+void
+tlstmCertToTSNTable_removeEntry(netsnmp_tdata * table,
+                                netsnmp_tdata_row * row)
+{
+    certToTSN_entry *entry;
+
+    if (!row)
+        return;                 /* Nothing to remove */
+
+    entry = (certToTSN_entry *) row->data;
+
+    DEBUGMSGT(("tlstmCertToSN:entry:delete", "entry %p / row %p\n",
+               entry, row));
+
+    if (entry && entry->undo)
+        _freeUndo(entry);
+    SNMP_FREE(entry);
+
+    if (table) {
+        DEBUGMSGTL(("tlstmCertToSN:row:remove", "row %p\n", row));
+        netsnmp_tdata_remove_and_delete_row(table, row);
+    }
+    else
+        netsnmp_tdata_delete_row(row);
+}
+
+
+/** handles requests for the tlstmCertToTSNTable table */
+static int
+tlstmCertToTSNTable_handler(netsnmp_mib_handler *handler,
+                            netsnmp_handler_registration *reginfo,
+                            netsnmp_agent_request_info *reqinfo,
+                            netsnmp_request_info *requests)
+{
+    oid tsnm[] = { SNMP_TLS_TM_BASE, 1, 1, 0 };
+    static const int tsnm_pos = OID_LENGTH(tsnm) - 1;
+    netsnmp_request_info *request = NULL;
+    netsnmp_table_request_info *info;
+    netsnmp_tdata  *table;
+    netsnmp_tdata_row *row;
+    certToTSN_entry *entry;
+    int             ret = SNMP_ERR_NOERROR;
+
+    DEBUGMSGTL(("tlstmCertToSN:handler", "Processing request (mode %s (%d))\n",
+                se_find_label_in_slist("agent_mode", reqinfo->mode),
+                reqinfo->mode));
+
+    switch (reqinfo->mode) {
+    /** ######################################################### GET #####
+     *
+     *   Read-support (also covers GetNext requests)
+     */
+    case MODE_GET:
+        for (request = requests; request; request = request->next) {
+            if (request->processed)
+                continue;
+
+            entry = (certToTSN_entry *) netsnmp_tdata_extract_entry(request);
+            info = netsnmp_extract_table_info(request);
+            netsnmp_assert(entry && info);
+
+            switch (info->colnum) {
+            case COL_SNMPTLSTMCERTTOTSN_FINGERPRINT:
+            {
+                /*
+                 * build SnmpTLSFingerprint
+                 */
+                u_char bin[42], *ptr = bin;
+                size_t len = sizeof(bin);
+                int    rc;
+                rc = netsnmp_tls_fingerprint_build(entry->hashType,
+                                                   entry->fingerprint,
+                                                   &ptr, &len, 0);
+                if (SNMPERR_SUCCESS != rc)
+                    netsnmp_set_request_error(reqinfo, request,
+                                              SNMP_ERR_GENERR);
+                else
+                    snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,
+                                             bin, len);
+            }
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_FINGERPRINT */
+            case COL_SNMPTLSTMCERTTOTSN_MAPTYPE:
+                tsnm[tsnm_pos] = entry->mapType;
+                snmp_set_var_typed_value(request->requestvb, ASN_OBJECT_ID,
+                                         tsnm, sizeof(tsnm));
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_MAPTYPE */
+            case COL_SNMPTLSTMCERTTOTSN_DATA:
+                snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,
+                                         entry->data, entry->data_len);
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_DATA */
+            case COL_SNMPTLSTMCERTTOTSN_STORAGETYPE:
+                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
+                                           entry->storageType);
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_STORAGETYPE */
+            case COL_SNMPTLSTMCERTTOTSN_ROWSTATUS:
+                snmp_set_var_typed_integer(request->requestvb, ASN_INTEGER,
+                                           entry->rowStatus);
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_ROWSTATUS */
+            default:
+                netsnmp_set_request_error(reqinfo, request, SNMP_NOSUCHOBJECT);
+                break;
+            }                   /* switch colnum */
+        }                       /* for requests */
+        break;                  /* case MODE_GET */
+
+        /*
+         * Write-support
+         */
+    /** #################################################### RESERVE1 #####
+     *
+     *   In RESERVE1 we are just checking basic ASN.1 size/type restrictions.
+     * You probably don't need to change any of this code. Don't change any
+     * of the column values here. Save that for the ACTION phase.
+     *
+     *   The next phase is RESERVE2 or FREE.
+     */
+    case MODE_SET_RESERVE1:
+        for (request = requests; request; request = request->next) {
+            netsnmp_assert(request->processed == 0);
+
+            entry = (certToTSN_entry *) netsnmp_tdata_extract_entry(request);
+            info = netsnmp_extract_table_info(request);
+
+            if ((NULL != entry) && (ST_READONLY == entry->storageType)) {
+                ret = SNMP_ERR_NOTWRITABLE;
+                break;
+            }
+
+            switch (info->colnum) {
+            case COL_SNMPTLSTMCERTTOTSN_FINGERPRINT:
+                ret = netsnmp_check_vb_type_and_max_size
+                    (request->requestvb, ASN_OCTET_STR,
+                     sizeof(entry->fingerprint));
+                /** check len/algorithm MIB requirements */
+                if (ret == SNMP_ERR_NOERROR)
+                    ret = netsnmp_cert_check_vb_fingerprint(request->requestvb);
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_FINGERPRINT */
+            case COL_SNMPTLSTMCERTTOTSN_MAPTYPE:
+                ret = netsnmp_check_vb_type_and_max_size
+                    (request->requestvb, ASN_OBJECT_ID,
+                     SNMPTLSTMCERTTOTSN_MAPTYPE_MAX_SIZE);
+                if (ret == SNMP_ERR_NOERROR) {
+                    if (_oid2type(request->requestvb->val.objid,
+                                  request->requestvb->val_len) >
+                        TSNM_tlstmCert_MAX)
+                        ret = SNMP_ERR_WRONGVALUE;
+                }
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_MAPTYPE */
+            case COL_SNMPTLSTMCERTTOTSN_DATA:
+                ret = netsnmp_check_vb_type_and_max_size
+                    (request->requestvb, ASN_OCTET_STR, sizeof(entry->data));
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_DATA */
+            case COL_SNMPTLSTMCERTTOTSN_STORAGETYPE:
+                ret = netsnmp_check_vb_storagetype
+                    (request->requestvb,(entry ? entry->storageType : ST_NONE));
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_STORAGETYPE */
+            case COL_SNMPTLSTMCERTTOTSN_ROWSTATUS:
+                ret = netsnmp_check_vb_rowstatus_with_storagetype
+                    (request->requestvb,
+                     (entry ? entry->rowStatus :RS_NONEXISTENT),
+                     (entry ? entry->storageType :ST_NONE));
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_ROWSTATUS */
+            default:
+                ret = SNMP_ERR_NOTWRITABLE;
+            }                   /* switch colnum */
+
+            if (ret != SNMP_ERR_NOERROR)
+                break;
+        }                       /* for requests */
+        break;                  /* case MODE_SET_RESERVE1 */
+
+    /** #################################################### RESERVE2 #####
+     *
+     *   RESERVE2 is for checking additional restrictions from the MIB.
+     * Since these restrictions are often in the description of the object,
+     * mib2c can't generate code. It's possible that you need to add
+     * additional checks here. However, don't change any of the column
+     * values here. Save that for the ACTION phase.
+     *
+     *   The next phase is ACTION or FREE.
+     */
+    case MODE_SET_RESERVE2:
+        for (request = requests; request; request = request->next) {
+            netsnmp_assert(request->processed == 0);
+
+            entry = (certToTSN_entry *) netsnmp_tdata_extract_entry(request);
+            table = netsnmp_tdata_extract_table(request);
+            info = netsnmp_extract_table_info(request);
+            /*
+             * if no row, create one
+             */
+            if (!entry) {
+                row = tlstmCertToTSNTable_createEntry
+                    (table,*info->indexes->val.integer);
+                if (!row) {
+                    ret = SNMP_ERR_RESOURCEUNAVAILABLE;
+                    break;
+                }
+                entry = row->data;
+                _allocUndo(entry);
+                if (!entry->undo) {
+                    tlstmCertToTSNTable_removeEntry(table, row);
+                    row = NULL;
+                    ret = SNMP_ERR_RESOURCEUNAVAILABLE;
+                    break;
+                }
+                entry->undo->fate = FATE_NEWLY_CREATED;
+                /** associate row with requests */
+                netsnmp_insert_tdata_row(request, row);
+            }
+
+            /** allocate undo structure, if needed */
+            if (!entry->undo) {
+                _allocUndo(entry);
+                if (!entry->undo) {
+                    ret = SNMP_ERR_RESOURCEUNAVAILABLE;
+                    break;
+                }
+            }
+
+            /*
+             * save request ptr for column. if we already
+             * have a value, bail.
+             */
+            if (entry->undo->req[info->colnum]) {
+                DEBUGMSGT(("tlstmCertToSN:reserve2",
+                           "multiple sets to col %d in request\n",
+                           info->colnum));
+                if (FATE_NEWLY_CREATED == entry->undo->fate)
+                    ret = SNMP_ERR_INCONSISTENTNAME;
+                else
+                    ret = SNMP_ERR_INCONSISTENTVALUE;
+                break;
+            }
+            entry->undo->req[info->colnum] = request;
+            if (ret != SNMP_ERR_NOERROR)
+                break;
+        }                       /* for requests */
+
+        if (ret == SNMP_ERR_NOERROR) {
+            /** make sure rowstatus is used to create rows */
+            for (request = requests; request; request = request->next) {
+                if (request->processed)
+                    continue;
+
+                entry = (certToTSN_entry *)
+                    netsnmp_tdata_extract_entry(request);
+                if ((entry->undo->fate != FATE_NEWLY_CREATED) ||
+                    (entry->undo->req[COL_SNMPTLSTMCERTTOTSN_ROWSTATUS]))
+                    continue;
+                ret = SNMP_ERR_INCONSISTENTNAME;
+                break;
+            } /* creation for requests */
+        } /* no error */
+        break;                  /* case MODE_SET_RESERVE2 */
+
+    /** ######################################################## FREE #####
+     *
+     *   FREE is for cleaning up after a failed request (during either
+     * RESERVE1 or RESERVE2). So any allocated resources need to be
+     * released.
+     *
+     *   This the final phase for this path in the state machine.
+     */
+    case MODE_SET_FREE:
+        /*
+         * release undo resources
+         * remove any newly created rows
+         */
+        for (request = requests; request; request = request->next) {
+            table = netsnmp_tdata_extract_table(request);
+            row = netsnmp_tdata_extract_row(request);
+            entry = (certToTSN_entry *) netsnmp_tdata_extract_entry(request);
+
+            if (!entry || !entry->undo)
+                continue;
+
+            /** disassociate row with requests */
+            netsnmp_remove_tdata_row(request, row);
+
+            if (FATE_NEWLY_CREATED == entry->undo->fate)
+                tlstmCertToTSNTable_removeEntry(table, row);
+            else
+                _freeUndo(entry);
+        }
+        break;                  /* case MODE_SET_FREE */
+
+    /** ###################################################### ACTION #####
+     *
+     *   In the ACTION phase, we perform any sets that can be undone.
+     * (Save anything that can't be undone for the COMMIT phase.)
+     *
+     *   After individual columns have been done, you should check that the
+     * row as a whole is consistent.
+     *
+     * The next phase is UNDO or COMMIT.
+     */
+    case MODE_SET_ACTION:
+        for (request = requests; request; request = request->next) {
+            entry = (certToTSN_entry *) netsnmp_tdata_extract_entry(request);
+            info = netsnmp_extract_table_info(request);
+
+            /** reserve2 should enforce this */
+            netsnmp_assert(request == entry->undo->req[info->colnum]);
+
+            /*
+             * for each col, save old value and the set new value
+             */
+            switch (info->colnum) {
+            case COL_SNMPTLSTMCERTTOTSN_FINGERPRINT:
+            {
+                u_char *tmp = (u_char*)entry->fingerprint;
+                u_int size = sizeof(entry->fingerprint);
+                netsnmp_variable_list *vb = request->requestvb;
+
+                memcpy(entry->undo->fingerprint,
+                       entry->fingerprint, sizeof(entry->fingerprint));
+                entry->undo->fingerprint_len = entry->fingerprint_len;
+                entry->undo->hashType = entry->hashType;
+                memset(entry->fingerprint, 0, sizeof(entry->fingerprint));
+
+                (void)netsnmp_tls_fingerprint_parse(vb->val.string, vb->val_len,
+                                                    (char**)&tmp, &size, 0,
+                                                    &entry->hashType);
+                entry->fingerprint_len = size;
+                if (0 == entry->fingerprint_len)
+                    ret = SNMP_ERR_GENERR;
+            }
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_FINGERPRINT */
+            case COL_SNMPTLSTMCERTTOTSN_MAPTYPE:
+                entry->undo->mapType = entry->mapType;
+                entry->mapType = _oid2type(request->requestvb->val.objid,
+                                           request->requestvb->val_len);
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_MAPTYPE */
+            case COL_SNMPTLSTMCERTTOTSN_DATA:
+                memcpy(entry->undo->data, entry->data, sizeof(entry->data));
+                entry->undo->data_len = entry->data_len;
+                memset(entry->data, 0, sizeof(entry->data));
+                memcpy(entry->data, request->requestvb->val.string,
+                       request->requestvb->val_len);
+                entry->data_len = request->requestvb->val_len;
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_DATA */
+            case COL_SNMPTLSTMCERTTOTSN_STORAGETYPE:
+                entry->undo->storageType = entry->storageType;
+                entry->storageType = *request->requestvb->val.integer;
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_STORAGETYPE */
+            case COL_SNMPTLSTMCERTTOTSN_ROWSTATUS:
+                entry->undo->rowStatus = entry->rowStatus;
+                entry->rowStatus = *request->requestvb->val.integer;
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_ROWSTATUS */
+            }                   /* switch colnum */
+        }                       /* set values for requests */
+
+        if (ret != SNMP_ERR_NOERROR) 
+            break; /* skip consistency if we've already got error */
+
+        /*
+         * All columns now have their final values set. check the
+         * internal consistency of each row.
+         */
+        for (request = requests; request; request = request->next) {
+            entry = (certToTSN_entry *) netsnmp_tdata_extract_entry(request);
+            info = netsnmp_extract_table_info(request);
+
+            if (entry->undo->is_consistent != -1)
+                continue;       /* already checked */
+
+            /** assume consistency */
+            entry->undo->is_consistent = 1;
+
+            /*
+             * per mib, can't have empty fingerprint and must
+             * have data if indicated by map type.
+             */
+            if (0 == entry->fingerprint_len) {
+                DEBUGMSGTL(("tlstmCertToTSNTable:inconsistent",
+                            "fingerprint must not be empty\n"));
+                entry->undo->is_consistent = 0;
+            }
+            else if ((TSNM_tlstmCertSpecified == entry->mapType) &&
+                     (0 == entry->data_len)) {
+                DEBUGMSGTL(("tlstmCertToTSNTable:inconsistent",
+                            "must specify Data for CertSpecified identity\n"));
+                entry->undo->is_consistent = 0;
+            }
+
+            if ((RS_IS_ACTIVE(entry->rowStatus)) &&
+                ((!entry->undo->req[COL_SNMPTLSTMCERTTOTSN_ROWSTATUS]) ||
+                 (RS_IS_ACTIVE(entry->undo->rowStatus)))) {
+                /*
+                 * per mib, can't modify these while row active
+                 */
+                char _cols[3] = { COL_SNMPTLSTMCERTTOTSN_FINGERPRINT,
+                                  COL_SNMPTLSTMCERTTOTSN_MAPTYPE, COL_SNMPTLSTMCERTTOTSN_DATA };
+                int i;
+                for (i=0; i < 3; ++i ) {
+                    if (!entry->undo->req[i])
+                        continue;
+                    DEBUGMSGTL(("tlstmCertToTSNTable:inconsistent",
+                                "can't modify row %d while active\n",
+                                _cols[i]));
+                    entry->undo->is_consistent = 0;
+                    ret = SNMP_ERR_NOTWRITABLE;
+                    request= entry->undo->req[i];
+                    break;
+                }
+            } else if (RS_IS_GOING_ACTIVE(entry->rowStatus)) {
+                /*
+                 * if going active, inconsistency is fatal
+                 */
+                if (!entry->undo->is_consistent) {
+                    netsnmp_assert(entry->undo->req[COL_SNMPTLSTMCERTTOTSN_ROWSTATUS]);
+                    if (FATE_NEWLY_CREATED == entry->undo->fate)
+                        ret = SNMP_ERR_INCONSISTENTNAME;
+                    else
+                        ret = SNMP_ERR_INCONSISTENTVALUE;
+                    request = entry->undo->req[COL_SNMPTLSTMCERTTOTSN_ROWSTATUS];
+                }
+            } else if (RS_DESTROY == entry->rowStatus) {
+                /*
+                 * can't destroy active row
+                 */
+                if (RS_IS_ACTIVE(entry->undo->rowStatus)) {
+                    DEBUGMSGTL(("tlstmCertToTSNTable:inconsistent",
+                                "can't destroy active row\n"));
+                    netsnmp_assert(entry->undo->req[COL_SNMPTLSTMCERTTOTSN_ROWSTATUS]);
+                    ret = SNMP_ERR_INCONSISTENTVALUE;
+                    request = entry->undo->req[COL_SNMPTLSTMCERTTOTSN_ROWSTATUS];
+                }
+            }
+            if (ret != SNMP_ERR_NOERROR)
+                break;
+        }                       /* consistency for requests */
+        break;                  /* case MODE_SET_ACTION */
+
+    /** ######################################################## UNDO #####
+     *
+     *   UNDO is for cleaning up any failed requests that went through the
+     * ACTION phase.
+     *
+     *   This the final phase for this path in the state machine.
+     */
+    case MODE_SET_UNDO:
+        for (request = requests; request; request = request->next) {
+            row = netsnmp_tdata_extract_row(request);
+            entry = (certToTSN_entry *) netsnmp_tdata_extract_entry(request);
+            info = netsnmp_extract_table_info(request);
+
+            /*
+             * skip newly created rows, as we're going to delete
+             * them below anyways
+             */
+            if (FATE_NEWLY_CREATED == entry->undo->fate)
+                continue;
+
+            /*
+             * restore values
+             */
+            switch (info->colnum) {
+            case COL_SNMPTLSTMCERTTOTSN_FINGERPRINT:
+                memcpy(entry->fingerprint, entry->undo->fingerprint,
+                       sizeof(entry->fingerprint));
+                entry->fingerprint_len = entry->undo->fingerprint_len;
+                entry->hashType = entry->undo->hashType;
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_FINGERPRINT */
+            case COL_SNMPTLSTMCERTTOTSN_MAPTYPE:
+                entry->mapType = entry->undo->mapType;
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_MAPTYPE */
+            case COL_SNMPTLSTMCERTTOTSN_DATA:
+                memcpy(entry->data, entry->undo->data, sizeof(entry->data));
+                entry->data_len = entry->undo->data_len;
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_DATA */
+            case COL_SNMPTLSTMCERTTOTSN_STORAGETYPE:
+                entry->storageType = entry->undo->storageType;
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_STORAGETYPE */
+            case COL_SNMPTLSTMCERTTOTSN_ROWSTATUS:
+                entry->rowStatus = entry->undo->rowStatus;
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_ROWSTATUS */
+            }                   /* switch colnum */
+        }                       /* for requests */
+
+        /*
+         * release undo data
+         * or remove any newly created rows
+         */
+        for (request = requests; request; request = request->next) {
+            table = netsnmp_tdata_extract_table(request);
+            row = netsnmp_tdata_extract_row(request);
+            entry = (certToTSN_entry *) netsnmp_tdata_extract_entry(request);
+
+            if (!entry || !entry->undo)
+                continue;
+
+            /** disassociate row with requests */
+            netsnmp_remove_tdata_row(request, row);
+
+            if (FATE_NEWLY_CREATED == entry->undo->fate)
+                tlstmCertToTSNTable_removeEntry(table, row);
+            else
+                _freeUndo(entry);
+        }                       /* for requests */
+        break;                  /* case MODE_SET_UNDO */
+
+    /** ###################################################### COMMIT #####
+     *
+     *   COMMIT is the final success state, when all changes are finalized.
+     * There is not recovery state should something faile here.
+     *
+     *   This the final phase for this path in the state machine.
+     */
+    case MODE_SET_COMMIT:
+        for (request = requests; request; request = request->next) {
+            row = netsnmp_tdata_extract_row(request);
+            table = netsnmp_tdata_extract_table(request);
+            info = netsnmp_extract_table_info(request);
+            entry = (certToTSN_entry *) netsnmp_tdata_extract_entry(request);
+
+            if ((RS_NOTREADY == entry->rowStatus) && entry->undo->is_consistent)
+                entry->rowStatus = RS_NOTINSERVICE;
+            else if ((RS_NOTINSERVICE == entry->rowStatus) &&
+                     (0 == entry->undo->is_consistent))
+                entry->rowStatus = RS_NOTREADY;
+
+            /** release undo data for requests with no rowstatus */
+            if (entry->undo && !entry->undo->req[COL_SNMPTLSTMCERTTOTSN_ROWSTATUS]) {
+                _freeUndo(entry);
+                if ((0 == entry->map_flags) && (entry->rowStatus == RS_ACTIVE))
+                    _cert_map_add(entry);
+                else if ((0 != entry->map_flags) &&
+                         (entry->rowStatus == RS_DESTROY))
+                    _cert_map_remove(entry);
+            }
+
+            switch (info->colnum) {
+            case COL_SNMPTLSTMCERTTOTSN_ROWSTATUS:
+                switch (entry->rowStatus) {
+                case RS_CREATEANDGO:
+                    /** Fall-through */
+                case RS_ACTIVE:
+                    netsnmp_assert(entry->undo->is_consistent);
+                    entry->rowStatus = RS_ACTIVE;
+                    if (0 == entry->map_flags)
+                        _cert_map_add(entry);
+                    break;
+
+                case RS_CREATEANDWAIT:
+                    /** Fall-through */
+                case RS_NOTINSERVICE:
+                    /** simply set status based on consistency */
+                    if (entry->undo->is_consistent)
+                        entry->rowStatus = RS_NOTINSERVICE;
+                    else
+                        entry->rowStatus = RS_NOTREADY;
+                    if (0 != entry->map_flags)
+                        _cert_map_remove(entry);
+                    break;
+
+                case RS_DESTROY:
+                    /** remove from cert map */
+                    if (0 != entry->map_flags)
+                        _cert_map_remove(entry);
+                    /** disassociate row with requests */
+                    netsnmp_remove_tdata_row(request, row);
+                    tlstmCertToTSNTable_removeEntry(table, row);
+                    row = NULL;
+                    entry = NULL;
+                }
+                /** release undo data */
+                _freeUndo(entry);
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_ROWSTATUS */
+
+            case COL_SNMPTLSTMCERTTOTSN_STORAGETYPE:
+                if (RS_ACTIVE == entry->rowStatus)
+                    _cert_map_tweak_storage(entry);
+                break;          /* case COL_SNMPTLSTMCERTTOTSN_STORAGETYPE */
+
+            case COL_SNMPTLSTMCERTTOTSN_FINGERPRINT:
+            case COL_SNMPTLSTMCERTTOTSN_MAPTYPE:
+            case COL_SNMPTLSTMCERTTOTSN_DATA:
+                break;
+            }                   /* switch colnum */
+
+        }                       /* for requests */
+
+        /** update last changed */
+        _last_changed = netsnmp_get_agent_uptime();
+
+        /** set up to save persistent store */
+        snmp_store_needed(NULL);
+
+        break;                  /* case MODE_SET_COMMIT */
+    }                           /* switch (reqinfo->mode) */
+
+    if (ret != SNMP_ERR_NOERROR)
+        netsnmp_set_request_error(reqinfo, request, ret);
+
+    return SNMP_ERR_NOERROR;
+}
+
+static int
+_count_handler(netsnmp_mib_handler *handler,
+               netsnmp_handler_registration *reginfo,
+               netsnmp_agent_request_info *reqinfo,
+               netsnmp_request_info *requests)
+{
+    int                val;
+
+    if (MODE_GET != reqinfo->mode) {
+        snmp_log(LOG_ERR, "bad mode in RO handler");
+        return SNMP_ERR_GENERR;
+    }
+
+    if (NULL == _table->container)
+        val = 0;
+    else
+        val = CONTAINER_SIZE(_table->container);
+
+    snmp_set_var_typed_value(requests->requestvb, ASN_GAUGE,
+                             (u_char *) &val, sizeof(val));
+   
+    if (handler->next && handler->next->access_method)
+        return netsnmp_call_next_handler(handler, reginfo, reqinfo,
+                                         requests);
+    
+    return SNMP_ERR_NOERROR;
+}
+
+static void
+_cert_map_add(certToTSN_entry *entry)
+{
+    netsnmp_cert_map *map;
+
+    if (NULL == entry)
+        return;
+
+    DEBUGMSGTL(("tlstmCertToTSNTable:map:add", "pri %ld, fp %s\n",
+                entry->tlstmCertToTSNID, entry->fingerprint));
+
+    map = netsnmp_cert_map_alloc(entry->fingerprint, NULL);
+    if (NULL == map)
+        return;
+
+    map->priority = entry->tlstmCertToTSNID;
+    map->mapType = entry->mapType;
+    if (entry->data)
+        map->data = strdup(entry->data);
+    map->hashType = entry->hashType;
+
+    map->flags = NSCM_FROM_MIB;
+    if (entry->storageType == ST_NONVOLATILE)
+        map->flags |= NSCM_NONVOLATILE;
+
+    if (netsnmp_cert_map_add(map) != 0)
+        netsnmp_cert_map_free(map);
+}
+
+static void
+_cert_map_tweak_storage(certToTSN_entry *entry)
+{
+    netsnmp_container *maps;
+    netsnmp_cert_map *map, index;
+
+    if (NULL == entry)
+        return;
+
+    DEBUGMSGTL(("tlstmCertToTSNTable:map:tweak", "pri %ld, st %d\n",
+                entry->tlstmCertToTSNID, entry->storageType));
+
+    /** get current active maps */
+    maps = netsnmp_cert_map_container();
+    if (NULL == maps)
+        return;
+
+    index.priority = entry->tlstmCertToTSNID;
+    map = CONTAINER_FIND(maps, &index);
+    if (NULL == map) {
+        DEBUGMSGTL(("tlstmCertToTSNTable:map:tweak", "couldn't find map!\n"));
+        return;
+    }
+
+    if (entry->storageType == ST_NONVOLATILE)
+        map->flags |= NSCM_NONVOLATILE;
+    else
+        map->flags &= ~NSCM_NONVOLATILE;
+}
+
+static void
+_cert_map_remove(certToTSN_entry *entry)
+{
+    netsnmp_container *maps;
+    netsnmp_cert_map map;
+
+    if (NULL == entry)
+        return;
+
+    DEBUGMSGTL(("tlstmCertToTSNTable:map:remove", "pri %ld, fp %s\n",
+                entry->tlstmCertToTSNID, entry->fingerprint));
+
+    /** get current active maps */
+    maps = netsnmp_cert_map_container();
+    if (NULL == maps)
+        return;
+
+    map.priority = entry->tlstmCertToTSNID;
+    map.fingerprint = entry->fingerprint;
+
+    if (CONTAINER_REMOVE(maps, &map) != 0) {
+        snmp_log(LOG_ERR, "could not remove certificate map");
+    }
+    entry->map_flags = 0;
+}
+
+static netsnmp_tdata_row *
+_entry_from_map(netsnmp_cert_map  *map)
+{
+    netsnmp_tdata_row *row;
+    certToTSN_entry   *entry;
+
+    row = tlstmCertToTSNTable_createEntry(NULL, map->priority);
+    if (NULL == row) {
+        snmp_log(LOG_ERR, "can create tlstmCertToTSN row entry\n");
+        return NULL;
+    }
+    entry = row->data;
+
+    if (map->flags & NSCM_FROM_CONFIG)
+        entry->storageType = ST_PERMANENT;
+    else if (! (map->flags & NSCM_NONVOLATILE))
+        entry->storageType = ST_VOLATILE;
+    entry->map_flags = map->flags;
+
+    entry->fingerprint_len = strlen(map->fingerprint);
+    if (entry->fingerprint_len > sizeof(entry->fingerprint))
+        entry->fingerprint_len = sizeof(entry->fingerprint) - 1;
+    memcpy(entry->fingerprint, map->fingerprint, entry->fingerprint_len);
+    entry->fingerprint[sizeof(entry->fingerprint) - 1] = 0;
+    entry->hashType = map->hashType;
+    
+    if (map->data) {
+        entry->data_len = strlen(map->data);
+        if (entry->data_len) {
+            if (entry->data_len > sizeof(entry->data))
+                entry->data_len = sizeof(entry->data) - 1;
+            memcpy(entry->data, map->data, entry->data_len);
+            entry->data[sizeof(entry->data) - 1] = 0;
+        }
+    }
+    entry->mapType = map->mapType;
+
+    return row;
+}
+
+static int
+_cache_load(netsnmp_cache *cache, netsnmp_tdata *table)
+{
+    netsnmp_container *maps;
+    netsnmp_iterator  *map_itr;
+    netsnmp_cert_map  *map;
+    netsnmp_tdata_row *row;
+    certToTSN_entry   *entry;
+    int                rc = 0;
+
+    DEBUGMSGTL(("tlstmCertToTSNTable:cache:load", "called, %" NETSNMP_PRIz "d rows\n",
+                CONTAINER_SIZE(table->container)));
+
+    /** get current active maps */
+    maps = netsnmp_cert_map_container();
+    if (NULL == maps)
+        return 0;
+    DEBUGMSGTL(("tlstmCertToTSNTable:cache:load", "maps %" NETSNMP_PRIz "d rows\n",
+                CONTAINER_SIZE(maps)));
+
+    map_itr = CONTAINER_ITERATOR(maps);
+    if (NULL == map_itr) {
+        DEBUGMSGTL(("tlstmCertToTSNTable:cache:load",
+                    "cant get map iterator\n"));
+        return -1;
+    }
+
+    /*
+     * insert rows for active maps into tbl container
+     */
+    map = ITERATOR_FIRST(map_itr);
+    for( ; map; map = ITERATOR_NEXT(map_itr)) {
+
+        row = _entry_from_map(map);
+        if (NULL == row) {
+            rc =-1;
+            break;
+        }
+        entry = (certToTSN_entry*)row->data;
+        entry->rowStatus = RS_ACTIVE;
+
+        if (netsnmp_tdata_add_row(table, row) != SNMPERR_SUCCESS) {
+            tlstmCertToTSNTable_removeEntry(NULL, row);
+            rc = -1;
+            break;
+        }
+    }
+    ITERATOR_RELEASE(map_itr);
+
+    DEBUGMSGTL(("tlstmCertToTSNTable:cache:load", "done, %" NETSNMP_PRIz "d rows\n",
+                CONTAINER_SIZE(table->container)));
+
+    return rc;
+}
+
+static void
+_cache_free(netsnmp_cache *cache, netsnmp_tdata *table)
+{
+    netsnmp_tdata_row *row;
+    netsnmp_iterator   *tbl_itr;
+    certToTSN_entry   *entry;
+
+    DEBUGMSGTL(("tlstmCertToTSNTable:cache:free", "called, %" NETSNMP_PRIz "d rows\n",
+                CONTAINER_SIZE(table->container)));
+
+    /** insert rows for active maps into tbl container */
+    tbl_itr = CONTAINER_ITERATOR(table->container);
+    if (NULL == tbl_itr) {
+        DEBUGMSGTL(("tlstmCertToTSNTable:cache:free",
+                    "cant get map iterator\n"));
+        return;
+    }
+
+    row = ITERATOR_FIRST(tbl_itr);
+    for( ; row; row = ITERATOR_NEXT(tbl_itr)) {
+        entry = row->data;
+
+        /*
+         * remove all active rows (they are in the maps container kept
+         * by the library). Keep inactive ones for next time.
+         */
+        if (entry->rowStatus == RS_ACTIVE) {
+            tlstmCertToTSNTable_removeEntry(NULL, row);
+            ITERATOR_REMOVE(tbl_itr);
+            continue;
+        }
+    }
+    ITERATOR_RELEASE(tbl_itr);
+
+    DEBUGMSGTL(("tlstmCertToTSNTable:cache:free", "done, %" NETSNMP_PRIz "d rows\n",
+                CONTAINER_SIZE(table->container)));
+}
+
+static void
+_parse_mib_maps(const char *token, char *line)
+{
+    netsnmp_tdata_row *row;
+    certToTSN_entry   *entry;
+    netsnmp_cert_map *map = netsnmp_certToTSN_parse_common(&line);
+
+    if (NULL == line) {
+        netsnmp_config_error("incomplete line");
+        netsnmp_cert_map_free(map);
+        return;
+    }
+
+    map->flags = NSCM_FROM_MIB | NSCM_NONVOLATILE;
+    row = _entry_from_map(map);
+    if (NULL == row) {
+        netsnmp_cert_map_free(map);
+        return;
+    }
+    
+    entry = (certToTSN_entry*)row->data;
+    entry->rowStatus = atoi(line);
+    entry->storageType = ST_NONVOLATILE;
+
+    /*
+     * if row is active, add it to the maps container so it is available
+     * for use. Do not add it to the table, since it will be added
+     * during cache_load.
+     */
+    if (RS_ACTIVE == entry->rowStatus) {
+        if (netsnmp_cert_map_add(map) != 0)
+            netsnmp_cert_map_free(map);
+    }
+    else {
+        netsnmp_cert_map_free(map);
+        if (netsnmp_tdata_add_row(_table, row) != SNMPERR_SUCCESS)
+            tlstmCertToTSNTable_removeEntry(NULL, row);
+    }
+}
+
+static int
+_save_entry(certToTSN_entry *entry, void *app_type)
+{
+    char buf[SNMP_MAXBUF_SMALL], *hashType, *mapType, *data = NULL;
+
+    if (NULL == entry)
+        return SNMP_ERR_GENERR;
+
+    hashType = se_find_label_in_slist("cert_hash_alg", entry->hashType);
+    if (NULL == hashType) {
+        snmp_log(LOG_ERR, "skipping entry unknown hash type %d\n",
+                 entry->hashType);
+        return SNMP_ERR_GENERR;
+    }
+    mapType = se_find_label_in_slist("cert_map_type", entry->mapType);
+    if (TSNM_tlstmCertSpecified == entry->mapType)
+        data = entry->data;
+    snprintf(buf, sizeof(buf), "%s %ld --%s %s --%s %s %d",
+             MAP_MIB_CONFIG_TOKEN, entry->tlstmCertToTSNID, hashType,
+             entry->fingerprint, mapType, data ? data : "", entry->rowStatus);
+
+    DEBUGMSGTL(("tlstmCertToTSNTable:save", "saving '%s'\n", buf));
+    read_config_store(app_type, buf);
+
+    return SNMP_ERR_NOERROR;
+}
+
+static int
+_save_map(netsnmp_cert_map *map, int row_status, void *app_type)
+{
+    char buf[SNMP_MAXBUF_SMALL], *hashType, *mapType, *data = NULL;
+
+    if (NULL == map)
+        return SNMP_ERR_GENERR;
+
+    /** don't store values from conf files */
+    if (! (map->flags & NSCM_NONVOLATILE)) {
+        DEBUGMSGT(("tlstmCertToTSNTable:save", 
+                   "skipping RO/permanent/volatile row\n"));
+        return SNMP_ERR_NOERROR;
+    }
+
+    hashType = se_find_label_in_slist("cert_hash_alg", map->hashType);
+    if (NULL == hashType) {
+        snmp_log(LOG_ERR, "skipping entry unknown hash type %d\n",
+                 map->hashType);
+        return SNMP_ERR_GENERR;
+    }
+    mapType = se_find_label_in_slist("cert_map_type", map->mapType);
+    if (TSNM_tlstmCertSpecified == map->mapType)
+        data = (char*)map->data;
+    snprintf(buf, sizeof(buf), "%s %d --%s %s --%s %s %d",
+             MAP_MIB_CONFIG_TOKEN, map->priority, hashType, map->fingerprint,
+             mapType, data ? data : "", row_status);
+
+    DEBUGMSGTL(("tlstmCertToTSNTable:save", "saving '%s'\n", buf));
+    read_config_store(app_type, buf);
+
+    return SNMP_ERR_NOERROR;
+}
+
+static int
+_save_maps(int majorID, int minorID, void *serverarg, void *clientarg)
+{
+    char            sep[] =
+        "\n##############################################################";
+    char            buf[] =
+        "#\n" "# certificate secName mapping persistent data\n" "#";
+    char           *type = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                                 NETSNMP_DS_LIB_APPTYPE);
+    netsnmp_container *maps = netsnmp_cert_map_container();
+    netsnmp_tdata_row *row;
+    netsnmp_iterator  *tbl_itr, *map_itr;
+    netsnmp_cert_map  *map;
+    certToTSN_entry   *entry;
+
+    if ((NULL == maps) || ((CONTAINER_SIZE(maps) == 0) &&
+                           (CONTAINER_SIZE(_table->container) == 0)))
+        return SNMPERR_SUCCESS;
+
+    read_config_store((char *) type, sep);
+    read_config_store((char *) type, buf);
+
+    /*
+     * save active rows from maps
+     */
+    if (NULL != maps) {
+        map_itr = CONTAINER_ITERATOR(maps);
+        if (NULL == map_itr) {
+            DEBUGMSGTL(("tlstmCertToTSNTable:save",
+                        "cant get map iterator\n"));
+            map = NULL;
+        }
+        else
+            map = ITERATOR_FIRST(map_itr);
+
+        for( ; map; map = ITERATOR_NEXT(map_itr)) {
+            /** don't store config rows */
+            if (map->flags & NSCM_FROM_CONFIG)
+                continue;
+            _save_map(map, RS_ACTIVE, type);
+        }
+    }
+    ITERATOR_RELEASE(map_itr);
+
+    /*
+     * save inactive rows from mib
+     */
+    tbl_itr = CONTAINER_ITERATOR(_table->container);
+    if (NULL == tbl_itr)
+        DEBUGMSGTL(("tlstmCertToTSNTable:save", "cant get table iterator\n"));
+    else {
+        row = ITERATOR_FIRST(tbl_itr);
+        for( ; row; row = ITERATOR_NEXT(tbl_itr)) {
+            entry = row->data;
+
+            /*
+             * skip all active rows (should be in maps and thus saved
+             * above) and volatile rows.
+             */
+            if ((entry->rowStatus == RS_ACTIVE) ||
+                (entry->storageType != ST_NONVOLATILE))
+                continue;
+
+            _save_entry(entry, type);
+        }
+        ITERATOR_RELEASE(tbl_itr);
+    }
+
+    read_config_store((char *) type, sep);
+    read_config_store((char *) type, "\n");
+
+    /*
+     * never fails 
+     */
+    return SNMPERR_SUCCESS;
+}
+
+
+static const oid _tsnm_base[] = { SNMP_TLS_TM_BASE, 1, 1 };
+static const int _tsnm_base_len = sizeof(_tsnm_base);
+
+static oid
+_oid2type(oid *val, int val_len)
+{
+    netsnmp_assert(val);
+
+    if (val_len != (_tsnm_base_len + sizeof(oid)))
+        return -1;
+
+    if (memcmp(_tsnm_base,val,_tsnm_base_len) != 0)
+        return -2;
+
+    if ((val[OID_LENGTH(_tsnm_base)] > TSNM_tlstmCert_MAX) ||
+        (0 == val[OID_LENGTH(_tsnm_base)]))
+        return -3;
+
+    return val[OID_LENGTH(_tsnm_base)];
+}
+
+#if 0
+static int
+_type2oid(int type, oid *val, int *val_len)
+{
+    netsnmp_assert( val && val_len );
+
+    if (*val_len < _tsnm_base_len + sizeof(oid))
+        return -1;
+
+    memcpy(val, _tsnm_base, _tsnm_base_len + sizeof(oid));
+    val[_tsnm_base_len + sizeof(oid)] = type;
+
+    return 0;
+}
+#endif
diff --git a/agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h b/agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h
new file mode 100644
index 0000000..42b8097
--- /dev/null
+++ b/agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h
@@ -0,0 +1,47 @@
+/*
+ * Note: this file originally auto-generated by mib2c using
+ *  $
+ */
+#ifndef SNMPTLSTMCERTTOTSN_TABLE_H
+#define SNMPTLSTMCERTTOTSN_TABLE_H
+
+#define SNMP_TLS_TM_CERT_COUNT   SNMP_TLS_TM_BASE, 2, 2, 1, 1
+#define SNMP_TLS_TM_CERT_CHANGED SNMP_TLS_TM_BASE, 2, 2, 1, 2
+#define SNMP_TLS_TM_CERT_TABLE   SNMP_TLS_TM_BASE, 2, 2, 1, 3
+
+/*
+ * function declarations 
+ */
+void            init_snmpTlstmCertToTSNTable(void);
+void            init_snmpTlstmCertToTSNTable_context(const char *);
+
+/*
+ * index definitions for table tlstmCertToTSNTable 
+ */
+
+/*
+ * column number definitions for table tlstmCertToTSNTable 
+ */
+#define COL_SNMPTLSTMCERTTOTSN_ID                       1
+#define COL_SNMPTLSTMCERTTOTSN_FINGERPRINT              2
+#define COL_SNMPTLSTMCERTTOTSN_MAPTYPE                  3
+#define COL_SNMPTLSTMCERTTOTSN_DATA                     4
+#define COL_SNMPTLSTMCERTTOTSN_STORAGETYPE              5
+#define COL_SNMPTLSTMCERTTOTSN_ROWSTATUS                6
+
+#define SNMPTLSTMCERTTOTSN_TABLE_MIN_COL COL_SNMPTLSTMCERTTOTSN_FINGERPRINT
+#define SNMPTLSTMCERTTOTSN_TABLE_MAX_COL COL_SNMPTLSTMCERTTOTSN_ROWSTATUS
+
+#define SNMPTLSTMCERTTOTSN_FINGERPRINT_MAX_SIZE          255
+#define SNMPTLSTMCERTTOTSN_MAPTYPE_MAX_SIZE              128
+#define SNMPTLSTMCERTTOTSN_DATA_MAX_SIZE                 1024
+
+#define TSNM_tlstmCertSpecified                 1
+#define TSNM_tlstmCertSANRFC822Name             2
+#define TSNM_tlstmCertSANDNSName                3
+#define TSNM_tlstmCertSANIpAddress              4
+#define TSNM_tlstmCertSANAny                    5
+#define TSNM_tlstmCertCommonName                6
+#define TSNM_tlstmCert_MAX                      TSNM_tlstmCertCommonName
+
+#endif                          /* SNMPTLSTMCERTTOTSN_TABLE_H */
diff --git a/agent/mibgroup/tlstm-mib/snmpTlstmParamsTable.h b/agent/mibgroup/tlstm-mib/snmpTlstmParamsTable.h
new file mode 100644
index 0000000..d814be2
--- /dev/null
+++ b/agent/mibgroup/tlstm-mib/snmpTlstmParamsTable.h
@@ -0,0 +1,6 @@
+#ifndef SNMPTLSTMPARAMSTABLE_H
+#define SNMPTLSTMPARAMSTABLE_H
+
+config_require(tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable)
+
+#endif                          /* SNMPTLSTMPARAMSTABLE_H */
diff --git a/agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c b/agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c
new file mode 100644
index 0000000..a835533
--- /dev/null
+++ b/agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.c
@@ -0,0 +1,1271 @@
+/*
+ * Note: this file originally auto-generated by mib2c using
+ *  $
+ */
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+
+#include <openssl/ssl.h>
+#include <openssl/x509.h>
+#include <net-snmp/library/cert_util.h>
+#include "tlstm-mib.h"
+
+#include "snmpTlstmParamsTable.h"
+
+/** XXX - move these to table_data header? */
+#define FATE_NEWLY_CREATED    1
+#define FATE_NO_CHANGE        0
+#define FATE_DELETE_ME        -1
+
+/** **************************************************************************
+ *
+ * table structures
+ *
+ */
+    /*
+     * structure for undo storage and other vars for set processing
+     */
+ typedef struct snmpTlstmParamsTable_undo_s {
+    char  fate;
+    char  copied;
+    char  is_consistent;
+    netsnmp_request_info *req[SNMPTLSTMPARAMSTABLE_MAX_COLUMN + 1];
+    /* undo Column space */
+    char snmpTlstmParamsClientFingerprint[SNMPTLSTMPARAMSCLIENTFINGERPRINT_MAX_SIZE];
+    size_t snmpTlstmParamsClientFingerprint_len;
+    char snmpTlstmParamsStorageType;
+    char snmpTlstmParamsRowStatus;
+ } snmpTlstmParamsTable_undo;
+
+    /*
+     * Typical data structure for a row entry
+     */
+typedef struct snmpTlstmParamsTable_entry_s {
+    /* Index values */
+    char snmpTargetParamsName[SNMPTARGETPARAMSNAME_MAX_SIZE];
+    size_t snmpTargetParamsName_len;
+
+    /* Column values */
+    char snmpTlstmParamsClientFingerprint[SNMPTLSTMPARAMSCLIENTFINGERPRINT_MAX_SIZE];
+    size_t snmpTlstmParamsClientFingerprint_len;
+    char snmpTlstmParamsStorageType;
+    char snmpTlstmParamsRowStatus;
+
+    char            hashType;
+    char            params_flags;
+
+    /* used during set processing */
+     snmpTlstmParamsTable_undo *undo;
+} snmpTlstmParamsTable_entry;
+
+static Netsnmp_Node_Handler snmpTlstmParamsTable_handler;
+static NetsnmpCacheLoad snmpTlstmParamsTable_load;
+static NetsnmpCacheFree snmpTlstmParamsTable_free;
+
+static int _count_handler(netsnmp_mib_handler *handler,
+                          netsnmp_handler_registration *reginfo,
+                          netsnmp_agent_request_info *reqinfo,
+                          netsnmp_request_info *requests);
+static void _tlstmParams_init_persistence(void);
+static void _params_add(snmpTlstmParamsTable_entry *entry);
+static void _params_remove(snmpTlstmParamsTable_entry *entry);
+static void _params_tweak_storage(snmpTlstmParamsTable_entry *entry);
+
+static uint32_t                _last_changed = 0;
+static netsnmp_tdata          *_table_data = NULL;
+
+/*
+ * Initialize the snmpTlstmParamsTable table by defining its contents
+ * and how it's structured
+ */
+void
+init_snmpTlstmParamsTable(void)
+{
+    oid reg_oid[] = {SNMP_TLS_TM_BASE,2,2,1,6};
+    const size_t reg_oid_len   = OID_LENGTH(reg_oid);
+    netsnmp_handler_registration    *reg;
+    netsnmp_table_registration_info *table_info;
+    netsnmp_cache                   *cache;
+    netsnmp_watcher_info            *watcher;
+
+    DEBUGMSGTL(("tlstmParamsTable:init", "initializing table snmpTlstmParamsTable\n"));
+
+    reg = netsnmp_create_handler_registration
+        ("snmpTlstmParamsTable", snmpTlstmParamsTable_handler, reg_oid,
+         reg_oid_len, HANDLER_CAN_RWRITE);
+
+    _table_data = netsnmp_tdata_create_table( "snmpTlstmParamsTable", 0 );
+    if (NULL == _table_data) {
+        snmp_log(LOG_ERR,"error creating tdata table for snmpTlstmParamsTable\n");
+        return;
+    }
+    cache = netsnmp_cache_create(SNMPTLSTMPARAMSTABLE_TIMEOUT,
+                                  snmpTlstmParamsTable_load,
+                                 snmpTlstmParamsTable_free,
+                                  reg_oid, reg_oid_len);
+    if (NULL == cache) {
+        snmp_log(LOG_ERR,"error creating cache for snmpTlstmParamsTable\n");
+        netsnmp_tdata_delete_table(_table_data);
+        _table_data = NULL;
+        return;
+    }
+    cache->magic = (void *)_table_data;
+    cache->flags = NETSNMP_CACHE_DONT_INVALIDATE_ON_SET;
+
+    table_info = SNMP_MALLOC_TYPEDEF( netsnmp_table_registration_info );
+    if (NULL == table_info) {
+        snmp_log(LOG_ERR,"error creating table info for snmpTlstmParamsTable\n");
+        netsnmp_tdata_delete_table(_table_data);
+        _table_data = NULL;
+        netsnmp_cache_free(cache);
+        return;
+    }
+    /*
+     * populate index types
+     */
+    netsnmp_table_helper_add_indexes(table_info,
+                                     /* index: snmpTargetParamsName */
+                                     ASN_PRIV_IMPLIED_OCTET_STR,  0);
+
+    table_info->min_column = SNMPTLSTMPARAMSTABLE_MIN_COLUMN;
+    table_info->max_column = SNMPTLSTMPARAMSTABLE_MAX_COLUMN;
+    
+    netsnmp_tdata_register( reg, _table_data, table_info );
+    netsnmp_inject_handler_before( reg, netsnmp_cache_handler_get(cache),
+                                   "table_container");
+
+    /*
+     * register scalars
+     */
+    reg_oid[10] = 4;
+    reg = netsnmp_create_handler_registration("snmpTlstmParamsCount",
+                                              _count_handler, reg_oid,
+                                              OID_LENGTH(reg_oid),
+                                              HANDLER_CAN_RONLY);
+    if (NULL == reg)
+        snmp_log(LOG_ERR,
+                 "could not create handler for snmpTlstmParamsCount\n");
+    else {
+        netsnmp_register_scalar(reg);
+        if (cache) 
+            netsnmp_inject_handler_before(reg,
+                                          netsnmp_cache_handler_get(cache),
+                                          "snmpTlstmParamsCount");
+    }
+    
+    reg_oid[10] = 5;
+    reg = netsnmp_create_handler_registration(
+        "snmpTlstmParamsTableLastChanged", NULL, reg_oid,
+        OID_LENGTH(reg_oid), HANDLER_CAN_RONLY);
+    watcher = netsnmp_create_watcher_info((void*)&_last_changed,
+                                          sizeof(_last_changed),
+                                          ASN_TIMETICKS,
+                                          WATCHER_FIXED_SIZE);
+    if ((NULL == reg) || (NULL == watcher))
+        snmp_log(LOG_ERR,
+                 "could not create handler for snmpTlstmParamsTableLastChanged\n");
+    else
+        netsnmp_register_watched_scalar(reg, watcher);
+
+    /*
+     * Initialise the contents of the table here
+     */
+    _tlstmParams_init_persistence();
+}
+
+/** **************************************************************************
+ *
+ * utility functions for table structures
+ *
+ */
+/* create a new row in the table */
+netsnmp_tdata_row *
+snmpTlstmParamsTable_createEntry(netsnmp_tdata *table_data,
+                                 char* snmpTargetParamsName,
+                                 size_t snmpTargetParamsName_len ) {
+    snmpTlstmParamsTable_entry *entry;
+    netsnmp_tdata_row *row;
+
+    if ((NULL == snmpTargetParamsName) || (snmpTargetParamsName_len >
+                                           sizeof(entry->snmpTargetParamsName)))
+        return NULL;
+
+    entry = SNMP_MALLOC_TYPEDEF(snmpTlstmParamsTable_entry);
+    if (!entry)
+        return NULL;
+
+    row = netsnmp_tdata_create_row();
+    if (!row) {
+        SNMP_FREE(entry);
+        return NULL;
+    }
+    row->data = entry;
+
+    DEBUGMSGT(("tlstmParamsTable:entry:create", "entry %p / row %p\n",
+               entry, row));
+
+    DEBUGIF("snmpTlstmParamTable:entry:create") {
+        char name[sizeof(entry->snmpTargetParamsName)+1];
+        snprintf(name, sizeof(name), "%s", snmpTargetParamsName);
+        DEBUGMSGT(("tlstmParamsTable:entry:create",
+                   "entry %s %p / row %p\n",
+                   name, entry, row));
+    }
+
+    /*
+     * populate index
+     */
+    memcpy(entry->snmpTargetParamsName, snmpTargetParamsName,
+           snmpTargetParamsName_len);
+    entry->snmpTargetParamsName_len = snmpTargetParamsName_len;
+    netsnmp_tdata_row_add_index( row, ASN_PRIV_IMPLIED_OCTET_STR,
+                                 entry->snmpTargetParamsName,
+                                 snmpTargetParamsName_len);
+
+    entry->snmpTlstmParamsClientFingerprint[0] = '\0';
+    entry->snmpTlstmParamsClientFingerprint_len = 0;
+    entry->snmpTlstmParamsRowStatus = RS_NOTREADY;
+    entry->snmpTlstmParamsStorageType = ST_NONVOLATILE;
+        
+    if (table_data) {
+        DEBUGMSGTL(("tlstmParamsTable:row:insert", "row %p\n",
+                    row));
+        netsnmp_tdata_add_row( table_data, row );
+    }
+    return row;
+}
+
+/* allocate undo resources */
+static snmpTlstmParamsTable_undo *
+_allocUndo(snmpTlstmParamsTable_entry *entry)
+{
+    if (!entry)
+        return NULL;
+    
+    entry->undo = SNMP_MALLOC_TYPEDEF(snmpTlstmParamsTable_undo);
+    if (!entry->undo)
+        return NULL;
+
+    entry->undo->is_consistent = -1; /* don't know */
+
+    /* TODO: allocated any other resources needed */
+
+    return entry->undo;
+}
+
+/* free undo resources */
+static void
+_freeUndo(snmpTlstmParamsTable_entry *entry)
+{
+    if (!entry || !entry->undo)
+        return;
+
+    /* TODO: release any allocated resources */
+    SNMP_FREE(entry->undo);
+}
+
+/* remove a row from the table */
+void
+snmpTlstmParamsTable_removeEntry(netsnmp_tdata     *table_data, 
+                                 netsnmp_tdata_row *row)
+{
+    snmpTlstmParamsTable_entry *entry;
+
+    if (!row)
+        return;    /* Nothing to remove */
+
+    entry = (snmpTlstmParamsTable_entry *)row->data;
+
+    DEBUGMSGT(("tlstmParamsTable:entry:delete", "entry %p / row %p\n",
+               entry, row));
+
+    if (table_data) {
+        DEBUGMSGTL(("tlstmParamsTable:row:remove", "row %p\n", row));
+        netsnmp_tdata_remove_and_delete_row( table_data, row );
+    }
+    else
+        netsnmp_tdata_delete_row( row );    
+
+    if (entry && entry->undo)
+        _freeUndo(entry);
+    SNMP_FREE( entry ); /* TODO - release any other internal resources */
+}
+
+/** **************************************************************************
+ *
+ * handle cache / interactions with snmpTlstmParams container in snmplib
+ *
+ */
+static void
+_params_add(snmpTlstmParamsTable_entry *entry)
+{
+    snmpTlstmParams     *params;
+
+    if (NULL == entry)
+        return;
+
+    DEBUGMSGTL(("tlstmParamsTable:params:add", "name %s, fp %s\n",
+                entry->snmpTargetParamsName, entry->snmpTlstmParamsClientFingerprint));
+
+    params =
+        netsnmp_tlstmParams_create(entry->snmpTargetParamsName,
+                                   entry->hashType,
+                                   entry->snmpTlstmParamsClientFingerprint,
+                                   entry->snmpTlstmParamsClientFingerprint_len);
+    if (NULL == params)
+        return;
+
+    params->flags = TLSTM_PARAMS_FROM_MIB;
+    if (entry->snmpTlstmParamsStorageType == ST_NONVOLATILE)
+        params->flags |= TLSTM_PARAMS_NONVOLATILE;
+
+    if (netsnmp_tlstmParams_add(params) != 0) {
+        netsnmp_tlstmParams_free(params);
+    }
+}
+
+static void
+_params_remove(snmpTlstmParamsTable_entry *entry)
+{
+    snmpTlstmParams      index, *found;
+
+    if (NULL == entry)
+        return;
+
+    DEBUGMSGTL(("tlstmParamsTable:params:remove", "name %s\n",
+                entry->snmpTargetParamsName));
+
+    index.name = entry->snmpTargetParamsName;
+    found = netsnmp_tlstmParams_find(&index);
+    if (found) {
+        netsnmp_tlstmParams_remove(found);
+        netsnmp_tlstmParams_free(found);
+    }
+    entry->params_flags = 0;
+}
+
+static void
+_params_tweak_storage(snmpTlstmParamsTable_entry *entry)
+{
+    snmpTlstmParams     *params, index;
+
+    if (NULL == entry)
+        return;
+
+    DEBUGMSGTL(("tlstmParamsTable:params:tweak", "name %s, st %d\n",
+                entry->snmpTargetParamsName, entry->snmpTlstmParamsStorageType));
+
+    index.name = entry->snmpTargetParamsName;
+    params = netsnmp_tlstmParams_find(&index);
+    if (NULL == params) {
+        DEBUGMSGTL(("tlstmParamsTable:params:tweak",
+                    "couldn't find params!\n"));
+        return;
+    }
+
+    if (entry->snmpTlstmParamsStorageType == ST_NONVOLATILE)
+        params->flags |= TLSTM_PARAMS_NONVOLATILE;
+    else
+        params->flags &= ~TLSTM_PARAMS_NONVOLATILE;
+}
+
+static netsnmp_tdata_row *
+_entry_from_params(snmpTlstmParams  *params)
+{
+    netsnmp_tdata_row *row;
+    snmpTlstmParamsTable_entry *entry;
+
+    row = snmpTlstmParamsTable_createEntry(NULL, params->name,
+                                       strlen(params->name));
+    if (NULL == row) {
+        snmp_log(LOG_ERR, "can create snmpTlstmParams row entry\n");
+        return NULL;
+    }
+    entry = row->data;
+
+    if (params->flags & TLSTM_PARAMS_FROM_CONFIG)
+        entry->snmpTlstmParamsStorageType = ST_PERMANENT;
+    else if (! (params->flags & TLSTM_PARAMS_NONVOLATILE))
+        entry->snmpTlstmParamsStorageType = ST_VOLATILE;
+
+    entry->snmpTlstmParamsRowStatus = RS_ACTIVE;
+
+    if (params->fingerprint) {
+        entry->snmpTlstmParamsClientFingerprint_len = 
+            strlen(params->fingerprint);
+        if (entry->snmpTlstmParamsClientFingerprint_len >
+            sizeof(entry->snmpTlstmParamsClientFingerprint))
+            entry->snmpTlstmParamsClientFingerprint_len =
+                sizeof(entry->snmpTlstmParamsClientFingerprint) - 1;
+        memcpy(entry->snmpTlstmParamsClientFingerprint, params->fingerprint,
+               entry->snmpTlstmParamsClientFingerprint_len);
+        entry->snmpTlstmParamsClientFingerprint[sizeof(entry->snmpTlstmParamsClientFingerprint) - 1] = 0;
+    }
+    entry->hashType = params->hashType;
+    entry->params_flags = params->flags;
+
+    return row;
+}
+
+static int
+snmpTlstmParamsTable_load( netsnmp_cache *cache, void *vmagic )
+ {
+    netsnmp_tdata     *table = (netsnmp_tdata *)vmagic;
+    netsnmp_tdata_row *row;
+    netsnmp_container *active_params;
+    netsnmp_iterator  *itr;
+    snmpTlstmParams   *params;
+    int                rc = 0;
+
+    active_params = netsnmp_tlstmParams_container();
+    if (NULL == active_params)
+        return 0;
+
+    DEBUGMSGTL(("tlstmParamsTable:cache:load", "snmpTlstmParams %" NETSNMP_PRIz "d rows\n",
+                CONTAINER_SIZE(active_params)));
+    itr = CONTAINER_ITERATOR(active_params);
+    if (NULL == itr) {
+        DEBUGMSGTL(("tlstmParamsTable:cache:load",
+                    "cant get iterator\n"));
+        return -1;
+    }
+
+    /*
+     * insert rows for active params into tbl container
+     */
+    params = ITERATOR_FIRST(itr);
+    for( ; params; params = ITERATOR_NEXT(itr)) {
+
+        row = _entry_from_params(params);
+        if (NULL == row) {
+            rc =-1;
+            break;
+        }
+        if (netsnmp_tdata_add_row(table, row) != SNMPERR_SUCCESS) {
+            snmpTlstmParamsTable_removeEntry(NULL, row);
+            rc = -1;
+            break;
+        }
+    }
+    ITERATOR_RELEASE(itr);
+
+    DEBUGMSGTL(("tlstmParamsTable:cache:load", "done, %" NETSNMP_PRIz "d rows\n",
+                CONTAINER_SIZE(table->container)));
+
+    return rc;
+}
+
+static void
+snmpTlstmParamsTable_free( netsnmp_cache *cache, void *vmagic )
+{
+    netsnmp_tdata            *table = (netsnmp_tdata *)vmagic;
+    netsnmp_tdata_row        *row;
+    netsnmp_iterator         *tbl_itr;
+    snmpTlstmParamsTable_entry   *entry;
+
+    DEBUGMSGTL(("tlstmParamsTable:cache:free", "called, %" NETSNMP_PRIz "d rows\n",
+                CONTAINER_SIZE(table->container)));
+
+    tbl_itr = CONTAINER_ITERATOR(table->container);
+    if (NULL == tbl_itr) {
+        DEBUGMSGTL(("tlstmParamsTable:cache:free",
+                    "cant get entry iterator\n"));
+        return;
+    }
+
+    row = ITERATOR_FIRST(tbl_itr);
+    for( ; row; row = ITERATOR_NEXT(tbl_itr)) {
+        entry = row->data;
+
+        /*
+         * remove all active rows (they are in the params container kept
+         * by the library). Keep inactive ones for next time.
+         */
+        if (entry->snmpTlstmParamsRowStatus == RS_ACTIVE) {
+            snmpTlstmParamsTable_removeEntry(NULL, row);
+            ITERATOR_REMOVE(tbl_itr);
+            continue;
+        }
+    }
+    ITERATOR_RELEASE(tbl_itr);
+
+    DEBUGMSGTL(("tlstmParamsTable:cache:free", "done, %" NETSNMP_PRIz "d rows\n",
+                CONTAINER_SIZE(table->container)));
+}
+
+/** **************************************************************************
+ *
+ * handles requests for the snmpTlstmParamsTable table
+ *
+ */
+static int
+snmpTlstmParamsTable_handler(
+    netsnmp_mib_handler               *handler,
+    netsnmp_handler_registration      *reginfo,
+    netsnmp_agent_request_info        *reqinfo,
+    netsnmp_request_info              *requests) {
+
+    netsnmp_request_info       *request = NULL;
+    netsnmp_table_request_info *table_info;
+    netsnmp_tdata              *table_data;
+    netsnmp_tdata_row          *table_row;
+    snmpTlstmParamsTable_entry          *table_entry;
+    int                         ret = SNMP_ERR_NOERROR;
+    
+    DEBUGMSGTL(("tlstmParamsTable:handler", "Processing %s mode (%d) request\n",
+                se_find_label_in_slist("agent_mode", reqinfo->mode),
+                reqinfo->mode));
+
+    switch (reqinfo->mode) {
+    /** ######################################################### GET #####
+     *
+     *   Read-support (also covers GetNext requests)
+     */
+    case MODE_GET:
+        for (request=requests; request; request=request->next) {
+            if (request->processed)
+                continue;
+
+            table_entry = (snmpTlstmParamsTable_entry *)
+                              netsnmp_tdata_extract_entry(request);
+            table_info  =     netsnmp_extract_table_info( request);
+            switch (table_info->colnum) {
+            case COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT: 
+            {
+                u_char bin[42], *ptr = bin;
+                size_t len = sizeof(bin), offset = 1;
+                int    rc;
+                bin[0] = table_entry->hashType;
+                netsnmp_assert(table_entry->hashType != 0);
+                rc = netsnmp_hex_to_binary(
+                    &ptr, &len, &offset, 0,
+                    table_entry->snmpTlstmParamsClientFingerprint, NULL);
+                if (1 != rc)
+                    netsnmp_set_request_error(reqinfo, request,
+                                              SNMP_ERR_GENERR);
+                else
+                    snmp_set_var_typed_value(request->requestvb, ASN_OCTET_STR,
+                                             bin, offset);
+            }
+                break; /* case COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT */
+            case COLUMN_SNMPTLSTMPARAMSSTORAGETYPE:
+                snmp_set_var_typed_integer( request->requestvb, ASN_INTEGER,
+                                            table_entry->snmpTlstmParamsStorageType);
+                break; /* case COLUMN_SNMPTLSTMPARAMSSTORAGETYPE */
+            case COLUMN_SNMPTLSTMPARAMSROWSTATUS:
+                snmp_set_var_typed_integer( request->requestvb, ASN_INTEGER,
+                                            table_entry->snmpTlstmParamsRowStatus);
+                break; /* case COLUMN_SNMPTLSTMPARAMSROWSTATUS */
+            default:
+                netsnmp_set_request_error(reqinfo, request,
+                                          SNMP_NOSUCHOBJECT);
+                break;
+            } /* switch colnum */
+        } /* for requests */
+        break; /* case MODE_GET */
+
+        /*
+         * Write-support
+         */
+    /** #################################################### RESERVE1 #####
+     *
+     *   In RESERVE1 we are just checking basic ASN.1 size/type restrictions.
+     * You probably don't need to change any of this code. Don't change any
+     * of the column values here. Save that for the ACTION phase.
+     *
+     *   The next phase is RESERVE2 or FREE.
+     */
+    case MODE_SET_RESERVE1:
+        for (request=requests; request; request=request->next) {
+            table_entry = (snmpTlstmParamsTable_entry *)
+                              netsnmp_tdata_extract_entry(request);
+            table_info  =     netsnmp_extract_table_info( request);
+
+            if ((NULL != table_entry) &&
+                (ST_READONLY == table_entry->snmpTlstmParamsStorageType)) {
+                ret = SNMP_ERR_NOTWRITABLE;
+                break;
+            }
+            
+            /*
+             * for each column, allocate any additional resources needed
+             * beyond what is in the undo structure.
+             */
+            switch (table_info->colnum) {
+            case COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT:
+                ret = netsnmp_check_vb_type_and_max_size(
+                          request->requestvb, ASN_OCTET_STR, sizeof(table_entry->snmpTlstmParamsClientFingerprint));
+                /** check len/algorithm MIB requirements */
+                if (SNMP_ERR_NOERROR == ret)
+                    ret = netsnmp_cert_check_vb_fingerprint(request->requestvb);
+
+                break; /* case COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT */
+
+            case COLUMN_SNMPTLSTMPARAMSSTORAGETYPE:
+                ret = netsnmp_check_vb_storagetype(request->requestvb,
+                         (table_entry ? table_entry->snmpTlstmParamsStorageType : ST_NONE ));
+                break; /* case COLUMN_SNMPTLSTMPARAMSSTORAGETYPE */
+
+            case COLUMN_SNMPTLSTMPARAMSROWSTATUS:
+                ret = netsnmp_check_vb_rowstatus_with_storagetype(request->requestvb,
+                         (table_entry ? table_entry->snmpTlstmParamsRowStatus : RS_NONEXISTENT ),
+                         (table_entry ? table_entry->snmpTlstmParamsStorageType : ST_NONE));
+                break; /* case COLUMN_SNMPTLSTMPARAMSROWSTATUS */
+            default:
+                ret = SNMP_ERR_NOTWRITABLE;
+            } /* switch colnum */
+
+            if ( ret != SNMP_ERR_NOERROR )
+                break;
+        }/* for requests */
+        break; /* case MODE_SET_RESERVE1 */
+
+    /** #################################################### RESERVE2 #####
+     *
+     *   RESERVE2 is for checking additional restrictions from the MIB.
+     * Since these restrictions are often in the description of the object,
+     * mib2c can't generate code. It's possible that you need to add
+     * additional checks here. However, don't change any of the column
+     * values here. Save that for the ACTION phase.
+     *
+     *   The next phase is ACTION or FREE.
+     */
+    case MODE_SET_RESERVE2:
+        for (request=requests; request; request=request->next) {
+            table_entry = (snmpTlstmParamsTable_entry *)
+                netsnmp_tdata_extract_entry(request);
+            table_data = netsnmp_tdata_extract_table(request);
+            table_info = netsnmp_extract_table_info( request);
+            /*
+             * if no table_row, create one
+             */
+            if ( !table_entry ) {
+                table_row = snmpTlstmParamsTable_createEntry
+                    (table_data,  (char*)table_info->indexes->val.string, 
+                     table_info->indexes->val_len);
+                if (!table_row) {
+                    ret = SNMP_ERR_RESOURCEUNAVAILABLE;
+                    break;
+                }
+                table_entry = table_row->data;
+                _allocUndo(table_entry);
+                if (table_entry && !table_entry->undo) {
+                    snmpTlstmParamsTable_removeEntry(table_data, table_row);
+                    table_row = NULL;
+                    ret = SNMP_ERR_RESOURCEUNAVAILABLE;
+                    break;
+                }
+                table_entry->undo->fate = FATE_NEWLY_CREATED;
+                /** associate row with requests */
+                netsnmp_insert_tdata_row( request, table_row );
+            }
+            
+            /** allocate undo structure, if needed */
+            if(!table_entry->undo) {
+                _allocUndo(table_entry);
+                if (!table_entry->undo) {
+                    ret = SNMP_ERR_RESOURCEUNAVAILABLE;
+                    break;
+                }
+            }
+            
+            /** don't allow multiple sets of same column */
+            if (table_entry->undo->req[table_info->colnum]) {
+                DEBUGMSGT(("tlstmParamsTable:reserve2",
+                           "multiple sets to col %d in request\n",
+                           table_info->colnum));
+                ret = SNMP_ERR_INCONSISTENTNAME;
+                break;
+            }
+            table_entry->undo->req[table_info->colnum] = request;
+            
+            if ( ret != SNMP_ERR_NOERROR )
+                break;
+        } /* for requests */
+
+        /** make sure rowstatus is used to create rows */
+        if ( ret == SNMP_ERR_NOERROR ) {
+            for (request = requests; request; request = request->next) {
+                if (request->processed)
+                    continue;
+
+                table_entry = (snmpTlstmParamsTable_entry *)
+                    netsnmp_tdata_extract_entry(request);
+                if ((table_entry->undo->fate != FATE_NEWLY_CREATED) ||
+                    (table_entry->undo->req[COLUMN_SNMPTLSTMPARAMSROWSTATUS]))
+                    continue;
+                ret = SNMP_ERR_INCONSISTENTNAME;
+            break;
+            } /* for requests / creation */
+        } /* if no error */
+        break; /* case MODE_SET_RESERVE2 */
+
+    /** ######################################################## FREE #####
+     *
+     *   FREE is for cleaning up after a failed request (during either
+     * RESERVE1 or RESERVE2). So any allocated resources need to be
+     * released.
+     *
+     *   This the final phase for this path in the state machine.
+     */
+    case MODE_SET_FREE:
+        /*
+         * release undo resources
+         * remove any newly created rows
+         */
+        for (request=requests; request; request=request->next) {
+            table_row   =     netsnmp_tdata_extract_row(  request);
+            table_data  =  netsnmp_tdata_extract_table(request);
+            table_entry = (snmpTlstmParamsTable_entry *)
+                              netsnmp_tdata_extract_entry(request);
+            
+            if ( !table_entry || !table_entry->undo )
+                continue;
+
+            /** disassociate row with requests */
+            netsnmp_remove_tdata_row( request, table_row );
+
+            if (FATE_NEWLY_CREATED == table_entry->undo->fate )
+                snmpTlstmParamsTable_removeEntry( table_data, table_row );
+            else
+                _freeUndo(table_entry);
+        }
+        break; /* case MODE_SET_FREE */
+
+    /** ###################################################### ACTION #####
+     *
+     *   In the ACTION phase, we perform any sets that can be undone.
+     * (Save anything that can't be undone for the COMMIT phase.)
+     *
+     *   After individual columns have been done, you should check that the
+     * row as a whole is consistent.
+     *
+     * The next phase is UNDO or COMMIT.
+     */
+    case MODE_SET_ACTION:
+        for (request=requests; request; request=request->next) {
+            table_entry = (snmpTlstmParamsTable_entry *)
+                              netsnmp_tdata_extract_entry(request);
+            table_info  =     netsnmp_extract_table_info( request);
+
+            switch (table_info->colnum) {
+            case COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT:
+            {
+                u_char *tmp = (u_char*)table_entry->snmpTlstmParamsClientFingerprint;
+
+                memcpy( table_entry->undo->snmpTlstmParamsClientFingerprint,
+                        table_entry->snmpTlstmParamsClientFingerprint,
+                        sizeof(table_entry->snmpTlstmParamsClientFingerprint));
+                table_entry->undo->snmpTlstmParamsClientFingerprint_len =
+                    table_entry->snmpTlstmParamsClientFingerprint_len;
+
+                table_entry->hashType = request->requestvb->val.string[0];
+                memset( table_entry->snmpTlstmParamsClientFingerprint, 0,
+                        sizeof(table_entry->snmpTlstmParamsClientFingerprint));
+                table_entry->snmpTlstmParamsClientFingerprint_len =
+                    sizeof(table_entry->snmpTlstmParamsClientFingerprint);
+                table_entry->snmpTlstmParamsClientFingerprint_len =
+                    netsnmp_binary_to_hex(&tmp, &table_entry->snmpTlstmParamsClientFingerprint_len,
+                                          0, &request->requestvb->val.string[1],
+                                          request->requestvb->val_len - 1);
+                if (0 == table_entry->snmpTlstmParamsClientFingerprint_len)
+                    ret = SNMP_ERR_GENERR;
+            }
+                break; /* case COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT */
+
+            case COLUMN_SNMPTLSTMPARAMSSTORAGETYPE:
+                /* save snmpTlstmParamsStorageType value */
+                table_entry->undo->snmpTlstmParamsStorageType = table_entry->snmpTlstmParamsStorageType;
+                /* get value from varbind */
+                table_entry->snmpTlstmParamsStorageType = *request->requestvb->val.integer;
+                break; /* case COLUMN_SNMPTLSTMPARAMSSTORAGETYPE */
+
+            case COLUMN_SNMPTLSTMPARAMSROWSTATUS:
+                /* save snmpTlstmParamsRowStatus value */
+                table_entry->undo->snmpTlstmParamsRowStatus = table_entry->snmpTlstmParamsRowStatus;
+                /* get value from varbind  */
+                table_entry->snmpTlstmParamsRowStatus     = *request->requestvb->val.integer;
+                break; /* case COLUMN_SNMPTLSTMPARAMSROWSTATUS */
+            } /* switch colnum */
+            if ( ret != SNMP_ERR_NOERROR )
+                break;
+        } /* set values for requests */
+
+        if ( ret == SNMP_ERR_NOERROR ) {
+
+            /*
+             * All columns now have their final values set. check the
+             * internal consistency of each row.
+             */
+            for (request=requests; request; request=request->next) {
+                table_entry = (snmpTlstmParamsTable_entry *)
+                    netsnmp_tdata_extract_entry(request);
+                table_info  =     netsnmp_extract_table_info( request);
+                
+                if (table_entry->undo->is_consistent != -1)
+                    continue; /* already checked */
+                
+                /** assume consistency */
+                table_entry->undo->is_consistent = 1;
+                
+                if ((RS_IS_ACTIVE(table_entry->snmpTlstmParamsRowStatus)) &&
+                    ((!table_entry->undo->req[COLUMN_SNMPTLSTMPARAMSROWSTATUS]) ||
+                     (RS_IS_ACTIVE(table_entry->undo->snmpTlstmParamsRowStatus)))) {
+                    /*
+                     * check mib restrictions on active rows.
+                     */
+                    if (table_entry->undo->req[COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT]) {
+                        table_entry->undo->is_consistent = 0;
+                        request = table_entry->undo->req[COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT];
+                        ret = SNMP_ERR_INCONSISTENTVALUE; /* per mib */
+                    }
+                } /* active row */
+                else if (RS_IS_GOING_ACTIVE(table_entry->snmpTlstmParamsRowStatus)) {
+                    /*
+                     * check restrictions for activating a row
+                     */
+                    /** if going active, inconsistency is fatal */
+                    if (!table_entry->undo->is_consistent) {
+                        if (FATE_NEWLY_CREATED == table_entry->undo->fate)
+                            ret = SNMP_ERR_INCONSISTENTNAME;
+                        else
+                            ret = SNMP_ERR_INCONSISTENTVALUE;
+                        request = table_entry->undo->req[COLUMN_SNMPTLSTMPARAMSROWSTATUS];
+                    }
+                } /* going active */
+                else if (RS_DESTROY == table_entry->snmpTlstmParamsRowStatus) {
+                    /*
+                     * TODO: check restrictions for deleting a row
+                     */
+                    /** can't delete active row */
+                    if (RS_IS_ACTIVE(table_entry->undo->snmpTlstmParamsRowStatus)) {
+                        ret = SNMP_ERR_INCONSISTENTVALUE;
+                        request = table_entry->undo->req[COLUMN_SNMPTLSTMPARAMSROWSTATUS];
+                    }
+                } /* destroy */
+                if ( ret != SNMP_ERR_NOERROR )
+                    break;
+            } /* consistency for requests */
+        } /* if no error */
+        break; /* case MODE_SET_ACTION */
+
+    /** ######################################################## UNDO #####
+     *
+     *   UNDO is for cleaning up any failed requests that went through the
+     * ACTION phase.
+     *
+     *   This the final phase for this path in the state machine.
+     */
+    case MODE_SET_UNDO:
+        for (request=requests; request; request=request->next) {
+            table_entry = (snmpTlstmParamsTable_entry *)
+                              netsnmp_tdata_extract_entry(request);
+            table_row   =     netsnmp_tdata_extract_row(  request);
+            table_data  =     netsnmp_tdata_extract_table(request);
+            table_info  =     netsnmp_extract_table_info( request);
+
+            switch (table_info->colnum) {
+            case COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT:
+                /* restore snmpTlstmParamsClientFingerprint value */
+                memcpy( table_entry->snmpTlstmParamsClientFingerprint,
+                        table_entry->undo->snmpTlstmParamsClientFingerprint,
+                        sizeof(table_entry->snmpTlstmParamsClientFingerprint));
+                table_entry->snmpTlstmParamsClientFingerprint_len =
+                    table_entry->undo->snmpTlstmParamsClientFingerprint_len;
+                break; /* case COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT */
+
+            case COLUMN_SNMPTLSTMPARAMSSTORAGETYPE:
+                /* restore snmpTlstmParamsStorageType value */
+                table_entry->snmpTlstmParamsStorageType =
+                    table_entry->undo->snmpTlstmParamsStorageType;
+                break; /* case COLUMN_SNMPTLSTMPARAMSSTORAGETYPE */
+
+                case COLUMN_SNMPTLSTMPARAMSROWSTATUS:
+                    /* restore snmpTlstmParamsRowStatus value */
+                    table_entry->snmpTlstmParamsRowStatus = table_entry->undo->snmpTlstmParamsRowStatus;
+                    break; /* case COLUMN_SNMPTLSTMPARAMSROWSTATUS */
+            } /* switch colnum */
+        } /* for requests */
+
+        /*
+         * release undo data
+         * or remove any newly created rows
+         */
+        for (request=requests; request; request=request->next) {
+            table_row   =     netsnmp_tdata_extract_row(  request);
+            table_entry = (snmpTlstmParamsTable_entry *)
+                              netsnmp_tdata_extract_entry(request);
+            
+            if ( !table_entry || !table_entry->undo )
+                continue;
+
+            /** disassociate row with requests */
+            netsnmp_remove_tdata_row( request, table_row );
+            
+            if (FATE_NEWLY_CREATED == table_entry->undo->fate )
+                snmpTlstmParamsTable_removeEntry( table_data, table_row );
+            else
+                _freeUndo(table_entry);
+        } /* for requests */
+        break; /* case MODE_SET_UNDO */
+
+    /** ###################################################### COMMIT #####
+     *
+     *   COMMIT is the final success state, when all changes are finalized.
+     * There is not recovery state should something faile here.
+     *
+     *   This the final phase for this path in the state machine.
+     */
+    case MODE_SET_COMMIT:
+        for (request=requests; request; request=request->next) {
+            table_row   =     netsnmp_tdata_extract_row(  request);
+            table_data  =     netsnmp_tdata_extract_table(request);
+            table_info  =     netsnmp_extract_table_info(    request);
+            table_entry = (snmpTlstmParamsTable_entry *)
+                              netsnmp_tdata_extract_entry(request);
+
+            if (!table_entry || !table_entry->undo)
+                continue;
+            
+            if ((RS_NOTREADY == table_entry->snmpTlstmParamsRowStatus) &&
+                table_entry->undo->is_consistent)
+                table_entry->snmpTlstmParamsRowStatus = RS_NOTINSERVICE;
+            else if ((RS_NOTINSERVICE == table_entry->snmpTlstmParamsRowStatus) &&
+                     (0 == table_entry->undo->is_consistent))
+                table_entry->snmpTlstmParamsRowStatus = RS_NOTREADY;
+
+            /** release undo data for requests with no rowstatus */
+            if (table_entry->undo &&
+                !table_entry->undo->req[COLUMN_SNMPTLSTMPARAMSROWSTATUS] != 0) {
+                _freeUndo(table_entry);
+                
+                /** update active addrs */
+                if ((0 == table_entry->params_flags) &&
+                    (table_entry->snmpTlstmParamsRowStatus == RS_ACTIVE))
+                    _params_add(table_entry);
+                else if ((0 != table_entry->params_flags) &&
+                         (table_entry->snmpTlstmParamsRowStatus == RS_DESTROY))
+                    _params_remove(table_entry);
+            }
+
+            switch (table_info->colnum) {
+
+            case COLUMN_SNMPTLSTMPARAMSROWSTATUS:
+                switch (table_entry->snmpTlstmParamsRowStatus) {
+                case RS_CREATEANDGO:
+                    /** Fall-through */
+                case RS_ACTIVE:
+                    table_entry->snmpTlstmParamsRowStatus = RS_ACTIVE;
+                    if (0 == table_entry->params_flags)
+                        _params_add(table_entry);
+                    break;
+
+                case RS_CREATEANDWAIT:
+                    /** Fall-through */
+                case RS_NOTINSERVICE:
+                    /** simply set status based on consistency */
+                    if (table_entry->undo->is_consistent)
+                        table_entry->snmpTlstmParamsRowStatus = RS_NOTINSERVICE;
+                    else
+                        table_entry->snmpTlstmParamsRowStatus = RS_NOTREADY;
+                    if (0 != table_entry->params_flags)
+                        _params_remove(table_entry);
+                    break;
+
+                case RS_DESTROY:
+                    if (0 != table_entry->params_flags)
+                        _params_remove(table_entry);
+                    /** disassociate row with requests */
+                    netsnmp_remove_tdata_row( request, table_row );
+                    snmpTlstmParamsTable_removeEntry(table_data, table_row );
+                    table_row = NULL;
+                    table_entry = NULL;
+                }
+                /** release undo data */
+                _freeUndo(table_entry);
+                break; /* case COLUMN_SNMPTLSTMPARAMSROWSTATUS */
+
+            case COLUMN_SNMPTLSTMPARAMSSTORAGETYPE:
+                    if (RS_ACTIVE == table_entry->snmpTlstmParamsRowStatus)
+                        _params_tweak_storage(table_entry);
+                    break;
+
+            case COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT:
+                break;
+            } /* switch colnum */
+        } /* for requests */
+
+        /** update last changed */
+        _last_changed = netsnmp_get_agent_uptime();
+
+        /** set up to save persistent store */
+        snmp_store_needed(NULL);
+
+        break; /* case MODE_SET_COMMIT */
+    }  /* switch (reqinfo->mode) */
+    
+    if ( ret != SNMP_ERR_NOERROR )
+        netsnmp_set_request_error( reqinfo, request, ret);
+    
+    return SNMP_ERR_NOERROR;
+}
+
+
+static int
+_count_handler(netsnmp_mib_handler *handler,
+               netsnmp_handler_registration *reginfo,
+               netsnmp_agent_request_info *reqinfo,
+               netsnmp_request_info *requests)
+{
+    int                val;
+
+    if (MODE_GET != reqinfo->mode) {
+        snmp_log(LOG_ERR, "bad mode in RO handler");
+        return SNMP_ERR_GENERR;
+    }
+
+    if (NULL == _table_data->container)
+        val = 0;
+    else
+        val = CONTAINER_SIZE(_table_data->container);
+
+    snmp_set_var_typed_value(requests->requestvb, ASN_GAUGE,
+                             (u_char *) &val, sizeof(val));
+   
+    if (handler->next && handler->next->access_method)
+        return netsnmp_call_next_handler(handler, reginfo, reqinfo,
+                                         requests);
+    
+    return SNMP_ERR_NOERROR;
+}
+
+/***********************************************************************
+ *
+ * PERSISTENCE
+ *
+ ***********************************************************************/
+
+static int _tlstmParamsTable_save(int majorID, int minorID,
+                                  void *serverarg, void *clientarg);
+static int _save_params(snmpTlstmParams *params, void *app_type);
+static int _save_entry(snmpTlstmParamsTable_entry *entry, void *type);
+static void _tlstmParamsTable_row_restore_mib(const char *token, char *buf);
+
+static const char mib_token[] = "snmpTlstmParamsEntry";
+
+/************************************************************
+ * *_init_persistence should be called from the main table
+ * init routine.
+ *
+ * If your table depends on rows in another table,
+ * you should register your callback after the other table,
+ * which should ensure the rows on which you depend are saved
+ * (and re-created) before the dependent rows.
+ */
+void
+_tlstmParams_init_persistence(void)
+{
+    int             rc;
+
+    register_config_handler(NULL, mib_token, _tlstmParamsTable_row_restore_mib,
+                            NULL, NULL);
+    rc = snmp_register_callback(SNMP_CALLBACK_LIBRARY,
+                                SNMP_CALLBACK_STORE_DATA,
+                                _tlstmParamsTable_save,
+                                _table_data->container);
+
+    if (rc != SNMP_ERR_NOERROR)
+        snmp_log(LOG_ERR, "error registering for STORE_DATA callback "
+                 "in _tlstmParams_init_persistence\n");
+}
+
+static int
+_tlstmParamsTable_save(int majorID, int minorID, void *serverarg,
+                       void *clientarg)
+{
+    char            sep[] =
+        "##############################################################";
+    char            buf[] = "#\n" "# tlstmParams persistent data\n" "#";
+    char           *type = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                                 NETSNMP_DS_LIB_APPTYPE);
+
+    netsnmp_container *active_params = netsnmp_tlstmParams_container();
+    netsnmp_tdata_row *row;
+    netsnmp_iterator  *tbl_itr, *params_itr;
+    snmpTlstmParams   *params;
+    snmpTlstmParamsTable_entry *entry;
+
+    if ((CONTAINER_SIZE(active_params) == 0) &&
+        (CONTAINER_SIZE(_table_data->container) == 0))
+        return SNMPERR_SUCCESS;
+
+    read_config_store((char *) type, sep);
+    read_config_store((char *) type, buf);
+
+    /*
+     * save active rows from params container
+     */
+    if (NULL != active_params) {
+        params_itr = CONTAINER_ITERATOR(active_params);
+        if (NULL == params_itr) {
+            DEBUGMSGTL(("tlstmParamsTable:save",
+                        "cant get params iterator\n"));
+            params = NULL;
+        }
+        else
+            params = ITERATOR_FIRST(params_itr);
+
+        for( ; params; params = ITERATOR_NEXT(params_itr)) {
+            /** don't store config rows */
+            if ((params->flags & TLSTM_PARAMS_FROM_CONFIG) ||
+                ! (params->flags & TLSTM_PARAMS_NONVOLATILE))
+                continue;
+            _save_params(params, type);
+        }
+    }
+    ITERATOR_RELEASE(params_itr);
+
+    /*
+     * save inactive rows from mib
+     */
+    tbl_itr = CONTAINER_ITERATOR(_table_data->container);
+    if (NULL == tbl_itr)
+        DEBUGMSGTL(("tlstmParamsTable:save", "cant get table iterator\n"));
+    else {
+        row = ITERATOR_FIRST(tbl_itr);
+        for( ; row; row = ITERATOR_NEXT(tbl_itr)) {
+            entry = row->data;
+
+            /*
+             * skip all active rows (should be in active_params and thus saved
+             * above) and volatile rows.
+             */
+            if ((entry->snmpTlstmParamsRowStatus == RS_ACTIVE) ||
+                (entry->snmpTlstmParamsStorageType != ST_NONVOLATILE))
+                continue;
+
+            _save_entry(entry, type);
+        }
+        ITERATOR_RELEASE(tbl_itr);
+    }
+
+    read_config_store((char *) type, sep);
+    read_config_store((char *) type, "\n");
+
+    /*
+     * never fails 
+     */
+    return SNMPERR_SUCCESS;
+}
+
+/************************************************************
+ * _tlstmParamsTable_container_row_save
+ */
+static int
+_save_entry(snmpTlstmParamsTable_entry *entry, void *type)
+{
+    char   buf[SNMP_MAXBUF_SMALL], *hashType;
+
+    hashType = se_find_label_in_slist("cert_hash_alg", entry->hashType);
+    if (NULL == hashType) {
+        snmp_log(LOG_ERR, "skipping entry unknown hash type %d\n",
+                 entry->hashType);
+        return SNMP_ERR_GENERR;
+    }
+
+    /*
+     * build the line
+     */
+    netsnmp_assert(0 == entry->snmpTargetParamsName[
+                       entry->snmpTargetParamsName_len]);
+    netsnmp_assert(0 == entry->snmpTlstmParamsClientFingerprint[
+                       entry->snmpTlstmParamsClientFingerprint_len]);
+    snprintf(buf, sizeof(buf), "%s %s %s %s %d", mib_token,
+             entry->snmpTargetParamsName, hashType,
+             entry->snmpTlstmParamsClientFingerprint,
+             entry->snmpTlstmParamsRowStatus);
+    buf[sizeof(buf)-1] = 0;
+
+    read_config_store(type, buf);
+    DEBUGMSGTL(("tlstmParamsTable:row:save", "saving entry '%s'\n", buf));
+
+    return SNMP_ERR_NOERROR;
+}
+
+static int
+_save_params(snmpTlstmParams *params, void *app_type)
+{
+    char buf[SNMP_MAXBUF_SMALL], *hashType;
+
+    if (NULL == params)
+        return SNMP_ERR_GENERR;
+
+    hashType = se_find_label_in_slist("cert_hash_alg", params->hashType);
+    if (NULL == hashType) {
+        snmp_log(LOG_ERR, "skipping entry unknown hash type %d\n",
+                 params->hashType);
+        return SNMP_ERR_GENERR;
+    }
+    snprintf(buf, sizeof(buf), "%s %s --%s %s %d", mib_token, params->name,
+             hashType, params->fingerprint, RS_ACTIVE);
+
+    DEBUGMSGTL(("tlstmParamsTable:params:save", "saving params '%s'\n",
+                buf));
+    read_config_store(app_type, buf);
+
+    return SNMP_ERR_NOERROR;
+}
+
+static void
+_tlstmParamsTable_row_restore_mib(const char *token, char *buf)
+{
+    u_char                 rowStatus;
+    snmpTlstmParams       *params;
+
+    /** need somewhere to save rows */
+    netsnmp_assert(_table_data && _table_data->container); 
+
+    params = netsnmp_tlstmParams_restore_common(&buf);
+    if (NULL == params)
+        return;
+
+    if (NULL == buf) {
+        config_perror("incomplete line");
+        return;
+    }
+    rowStatus = atoi(buf);
+
+    /*
+     * if row is active, add it to the params container so it is available
+     * for use. Do not add it to the table, since it will be added
+     * during cache_load.
+     */
+    if (RS_ACTIVE == rowStatus) {
+        params->flags = TLSTM_PARAMS_FROM_MIB | TLSTM_PARAMS_NONVOLATILE;
+
+        if (netsnmp_tlstmParams_add(params) != 0)
+            netsnmp_tlstmParams_free(params);
+    }
+    else {
+        netsnmp_tdata_row     *row;
+        snmpTlstmParamsTable_entry  *entry;
+
+        row = snmpTlstmParamsTable_createEntry(_table_data, params->name,
+                                               strlen(params->name));
+        if (!row)
+            return;
+
+        entry = row->data;
+        
+        entry->hashType = params->hashType;
+        strlcpy(entry->snmpTlstmParamsClientFingerprint, params->fingerprint,
+                sizeof(entry->snmpTlstmParamsClientFingerprint));
+        entry->snmpTlstmParamsClientFingerprint_len =
+            strlen(entry->snmpTlstmParamsClientFingerprint);
+        entry->snmpTlstmParamsStorageType = ST_NONVOLATILE;
+        entry->snmpTlstmParamsRowStatus = rowStatus;
+        netsnmp_tlstmParams_free(params);
+    }
+}
diff --git a/agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h b/agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h
new file mode 100644
index 0000000..ae33cac
--- /dev/null
+++ b/agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h
@@ -0,0 +1,30 @@
+/*
+ * Note: this file originally auto-generated by mib2c using
+ *  $
+ */
+#ifndef SNMPTLSTMPARAMSTABLE_H
+#define SNMPTLSTMPARAMSTABLE_H
+
+#define SNMP_TLS_TM_PARAMS_COUNT   SNMP_TLS_TM_BASE, 2, 2, 1, 4
+#define SNMP_TLS_TM_PARAMS_CHANGED SNMP_TLS_TM_BASE, 2, 2, 1, 5
+#define SNMP_TLS_TM_PARAMS_TABLE   SNMP_TLS_TM_BASE, 2, 2, 1, 6
+
+/* function declarations */
+void init_snmpTlstmParamsTable(void);
+void initialize_table_snmpTlstmParamsTable(void);
+#define SNMPTLSTMPARAMSTABLE_TIMEOUT  60
+
+/* index definitions for table snmpTlstmParamsTable */
+#define SNMPTARGETPARAMSNAME_MAX_SIZE  32
+
+/* column number definitions for table snmpTlstmParamsTable */
+#define COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT    1
+#define COLUMN_SNMPTLSTMPARAMSSTORAGETYPE    2
+#define COLUMN_SNMPTLSTMPARAMSROWSTATUS    3
+    
+#define SNMPTLSTMPARAMSCLIENTFINGERPRINT_MAX_SIZE    255
+    
+#define SNMPTLSTMPARAMSTABLE_MIN_COLUMN COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT
+#define SNMPTLSTMPARAMSTABLE_MAX_COLUMN COLUMN_SNMPTLSTMPARAMSROWSTATUS
+
+#endif /* SNMPTLSTMPARAMSTABLE_H */
diff --git a/agent/mibgroup/tlstm-mib/snmpTlstmSession.h b/agent/mibgroup/tlstm-mib/snmpTlstmSession.h
new file mode 100644
index 0000000..9bf4ef8
--- /dev/null
+++ b/agent/mibgroup/tlstm-mib/snmpTlstmSession.h
@@ -0,0 +1,6 @@
+#ifndef SNMPTLSTMSESSION_H
+#define SNMPTLSTMSESSION_H
+
+config_require(tlstm-mib/snmpTlstmSession/snmpTlstmSession)
+
+#endif /* SNMPTLSTMSESSION_H */
diff --git a/agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.c b/agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.c
new file mode 100644
index 0000000..09c7b60
--- /dev/null
+++ b/agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.c
@@ -0,0 +1,49 @@
+/*
+ * snmpTlstmSession
+ */
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+
+#include "tlstm-mib.h"
+#include "snmpTlstmSession.h"
+
+static netsnmp_handler_registration* _myreg = NULL;
+
+/** Initializes the snmpTlstmSession module */
+void
+init_snmpTlstmSession(void)
+{
+    static oid      myoid[] = { SNMP_TLS_TM_BASE, 2, 1 };
+    int             rc;
+
+    DEBUGMSGTL(("tlstmSession", "Initializing\n"));
+
+    _myreg = netsnmp_create_handler_registration("snmpTlstmSession", NULL,
+                                                 myoid, OID_LENGTH(myoid),
+                                                 HANDLER_CAN_RONLY);
+    if (NULL == _myreg) {
+        snmp_log(LOG_ERR, "failed to create handler registration for "
+                 "snmpTlstmSession\n");
+        return;
+    }
+
+    rc = NETSNMP_REGISTER_STATISTIC_HANDLER(_myreg, 1, TLSTM);
+    if (MIB_REGISTERED_OK != rc) {
+        snmp_log(LOG_ERR, "failed to register snmpTlstmSession mdoule\n");
+        netsnmp_handler_registration_free(_myreg);
+        _myreg = NULL;
+    }
+
+}
+
+
+void
+shutdown_snmpTlstmSession(void)
+{
+    if (_myreg) {
+        netsnmp_unregister_handler(_myreg);
+        _myreg = NULL;
+    }
+}
diff --git a/agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.h b/agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.h
new file mode 100644
index 0000000..2fcc03c
--- /dev/null
+++ b/agent/mibgroup/tlstm-mib/snmpTlstmSession/snmpTlstmSession.h
@@ -0,0 +1,9 @@
+#ifndef SNMPTLSTMSESSION_H
+#define SNMPTLSTMSESSION_H
+
+/** Initializes the snmpTlstmSession module */
+void init_snmpTlstmSession(void);
+void shutdown_snmpTlstmSession(void);
+
+#endif /* SNMPTLSTMSESSION_H */
+
diff --git a/agent/mibgroup/tsm-mib.h b/agent/mibgroup/tsm-mib.h
new file mode 100644
index 0000000..aec01fe
--- /dev/null
+++ b/agent/mibgroup/tsm-mib.h
@@ -0,0 +1,6 @@
+/*
+ * module to include the modules
+ */
+config_require(tsm-mib/snmpTsmStats)
+config_require(tsm-mib/snmpTsmConfigurationUsePrefix)
+config_add_mib(SNMP-TSM-MIB)
diff --git a/agent/mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.c b/agent/mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.c
new file mode 100644
index 0000000..c3976c4
--- /dev/null
+++ b/agent/mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.c
@@ -0,0 +1,110 @@
+/*
+ * Note: this file originally auto-generated by mib2c
+ */
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include "snmpTsmConfigurationUsePrefix.h"
+
+/** Initializes the snmpTsmConfigurationUsePrefix module */
+void
+init_snmpTsmConfigurationUsePrefix(void)
+{
+    const oid       snmpTsmConfigurationUsePrefix_oid[] =
+        { 1, 3, 6, 1, 2, 1, 190, 1, 2, 1 };
+
+    DEBUGMSGTL(("snmpTsmConfigurationUsePrefix", "Initializing\n"));
+
+    netsnmp_register_scalar(netsnmp_create_handler_registration
+                            ("snmpTsmConfigurationUsePrefix",
+                             handle_snmpTsmConfigurationUsePrefix,
+                             snmpTsmConfigurationUsePrefix_oid,
+                             OID_LENGTH(snmpTsmConfigurationUsePrefix_oid),
+                             HANDLER_CAN_RWRITE));
+}
+
+int
+handle_snmpTsmConfigurationUsePrefix(netsnmp_mib_handler *handler,
+                                     netsnmp_handler_registration *reginfo,
+                                     netsnmp_agent_request_info *reqinfo,
+                                     netsnmp_request_info *requests)
+{
+    int             ret;
+    /*
+     * We are never called for a GETNEXT if it's registered as a
+     * "instance", as it's "magically" handled for us.  
+     */
+
+    /*
+     * a instance handler also only hands us one request at a time, so
+     * we don't need to loop over a list of requests; we'll only get one. 
+     */
+
+    long current_value = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
+                                                NETSNMP_DS_LIB_TSM_USE_PREFIX);
+    static long original_value = 0;
+
+    switch (reqinfo->mode) {
+
+    case MODE_GET:
+        if (current_value == 0)
+            current_value = TV_FALSE;
+        snmp_set_var_typed_value(requests->requestvb, ASN_INTEGER,
+                                 &current_value,
+                                 sizeof(current_value));
+        break;
+
+        /*
+         * SET REQUEST
+         *
+         * multiple states in the transaction.  See:
+         * http://www.net-snmp.org/tutorial-5/toolkit/mib_module/set-actions.jpg
+         */
+    case MODE_SET_RESERVE1:
+        /*
+         * or you could use netsnmp_check_vb_type_and_size instead 
+         */
+        ret = netsnmp_check_vb_type(requests->requestvb, ASN_INTEGER);
+        if (ret != SNMP_ERR_NOERROR) {
+            netsnmp_set_request_error(reqinfo, requests, ret);
+        }
+        if (*(requests->requestvb->val.integer) != 2 &&
+            *(requests->requestvb->val.integer) != 1)
+            netsnmp_set_request_error(reqinfo, requests, SNMP_ERR_WRONGVALUE);
+        original_value = current_value;
+        break;
+
+    case MODE_SET_ACTION:
+        if (TV_FALSE == *(requests->requestvb->val.integer))
+            netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID,
+                                   NETSNMP_DS_LIB_TSM_USE_PREFIX, 0);
+        else
+            netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID,
+                                   NETSNMP_DS_LIB_TSM_USE_PREFIX, 1);
+        break;
+
+    case MODE_SET_UNDO:
+        netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID,
+                               NETSNMP_DS_LIB_TSM_USE_PREFIX,
+                               original_value);
+        break;
+
+        /* we don't need these */
+    case MODE_SET_COMMIT:
+    case MODE_SET_FREE:
+    case MODE_SET_RESERVE2:
+        break;
+
+    default:
+        /*
+         * we should never get here, so this is a really bad error 
+         */
+        snmp_log(LOG_ERR,
+                 "unknown mode (%d) in handle_snmpTsmConfigurationUsePrefix\n",
+                 reqinfo->mode);
+        return SNMP_ERR_GENERR;
+    }
+
+    return SNMP_ERR_NOERROR;
+}
diff --git a/agent/mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.h b/agent/mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.h
new file mode 100644
index 0000000..ba0c5b3
--- /dev/null
+++ b/agent/mibgroup/tsm-mib/snmpTsmConfigurationUsePrefix.h
@@ -0,0 +1,14 @@
+/*
+ * Note: this file originally auto-generated by mib2c using
+ *        $
+ */
+#ifndef SNMPTSMCONFIGURATIONUSEPREFIX_H
+#define SNMPTSMCONFIGURATIONUSEPREFIX_H
+
+/*
+ * function declarations 
+ */
+void            init_snmpTsmConfigurationUsePrefix(void);
+Netsnmp_Node_Handler handle_snmpTsmConfigurationUsePrefix;
+
+#endif                          /* SNMPTSMCONFIGURATIONUSEPREFIX_H */
diff --git a/agent/mibgroup/tsm-mib/snmpTsmStats.h b/agent/mibgroup/tsm-mib/snmpTsmStats.h
new file mode 100644
index 0000000..d1c4101
--- /dev/null
+++ b/agent/mibgroup/tsm-mib/snmpTsmStats.h
@@ -0,0 +1,6 @@
+#ifndef SNMPTSMSTATS_H
+#define SNMPTSMSTATS_H
+
+config_require(tsm-mib/snmpTsmStats/snmpTsmStats)
+
+#endif /* SNMPTSMSTATS_H */
diff --git a/agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.c b/agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.c
new file mode 100644
index 0000000..6e1b796
--- /dev/null
+++ b/agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.c
@@ -0,0 +1,46 @@
+/*
+ * snmpTsmStats
+ */
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/library/snmp_api.h>
+#include "snmpTsmStats.h"
+
+static netsnmp_handler_registration* _myreg = NULL;
+
+/** Initializes the snmpTsmStats module */
+void
+init_snmpTsmStats(void)
+{
+    static oid      snmpTsmStats_oid[] = { 1, 3, 6, 1, 2, 1, 190, 1, 1 };
+    int             rc;
+
+    DEBUGMSGTL(("snmpTsmStats", "Initializing\n"));
+
+    _myreg = netsnmp_create_handler_registration("snmpTsmStats", NULL,
+                                                 snmpTsmStats_oid,
+                                                 OID_LENGTH(snmpTsmStats_oid),
+                                                 HANDLER_CAN_RONLY);
+    if (NULL == _myreg) {
+        snmp_log(LOG_ERR, "failed to create handler registration for "
+                 "snmpTsmStats\n");
+        return;
+    }
+    rc = NETSNMP_REGISTER_STATISTIC_HANDLER(_myreg, 1, TSM);
+    if (MIB_REGISTERED_OK != rc) {
+        snmp_log(LOG_ERR, "failed to register snmpTsmStats mdoule\n");
+        netsnmp_handler_registration_free(_myreg);
+        _myreg = NULL;
+    }
+}
+
+void
+shutdown_snmpTsmSession(void)
+{
+    if (_myreg) {
+        netsnmp_unregister_handler(_myreg);
+        _myreg = NULL;
+    }
+}
diff --git a/agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h b/agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h
new file mode 100644
index 0000000..95007cf
--- /dev/null
+++ b/agent/mibgroup/tsm-mib/snmpTsmStats/snmpTsmStats.h
@@ -0,0 +1,8 @@
+#ifndef SNMPTSMSTATS_H
+#define SNMPTSMSTATS_H
+
+/** Initializes the snmpTsmStats module */
+void init_snmpTsmStats(void);
+void shutdown_snmpTsmStats(void);
+
+#endif /* SNMPTSMSTATS_H */
diff --git a/agent/mibgroup/tunnel/tunnel.c b/agent/mibgroup/tunnel/tunnel.c
index cf6eeda..f9649ef 100644
--- a/agent/mibgroup/tunnel/tunnel.c
+++ b/agent/mibgroup/tunnel/tunnel.c
@@ -248,7 +248,7 @@
 
 
 
-static char    *
+static const char *
 getName(int index)
 {
 #ifndef USING_IF_MIB_IFTABLE_IFTABLE_MODULE
@@ -410,7 +410,7 @@
     static int      max_index = 1;
     static struct tunnel *last_tunnel = NULL;
     struct tunnel  *tunnel;
-    char           *ifname;
+    const char     *ifname;
     int             type;
 
     /*
@@ -418,7 +418,7 @@
      */
     for (tunnel = tunnels; tunnel; tunnel = tunnel->next) {
         DEBUGMSG(("tunnel",
-                  "updateTunnels(): updating %s (index=%lu)\n",
+                  "updateTunnels(): updating %s (index=%" NETSNMP_PRIo "u)\n",
                   tunnel->ifname, tunnel->ifindex));
         updateTunnel(tunnel);
     }
@@ -464,7 +464,8 @@
             last_tunnel = tunnel;
 
             DEBUGMSG(("tunnel",
-                      "updateTunnels(): added %s (index=%lu state=%d)\n",
+                      "updateTunnels(): added %s (index=%" NETSNMP_PRIo
+                      "u state=%d)\n",
                       tunnel->ifname, tunnel->ifindex, tunnel->active));
         }
         if (type == 0)
@@ -485,8 +486,8 @@
         if (tunnel->ifindex == index) {
             if (!tunnel->active)
                 break;
-            DEBUGMSG(("tunnel",
-                      "%s (index=%lu)\n", tunnel->ifname, tunnel->ifindex));
+            DEBUGMSG(("tunnel", "%s (index=%" NETSNMP_PRIo "u)\n",
+                     tunnel->ifname, tunnel->ifindex));
             return tunnel;
         }
     }
@@ -507,8 +508,8 @@
         if (tunnel->ifindex > index) {
             if (!tunnel->active)
                 continue;
-            DEBUGMSG(("tunnel",
-                      "%s (index=%lu)\n", tunnel->ifname, tunnel->ifindex));
+            DEBUGMSG(("tunnel", "%s (index=%" NETSNMP_PRIo "u)\n",
+                      tunnel->ifname, tunnel->ifindex));
             return tunnel;
         }
     }
@@ -551,8 +552,8 @@
                               (*length) - tunnel_len - 3)) {
             if (!tunnel->active)
                 break;
-            DEBUGMSG(("tunnel",
-                      "%s (index=%lu)\n", tunnel->ifname, tunnel->ifindex));
+            DEBUGMSG(("tunnel", "%s (index=%" NETSNMP_PRIo "u)\n",
+                      tunnel->ifname, tunnel->ifindex));
             return tunnel;
         }
     }
@@ -595,8 +596,7 @@
     }
 
     if (last_tunnel) {
-        DEBUGMSG(("tunnel",
-                  "%s (index=%lu)\n",
+        DEBUGMSG(("tunnel", "%s (index=%" NETSNMP_PRIo "u)\n",
                   last_tunnel->ifname, last_tunnel->ifindex));
     } else {
         DEBUGMSG(("tunnel", "NONE\n"));
diff --git a/agent/mibgroup/ucd-snmp/disk.c b/agent/mibgroup/ucd-snmp/disk.c
index 4d3afa9..324fbc4 100644
--- a/agent/mibgroup/ucd-snmp/disk.c
+++ b/agent/mibgroup/ucd-snmp/disk.c
@@ -123,11 +123,7 @@
 #include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -136,9 +132,6 @@
 #  include <time.h>
 # endif
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
@@ -273,7 +266,7 @@
   if (numdisks == maxdisks) {
       if (maxdisks == 0) {
           maxdisks = 50;
-          disks = malloc(maxdisks * sizeof(struct diskpart));
+          disks = (struct diskpart *)malloc(maxdisks * sizeof(struct diskpart));
           if (!disks) {
               config_perror("malloc failed for new disk allocation.");
 	      netsnmp_config_error("\tignoring:  %s", cptr);
@@ -282,7 +275,7 @@
           memset(disks, 0, maxdisks * sizeof(struct diskpart));
       } else {
           maxdisks *= 2;
-          disks = realloc(disks, maxdisks * sizeof(struct diskpart));
+          disks = (struct diskpart *)realloc(disks, maxdisks * sizeof(struct diskpart));
           if (!disks) {
               config_perror("malloc failed for new disk allocation.");
 	      netsnmp_config_error("\tignoring:  %s", cptr);
@@ -333,7 +326,7 @@
   if (numdisks == maxdisks) {
       if (maxdisks == 0) {
           maxdisks = 50;
-          disks = malloc(maxdisks * sizeof(struct diskpart));
+          disks = (struct diskpart *)malloc(maxdisks * sizeof(struct diskpart));
           if (!disks) {
               config_perror("malloc failed for new disk allocation.");
 	      netsnmp_config_error("\tignoring:  %s", cptr);
@@ -342,7 +335,7 @@
           memset(disks, 0, maxdisks * sizeof(struct diskpart));
       } else {
           maxdisks *= 2;
-          disks = realloc(disks, maxdisks * sizeof(struct diskpart));
+          disks = (struct diskpart *)realloc(disks, maxdisks * sizeof(struct diskpart));
           if (!disks) {
               config_perror("malloc failed for new disk allocation.");
 	      netsnmp_config_error("\tignoring:  %s", cptr);
@@ -390,7 +383,7 @@
   if (numdisks == maxdisks) {
       if (maxdisks == 0) {
           maxdisks = 50;
-          disks = malloc(maxdisks * sizeof(struct diskpart));
+          disks = (struct diskpart *)malloc(maxdisks * sizeof(struct diskpart));
           if (!disks) {
 	      netsnmp_config_error("\tignoring:  %s", device);
               return;
@@ -398,7 +391,7 @@
           memset(disks, 0, maxdisks * sizeof(struct diskpart));
       } else {
           maxdisks *= 2;
-          disks = realloc(disks, maxdisks * sizeof(struct diskpart));
+          disks = (struct diskpart *)realloc(disks, maxdisks * sizeof(struct diskpart));
           if (!disks) {
               config_perror("malloc failed for new disk allocation.");
 	      netsnmp_config_error("\tignoring:  %s", device);
@@ -761,8 +754,7 @@
 #endif 
 #endif /* defined(HAVE_STRUCT_STATVFS_F_FILES) */
 
-#else
-#if HAVE_FSTAB_H
+#elif HAVE_FSTAB_H
     /*
      * read the disk information 
      */
@@ -796,13 +788,18 @@
     entry->dskTotal = (unsigned long long)(totalblks * multiplier);
     entry->dskAvail = (unsigned long long)(avail * multiplier);
     entry->dskUsed = (unsigned long long)(used * multiplier);
-#endif
+#else
+    /* MinGW */
+    entry->dskPercent = 0;
+    entry->dskTotal = 0;
+    entry->dskAvail = 0;
+    entry->dskUsed = 0;
 #endif
 
     entry->dskErrorFlag =
         (disks[disknum].minimumspace >= 0
-            ? entry->dskAvail < disks[disknum].minimumspace
-            : 100 - entry->dskPercent <= disks[disknum].minpercent) ? 1 : 0;
+            ? entry->dskAvail < (unsigned long long)disks[disknum].minimumspace
+            : 100 - entry->dskPercent <= (unsigned int)disks[disknum].minpercent) ? 1 : 0;
 
     return 0;
 }
@@ -908,11 +905,8 @@
         return ((u_char *) (&long_ret));
 
     case DISKPERCENTNODE:
-        if (entry.dskPercentInode >= 0) {
-            long_ret = entry.dskPercentInode;
-            return ((u_char *) (&long_ret));
-        } else
-            return NULL;
+        long_ret = entry.dskPercentInode;
+        return ((u_char *) (&long_ret));
 
     case ERRORFLAG:
         long_ret = entry.dskErrorFlag;
diff --git a/agent/mibgroup/ucd-snmp/disk_hw.c b/agent/mibgroup/ucd-snmp/disk_hw.c
new file mode 100644
index 0000000..93ecde3
--- /dev/null
+++ b/agent/mibgroup/ucd-snmp/disk_hw.c
@@ -0,0 +1,421 @@
+/*
+ * disk_hw.c
+ */
+
+#include <net-snmp/net-snmp-config.h>
+
+
+#include <stdio.h>
+
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+#include <signal.h>
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/agent/hardware/fsys.h>
+
+#include "struct.h"
+#include "disk.h"
+#include "util_funcs/header_simple_table.h"
+#if USING_UCD_SNMP_ERRORMIB_MODULE
+#include "errormib.h"
+#else
+#define setPerrorstatus(x) snmp_log_perror(x)
+#endif
+
+/*
+ *  * config file parsing routines
+ *   */
+static void       disk_free_config(void);
+static void       disk_parse_config(const char *, char *);
+static void       disk_parse_config_all(const char *, char *);
+
+static netsnmp_fsys_info ** _expand_disk_array( char *cptr );
+
+#define MAX_INT_32 0x7fffffff
+#define MAX_UINT_32 0xffffffff
+
+int             numdisks;
+int             allDisksIncluded = 0;
+int             maxdisks = 0;
+netsnmp_fsys_info **disks = NULL;
+
+struct variable2 extensible_disk_variables[] = {
+  {MIBINDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+   var_extensible_disk, 1, {MIBINDEX}},
+  {ERRORNAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
+   var_extensible_disk, 1, {ERRORNAME}},
+  {DISKDEVICE, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
+   var_extensible_disk, 1, {DISKDEVICE}},
+  {DISKMINIMUM, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+   var_extensible_disk, 1, {DISKMINIMUM}},
+  {DISKMINPERCENT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+   var_extensible_disk, 1, {DISKMINPERCENT}},
+  {DISKTOTAL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+   var_extensible_disk, 1, {DISKTOTAL}},
+  {DISKAVAIL, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+   var_extensible_disk, 1, {DISKAVAIL}},
+  {DISKUSED, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+   var_extensible_disk, 1, {DISKUSED}},
+  {DISKPERCENT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+   var_extensible_disk, 1, {DISKPERCENT}},
+  {DISKPERCENTNODE, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+   var_extensible_disk, 1, {DISKPERCENTNODE}},
+  {ERRORFLAG, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+   var_extensible_disk, 1, {ERRORFLAG}},
+  {ERRORMSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
+   var_extensible_disk, 1, {ERRORMSG}},
+   {DISKTOTALLOW, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
+    var_extensible_disk, 1, {DISKTOTALLOW}},
+   {DISKTOTALHIGH, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
+    var_extensible_disk, 1, {DISKTOTALHIGH}},
+   {DISKAVAILLOW, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
+    var_extensible_disk, 1, {DISKAVAILLOW}},
+   {DISKAVAILHIGH, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
+    var_extensible_disk, 1, {DISKAVAILHIGH}},
+   {DISKUSEDLOW, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
+    var_extensible_disk, 1, {DISKUSEDLOW}},
+   {DISKUSEDHIGH, ASN_UNSIGNED, NETSNMP_OLDAPI_RONLY,
+    var_extensible_disk, 1, {DISKUSEDHIGH}},
+};
+
+/*
+ * Define the OID pointer to the top of the mib tree that we're
+ * registering underneath 
+ */
+oid             disk_variables_oid[] = { NETSNMP_UCDAVIS_MIB, NETSNMP_DISKMIBNUM, 1 };
+
+void
+init_disk_hw(void)
+{
+  /*
+   * register ourselves with the agent to handle our mib tree 
+   */
+  REGISTER_MIB("ucd-snmp/disk", extensible_disk_variables, variable2,
+	       disk_variables_oid);
+
+  snmpd_register_config_handler("disk", disk_parse_config,
+				disk_free_config,
+				"path [ minspace | minpercent% ]");
+  snmpd_register_config_handler("includeAllDisks", disk_parse_config_all,
+				disk_free_config,
+				"minpercent%");
+  allDisksIncluded = 0;
+}
+
+static void
+disk_free_config(void)
+{
+  netsnmp_fsys_info *entry;
+
+  for ( entry  = netsnmp_fsys_get_first();
+        entry != NULL;
+        entry  = netsnmp_fsys_get_next( entry )) {
+
+      entry->minspace   = -1;
+      entry->minpercent = -1;
+      entry->flags     &= ~NETSNMP_FS_FLAG_UCD;
+  }
+  if (disks) {
+     free( disks );
+     disks = NULL;
+     maxdisks = numdisks = 0;
+  }
+  allDisksIncluded = 0;
+}
+
+static void 
+disk_parse_config(const char *token, char *cptr)
+{
+  char            path[STRMAX];
+  int             minpercent;
+  int             minspace;
+  netsnmp_fsys_info *entry;
+
+  /*
+   * Ensure there is space for the new entry
+   */
+  if (numdisks == maxdisks) {
+      if (!_expand_disk_array( cptr )) 
+          return;
+  }
+
+  /*
+   * read disk path (eg, /1 or /usr) 
+   */
+  copy_nword(cptr, path, sizeof(path));
+  cptr = skip_not_white(cptr);
+  cptr = skip_white(cptr);
+	
+  /*
+   * read optional minimum disk usage spec 
+   */
+  if(cptr != NULL) {
+      if(strchr(cptr, '%') == NULL) {
+          minspace = atoi(cptr);
+          minpercent = -1;
+      }
+      else {
+          minspace = -1;
+          minpercent = atoi(cptr);
+      }
+  } else {
+      minspace = NETSNMP_DEFDISKMINIMUMSPACE;
+      minpercent = -1;
+  }
+
+  /*
+   * check if the disk already exists, if so then modify its
+   * parameters. if it does not exist then add it
+   */
+  entry = netsnmp_fsys_by_path( path, NETSNMP_FS_FIND_CREATE );
+  if ( entry ) {
+      entry->minspace   = minspace;
+      entry->minpercent = minpercent;
+      entry->flags     |= NETSNMP_FS_FLAG_UCD;
+      disks[numdisks++] = entry;
+  }
+}
+
+static void 
+disk_parse_config_all(const char *token, char *cptr)
+{
+  int             minpercent = DISKMINPERCENT;
+  netsnmp_fsys_info *entry;
+    
+  /*
+   * read the minimum disk usage percent
+   */
+  if(cptr != NULL) {
+      if(strchr(cptr, '%') != NULL) {
+          minpercent = atoi(cptr);
+      }
+  }
+  /*
+   * if we have already seen the "includeAllDisks" directive
+   * then search for the disk in the "disks" array and modify
+   * the values. if we havent seen the "includeAllDisks"
+   * directive then include this disk
+   */
+  if(allDisksIncluded) {
+      config_perror("includeAllDisks already specified.");
+      netsnmp_config_error("\tignoring: includeAllDisks %s", cptr);
+  }
+  else {
+
+      netsnmp_fsys_load( NULL, NULL );  /* Prime the fsys H/W module */
+      for ( entry  = netsnmp_fsys_get_first();
+            entry != NULL;
+            entry  = netsnmp_fsys_get_next( entry )) {
+
+          if ( !(entry->flags & NETSNMP_FS_FLAG_ACTIVE ))
+              continue;
+          entry->minspace   = -1;
+          entry->minpercent = minpercent;
+          entry->flags     |= NETSNMP_FS_FLAG_UCD;
+          /*
+           * Ensure there is space for the new entry
+           */
+          if (numdisks == maxdisks) {
+              if (!_expand_disk_array( entry->device )) 
+                  return;
+          }
+          disks[numdisks++] = entry;
+      }
+      allDisksIncluded = 1;
+  }
+}
+
+
+static int _percent( unsigned long long value, unsigned long long total ) {
+    float v=value, t=total, pct;
+
+    /* avoid division by zero */
+    if (total == 0)
+        return 0;
+
+    pct  = (v*100)/t;   /* Calculate percentage using floating point
+                           arithmetic, to avoid overflow errors */
+    pct += 0.5;         /* rounding */
+    return (int)pct;
+}
+
+static netsnmp_fsys_info **
+_expand_disk_array( char *cptr ) {
+
+    if ( maxdisks == 0 )
+        maxdisks  = 50;
+    else
+        maxdisks *= 2;
+
+    disks = realloc( disks, maxdisks * sizeof( netsnmp_fsys_info*));
+    if (!disks) {
+        config_perror("malloc failed for new disk allocation.");
+        netsnmp_config_error("\tignoring: %s", cptr);
+        return NULL;
+    }
+
+    if ( maxdisks == 50 )
+        memset(disks,              0,  maxdisks   * sizeof( netsnmp_fsys_info*));
+    else
+        memset(disks + maxdisks/2, 0,  maxdisks/2 * sizeof( netsnmp_fsys_info*));
+
+    return disks;
+}
+
+
+/*
+ * var_extensible_disk(...
+ * Arguments:
+ * vp     IN      - pointer to variable entry that points here
+ * name    IN/OUT  - IN/name requested, OUT/name found
+ * length  IN/OUT  - length of IN/OUT oid's 
+ * exact   IN      - TRUE if an exact match was requested
+ * var_len OUT     - length of variable or 0 if function returned
+ * write_method
+ * 
+ */
+u_char         *
+var_extensible_disk(struct variable *vp,
+                    oid * name,
+                    size_t * length,
+                    int exact,
+                    size_t * var_len, WriteMethod ** write_method)
+{
+    int             disknum = 0;
+  netsnmp_fsys_info *entry;
+    unsigned long long val;
+    static long     long_ret;
+    static char     errmsg[300];
+
+    netsnmp_fsys_load( NULL, NULL );  /* Update the fsys H/W module */
+
+tryAgain:
+    if (header_simple_table
+        (vp, name, length, exact, var_len, write_method, numdisks))
+        return (NULL);
+    disknum = name[*length - 1] - 1;
+    entry = disks[disknum];
+    if ( !entry ) {
+        if (!exact || !(entry->flags & NETSNMP_FS_FLAG_UCD))
+            goto tryAgain;
+        return NULL;
+    }
+
+    switch (vp->magic) {
+    case MIBINDEX:
+        long_ret = disknum + 1;
+        return ((u_char *) (&long_ret));
+    case ERRORNAME:            /* DISKPATH */
+        *var_len = strlen(entry->path);
+        return ((u_char *)entry->path);
+    case DISKDEVICE:
+        *var_len = strlen(entry->device);
+        return ((u_char *)entry->device);
+    case DISKMINIMUM:
+        long_ret = entry->minspace;
+        return ((u_char *) (&long_ret));
+    case DISKMINPERCENT:
+        long_ret = entry->minpercent;
+        return ((u_char *) (&long_ret));
+
+    case DISKTOTAL:
+        val = netsnmp_fsys_size_ull(entry);
+        if (val > MAX_INT_32)
+            long_ret = MAX_INT_32;
+        else
+            long_ret = (long)val;
+        return ((u_char *) (&long_ret));
+    case DISKTOTALLOW:
+        long_ret = netsnmp_fsys_size_ull(entry) & MAX_UINT_32;
+        return ((u_char *) (&long_ret));
+    case DISKTOTALHIGH:
+        long_ret = netsnmp_fsys_size_ull(entry) >> 32;
+        return ((u_char *) (&long_ret));
+        
+    case DISKAVAIL:
+        val = netsnmp_fsys_avail_ull(entry);
+        if (val > MAX_INT_32)
+            long_ret = MAX_INT_32;
+        else
+            long_ret = (long)val;
+        return ((u_char *) (&long_ret));
+    case DISKAVAILLOW:
+        long_ret = netsnmp_fsys_avail_ull(entry) & MAX_UINT_32;
+        return ((u_char *) (&long_ret));
+    case DISKAVAILHIGH:
+        long_ret = netsnmp_fsys_avail_ull(entry) >> 32;
+        return ((u_char *) (&long_ret));
+
+    case DISKUSED:
+        val = netsnmp_fsys_used_ull(entry);
+        if (val > MAX_INT_32)
+            long_ret = MAX_INT_32;
+        else
+            long_ret = (long)val;
+        return ((u_char *) (&long_ret));
+    case DISKUSEDLOW:
+        long_ret = netsnmp_fsys_used_ull(entry) & MAX_UINT_32;
+        return ((u_char *) (&long_ret));
+    case DISKUSEDHIGH:
+        long_ret = netsnmp_fsys_used_ull(entry) >> 32;
+        return ((u_char *) (&long_ret));
+
+    case DISKPERCENT:
+        long_ret = _percent( entry->used, entry->size );
+        return ((u_char *) (&long_ret));
+
+    case DISKPERCENTNODE:
+        long_ret = _percent( entry->inums_total - entry->inums_avail, entry->inums_total );
+        return ((u_char *) (&long_ret));
+
+    case ERRORFLAG:
+        long_ret = 0;
+        val = netsnmp_fsys_avail_ull(entry);
+        if (( entry->minspace >= 0 ) &&
+            ( val < entry->minspace ))
+            long_ret = 1;
+        else if (( entry->minpercent >= 0 ) &&
+                 (_percent( entry->avail, entry->size ) < entry->minpercent ))
+            long_ret = 1;
+        return ((u_char *) (&long_ret));
+
+    case ERRORMSG:
+        errmsg[0] = 0;
+        val = netsnmp_fsys_avail_ull(entry);
+        if (( entry->minspace >= 0 ) &&
+            ( val < entry->minspace ))
+                snprintf(errmsg, sizeof(errmsg),
+                        "%s: less than %d free (= %d)",
+                        entry->path, entry->minspace,
+                        (int) val);
+        else if (( entry->minpercent >= 0 ) &&
+                 (_percent( entry->avail, entry->size ) < entry->minpercent ))
+                snprintf(errmsg, sizeof(errmsg),
+                        "%s: less than %d%% free (= %d%%)",
+                        entry->path, entry->minpercent,
+                        _percent( entry->avail, entry->size ));
+        errmsg[ sizeof(errmsg)-1 ] = 0;
+        *var_len = strlen(errmsg);
+        return ((u_char *) (errmsg));
+    }
+    return NULL;
+}
diff --git a/agent/mibgroup/ucd-snmp/disk_hw.h b/agent/mibgroup/ucd-snmp/disk_hw.h
new file mode 100644
index 0000000..147b98f
--- /dev/null
+++ b/agent/mibgroup/ucd-snmp/disk_hw.h
@@ -0,0 +1,31 @@
+/*
+ *  Template MIB group interface - disk.h
+ *
+ */
+#ifndef _MIBGROUP_DISK_HW_H
+#define _MIBGROUP_DISK_HW_H
+
+void            init_disk_hw(void);
+
+config_require(util_funcs/header_simple_table)
+
+     extern FindVarMethod var_extensible_disk;
+
+#include "mibdefs.h"
+
+#define DISKDEVICE 3
+#define DISKMINIMUM 4
+#define DISKMINPERCENT 5
+#define DISKTOTAL 6
+#define DISKAVAIL 7
+#define DISKUSED 8
+#define DISKPERCENT 9
+#define DISKPERCENTNODE 10
+#define DISKTOTALLOW 11
+#define DISKTOTALHIGH 12
+#define DISKAVAILLOW 13
+#define DISKAVAILHIGH 14
+#define DISKUSEDLOW 15
+#define DISKUSEDHIGH 16
+
+#endif                          /* _MIBGROUP_DISK_HW_H */
diff --git a/agent/mibgroup/ucd-snmp/diskio.c b/agent/mibgroup/ucd-snmp/diskio.c
index f29388e..a819aa6 100644
--- a/agent/mibgroup/ucd-snmp/diskio.c
+++ b/agent/mibgroup/ucd-snmp/diskio.c
@@ -29,6 +29,7 @@
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/agent/agent_callbacks.h>
 
 #include "util_funcs/header_simple_table.h"
 
@@ -51,10 +52,13 @@
 static int      cache_disknr = -1;
 #endif                          /* solaris2 */
 
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
 /*
  * handle disk statistics via libperfstat
  */
+#ifdef HAVE_SYS_PROTOSW_H
+#include <sys/protosw.h>
+#endif
 #include <libperfstat.h>
 static perfstat_disk_t *ps_disk;	/* storage for all disk values */
 static int ps_numdisks;			/* number of disks in system, may change while running */
@@ -108,7 +112,9 @@
 static mach_port_t masterPort;		/* to communicate with I/O Kit	*/
 #endif                          /* darwin */
 
-void            diskio_parse_config(const char *, char *);
+#ifndef solaris2
+static int      getstats(void);
+#endif
 
 #if defined (HAVE_GETDEVS) || defined(HAVE_DEVSTAT_GETDEVS)
 void		devla_getstats(unsigned int regno, void *dummy);
@@ -116,6 +122,10 @@
 
 FILE           *file;
 
+#ifdef linux
+static int	diskio_free_config(int, int, void *, void *);
+#endif
+
          /*********************
 	 *
 	 *  Initialisation & common implementation functions
@@ -211,7 +221,7 @@
     IOMasterPort(bootstrap_port, &masterPort);
 #endif
 
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
     /*
      * initialize values to gather information on first request
      */
@@ -225,8 +235,48 @@
     snmp_alarm_register(DISKIO_SAMPLE_INTERVAL, SA_REPEAT, devla_getstats, NULL);
 #endif
 
+
+#ifdef linux
+    char *app = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                      NETSNMP_DS_LIB_APPTYPE);
+    netsnmp_ds_register_config(ASN_BOOLEAN, app, "diskio_exclude_fd",
+                               NETSNMP_DS_APPLICATION_ID,
+                               NETSNMP_DS_AGENT_DISKIO_NO_FD);
+    netsnmp_ds_register_config(ASN_BOOLEAN, app, "diskio_exclude_loop",
+                               NETSNMP_DS_APPLICATION_ID,
+                               NETSNMP_DS_AGENT_DISKIO_NO_LOOP);
+    netsnmp_ds_register_config(ASN_BOOLEAN, app, "diskio_exclude_ram",
+                               NETSNMP_DS_APPLICATION_ID,
+                               NETSNMP_DS_AGENT_DISKIO_NO_RAM);
+
+        /* or possible an exclusion pattern? */
+
+    snmp_register_callback(SNMP_CALLBACK_APPLICATION,
+	                   SNMPD_CALLBACK_PRE_UPDATE_CONFIG,
+	                   diskio_free_config, NULL);
+
+#endif
 }
 
+#ifdef linux
+/* to do: make sure diskio_free_config() gets invoked upon SIGHUP. */
+static int
+diskio_free_config(int major, int minor, void *serverarg, void *clientarg)
+{
+    DEBUGMSGTL(("diskio", "free config %d\n",
+		netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
+				       NETSNMP_DS_AGENT_DISKIO_NO_RAM)));
+    netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, 
+			   NETSNMP_DS_AGENT_DISKIO_NO_FD,   0);
+    netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, 
+			   NETSNMP_DS_AGENT_DISKIO_NO_LOOP, 0);
+    netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, 
+			   NETSNMP_DS_AGENT_DISKIO_NO_RAM,  0);
+    return 0;
+}
+#endif
+
+
 #ifdef solaris2
 int
 get_disk(int disknr)
@@ -1049,7 +1099,25 @@
     }
 }
 
-int getstats(void)
+int is_excluded(const char *name)
+{
+    if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
+                               NETSNMP_DS_AGENT_DISKIO_NO_FD)
+                           && !(strncmp(name, "fd", 2)))
+        return 1;
+    if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
+                               NETSNMP_DS_AGENT_DISKIO_NO_LOOP)
+                           && !(strncmp(name, "loop", 4)))
+        return 1;
+    if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
+                               NETSNMP_DS_AGENT_DISKIO_NO_RAM)
+                           && !(strncmp(name, "ram", 3)))
+        return 1;
+    return 0;
+}
+
+static int
+getstats(void)
 {
     FILE* parts;
     time_t now;
@@ -1088,7 +1156,8 @@
 		    &pTemp->major, &pTemp->minor, pTemp->name,
 		    &pTemp->rio, &pTemp->rsect,
 		    &pTemp->wio, &pTemp->wsect);
-	    head.length++;
+            if (!is_excluded(pTemp->name))
+	        head.length++;
 	}
     }
     else {
@@ -1126,7 +1195,8 @@
                fclose(parts);
                return 1;
             }
-	    head.length++;
+            if (!is_excluded(pTemp->name))
+	        head.length++;
 	}
     }
 
@@ -1464,7 +1534,7 @@
 #endif                          /* darwin */
 
 
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
 /*
  * collect statistics for all disks
  */
diff --git a/agent/mibgroup/ucd-snmp/dlmod.c b/agent/mibgroup/ucd-snmp/dlmod.c
index 0a85213..57bf87e 100644
--- a/agent/mibgroup/ucd-snmp/dlmod.c
+++ b/agent/mibgroup/ucd-snmp/dlmod.c
@@ -19,10 +19,6 @@
 #endif
 #include <ctype.h>
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
@@ -37,7 +33,7 @@
 #include "dlmod.h"
 
 static struct dlmod *dlmods;
-static int      dlmod_next_index = 1;
+static unsigned int dlmod_next_index = 1;
 static char     dlmod_path[1024];
 
 static void     dlmod_parse_config(const char *, char *);
@@ -439,7 +435,7 @@
 
     if (header_dlmod(vp, name, length, exact,
                      var_len, write_method) == MATCH_FAILED)
-        return 0;
+        return NULL;
 
     /*
      * this is where we do the value assignments for the mib results. 
@@ -452,7 +448,7 @@
         DEBUGMSGTL(("dlmod", "unknown sub-id %d in var_dlmod\n",
                     vp->magic));
     }
-    return 0;
+    return NULL;
 }
 
 
@@ -478,8 +474,8 @@
 #define DLMODENTRY_NAME_LENGTH 12
     oid             newname[MAX_OID_LEN];
     int             result;
-    struct dlmod   *dlm = 0;
-    int             dlmod_index;
+    struct dlmod   *dlm = NULL;
+    unsigned int    dlmod_index;
 
     memcpy(newname, vp->name, vp->namelen * sizeof(oid));
     *write_method = 0;
@@ -529,7 +525,7 @@
 
     dlm = header_dlmodEntry(vp, name, length, exact, var_len, write_method);
     if (dlm == NULL)
-        return 0;
+        return NULL;
 
     /*
      * this is where we do the value assignments for the mib results. 
@@ -554,7 +550,7 @@
         DEBUGMSGTL(("dlmod", "unknown sub-id %d in var_dlmodEntry\n",
                     vp->magic));
     }
-    return 0;
+    return NULL;
 }
 
 int
diff --git a/agent/mibgroup/ucd-snmp/errormib.c b/agent/mibgroup/ucd-snmp/errormib.c
index 0fafb54..7f3bcb1 100644
--- a/agent/mibgroup/ucd-snmp/errormib.c
+++ b/agent/mibgroup/ucd-snmp/errormib.c
@@ -11,11 +11,7 @@
 #endif
 #include <signal.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -112,9 +108,6 @@
 #if HAVE_STRING_H
 #include <string.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
diff --git a/agent/mibgroup/ucd-snmp/extensible.c b/agent/mibgroup/ucd-snmp/extensible.c
index db17a9a..37a5eeb 100644
--- a/agent/mibgroup/ucd-snmp/extensible.c
+++ b/agent/mibgroup/ucd-snmp/extensible.c
@@ -10,11 +10,7 @@
 #include <fcntl.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -100,20 +96,16 @@
 #include <string.h>
 #endif
 #include <ctype.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-#ifndef HAVE_STRNCASECMP
-int             strncasecmp(const char *s1, const char *s2, size_t n);
-#endif
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/auto_nlist.h>
 #include <net-snmp/agent/agent_callbacks.h>
+#include <net-snmp/library/system.h>
 
 #include "struct.h"
 #include "extensible.h"
+#include "mibgroup/util_funcs.h"
 #include "utilities/execute.h"
 #include "util_funcs/header_simple_table.h"
 
diff --git a/agent/mibgroup/ucd-snmp/extensible.h b/agent/mibgroup/ucd-snmp/extensible.h
index 9283692..24bd16d 100644
--- a/agent/mibgroup/ucd-snmp/extensible.h
+++ b/agent/mibgroup/ucd-snmp/extensible.h
@@ -8,6 +8,7 @@
 void            init_extensible(void);
 
 config_require(util_funcs/header_simple_table)
+config_require(util_funcs)
 config_require(utilities/execute)
 
      extern FindVarMethod var_extensible_shell;
diff --git a/agent/mibgroup/ucd-snmp/file.c b/agent/mibgroup/ucd-snmp/file.c
index a8dd154..9e345d8 100644
--- a/agent/mibgroup/ucd-snmp/file.c
+++ b/agent/mibgroup/ucd-snmp/file.c
@@ -12,11 +12,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -25,9 +21,6 @@
 #  include <time.h>
 # endif
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_STRING_H
 #include <string.h>
 #endif
diff --git a/agent/mibgroup/ucd-snmp/lmSensors.c b/agent/mibgroup/ucd-snmp/lmSensors.c
index 519c80e..605ee16 100644
--- a/agent/mibgroup/ucd-snmp/lmSensors.c
+++ b/agent/mibgroup/ucd-snmp/lmSensors.c
@@ -84,9 +84,10 @@
     #include <kstat.h>
     #ifdef HAVE_PICL_H 
         #include <picl.h> /* accesses the picld daemon */
+    #else 
+        /* the following should be sufficient for any Sun-based sensors */
+	#include </usr/platform/sun4u/include/sys/envctrl.h>
     #endif 
-/* the following should be sufficient for any Sun-based sensors */
-    #include </usr/platform/sun4u/include/sys/envctrl.h>
 #else
     #include <sensors/sensors.h>
     #define CONFIG_FILE_NAME "/etc/sensors.conf"
@@ -247,7 +248,7 @@
                    size_t * var_len, WriteMethod ** write_method)
 {
     static long     long_ret;
-    static unsigned char string[SPRINT_MAX_LEN];
+    static char     string[SPRINT_MAX_LEN];
 
     int             s_index;
     int             s_type = -1;
@@ -379,9 +380,9 @@
     }
 
     _sensor_load(t); /* I'll let the linux people decide whether they want to load right away */
+leaving:
 #endif /* not solaris2 */
 
-leaving:
     DEBUGMSG(("ucd-snmp/lmSensors", "<= sensor_init\n"));
     return res;
 }
@@ -415,7 +416,7 @@
    the scale variable handles miniVolts */
 
 static int
-read_num_sensor(picl_nodehdl_t childh, char *prop ,int scale, int *value)
+read_num_sensor(picl_nodehdl_t childh, const char *prop, int scale, int *value)
  {
   picl_nodehdl_t  sensorh;
   picl_propinfo_t sensor_info;
@@ -481,7 +482,7 @@
 } /* end of read_num_sensor() */
 
 static int
-read_enum_sensor(picl_nodehdl_t childh, char **options, u_int *value)
+read_enum_sensor(picl_nodehdl_t childh, const char **options, u_int *value)
 {
   picl_nodehdl_t  sensorh;
   picl_propinfo_t sensor_info;
@@ -526,10 +527,10 @@
 
 /* scale variable handles miniVolts*/
  
-static int
+static void
 process_num_sensor(picl_nodehdl_t childh, 
-                  char propname[PICL_PROPNAMELEN_MAX], 
-                  char propval[PICL_PROPNAMELEN_MAX], int typ, int scale)
+                  const char propname[PICL_PROPNAMELEN_MAX], 
+                  const char propval[PICL_PROPNAMELEN_MAX], int typ, int scale)
 {
   int value = 0;
   picl_errno_t error_code;
@@ -553,10 +554,10 @@
   }
 } /* end process_num_sensor() */
 
-static int
+static void
 process_enum_sensor(picl_nodehdl_t childh, 
-                  char propname[PICL_PROPNAMELEN_MAX], 
-                  int typ, char **options)
+                  const char propname[PICL_PROPNAMELEN_MAX], 
+                  int typ, const char **options)
 {
   int value = 0;
   picl_errno_t error_code;
@@ -583,69 +584,69 @@
 /* The following are modules for dealing with individual sensors types.
    They call the generic modules above.  */
 
-static int
+static void
 process_individual_fan(picl_nodehdl_t childh, 
-                     char propname[PICL_PROPNAMELEN_MAX])
+                     const char propname[PICL_PROPNAMELEN_MAX])
 {
   process_num_sensor(childh, propname, "AtoDSensorValue", FAN_TYPE, 1);
 }
 
 
-static int
+static void
 process_newtype_fan(picl_nodehdl_t childh,
-                     char propname[PICL_PROPNAMELEN_MAX])
+                     const char propname[PICL_PROPNAMELEN_MAX])
 {
   process_num_sensor(childh, propname, "Speed", FAN_TYPE, 1);
 }
 
 
-static int
+static void
 process_temperature_sensor(picl_nodehdl_t childh,
-                               char propname[PICL_PROPNAMELEN_MAX])
+                               const char propname[PICL_PROPNAMELEN_MAX])
 {
   process_num_sensor(childh, propname, "Temperature", TEMP_TYPE, 1000);
 } /* MIB asks for mC */
 
-static int
+static void
 process_voltage_sensor(picl_nodehdl_t childh,
-                      char propname[PICL_PROPNAMELEN_MAX])
+                      const char propname[PICL_PROPNAMELEN_MAX])
 {
   process_num_sensor(childh, propname, "Voltage", VOLT_TYPE, 1000);
 } /* MIB asks for mV */
 
-static int
+static void
 process_digital_sensor(picl_nodehdl_t childh,
-                      char propname[PICL_PROPNAMELEN_MAX])
+                      const char propname[PICL_PROPNAMELEN_MAX])
 {
   process_num_sensor(childh, propname, "AtoDSensorValue", VOLT_TYPE, 1);
 }
 
 
-static int
+static void
 process_switch(picl_nodehdl_t childh,
-                   char propname[PICL_PROPNAMELEN_MAX])
+                   const char propname[PICL_PROPNAMELEN_MAX])
 {
 
-  char *settings[]={"OFF","ON","NORMAL","LOCKED","UNKNOWN",
+  const char *settings[]={"OFF","ON","NORMAL","LOCKED","UNKNOWN",
                    "DIAG","SECURE",NULL};
 
   process_enum_sensor(childh, propname, MISC_TYPE, settings);
 }
 
-static int
+static void
 process_led(picl_nodehdl_t childh,
-                   char propname[PICL_PROPNAMELEN_MAX])
+                   const char propname[PICL_PROPNAMELEN_MAX])
 {
 
-  char *settings[]={"OFF","ON","BLINK",NULL};
+  const char *settings[]={"OFF","ON","BLINK",NULL};
   process_enum_sensor(childh, propname, MISC_TYPE, settings);
 }
 
-static int
+static void
 process_i2c(picl_nodehdl_t childh,
-                   char propname[PICL_PROPNAMELEN_MAX])
+                   const char propname[PICL_PROPNAMELEN_MAX])
 {
-  char *settings[]={"OK",NULL};
+  const char *settings[]={"OK",NULL};
   process_enum_sensor(childh, propname, MISC_TYPE, settings);
 }
 
@@ -752,6 +753,12 @@
 {
 #ifdef solaris2
     int i,j;
+#ifdef HAVE_PICL_H 
+    int er_code;
+    picl_errno_t     error_code;
+    int level=0;
+    picl_nodehdl_t  rooth;
+#else
     int typ;
     int temp=0; /* do not reset this later, more than one typ has temperatures*/
     int other=0;
@@ -761,6 +768,7 @@
     envctrl_fan_t *fan_info;
     envctrl_ps_t *power_info;
     envctrl_encl_t *enc_info;
+#endif
 
 /* DEBUGMSG(("ucd-snmp/lmSensors", "Reading the sensors\n")); */
 
@@ -776,13 +784,6 @@
 /* try picld (if supported), if that doesn't work, try kstat */
 #ifdef HAVE_PICL_H 
 
-/* some more declarations */
-
-    int er_code;
-    picl_errno_t     error_code;
-    int level=0;
-    picl_nodehdl_t  rooth;
-
 er_code = picl_initialize();
 
 if (er_code == PICL_SUCCESS) {
@@ -809,7 +810,7 @@
 
 } /*end else picl_initialize */
 
-#endif  /* end of picld section */
+#else  /* end of picld section */
 /* initialize kstat */
 
 kc = kstat_open();
@@ -923,7 +924,7 @@
                    temp++;
                    break;
                default:
-                   DEBUGMSG(("ucd-snmp/lmSensors", "unknown element instance &d type &d value %d\n",
+                   DEBUGMSG(("ucd-snmp/lmSensors", "unknown element instance %d type %d value %d\n",
                        enc_info->instance, enc_info->type, enc_info->value));
                    break;
                } /* end switch */
@@ -937,14 +938,17 @@
     kstat_close(kc);
 
 } /* end else kstat */
+#endif
+
 #else /* end solaris2 only ie. ifdef everything else */
 
     const sensors_chip_name *chip;
     const sensors_feature_data *data;
     int             chip_nr = 0;
-    int             rc = 0;
     unsigned int    i = 0;
 
+    DEBUGMSG(("ucd-snmp/lmSensors", "=> sensor_load\n"));
+
     for (i = 0; i < N_TYPES; i++)
     {
         sensor_array[i].n = 0;
@@ -956,7 +960,7 @@
         {
            /* Continuing would be unsafe */
            snmp_log(LOG_ERR, "Cannot malloc sensor array!"); 
-           return (rc = 1);
+           return 1;
         } /* end if */
         sensor_array[i].current_len = DEFAULT_SENSORS;
     } /* end for */
@@ -974,7 +978,7 @@
                 !sensors_get_label(*chip, data->number, &label) &&
                 !sensors_get_feature(*chip, data->number, &val)) {
                 int             type = -1;
-                float           mul;
+                float           mul = 0;
                 _sensor_array  *array;
 
                 /* The label, as determined for a given chip in sensors.conf,
@@ -1016,14 +1020,14 @@
                            free(label);
                            label = NULL;
                        } /* end if label */
-                       return (rc=1);
+                       return 1;
                     } /* end if array->sensor */
                     array->current_len = new_size / sizeof(_sensor);
-                    DEBUGMSG(("ucd-snmp/lmSensors", "type #%d increased to %d elements\n", type, array->current_len));
+                    DEBUGMSG(("ucd-snmp/lmSensors", "type #%d increased to %d elements\n", type, (int)array->current_len));
                 } /* end if array->current */
                 strlcpy(array->sensor[array->n].name, label, MAX_NAME);
                 array->sensor[array->n].value = (int) (val * mul);
-                DEBUGMSGTL(("sensors","sensor %d, value %d\n",
+                DEBUGMSGTL(("sensors","sensor %s, value %d\n",
                             array->sensor[array->n].name,
                             array->sensor[array->n].value));
                 array->n++;
@@ -1034,10 +1038,11 @@
 	    } /* end if label */
         } /* end while data */
     } /* end while chip */
-    return rc;
+    DEBUGMSG(("ucd-snmp/lmSensors", "<= sensor_load\n"));
 #endif  /* end else ie. ifdef everything else */
     /* Update the timestamp after a load. */
     timestamp = t;
+    return 0;
 }
 
 #ifndef solaris2
diff --git a/agent/mibgroup/ucd-snmp/lmsensorsMib.c b/agent/mibgroup/ucd-snmp/lmsensorsMib.c
index 8dea74e..5a50697 100644
--- a/agent/mibgroup/ucd-snmp/lmsensorsMib.c
+++ b/agent/mibgroup/ucd-snmp/lmsensorsMib.c
@@ -2,6 +2,7 @@
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <net-snmp/agent/hardware/sensors.h>
+#include "hardware/sensors/hw_sensors.h"
 #include "ucd-snmp/lmsensorsMib.h"
 
 netsnmp_container *sensorContainer = NULL;
diff --git a/agent/mibgroup/ucd-snmp/loadave.c b/agent/mibgroup/ucd-snmp/loadave.c
index 2548ed8..6efc5e9 100644
--- a/agent/mibgroup/ucd-snmp/loadave.c
+++ b/agent/mibgroup/ucd-snmp/loadave.c
@@ -99,11 +99,7 @@
 #include <string.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -112,16 +108,16 @@
 #  include <time.h>
 # endif
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #ifdef dynix
 #include <sys/mc_vmparam.h>
 #endif
 #if defined(hpux10) || defined(hpux11)
 #include <sys/pstat.h>
 #endif
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
+#ifdef HAVE_SYS_PROTOSW_H
+#include <sys/protosw.h>
+#endif
 #include <libperfstat.h>
 #endif
 #if HAVE_SYS_SYSGET_H
@@ -137,7 +133,19 @@
 #include "util_funcs/header_simple_table.h"
 #include "kernel.h"
 
-double          maxload[3];
+static double maxload[3];
+static int laConfigSet = 0;
+
+static int
+loadave_store_config(int a, int b, void *c, void *d)
+{
+    char line[SNMP_MAXBUF_SMALL];
+    if (laConfigSet > 0) {
+        snprintf(line, SNMP_MAXBUF_SMALL, "pload %.02f %.02f %.02f", maxload[0], maxload[1], maxload[2]);
+        snmpd_store_config(line);
+    }
+    return SNMPERR_SUCCESS;
+}
 
 void
 init_loadave(void)
@@ -154,7 +162,7 @@
          var_extensible_loadave, 1, {ERRORNAME}},
         {LOADAVE, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
          var_extensible_loadave, 1, {LOADAVE}},
-        {LOADMAXVAL, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
+        {LOADMAXVAL, ASN_OCTET_STR, NETSNMP_OLDAPI_RWRITE,
          var_extensible_loadave, 1, {LOADMAXVAL}},
         {LOADAVEINT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
          var_extensible_loadave, 1, {LOADAVEINT}},
@@ -181,9 +189,22 @@
     REGISTER_MIB("ucd-snmp/loadave", extensible_loadave_variables,
                  variable2, loadave_variables_oid);
 
+    laConfigSet = 0;
+
     snmpd_register_config_handler("load", loadave_parse_config,
                                   loadave_free_config,
                                   "max1 [max5] [max15]");
+
+    snmpd_register_config_handler("pload",
+                                  loadave_parse_config, NULL, NULL);
+
+
+    /*
+     * we need to be called back later
+     */
+    snmp_register_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_STORE_DATA,
+                                       loadave_store_config, NULL);
+
 }
 
 void
@@ -191,6 +212,25 @@
 {
     int             i;
 
+    if (strcmp(token, "pload") == 0) {
+        if (laConfigSet < 0) {
+            snmp_log(LOG_WARNING,
+                     "ignoring attempted override of read-only load\n");
+            return;
+        } else {
+            laConfigSet++;
+        }
+    } else {
+        if (laConfigSet > 0) {
+            snmp_log(LOG_WARNING,
+                     "ignoring attempted override of read-only load\n");
+            /*
+             * Fall through and copy in this value.
+             */
+        }
+        laConfigSet = -1;
+    }
+
     for (i = 0; i <= 2; i++) {
         if (cptr != NULL)
             maxload[i] = atof(cptr);
@@ -237,7 +277,7 @@
 #define FIX_TO_DBL(_IN) (((double) _IN)/((double) FSCALE))
 #endif
 #endif
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
     int             favenrun[3];
     perfstat_cpu_total_t cs;
 #endif
@@ -257,7 +297,7 @@
     {
         FILE           *in = fopen("/proc/loadavg", "r");
         if (!in) {
-            snmp_log(LOG_ERR, "snmpd: cannot open /proc/loadavg\n");
+            NETSNMP_LOGONCE((LOG_ERR, "snmpd: cannot open /proc/loadavg\n"));
             return (-1);
         }
         fscanf(in, "%lf %lf %lf", pave, (pave + 1), (pave + 2));
@@ -275,7 +315,7 @@
     r_ave[0] = pst_buf.psd_avg_1_min;
     r_ave[1] = pst_buf.psd_avg_5_min;
     r_ave[2] = pst_buf.psd_avg_15_min;
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
     if(perfstat_cpu_total((perfstat_id_t *)NULL, &cs, sizeof(perfstat_cpu_total_t), 1) > 0) {
         r_ave[0] = cs.loadavg[0] / 65536.0;
         r_ave[1] = cs.loadavg[1] / 65536.0;
@@ -316,6 +356,70 @@
     return 0;
 }
 
+static int
+write_laConfig(int action,
+                          u_char * var_val,
+                          u_char var_val_type,
+                          size_t var_val_len,
+                          u_char * statP, oid * name, size_t name_len)
+{
+    static double laConfig = 0;
+
+    switch (action) {
+    case RESERVE1: /* Check values for acceptability */
+        if (var_val_type != ASN_OCTET_STR) {
+            DEBUGMSGTL(("ucd-snmp/loadave",
+                        "write to laConfig not ASN_OCTET_STR\n"));
+            return SNMP_ERR_WRONGTYPE;
+        }
+        if (var_val_len > 8 || var_val_len <= 0) {
+            DEBUGMSGTL(("ucd-snmp/loadave",
+                        "write to laConfig: bad length\n"));
+            return SNMP_ERR_WRONGLENGTH;
+        }
+
+        if (laConfigSet < 0) {
+            /*
+             * The object is set in a read-only configuration file.
+             */
+            return SNMP_ERR_NOTWRITABLE;
+        }
+        break;
+
+    case RESERVE2: /* Allocate memory and similar resources */
+        {
+            char buf[8];
+            int old_errno = errno;
+            double val;
+            char *endp;
+
+            sprintf(buf, "%.*s", (int) var_val_len, (char *)var_val);
+            val = strtod(buf, &endp);
+
+            if (errno == ERANGE || *endp != '\0' || val < 0 || val > 65536.00) {
+                errno = old_errno;
+                DEBUGMSGTL(("ucd-snmp/loadave",
+                            "write to laConfig: invalid value\n"));
+                return SNMP_ERR_WRONGVALUE;
+            }
+
+            errno = old_errno;
+
+            laConfig = val;
+        }
+        break;
+
+    case COMMIT:
+        {
+            int idx = name[name_len - 1] - 1;
+            maxload[idx] = laConfig;
+            laConfigSet = 1;
+        }
+    }
+
+    return SNMP_ERR_NOERROR;
+}
+
 u_char         *
 var_extensible_loadave(struct variable * vp,
                        oid * name,
@@ -335,6 +439,10 @@
     case MIBINDEX:
         long_ret = name[*length - 1];
         return ((u_char *) (&long_ret));
+    case LOADMAXVAL:
+        /* setup write method, but don't return yet */
+        *write_method = write_laConfig;
+        break;
     case ERRORNAME:
         sprintf(errmsg, "Load-%d", ((name[*length - 1] == 1) ? 1 :
                                     ((name[*length - 1] == 2) ? 5 : 15)));
diff --git a/agent/mibgroup/ucd-snmp/logmatch.c b/agent/mibgroup/ucd-snmp/logmatch.c
index 3988208..abca5ce 100644
--- a/agent/mibgroup/ucd-snmp/logmatch.c
+++ b/agent/mibgroup/ucd-snmp/logmatch.c
@@ -9,248 +9,104 @@
  */
 #include <net-snmp/net-snmp-config.h>
 
+#include "logmatch.h"
+
 #ifdef HAVE_REGEX_H
 
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <errno.h>
-
-
-#if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
+#include <regex.h>
+#include <time.h>
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 
-#include "struct.h"
-#include "logmatch.h"
 #include "util_funcs/header_generic.h"
 #include "util_funcs/header_simple_table.h"
 
+/*
+ * ------------------------------------------------
+ *  This function checks if the filename pattern
+ *  contains the % character indicating a variable
+ *  filename (i.e. it uses date/time format control
+ *  codes, see 'man date') then expands those control
+ *  codes based on current time and sets the
+ *  filename field in the struct.
+ *  Returns 1 if the filename changed, 0 otherwise
+ *  -------------------------------------------------
+ */
+
+static int
+logmatch_update_filename(const char * pattern, char * currentFilename)
+{
+    time_t t;
+    struct tm *tmp;
+    char newFilename[256];
+
+    /*
+     * -------------------------------------------------------------------
+     * if the filename pattern doesn't have the "%" character just return,
+     * since there is no need for further processing
+     * -------------------------------------------------------------------
+     */
+    if (strchr(pattern, '%') == NULL) {
+        return 0;
+    }
+
+    t = time(NULL);
+    tmp = localtime(&t);
+
+    if (tmp == NULL) {
+        perror("localtime");
+        return 0;
+    }
+
+    /* result of expansion must fit into newFilename, otherwise returning */
+    if (strftime(newFilename, sizeof(newFilename), pattern, tmp) == 0) {
+        return 0;
+    }
+
+    /* if same as current filename, just return */
+    if (strcmp(currentFilename, newFilename) == 0) {
+        return 0;
+    } else {
+        /* otherwise update currentFilename and return 1 */
+        strcpy(currentFilename, newFilename);
+        return 1;
+    }
+}
+
+struct logmatchstat {
+    char            filenamePattern[256];
+    char            filename[256];
+    char            regEx[256];
+    char            name[256];
+    FILE           *logfile;
+    long            currentFilePosition;
+    unsigned long   globalMatchCounter;
+    unsigned long   currentMatchCounter;
+    unsigned long   matchCounter;
+    regex_t         regexBuffer;
+    int             myRegexError;
+    int             virgin;
+    int             thisIndex;
+    int             frequency;
+};
+
 #define MAXLOGMATCH   250
 
-struct logmatchstat logmatchTable[MAXLOGMATCH];
-int             logmatchCount;
-
-void
-init_logmatch(void)
-{
-    struct variable2 logmatch_info[] = {
-        {LOGMATCH_INFO, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_logmatch_table, 0}
-    };
-
-    struct variable2 logmatch_table[] = {
-        {LOGMATCH_INDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_logmatch_table, 1, {1}},
-        {LOGMATCH_NAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_logmatch_table, 1, {2}},
-        {LOGMATCH_FILENAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_logmatch_table, 1, {3}},
-        {LOGMATCH_REGEX, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_logmatch_table, 1, {4}},
-        {LOGMATCH_GLOBALCTR, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_logmatch_table, 1, {5}},
-        {LOGMATCH_GLOBALCNT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_logmatch_table, 1, {6}},
-        {LOGMATCH_CURRENTCTR, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_logmatch_table, 1, {7}},
-        {LOGMATCH_CURRENTCNT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_logmatch_table, 1, {8}},
-        {LOGMATCH_COUNTER, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
-         var_logmatch_table, 1, {9}},
-        {LOGMATCH_COUNT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_logmatch_table, 1, {10}},
-        {LOGMATCH_FREQ, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_logmatch_table, 1, {11}},
-        {LOGMATCH_ERROR, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
-         var_logmatch_table, 1, {100}},
-        {LOGMATCH_MSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
-         var_logmatch_table, 1, {101}}
-    };
-
-    /*
-     * Define the OID pointer to the top of the mib tree that we're
-     * registering underneath 
-     */
-    oid             logmatch_info_oid[] = { NETSNMP_UCDAVIS_MIB, 16, 1 };
-    oid             logmatch_variables_oid[] = { NETSNMP_UCDAVIS_MIB, 16, 2, 1 };
-
-    /*
-     * register ourselves with the agent to handle our mib tree 
-     */
-    REGISTER_MIB("ucd-snmp/logmatch", logmatch_info, variable2,
-                 logmatch_info_oid);
-    REGISTER_MIB("ucd-snmp/logmatch", logmatch_table, variable2,
-                 logmatch_variables_oid);
-
-    snmpd_register_config_handler("logmatch", logmatch_parse_config,
-                                  logmatch_free_config,
-                                  "logmatch name path cycletime regex");
-
-}
+static struct logmatchstat logmatchTable[MAXLOGMATCH];
+static int                 logmatchCount = 0;
 
 /***************************************************************
 *                                                              *
-* !!!---!!! PUBLIC !!! --- !!!                                 *
-*                                                              *
-* logmatch_free_config                                         *
-* free memory allocated by this mib module                     *
-*                                                              *
-***************************************************************/
-
-void
-logmatch_free_config(void)
-{
-    int             i;
-
-    /*
-     * ------------------------------------ 
-     * the only memory we have allocated    
-     * is the memory allocated by regcomp   
-     * ------------------------------------ 
-     */
-
-    for (i = 0; i < logmatchCount; i++) {
-
-        regfree(&(logmatchTable[i].regexBuffer));
-    }
-    logmatchCount = 0;
-}
-
-/***************************************************************
-*                                                              *
-* !!!---!!! PUBLIC !!! --- !!!                                 *
-*                                                              *
-* logmatch_parse_config                                        *
-* parse one line from snmpd.conf                               *
-*                                                              *
-***************************************************************/
-
-void
-logmatch_parse_config(const char *token, char *cptr)
-{
-
-    char space_name;
-    char space_path;
-
-    if (logmatchCount < MAXLOGMATCH) {
-        logmatchTable[logmatchCount].frequency = 30;
-        logmatchTable[logmatchCount].thisIndex = logmatchCount;
-
-
-        /*
-         * ------------------------------------ 
-         * be careful this counter needs to be  
-         * reset from persistent storage         
-         * ------------------------------------ 
-         */
-
-        logmatchTable[logmatchCount].globalMatchCounter = 0;
-        logmatchTable[logmatchCount].currentMatchCounter = 0;
-        logmatchTable[logmatchCount].matchCounter = 0;
-        logmatchTable[logmatchCount].virgin = TRUE;
-        logmatchTable[logmatchCount].currentFilePosition = 0;
-
-
-        /*
-         * ------------------------------------ 
-         * be careful: the flag 255 must fit to 
-         * the size of regEx as definded in     
-         * logmatch.h                           
-         * ------------------------------------ 
-         */
-
-        sscanf(cptr, "%255s%c%255s%c %d %255c\n",
-               logmatchTable[logmatchCount].name,
-	       &space_name,
-               logmatchTable[logmatchCount].filenamePattern,
-	       &space_path,
-               &(logmatchTable[logmatchCount].frequency),
-               logmatchTable[logmatchCount].regEx);
-
-        /* fill in filename with initial data */
-        strcpy(logmatchTable[logmatchCount].filename, logmatchTable[logmatchCount].filenamePattern);
-        logmatch_update_filename(logmatchTable[logmatchCount].filenamePattern, logmatchTable[logmatchCount].filename);
-
-	/*
-	 * Log an error then return if any of the strings scanned in were
-	 * larger then they should have been.
-	 */
-	if (space_name != ' ') {
-		snmp_log(LOG_ERR, "logmatch_parse_config: the name scanned " \
-		 "in from line %s is too large. logmatchCount = %d\n",
-		 cptr, logmatchCount);
-		return;
-	} else if (space_path != ' ') {
-		snmp_log(LOG_ERR, "logmatch_parse_config: the file name " \
-		 "scanned in from line %s is too large. logmatchCount = %d\n",
-		    cptr, logmatchCount);
-		return;
-	}
-
-        /*
-         * ------------------------------------ 
-         * just to be safe "NULL" the end of    
-         * the arary regEx as sscanf won't do   
-         * it with the %c modifier              
-         * ------------------------------------ 
-         */
-
-        logmatchTable[logmatchCount].regEx[255] = '\0';
-
-
-        /*
-         * ------------------------------------ 
-         * now compile the regular expression   
-         * ------------------------------------ 
-         */
-
-        logmatchTable[logmatchCount].myRegexError =
-            regcomp(&(logmatchTable[logmatchCount].regexBuffer),
-                    logmatchTable[logmatchCount].regEx,
-                    REG_EXTENDED | REG_NOSUB);
-
-        if (logmatchTable[logmatchCount].frequency > 0) {
-            snmp_alarm_register(logmatchTable[logmatchCount].frequency,
-                                SA_REPEAT,
-                                (SNMPAlarmCallback *)
-                                updateLogmatch_Scheduled,
-                                &(logmatchTable[logmatchCount])
-                );
-        }
-
-        logmatchCount++;
-    }
-}
-
-
-/***************************************************************
-*                                                              *
-* !!!---!!! PUBLIC !!! --- !!!                                 *
-*                                                              *
 * updateLogmatch                                               *
 * this function is called back by snmpd alarms                 *
 *                                                              *
 ***************************************************************/
 
-
-void
+static void
 updateLogmatch(int iindex)
 {
 
@@ -276,7 +132,7 @@
      */
 
     snprintf(perfilename, sizeof(perfilename), "%s/snmpd_logmatch_%s.pos",
-	get_persistent_directory(), logmatchTable[iindex].name);
+             get_persistent_directory(), logmatchTable[iindex].name);
 
     if (logmatchTable[iindex].virgin) {
 
@@ -301,7 +157,8 @@
 
             pos = counter = ccounter = 0;
 
-            if (fscanf(perfile, "%lu %lu %lu %s", &pos, &ccounter, &counter, lastFilename)) {
+            if (fscanf(perfile, "%lu %lu %lu %s",
+                       &pos, &ccounter, &counter, lastFilename)) {
 
 
                 /*
@@ -312,7 +169,8 @@
                  * ------------------------------------ 
                  */
 
-                if (logmatch_update_filename(logmatchTable[iindex].filenamePattern, lastFilename) == 0) {
+                if (logmatch_update_filename(logmatchTable[iindex].filenamePattern,
+                                             lastFilename) == 0) {
 
                     /*
                      * ---------------------------------
@@ -373,7 +231,8 @@
      * -------------------------------------------
      */
 
-    if (logmatch_update_filename(logmatchTable[iindex].filenamePattern, logmatchTable[iindex].filename) == 1) {
+    if (logmatch_update_filename(logmatchTable[iindex].filenamePattern,
+                                 logmatchTable[iindex].filename) == 1) {
         logmatchTable[iindex].currentFilePosition = 0; 
         logmatchTable[iindex].currentMatchCounter = 0;
     }
@@ -477,22 +336,166 @@
 }
 
 
-void
+static void
 updateLogmatch_Scheduled(unsigned int registrationNumber,
                          struct logmatchstat *logmatchtable)
 {
-
     updateLogmatch(logmatchtable->thisIndex);
 }
 
+/***************************************************************
+*                                                              *
+* logmatch_parse_config                                        *
+* parse one line from snmpd.conf                               *
+*                                                              *
+***************************************************************/
+
+static void
+logmatch_parse_config(const char *token, char *cptr)
+{
+
+    char space_name;
+    char space_path;
+
+    if (logmatchCount < MAXLOGMATCH) {
+        logmatchTable[logmatchCount].frequency = 30;
+        logmatchTable[logmatchCount].thisIndex = logmatchCount;
 
 
+        /*
+         * ------------------------------------
+         * be careful this counter needs to be
+         * reset from persistent storage
+         * ------------------------------------
+         */
+
+        logmatchTable[logmatchCount].globalMatchCounter = 0;
+        logmatchTable[logmatchCount].currentMatchCounter = 0;
+        logmatchTable[logmatchCount].matchCounter = 0;
+        logmatchTable[logmatchCount].virgin = TRUE;
+        logmatchTable[logmatchCount].currentFilePosition = 0;
+
+
+        /*
+         * ------------------------------------
+         * be careful: the flag 255 must fit to
+         * the size of regEx as definded in
+         * logmatch.h
+         * ------------------------------------
+         */
+
+        sscanf(cptr, "%255s%c%255s%c %d %255c\n",
+               logmatchTable[logmatchCount].name,
+	       &space_name,
+               logmatchTable[logmatchCount].filenamePattern,
+	       &space_path,
+               &(logmatchTable[logmatchCount].frequency),
+               logmatchTable[logmatchCount].regEx);
+
+        /* fill in filename with initial data */
+        strcpy(logmatchTable[logmatchCount].filename,
+               logmatchTable[logmatchCount].filenamePattern);
+        logmatch_update_filename(logmatchTable[logmatchCount].filenamePattern,
+                                 logmatchTable[logmatchCount].filename);
+
+	/*
+	 * Log an error then return if any of the strings scanned in were
+	 * larger then they should have been.
+	 */
+	if (space_name != ' ') {
+		snmp_log(LOG_ERR, "logmatch_parse_config: the name scanned " \
+		 "in from line %s is too large. logmatchCount = %d\n",
+		 cptr, logmatchCount);
+		return;
+	} else if (space_path != ' ') {
+		snmp_log(LOG_ERR, "logmatch_parse_config: the file name " \
+		 "scanned in from line %s is too large. logmatchCount = %d\n",
+		    cptr, logmatchCount);
+		return;
+	}
+
+        /*
+         * ------------------------------------
+         * just to be safe "NULL" the end of
+         * the arary regEx as sscanf won't do
+         * it with the %c modifier
+         * ------------------------------------
+         */
+
+        logmatchTable[logmatchCount].regEx[255] = '\0';
+
+
+        /*
+         * ------------------------------------
+         * now compile the regular expression
+         * ------------------------------------
+         */
+
+        logmatchTable[logmatchCount].myRegexError =
+            regcomp(&(logmatchTable[logmatchCount].regexBuffer),
+                    logmatchTable[logmatchCount].regEx,
+                    REG_EXTENDED | REG_NOSUB);
+
+        if (logmatchTable[logmatchCount].frequency > 0) {
+            snmp_alarm_register(logmatchTable[logmatchCount].frequency,
+                                SA_REPEAT,
+                                (SNMPAlarmCallback *)
+                                updateLogmatch_Scheduled,
+                                &(logmatchTable[logmatchCount])
+                );
+        }
+
+        logmatchCount++;
+    }
+}
+
+/***************************************************************
+*                                                              *
+* logmatch_free_config                                         *
+* free memory allocated by this mib module                     *
+*                                                              *
+***************************************************************/
+
+static void
+logmatch_free_config(void)
+{
+    int             i;
+
+    /*
+     * ------------------------------------
+     * the only memory we have allocated
+     * is the memory allocated by regcomp
+     * ------------------------------------
+     */
+
+    for (i = 0; i < logmatchCount; i++) {
+
+        regfree(&(logmatchTable[i].regexBuffer));
+    }
+    logmatchCount = 0;
+}
+
+
+#define LOGMATCH_INFO       0
+#define LOGMATCH_INDEX      1
+#define LOGMATCH_NAME       2
+#define LOGMATCH_FILENAME   3
+#define LOGMATCH_REGEX      4
+#define LOGMATCH_GLOBALCTR  5
+#define LOGMATCH_GLOBALCNT  6
+#define LOGMATCH_CURRENTCTR 7
+#define LOGMATCH_CURRENTCNT 8
+#define LOGMATCH_COUNTER    9
+#define LOGMATCH_COUNT      10
+#define LOGMATCH_FREQ       11
+#define LOGMATCH_ERROR      100
+#define LOGMATCH_MSG        101
 
 /*
  * OID functions 
  */
 
-u_char         *
+static u_char *
 var_logmatch_table(struct variable *vp,
                    oid * name,
                    size_t * length,
@@ -587,54 +590,62 @@
     return NULL;
 }
 
-/*
- * ------------------------------------------------
- *  This function checks if the filename pattern 
- *  contains the % character indicating a variable
- *  filename (i.e. it uses date/time format control 
- *  codes, see 'man date') then expands those control
- *  codes based on current time and sets the 
- *  filename field in the struct.
- *  Returns 1 if the filename changed, 0 otherwise
- *  -------------------------------------------------
- */
+void
+init_logmatch(void)
+{
+    struct variable2 logmatch_info[] = {
+        {LOGMATCH_INFO, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+         var_logmatch_table, 0}
+    };
 
-int logmatch_update_filename(char * pattern, char * currentFilename) {
-    time_t t;
-    struct tm *tmp;
-    char newFilename[256];
+    struct variable2 logmatch_table[] = {
+        {LOGMATCH_INDEX, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+         var_logmatch_table, 1, {1}},
+        {LOGMATCH_NAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
+         var_logmatch_table, 1, {2}},
+        {LOGMATCH_FILENAME, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
+         var_logmatch_table, 1, {3}},
+        {LOGMATCH_REGEX, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
+         var_logmatch_table, 1, {4}},
+        {LOGMATCH_GLOBALCTR, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
+         var_logmatch_table, 1, {5}},
+        {LOGMATCH_GLOBALCNT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+         var_logmatch_table, 1, {6}},
+        {LOGMATCH_CURRENTCTR, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
+         var_logmatch_table, 1, {7}},
+        {LOGMATCH_CURRENTCNT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+         var_logmatch_table, 1, {8}},
+        {LOGMATCH_COUNTER, ASN_COUNTER, NETSNMP_OLDAPI_RONLY,
+         var_logmatch_table, 1, {9}},
+        {LOGMATCH_COUNT, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+         var_logmatch_table, 1, {10}},
+        {LOGMATCH_FREQ, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+         var_logmatch_table, 1, {11}},
+        {LOGMATCH_ERROR, ASN_INTEGER, NETSNMP_OLDAPI_RONLY,
+         var_logmatch_table, 1, {100}},
+        {LOGMATCH_MSG, ASN_OCTET_STR, NETSNMP_OLDAPI_RONLY,
+         var_logmatch_table, 1, {101}}
+    };
 
-    /* 
-     * -------------------------------------------------------------------
-     * if the filename pattern doesn't have the "%" character just return, 
-     * since there is no need for further processing
-     * -------------------------------------------------------------------
+    /*
+     * Define the OID pointer to the top of the mib tree that we're
+     * registering underneath
      */
-    if (strstr(pattern, "%") == NULL) {
-        return 0;
-    }
+    oid             logmatch_info_oid[] = { NETSNMP_UCDAVIS_MIB, 16, 1 };
+    oid             logmatch_variables_oid[] = { NETSNMP_UCDAVIS_MIB, 16, 2, 1 };
 
-    t = time(NULL);
-    tmp = localtime(&t);
+    /*
+     * register ourselves with the agent to handle our mib tree
+     */
+    REGISTER_MIB("ucd-snmp/logmatch", logmatch_info, variable2,
+                 logmatch_info_oid);
+    REGISTER_MIB("ucd-snmp/logmatch", logmatch_table, variable2,
+                 logmatch_variables_oid);
 
-    if (tmp == NULL) {
-        perror("localtime");
-        return 0;
-    }
+    snmpd_register_config_handler("logmatch", logmatch_parse_config,
+                                  logmatch_free_config,
+                                  "logmatch name path cycletime regex");
 
-    /* result of expansion must fit into newFilename, otherwise returning */ 
-    if (strftime(newFilename, sizeof(newFilename), pattern, tmp) == 0) {
-        return 0;
-    }
-
-    /* if same as current filename, just return */
-    if (strcmp(currentFilename, newFilename) == 0) {
-        return 0;
-    } else {
-        /* otherwise update currentFilename and return 1 */
-        strcpy(currentFilename, newFilename); 
-        return 1;
-    }
 }
 
-#endif /* HAVE_REGEX */
+#endif /* HAVE_REGEX_H */
diff --git a/agent/mibgroup/ucd-snmp/logmatch.h b/agent/mibgroup/ucd-snmp/logmatch.h
index 35ad27f..b94ad3a 100644
--- a/agent/mibgroup/ucd-snmp/logmatch.h
+++ b/agent/mibgroup/ucd-snmp/logmatch.h
@@ -8,54 +8,6 @@
 config_require(util_funcs/header_generic)
 config_require(util_funcs/header_simple_table)
 
-#include "mibdefs.h"
-#include <regex.h>
-
-struct logmatchstat {
-    char            filenamePattern[256];
-    char            filename[256];
-    char            regEx[256];
-    char            name[256];
-    FILE           *logfile;
-    long            currentFilePosition;
-    unsigned long   globalMatchCounter;
-    unsigned long   currentMatchCounter;
-    unsigned long   matchCounter;
-    regex_t         regexBuffer;
-    int             myRegexError;
-    int             virgin;
-    int             thisIndex;
-    int             frequency;
-};
-void            init_logmatch(void);
-
-
-/*
- * config logmatch parsing routines 
- */
-void            logmatch_free_config(void);
-void            logmatch_parse_config(const char *, char *);
-void            updateLogmatch_Scheduled(unsigned int,
-                                         struct logmatchstat *);
-extern FindVarMethod var_logmatch_table;
-
-
-
-#define LOGMATCH_ERROR_MSG  "%s: size exceeds %dkb (= %dkb)"
-
-#define LOGMATCH_INFO       0
-#define LOGMATCH_INDEX      1
-#define LOGMATCH_NAME       2
-#define LOGMATCH_FILENAME   3
-#define LOGMATCH_REGEX      4
-#define LOGMATCH_GLOBALCTR  5
-#define LOGMATCH_GLOBALCNT  6
-#define LOGMATCH_CURRENTCTR 7
-#define LOGMATCH_CURRENTCNT 8
-#define LOGMATCH_COUNTER    9
-#define LOGMATCH_COUNT      10
-#define LOGMATCH_FREQ       11
-#define LOGMATCH_ERROR      100
-#define LOGMATCH_MSG        101
+void init_logmatch(void);
 
 #endif                          /* _MIBGROUP_LOGMATCH_H */
diff --git a/agent/mibgroup/ucd-snmp/memory.c b/agent/mibgroup/ucd-snmp/memory.c
index a279cdd..742186f 100644
--- a/agent/mibgroup/ucd-snmp/memory.c
+++ b/agent/mibgroup/ucd-snmp/memory.c
@@ -202,7 +202,8 @@
                                      (u_char *)buf, strlen(buf));
             return SNMP_ERR_NOERROR;
         default:
-            snmp_log(LOG_ERR, "unknown object (%lu) in handle_memory\n",
+            snmp_log(LOG_ERR,
+                     "unknown object (%" NETSNMP_PRIo "u) in handle_memory\n",
                      requests->requestvb->name[ reginfo->rootoid_len - 2 ]);
 NOSUCH:
             netsnmp_set_request_error( reqinfo, requests, SNMP_NOSUCHOBJECT );
diff --git a/agent/mibgroup/ucd-snmp/memory_aix4.c b/agent/mibgroup/ucd-snmp/memory_aix4.c
index 820f628..786e5eb 100644
--- a/agent/mibgroup/ucd-snmp/memory_aix4.c
+++ b/agent/mibgroup/ucd-snmp/memory_aix4.c
@@ -34,6 +34,9 @@
 #include "memory.h"             /* the module-specific header */
 #include "memory_aix4.h"    /* the module-specific header */
 
+#ifdef HAVE_SYS_PROTOSW_H
+#include <sys/protosw.h>
+#endif
 #include <libperfstat.h>
 #include <sys/stat.h>
 #include <unistd.h>
diff --git a/agent/mibgroup/ucd-snmp/pass.c b/agent/mibgroup/ucd-snmp/pass.c
index 1589a6c..dc7859b 100644
--- a/agent/mibgroup/ucd-snmp/pass.c
+++ b/agent/mibgroup/ucd-snmp/pass.c
@@ -23,9 +23,6 @@
 #ifdef HAVE_LIMITS_H
 #include <limits.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #ifdef WIN32
 #include <limits.h>
 #endif
@@ -81,7 +78,7 @@
 	/* change priority level */
 	cptr++;
 	cptr = skip_white(cptr);
-	if (! isdigit(*cptr)) {
+	if (! isdigit((unsigned char)(*cptr))) {
 	  config_perror("priority must be an integer");
 	  return;
 	}
@@ -104,7 +101,7 @@
      */
     if (*cptr == '.')
         cptr++;
-    if (!isdigit(*cptr)) {
+    if (!isdigit((unsigned char)(*cptr))) {
         config_perror("second token is not a OID");
         return;
     }
@@ -118,7 +115,7 @@
     (*ppass)->type = PASSTHRU;
 
     (*ppass)->miblen = parse_miboid(cptr, (*ppass)->miboid);
-    while (isdigit(*cptr) || *cptr == '.')
+    while (isdigit((unsigned char)(*cptr)) || *cptr == '.')
         cptr++;
     /*
      * path
diff --git a/agent/mibgroup/ucd-snmp/pass_persist.c b/agent/mibgroup/ucd-snmp/pass_persist.c
index f685411..bd9b603 100644
--- a/agent/mibgroup/ucd-snmp/pass_persist.c
+++ b/agent/mibgroup/ucd-snmp/pass_persist.c
@@ -25,9 +25,6 @@
 #ifdef HAVE_LIMITS_H
 #include <limits.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #ifdef WIN32
 #include <limits.h>
 #endif
@@ -111,7 +108,7 @@
 	/* change priority level */
 	cptr++;
 	cptr = skip_white(cptr);
-	if (! isdigit(*cptr)) {
+	if (! isdigit((unsigned char)(*cptr))) {
 	  config_perror("priority must be an integer");
 	  return;
 	}
@@ -134,7 +131,7 @@
      */
     if (*cptr == '.')
         cptr++;
-    if (!isdigit(*cptr)) {
+    if (!isdigit((unsigned char)(*cptr))) {
         config_perror("second token is not a OID");
         return;
     }
@@ -148,7 +145,7 @@
     (*ppass)->type = PASSTHRU_PERSIST;
 
     (*ppass)->miblen = parse_miboid(cptr, (*ppass)->miboid);
-    while (isdigit(*cptr) || *cptr == '.')
+    while (isdigit((unsigned char)(*cptr)) || *cptr == '.')
         cptr++;
     /*
      * path
diff --git a/agent/mibgroup/ucd-snmp/proc.c b/agent/mibgroup/ucd-snmp/proc.c
index 4284d08..700acf2 100644
--- a/agent/mibgroup/ucd-snmp/proc.c
+++ b/agent/mibgroup/ucd-snmp/proc.c
@@ -29,11 +29,7 @@
 #include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -45,9 +41,6 @@
 #if HAVE_KVM_H
 #include <kvm.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
@@ -216,8 +209,12 @@
         else
             (*procp)->min = 0;
     } else {
+        /* Default to asssume that we require at least one
+         *  such process to be running, but no upper limit */
         (*procp)->max = 0;
-        (*procp)->min = 0;
+        (*procp)->min = 1;
+        /* This frees "proc <procname> 0 0" to monitor
+         * processes that should _not_ be running. */
     }
 #ifdef NETSNMP_PROCFIXCMD
     sprintf((*procp)->fixcmd, NETSNMP_PROCFIXCMD, (*procp)->name);
@@ -267,9 +264,12 @@
         case ERRORFLAG:
             long_ret = sh_count_procs(proc->name);
             if (long_ret >= 0 &&
+                   /* Too few processes running */
                 ((proc->min && long_ret < proc->min) ||
+                   /* Too many processes running */
                  (proc->max && long_ret > proc->max) ||
-                 (proc->min == 0 && proc->max == 0 && long_ret < 1))) {
+                   /* Processes running that shouldn't be */
+                 (proc->min == 0 && proc->max == 0 && long_ret > 0))) {
                 long_ret = 1;
             } else {
                 long_ret = 0;
@@ -280,16 +280,20 @@
             if (long_ret < 0) {
                 errmsg[0] = 0;  /* catch out of mem errors return 0 count */
             } else if (proc->min && long_ret < proc->min) {
-                snprintf(errmsg, sizeof(errmsg),
+                if ( long_ret > 0 )
+                    snprintf(errmsg, sizeof(errmsg),
                         "Too few %s running (# = %d)",
                         proc->name, (int) long_ret);
+                else
+                    snprintf(errmsg, sizeof(errmsg),
+                        "No %s process running", proc->name);
             } else if (proc->max && long_ret > proc->max) {
                 snprintf(errmsg, sizeof(errmsg),
                         "Too many %s running (# = %d)",
                         proc->name, (int) long_ret);
-            } else if (proc->min == 0 && proc->max == 0 && long_ret < 1) {
+            } else if (proc->min == 0 && proc->max == 0 && long_ret > 0) {
                 snprintf(errmsg, sizeof(errmsg),
-                        "No %s process running.", proc->name);
+                        "%s process should not be running.", proc->name);
             } else {
                 errmsg[0] = 0;
             }
@@ -413,7 +417,7 @@
     return ret;
 }
 
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
 #include <procinfo.h>
 #include <sys/types.h>
 
diff --git a/agent/mibgroup/ucd-snmp/proxy.c b/agent/mibgroup/ucd-snmp/proxy.c
index 1f8f470..9a0e356 100644
--- a/agent/mibgroup/ucd-snmp/proxy.c
+++ b/agent/mibgroup/ucd-snmp/proxy.c
@@ -11,9 +11,6 @@
 #include <net-snmp/net-snmp-config.h>
 
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_STRING_H
 #include <string.h>
 #endif
@@ -105,7 +102,9 @@
 
     DEBUGMSGTL(("proxy_config", "parsing args: %d\n", argn));
     /* Call special parse_args that allows for no specified community string */
-    arg = snmp_parse_args(argn, argv, &session, "C:", proxyOptProc);
+    arg = netsnmp_parse_args(argn, argv, &session, "C:", proxyOptProc,
+                             NETSNMP_PARSE_ARGS_NOLOGGING |
+                             NETSNMP_PARSE_ARGS_NOZERO);
 
     /* reset this in case we modified it */
     netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID,
@@ -420,7 +419,7 @@
              */
             DEBUGMSGTL(("proxy", "length=%d, base_len=%d, name_len=%d\n",
                         (int)ourlength, (int)sp->base_len, (int)sp->name_len));
-            if (ourlength > (int) sp->name_len)
+            if (ourlength > sp->name_len)
                 memcpy(&(sp->base[sp->base_len]), &(ourname[sp->name_len]),
                        sizeof(oid) * (ourlength - sp->name_len));
             ourlength = ourlength - sp->name_len + sp->base_len;
diff --git a/agent/mibgroup/ucd-snmp/versioninfo.c b/agent/mibgroup/ucd-snmp/versioninfo.c
index 4a109ed..f42932a 100644
--- a/agent/mibgroup/ucd-snmp/versioninfo.c
+++ b/agent/mibgroup/ucd-snmp/versioninfo.c
@@ -2,11 +2,7 @@
 
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -18,9 +14,6 @@
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_STRING_H
 #include <string.h>
 #endif
diff --git a/agent/mibgroup/ucd-snmp/vmstat_aix4.c b/agent/mibgroup/ucd-snmp/vmstat_aix4.c
index 69fc372..62d7ce6 100644
--- a/agent/mibgroup/ucd-snmp/vmstat_aix4.c
+++ b/agent/mibgroup/ucd-snmp/vmstat_aix4.c
@@ -39,6 +39,9 @@
 /*
  * libperfstat structs 
  */
+#ifdef HAVE_SYS_PROTOSW_H
+#include <sys/protosw.h>
+#endif
 #include <libperfstat.h>
 
 #include <net-snmp/net-snmp-config.h>
diff --git a/agent/mibgroup/ucd_snmp.h b/agent/mibgroup/ucd_snmp.h
index f92c2c4..0d87ec1 100644
--- a/agent/mibgroup/ucd_snmp.h
+++ b/agent/mibgroup/ucd_snmp.h
@@ -3,7 +3,7 @@
 config_require(ucd-snmp/versioninfo)
 config_require(ucd-snmp/pass)
 config_require(ucd-snmp/pass_persist)
-config_require(ucd-snmp/disk)
+config_version_require((ucd-snmp/disk, 5.7, ucd-snmp/disk_hw))
 config_require(ucd-snmp/loadave)
 config_require(agent/extend)
 config_require(ucd-snmp/errormib)
diff --git a/agent/mibgroup/udp-mib/data_access/udp_endpoint.h b/agent/mibgroup/udp-mib/data_access/udp_endpoint.h
index 70e29d2..1edb6d6 100644
--- a/agent/mibgroup/udp-mib/data_access/udp_endpoint.h
+++ b/agent/mibgroup/udp-mib/data_access/udp_endpoint.h
@@ -23,6 +23,12 @@
 config_require(util_funcs/get_pid_from_inode)
 #elif defined( solaris2 )
 config_require(udp-mib/data_access/udp_endpoint_solaris2)
+#elif defined(freebsd4) || defined(dragonfly)
+config_require(udp-mib/data_access/udp_endpoint_freebsd4)
+#elif defined(openbsd4)
+config_require(udp-mib/data_access/udp_endpoint_openbsd)
+#elif defined(netbsd1)
+config_require(udp-mib/data_access/udp_endpoint_netbsd)
 #else
 config_require(udp-mib/data_access/udp_endpoint_unsup)
 #endif
diff --git a/agent/mibgroup/udp-mib/data_access/udp_endpoint_freebsd4.c b/agent/mibgroup/udp-mib/data_access/udp_endpoint_freebsd4.c
new file mode 100644
index 0000000..efb8bb6
--- /dev/null
+++ b/agent/mibgroup/udp-mib/data_access/udp_endpoint_freebsd4.c
@@ -0,0 +1,194 @@
+/*
+ *  UDP MIB architecture support for FreeBSD/DragonFlyBsd
+ */
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/data_access/ipaddress.h>
+#include <net-snmp/data_access/udp_endpoint.h>
+
+#include "udp-mib/udpEndpointTable/udpEndpointTable_constants.h"
+#include "udp-mib/data_access/udp_endpoint_private.h"
+
+#include "mibII/mibII_common.h"
+
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_UDP_VAR_H
+#include <netinet/udp_var.h>
+#endif
+
+static int _load(netsnmp_container *container, u_int flags);
+
+/*
+ * initialize arch specific storage
+ *
+ * @retval  0: success
+ * @retval <0: error
+ */
+int
+netsnmp_arch_udp_endpoint_entry_init(netsnmp_udp_endpoint_entry *entry)
+{
+    /*
+     * init
+     */
+    return 0;
+}
+
+/*
+ * cleanup arch specific storage
+ */
+void
+netsnmp_arch_udp_endpoint_entry_cleanup(netsnmp_udp_endpoint_entry *entry)
+{
+    /*
+     * cleanup
+     */
+}
+
+/*
+ * copy arch specific storage
+ */
+int
+netsnmp_arch_udp_endpoint_entry_copy(netsnmp_udp_endpoint_entry *lhs,
+                                  netsnmp_udp_endpoint_entry *rhs)
+{
+    return 0;
+}
+
+/*
+ * delete an entry
+ */
+int
+netsnmp_arch_udp_endpoint_entry_delete(netsnmp_udp_endpoint_entry *entry)
+{
+    if (NULL == entry)
+        return -1;
+    /** xxx-rks:9 tcpConn delete not implemented */
+    return -1;
+}
+
+
+/**
+ *
+ * @retval  0 no errors
+ * @retval !0 errors
+ */
+int
+netsnmp_arch_udp_endpoint_container_load(netsnmp_container *container,
+                                    u_int load_flags )
+{
+    int rc = 0;
+
+    DEBUGMSGTL(("access:udp_endpoint:container",
+                "udp_endpoint_container_arch_load (flags %x)\n", load_flags));
+
+    if (NULL == container) {
+        snmp_log(LOG_ERR, "no container specified/found for access_udp_endpoint\n");
+        return -1;
+    }
+
+    rc = _load(container, load_flags);
+
+    return rc;
+}
+
+#define NS_ELEM struct xinpcb
+
+/**
+ *
+ * @retval  0 no errors
+ * @retval !0 errors
+ */
+static int
+_load(netsnmp_container *container, u_int load_flags)
+{
+    size_t   len;
+    int      sname[] = { CTL_NET, PF_INET, IPPROTO_UDP, UDPCTL_PCBLIST };
+    char     *udpcb_buf = NULL;
+#if defined(dragonfly)
+    struct xinpcb  *xig = NULL;
+#else
+    struct xinpgen *xig = NULL;
+#endif
+    netsnmp_udp_endpoint_entry  *entry;
+    int      rc = 0;
+
+    /*
+     *  Read in the buffer containing the TCP table data
+     */
+    len = 0;
+    if (sysctl(sname, 4, 0, &len, 0, 0) < 0 ||
+       (udpcb_buf = malloc(len)) == NULL)
+        return -1;
+    if (sysctl(sname, 4, udpcb_buf, &len, 0, 0) < 0) {
+        free(udpcb_buf);
+        return -1;
+    }
+
+    /*
+     *  Unpick this into the constituent 'xinpgen' structures, and extract
+     *     the 'inpcb' elements into a linked list (built in reverse)
+     */
+#if defined(dragonfly)
+    xig = (struct xinpcb  *) udpcb_buf;
+#else
+    xig = (struct xinpgen *) udpcb_buf;
+    xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
+#endif
+
+#if defined(dragonfly)
+    while (xig && (xig->xi_len >= sizeof(struct xinpcb)))
+#else
+    while (xig && (xig->xig_len > sizeof(struct xinpgen)))
+#endif
+    {
+	NS_ELEM pcb = *((NS_ELEM *) xig);
+#if defined(dragonfly)
+	xig = (struct xinpcb  *) ((char *) xig + xig->xi_len);
+#else
+	xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
+#endif
+
+#if !defined(NETSNMP_ENABLE_IPV6)
+        if (pcb.xi_inp.inp_vflag & INP_IPV6)
+	    continue;
+#endif
+
+        entry = netsnmp_access_udp_endpoint_entry_create();
+        if(NULL == entry) {
+            rc = -3;
+            break;
+        }
+
+        /** oddly enough, these appear to already be in network order */
+        entry->loc_port = htons(pcb.xi_inp.inp_lport);
+        entry->rmt_port = htons(pcb.xi_inp.inp_fport);
+        entry->pid = 0;
+        
+        /** the addr string may need work */
+	if (pcb.xi_inp.inp_vflag & INP_IPV6) {
+	    entry->loc_addr_len = entry->rmt_addr_len = 16;
+	    memcpy(entry->loc_addr, &pcb.xi_inp.in6p_laddr, 16);
+	    memcpy(entry->rmt_addr, &pcb.xi_inp.in6p_faddr, 16);
+	}
+	else {
+	    entry->loc_addr_len = entry->rmt_addr_len = 4;
+	    memcpy(entry->loc_addr, &pcb.xi_inp.inp_laddr, 4);
+	    memcpy(entry->rmt_addr, &pcb.xi_inp.inp_faddr, 4);
+	}
+
+        /*
+         * add entry to container
+         */
+	entry->index = CONTAINER_SIZE(container) + 1;
+        CONTAINER_INSERT(container, entry);
+    }
+
+    if(rc<0)
+        return rc;
+
+    return 0;
+}
diff --git a/agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c b/agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c
index c87dc24..43b3230 100644
--- a/agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c
+++ b/agent/mibgroup/udp-mib/data_access/udp_endpoint_linux.c
@@ -227,8 +227,8 @@
      */
     ep->pid = netsnmp_get_pid_from_inode(inode);
 
-    ep->index = (u_int)(lpi->user_context);
-    lpi->user_context = (void*)((u_int)(lpi->user_context) + 1);
+    ep->index = (uintptr_t)(lpi->user_context);
+    lpi->user_context = (void*)((char*)(lpi->user_context) + 1);
 
     ep->oid_index.oids = &ep->index;
     ep->oid_index.len = 1;
diff --git a/agent/mibgroup/udp-mib/data_access/udp_endpoint_netbsd.c b/agent/mibgroup/udp-mib/data_access/udp_endpoint_netbsd.c
new file mode 100644
index 0000000..f68314b
--- /dev/null
+++ b/agent/mibgroup/udp-mib/data_access/udp_endpoint_netbsd.c
@@ -0,0 +1,207 @@
+/*
+ *  udp_endpointTable MIB architecture support for NetBSD
+ *
+ * $Id: udp_endpoint_linux.c 18994 2010-06-16 13:13:25Z dts12 $
+ */
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/data_access/ipaddress.h>
+#include <net-snmp/data_access/udp_endpoint.h>
+
+#include "udp-mib/udpEndpointTable/udpEndpointTable_constants.h"
+#include "udp-mib/data_access/udp_endpoint_private.h"
+
+#include "mibII/mibII_common.h"
+
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_UDP_VAR_H
+#include <netinet/udp_var.h>
+#endif
+
+static int _load(netsnmp_container *container, u_int flags, int var);
+
+/*
+ * initialize arch specific storage
+ *
+ * @retval  0: success
+ * @retval <0: error
+ */
+int
+netsnmp_arch_udp_endpoint_entry_init(netsnmp_udp_endpoint_entry *entry)
+{
+    /*
+     * init
+     */
+    return 0;
+}
+
+/*
+ * cleanup arch specific storage
+ */
+void
+netsnmp_arch_udp_endpoint_entry_cleanup(netsnmp_udp_endpoint_entry *entry)
+{
+    /*
+     * cleanup
+     */
+}
+
+/*
+ * copy arch specific storage
+ */
+int
+netsnmp_arch_udp_endpoint_entry_copy(netsnmp_udp_endpoint_entry *lhs,
+                                  netsnmp_udp_endpoint_entry *rhs)
+{
+    return 0;
+}
+
+/*
+ * delete an entry
+ */
+int
+netsnmp_arch_udp_endpoint_entry_delete(netsnmp_udp_endpoint_entry *entry)
+{
+    if (NULL == entry)
+        return -1;
+    /** xxx-rks:9 udp_endpoint delete not implemented */
+    return -1;
+}
+
+
+/**
+ *
+ * @retval  0 no errors
+ * @retval !0 errors
+ */
+int
+netsnmp_arch_udp_endpoint_container_load(netsnmp_container *container,
+                                    u_int load_flags )
+{
+    int rc = 0;
+
+    DEBUGMSGTL(("access:udp_endpoint:container",
+                "udp_endpoint_container_arch_load (flags %x)\n", load_flags));
+
+    if (NULL == container) {
+        snmp_log(LOG_ERR, "no container specified/found for access_udp_endpoint\n");
+        return -1;
+    }
+
+    rc = _load(container, load_flags, 4);
+#if defined(NETSNMP_ENABLE_IPV6)
+    rc = _load(container, load_flags, 6);
+#endif
+
+    return rc;
+}
+
+
+/**
+ *
+ * @retval  0 no errors
+ * @retval !0 errors
+ */
+static int
+_load(netsnmp_container *container, u_int load_flags, int ver)
+{
+    const char *mibname;
+    int      mib[8];
+    size_t   mib_len;
+    struct kinfo_pcb *pcblist;
+    size_t   pcb_len;
+    netsnmp_udp_endpoint_entry  *entry;
+    int      i, rc = 0;
+
+    /*
+     *  Read in the buffer containing the TCP table data
+     */
+    switch (ver) {
+    case 4:
+    	mibname = "net.inet.udp.pcblist";
+    	break;
+    case 6:
+    	mibname = "net.inet6.udp6.pcblist";
+	break;
+    default:
+    	snmp_log(LOG_ERR, "udp-mib:data_access:_load: bad version %d\n", ver);
+	return -1;
+    }
+
+    if (sysctlnametomib(mibname, mib, &mib_len) == -1) {
+    	snmp_log(LOG_ERR, "udp-mib:data_access:_load: cant resolve mib %s\n", mibname);
+	return -1;
+    }
+
+    if (sysctl(mib, sizeof(mib) / sizeof(*mib), NULL, &pcb_len, NULL, 0) == -1) {
+    	snmp_log(LOG_ERR, "udp-mib:data_access:_load: cant size mib %s\n", mibname);
+	return -1;
+    }
+
+    if ((pcblist = malloc(pcb_len)) == NULL) {
+    	snmp_log(LOG_ERR, "udp-mib:data_access:_load: cant allocate mib %s\n", mibname);
+	return -1;
+    }
+    memset(pcblist, 0, pcb_len);
+
+    mib[6] = sizeof(*pcblist);
+    mib[7] = pcb_len / sizeof(*pcblist);
+
+    if (sysctl(mib, sizeof(mib) / sizeof(*mib),
+		    pcblist, &pcb_len, NULL, 0) == -1) {
+    	snmp_log(LOG_ERR, "udp-mib:data_access:_load: cant size mib %s\n", mibname);
+	return -1;
+    }
+
+    /*
+     *  Unpick this into the constituent structures, and extract
+     *     the 'inpcb' elements into a linked list (built in reverse)
+     */
+    for (i = 0; i < pcb_len / sizeof(*pcblist); i++) {
+	struct kinfo_pcb *pcb = pcblist+i;
+
+        entry = netsnmp_access_udp_endpoint_entry_create();
+        if(NULL == entry) {
+            rc = -3;
+            break;
+        }
+
+        entry->pid = 0;
+        
+	if (ver == 6) {
+	    struct sockaddr_in6 src, dst;
+	    memcpy(&src, &pcb->ki_s, sizeof(src));
+	    memcpy(&dst, &pcb->ki_d, sizeof(dst));
+	    entry->loc_addr_len = entry->rmt_addr_len = 16;
+	    memcpy(entry->loc_addr, &src.sin6_addr, 16);
+	    memcpy(entry->rmt_addr, &dst.sin6_addr, 16);
+	    entry->loc_port = ntohs(src.sin6_port);
+	    entry->rmt_port = ntohs(dst.sin6_port);
+	}
+	else {
+	    struct sockaddr_in src, dst;
+	    memcpy(&src, &pcb->ki_s, sizeof(src));
+	    memcpy(&dst, &pcb->ki_d, sizeof(dst));
+	    entry->loc_addr_len = entry->rmt_addr_len = 4;
+	    memcpy(entry->loc_addr, &src.sin_addr, 4);
+	    memcpy(entry->rmt_addr, &dst.sin_addr, 4);
+	    entry->loc_port = ntohs(src.sin_port);
+	    entry->rmt_port = ntohs(dst.sin_port);
+	}
+
+        /*
+         * add entry to container
+         */
+        entry->index = CONTAINER_SIZE(container) + 1;
+        CONTAINER_INSERT(container, entry);
+    }
+
+    if(rc<0)
+        return rc;
+
+    return 0;
+}
diff --git a/agent/mibgroup/udp-mib/data_access/udp_endpoint_openbsd.c b/agent/mibgroup/udp-mib/data_access/udp_endpoint_openbsd.c
new file mode 100644
index 0000000..99b67dc
--- /dev/null
+++ b/agent/mibgroup/udp-mib/data_access/udp_endpoint_openbsd.c
@@ -0,0 +1,177 @@
+/*
+ *  udp_endpointTable MIB architecture support for OpenBSD
+ */
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/data_access/ipaddress.h>
+#include <net-snmp/data_access/udp_endpoint.h>
+#include <net-snmp/agent/auto_nlist.h>
+
+#include "udp-mib/udpEndpointTable/udpEndpointTable_constants.h"
+#include "udp-mib/data_access/udp_endpoint_private.h"
+
+#include "mibII/mibII_common.h"
+
+#if HAVE_NETINET_UDP_H
+#include <netinet/udp.h>
+#endif
+#if HAVE_NETINET_UDP_VAR_H
+#include <netinet/udp_var.h>
+#endif
+
+static int _load(netsnmp_container *container, u_int flags);
+
+/*
+ * initialize arch specific storage
+ *
+ * @retval  0: success
+ * @retval <0: error
+ */
+int
+netsnmp_arch_udp_endpoint_entry_init(netsnmp_udp_endpoint_entry *entry)
+{
+    /*
+     * init
+     */
+    return 0;
+}
+
+/*
+ * cleanup arch specific storage
+ */
+void
+netsnmp_arch_udp_endpoint_entry_cleanup(netsnmp_udp_endpoint_entry *entry)
+{
+    /*
+     * cleanup
+     */
+}
+
+/*
+ * copy arch specific storage
+ */
+int
+netsnmp_arch_udp_endpoint_entry_copy(netsnmp_udp_endpoint_entry *lhs,
+                                  netsnmp_udp_endpoint_entry *rhs)
+{
+    return 0;
+}
+
+/*
+ * delete an entry
+ */
+int
+netsnmp_arch_udp_endpoint_entry_delete(netsnmp_udp_endpoint_entry *entry)
+{
+    if (NULL == entry)
+        return -1;
+    /** xxx-rks:9 udp_endpoint delete not implemented */
+    return -1;
+}
+
+
+/**
+ *
+ * @retval  0 no errors
+ * @retval !0 errors
+ */
+int
+netsnmp_arch_udp_endpoint_container_load(netsnmp_container *container,
+                                    u_int load_flags )
+{
+    int rc = 0;
+
+    DEBUGMSGTL(("access:udp_endpoint:container",
+                "udp_endpoint_container_arch_load (flags %x)\n", load_flags));
+
+    if (NULL == container) {
+        snmp_log(LOG_ERR, "no container specified/found for access_udp_endpoint\n");
+        return -1;
+    }
+
+    rc = _load(container, load_flags);
+
+    return rc;
+}
+
+/**
+ *
+ * @retval  0 no errors
+ * @retval !0 errors
+ */
+static int
+_load(netsnmp_container *container, u_int load_flags)
+{
+    struct inpcbtable table;
+    struct inpcb   *head, *next, *prev;
+    struct inpcb   inpcb;
+    netsnmp_udp_endpoint_entry  *entry;
+    int      rc = 0;
+
+    /*
+     *  Read in the buffer containing the TCP table data
+     */
+    if (!auto_nlist(UDB_SYMBOL, (char *) &table, sizeof(table))) {
+	DEBUGMSGTL(("udp-mib/udp_endpoint_openbsd", "Failed to read udp_symbol\n"));
+	return -1;
+    }
+
+    prev = (struct inpcb *)&CIRCLEQ_FIRST(&table.inpt_queue);
+    prev = NULL;
+    head = next = CIRCLEQ_FIRST(&table.inpt_queue);
+
+    while (next) {
+	NETSNMP_KLOOKUP(next, (char *)&inpcb, sizeof(inpcb));
+	if (prev && CIRCLEQ_PREV(&inpcb, inp_queue) != prev) {
+	    snmp_log(LOG_ERR,"udbtable link error\n");
+	    break;
+	}
+	prev = next;
+	next = CIRCLEQ_NEXT(&inpcb, inp_queue);
+
+#if !defined(NETSNMP_ENABLE_IPV6)
+        if (inpcb.inp_flags & INP_IPV6)
+            goto skip;
+#endif
+        entry = netsnmp_access_udp_endpoint_entry_create();
+        if (NULL == entry) {
+            rc = -3;
+            break;
+        }
+
+        /** oddly enough, these appear to already be in network order */
+        entry->loc_port = ntohs(inpcb.inp_lport);
+        entry->rmt_port = ntohs(inpcb.inp_fport);
+        entry->pid = 0;
+        
+        /** the addr string may need work */
+	if (inpcb.inp_flags & INP_IPV6) {
+	    entry->loc_addr_len = entry->rmt_addr_len = 16;
+	    memcpy(entry->loc_addr, &inpcb.inp_laddr6, 16);
+	    memcpy(entry->rmt_addr, &inpcb.inp_faddr6, 16);
+	}
+	else {
+	    entry->loc_addr_len = entry->rmt_addr_len = 4;
+	    memcpy(entry->loc_addr, &inpcb.inp_laddr, 4);
+	    memcpy(entry->rmt_addr, &inpcb.inp_faddr, 4);
+	}
+
+        /*
+         * add entry to container
+         */
+        entry->index = CONTAINER_SIZE(container) + 1;
+        CONTAINER_INSERT(container, entry);
+#if !defined(NETSNMP_ENABLE_IPV6)
+    skip:
+#endif
+	if (next == head)
+	    break;
+    }
+
+    if (rc < 0)
+        return rc;
+
+    return 0;
+}
diff --git a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c
index ef83b9a..0e25c21 100644
--- a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c
+++ b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_data_access.c
@@ -243,7 +243,8 @@
         netsnmp_access_udp_endpoint_container_free(ep_c, 0);
         return MFD_RESOURCE_UNAVAILABLE;
     }
-    for (ep = ITERATOR_FIRST(ep_it); ep; ep = ITERATOR_NEXT(ep_it)) {
+    for (ep = (netsnmp_udp_endpoint_entry*)ITERATOR_FIRST(ep_it); ep;
+         ep = (netsnmp_udp_endpoint_entry*)ITERATOR_NEXT (ep_it)) {
 
         /*
          * TODO:352:M: |   |-> set indexes in new udpEndpointTable rowreq context.
diff --git a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c
index 28c2df3..1b6dc67 100644
--- a/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c
+++ b/agent/mibgroup/udp-mib/udpEndpointTable/udpEndpointTable_interface.c
@@ -158,7 +158,7 @@
 
     /*
      * Define the minimum and maximum accessible columns.  This
-     * optimizes retrival. 
+     * optimizes retrieval. 
      */
     tbl_info->min_column = UDPENDPOINTTABLE_MIN_COL;
     tbl_info->max_column = UDPENDPOINTTABLE_MAX_COL;
@@ -701,7 +701,7 @@
                                    netsnmp_agent_request_info *agtreq_info,
                                    netsnmp_request_info *requests)
 {
-    udpEndpointTable_rowreq_ctx *rowreq_ctx =
+    udpEndpointTable_rowreq_ctx *rowreq_ctx = (udpEndpointTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     int             rc, packet_rc;
 
@@ -748,7 +748,7 @@
                                     netsnmp_request_info *requests)
 {
     int             rc = SNMP_ERR_NOERROR;
-    udpEndpointTable_rowreq_ctx *rowreq_ctx =
+    udpEndpointTable_rowreq_ctx *rowreq_ctx = (udpEndpointTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:udpEndpointTable:_mfd_udpEndpointTable_object_lookup", "called\n"));
@@ -819,7 +819,7 @@
                                  netsnmp_agent_request_info *agtreq_info,
                                  netsnmp_request_info *requests)
 {
-    udpEndpointTable_rowreq_ctx *rowreq_ctx =
+    udpEndpointTable_rowreq_ctx *rowreq_ctx = (udpEndpointTable_rowreq_ctx*)
         netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info *tri;
     u_char         *old_string;
@@ -1024,6 +1024,7 @@
                  "udpEndpointTable_container_init\n");
         return;
     }
+    if_ctx->container->container_name = strdup("udpEndpointTable");
 
     if (NULL != if_ctx->cache)
         if_ctx->cache->magic = (void *) if_ctx->container;
@@ -1068,7 +1069,7 @@
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx =
+    rowreq_ctx = (udpEndpointTable_rowreq_ctx*)
         CONTAINER_FIND(udpEndpointTable_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
diff --git a/agent/mibgroup/util_funcs.c b/agent/mibgroup/util_funcs.c
index 749efb2..a2a1cbb 100644
--- a/agent/mibgroup/util_funcs.c
+++ b/agent/mibgroup/util_funcs.c
@@ -43,11 +43,7 @@
 # define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -70,9 +66,6 @@
 #include <strings.h>
 #endif
 #include <ctype.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
@@ -88,6 +81,7 @@
 #endif
 #include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/library/snmp_logging.h>
 
 #include "struct.h"
 #include "util_funcs.h"
@@ -109,13 +103,6 @@
 
 extern int      numprocs, numextens;
 
-void
-Exit(int var)
-{
-    snmp_log(LOG_ERR, "Server Exiting with code %d\n", var);
-    exit(var);
-}
-
 /** deprecated, use netsnmp_mktemp instead */
 const char *
 make_tempfile(void)
@@ -226,6 +213,10 @@
 int
 get_exec_output(struct extensible *ex)
 {
+#ifndef USING_UTILITIES_EXECUTE_MODULE
+    ex->result = -1;
+    NETSNMP_LOGONCE((LOG_WARNING, "support for run_exec_command not available\n"));
+#else
 #if HAVE_EXECV
     char            cachefile[STRMAX];
     char            cache[NETSNMP_MAXCACHESIZE];
@@ -375,8 +366,9 @@
     }
     return fd;
 #endif                          /* WIN32 */
-    return -1;
 #endif
+#endif /* !defined(USING_UTILITIES_EXECUTE_MODULE) */
+    return -1;
 }
 int
 get_exec_pipes(char *cmd, int *fdIn, int *fdOut, int *pid)
@@ -664,70 +656,6 @@
     return SNMP_ERR_NOERROR;
 }
 
-char          **argvrestartp, *argvrestartname, *argvrestart;
-
-RETSIGTYPE
-restart_doit(int a)
-{
-    char * name = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
-                                        NETSNMP_DS_LIB_APPTYPE);
-    snmp_shutdown(name);
-
-    /*  This signal handler may run with SIGALARM blocked.
-     *  Since the signal mask is preserved accross execv(), we must 
-     *  make sure that SIGALARM is unblocked prior of execv'ing.
-     *  Otherwise SIGALARM will be ignored in the next incarnation
-     *  of snmpd, because the signal is blocked. And thus, the 
-     *  restart doesn't work anymore. 
-     *
-     *  A quote from the sigprocmask() man page:
-     *  The use of sigprocmask() is unspecified in a multithreaded process; see
-     *  pthread_sigmask(3). 
-     */ 
-#if HAVE_SIGPROCMASK
-    {
-        sigset_t empty_set;
-      
-        sigemptyset(&empty_set);
-        sigprocmask(SIG_SETMASK, &empty_set, NULL);
-    }
-#elif HAVE_SIGBLOCK
-    sigsetmask(0);
-#endif
-
-    /*
-     * do the exec 
-     */
-#if HAVE_EXECV
-    execv(argvrestartname, argvrestartp);
-    setPerrorstatus(argvrestartname);
-#endif
-}
-
-int
-restart_hook(int action,
-             u_char * var_val,
-             u_char var_val_type,
-             size_t var_val_len,
-             u_char * statP, oid * name, size_t name_len)
-{
-
-    long            tmp = 0;
-
-    if (var_val_type != ASN_INTEGER) {
-        snmp_log(LOG_NOTICE, "Wrong type != int\n");
-        return SNMP_ERR_WRONGTYPE;
-    }
-    tmp = *((long *) var_val);
-    if (tmp == 1 && action == COMMIT) {
-#ifdef SIGALRM
-        signal(SIGALRM, restart_doit);
-#endif
-        alarm(NETSNMP_RESTARTSLEEP);
-    }
-    return SNMP_ERR_NOERROR;
-}
-
 void
 print_mib_oid(oid name[], size_t len)
 {
@@ -748,7 +676,7 @@
     int             i;
 
     for (i = 0; i < (int) len; i++)
-        buf += sprintf(buf, ".%u", (unsigned) name[i]);
+        buf += sprintf(buf, ".%" NETSNMP_PRIo "u", name[i]);
 }
 
 /*
@@ -782,15 +710,15 @@
         /*
          * rewind a field length 
          */
-        while (*ptr != 0 && isspace(*ptr) && init <= ptr)
+        while (*ptr != 0 && isspace((unsigned char)(*ptr)) && init <= ptr)
             ptr--;
-        while (*ptr != 0 && !isspace(*ptr) && init <= ptr)
+        while (*ptr != 0 && !isspace((unsigned char)(*ptr)) && init <= ptr)
             ptr--;
-        if (isspace(*ptr))
+        if (isspace((unsigned char)(*ptr)))
             ptr++;              /* past space */
         if (ptr < init)
             ptr = init;
-        if (!isspace(*ptr) && *ptr != 0)
+        if (!isspace((unsigned char)(*ptr)) && *ptr != 0)
             return (ptr);
     } else {
         if ((ptr = skip_white(ptr)) == NULL)
@@ -817,12 +745,12 @@
         return 0;
     if (*buf == '.')
         buf++;
-    for (i = 0; isdigit(*buf); i++) {
+    for (i = 0; isdigit((unsigned char)(*buf)); i++) {
         /* Subidentifiers are unsigned values, up to 2^32-1
          * so we need to use 'strtoul' rather than 'atoi'
          */
         oidout[i] = strtoul(buf, NULL, 10) & 0xffffffff;
-        while (isdigit(*buf++));
+        while (isdigit((unsigned char)(*buf++)));
         if (*buf == '.')
             buf++;
     }
diff --git a/agent/mibgroup/util_funcs.h b/agent/mibgroup/util_funcs.h
index c5b52ef..d16b6c4 100644
--- a/agent/mibgroup/util_funcs.h
+++ b/agent/mibgroup/util_funcs.h
@@ -4,11 +4,15 @@
 #ifndef _MIBGROUP_UTIL_FUNCS_H
 #define _MIBGROUP_UTIL_FUNCS_H
 
+config_require(util_funcs/Exit)
 config_require(util_funcs/header_generic)
 config_require(util_funcs/header_simple_table)
+config_require(util_funcs/restart)
 
+#include "util_funcs/Exit.h"
 #include "util_funcs/header_generic.h"
 #include "util_funcs/header_simple_table.h"
+#include "util_funcs/restart.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -29,15 +33,12 @@
  prefix_cbx **list_head;
 }netsnmp_prefix_listen_info;
 #endif
-void            Exit(int);
 int             shell_command(struct extensible *);
 int             exec_command(struct extensible *);
 struct extensible *get_exten_instance(struct extensible *, size_t);
 int             get_exec_output(struct extensible *);
 int             get_exec_pipes(char *cmd, int *fdIn, int *fdOut, int *pid);
 WriteMethod     clear_cache;
-RETSIGTYPE      restart_doit(int);
-WriteMethod     restart_hook;
 void            print_mib_oid(oid *, size_t);
 void            sprint_mib_oid(char *, const oid *, size_t);
 int             checkmib(struct variable *, oid *, size_t *, int, size_t *,
diff --git a/agent/mibgroup/util_funcs/Exit.c b/agent/mibgroup/util_funcs/Exit.c
new file mode 100644
index 0000000..c848fd8
--- /dev/null
+++ b/agent/mibgroup/util_funcs/Exit.c
@@ -0,0 +1,23 @@
+/*
+ * Portions of this file are copyrighted by:
+ * Copyright Copyright 2003 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms specified in the COPYING file
+ * distributed with the Net-SNMP package.
+ */
+
+#include <net-snmp/net-snmp-config.h>
+
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include <net-snmp/library/snmp_logging.h>
+
+#include "Exit.h"
+
+void
+Exit(int var)
+{
+    snmp_log(LOG_ERR, "Server Exiting with code %d\n", var);
+    exit(var);
+}
diff --git a/agent/mibgroup/util_funcs/Exit.h b/agent/mibgroup/util_funcs/Exit.h
new file mode 100644
index 0000000..54f0cd5
--- /dev/null
+++ b/agent/mibgroup/util_funcs/Exit.h
@@ -0,0 +1,17 @@
+/*
+ *  Exit.h:  verbose terminaion routine
+ */
+#ifndef _MIBGROUP_UTIL_FUNCS_EXIT_H
+#define _MIBGROUP_UTIL_FUNCS_EXIT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void            Exit(int);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif                          /* _MIBGROUP_UTIL_FUNCS_EXIT_H */
diff --git a/agent/mibgroup/util_funcs/get_pid_from_inode.c b/agent/mibgroup/util_funcs/get_pid_from_inode.c
index 77628b2..1c941b3 100644
--- a/agent/mibgroup/util_funcs/get_pid_from_inode.c
+++ b/agent/mibgroup/util_funcs/get_pid_from_inode.c
@@ -39,7 +39,7 @@
     }
 
     if (!(procdirs = opendir(PROC_PATH))) {
-        snmp_log(LOG_ERR, "snmpd: cannot open /proc\n");
+        NETSNMP_LOGONCE((LOG_ERR, "snmpd: cannot open /proc\n"));
         return 0;
     }
 
diff --git a/agent/mibgroup/util_funcs/header_simple_table.c b/agent/mibgroup/util_funcs/header_simple_table.c
index 8459a4c..81fe160 100644
--- a/agent/mibgroup/util_funcs/header_simple_table.c
+++ b/agent/mibgroup/util_funcs/header_simple_table.c
@@ -70,7 +70,7 @@
     } else if (((int) *length) > (int) vp->namelen + 1) {       /* exact case checked earlier */
         *length = vp->namelen + 1;
         memmove(newname, name, (*length) * sizeof(oid));
-        if (name[*length - 1] < ULONG_MAX) {
+        if (name[*length - 1] < MAX_SUBID) {
             newname[*length - 1] = name[*length - 1] + 1;
         } else {
             /*
@@ -82,7 +82,7 @@
         *length = vp->namelen + 1;
         memmove(newname, name, (*length) * sizeof(oid));
         if (!exact) {
-            if (name[*length - 1] < ULONG_MAX) {
+            if (name[*length - 1] < MAX_SUBID) {
                 newname[*length - 1] = name[*length - 1] + 1;
             } else {
                 /*
diff --git a/agent/mibgroup/util_funcs/restart.c b/agent/mibgroup/util_funcs/restart.c
new file mode 100644
index 0000000..5cad737
--- /dev/null
+++ b/agent/mibgroup/util_funcs/restart.c
@@ -0,0 +1,93 @@
+/*
+ * util_funcs.c
+ */
+/*
+ * Portions of this file are copyrighted by:
+ * Copyright Copyright 2003 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms specified in the COPYING file
+ * distributed with the Net-SNMP package.
+ */
+
+#include <net-snmp/net-snmp-config.h>
+
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <signal.h>
+
+#if HAVE_RAISE
+#define alarm raise
+#endif
+
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/library/snmp_logging.h>
+
+#ifdef USING_UCD_SNMP_ERRORMIB_MODULE
+#include "ucd-snmp/errormib.h"
+#else
+#define setPerrorstatus(x) snmp_log_perror(x)
+#endif
+
+char **argvrestartp, *argvrestartname, *argvrestart;
+
+RETSIGTYPE
+restart_doit(int a)
+{
+    char * name = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                        NETSNMP_DS_LIB_APPTYPE);
+    snmp_shutdown(name);
+
+    /*  This signal handler may run with SIGALARM blocked.
+     *  Since the signal mask is preserved accross execv(), we must
+     *  make sure that SIGALARM is unblocked prior of execv'ing.
+     *  Otherwise SIGALARM will be ignored in the next incarnation
+     *  of snmpd, because the signal is blocked. And thus, the
+     *  restart doesn't work anymore.
+     *
+     *  A quote from the sigprocmask() man page:
+     *  The use of sigprocmask() is unspecified in a multithreaded process; see
+     *  pthread_sigmask(3).
+     */
+#if HAVE_SIGPROCMASK
+    {
+        sigset_t empty_set;
+
+        sigemptyset(&empty_set);
+        sigprocmask(SIG_SETMASK, &empty_set, NULL);
+    }
+#elif HAVE_SIGBLOCK
+    sigsetmask(0);
+#endif
+
+    /*
+     * do the exec
+     */
+#if HAVE_EXECV
+    execv(argvrestartname, argvrestartp);
+    setPerrorstatus(argvrestartname);
+#endif
+}
+
+int
+restart_hook(int action,
+             u_char * var_val,
+             u_char var_val_type,
+             size_t var_val_len,
+             u_char * statP, oid * name, size_t name_len)
+{
+
+    long            tmp = 0;
+
+    if (var_val_type != ASN_INTEGER) {
+        snmp_log(LOG_NOTICE, "Wrong type != int\n");
+        return SNMP_ERR_WRONGTYPE;
+    }
+    tmp = *((long *) var_val);
+    if (tmp == 1 && action == COMMIT) {
+#ifdef SIGALRM
+        signal(SIGALRM, restart_doit);
+#endif
+        alarm(NETSNMP_RESTARTSLEEP);
+    }
+    return SNMP_ERR_NOERROR;
+}
diff --git a/agent/mibgroup/util_funcs/restart.h b/agent/mibgroup/util_funcs/restart.h
new file mode 100644
index 0000000..82760a1
--- /dev/null
+++ b/agent/mibgroup/util_funcs/restart.h
@@ -0,0 +1,15 @@
+#ifndef _MIBGROUP_UTIL_FUNCS_RESTART_H
+#define _MIBGROUP_UTIL_FUNCS_RESTART_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+RETSIGTYPE      restart_doit(int);
+WriteMethod     restart_hook;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MIBGROUP_UTIL_FUNCS_RESTART_H */
diff --git a/agent/mibgroup/utilities/execute.c b/agent/mibgroup/utilities/execute.c
index 4221f96..68f3654 100644
--- a/agent/mibgroup/utilities/execute.c
+++ b/agent/mibgroup/utilities/execute.c
@@ -35,19 +35,22 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include <ucd-snmp/errormib.h>
 
-#include "util_funcs.h"
 #include "execute.h"
+#include "struct.h"
 
 #define setPerrorstatus(x) snmp_log_perror(x)
 
+#ifdef _MSC_VER
+#define popen  _popen
+#define pclose _pclose
+#endif
+
+
 int
 run_shell_command( char *command, char *input,
                    char *output,  int *out_len)	/* Or realloc style ? */
 {
 #if HAVE_SYSTEM
-    const char *ifname;    /* Filename for input  redirection */
-    const char *ofname;    /* Filename for output redirection */
-    char        shellline[STRMAX];   /* The full command to run */
     int         result;    /* and the return value of the command */
 
     if (!command)
@@ -56,25 +59,31 @@
     DEBUGMSGTL(("run_shell_command", "running %s\n", command));
     DEBUGMSGTL(("run:shell", "running '%s'\n", command));
 
+    result = -1;
+
     /*
-     * Set up the command to run....
+     * Set up the command and run it.
      */
     if (input) {
         FILE       *file;
 
-        ifname = netsnmp_mktemp();
-        if(NULL == ifname)
-            return -1;
-        file = fopen(ifname, "w");
-        if(NULL == file) {
-            snmp_log(LOG_ERR,"couldn't open temporary file %s\n", ifname);
-            unlink(ifname);
-            return -1;
-        }
-	fprintf(file, "%s", input);
-        fclose( file );
-
         if (output) {
+            const char *ifname;
+            const char *ofname;    /* Filename for output redirection */
+            char        shellline[STRMAX];   /* The full command to run */
+
+            ifname = netsnmp_mktemp();
+            if(NULL == ifname)
+                return -1;
+            file = fopen(ifname, "w");
+            if(NULL == file) {
+                snmp_log(LOG_ERR,"couldn't open temporary file %s\n", ifname);
+                unlink(ifname);
+                return -1;
+            }
+            fprintf(file, "%s", input);
+            fclose( file );
+
             ofname = netsnmp_mktemp();
             if(NULL == ofname) {
                 if(ifname)
@@ -83,49 +92,46 @@
             }
             snprintf( shellline, sizeof(shellline), "(%s) < \"%s\" > \"%s\"",
                       command, ifname, ofname );
+            result = system(shellline);
+            /*
+             * If output was requested, then retrieve & return it.
+             * Tidy up, and return the result of the command.
+             */
+            if (out_len && *out_len != 0) {
+                int         fd;        /* For processing any output */
+                int         len = 0;
+                fd = open(ofname, O_RDONLY);
+                if(fd >= 0)
+                    len  = read( fd, output, *out_len-1 );
+                *out_len = len;
+                if (len >= 0) output[len] = 0;
+                else output[0] = 0;
+                if (fd >= 0) close(fd);
+            }
+            unlink(ofname);
+            unlink(ifname);
         } else {
-            ofname = NULL;   /* Just to shut the compiler up! */
-            snprintf( shellline, sizeof(shellline), "(%s) < \"%s\"",
-                      command, ifname );
+            file = popen(command, "w");
+            if (file) {
+                fwrite(input, 1, strlen(input), file);
+                result = pclose(file);
+            }
         }
     } else {
-        ifname = NULL;   /* Just to shut the compiler up! */
         if (output) {
-            ofname = netsnmp_mktemp();
-            if(NULL == ofname)
-                return -1;
-            snprintf( shellline, sizeof(shellline), "(%s) > \"%s\"",
-                      command, ofname );
-        } else {
-            ofname = NULL;   /* Just to shut the compiler up! */
-            snprintf( shellline, sizeof(shellline), "%s",
-                      command );
-        }
-    }
+            FILE* file;
 
-    /*
-     * ... and run it
-     */
-    result = system(shellline);
-
-    /*
-     * If output was requested, then retrieve & return it.
-     * Tidy up, and return the result of the command.
-     */
-    if ( output && out_len && (*out_len != 0) ) {
-        int         fd;        /* For processing any output */
-        int         len = 0;
-        fd = open(ofname, O_RDONLY);
-        if(fd >= 0)
-            len  = read( fd, output, *out_len-1 );
-	*out_len = len;
-	if (len >= 0) output[len] = 0;
-	else output[0] = 0;
-	if (fd >= 0) close(fd);
-        unlink(ofname);
-    }
-    if ( input ) {
-        unlink(ifname);
+            file = popen(command, "r");
+            if (file) {
+                *out_len = fread(output, 1, *out_len - 1, file);
+                if (*out_len >= 0)
+                    output[*out_len] = 0;
+                else
+                    output[0] = 0;
+                result = pclose(file);
+            }
+        } else
+            result = system(command);
     }
 
     return result;
@@ -166,61 +172,6 @@
     return argv;
 }
 
-char **
-xx_tokenize_exec_command( char *command, int *argc )
-{
-    char ctmp[STRMAX];
-    char *cptr1, *cptr2;
-    char **argv;
-    int  count, i;
-
-    if (!command)
-        return NULL;
-
-    memset( ctmp, 0, STRMAX );
-    /*
-     * Make a copy of the command into the 'ctmp' buffer,
-     *    splitting it into separate tokens
-     *    (but still all in the one buffer).
-     */
-    count = 1;
-    for (cptr1 = command, cptr2 = ctmp;
-            cptr1 && *cptr1;
-            cptr1++, cptr2++) {
-        *cptr2 = *cptr1;
-	if (isspace(*cptr1)) {
-            /*
-             * We've reached the end of a token, so increase
-             * the count, and mark this in the command copy.
-             * Then get ready for the next word.
-             */
-            count++;
-            *cptr2 = 0;    /* End of token */
-	    cptr1 = skip_white(cptr1);
-	    if (!cptr1)
-	        break;
-	    cptr1--;	/* Back up one, ready for the next loop */
-	}
-    }
-
-    /*
-     * Now set up the 'argv' array,
-     *   copying tokens out of the 'cptr' buffer
-     */
-    argv = (char **) calloc((count + 2), sizeof(char *));
-    if (argv == NULL)
-        return NULL;
-    cptr2 = ctmp;
-    for (i = 0; i < count; i++) {
-        argv[i] = strdup( cptr2 );
-        cptr2  += strlen( cptr2 )+1;
-    }
-    argv[count] = NULL;
-    *argc       = count;
-        
-    return argv;
-}
-
 
 int
 run_exec_command( char *command, char *input,
diff --git a/agent/mibgroup/utilities/execute.h b/agent/mibgroup/utilities/execute.h
index 05e8270..3c9e84b 100644
--- a/agent/mibgroup/utilities/execute.h
+++ b/agent/mibgroup/utilities/execute.h
@@ -1,7 +1,6 @@
 #ifndef _MIBGROUP_EXECUTE_H
 #define _MIBGROUP_EXECUTE_H
 
-config_require(util_funcs)
 config_belongs_in(agent_module)
 
 int run_shell_command(char *command, char *input,
diff --git a/agent/mibgroup/utilities/iquery.c b/agent/mibgroup/utilities/iquery.c
index c5025ab..d1f7efc 100644
--- a/agent/mibgroup/utilities/iquery.c
+++ b/agent/mibgroup/utilities/iquery.c
@@ -131,7 +131,7 @@
                            pdu->securityEngineID,
                            pdu->securityEngineIDLen);
     else
-        return netsnmp_iquery_session( pdu->community, 
+        return netsnmp_iquery_session((char *) pdu->community, 
                            pdu->version,
                            pdu->version+1,
                            SNMP_SEC_LEVEL_NOAUTH,
diff --git a/agent/mibgroup/utilities/override.c b/agent/mibgroup/utilities/override.c
index 540ffbd..deadf0e 100644
--- a/agent/mibgroup/utilities/override.c
+++ b/agent/mibgroup/utilities/override.c
@@ -32,7 +32,7 @@
                  netsnmp_request_info *requests)
 {
 
-    override_data  *data = handler->myvoid;
+    override_data  *data = (override_data*)handler->myvoid;
     void *tmpptr;
 
     if (!data) {
@@ -203,7 +203,7 @@
              * hex 
              */
             thedata->value_len =
-                hex_to_binary2(buf + 2, strlen(buf) - 2,
+                hex_to_binary2((u_char *)(buf + 2), strlen(buf) - 2,
                                (char **) &thedata->value);
         } else {
             thedata->value = strdup(buf);
diff --git a/agent/mibgroup/winExtDLL.c b/agent/mibgroup/winExtDLL.c
index c008576..d78c185 100644
--- a/agent/mibgroup/winExtDLL.c
+++ b/agent/mibgroup/winExtDLL.c
@@ -763,7 +763,6 @@
     winextdll      *ext_dll_info;
     netsnmp_request_info *request;
     UINT            nRequestType;
-    const char     *mode_name;
     int             rc;
 
     netsnmp_assert(ext_dll_view_info);
@@ -782,35 +781,27 @@
 
     switch (reqinfo->mode) {
     case MODE_GET:
-        mode_name = "GET";
         nRequestType = SNMP_EXTENSION_GET;
         netsnmp_assert(!context_info_head);
         break;
     case MODE_GETNEXT:
-        mode_name = "GETNEXT";
         nRequestType = SNMP_EXTENSION_GET_NEXT;
         netsnmp_assert(!context_info_head);
         break;
     case MODE_SET_RESERVE1:
-        mode_name = "SET_RESERVE1";
         nRequestType = SNMP_EXTENSION_SET_TEST;
         break;
     case MODE_SET_RESERVE2:
-        mode_name = "SET_RESERVE2";
         return SNMP_ERR_NOERROR;
     case MODE_SET_ACTION:
-        mode_name = "SET_ACTION";
         return SNMP_ERR_NOERROR;
     case MODE_SET_UNDO:
-        mode_name = "SET_UNDO";
         nRequestType = SNMP_EXTENSION_SET_UNDO;
         break;
     case MODE_SET_COMMIT:
-        mode_name = "SET_COMMIT";
         nRequestType = SNMP_EXTENSION_SET_COMMIT;
         break;
     case MODE_SET_FREE:
-        mode_name = "SET_FREE";
         nRequestType = SNMP_EXTENSION_SET_CLEANUP;
         break;
     default:
diff --git a/agent/mibgroup/winExtDLL.h b/agent/mibgroup/winExtDLL.h
index a10b21c..c90f669 100644
--- a/agent/mibgroup/winExtDLL.h
+++ b/agent/mibgroup/winExtDLL.h
@@ -17,9 +17,8 @@
      *  and writeable object methods ('WriteMethod').
      */
      void     init_winExtDLL(void);
-
-     Netsnmp_Node_Handler var_winExtDLL;
-     
+     void     shutdown_winExtDLL(void);
+   
 #ifdef __cplusplus
 }
 #endif
diff --git a/agent/object_monitor.c b/agent/object_monitor.c
index c8493e4..2ab8c9b 100644
--- a/agent/object_monitor.c
+++ b/agent/object_monitor.c
@@ -25,7 +25,7 @@
 
 #if ! defined TRUE
 #  define TRUE 1
-#elif TRUE != 1
+#elsif TRUE != 1
 error "TRUE != 1"
 #endif
 /**************************************************************************
diff --git a/agent/snmp_agent.c b/agent/snmp_agent.c
index b7761b0..0946423 100644
--- a/agent/snmp_agent.c
+++ b/agent/snmp_agent.c
@@ -59,11 +59,7 @@
 #include <string.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -79,9 +75,6 @@
 #include <netinet/in.h>
 #endif
 #include <errno.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #define SNMP_NEED_REQUEST_LIST
 #include <net-snmp/net-snmp-includes.h>
@@ -382,7 +375,7 @@
                 /*
                  * I don't think this case should ever happen. Please email
                  * the net-snmp-coders@lists.sourceforge.net if you have
-                 * a test case that hits this assert. -- rstory
+                 * a test case that hits this condition. -- rstory
                  */
 		int i;
                 netsnmp_assert(NULL == asp->requests); /* see note above */
@@ -405,7 +398,7 @@
 	    } else {
                 /*
                  * when would we not have saved variables? someone
-                 * let me know if they hit this assert. -- rstory
+                 * let me know if they hit this condition. -- rstory
                  */
                 netsnmp_assert(NULL != ptr->saved_vars);
             }
@@ -679,6 +672,11 @@
         }                       /* endif -- count>0 */
 
     /*
+     * see if persistent store needs to be saved
+     */
+    snmp_store_if_needed();
+
+    /*
      * Run requested alarms.  
      */
     run_alarms();
@@ -1077,6 +1075,7 @@
     agent_nsap     *a = NULL, *n = NULL, **prevNext = &agent_nsap_list;
     int             handle = 0;
     void           *isp = NULL;
+    int             rc;
 
     if (t == NULL) {
         return -1;
@@ -1107,6 +1106,27 @@
 				  NETSNMP_DS_AGENT_FLAGS);
     s->isAuthoritative = SNMP_SESS_AUTHORITATIVE;
 
+    /* Optional supplimental transport configuration information and
+       final call to actually open the transport */
+    if ((rc = netsnmp_sess_config_transport(s->transport_configuration, t))
+        != SNMPERR_SUCCESS) {
+        SNMP_FREE(s);
+        SNMP_FREE(n);
+        return -1;
+    }
+
+
+    if (t->f_open)
+        t = t->f_open(t);
+
+    if (NULL == t) {
+        SNMP_FREE(s);
+        SNMP_FREE(n);
+        return -1;
+    }
+
+    t->flags |= NETSNMP_TRANSPORT_FLAG_OPENED;
+
     sp = snmp_add(s, t, netsnmp_agent_check_packet,
                   netsnmp_agent_check_parse);
     if (sp == NULL) {
@@ -2096,7 +2116,7 @@
                 asp->treecache_len =
                     (asp->treecache_len + CACHE_GROW_SIZE);
                 asp->treecache =
-                    realloc(asp->treecache,
+                    (netsnmp_tree_cache *)realloc(asp->treecache,
                             sizeof(netsnmp_tree_cache) *
                             asp->treecache_len);
                 if (asp->treecache == NULL)
@@ -2224,7 +2244,7 @@
     if (asp->treecache == NULL && asp->treecache_len == 0) {
         asp->treecache_len = SNMP_MAX(1 + asp->vbcount / 4, 16);
         asp->treecache =
-            calloc(asp->treecache_len, sizeof(netsnmp_tree_cache));
+            (netsnmp_tree_cache *)calloc(asp->treecache_len, sizeof(netsnmp_tree_cache));
         if (asp->treecache == NULL)
             return SNMP_ERR_GENERR;
     }
@@ -2265,8 +2285,8 @@
              * result vector
              */
             if (maxresponses < 0 ||
-                maxresponses > INT_MAX / sizeof(struct varbind_list *))
-                maxresponses = INT_MAX / sizeof(struct varbind_list *);
+                maxresponses > (int)(INT_MAX / sizeof(struct varbind_list *)))
+                maxresponses = (int)(INT_MAX / sizeof(struct varbind_list *));
 
             /* ensure that the maximum number of repetitions will fit in the
              * result vector
@@ -3466,6 +3486,10 @@
             return SNMPERR_VALUE;
              */
 
+        case SNMP_MSG_INTERNAL_SET_RESERVE1:
+            request->status = SNMP_ERR_NOCREATION;
+            break;
+
         default:
             request->status = SNMP_ERR_NOSUCHNAME;      /* WWW: correct? */
             break;
@@ -3569,19 +3593,21 @@
     return result;
 }
 
-extern struct timeval starttime;
-
-                /*
-                 * Return the value of 'sysUpTime' at the given marker 
-                 */
+/**
+ * Return the value of 'sysUpTime' at the given marker
+ *
+ * @note Use netsnmp_get_agent_runtime() instead of this function if you need
+ *   to know how much time elapsed since netsnmp_set_agent_starttime() has been
+ *   called.
+ */
 u_long
 netsnmp_marker_uptime(marker_t pm)
 {
     u_long          res;
-    marker_t        start = (marker_t) & starttime;
+    const_marker_t  start = netsnmp_get_agent_starttime();
 
     res = uatime_hdiff(start, pm);
-    return res;                 /* atime_diff works in msec, not csec */
+    return res;
 }
 
                         /*
@@ -3593,6 +3619,49 @@
     return netsnmp_marker_uptime((marker_t) tv);
 }
 
+
+struct timeval  starttime;
+
+/**
+ * Return a pointer to the variable in which the Net-SNMP start time has
+ * been stored.
+ */
+const_marker_t        
+netsnmp_get_agent_starttime(void)
+{
+    return &starttime;
+}
+
+/**
+ * Report the time that elapsed since the agent start time in hundredths of a
+ * second.
+ *
+ * @see See also netsnmp_set_agent_starttime().
+ */
+uint64_t
+netsnmp_get_agent_runtime(void)
+{
+    struct timeval now, delta;
+
+    gettimeofday(&now, NULL);
+    NETSNMP_TIMERSUB(&now, &starttime, &delta);
+    return delta.tv_sec * (uint64_t)100 + delta.tv_usec / 10000;
+}
+
+/**
+ * Set the time at which Net-SNMP started either to the current time
+ * (if s == NULL) or to *s (if s is not NULL).
+ */
+void            
+netsnmp_set_agent_starttime(marker_t s)
+{
+    if (s)
+        starttime = *(struct timeval*)s;
+    else
+        gettimeofday(&starttime, NULL);
+}
+
+
                 /*
                  * Return the current value of 'sysUpTime' 
                  */
@@ -3605,6 +3674,18 @@
     return netsnmp_timeval_uptime(&now);
 }
 
+void
+netsnmp_set_agent_uptime(u_long hsec)
+{
+    struct timeval  now;
+    struct timeval  new_uptime;
+
+    gettimeofday(&now, NULL);
+    new_uptime.tv_sec = hsec / 100;
+    new_uptime.tv_usec = (hsec - new_uptime.tv_sec * 100) * 10000L;
+    NETSNMP_TIMERSUB(&now, &new_uptime, &starttime);
+}
+
 
 /*************************************************************************
  *
diff --git a/agent/snmp_perl.c b/agent/snmp_perl.c
index 7caa335..3f0a216 100644
--- a/agent/snmp_perl.c
+++ b/agent/snmp_perl.c
@@ -29,7 +29,10 @@
 void
 maybe_source_perl_startup(void)
 {
-    const char     *embedargs[] = { "", "" };
+    int             argc;
+    char          **argv;
+    char          **env;
+    char           *embedargs[] = { NULL, NULL };
     const char     *perl_init_file = netsnmp_ds_get_string(NETSNMP_DS_APPLICATION_ID,
 							   NETSNMP_DS_AGENT_PERL_INIT_FILE);
     char            init_file[SNMP_MAXBUF];
@@ -40,14 +43,19 @@
         return;
     have_done_init = 1;
 
+    embedargs[0] = strdup("");
     if (!perl_init_file) {
         snprintf(init_file, sizeof(init_file) - 1,
                  "%s/%s", SNMPSHAREPATH, "snmp_perl.pl");
         perl_init_file = init_file;
     }
-    embedargs[1] = perl_init_file;
+    embedargs[1] = strdup(perl_init_file);
 
     DEBUGMSGTL(("perl", "initializing perl (%s)\n", embedargs[1]));
+    argc = 0;
+    argv = NULL;
+    env = NULL;
+    PERL_SYS_INIT3(&argc, &argv, &env);
     my_perl = perl_alloc();
     if (!my_perl)
         goto bail_out;
@@ -58,17 +66,22 @@
     PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
 #endif
 
-    if (perl_parse(my_perl, xs_init, 2, NETSNMP_REMOVE_CONST(char **, embedargs), NULL))
+    if (perl_parse(my_perl, xs_init, 2, embedargs, NULL))
         goto bail_out;
 
     if (perl_run(my_perl))
         goto bail_out;
 
+    free(embedargs[0]);
+    free(embedargs[1]);
+
     DEBUGMSGTL(("perl", "done initializing perl\n"));
 
     return;
 
   bail_out:
+    free(embedargs[0]);
+    free(embedargs[1]);
     snmp_log(LOG_ERR, "embedded perl support failed to initialize\n");
     netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, 
 			   NETSNMP_DS_AGENT_DISABLE_PERL, 1);
diff --git a/agent/snmp_vars.c b/agent/snmp_vars.c
index 4639ed7..9f6c5d9 100644
--- a/agent/snmp_vars.c
+++ b/agent/snmp_vars.c
@@ -77,11 +77,7 @@
 #include <errno.h>
 
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -90,9 +86,6 @@
 #  include <time.h>
 # endif
 #endif
-#if HAVE_WINSOCK_H
-# include <winsock.h>
-#endif
 #if HAVE_SYS_SOCKET_H
 # include <sys/socket.h>
 #endif
@@ -155,6 +148,12 @@
 #include "mib_module_includes.h"
 #include "net-snmp/library/container.h"
 
+#if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_LIBSSL)
+#include <openssl/ssl.h>
+#include <openssl/x509v3.h>
+#include <net-snmp/library/cert_util.h>
+#endif
+
 #include "snmp_perl.h"
 
 #ifndef  MIN
@@ -238,8 +237,6 @@
 u_char          return_buf[256];        /* nee 64 */
 #endif
 
-struct timeval  starttime;
-
 int             callback_master_num = -1;
 
 #ifdef NETSNMP_TRANSPORT_CALLBACK_DOMAIN
@@ -287,9 +284,7 @@
     /*
      * get current time (ie, the time the agent started) 
      */
-    gettimeofday(&starttime, NULL);
-    starttime.tv_sec--;
-    starttime.tv_usec += 1000000L;
+    netsnmp_set_agent_starttime(NULL);
 
     /*
      * we handle alarm signals ourselves in the select loop 
@@ -321,10 +316,12 @@
      * initialize agentx configs
      */
     agentx_config_init();
+#if defined(USING_AGENTX_SUBAGENT_MODULE)
     if(netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
                               NETSNMP_DS_AGENT_ROLE) == SUB_AGENT)
         subagent_init();
 #endif
+#endif
 
     /*
      * Register configuration tokens from transport modules.  
@@ -343,6 +340,11 @@
     init_perl();
 #endif
 
+#if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_LIBSSL)
+    /** init secname mapping */
+    netsnmp_certs_agent_init();
+#endif
+
 #ifdef USING_AGENTX_SUBAGENT_MODULE
     /*
      * don't init agent modules for a sub-agent
@@ -376,6 +378,9 @@
     clear_callback();
     clear_user_list();
     netsnmp_addrcache_destroy();
+#ifdef NETSNMP_CAN_USE_NLIST
+    free_kmem();
+#endif
 
     done_init_agent = 0;
 }
diff --git a/agent/snmpd.c b/agent/snmpd.c
index f0a6efe..4143014 100644
--- a/agent/snmpd.c
+++ b/agent/snmpd.c
@@ -36,6 +36,7 @@
  * distributed with the Net-SNMP package.
  */
 #include <net-snmp/net-snmp-config.h>
+#include <net-snmp/types.h>
 
 #if HAVE_IO_H
 #include <io.h>
@@ -61,11 +62,7 @@
 #include <arpa/inet.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -79,8 +76,6 @@
 #endif
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
-#elif HAVE_WINSOCK_H
-#include <winsock.h>
 #endif
 #if HAVE_NET_IF_H
 #include <net/if.h>
@@ -261,81 +256,90 @@
 usage(char *prog)
 {
 #ifdef WIN32SERVICE
-    printf("\nUsage:  %s [-register] [-quiet] [OPTIONS] [LISTENING ADDRESSES]",
-           prog);
-    printf("\n        %s [-unregister] [-quiet]", prog);
+    printf("\nUsage:  %s [-register] [-quiet] [OPTIONS] [LISTENING ADDRESSES]"
+           "\n        %s [-unregister] [-quiet]", prog, prog);
 #else
     printf("\nUsage:  %s [OPTIONS] [LISTENING ADDRESSES]", prog);
 #endif
-    printf("\n");
-    printf("\n\tVersion:  %s\n", netsnmp_get_version());
-    printf("\tWeb:      http://www.net-snmp.org/\n");
-    printf("\tEmail:    net-snmp-coders@lists.sourceforge.net\n");
-    printf("\n  -a\t\t\tlog addresses\n");
-    printf("  -A\t\t\tappend to the logfile rather than truncating it\n");
-    printf("  -c FILE[,...]\t\tread FILE(s) as configuration file(s)\n");
-    printf("  -C\t\t\tdo not read the default configuration files\n");
-    printf("  -d\t\t\tdump sent and received SNMP packets\n");
-    printf("  -D[TOKEN[,...]]\tturn on debugging output for the given TOKEN(s)\n"
+    printf("\n"
+           "\n\tVersion:  %s\n%s"
+           "\t\t\t  (config search path: %s)\n%s%s",
+           netsnmp_get_version(),
+           "\tWeb:      http://www.net-snmp.org/\n"
+           "\tEmail:    net-snmp-coders@lists.sourceforge.net\n"
+           "\n  -a\t\t\tlog addresses\n"
+           "  -A\t\t\tappend to the logfile rather than truncating it\n"
+           "  -c FILE[,...]\t\tread FILE(s) as configuration file(s)\n"
+           "  -C\t\t\tdo not read the default configuration files\n",
+           get_configuration_directory(),
+           "  -d\t\t\tdump sent and received SNMP packets\n"
+           "  -D[TOKEN[,...]]\tturn on debugging output for the given TOKEN(s)\n"
 	   "\t\t\t  (try ALL for extremely verbose output)\n"
-	   "\t\t\t  Don't put space(s) between -D and TOKEN(s).\n");
-    printf("  -f\t\t\tdo not fork from the shell\n");
+	   "\t\t\t  Don't put space(s) between -D and TOKEN(s).\n"
+           "  -f\t\t\tdo not fork from the shell\n",
 #if HAVE_UNISTD_H
-    printf("  -g GID\t\tchange to this numeric gid after opening\n"
-	   "\t\t\t  transport endpoints\n");
+           "  -g GID\t\tchange to this numeric gid after opening\n"
+	   "\t\t\t  transport endpoints\n"
 #endif
-    printf("  -h, --help\t\tdisplay this usage message\n");
-    printf("  -H\t\t\tdisplay configuration file directives understood\n");
-    printf("  -I [-]INITLIST\tlist of mib modules to initialize (or not)\n");
-    printf("\t\t\t  (run snmpd with -Dmib_init for a list)\n");
-    printf("  -L <LOGOPTS>\t\ttoggle options controlling where to log to\n");
+           "  -h, --help\t\tdisplay this usage message\n"
+           "  -H\t\t\tdisplay configuration file directives understood\n"
+           "  -I [-]INITLIST\tlist of mib modules to initialize (or not)\n"
+           "\t\t\t  (run snmpd with -Dmib_init for a list)\n"
+           "  -L <LOGOPTS>\t\ttoggle options controlling where to log to\n");
     snmp_log_options_usage("\t", stdout);
-    printf("  -m MIBLIST\t\tuse MIBLIST instead of the default MIB list\n");
-    printf("  -M DIRLIST\t\tuse DIRLIST as the list of locations\n\t\t\t  to look for MIBs\n");
-    printf("  -p FILE\t\tstore process id in FILE\n");
-    printf("  -q\t\t\tprint information in a more parsable format\n");
-    printf("  -r\t\t\tdo not exit if files only accessible to root\n"
-	   "\t\t\t  cannot be opened\n");
+    printf("  -m MIBLIST\t\tuse MIBLIST instead of the default MIB list\n"
+           "  -M DIRLIST\t\tuse DIRLIST as the list of locations to look for MIBs\n"
+           "\t\t\t  (default %s)\n%s%s",
+#ifndef NETSNMP_DISABLE_MIB_LOADING
+           netsnmp_get_mib_directory(),
+#else
+           "MIBs not loaded",
+#endif
+           "  -p FILE\t\tstore process id in FILE\n"
+           "  -q\t\t\tprint information in a more parsable format\n"
+           "  -r\t\t\tdo not exit if files only accessible to root\n"
+	   "\t\t\t  cannot be opened\n"
 #ifdef WIN32SERVICE
-    printf("  -register\t\tregister as a Windows service\n");
-    printf("  \t\t\t  (followed by -quiet to prevent message popups)\n");
-    printf("  \t\t\t  (followed by the startup parameter list)\n");
-    printf("  \t\t\t  Note that some parameters are not relevant when running as a service\n");
+           "  -register\t\tregister as a Windows service\n"
+           "  \t\t\t  (followed by -quiet to prevent message popups)\n"
+           "  \t\t\t  (followed by the startup parameter list)\n"
+           "  \t\t\t  Note that some parameters are not relevant when running as a service\n"
 #endif
 #if HAVE_UNISTD_H
-    printf("  -u UID\t\tchange to this uid (numeric or textual) after\n"
-	   "\t\t\t  opening transport endpoints\n");
+           "  -u UID\t\tchange to this uid (numeric or textual) after\n"
+	   "\t\t\t  opening transport endpoints\n"
 #endif
 #ifdef WIN32SERVICE
-    printf("  -unregister\t\tunregister as a Windows service\n");
-    printf("  \t\t\t  (followed -quiet to prevent message popups)\n");
+           "  -unregister\t\tunregister as a Windows service\n"
+           "  \t\t\t  (followed -quiet to prevent message popups)\n"
 #endif
-    printf("  -v, --version\t\tdisplay version information\n");
-    printf("  -V\t\t\tverbose display\n");
+           "  -v, --version\t\tdisplay version information\n"
+           "  -V\t\t\tverbose display\n"
 #if defined(USING_AGENTX_SUBAGENT_MODULE)|| defined(USING_AGENTX_MASTER_MODULE)
-    printf("  -x ADDRESS\t\tuse ADDRESS as AgentX address\n");
+           "  -x ADDRESS\t\tuse ADDRESS as AgentX address\n"
 #endif
 #ifdef USING_AGENTX_SUBAGENT_MODULE
-    printf("  -X\t\t\trun as an AgentX subagent rather than as an\n"
-	   "\t\t\t  SNMP master agent\n");
+           "  -X\t\t\trun as an AgentX subagent rather than as an\n"
+	   "\t\t\t  SNMP master agent\n"
 #endif
-
-    printf("\nDeprecated options:\n");
-    printf("  -l FILE\t\tuse -Lf <FILE> instead\n");
-    printf("  -P\t\t\tuse -p instead\n");
-    printf("  -s\t\t\tuse -Lsd instead\n");
-    printf("  -S d|i|0-7\t\tuse -Ls <facility> instead\n");
-
-    printf("\n");
+           ,
+           "\nDeprecated options:\n"
+           "  -l FILE\t\tuse -Lf <FILE> instead\n"
+           "  -P\t\t\tuse -p instead\n"
+           "  -s\t\t\tuse -Lsd instead\n"
+           "  -S d|i|0-7\t\tuse -Ls <facility> instead\n"
+           "\n"
+           );
     exit(1);
 }
 
 static void
 version(void)
 {
-    printf("\nNET-SNMP version:  %s\n", netsnmp_get_version());
-    printf("Web:               http://www.net-snmp.org/\n");
-    printf("Email:             net-snmp-coders@lists.sourceforge.net\n\n");
+    printf("\nNET-SNMP version:  %s\n"
+           "Web:               http://www.net-snmp.org/\n"
+           "Email:             net-snmp-coders@lists.sourceforge.net\n\n",
+           netsnmp_get_version());
     exit(0);
 }
 
@@ -422,7 +426,6 @@
     int             arg, i, ret;
     int             dont_fork = 0, do_help = 0;
     int             log_set = 0;
-    int             uid = 0, gid = 0;
     int             agent_mode = -1;
     char           *cptr, **argvptr;
     char           *pid_file = NULL;
@@ -434,9 +437,6 @@
 #if HAVE_GETPWNAM && HAVE_PWD_H
     struct passwd  *info;
 #endif
-#if HAVE_UNISTD_H
-    const char     *persistent_dir;
-#endif
 
 #ifndef WIN32
     /*
@@ -842,7 +842,7 @@
             char *c, *astring;
             if ((c = netsnmp_ds_get_string(NETSNMP_DS_APPLICATION_ID, 
 					   NETSNMP_DS_AGENT_PORTS))) {
-                astring = malloc(strlen(c) + 2 + strlen(argv[i]));
+                astring = (char*)malloc(strlen(c) + 2 + strlen(argv[i]));
                 if (astring == NULL) {
                     fprintf(stderr, "malloc failure processing argv[%d]\n", i);
                     exit(1);
@@ -969,7 +969,11 @@
     }
 #endif
 
-#if HAVE_UNISTD_H
+#if defined(HAVE_UNISTD_H) && (defined(HAVE_CHOWN) || defined(HAVE_SETGID) || defined(HAVE_SETUID))
+    {
+    const char     *persistent_dir;
+    int             uid, gid;
+
     persistent_dir = get_persistent_directory();
     mkdirhier( persistent_dir, NETSNMP_AGENT_DIRECTORY_MODE, 0 );
    
@@ -978,8 +982,10 @@
     gid = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID, 
 			     NETSNMP_DS_AGENT_GROUPID);
     
+#ifdef HAVE_CHOWN
     if ( uid != 0 || gid != 0 )
         chown( persistent_dir, uid, gid );
+#endif
 
 #ifdef HAVE_SETGID
     if ((gid = netsnmp_ds_get_int(NETSNMP_DS_APPLICATION_ID, 
@@ -1009,7 +1015,7 @@
         info = getpwuid(uid);
         if (info) {
             DEBUGMSGTL(("snmpd/main", "Supplementary groups for %s.\n", info->pw_name));
-            if (initgroups(info->pw_name, (gid != 0 ? gid : info->pw_gid)) == -1) {
+            if (initgroups(info->pw_name, (gid != 0 ? (gid_t)gid : info->pw_gid)) == -1) {
                 snmp_log_perror("initgroups failed");
                 if (!netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, 
                                             NETSNMP_DS_AGENT_NO_ROOT_ACCESS)) {
@@ -1028,6 +1034,7 @@
         }
     }
 #endif
+    }
 #endif
 
     /*
@@ -1127,7 +1134,7 @@
  *	0	On success.
  *	-1	System error.
  *
- * Infinite while-loop which monitors incoming messges for the agent.
+ * Infinite while-loop which monitors incoming messages for the agent.
  * Invoke the established message handlers for incoming messages on a per
  * port basis.  Handle timeouts.
  */
@@ -1227,7 +1234,8 @@
                     numfds, tvp));
         if(tvp)
             DEBUGMSGTL(("timer", "tvp %ld.%ld\n", tvp->tv_sec, tvp->tv_usec));
-        count = select(numfds, readfds.lfs_setptr, writefds.lfs_setptr, exceptfds.lfs_setptr, tvp);
+        count = net_snmp_large_fd_set_select(numfds, &readfds, &writefds, &exceptfds,
+				      tvp);
         DEBUGMSGTL(("snmpd/select", "returned, count = %d\n", count));
 
         if (count > 0) {
@@ -1288,6 +1296,11 @@
             }                   /* endif -- count>0 */
 
         /*
+         * see if persistent store needs to be saved
+         */
+        snmp_store_if_needed();
+
+        /*
          * run requested alarms 
          */
         run_alarms();
diff --git a/apps/Makefile.depend b/apps/Makefile.depend
index aba17c6..cb7f9b6 100644
--- a/apps/Makefile.depend
+++ b/apps/Makefile.depend
@@ -1,19 +1,134 @@
 # DO NOT DELETE THIS LINE -- make depend depends on it.
 
+./agentxtrap.lo: ../include/net-snmp/net-snmp-config.h
+./agentxtrap.lo: ../include/net-snmp/system/linux.h
+./agentxtrap.lo: ../include/net-snmp/system/sysv.h
+./agentxtrap.lo: ../include/net-snmp/system/generic.h
+./agentxtrap.lo: ../include/net-snmp/machine/generic.h 
+./agentxtrap.lo: ../include/net-snmp/net-snmp-includes.h 
+./agentxtrap.lo:  ../include/net-snmp/definitions.h
+./agentxtrap.lo: ../include/net-snmp/types.h 
+./agentxtrap.lo: ../include/net-snmp/library/oid.h
+./agentxtrap.lo: ../include/net-snmp/library/types.h
+./agentxtrap.lo: ../include/net-snmp/library/snmp_api.h
+./agentxtrap.lo: ../include/net-snmp/varbind_api.h
+./agentxtrap.lo: ../include/net-snmp/library/snmp_client.h
+./agentxtrap.lo: ../include/net-snmp/pdu_api.h
+./agentxtrap.lo: ../include/net-snmp/library/asn1.h
+./agentxtrap.lo: ../include/net-snmp/output_api.h
+./agentxtrap.lo: ../include/net-snmp/library/snmp_debug.h
+./agentxtrap.lo: ../include/net-snmp/library/snmp_logging.h
+./agentxtrap.lo: ../include/net-snmp/session_api.h
+./agentxtrap.lo: ../include/net-snmp/library/callback.h
+./agentxtrap.lo: ../include/net-snmp/library/snmp_transport.h
+./agentxtrap.lo: ../include/net-snmp/library/snmp_service.h
+./agentxtrap.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./agentxtrap.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./agentxtrap.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./agentxtrap.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./agentxtrap.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./agentxtrap.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./agentxtrap.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./agentxtrap.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./agentxtrap.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./agentxtrap.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./agentxtrap.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./agentxtrap.lo: ../include/net-snmp/library/ucd_compat.h
+./agentxtrap.lo: ../include/net-snmp/library/mib.h
+./agentxtrap.lo: ../include/net-snmp/mib_api.h
+./agentxtrap.lo: ../include/net-snmp/library/parse.h
+./agentxtrap.lo: ../include/net-snmp/library/oid_stash.h
+./agentxtrap.lo: ../include/net-snmp/library/snmp_impl.h
+./agentxtrap.lo: ../include/net-snmp/library/snmp.h
+./agentxtrap.lo: ../include/net-snmp/library/snmp-tc.h
+./agentxtrap.lo: ../include/net-snmp/library/getopt.h
+./agentxtrap.lo: ../include/net-snmp/utilities.h
+./agentxtrap.lo: ../include/net-snmp/library/system.h
+./agentxtrap.lo: ../include/net-snmp/library/tools.h
+./agentxtrap.lo: ../include/net-snmp/library/int64.h
+./agentxtrap.lo: ../include/net-snmp/library/mt_support.h
+./agentxtrap.lo: ../include/net-snmp/library/snmp_alarm.h
+./agentxtrap.lo: ../include/net-snmp/library/data_list.h
+./agentxtrap.lo: ../include/net-snmp/library/check_varbind.h
+./agentxtrap.lo: ../include/net-snmp/library/container.h
+./agentxtrap.lo: ../include/net-snmp/library/factory.h
+./agentxtrap.lo: ../include/net-snmp/library/container_binary_array.h
+./agentxtrap.lo: ../include/net-snmp/library/container_list_ssll.h
+./agentxtrap.lo: ../include/net-snmp/library/container_iterator.h
+./agentxtrap.lo: ../include/net-snmp/library/container.h
+./agentxtrap.lo: ../include/net-snmp/library/snmp_assert.h
+./agentxtrap.lo: ../include/net-snmp/version.h
+./agentxtrap.lo: ../include/net-snmp/config_api.h
+./agentxtrap.lo: ../include/net-snmp/library/read_config.h
+./agentxtrap.lo: ../include/net-snmp/library/default_store.h
+./agentxtrap.lo: ../include/net-snmp/net-snmp-config.h
+./agentxtrap.lo: ../include/net-snmp/library/snmp_parse_args.h
+./agentxtrap.lo: ../include/net-snmp/library/snmp_enum.h
+./agentxtrap.lo: ../include/net-snmp/library/vacm.h
+./agentxtrap.lo: ../include/net-snmp/snmpv3_api.h
+./agentxtrap.lo: ../include/net-snmp/library/snmpv3.h
+./agentxtrap.lo: ../include/net-snmp/library/transform_oids.h
+./agentxtrap.lo: ../include/net-snmp/library/keytools.h
+./agentxtrap.lo: ../include/net-snmp/library/scapi.h
+./agentxtrap.lo: ../include/net-snmp/library/lcd_time.h
+./agentxtrap.lo: ../include/net-snmp/library/snmp_secmod.h
+./agentxtrap.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./agentxtrap.lo: ../include/net-snmp/library/snmptsm.h
+./agentxtrap.lo: ../include/net-snmp/library/snmpusm.h
+./agentxtrap.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
+./agentxtrap.lo: ../include/net-snmp/agent/mib_module_config.h
+./agentxtrap.lo: ../include/net-snmp/agent/agent_module_config.h
+./agentxtrap.lo: ../include/net-snmp/agent/snmp_agent.h
+./agentxtrap.lo: ../include/net-snmp/agent/snmp_vars.h
+./agentxtrap.lo: ../include/net-snmp/agent/agent_handler.h
+./agentxtrap.lo: ../include/net-snmp/agent/var_struct.h
+./agentxtrap.lo: ../include/net-snmp/agent/agent_registry.h
+./agentxtrap.lo: ../include/net-snmp/library/fd_event_manager.h
+./agentxtrap.lo: ../include/net-snmp/agent/ds_agent.h
+./agentxtrap.lo: ../include/net-snmp/agent/agent_read_config.h
+./agentxtrap.lo: ../include/net-snmp/agent/agent_trap.h
+./agentxtrap.lo: ../include/net-snmp/agent/all_helpers.h
+./agentxtrap.lo: ../include/net-snmp/agent/instance.h
+./agentxtrap.lo: ../include/net-snmp/agent/baby_steps.h
+./agentxtrap.lo: ../include/net-snmp/agent/scalar.h
+./agentxtrap.lo: ../include/net-snmp/agent/scalar_group.h
+./agentxtrap.lo: ../include/net-snmp/agent/watcher.h
+./agentxtrap.lo: ../include/net-snmp/agent/multiplexer.h
+./agentxtrap.lo: ../include/net-snmp/agent/null.h
+./agentxtrap.lo: ../include/net-snmp/agent/debug_handler.h
+./agentxtrap.lo: ../include/net-snmp/agent/cache_handler.h
+./agentxtrap.lo: ../include/net-snmp/agent/old_api.h
+./agentxtrap.lo: ../include/net-snmp/agent/read_only.h
+./agentxtrap.lo: ../include/net-snmp/agent/row_merge.h
+./agentxtrap.lo: ../include/net-snmp/agent/serialize.h
+./agentxtrap.lo: ../include/net-snmp/agent/bulk_to_next.h
+./agentxtrap.lo: ../include/net-snmp/agent/mode_end_call.h
+./agentxtrap.lo: ../include/net-snmp/agent/table.h
+./agentxtrap.lo: ../include/net-snmp/agent/table_data.h
+./agentxtrap.lo: ../include/net-snmp/agent/table_dataset.h
+./agentxtrap.lo: ../include/net-snmp/agent/table_tdata.h
+./agentxtrap.lo: ../include/net-snmp/agent/table_iterator.h
+./agentxtrap.lo: ../include/net-snmp/agent/table_container.h
+./agentxtrap.lo: ../include/net-snmp/agent/table_array.h
+./agentxtrap.lo: ../include/net-snmp/agent/mfd.h
+./agentxtrap.lo: ../include/net-snmp/agent/snmp_get_statistic.h
+./agentxtrap.lo: ../agent/mibgroup/agentx/agentx_config.h
+./agentxtrap.lo: ../agent/mibgroup/agentx/client.h
+./agentxtrap.lo: ../agent/mibgroup/agentx/protocol.h
 ./encode_keychange.lo: ../include/net-snmp/net-snmp-config.h
-./encode_keychange.lo: ../include/net-snmp/system/linux.h
-./encode_keychange.lo: ../include/net-snmp/system/sysv.h
-./encode_keychange.lo: ../include/net-snmp/system/generic.h
-./encode_keychange.lo: ../include/net-snmp/machine/generic.h
 ./encode_keychange.lo: ../include/net-snmp/net-snmp-includes.h
 ./encode_keychange.lo: ../include/net-snmp/definitions.h
 ./encode_keychange.lo: ../include/net-snmp/types.h 
+./encode_keychange.lo: ../include/net-snmp/library/oid.h
 ./encode_keychange.lo: ../include/net-snmp/library/types.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmp_api.h
 ./encode_keychange.lo: ../include/net-snmp/varbind_api.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmp_client.h
 ./encode_keychange.lo: ../include/net-snmp/pdu_api.h
 ./encode_keychange.lo: ../include/net-snmp/library/asn1.h
+./encode_keychange.lo: ../include/net-snmp/output_api.h
+./encode_keychange.lo: ../include/net-snmp/library/snmp_debug.h
+./encode_keychange.lo: ../include/net-snmp/library/snmp_logging.h
 ./encode_keychange.lo: ../include/net-snmp/session_api.h
 ./encode_keychange.lo: ../include/net-snmp/library/callback.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmp_transport.h
@@ -21,8 +136,12 @@
 ./encode_keychange.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./encode_keychange.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./encode_keychange.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./encode_keychange.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./encode_keychange.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./encode_keychange.lo: ../include/net-snmp/library/ucd_compat.h
@@ -44,7 +163,6 @@
 ./encode_keychange.lo: ../include/net-snmp/library/check_varbind.h
 ./encode_keychange.lo: ../include/net-snmp/library/container.h
 ./encode_keychange.lo: ../include/net-snmp/library/factory.h
-./encode_keychange.lo: ../include/net-snmp/library/snmp_logging.h
 ./encode_keychange.lo: ../include/net-snmp/library/container_binary_array.h
 ./encode_keychange.lo: ../include/net-snmp/library/container_list_ssll.h
 ./encode_keychange.lo: ../include/net-snmp/library/container_iterator.h
@@ -57,8 +175,6 @@
 ./encode_keychange.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmp_enum.h
 ./encode_keychange.lo: ../include/net-snmp/library/vacm.h
-./encode_keychange.lo: ../include/net-snmp/output_api.h
-./encode_keychange.lo: ../include/net-snmp/library/snmp_debug.h
 ./encode_keychange.lo: ../include/net-snmp/snmpv3_api.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmpv3.h
 ./encode_keychange.lo: ../include/net-snmp/library/transform_oids.h
@@ -67,14 +183,12 @@
 ./encode_keychange.lo: ../include/net-snmp/library/lcd_time.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmp_secmod.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./encode_keychange.lo: ../include/net-snmp/library/snmptsm.h
 ./encode_keychange.lo: ../include/net-snmp/library/snmpusm.h
 ./snmpbulkget.lo: ../include/net-snmp/net-snmp-config.h
-./snmpbulkget.lo: ../include/net-snmp/system/linux.h
-./snmpbulkget.lo: ../include/net-snmp/system/sysv.h
-./snmpbulkget.lo: ../include/net-snmp/system/generic.h
-./snmpbulkget.lo: ../include/net-snmp/machine/generic.h 
 ./snmpbulkget.lo:  ../include/net-snmp/utilities.h
 ./snmpbulkget.lo: ../include/net-snmp/types.h 
+./snmpbulkget.lo: ../include/net-snmp/library/oid.h
 ./snmpbulkget.lo: ../include/net-snmp/library/types.h
 ./snmpbulkget.lo: ../include/net-snmp/definitions.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmp_api.h
@@ -82,6 +196,9 @@
 ./snmpbulkget.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpbulkget.lo: ../include/net-snmp/pdu_api.h
 ./snmpbulkget.lo: ../include/net-snmp/library/asn1.h
+./snmpbulkget.lo: ../include/net-snmp/output_api.h
+./snmpbulkget.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpbulkget.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpbulkget.lo: ../include/net-snmp/session_api.h
 ./snmpbulkget.lo: ../include/net-snmp/library/callback.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmp_transport.h
@@ -89,8 +206,12 @@
 ./snmpbulkget.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpbulkget.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpbulkget.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpbulkget.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpbulkget.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpbulkget.lo: ../include/net-snmp/library/ucd_compat.h
@@ -100,7 +221,7 @@
 ./snmpbulkget.lo: ../include/net-snmp/library/oid_stash.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmp.h
-./snmpbulkget.lo: ../include/net-snmp/library/snmp-tc.h
+./snmpbulkget.lo: ../include/net-snmp/library/snmp-tc.h 
 ./snmpbulkget.lo: ../include/net-snmp/library/system.h
 ./snmpbulkget.lo: ../include/net-snmp/library/tools.h
 ./snmpbulkget.lo: ../include/net-snmp/library/int64.h
@@ -110,7 +231,6 @@
 ./snmpbulkget.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpbulkget.lo: ../include/net-snmp/library/container.h
 ./snmpbulkget.lo: ../include/net-snmp/library/factory.h
-./snmpbulkget.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpbulkget.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpbulkget.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpbulkget.lo: ../include/net-snmp/library/container_iterator.h
@@ -125,8 +245,6 @@
 ./snmpbulkget.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpbulkget.lo: ../include/net-snmp/library/vacm.h
-./snmpbulkget.lo: ../include/net-snmp/output_api.h
-./snmpbulkget.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpbulkget.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpbulkget.lo: ../include/net-snmp/library/transform_oids.h
@@ -135,21 +253,22 @@
 ./snmpbulkget.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpbulkget.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpbulkget.lo: ../include/net-snmp/library/snmpusm.h
 ./snmpbulkwalk.lo: ../include/net-snmp/net-snmp-config.h
-./snmpbulkwalk.lo: ../include/net-snmp/system/linux.h
-./snmpbulkwalk.lo: ../include/net-snmp/system/sysv.h
-./snmpbulkwalk.lo: ../include/net-snmp/system/generic.h
-./snmpbulkwalk.lo: ../include/net-snmp/machine/generic.h
 ./snmpbulkwalk.lo: ../include/net-snmp/net-snmp-includes.h
-./snmpbulkwalk.lo: ../include/net-snmp/definitions.h
+./snmpbulkwalk.lo:  ../include/net-snmp/definitions.h
 ./snmpbulkwalk.lo: ../include/net-snmp/types.h 
+./snmpbulkwalk.lo: ../include/net-snmp/library/oid.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/types.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpbulkwalk.lo: ../include/net-snmp/varbind_api.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpbulkwalk.lo: ../include/net-snmp/pdu_api.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/asn1.h
+./snmpbulkwalk.lo: ../include/net-snmp/output_api.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpbulkwalk.lo: ../include/net-snmp/session_api.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/callback.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_transport.h
@@ -157,8 +276,12 @@
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/ucd_compat.h
@@ -180,7 +303,6 @@
 ./snmpbulkwalk.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/container.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/factory.h
-./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/container_iterator.h
@@ -193,8 +315,6 @@
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/vacm.h
-./snmpbulkwalk.lo: ../include/net-snmp/output_api.h
-./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpbulkwalk.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/transform_oids.h
@@ -203,20 +323,22 @@
 ./snmpbulkwalk.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpbulkwalk.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpbulkwalk.lo: ../include/net-snmp/library/snmpusm.h
-./snmpdelta.lo: ../include/net-snmp/net-snmp-config.h
-./snmpdelta.lo: ../include/net-snmp/system/linux.h
-./snmpdelta.lo: ../include/net-snmp/system/sysv.h
-./snmpdelta.lo: ../include/net-snmp/system/generic.h
-./snmpdelta.lo: ../include/net-snmp/machine/generic.h 
-./snmpdelta.lo: ../include/net-snmp/net-snmp-includes.h
-./snmpdelta.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
-./snmpdelta.lo:  ../include/net-snmp/library/types.h
+./snmpdelta.lo: ../include/net-snmp/net-snmp-config.h 
+./snmpdelta.lo: ../include/net-snmp/net-snmp-includes.h 
+./snmpdelta.lo:  ../include/net-snmp/definitions.h
+./snmpdelta.lo: ../include/net-snmp/types.h 
+./snmpdelta.lo: ../include/net-snmp/library/oid.h
+./snmpdelta.lo: ../include/net-snmp/library/types.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpdelta.lo: ../include/net-snmp/varbind_api.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpdelta.lo: ../include/net-snmp/pdu_api.h
 ./snmpdelta.lo: ../include/net-snmp/library/asn1.h
+./snmpdelta.lo: ../include/net-snmp/output_api.h
+./snmpdelta.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpdelta.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpdelta.lo: ../include/net-snmp/session_api.h
 ./snmpdelta.lo: ../include/net-snmp/library/callback.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmp_transport.h
@@ -224,8 +346,12 @@
 ./snmpdelta.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpdelta.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpdelta.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpdelta.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpdelta.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpdelta.lo: ../include/net-snmp/library/ucd_compat.h
@@ -247,7 +373,6 @@
 ./snmpdelta.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpdelta.lo: ../include/net-snmp/library/container.h
 ./snmpdelta.lo: ../include/net-snmp/library/factory.h
-./snmpdelta.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpdelta.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpdelta.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpdelta.lo: ../include/net-snmp/library/container_iterator.h
@@ -260,8 +385,6 @@
 ./snmpdelta.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpdelta.lo: ../include/net-snmp/library/vacm.h
-./snmpdelta.lo: ../include/net-snmp/output_api.h
-./snmpdelta.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpdelta.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpdelta.lo: ../include/net-snmp/library/transform_oids.h
@@ -270,19 +393,21 @@
 ./snmpdelta.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpdelta.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpdelta.lo: ../include/net-snmp/library/snmpusm.h
-./snmpdf.lo: ../include/net-snmp/net-snmp-config.h
-./snmpdf.lo: ../include/net-snmp/system/linux.h
-./snmpdf.lo: ../include/net-snmp/system/sysv.h
-./snmpdf.lo: ../include/net-snmp/system/generic.h
-./snmpdf.lo: ../include/net-snmp/machine/generic.h 
-./snmpdf.lo:  ../include/net-snmp/net-snmp-includes.h
-./snmpdf.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
-./snmpdf.lo:  ../include/net-snmp/library/types.h
+./snmpdf.lo: ../include/net-snmp/net-snmp-config.h 
+./snmpdf.lo: ../include/net-snmp/net-snmp-includes.h 
+./snmpdf.lo:  ../include/net-snmp/definitions.h
+./snmpdf.lo: ../include/net-snmp/types.h 
+./snmpdf.lo: ../include/net-snmp/library/oid.h
+./snmpdf.lo: ../include/net-snmp/library/types.h
 ./snmpdf.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpdf.lo: ../include/net-snmp/varbind_api.h
 ./snmpdf.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpdf.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/library/asn1.h
+./snmpdf.lo: ../include/net-snmp/output_api.h
+./snmpdf.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpdf.lo: ../include/net-snmp/library/snmp_logging.h 
 ./snmpdf.lo: ../include/net-snmp/session_api.h
 ./snmpdf.lo: ../include/net-snmp/library/callback.h
 ./snmpdf.lo: ../include/net-snmp/library/snmp_transport.h
@@ -290,8 +415,12 @@
 ./snmpdf.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpdf.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpdf.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpdf.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpdf.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpdf.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpdf.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpdf.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpdf.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpdf.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpdf.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpdf.lo: ../include/net-snmp/library/ucd_compat.h
@@ -312,7 +441,6 @@
 ./snmpdf.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpdf.lo: ../include/net-snmp/library/container.h
 ./snmpdf.lo: ../include/net-snmp/library/factory.h
-./snmpdf.lo: ../include/net-snmp/library/snmp_logging.h 
 ./snmpdf.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpdf.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpdf.lo: ../include/net-snmp/library/container_iterator.h
@@ -324,8 +452,6 @@
 ./snmpdf.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpdf.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpdf.lo: ../include/net-snmp/library/vacm.h
-./snmpdf.lo: ../include/net-snmp/output_api.h
-./snmpdf.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpdf.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpdf.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpdf.lo: ../include/net-snmp/library/transform_oids.h
@@ -334,20 +460,21 @@
 ./snmpdf.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpdf.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpdf.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpdf.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpdf.lo: ../include/net-snmp/library/snmpusm.h
-./snmpget.lo: ../include/net-snmp/net-snmp-config.h
-./snmpget.lo: ../include/net-snmp/system/linux.h
-./snmpget.lo: ../include/net-snmp/system/sysv.h
-./snmpget.lo: ../include/net-snmp/system/generic.h
-./snmpget.lo: ../include/net-snmp/machine/generic.h 
+./snmpget.lo: ../include/net-snmp/net-snmp-config.h 
 ./snmpget.lo: ../include/net-snmp/utilities.h ../include/net-snmp/types.h
-./snmpget.lo:  ../include/net-snmp/library/types.h
+./snmpget.lo:  ../include/net-snmp/library/oid.h
+./snmpget.lo: ../include/net-snmp/library/types.h
 ./snmpget.lo: ../include/net-snmp/definitions.h
 ./snmpget.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpget.lo: ../include/net-snmp/varbind_api.h
 ./snmpget.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpget.lo: ../include/net-snmp/pdu_api.h
 ./snmpget.lo: ../include/net-snmp/library/asn1.h
+./snmpget.lo: ../include/net-snmp/output_api.h
+./snmpget.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpget.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpget.lo: ../include/net-snmp/session_api.h
 ./snmpget.lo: ../include/net-snmp/library/callback.h
 ./snmpget.lo: ../include/net-snmp/library/snmp_transport.h
@@ -355,8 +482,12 @@
 ./snmpget.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpget.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpget.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpget.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpget.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpget.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpget.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpget.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpget.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpget.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpget.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpget.lo: ../include/net-snmp/library/ucd_compat.h
@@ -365,7 +496,7 @@
 ./snmpget.lo: ../include/net-snmp/library/oid_stash.h
 ./snmpget.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpget.lo: ../include/net-snmp/library/snmp.h
-./snmpget.lo: ../include/net-snmp/library/snmp-tc.h
+./snmpget.lo: ../include/net-snmp/library/snmp-tc.h 
 ./snmpget.lo: ../include/net-snmp/library/system.h
 ./snmpget.lo: ../include/net-snmp/library/tools.h
 ./snmpget.lo: ../include/net-snmp/library/int64.h
@@ -373,16 +504,15 @@
 ./snmpget.lo: ../include/net-snmp/library/snmp_alarm.h
 ./snmpget.lo: ../include/net-snmp/library/data_list.h
 ./snmpget.lo: ../include/net-snmp/library/check_varbind.h
-./snmpget.lo: ../include/net-snmp/library/container.h
-./snmpget.lo: ../include/net-snmp/library/factory.h
-./snmpget.lo: ../include/net-snmp/library/snmp_logging.h
+./snmpget.lo: ../include/net-snmp/library/container.h 
+./snmpget.lo:  ../include/net-snmp/library/factory.h
 ./snmpget.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpget.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpget.lo: ../include/net-snmp/library/container_iterator.h
 ./snmpget.lo: ../include/net-snmp/library/container.h
 ./snmpget.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmpget.lo: ../include/net-snmp/version.h
-./snmpget.lo: ../include/net-snmp/net-snmp-includes.h
+./snmpget.lo: ../include/net-snmp/net-snmp-includes.h 
 ./snmpget.lo: ../include/net-snmp/library/getopt.h
 ./snmpget.lo: ../include/net-snmp/config_api.h
 ./snmpget.lo: ../include/net-snmp/library/read_config.h
@@ -390,8 +520,6 @@
 ./snmpget.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpget.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpget.lo: ../include/net-snmp/library/vacm.h
-./snmpget.lo: ../include/net-snmp/output_api.h
-./snmpget.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpget.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpget.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpget.lo: ../include/net-snmp/library/transform_oids.h
@@ -400,21 +528,22 @@
 ./snmpget.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpget.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpget.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpget.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpget.lo: ../include/net-snmp/library/snmpusm.h
 ./snmpgetnext.lo: ../include/net-snmp/net-snmp-config.h
-./snmpgetnext.lo: ../include/net-snmp/system/linux.h
-./snmpgetnext.lo: ../include/net-snmp/system/sysv.h
-./snmpgetnext.lo: ../include/net-snmp/system/generic.h
-./snmpgetnext.lo: ../include/net-snmp/machine/generic.h 
 ./snmpgetnext.lo: ../include/net-snmp/net-snmp-includes.h
-./snmpgetnext.lo: ../include/net-snmp/definitions.h
+./snmpgetnext.lo:  ../include/net-snmp/definitions.h
 ./snmpgetnext.lo: ../include/net-snmp/types.h 
+./snmpgetnext.lo: ../include/net-snmp/library/oid.h
 ./snmpgetnext.lo: ../include/net-snmp/library/types.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpgetnext.lo: ../include/net-snmp/varbind_api.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpgetnext.lo: ../include/net-snmp/pdu_api.h
 ./snmpgetnext.lo: ../include/net-snmp/library/asn1.h
+./snmpgetnext.lo: ../include/net-snmp/output_api.h
+./snmpgetnext.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpgetnext.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpgetnext.lo: ../include/net-snmp/session_api.h
 ./snmpgetnext.lo: ../include/net-snmp/library/callback.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmp_transport.h
@@ -422,8 +551,12 @@
 ./snmpgetnext.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpgetnext.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpgetnext.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpgetnext.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpgetnext.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpgetnext.lo: ../include/net-snmp/library/ucd_compat.h
@@ -445,7 +578,6 @@
 ./snmpgetnext.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpgetnext.lo: ../include/net-snmp/library/container.h
 ./snmpgetnext.lo: ../include/net-snmp/library/factory.h
-./snmpgetnext.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpgetnext.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpgetnext.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpgetnext.lo: ../include/net-snmp/library/container_iterator.h
@@ -458,8 +590,6 @@
 ./snmpgetnext.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpgetnext.lo: ../include/net-snmp/library/vacm.h
-./snmpgetnext.lo: ../include/net-snmp/output_api.h
-./snmpgetnext.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpgetnext.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpgetnext.lo: ../include/net-snmp/library/transform_oids.h
@@ -468,20 +598,22 @@
 ./snmpgetnext.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpgetnext.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpgetnext.lo: ../include/net-snmp/library/snmpusm.h
-./snmpset.lo: ../include/net-snmp/net-snmp-config.h
-./snmpset.lo: ../include/net-snmp/system/linux.h
-./snmpset.lo: ../include/net-snmp/system/sysv.h
-./snmpset.lo: ../include/net-snmp/system/generic.h
-./snmpset.lo: ../include/net-snmp/machine/generic.h 
-./snmpset.lo: ../include/net-snmp/net-snmp-includes.h
-./snmpset.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
-./snmpset.lo:  ../include/net-snmp/library/types.h
+./snmpset.lo: ../include/net-snmp/net-snmp-config.h 
+./snmpset.lo: ../include/net-snmp/net-snmp-includes.h 
+./snmpset.lo:  ../include/net-snmp/definitions.h
+./snmpset.lo: ../include/net-snmp/types.h 
+./snmpset.lo: ../include/net-snmp/library/oid.h
+./snmpset.lo: ../include/net-snmp/library/types.h
 ./snmpset.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpset.lo: ../include/net-snmp/varbind_api.h
 ./snmpset.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpset.lo: ../include/net-snmp/pdu_api.h
 ./snmpset.lo: ../include/net-snmp/library/asn1.h
+./snmpset.lo: ../include/net-snmp/output_api.h
+./snmpset.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpset.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpset.lo: ../include/net-snmp/session_api.h
 ./snmpset.lo: ../include/net-snmp/library/callback.h
 ./snmpset.lo: ../include/net-snmp/library/snmp_transport.h
@@ -489,8 +621,12 @@
 ./snmpset.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpset.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpset.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpset.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpset.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpset.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpset.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpset.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpset.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpset.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpset.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpset.lo: ../include/net-snmp/library/ucd_compat.h
@@ -511,7 +647,6 @@
 ./snmpset.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpset.lo: ../include/net-snmp/library/container.h
 ./snmpset.lo: ../include/net-snmp/library/factory.h
-./snmpset.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpset.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpset.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpset.lo: ../include/net-snmp/library/container_iterator.h
@@ -523,8 +658,6 @@
 ./snmpset.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpset.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpset.lo: ../include/net-snmp/library/vacm.h
-./snmpset.lo: ../include/net-snmp/output_api.h
-./snmpset.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpset.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpset.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpset.lo: ../include/net-snmp/library/transform_oids.h
@@ -533,20 +666,21 @@
 ./snmpset.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpset.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpset.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpset.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpset.lo: ../include/net-snmp/library/snmpusm.h
-./snmpstatus.lo: ../include/net-snmp/net-snmp-config.h
-./snmpstatus.lo: ../include/net-snmp/system/linux.h
-./snmpstatus.lo: ../include/net-snmp/system/sysv.h
-./snmpstatus.lo: ../include/net-snmp/system/generic.h
-./snmpstatus.lo: ../include/net-snmp/machine/generic.h 
+./snmpstatus.lo: ../include/net-snmp/net-snmp-config.h 
 ./snmpstatus.lo: ../include/net-snmp/utilities.h ../include/net-snmp/types.h
-./snmpstatus.lo:  ../include/net-snmp/library/types.h
+./snmpstatus.lo: ../include/net-snmp/library/oid.h
+./snmpstatus.lo: ../include/net-snmp/library/types.h
 ./snmpstatus.lo: ../include/net-snmp/definitions.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpstatus.lo: ../include/net-snmp/varbind_api.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpstatus.lo: ../include/net-snmp/pdu_api.h
 ./snmpstatus.lo: ../include/net-snmp/library/asn1.h
+./snmpstatus.lo: ../include/net-snmp/output_api.h
+./snmpstatus.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpstatus.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpstatus.lo: ../include/net-snmp/session_api.h
 ./snmpstatus.lo: ../include/net-snmp/library/callback.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmp_transport.h
@@ -554,8 +688,12 @@
 ./snmpstatus.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpstatus.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpstatus.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpstatus.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpstatus.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpstatus.lo: ../include/net-snmp/library/ucd_compat.h
@@ -565,7 +703,7 @@
 ./snmpstatus.lo: ../include/net-snmp/library/oid_stash.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmp.h
-./snmpstatus.lo: ../include/net-snmp/library/snmp-tc.h
+./snmpstatus.lo: ../include/net-snmp/library/snmp-tc.h 
 ./snmpstatus.lo: ../include/net-snmp/library/system.h
 ./snmpstatus.lo: ../include/net-snmp/library/tools.h
 ./snmpstatus.lo: ../include/net-snmp/library/int64.h
@@ -575,7 +713,6 @@
 ./snmpstatus.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpstatus.lo: ../include/net-snmp/library/container.h
 ./snmpstatus.lo: ../include/net-snmp/library/factory.h
-./snmpstatus.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpstatus.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpstatus.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpstatus.lo: ../include/net-snmp/library/container_iterator.h
@@ -590,8 +727,6 @@
 ./snmpstatus.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpstatus.lo: ../include/net-snmp/library/vacm.h
-./snmpstatus.lo: ../include/net-snmp/output_api.h
-./snmpstatus.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpstatus.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpstatus.lo: ../include/net-snmp/library/transform_oids.h
@@ -600,20 +735,22 @@
 ./snmpstatus.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpstatus.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpstatus.lo: ../include/net-snmp/library/snmpusm.h
-./snmptable.lo: ../include/net-snmp/net-snmp-config.h
-./snmptable.lo: ../include/net-snmp/system/linux.h
-./snmptable.lo: ../include/net-snmp/system/sysv.h
-./snmptable.lo: ../include/net-snmp/system/generic.h
-./snmptable.lo: ../include/net-snmp/machine/generic.h 
-./snmptable.lo: ../include/net-snmp/net-snmp-includes.h
-./snmptable.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
-./snmptable.lo:  ../include/net-snmp/library/types.h
+./snmptable.lo: ../include/net-snmp/net-snmp-config.h 
+./snmptable.lo: ../include/net-snmp/net-snmp-includes.h 
+./snmptable.lo:  ../include/net-snmp/definitions.h
+./snmptable.lo: ../include/net-snmp/types.h 
+./snmptable.lo: ../include/net-snmp/library/oid.h
+./snmptable.lo: ../include/net-snmp/library/types.h
 ./snmptable.lo: ../include/net-snmp/library/snmp_api.h
 ./snmptable.lo: ../include/net-snmp/varbind_api.h
 ./snmptable.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptable.lo: ../include/net-snmp/pdu_api.h
 ./snmptable.lo: ../include/net-snmp/library/asn1.h
+./snmptable.lo: ../include/net-snmp/output_api.h
+./snmptable.lo: ../include/net-snmp/library/snmp_debug.h
+./snmptable.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptable.lo: ../include/net-snmp/session_api.h
 ./snmptable.lo: ../include/net-snmp/library/callback.h
 ./snmptable.lo: ../include/net-snmp/library/snmp_transport.h
@@ -621,8 +758,12 @@
 ./snmptable.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmptable.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmptable.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmptable.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmptable.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmptable.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmptable.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmptable.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmptable.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmptable.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmptable.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmptable.lo: ../include/net-snmp/library/ucd_compat.h
@@ -644,7 +785,6 @@
 ./snmptable.lo: ../include/net-snmp/library/check_varbind.h
 ./snmptable.lo: ../include/net-snmp/library/container.h
 ./snmptable.lo: ../include/net-snmp/library/factory.h
-./snmptable.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptable.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmptable.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmptable.lo: ../include/net-snmp/library/container_iterator.h
@@ -657,8 +797,6 @@
 ./snmptable.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmptable.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmptable.lo: ../include/net-snmp/library/vacm.h
-./snmptable.lo: ../include/net-snmp/output_api.h
-./snmptable.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmptable.lo: ../include/net-snmp/snmpv3_api.h
 ./snmptable.lo: ../include/net-snmp/library/snmpv3.h
 ./snmptable.lo: ../include/net-snmp/library/transform_oids.h
@@ -667,20 +805,22 @@
 ./snmptable.lo: ../include/net-snmp/library/lcd_time.h
 ./snmptable.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmptable.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmptable.lo: ../include/net-snmp/library/snmptsm.h
 ./snmptable.lo: ../include/net-snmp/library/snmpusm.h
-./snmptest.lo: ../include/net-snmp/net-snmp-config.h
-./snmptest.lo: ../include/net-snmp/system/linux.h
-./snmptest.lo: ../include/net-snmp/system/sysv.h
-./snmptest.lo: ../include/net-snmp/system/generic.h
-./snmptest.lo: ../include/net-snmp/machine/generic.h 
-./snmptest.lo: ../include/net-snmp/net-snmp-includes.h
-./snmptest.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
-./snmptest.lo:  ../include/net-snmp/library/types.h
+./snmptest.lo: ../include/net-snmp/net-snmp-config.h 
+./snmptest.lo: ../include/net-snmp/net-snmp-includes.h 
+./snmptest.lo:  ../include/net-snmp/definitions.h
+./snmptest.lo: ../include/net-snmp/types.h 
+./snmptest.lo: ../include/net-snmp/library/oid.h
+./snmptest.lo: ../include/net-snmp/library/types.h
 ./snmptest.lo: ../include/net-snmp/library/snmp_api.h
 ./snmptest.lo: ../include/net-snmp/varbind_api.h
 ./snmptest.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptest.lo: ../include/net-snmp/pdu_api.h
 ./snmptest.lo: ../include/net-snmp/library/asn1.h
+./snmptest.lo: ../include/net-snmp/output_api.h
+./snmptest.lo: ../include/net-snmp/library/snmp_debug.h
+./snmptest.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptest.lo: ../include/net-snmp/session_api.h
 ./snmptest.lo: ../include/net-snmp/library/callback.h
 ./snmptest.lo: ../include/net-snmp/library/snmp_transport.h
@@ -688,8 +828,12 @@
 ./snmptest.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmptest.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmptest.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmptest.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmptest.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmptest.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmptest.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmptest.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmptest.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmptest.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmptest.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmptest.lo: ../include/net-snmp/library/ucd_compat.h
@@ -711,7 +855,6 @@
 ./snmptest.lo: ../include/net-snmp/library/check_varbind.h
 ./snmptest.lo: ../include/net-snmp/library/container.h
 ./snmptest.lo: ../include/net-snmp/library/factory.h
-./snmptest.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptest.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmptest.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmptest.lo: ../include/net-snmp/library/container_iterator.h
@@ -723,8 +866,6 @@
 ./snmptest.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmptest.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmptest.lo: ../include/net-snmp/library/vacm.h
-./snmptest.lo: ../include/net-snmp/output_api.h
-./snmptest.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmptest.lo: ../include/net-snmp/snmpv3_api.h
 ./snmptest.lo: ../include/net-snmp/library/snmpv3.h
 ./snmptest.lo: ../include/net-snmp/library/transform_oids.h
@@ -733,14 +874,121 @@
 ./snmptest.lo: ../include/net-snmp/library/lcd_time.h
 ./snmptest.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmptest.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmptest.lo: ../include/net-snmp/library/snmptsm.h
 ./snmptest.lo: ../include/net-snmp/library/snmpusm.h
+./snmptls.lo: ../include/net-snmp/net-snmp-config.h
+./snmptls.lo: ../include/net-snmp/net-snmp-includes.h 
+./snmptls.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
+./snmptls.lo:  ../include/net-snmp/library/oid.h
+./snmptls.lo: ../include/net-snmp/library/types.h
+./snmptls.lo: ../include/net-snmp/library/snmp_api.h
+./snmptls.lo: ../include/net-snmp/varbind_api.h
+./snmptls.lo: ../include/net-snmp/library/snmp_client.h
+./snmptls.lo: ../include/net-snmp/pdu_api.h
+./snmptls.lo: ../include/net-snmp/library/asn1.h
+./snmptls.lo: ../include/net-snmp/output_api.h
+./snmptls.lo: ../include/net-snmp/library/snmp_debug.h
+./snmptls.lo: ../include/net-snmp/library/snmp_logging.h
+./snmptls.lo: ../include/net-snmp/session_api.h
+./snmptls.lo: ../include/net-snmp/library/callback.h
+./snmptls.lo: ../include/net-snmp/library/snmp_transport.h
+./snmptls.lo: ../include/net-snmp/library/snmp_service.h
+./snmptls.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./snmptls.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./snmptls.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmptls.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmptls.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmptls.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./snmptls.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./snmptls.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmptls.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./snmptls.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./snmptls.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./snmptls.lo: ../include/net-snmp/library/ucd_compat.h
+./snmptls.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
+./snmptls.lo: ../include/net-snmp/library/parse.h
+./snmptls.lo: ../include/net-snmp/library/oid_stash.h
+./snmptls.lo: ../include/net-snmp/library/snmp_impl.h
+./snmptls.lo: ../include/net-snmp/library/snmp.h
+./snmptls.lo: ../include/net-snmp/library/snmp-tc.h
+./snmptls.lo: ../include/net-snmp/library/getopt.h
+./snmptls.lo: ../include/net-snmp/utilities.h
+./snmptls.lo: ../include/net-snmp/library/system.h
+./snmptls.lo: ../include/net-snmp/library/tools.h
+./snmptls.lo: ../include/net-snmp/library/int64.h
+./snmptls.lo: ../include/net-snmp/library/mt_support.h
+./snmptls.lo: ../include/net-snmp/library/snmp_alarm.h
+./snmptls.lo: ../include/net-snmp/library/data_list.h
+./snmptls.lo: ../include/net-snmp/library/check_varbind.h
+./snmptls.lo: ../include/net-snmp/library/container.h
+./snmptls.lo: ../include/net-snmp/library/factory.h
+./snmptls.lo: ../include/net-snmp/library/container_binary_array.h
+./snmptls.lo: ../include/net-snmp/library/container_list_ssll.h
+./snmptls.lo: ../include/net-snmp/library/container_iterator.h
+./snmptls.lo: ../include/net-snmp/library/container.h
+./snmptls.lo: ../include/net-snmp/library/snmp_assert.h
+./snmptls.lo: ../include/net-snmp/version.h ../include/net-snmp/config_api.h
+./snmptls.lo: ../include/net-snmp/library/read_config.h
+./snmptls.lo: ../include/net-snmp/library/default_store.h
+./snmptls.lo: ../include/net-snmp/library/snmp_parse_args.h
+./snmptls.lo: ../include/net-snmp/library/snmp_enum.h
+./snmptls.lo: ../include/net-snmp/library/vacm.h
+./snmptls.lo: ../include/net-snmp/snmpv3_api.h
+./snmptls.lo: ../include/net-snmp/library/snmpv3.h
+./snmptls.lo: ../include/net-snmp/library/transform_oids.h
+./snmptls.lo: ../include/net-snmp/library/keytools.h
+./snmptls.lo: ../include/net-snmp/library/scapi.h
+./snmptls.lo: ../include/net-snmp/library/lcd_time.h
+./snmptls.lo: ../include/net-snmp/library/snmp_secmod.h
+./snmptls.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmptls.lo: ../include/net-snmp/library/snmptsm.h
+./snmptls.lo: ../include/net-snmp/library/snmpusm.h
+./snmptls.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
+./snmptls.lo: ../include/net-snmp/agent/mib_module_config.h
+./snmptls.lo: ../include/net-snmp/agent/agent_module_config.h
+./snmptls.lo: ../include/net-snmp/agent/snmp_agent.h
+./snmptls.lo: ../include/net-snmp/agent/snmp_vars.h
+./snmptls.lo: ../include/net-snmp/agent/agent_handler.h
+./snmptls.lo: ../include/net-snmp/agent/var_struct.h
+./snmptls.lo: ../include/net-snmp/agent/agent_registry.h
+./snmptls.lo: ../include/net-snmp/library/fd_event_manager.h
+./snmptls.lo: ../include/net-snmp/agent/ds_agent.h
+./snmptls.lo: ../include/net-snmp/agent/agent_read_config.h
+./snmptls.lo: ../include/net-snmp/agent/agent_trap.h
+./snmptls.lo: ../include/net-snmp/agent/all_helpers.h
+./snmptls.lo: ../include/net-snmp/agent/instance.h
+./snmptls.lo: ../include/net-snmp/agent/baby_steps.h
+./snmptls.lo: ../include/net-snmp/agent/scalar.h
+./snmptls.lo: ../include/net-snmp/agent/scalar_group.h
+./snmptls.lo: ../include/net-snmp/agent/watcher.h
+./snmptls.lo: ../include/net-snmp/agent/multiplexer.h
+./snmptls.lo: ../include/net-snmp/agent/null.h
+./snmptls.lo: ../include/net-snmp/agent/debug_handler.h
+./snmptls.lo: ../include/net-snmp/agent/cache_handler.h
+./snmptls.lo: ../include/net-snmp/agent/old_api.h
+./snmptls.lo: ../include/net-snmp/agent/read_only.h
+./snmptls.lo: ../include/net-snmp/agent/row_merge.h
+./snmptls.lo: ../include/net-snmp/agent/serialize.h
+./snmptls.lo: ../include/net-snmp/agent/bulk_to_next.h
+./snmptls.lo: ../include/net-snmp/agent/mode_end_call.h
+./snmptls.lo: ../include/net-snmp/agent/table.h
+./snmptls.lo: ../include/net-snmp/agent/table_data.h
+./snmptls.lo: ../include/net-snmp/agent/table_dataset.h
+./snmptls.lo: ../include/net-snmp/agent/table_tdata.h
+./snmptls.lo: ../include/net-snmp/agent/table_iterator.h
+./snmptls.lo: ../include/net-snmp/agent/table_container.h
+./snmptls.lo: ../include/net-snmp/agent/table_array.h
+./snmptls.lo: ../include/net-snmp/agent/mfd.h
+./snmptls.lo: ../include/net-snmp/agent/snmp_get_statistic.h
+./snmptls.lo: ../include/net-snmp/library/cert_util.h
+./snmptls.lo: ../agent/mibgroup/tlstm-mib.h
+./snmptls.lo: ../agent/mibgroup/tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h
+./snmptls.lo: ../agent/mibgroup/tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h
+./snmptls.lo: ../agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h
 ./snmptranslate.lo: ../include/net-snmp/net-snmp-config.h
-./snmptranslate.lo: ../include/net-snmp/system/linux.h
-./snmptranslate.lo: ../include/net-snmp/system/sysv.h
-./snmptranslate.lo: ../include/net-snmp/system/generic.h
-./snmptranslate.lo: ../include/net-snmp/machine/generic.h
 ./snmptranslate.lo: ../include/net-snmp/utilities.h
 ./snmptranslate.lo: ../include/net-snmp/types.h 
+./snmptranslate.lo: ../include/net-snmp/library/oid.h
 ./snmptranslate.lo: ../include/net-snmp/library/types.h
 ./snmptranslate.lo: ../include/net-snmp/definitions.h
 ./snmptranslate.lo: ../include/net-snmp/library/snmp_api.h
@@ -748,6 +996,9 @@
 ./snmptranslate.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptranslate.lo: ../include/net-snmp/pdu_api.h
 ./snmptranslate.lo: ../include/net-snmp/library/asn1.h
+./snmptranslate.lo: ../include/net-snmp/output_api.h
+./snmptranslate.lo: ../include/net-snmp/library/snmp_debug.h
+./snmptranslate.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptranslate.lo: ../include/net-snmp/session_api.h
 ./snmptranslate.lo: ../include/net-snmp/library/callback.h
 ./snmptranslate.lo: ../include/net-snmp/library/snmp_transport.h
@@ -755,8 +1006,12 @@
 ./snmptranslate.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmptranslate.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmptranslate.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmptranslate.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmptranslate.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmptranslate.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmptranslate.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmptranslate.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmptranslate.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmptranslate.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmptranslate.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmptranslate.lo: ../include/net-snmp/library/ucd_compat.h
@@ -776,7 +1031,6 @@
 ./snmptranslate.lo: ../include/net-snmp/library/check_varbind.h
 ./snmptranslate.lo: ../include/net-snmp/library/container.h
 ./snmptranslate.lo: ../include/net-snmp/library/factory.h
-./snmptranslate.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptranslate.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmptranslate.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmptranslate.lo: ../include/net-snmp/library/container_iterator.h
@@ -789,21 +1043,20 @@
 ./snmptranslate.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmptranslate.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmptranslate.lo: ../include/net-snmp/library/vacm.h
-./snmptranslate.lo: ../include/net-snmp/output_api.h
-./snmptranslate.lo: ../include/net-snmp/library/snmp_debug.h
-./snmptrap.lo: ../include/net-snmp/net-snmp-config.h
-./snmptrap.lo: ../include/net-snmp/system/linux.h
-./snmptrap.lo: ../include/net-snmp/system/sysv.h
-./snmptrap.lo: ../include/net-snmp/system/generic.h
-./snmptrap.lo: ../include/net-snmp/machine/generic.h 
-./snmptrap.lo: ../include/net-snmp/net-snmp-includes.h
-./snmptrap.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
-./snmptrap.lo:  ../include/net-snmp/library/types.h
+./snmptrap.lo: ../include/net-snmp/net-snmp-config.h 
+./snmptrap.lo: ../include/net-snmp/net-snmp-includes.h 
+./snmptrap.lo:  ../include/net-snmp/definitions.h
+./snmptrap.lo: ../include/net-snmp/types.h 
+./snmptrap.lo: ../include/net-snmp/library/oid.h
+./snmptrap.lo: ../include/net-snmp/library/types.h
 ./snmptrap.lo: ../include/net-snmp/library/snmp_api.h
 ./snmptrap.lo: ../include/net-snmp/varbind_api.h
 ./snmptrap.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptrap.lo: ../include/net-snmp/pdu_api.h
 ./snmptrap.lo: ../include/net-snmp/library/asn1.h
+./snmptrap.lo: ../include/net-snmp/output_api.h
+./snmptrap.lo: ../include/net-snmp/library/snmp_debug.h
+./snmptrap.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptrap.lo: ../include/net-snmp/session_api.h
 ./snmptrap.lo: ../include/net-snmp/library/callback.h
 ./snmptrap.lo: ../include/net-snmp/library/snmp_transport.h
@@ -811,8 +1064,12 @@
 ./snmptrap.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmptrap.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmptrap.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmptrap.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmptrap.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmptrap.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmptrap.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmptrap.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmptrap.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmptrap.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmptrap.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmptrap.lo: ../include/net-snmp/library/ucd_compat.h
@@ -834,7 +1091,6 @@
 ./snmptrap.lo: ../include/net-snmp/library/check_varbind.h
 ./snmptrap.lo: ../include/net-snmp/library/container.h
 ./snmptrap.lo: ../include/net-snmp/library/factory.h
-./snmptrap.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptrap.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmptrap.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmptrap.lo: ../include/net-snmp/library/container_iterator.h
@@ -846,8 +1102,6 @@
 ./snmptrap.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmptrap.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmptrap.lo: ../include/net-snmp/library/vacm.h
-./snmptrap.lo: ../include/net-snmp/output_api.h
-./snmptrap.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmptrap.lo: ../include/net-snmp/snmpv3_api.h
 ./snmptrap.lo: ../include/net-snmp/library/snmpv3.h
 ./snmptrap.lo: ../include/net-snmp/library/transform_oids.h
@@ -856,21 +1110,22 @@
 ./snmptrap.lo: ../include/net-snmp/library/lcd_time.h
 ./snmptrap.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmptrap.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmptrap.lo: ../include/net-snmp/library/snmptsm.h
 ./snmptrap.lo: ../include/net-snmp/library/snmpusm.h
 ./snmptrapd_auth.lo: ../include/net-snmp/net-snmp-config.h
-./snmptrapd_auth.lo: ../include/net-snmp/system/linux.h
-./snmptrapd_auth.lo: ../include/net-snmp/system/sysv.h
-./snmptrapd_auth.lo: ../include/net-snmp/system/generic.h
-./snmptrapd_auth.lo: ../include/net-snmp/machine/generic.h
 ./snmptrapd_auth.lo: ../include/net-snmp/net-snmp-includes.h
 ./snmptrapd_auth.lo: ../include/net-snmp/definitions.h
 ./snmptrapd_auth.lo: ../include/net-snmp/types.h 
+./snmptrapd_auth.lo: ../include/net-snmp/library/oid.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/types.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_api.h
 ./snmptrapd_auth.lo: ../include/net-snmp/varbind_api.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptrapd_auth.lo: ../include/net-snmp/pdu_api.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/asn1.h
+./snmptrapd_auth.lo: ../include/net-snmp/output_api.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_debug.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptrapd_auth.lo: ../include/net-snmp/session_api.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/callback.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_transport.h
@@ -878,8 +1133,12 @@
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/ucd_compat.h
@@ -901,7 +1160,6 @@
 ./snmptrapd_auth.lo: ../include/net-snmp/library/check_varbind.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/container.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/factory.h
-./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/container_iterator.h
@@ -914,8 +1172,6 @@
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/vacm.h
-./snmptrapd_auth.lo: ../include/net-snmp/output_api.h
-./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmptrapd_auth.lo: ../include/net-snmp/snmpv3_api.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmpv3.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/transform_oids.h
@@ -924,25 +1180,27 @@
 ./snmptrapd_auth.lo: ../include/net-snmp/library/lcd_time.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmptrapd_auth.lo: ../include/net-snmp/library/snmptsm.h
 ./snmptrapd_auth.lo: ../include/net-snmp/library/snmpusm.h
 ./snmptrapd_auth.lo: snmptrapd_handlers.h snmptrapd_auth.h snmptrapd_ds.h
 ./snmptrapd_auth.lo: ../include/net-snmp/agent/agent_module_config.h
 ./snmptrapd_auth.lo: ../include/net-snmp/agent/mib_module_config.h
 ./snmptrapd_auth.lo: ../agent/mibgroup/mibII/vacm_conf.h
 ./snmptrapd_auth.lo: ../include/net-snmp/agent/agent_trap.h
-./snmptrapd.lo: ../include/net-snmp/net-snmp-config.h
-./snmptrapd.lo: ../include/net-snmp/system/linux.h
-./snmptrapd.lo: ../include/net-snmp/system/sysv.h
-./snmptrapd.lo: ../include/net-snmp/system/generic.h
-./snmptrapd.lo: ../include/net-snmp/machine/generic.h 
-./snmptrapd.lo: ../include/net-snmp/net-snmp-includes.h
-./snmptrapd.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
-./snmptrapd.lo:  ../include/net-snmp/library/types.h
+./snmptrapd.lo: ../include/net-snmp/net-snmp-config.h 
+./snmptrapd.lo: ../include/net-snmp/net-snmp-includes.h 
+./snmptrapd.lo:  ../include/net-snmp/definitions.h
+./snmptrapd.lo: ../include/net-snmp/types.h 
+./snmptrapd.lo: ../include/net-snmp/library/oid.h
+./snmptrapd.lo: ../include/net-snmp/library/types.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmp_api.h
 ./snmptrapd.lo: ../include/net-snmp/varbind_api.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptrapd.lo: ../include/net-snmp/pdu_api.h
 ./snmptrapd.lo: ../include/net-snmp/library/asn1.h
+./snmptrapd.lo: ../include/net-snmp/output_api.h
+./snmptrapd.lo: ../include/net-snmp/library/snmp_debug.h
+./snmptrapd.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptrapd.lo: ../include/net-snmp/session_api.h
 ./snmptrapd.lo: ../include/net-snmp/library/callback.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmp_transport.h
@@ -950,8 +1208,12 @@
 ./snmptrapd.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmptrapd.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmptrapd.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmptrapd.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmptrapd.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmptrapd.lo: ../include/net-snmp/library/ucd_compat.h
@@ -973,7 +1235,6 @@
 ./snmptrapd.lo: ../include/net-snmp/library/check_varbind.h
 ./snmptrapd.lo: ../include/net-snmp/library/container.h
 ./snmptrapd.lo: ../include/net-snmp/library/factory.h
-./snmptrapd.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptrapd.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmptrapd.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmptrapd.lo: ../include/net-snmp/library/container_iterator.h
@@ -986,8 +1247,6 @@
 ./snmptrapd.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmptrapd.lo: ../include/net-snmp/library/vacm.h
-./snmptrapd.lo: ../include/net-snmp/output_api.h
-./snmptrapd.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmptrapd.lo: ../include/net-snmp/snmpv3_api.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmpv3.h
 ./snmptrapd.lo: ../include/net-snmp/library/transform_oids.h
@@ -996,6 +1255,7 @@
 ./snmptrapd.lo: ../include/net-snmp/library/lcd_time.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmptrapd.lo: ../include/net-snmp/library/snmptsm.h
 ./snmptrapd.lo: ../include/net-snmp/library/snmpusm.h
 ./snmptrapd.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./snmptrapd.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -1032,17 +1292,17 @@
 ./snmptrapd.lo: ../include/net-snmp/agent/table_iterator.h
 ./snmptrapd.lo: ../include/net-snmp/agent/table_container.h
 ./snmptrapd.lo: ../include/net-snmp/agent/table_array.h
-./snmptrapd.lo: ../include/net-snmp/agent/mfd.h snmptrapd_handlers.h
-./snmptrapd.lo: snmptrapd_log.h snmptrapd_ds.h snmptrapd_auth.h
+./snmptrapd.lo: ../include/net-snmp/agent/mfd.h
+./snmptrapd.lo: ../include/net-snmp/agent/snmp_get_statistic.h
+./snmptrapd.lo: snmptrapd_handlers.h snmptrapd_log.h snmptrapd_ds.h
+./snmptrapd.lo: snmptrapd_auth.h
 ./snmptrapd.lo: ../agent/mibgroup/notification-log-mib/notification_log.h
-./snmptrapd.lo: ../agent/mibgroup/mibII/vacm_conf.h ../agent/snmp_perl.h
+./snmptrapd.lo: ../agent/mibgroup/tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h
+./snmptrapd.lo: ../agent/mibgroup/mibII/vacm_conf.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/net-snmp-config.h
-./snmptrapd_handlers.lo: ../include/net-snmp/system/linux.h
-./snmptrapd_handlers.lo: ../include/net-snmp/system/sysv.h
-./snmptrapd_handlers.lo: ../include/net-snmp/system/generic.h
-./snmptrapd_handlers.lo: ../include/net-snmp/machine/generic.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/config_api.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/types.h 
+./snmptrapd_handlers.lo: ../include/net-snmp/library/oid.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/types.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/definitions.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_api.h
@@ -1050,6 +1310,9 @@
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/pdu_api.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/asn1.h
+./snmptrapd_handlers.lo: ../include/net-snmp/output_api.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_debug.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/session_api.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/callback.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1057,8 +1320,12 @@
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1074,9 +1341,6 @@
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/vacm.h
-./snmptrapd_handlers.lo: ../include/net-snmp/output_api.h
-./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_debug.h
-./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/utilities.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/system.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/tools.h
@@ -1103,6 +1367,7 @@
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/lcd_time.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmptrapd_handlers.lo: ../include/net-snmp/library/snmptsm.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/library/snmpusm.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/agent/net-snmp-agent-includes.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/agent/mib_module_config.h
@@ -1140,24 +1405,25 @@
 ./snmptrapd_handlers.lo: ../include/net-snmp/agent/table_container.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/agent/table_array.h
 ./snmptrapd_handlers.lo: ../include/net-snmp/agent/mfd.h
+./snmptrapd_handlers.lo: ../include/net-snmp/agent/snmp_get_statistic.h
 ./snmptrapd_handlers.lo: ../agent/mibgroup/utilities/execute.h
 ./snmptrapd_handlers.lo: snmptrapd_handlers.h snmptrapd_auth.h
 ./snmptrapd_handlers.lo: snmptrapd_log.h snmptrapd_ds.h
 ./snmptrapd_handlers.lo: ../agent/mibgroup/notification-log-mib/notification_log.h
 ./snmptrapd_log.lo: ../include/net-snmp/net-snmp-config.h
-./snmptrapd_log.lo: ../include/net-snmp/system/linux.h
-./snmptrapd_log.lo: ../include/net-snmp/system/sysv.h
-./snmptrapd_log.lo: ../include/net-snmp/system/generic.h
-./snmptrapd_log.lo: ../include/net-snmp/machine/generic.h
 ./snmptrapd_log.lo: ../include/net-snmp/net-snmp-includes.h
-./snmptrapd_log.lo: ../include/net-snmp/definitions.h
+./snmptrapd_log.lo:  ../include/net-snmp/definitions.h
 ./snmptrapd_log.lo: ../include/net-snmp/types.h 
+./snmptrapd_log.lo: ../include/net-snmp/library/oid.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/types.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmp_api.h
 ./snmptrapd_log.lo: ../include/net-snmp/varbind_api.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptrapd_log.lo: ../include/net-snmp/pdu_api.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/asn1.h
+./snmptrapd_log.lo: ../include/net-snmp/output_api.h
+./snmptrapd_log.lo: ../include/net-snmp/library/snmp_debug.h
+./snmptrapd_log.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptrapd_log.lo: ../include/net-snmp/session_api.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/callback.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1165,8 +1431,12 @@
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmptrapd_log.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmptrapd_log.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmptrapd_log.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmptrapd_log.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1188,7 +1458,6 @@
 ./snmptrapd_log.lo: ../include/net-snmp/library/check_varbind.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/container.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/factory.h
-./snmptrapd_log.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/container_iterator.h
@@ -1201,8 +1470,6 @@
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/vacm.h
-./snmptrapd_log.lo: ../include/net-snmp/output_api.h
-./snmptrapd_log.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmptrapd_log.lo: ../include/net-snmp/snmpv3_api.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmpv3.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/transform_oids.h
@@ -1211,26 +1478,24 @@
 ./snmptrapd_log.lo: ../include/net-snmp/library/lcd_time.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmptrapd_log.lo: ../include/net-snmp/library/snmptsm.h
 ./snmptrapd_log.lo: ../include/net-snmp/library/snmpusm.h snmptrapd_log.h
 ./snmptrapd_log.lo: snmptrapd_ds.h
 ./snmptrapd_sql.lo: ../include/net-snmp/net-snmp-config.h
-./snmptrapd_sql.lo: ../include/net-snmp/system/linux.h
-./snmptrapd_sql.lo: ../include/net-snmp/system/sysv.h
-./snmptrapd_sql.lo: ../include/net-snmp/system/generic.h
-./snmptrapd_sql.lo: ../include/net-snmp/machine/generic.h
-./snmpusm.lo: ../include/net-snmp/net-snmp-config.h
-./snmpusm.lo: ../include/net-snmp/system/linux.h
-./snmpusm.lo: ../include/net-snmp/system/sysv.h
-./snmpusm.lo: ../include/net-snmp/system/generic.h
-./snmpusm.lo: ../include/net-snmp/machine/generic.h 
-./snmpusm.lo: ../include/net-snmp/net-snmp-includes.h
-./snmpusm.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
-./snmpusm.lo:  ../include/net-snmp/library/types.h
+./snmpusm.lo: ../include/net-snmp/net-snmp-config.h 
+./snmpusm.lo: ../include/net-snmp/net-snmp-includes.h 
+./snmpusm.lo:  ../include/net-snmp/definitions.h
+./snmpusm.lo: ../include/net-snmp/types.h 
+./snmpusm.lo: ../include/net-snmp/library/oid.h
+./snmpusm.lo: ../include/net-snmp/library/types.h
 ./snmpusm.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpusm.lo: ../include/net-snmp/varbind_api.h
 ./snmpusm.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpusm.lo: ../include/net-snmp/pdu_api.h
 ./snmpusm.lo: ../include/net-snmp/library/asn1.h
+./snmpusm.lo: ../include/net-snmp/output_api.h
+./snmpusm.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpusm.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpusm.lo: ../include/net-snmp/session_api.h
 ./snmpusm.lo: ../include/net-snmp/library/callback.h
 ./snmpusm.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1238,8 +1503,12 @@
 ./snmpusm.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpusm.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpusm.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpusm.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpusm.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpusm.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1260,7 +1529,6 @@
 ./snmpusm.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpusm.lo: ../include/net-snmp/library/container.h
 ./snmpusm.lo: ../include/net-snmp/library/factory.h
-./snmpusm.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpusm.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpusm.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpusm.lo: ../include/net-snmp/library/container_iterator.h
@@ -1272,8 +1540,6 @@
 ./snmpusm.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpusm.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpusm.lo: ../include/net-snmp/library/vacm.h
-./snmpusm.lo: ../include/net-snmp/output_api.h
-./snmpusm.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpusm.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpusm.lo: ../include/net-snmp/library/transform_oids.h
@@ -1282,20 +1548,22 @@
 ./snmpusm.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpusm.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpusm.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpusm.h
-./snmpvacm.lo: ../include/net-snmp/net-snmp-config.h
-./snmpvacm.lo: ../include/net-snmp/system/linux.h
-./snmpvacm.lo: ../include/net-snmp/system/sysv.h
-./snmpvacm.lo: ../include/net-snmp/system/generic.h
-./snmpvacm.lo: ../include/net-snmp/machine/generic.h 
-./snmpvacm.lo: ../include/net-snmp/net-snmp-includes.h
-./snmpvacm.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
-./snmpvacm.lo:  ../include/net-snmp/library/types.h
+./snmpvacm.lo: ../include/net-snmp/net-snmp-config.h 
+./snmpvacm.lo: ../include/net-snmp/net-snmp-includes.h 
+./snmpvacm.lo:  ../include/net-snmp/definitions.h
+./snmpvacm.lo: ../include/net-snmp/types.h 
+./snmpvacm.lo: ../include/net-snmp/library/oid.h
+./snmpvacm.lo: ../include/net-snmp/library/types.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpvacm.lo: ../include/net-snmp/varbind_api.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpvacm.lo: ../include/net-snmp/pdu_api.h
 ./snmpvacm.lo: ../include/net-snmp/library/asn1.h
+./snmpvacm.lo: ../include/net-snmp/output_api.h
+./snmpvacm.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpvacm.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpvacm.lo: ../include/net-snmp/session_api.h
 ./snmpvacm.lo: ../include/net-snmp/library/callback.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1303,8 +1571,12 @@
 ./snmpvacm.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpvacm.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpvacm.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpvacm.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpvacm.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpvacm.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1326,7 +1598,6 @@
 ./snmpvacm.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpvacm.lo: ../include/net-snmp/library/container.h
 ./snmpvacm.lo: ../include/net-snmp/library/factory.h
-./snmpvacm.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpvacm.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpvacm.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpvacm.lo: ../include/net-snmp/library/container_iterator.h
@@ -1338,8 +1609,6 @@
 ./snmpvacm.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpvacm.lo: ../include/net-snmp/library/vacm.h
-./snmpvacm.lo: ../include/net-snmp/output_api.h
-./snmpvacm.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpvacm.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpvacm.lo: ../include/net-snmp/library/transform_oids.h
@@ -1348,20 +1617,22 @@
 ./snmpvacm.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpvacm.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpvacm.lo: ../include/net-snmp/library/snmpusm.h
-./snmpwalk.lo: ../include/net-snmp/net-snmp-config.h
-./snmpwalk.lo: ../include/net-snmp/system/linux.h
-./snmpwalk.lo: ../include/net-snmp/system/sysv.h
-./snmpwalk.lo: ../include/net-snmp/system/generic.h
-./snmpwalk.lo: ../include/net-snmp/machine/generic.h 
-./snmpwalk.lo: ../include/net-snmp/net-snmp-includes.h
-./snmpwalk.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
-./snmpwalk.lo:  ../include/net-snmp/library/types.h
+./snmpwalk.lo: ../include/net-snmp/net-snmp-config.h 
+./snmpwalk.lo: ../include/net-snmp/net-snmp-includes.h 
+./snmpwalk.lo:  ../include/net-snmp/definitions.h
+./snmpwalk.lo: ../include/net-snmp/types.h 
+./snmpwalk.lo: ../include/net-snmp/library/oid.h
+./snmpwalk.lo: ../include/net-snmp/library/types.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpwalk.lo: ../include/net-snmp/varbind_api.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpwalk.lo: ../include/net-snmp/pdu_api.h
 ./snmpwalk.lo: ../include/net-snmp/library/asn1.h
+./snmpwalk.lo: ../include/net-snmp/output_api.h
+./snmpwalk.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpwalk.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpwalk.lo: ../include/net-snmp/session_api.h
 ./snmpwalk.lo: ../include/net-snmp/library/callback.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1369,8 +1640,12 @@
 ./snmpwalk.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpwalk.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpwalk.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpwalk.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpwalk.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpwalk.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1392,7 +1667,6 @@
 ./snmpwalk.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpwalk.lo: ../include/net-snmp/library/container.h
 ./snmpwalk.lo: ../include/net-snmp/library/factory.h
-./snmpwalk.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpwalk.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpwalk.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpwalk.lo: ../include/net-snmp/library/container_iterator.h
@@ -1404,8 +1678,6 @@
 ./snmpwalk.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpwalk.lo: ../include/net-snmp/library/vacm.h
-./snmpwalk.lo: ../include/net-snmp/output_api.h
-./snmpwalk.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpwalk.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpwalk.lo: ../include/net-snmp/library/transform_oids.h
@@ -1414,26 +1686,23 @@
 ./snmpwalk.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpwalk.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpwalk.lo: ../include/net-snmp/library/snmpusm.h
 ./sshtosnmp.lo: ../include/net-snmp/net-snmp-config.h
-./sshtosnmp.lo: ../include/net-snmp/system/linux.h
-./sshtosnmp.lo: ../include/net-snmp/system/sysv.h
-./sshtosnmp.lo: ../include/net-snmp/system/generic.h
-./sshtosnmp.lo: ../include/net-snmp/machine/generic.h
 ./snmpnetstat/if.lo: ../include/net-snmp/net-snmp-config.h
-./snmpnetstat/if.lo: ../include/net-snmp/system/linux.h
-./snmpnetstat/if.lo: ../include/net-snmp/system/sysv.h
-./snmpnetstat/if.lo: ../include/net-snmp/system/generic.h
-./snmpnetstat/if.lo: ../include/net-snmp/machine/generic.h
 ./snmpnetstat/if.lo: ../include/net-snmp/net-snmp-includes.h
 ./snmpnetstat/if.lo: ../include/net-snmp/definitions.h
 ./snmpnetstat/if.lo: ../include/net-snmp/types.h 
+./snmpnetstat/if.lo: ../include/net-snmp/library/oid.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/types.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpnetstat/if.lo: ../include/net-snmp/varbind_api.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpnetstat/if.lo: ../include/net-snmp/pdu_api.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/asn1.h
+./snmpnetstat/if.lo: ../include/net-snmp/output_api.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpnetstat/if.lo: ../include/net-snmp/session_api.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/callback.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1441,8 +1710,12 @@
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1464,7 +1737,6 @@
 ./snmpnetstat/if.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/container.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/factory.h
-./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/container_iterator.h
@@ -1477,8 +1749,6 @@
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/vacm.h
-./snmpnetstat/if.lo: ../include/net-snmp/output_api.h
-./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpnetstat/if.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/transform_oids.h
@@ -1487,23 +1757,24 @@
 ./snmpnetstat/if.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpnetstat/if.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpnetstat/if.lo: ../include/net-snmp/library/snmpusm.h
 ./snmpnetstat/if.lo:  ./snmpnetstat/main.h
 ./snmpnetstat/if.lo: ./snmpnetstat/netstat.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/net-snmp-config.h
-./snmpnetstat/inet6.lo: ../include/net-snmp/system/linux.h
-./snmpnetstat/inet6.lo: ../include/net-snmp/system/sysv.h
-./snmpnetstat/inet6.lo: ../include/net-snmp/system/generic.h
-./snmpnetstat/inet6.lo: ../include/net-snmp/machine/generic.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/net-snmp-includes.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/definitions.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/types.h 
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/oid.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/types.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/varbind_api.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/pdu_api.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/asn1.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/output_api.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/session_api.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/callback.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1511,8 +1782,12 @@
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1534,7 +1809,6 @@
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/container.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/factory.h
-./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/container_iterator.h
@@ -1547,8 +1821,6 @@
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/vacm.h
-./snmpnetstat/inet6.lo: ../include/net-snmp/output_api.h
-./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/transform_oids.h
@@ -1557,22 +1829,23 @@
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpnetstat/inet6.lo: ../include/net-snmp/library/snmpusm.h
 ./snmpnetstat/inet6.lo: ./snmpnetstat/main.h ./snmpnetstat/netstat.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/net-snmp-config.h
-./snmpnetstat/inet.lo: ../include/net-snmp/system/linux.h
-./snmpnetstat/inet.lo: ../include/net-snmp/system/sysv.h
-./snmpnetstat/inet.lo: ../include/net-snmp/system/generic.h
-./snmpnetstat/inet.lo: ../include/net-snmp/machine/generic.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/net-snmp-includes.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/definitions.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/types.h 
+./snmpnetstat/inet.lo: ../include/net-snmp/library/oid.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/types.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/varbind_api.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/pdu_api.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/asn1.h
+./snmpnetstat/inet.lo: ../include/net-snmp/output_api.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/session_api.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/callback.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1580,8 +1853,12 @@
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1603,7 +1880,6 @@
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/container.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/factory.h
-./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/container_iterator.h
@@ -1616,8 +1892,6 @@
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/vacm.h
-./snmpnetstat/inet.lo: ../include/net-snmp/output_api.h
-./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/transform_oids.h
@@ -1626,22 +1900,23 @@
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpnetstat/inet.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpnetstat/inet.lo: ../include/net-snmp/library/snmpusm.h
 ./snmpnetstat/inet.lo: ./snmpnetstat/main.h ./snmpnetstat/netstat.h
 ./snmpnetstat/main.lo: ../include/net-snmp/net-snmp-config.h
-./snmpnetstat/main.lo: ../include/net-snmp/system/linux.h
-./snmpnetstat/main.lo: ../include/net-snmp/system/sysv.h
-./snmpnetstat/main.lo: ../include/net-snmp/system/generic.h
-./snmpnetstat/main.lo: ../include/net-snmp/machine/generic.h
 ./snmpnetstat/main.lo: ../include/net-snmp/net-snmp-includes.h
 ./snmpnetstat/main.lo: ../include/net-snmp/definitions.h
 ./snmpnetstat/main.lo: ../include/net-snmp/types.h 
+./snmpnetstat/main.lo: ../include/net-snmp/library/oid.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/types.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpnetstat/main.lo: ../include/net-snmp/varbind_api.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpnetstat/main.lo: ../include/net-snmp/pdu_api.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/asn1.h
+./snmpnetstat/main.lo: ../include/net-snmp/output_api.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpnetstat/main.lo: ../include/net-snmp/session_api.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/callback.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1649,8 +1924,12 @@
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1672,7 +1951,6 @@
 ./snmpnetstat/main.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/container.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/factory.h
-./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/container_iterator.h
@@ -1685,8 +1963,6 @@
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/vacm.h
-./snmpnetstat/main.lo: ../include/net-snmp/output_api.h
-./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpnetstat/main.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/transform_oids.h
@@ -1695,22 +1971,23 @@
 ./snmpnetstat/main.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpnetstat/main.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpnetstat/main.lo: ../include/net-snmp/library/snmpusm.h
 ./snmpnetstat/main.lo: ./snmpnetstat/main.h ./snmpnetstat/netstat.h
 ./snmpnetstat/route.lo: ../include/net-snmp/net-snmp-config.h
-./snmpnetstat/route.lo: ../include/net-snmp/system/linux.h
-./snmpnetstat/route.lo: ../include/net-snmp/system/sysv.h
-./snmpnetstat/route.lo: ../include/net-snmp/system/generic.h
-./snmpnetstat/route.lo: ../include/net-snmp/machine/generic.h
 ./snmpnetstat/route.lo: ../include/net-snmp/net-snmp-includes.h
 ./snmpnetstat/route.lo: ../include/net-snmp/definitions.h
 ./snmpnetstat/route.lo: ../include/net-snmp/types.h 
+./snmpnetstat/route.lo: ../include/net-snmp/library/oid.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/types.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpnetstat/route.lo: ../include/net-snmp/varbind_api.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpnetstat/route.lo: ../include/net-snmp/pdu_api.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/asn1.h
+./snmpnetstat/route.lo: ../include/net-snmp/output_api.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpnetstat/route.lo: ../include/net-snmp/session_api.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/callback.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1718,8 +1995,12 @@
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1741,7 +2022,6 @@
 ./snmpnetstat/route.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/container.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/factory.h
-./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/container_iterator.h
@@ -1754,8 +2034,6 @@
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/vacm.h
-./snmpnetstat/route.lo: ../include/net-snmp/output_api.h
-./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpnetstat/route.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/transform_oids.h
@@ -1764,22 +2042,23 @@
 ./snmpnetstat/route.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpnetstat/route.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpnetstat/route.lo: ../include/net-snmp/library/snmpusm.h
 ./snmpnetstat/route.lo: ./snmpnetstat/main.h ./snmpnetstat/netstat.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/net-snmp-config.h
-./snmpnetstat/winstub.lo: ../include/net-snmp/system/linux.h
-./snmpnetstat/winstub.lo: ../include/net-snmp/system/sysv.h
-./snmpnetstat/winstub.lo: ../include/net-snmp/system/generic.h
-./snmpnetstat/winstub.lo: ../include/net-snmp/machine/generic.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/net-snmp-includes.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/definitions.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/types.h 
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/oid.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/types.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/varbind_api.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/pdu_api.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/asn1.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/output_api.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/session_api.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/callback.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1787,8 +2066,12 @@
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1810,7 +2093,6 @@
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/check_varbind.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/container.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/factory.h
-./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/container_iterator.h
@@ -1823,8 +2105,6 @@
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/vacm.h
-./snmpnetstat/winstub.lo: ../include/net-snmp/output_api.h
-./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/snmpv3_api.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpv3.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/transform_oids.h
@@ -1833,4 +2113,5 @@
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/lcd_time.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmptsm.h
 ./snmpnetstat/winstub.lo: ../include/net-snmp/library/snmpusm.h
diff --git a/apps/Makefile.in b/apps/Makefile.in
index b847073..769352d 100644
--- a/apps/Makefile.in
+++ b/apps/Makefile.in
@@ -17,7 +17,13 @@
 # Things to install
 #
 
-SSHINSTALLBINPROGS = @SSHINSTALLBINPROGS@
+@NETSNMP_BUILD_SSH_PROG_TRUE@SSHINSTALLBINPROG = sshtosnmp$(EXEEXT)
+@NETSNMP_BUILD_SSH_PROG_FALSE@SSHINSTALLBINPROG =
+@NETSNMP_BUILD_TLS_PROG_TRUE@TLSINSTALLBINPROG = snmptls$(EXEEXT)
+@NETSNMP_BUILD_TLS_PROG_FALSE@TLSINSTALLBINPROG =
+
+@NETSNMP_HAVE_AGENTX_LIBS_TRUE@AGENTXTRAP = agentxtrap$(EXEEXT)
+@NETSNMP_HAVE_AGENTX_LIBS_FALSE@AGENTXTRAP =
 
 INSTALLBINPROGS	= snmpget$(EXEEXT) 			\
 		snmpgetnext$(EXEEXT) 			\
@@ -34,8 +40,9 @@
 		snmptest$(EXEEXT)			\
 		encode_keychange$(EXEEXT) 		\
 		snmpdf$(EXEEXT) 			\
+		$(AGENTXTRAP)				\
 		snmpvacm$(EXEEXT)                       \
-                $(SSHINSTALLBINPROGS)
+                $(SSHINSTALLBINPROG) $(TLSINSTALLBINPROG)
 
 INSTALLSBINPROGS = snmptrapd$(EXEEXT)
 
@@ -49,10 +56,9 @@
 
 # USELIBS/USEAGENTLIBS are for dependencies
 USELIBS		= ../snmplib/libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION) 
-HELPERLIB       = ../agent/helpers/libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION)
 AGENTLIB        = ../agent/libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION)
 MIBLIB          = ../agent/libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION)
-USEAGENTLIBS	= $(MIBLIB) $(AGENTLIB) $(HELPERLIB) $(USELIBS)
+USEAGENTLIBS	= $(MIBLIB) $(AGENTLIB) $(USELIBS)
 MYSQL_LIBS	= @MYSQL_LIBS@
 MYSQL_INCLUDES	= @MYSQL_INCLUDES@
 
@@ -136,6 +142,12 @@
 snmpvacm$(EXEEXT):    snmpvacm.$(OSUFFIX) $(USELIBS)
 	$(LINK) ${CFLAGS} -o $@ snmpvacm.$(OSUFFIX) ${LDFLAGS} ${LIBS}
 
+snmptls$(EXEEXT):    snmptls.$(OSUFFIX) $(USELIBS)
+	$(LINK) ${CFLAGS} -o $@ snmptls.$(OSUFFIX) ${LDFLAGS} ${LIBS} 
+
+agentxtrap$(EXEEXT):    agentxtrap.$(OSUFFIX) $(USEAGENTLIBS)
+	$(LINK) ${CFLAGS} -o $@ agentxtrap.$(OSUFFIX) ${LDFLAGS} $(USEAGENTLIBS) $(PERLLDOPTS_FOR_APPS) ${LIBS}
+
 snmpgetnext$(EXEEXT):    snmpgetnext.$(OSUFFIX) $(USELIBS)
 	$(LINK) ${CFLAGS} -o $@ snmpgetnext.$(OSUFFIX) ${LDFLAGS} ${LIBS}
 
@@ -164,7 +176,7 @@
 	  @rm -f $(INSTALL_PREFIX)$(snmplibdir)/snmp_perl_trapd.pl
 	  @echo "removed snmp_perl_trapd.pl from $(INSTALL_PREFIX)$(snmplibdir)"
 
-sshtosnmp: sshtosnmp.$(OSUFFIX)
+sshtosnmp$(EXEEXT): sshtosnmp.$(OSUFFIX)
 	$(LINK) ${CFLAGS} -o $@ sshtosnmp.$(OSUFFIX)
 
 
diff --git a/apps/agentxtrap.c b/apps/agentxtrap.c
new file mode 100644
index 0000000..340f114
--- /dev/null
+++ b/apps/agentxtrap.c
@@ -0,0 +1,607 @@
+ #include <net-snmp/net-snmp-config.h>
+
+#include <errno.h>
+#include <signal.h>
+#include <string.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h> /* optind, optarg and optopt */
+#endif
+
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+
+#include "../agent/mibgroup/agentx/agentx_config.h"
+#include "../agent/mibgroup/agentx/client.h"
+#include "../agent/mibgroup/agentx/protocol.h"
+
+#ifdef __GNUC__
+#define UNUSED __attribute__((unused))
+#else
+#define UNUSED
+#endif
+
+extern const oid sysuptime_oid[];
+extern const size_t sysuptime_oid_len;
+extern const oid snmptrap_oid[];
+extern const size_t snmptrap_oid_len;
+
+static void
+usage(const char* progname)
+{
+    fprintf(stderr,
+            "USAGE: %s [OPTIONS] TRAP-PARAMETERS\n"
+            "\n"
+            "  Version:  %s\n"
+            "  Web:      http://www.net-snmp.org/\n"
+            "  Email:    net-snmp-coders@lists.sourceforge.net\n"
+            "\n"
+            "OPTIONS:\n", progname, netsnmp_get_version());
+
+    fprintf(stderr,
+            "  -h\t\t\tdisplay this help message\n"
+            "  -V\t\t\tdisplay package version number\n"
+            "  -m MIB[" ENV_SEPARATOR "...]\t\tload given list of MIBs (ALL loads "
+            "everything)\n"
+            "  -M DIR[" ENV_SEPARATOR "...]\t\tlook in given list of directories for MIBs\n"
+            "  -D[TOKEN[,...]]\tturn on debugging output for the specified "
+            "TOKENs\n"
+            "\t\t\t   (ALL gives extremely verbose debugging output)\n"
+            "  -d\t\t\tdump all traffic\n");
+#ifndef NETSNMP_DISABLE_MIB_LOADING
+    fprintf(stderr,
+            "  -P MIBOPTS\t\tToggle various defaults controlling mib "
+            "parsing:\n");
+    snmp_mib_toggle_options_usage("\t\t\t  ", stderr);
+#endif /* NETSNMP_DISABLE_MIB_LOADING */
+    fprintf(stderr,
+            "  -L LOGOPTS\t\tToggle various defaults controlling logging:\n");
+    snmp_log_options_usage("\t\t\t  ", stderr);
+
+    fprintf(stderr,
+            "  -c context\n"
+            "  -U uptime\n"
+            "  -x ADDRESS\t\tuse ADDRESS as AgentX address\n"
+            "\n"
+            "TRAP-PARAMETERS:\n"
+            "  trapoid [OID TYPE VALUE] ...\n");
+}
+
+struct tState_s;
+typedef const struct tState_s* tState;
+struct tState_s {
+    void (*entry)(tState self); /**<< State entry action */
+    void (*exit)(tState self); /**<< State exit action */
+    /** Handler for AgentX-Response-PDU's */
+    void (*response)(tState self, netsnmp_pdu *res);
+    /** State to change to if an AgentX timeout occurs or the timer runs out */
+    tState timeout;
+    void (*disconnect)(tState self); /**<< Handler for disconnect indications */
+    /** Handler for Close-PDU indications */
+    void (*close)(tState self, netsnmp_pdu *res);
+    const char* name; /**<< Name of the current state */
+    int is_open; /**<< If the connection is open in this state */
+};
+
+static tState state; /**<< Current state of the state machine */
+static tState next_state; /**<< Next state of the state machine */
+
+static const char  *context = NULL; /**<< Context that delivers the trap */
+static size_t       contextLen; /**<< Length of eventual context */
+static int          result = 1; /**<< Program return value */
+static netsnmp_pdu *pdu = NULL; /**<< The trap pdu that is to be sent */
+/** The reference number of the next packet */
+static long         packetid = 0;
+/** The session id of the session to the master */
+static long         session;
+static void        *sessp = NULL; /**<< The current communication session */
+
+#define STATE_CALL(method)                                              \
+    if(!state->method) {                                                \
+        snmp_log(LOG_ERR, "No " #method " method in %s, terminating\n", \
+                 state->name);                                          \
+        abort();                                                        \
+    } else                                                              \
+        state->method
+
+static void
+change_state(tState new_state)
+{
+    if (next_state && next_state != new_state)
+        DEBUGMSGTL(("process", "Ignore transition to %s\n", next_state->name));
+    next_state = new_state;
+}
+
+static int
+handle_agentx_response(int operation, netsnmp_session *sp, UNUSED int reqid,
+                       netsnmp_pdu *act, UNUSED void *magic)
+{
+    switch(operation) {
+    case NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE:
+        if(act->command == AGENTX_MSG_CLEANUPSET) {
+            /* Do nothing - no response and no action as nothing get
+             * allocated in any handler here
+             */
+        } else if(act->command != AGENTX_MSG_RESPONSE) {
+            /* Copy the head to a response */
+            netsnmp_pdu* res = snmp_split_pdu(act, 0, 0);
+            res->command = AGENTX_MSG_RESPONSE;
+            if (act->sessid != session || !state->is_open)
+                res->errstat = AGENTX_ERR_NOT_OPEN;
+            if(res->errstat == AGENTX_ERR_NOERROR)
+                switch(act->command) {
+                case AGENTX_MSG_GET:
+                    res->variables = snmp_clone_varbind(act->variables);
+                    snmp_reset_var_types(res->variables, SNMP_NOSUCHOBJECT);
+                    break;
+                case AGENTX_MSG_GETNEXT:
+                case AGENTX_MSG_GETBULK:
+                    res->variables = snmp_clone_varbind(act->variables);
+                    snmp_reset_var_types(res->variables, SNMP_ENDOFMIBVIEW);
+                    break;
+                case AGENTX_MSG_TESTSET:
+                    res->errstat = SNMP_ERR_NOTWRITABLE;
+                    res->errindex = 1;
+                    break;
+                case AGENTX_MSG_COMMITSET:
+                    res->errstat = SNMP_ERR_COMMITFAILED;
+                    res->errindex = 1;
+                    break;
+                case AGENTX_MSG_UNDOSET:
+                    /* Success - could undo not setting any value :-) */
+                    break;
+                case AGENTX_MSG_CLOSE:
+                    /* Always let the master succeed! */
+                    break;
+                default:
+                    /* Unknown command */
+                    res->errstat = AGENTX_ERR_PARSE_FAILED;
+                    break;
+                }
+            if(snmp_send(sp, res) == 0)
+                snmp_free_pdu(res);
+            switch(act->command) {
+            case AGENTX_MSG_CLOSE:
+                /* Take action once the answer is sent! */
+                STATE_CALL(close)(state, act);
+                break;
+            default:
+                /* Do nothing */
+                break;
+            }
+        } else
+            /* RESPONSE act->time, act->errstat, act->errindex, varlist */
+            STATE_CALL(response)(state, act);
+        break;
+    case NETSNMP_CALLBACK_OP_TIMED_OUT:
+        change_state(state->timeout);
+        break;
+    case NETSNMP_CALLBACK_OP_DISCONNECT:
+        STATE_CALL(disconnect)(state);
+        break;
+    }
+    return 0;
+}
+
+extern const struct tState_s Connecting;
+extern const struct tState_s Opening;
+extern const struct tState_s Notifying;
+extern const struct tState_s Closing;
+extern const struct tState_s Disconnecting;
+extern const struct tState_s Exit;
+
+static void
+StateDisconnect(UNUSED tState self)
+{
+    snmp_log(LOG_ERR, "Unexpected disconnect in state %s\n", self->name);
+    change_state(&Disconnecting);
+}
+
+static void
+StateClose(UNUSED tState self, netsnmp_pdu *act)
+{
+    snmp_log(LOG_ERR, "Unexpected close with reason code %ld in state %s\n",
+             act->errstat, self->name);
+    change_state(&Disconnecting);
+}
+
+static void
+ConnectingEntry(UNUSED tState self)
+{
+    netsnmp_session init;
+    netsnmp_transport* t;
+    void* sess;
+
+    if(sessp) {
+        snmp_sess_close(sessp);
+        sessp = NULL;
+    }
+
+    snmp_sess_init(&init);
+    init.version = AGENTX_VERSION_1;
+    init.retries = 0; /* Retries are handled by the state machine */
+    init.timeout = SNMP_DEFAULT_TIMEOUT;
+    init.flags |= SNMP_FLAGS_STREAM_SOCKET;
+    init.callback = handle_agentx_response;
+    init.authenticator = NULL;
+
+    if(!(t = netsnmp_transport_open_client(
+             "agentx", netsnmp_ds_get_string(
+                 NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_X_SOCKET)))) {
+        snmp_log(LOG_ERR, "Failed to connect to AgentX server\n");
+        change_state(&Exit);
+    } else if(!(sess = snmp_sess_add_ex(
+                    &init, t, NULL, agentx_parse, NULL, NULL,
+                    agentx_realloc_build, agentx_check_packet, NULL))) {
+      snmp_log(LOG_ERR, "Failed to create session\n");
+        change_state(&Exit);
+    } else {
+        sessp = sess;
+        change_state(&Opening);
+    }
+}
+
+const struct tState_s Connecting = {
+    ConnectingEntry,
+    NULL,
+    NULL,
+    NULL,
+    StateDisconnect,
+    NULL,
+    "Connnecting",
+    0
+};
+
+static netsnmp_pdu*
+pdu_create_opt_context(int command, const char* context, size_t len)
+{
+    netsnmp_pdu* res = snmp_pdu_create(command);
+    if (res)
+        if (context) {
+            if (snmp_clone_mem((void**)&res->contextName, context, len)) {
+                snmp_free_pdu(res);
+                res = NULL;
+            } else
+                res->contextNameLen = len;
+        }
+    return res;
+}
+
+static void
+OpeningEntry(UNUSED tState self)
+{
+    netsnmp_pdu* act =
+        pdu_create_opt_context(AGENTX_MSG_OPEN, context, contextLen);
+    if(act) {
+        act->sessid = 0;
+        act->transid = 0;
+        act->reqid = ++packetid;
+        act->time = 0;
+        snmp_pdu_add_variable(act, NULL, 0, ASN_OCTET_STR, NULL, 0);
+        if(snmp_sess_send(sessp, act) == 0)
+            snmp_free_pdu(act);
+    }
+}
+
+static void
+OpeningRes(UNUSED tState self, netsnmp_pdu *act)
+{
+    if(act->errstat == AGENTX_ERR_NOERROR) {
+        session = act->sessid;
+        change_state(&Notifying);
+    } else {
+        snmp_log(LOG_ERR, "Failed to open session");
+        change_state(&Exit);
+    }
+}
+
+const struct tState_s Opening = {
+    OpeningEntry,
+    NULL,
+    OpeningRes,
+    &Disconnecting,
+    StateDisconnect,
+    StateClose,
+    "Opening",
+    0
+};
+
+static void
+NotifyingEntry(UNUSED tState self)
+{
+    netsnmp_pdu* act = snmp_clone_pdu(pdu);
+    if(act) {
+        act->sessid = session;
+        act->transid = 0;
+        act->reqid = ++packetid;
+        if(snmp_sess_send(sessp, act) == 0)
+            snmp_free_pdu(act);
+    }
+}
+
+static void
+NotifyingRes(UNUSED tState self, netsnmp_pdu *act)
+{
+    if(act->errstat == AGENTX_ERR_NOERROR)
+        result = 0;
+    else
+        snmp_log(LOG_ERR, "Failed to send notification");
+    /** \todo: Retry handling --- ClosingReconnect??? */
+    change_state(&Closing);
+}
+
+const struct tState_s Notifying = {
+    NotifyingEntry,
+    NULL,
+    NotifyingRes,
+    NULL,            /** \todo: Retry handling? */
+    StateDisconnect, /** \todo: Retry handling? */
+    StateClose,
+    "Notifying",
+    1
+};
+
+static void
+ClosingEntry(UNUSED tState self)
+{
+    /* CLOSE pdu->errstat */
+    netsnmp_pdu* act =
+        pdu_create_opt_context(AGENTX_MSG_CLOSE, context, contextLen);
+    if(act) {
+        act->sessid = session;
+        act->transid = 0;
+        act->reqid = ++packetid;
+        act->errstat = AGENTX_CLOSE_SHUTDOWN;
+        if(snmp_sess_send(sessp, act) == 0)
+            snmp_free_pdu(act);
+    }
+}
+
+static void
+ClosingRes(UNUSED tState self, netsnmp_pdu *act)
+{
+    if(act->errstat != AGENTX_ERR_NOERROR) {
+        snmp_log(LOG_ERR, "AgentX error status of %ld\n", act->errstat);
+    }
+    change_state(&Disconnecting);
+}
+
+static void
+ClosingDisconnect(UNUSED tState self)
+{
+    change_state(&Disconnecting);
+}
+
+static void
+ClosingClose(UNUSED tState self, UNUSED netsnmp_pdu *act)
+{
+    change_state(&Disconnecting);
+}
+
+const struct tState_s Closing = {
+    ClosingEntry,
+    NULL,
+    ClosingRes,
+    &Disconnecting,
+    ClosingDisconnect,
+    ClosingClose,
+    "Closing",
+    1
+};
+
+static void
+DisconnectingEntry(UNUSED tState self)
+{
+    snmp_sess_close(sessp);
+    sessp = NULL;
+    change_state(&Exit);
+}
+
+const struct tState_s Disconnecting = {
+    DisconnectingEntry,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    "Disconnecting",
+    0
+};
+
+const struct tState_s Exit = {
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    "Exit",
+    0
+};
+
+int
+main(int argc, char *argv[])
+{
+    int             arg;
+    char           *prognam;
+    char           *cp = NULL;
+
+    const char*     sysUpTime = NULL;
+
+    prognam = strrchr(argv[0], '/');
+    if (prognam)
+        ++prognam;
+    else
+        prognam = argv[0];
+
+    putenv(strdup("POSIXLY_CORRECT=1"));
+
+    netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID,
+			   NETSNMP_DS_LIB_DISABLE_PERSISTENT_LOAD, 1);
+    netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID,
+			   NETSNMP_DS_LIB_DISABLE_PERSISTENT_SAVE, 1);
+
+    while ((arg = getopt(argc, argv, ":Vhm:M:D:dP:L:U:c:x:")) != -1) {
+        switch (arg) {
+        case 'h':
+            usage(prognam);
+            exit(0);
+        case 'm':
+            setenv("MIBS", optarg, 1);
+            break;
+        case 'M':
+            setenv("MIBDIRS", optarg, 1);
+            break;
+        case 'c':
+            context = optarg;
+            contextLen = strlen(context);
+            break;
+        case 'D':
+            debug_register_tokens(optarg);
+            snmp_set_do_debugging(1);
+            break;
+        case 'd':
+            netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID,
+                                   NETSNMP_DS_LIB_DUMP_PACKET, 1);
+            break;
+        case 'U':
+            sysUpTime = optarg;
+            break;
+        case 'V':
+            fprintf(stderr, "NET-SNMP version: %s\n", netsnmp_get_version());
+            exit(0);
+            break;
+#ifndef DISABLE_MIB_LOADING
+        case 'P':
+            cp = snmp_mib_toggle_options(optarg);
+            if (cp != NULL) {
+                fprintf(stderr, "Unknown parser option to -P: %c.\n", *cp);
+                usage(prognam);
+                exit(1);
+            }
+            break;
+#endif /* DISABLE_MIB_LOADING */
+        case 'L':
+            if (snmp_log_options(optarg, argc, argv) < 0) {
+                exit(1);
+            }
+            break;
+        case 'x':
+            if (optarg != NULL) {
+                netsnmp_ds_set_string(NETSNMP_DS_APPLICATION_ID,
+                                      NETSNMP_DS_AGENT_X_SOCKET, optarg);
+            } else
+                usage(argv[0]);
+            break;
+
+        case ':':
+            fprintf(stderr, "Option -%c requires an operand\n", optopt);
+            usage(prognam);
+            exit(1);
+            break;
+        case '?':
+            fprintf(stderr, "Unrecognized option: -%c\n", optopt);
+            usage(prognam);
+            exit(1);
+            break;
+        }
+    }
+
+    arg = optind;
+
+    /* initialize tcpip, if necessary */
+    SOCK_STARTUP;
+
+    init_snmp("snmpapp");
+    agentx_config_init();
+
+    /* NOTIFY varlist */
+    pdu = pdu_create_opt_context(AGENTX_MSG_NOTIFY, context, contextLen);
+
+    if (sysUpTime)
+        snmp_add_var(pdu, sysuptime_oid, sysuptime_oid_len, 't', sysUpTime);
+
+    if (arg == argc) {
+        fprintf(stderr, "Missing trap-oid parameter\n");
+        usage(prognam);
+        SOCK_CLEANUP;
+        exit(1);
+    }
+
+    if (snmp_add_var(pdu, snmptrap_oid, snmptrap_oid_len, 'o', argv[arg])) {
+        snmp_perror(argv[arg]);
+        SOCK_CLEANUP;
+        exit(1);
+    }
+    ++arg;
+
+    while (arg < argc) {
+        oid    name[MAX_OID_LEN];
+        size_t name_length = MAX_OID_LEN;
+        arg += 3;
+        if (arg > argc) {
+            fprintf(stderr, "%s: Missing type/value for variable\n",
+                    argv[arg - 3]);
+            SOCK_CLEANUP;
+            exit(1);
+        }
+        if (!snmp_parse_oid(argv[arg - 3], name, &name_length)) {
+            snmp_perror(argv[arg - 3]);
+            SOCK_CLEANUP;
+            exit(1);
+        }
+        if (snmp_add_var(pdu, name, name_length, argv[arg - 2][0],
+                         argv[arg - 1]) != 0) {
+            snmp_perror(argv[arg - 3]);
+            SOCK_CLEANUP;
+            exit(1);
+        }
+    }
+
+    packetid = 0;
+
+    state = &Connecting;
+    next_state = NULL;
+    if(state->entry) state->entry(state);
+
+    /* main loop here... */
+    for(;;) {
+        int block = 1;
+        int numfds = 0;
+        int count;
+        fd_set fdset;
+        struct timeval timeout;
+
+        while(next_state) {
+            if(state->exit) state->exit(state);
+            DEBUGMSGTL(("process", "State transition: %s -> %s\n",
+                        state->name, next_state->name));
+            state = next_state;
+            next_state = NULL;
+            if(state->entry) state->entry(state);
+        }
+
+        if(state == &Exit)
+            break;
+
+        FD_ZERO(&fdset);
+        snmp_sess_select_info(sessp, &numfds, &fdset, &timeout, &block);
+        count = select(numfds, &fdset, NULL, NULL, !block ? &timeout : NULL);
+        if (count > 0)
+            snmp_sess_read(sessp, &fdset);
+        else if (count == 0)
+            snmp_sess_timeout(sessp);
+        else if (errno != EINTR) {
+            snmp_log(LOG_ERR, "select error [%s]\n", strerror(errno));
+            change_state(&Exit);
+        }
+    }
+
+    /* at shutdown time */
+    snmp_free_pdu(pdu);
+    pdu = NULL;
+
+    snmp_shutdown("snmpapp");
+
+    SOCK_CLEANUP;
+    exit(result);
+}
diff --git a/apps/encode_keychange.c b/apps/encode_keychange.c
index 9441723..5bf8e4c 100644
--- a/apps/encode_keychange.c
+++ b/apps/encode_keychange.c
@@ -38,10 +38,6 @@
 #include <netinet/in.h>
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #include <net-snmp/net-snmp-includes.h>
 
 #include <stdlib.h>
@@ -394,22 +390,22 @@
 
     usage_synopsis(ofp);
 
-    fprintf(ofp, "\n\
-    Only -t is mandatory.  The transform is used to convert P=>Ku, convert\n\
-    Ku=>Kul, and to hash the old Kul with the random bits.\n\
-\n\
-    Passphrase will be taken from the first successful source as follows:\n\
+    fprintf(ofp, "\n%s\
 	a) Commandline options,\n\
 	b) The file \"%s/%s\",\n\
-	c) stdin  -or-  User input from the terminal.\n\
+	c) stdin  -or-  User input from the terminal.\n\n%s\
+		" NL,
+   "Only -t is mandatory.  The transform is used to convert P=>Ku, convert\n\
+    Ku=>Kul, and to hash the old Kul with the random bits.\n\
 \n\
-    -f will require reading from the stdin/terminal, ignoring a) and b).\n\
+    Passphrase will be taken from the first successful source as follows:\n",
+    (s = getenv("HOME")) ? s : "$HOME", local_passphrase_filename,
+   "-f will require reading from the stdin/terminal, ignoring a) and b).\n\
     -P will prevent prompts for passphrases to stdout from being printed.\n\
 \n\
     <engineID> is interpreted as a hex string when preceeded by \"0x\",\n\
     otherwise it is created to contain \"text\".  If nothing is given,\n\
-    <engineID> is constructed from the first IP address for the local host.\n\
-		" NL, (s = getenv("HOME")) ? s : "$HOME", local_passphrase_filename);
+    <engineID> is constructed from the first IP address for the local host.\n");
 
 
     /*
@@ -744,12 +740,16 @@
         ti = snmp_ttyecho(0, 0);
     }
 
-    fgets(buffer, sizeof(buffer), stdin);
+    bufp = fgets(buffer, sizeof(buffer), stdin);
 
     if (!bvisible) {
         ti = snmp_ttyecho(0, ti);
         fputs("\n", ofp);
     }
+    if (!bufp) {
+        fprintf(stderr, "Aborted...\n");
+        exit(1);
+    }
 
 
     /*
diff --git a/apps/snmpbulkget.c b/apps/snmpbulkget.c
index bc9687c..2e9ee34 100644
--- a/apps/snmpbulkget.c
+++ b/apps/snmpbulkget.c
@@ -42,11 +42,7 @@
 #include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -60,9 +56,6 @@
 #endif
 #include <stdio.h>
 #include <ctype.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -120,7 +113,7 @@
                     exit(1);
                 } else {
                     optarg = endptr;
-                    if (isspace(*optarg)) {
+                    if (isspace((unsigned char)(*optarg))) {
                         return;
                     }
                 }
@@ -151,9 +144,11 @@
      * get the common command line arguments 
      */
     switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) {
-    case -2:
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
         exit(0);
-    case -1:
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
         usage();
         exit(1);
     default:
diff --git a/apps/snmpbulkwalk.c b/apps/snmpbulkwalk.c
index b46af58..379d2ae 100644
--- a/apps/snmpbulkwalk.c
+++ b/apps/snmpbulkwalk.c
@@ -42,11 +42,7 @@
 #include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -60,9 +56,6 @@
 #endif
 #include <stdio.h>
 #include <ctype.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -157,7 +150,7 @@
                     exit(1);
                 } else {
                     optarg = endptr;
-                    if (isspace(*optarg)) {
+                    if (isspace((unsigned char)(*optarg))) {
                         return;
                     }
                 }
@@ -209,9 +202,11 @@
      * get the common command line arguments 
      */
     switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) {
-    case -2:
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
         exit(0);
-    case -1:
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
         usage();
         exit(1);
     default:
diff --git a/apps/snmpdelta.c b/apps/snmpdelta.c
index 7388ec7..710fc77 100644
--- a/apps/snmpdelta.c
+++ b/apps/snmpdelta.c
@@ -46,11 +46,7 @@
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -62,9 +58,6 @@
 #if HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -256,7 +249,7 @@
 
     for (cp = buf; *cp; cp++);
     while (cp >= buf) {
-        if (isalpha(*cp))
+        if (isalpha((unsigned char)(*cp)))
             break;
         cp--;
     }
@@ -296,7 +289,7 @@
             continue;
         blank = TRUE;
         for (cp = buf; *cp; cp++)
-            if (!isspace(*cp)) {
+            if (!isspace((unsigned char)(*cp))) {
                 blank = FALSE;
                 break;
             }
@@ -408,9 +401,11 @@
     int             exit_code = 0;
 
     switch (arg = snmp_parse_args(argc, argv, &session, "C:", &optProc)) {
-    case -2:
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
         exit(0);
-    case -1:
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
         usage();
         exit(1);
     default:
diff --git a/apps/snmpdf.c b/apps/snmpdf.c
index a0e9b9e..2b438f9 100644
--- a/apps/snmpdf.c
+++ b/apps/snmpdf.c
@@ -1,5 +1,5 @@
 /*
- * snmpdf.c - send snmp GET requests to a network entity.
+ * snmpdf.c - display disk space usage on a network entity via SNMP.
  *
  */
 
@@ -54,11 +54,7 @@
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -70,9 +66,6 @@
 #if HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -236,9 +229,11 @@
      * get the common command line arguments 
      */
     switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) {
-    case -2:
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
         exit(0);
-    case -1:
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
         usage();
         exit(1);
     default:
diff --git a/apps/snmpget.c b/apps/snmpget.c
index 33d5d71..701f536 100644
--- a/apps/snmpget.c
+++ b/apps/snmpget.c
@@ -43,11 +43,7 @@
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -59,9 +55,6 @@
 #if HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -131,9 +124,11 @@
      * get the common command line arguments 
      */
     switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) {
-    case -2:
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
         exit(0);
-    case -1:
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
         usage();
         exit(1);
     default:
diff --git a/apps/snmpgetnext.c b/apps/snmpgetnext.c
index 5f91def..7de13f3 100644
--- a/apps/snmpgetnext.c
+++ b/apps/snmpgetnext.c
@@ -43,11 +43,7 @@
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -59,9 +55,6 @@
 #if HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -127,9 +120,11 @@
      * get the common command line arguments 
      */
     switch (arg = snmp_parse_args(argc, argv, &session, "C:", &optProc)) {
-    case -2:
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
         exit(0);
-    case -1:
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
         usage();
         exit(1);
     default:
diff --git a/apps/snmpnetstat/Makefile.depend b/apps/snmpnetstat/Makefile.depend
index 2c03bff..6181f19 100644
--- a/apps/snmpnetstat/Makefile.depend
+++ b/apps/snmpnetstat/Makefile.depend
@@ -7,12 +7,16 @@
 ./if.lo: ../../include/net-snmp/machine/generic.h
 ./if.lo: ../../include/net-snmp/net-snmp-includes.h 
 ./if.lo: ../../include/net-snmp/definitions.h ../../include/net-snmp/types.h
-./if.lo:  ../../include/net-snmp/library/types.h
+./if.lo:  ../../include/net-snmp/library/oid.h
+./if.lo: ../../include/net-snmp/library/types.h
 ./if.lo: ../../include/net-snmp/library/snmp_api.h
 ./if.lo: ../../include/net-snmp/varbind_api.h
 ./if.lo: ../../include/net-snmp/library/snmp_client.h
 ./if.lo: ../../include/net-snmp/pdu_api.h
 ./if.lo: ../../include/net-snmp/library/asn1.h
+./if.lo: ../../include/net-snmp/output_api.h
+./if.lo: ../../include/net-snmp/library/snmp_debug.h
+./if.lo: ../../include/net-snmp/library/snmp_logging.h 
 ./if.lo: ../../include/net-snmp/session_api.h
 ./if.lo: ../../include/net-snmp/library/callback.h
 ./if.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -20,8 +24,12 @@
 ./if.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./if.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./if.lo:  ../../include/net-snmp/library/snmpUDPDomain.h
+./if.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./if.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./if.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./if.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./if.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./if.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./if.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./if.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./if.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -43,7 +51,6 @@
 ./if.lo: ../../include/net-snmp/library/check_varbind.h
 ./if.lo: ../../include/net-snmp/library/container.h
 ./if.lo: ../../include/net-snmp/library/factory.h
-./if.lo: ../../include/net-snmp/library/snmp_logging.h 
 ./if.lo: ../../include/net-snmp/library/container_binary_array.h
 ./if.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./if.lo: ../../include/net-snmp/library/container_iterator.h
@@ -52,11 +59,10 @@
 ./if.lo: ../../include/net-snmp/version.h ../../include/net-snmp/config_api.h
 ./if.lo: ../../include/net-snmp/library/read_config.h
 ./if.lo: ../../include/net-snmp/library/default_store.h
+./if.lo: ../../include/net-snmp/net-snmp-config.h
 ./if.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./if.lo: ../../include/net-snmp/library/snmp_enum.h
 ./if.lo: ../../include/net-snmp/library/vacm.h
-./if.lo: ../../include/net-snmp/output_api.h
-./if.lo: ../../include/net-snmp/library/snmp_debug.h
 ./if.lo: ../../include/net-snmp/snmpv3_api.h
 ./if.lo: ../../include/net-snmp/library/snmpv3.h
 ./if.lo: ../../include/net-snmp/library/transform_oids.h
@@ -65,22 +71,23 @@
 ./if.lo: ../../include/net-snmp/library/lcd_time.h
 ./if.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./if.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./if.lo: ../../include/net-snmp/library/snmptsm.h
 ./if.lo: ../../include/net-snmp/library/snmpusm.h 
 ./if.lo:  main.h netstat.h
 ./inet6.lo: ../../include/net-snmp/net-snmp-config.h
-./inet6.lo: ../../include/net-snmp/system/linux.h
-./inet6.lo: ../../include/net-snmp/system/sysv.h
-./inet6.lo: ../../include/net-snmp/system/generic.h
-./inet6.lo: ../../include/net-snmp/machine/generic.h 
 ./inet6.lo: ../../include/net-snmp/net-snmp-includes.h 
 ./inet6.lo: ../../include/net-snmp/definitions.h
 ./inet6.lo: ../../include/net-snmp/types.h 
+./inet6.lo: ../../include/net-snmp/library/oid.h
 ./inet6.lo: ../../include/net-snmp/library/types.h
 ./inet6.lo: ../../include/net-snmp/library/snmp_api.h
 ./inet6.lo: ../../include/net-snmp/varbind_api.h
 ./inet6.lo: ../../include/net-snmp/library/snmp_client.h
 ./inet6.lo: ../../include/net-snmp/pdu_api.h
 ./inet6.lo: ../../include/net-snmp/library/asn1.h
+./inet6.lo: ../../include/net-snmp/output_api.h
+./inet6.lo: ../../include/net-snmp/library/snmp_debug.h
+./inet6.lo: ../../include/net-snmp/library/snmp_logging.h
 ./inet6.lo: ../../include/net-snmp/session_api.h
 ./inet6.lo: ../../include/net-snmp/library/callback.h
 ./inet6.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -88,8 +95,12 @@
 ./inet6.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./inet6.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./inet6.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./inet6.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./inet6.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./inet6.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./inet6.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./inet6.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./inet6.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./inet6.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./inet6.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./inet6.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -111,7 +122,6 @@
 ./inet6.lo: ../../include/net-snmp/library/check_varbind.h
 ./inet6.lo: ../../include/net-snmp/library/container.h
 ./inet6.lo: ../../include/net-snmp/library/factory.h
-./inet6.lo: ../../include/net-snmp/library/snmp_logging.h
 ./inet6.lo: ../../include/net-snmp/library/container_binary_array.h
 ./inet6.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./inet6.lo: ../../include/net-snmp/library/container_iterator.h
@@ -124,8 +134,6 @@
 ./inet6.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./inet6.lo: ../../include/net-snmp/library/snmp_enum.h
 ./inet6.lo: ../../include/net-snmp/library/vacm.h
-./inet6.lo: ../../include/net-snmp/output_api.h
-./inet6.lo: ../../include/net-snmp/library/snmp_debug.h
 ./inet6.lo: ../../include/net-snmp/snmpv3_api.h
 ./inet6.lo: ../../include/net-snmp/library/snmpv3.h
 ./inet6.lo: ../../include/net-snmp/library/transform_oids.h
@@ -134,21 +142,22 @@
 ./inet6.lo: ../../include/net-snmp/library/lcd_time.h
 ./inet6.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./inet6.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./inet6.lo: ../../include/net-snmp/library/snmptsm.h
 ./inet6.lo: ../../include/net-snmp/library/snmpusm.h main.h netstat.h
 ./inet.lo: ../../include/net-snmp/net-snmp-config.h
-./inet.lo: ../../include/net-snmp/system/linux.h
-./inet.lo: ../../include/net-snmp/system/sysv.h
-./inet.lo: ../../include/net-snmp/system/generic.h
-./inet.lo: ../../include/net-snmp/machine/generic.h 
 ./inet.lo: ../../include/net-snmp/net-snmp-includes.h 
 ./inet.lo: ../../include/net-snmp/definitions.h
 ./inet.lo: ../../include/net-snmp/types.h 
+./inet.lo: ../../include/net-snmp/library/oid.h
 ./inet.lo: ../../include/net-snmp/library/types.h
 ./inet.lo: ../../include/net-snmp/library/snmp_api.h
 ./inet.lo: ../../include/net-snmp/varbind_api.h
 ./inet.lo: ../../include/net-snmp/library/snmp_client.h
 ./inet.lo: ../../include/net-snmp/pdu_api.h
 ./inet.lo: ../../include/net-snmp/library/asn1.h
+./inet.lo: ../../include/net-snmp/output_api.h
+./inet.lo: ../../include/net-snmp/library/snmp_debug.h
+./inet.lo: ../../include/net-snmp/library/snmp_logging.h
 ./inet.lo: ../../include/net-snmp/session_api.h
 ./inet.lo: ../../include/net-snmp/library/callback.h
 ./inet.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -156,8 +165,12 @@
 ./inet.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./inet.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./inet.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./inet.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./inet.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./inet.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./inet.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./inet.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./inet.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./inet.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./inet.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./inet.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -179,7 +192,6 @@
 ./inet.lo: ../../include/net-snmp/library/check_varbind.h
 ./inet.lo: ../../include/net-snmp/library/container.h
 ./inet.lo: ../../include/net-snmp/library/factory.h
-./inet.lo: ../../include/net-snmp/library/snmp_logging.h
 ./inet.lo: ../../include/net-snmp/library/container_binary_array.h
 ./inet.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./inet.lo: ../../include/net-snmp/library/container_iterator.h
@@ -192,8 +204,6 @@
 ./inet.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./inet.lo: ../../include/net-snmp/library/snmp_enum.h
 ./inet.lo: ../../include/net-snmp/library/vacm.h
-./inet.lo: ../../include/net-snmp/output_api.h
-./inet.lo: ../../include/net-snmp/library/snmp_debug.h
 ./inet.lo: ../../include/net-snmp/snmpv3_api.h
 ./inet.lo: ../../include/net-snmp/library/snmpv3.h
 ./inet.lo: ../../include/net-snmp/library/transform_oids.h
@@ -202,21 +212,22 @@
 ./inet.lo: ../../include/net-snmp/library/lcd_time.h
 ./inet.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./inet.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./inet.lo: ../../include/net-snmp/library/snmptsm.h
 ./inet.lo: ../../include/net-snmp/library/snmpusm.h main.h netstat.h
 ./main.lo: ../../include/net-snmp/net-snmp-config.h
-./main.lo: ../../include/net-snmp/system/linux.h
-./main.lo: ../../include/net-snmp/system/sysv.h
-./main.lo: ../../include/net-snmp/system/generic.h
-./main.lo: ../../include/net-snmp/machine/generic.h
 ./main.lo: ../../include/net-snmp/net-snmp-includes.h 
 ./main.lo: ../../include/net-snmp/definitions.h
 ./main.lo: ../../include/net-snmp/types.h 
+./main.lo: ../../include/net-snmp/library/oid.h
 ./main.lo: ../../include/net-snmp/library/types.h
 ./main.lo: ../../include/net-snmp/library/snmp_api.h
 ./main.lo: ../../include/net-snmp/varbind_api.h
 ./main.lo: ../../include/net-snmp/library/snmp_client.h
 ./main.lo: ../../include/net-snmp/pdu_api.h
 ./main.lo: ../../include/net-snmp/library/asn1.h
+./main.lo: ../../include/net-snmp/output_api.h
+./main.lo: ../../include/net-snmp/library/snmp_debug.h
+./main.lo: ../../include/net-snmp/library/snmp_logging.h
 ./main.lo: ../../include/net-snmp/session_api.h
 ./main.lo: ../../include/net-snmp/library/callback.h
 ./main.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -224,8 +235,12 @@
 ./main.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./main.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./main.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./main.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./main.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./main.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./main.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./main.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./main.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./main.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./main.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./main.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -247,7 +262,6 @@
 ./main.lo: ../../include/net-snmp/library/check_varbind.h
 ./main.lo: ../../include/net-snmp/library/container.h
 ./main.lo: ../../include/net-snmp/library/factory.h
-./main.lo: ../../include/net-snmp/library/snmp_logging.h
 ./main.lo: ../../include/net-snmp/library/container_binary_array.h
 ./main.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./main.lo: ../../include/net-snmp/library/container_iterator.h
@@ -260,8 +274,6 @@
 ./main.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./main.lo: ../../include/net-snmp/library/snmp_enum.h
 ./main.lo: ../../include/net-snmp/library/vacm.h
-./main.lo: ../../include/net-snmp/output_api.h
-./main.lo: ../../include/net-snmp/library/snmp_debug.h
 ./main.lo: ../../include/net-snmp/snmpv3_api.h
 ./main.lo: ../../include/net-snmp/library/snmpv3.h
 ./main.lo: ../../include/net-snmp/library/transform_oids.h
@@ -270,22 +282,22 @@
 ./main.lo: ../../include/net-snmp/library/lcd_time.h
 ./main.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./main.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
-./main.lo: ../../include/net-snmp/library/snmpusm.h 
-./main.lo:  main.h netstat.h
+./main.lo: ../../include/net-snmp/library/snmptsm.h
+./main.lo: ../../include/net-snmp/library/snmpusm.h main.h netstat.h
 ./route.lo: ../../include/net-snmp/net-snmp-config.h
-./route.lo: ../../include/net-snmp/system/linux.h
-./route.lo: ../../include/net-snmp/system/sysv.h
-./route.lo: ../../include/net-snmp/system/generic.h
-./route.lo: ../../include/net-snmp/machine/generic.h 
 ./route.lo: ../../include/net-snmp/net-snmp-includes.h 
-./route.lo:  ../../include/net-snmp/definitions.h
+./route.lo: ../../include/net-snmp/definitions.h
 ./route.lo: ../../include/net-snmp/types.h 
+./route.lo: ../../include/net-snmp/library/oid.h
 ./route.lo: ../../include/net-snmp/library/types.h
 ./route.lo: ../../include/net-snmp/library/snmp_api.h
 ./route.lo: ../../include/net-snmp/varbind_api.h
 ./route.lo: ../../include/net-snmp/library/snmp_client.h
 ./route.lo: ../../include/net-snmp/pdu_api.h
 ./route.lo: ../../include/net-snmp/library/asn1.h
+./route.lo: ../../include/net-snmp/output_api.h
+./route.lo: ../../include/net-snmp/library/snmp_debug.h
+./route.lo: ../../include/net-snmp/library/snmp_logging.h
 ./route.lo: ../../include/net-snmp/session_api.h
 ./route.lo: ../../include/net-snmp/library/callback.h
 ./route.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -293,8 +305,12 @@
 ./route.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./route.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./route.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./route.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./route.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./route.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./route.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./route.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./route.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./route.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./route.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./route.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -316,7 +332,6 @@
 ./route.lo: ../../include/net-snmp/library/check_varbind.h
 ./route.lo: ../../include/net-snmp/library/container.h
 ./route.lo: ../../include/net-snmp/library/factory.h
-./route.lo: ../../include/net-snmp/library/snmp_logging.h
 ./route.lo: ../../include/net-snmp/library/container_binary_array.h
 ./route.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./route.lo: ../../include/net-snmp/library/container_iterator.h
@@ -329,8 +344,6 @@
 ./route.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./route.lo: ../../include/net-snmp/library/snmp_enum.h
 ./route.lo: ../../include/net-snmp/library/vacm.h
-./route.lo: ../../include/net-snmp/output_api.h
-./route.lo: ../../include/net-snmp/library/snmp_debug.h
 ./route.lo: ../../include/net-snmp/snmpv3_api.h
 ./route.lo: ../../include/net-snmp/library/snmpv3.h
 ./route.lo: ../../include/net-snmp/library/transform_oids.h
@@ -339,22 +352,22 @@
 ./route.lo: ../../include/net-snmp/library/lcd_time.h
 ./route.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./route.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
-./route.lo: ../../include/net-snmp/library/snmpusm.h 
-./route.lo:  main.h netstat.h
+./route.lo: ../../include/net-snmp/library/snmptsm.h
+./route.lo: ../../include/net-snmp/library/snmpusm.h main.h netstat.h
 ./winstub.lo: ../../include/net-snmp/net-snmp-config.h
-./winstub.lo: ../../include/net-snmp/system/linux.h
-./winstub.lo: ../../include/net-snmp/system/sysv.h
-./winstub.lo: ../../include/net-snmp/system/generic.h
-./winstub.lo: ../../include/net-snmp/machine/generic.h
 ./winstub.lo: ../../include/net-snmp/net-snmp-includes.h 
 ./winstub.lo: ../../include/net-snmp/definitions.h
 ./winstub.lo: ../../include/net-snmp/types.h 
+./winstub.lo: ../../include/net-snmp/library/oid.h
 ./winstub.lo: ../../include/net-snmp/library/types.h
 ./winstub.lo: ../../include/net-snmp/library/snmp_api.h
 ./winstub.lo: ../../include/net-snmp/varbind_api.h
 ./winstub.lo: ../../include/net-snmp/library/snmp_client.h
 ./winstub.lo: ../../include/net-snmp/pdu_api.h
 ./winstub.lo: ../../include/net-snmp/library/asn1.h
+./winstub.lo: ../../include/net-snmp/output_api.h
+./winstub.lo: ../../include/net-snmp/library/snmp_debug.h
+./winstub.lo: ../../include/net-snmp/library/snmp_logging.h
 ./winstub.lo: ../../include/net-snmp/session_api.h
 ./winstub.lo: ../../include/net-snmp/library/callback.h
 ./winstub.lo: ../../include/net-snmp/library/snmp_transport.h
@@ -362,8 +375,12 @@
 ./winstub.lo: ../../include/net-snmp/library/snmpCallbackDomain.h
 ./winstub.lo: ../../include/net-snmp/library/snmpUnixDomain.h
 ./winstub.lo: ../../include/net-snmp/library/snmpUDPDomain.h
+./winstub.lo: ../../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./winstub.lo: ../../include/net-snmp/library/snmpIPv4BaseDomain.h
+./winstub.lo: ../../include/net-snmp/library/snmpUDPBaseDomain.h
 ./winstub.lo: ../../include/net-snmp/library/snmpTCPDomain.h
 ./winstub.lo: ../../include/net-snmp/library/snmpUDPIPv6Domain.h
+./winstub.lo: ../../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./winstub.lo: ../../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./winstub.lo: ../../include/net-snmp/library/snmpIPXDomain.h
 ./winstub.lo: ../../include/net-snmp/library/ucd_compat.h
@@ -385,7 +402,6 @@
 ./winstub.lo: ../../include/net-snmp/library/check_varbind.h
 ./winstub.lo: ../../include/net-snmp/library/container.h
 ./winstub.lo: ../../include/net-snmp/library/factory.h
-./winstub.lo: ../../include/net-snmp/library/snmp_logging.h
 ./winstub.lo: ../../include/net-snmp/library/container_binary_array.h
 ./winstub.lo: ../../include/net-snmp/library/container_list_ssll.h
 ./winstub.lo: ../../include/net-snmp/library/container_iterator.h
@@ -398,8 +414,6 @@
 ./winstub.lo: ../../include/net-snmp/library/snmp_parse_args.h
 ./winstub.lo: ../../include/net-snmp/library/snmp_enum.h
 ./winstub.lo: ../../include/net-snmp/library/vacm.h
-./winstub.lo: ../../include/net-snmp/output_api.h
-./winstub.lo: ../../include/net-snmp/library/snmp_debug.h
 ./winstub.lo: ../../include/net-snmp/snmpv3_api.h
 ./winstub.lo: ../../include/net-snmp/library/snmpv3.h
 ./winstub.lo: ../../include/net-snmp/library/transform_oids.h
@@ -408,4 +422,5 @@
 ./winstub.lo: ../../include/net-snmp/library/lcd_time.h
 ./winstub.lo: ../../include/net-snmp/library/snmp_secmod.h
 ./winstub.lo: ../../include/net-snmp/library/snmpv3-security-includes.h
+./winstub.lo: ../../include/net-snmp/library/snmptsm.h
 ./winstub.lo: ../../include/net-snmp/library/snmpusm.h
diff --git a/apps/snmpnetstat/if.c b/apps/snmpnetstat/if.c
index 8c86be4..a92a36c 100644
--- a/apps/snmpnetstat/if.c
+++ b/apps/snmpnetstat/if.c
@@ -73,7 +73,7 @@
         char            ip[128], route[128];
         int             mtu;
         int             drops;
-        int             ifindex;
+        unsigned int    ifindex;
                         /*
                          * Save "expandable" fields as string values
                          *  rather than integer statistics
@@ -132,14 +132,15 @@
      */
     for (vp=addr_if_var, vp2=addr_mask_var;  vp;
          vp=vp->next_variable, vp2=vp2->next_variable) {
-        if ( vp->val.integer && *vp->val.integer == cur_if->ifindex )
+        if ( vp->val.integer && *vp->val.integer == (int)cur_if->ifindex )
             break;
     }
     if (vp2) {
         /*
          * Always want a numeric interface IP address
          */
-        snprintf( cur_if->ip, 128, "%lu.%lu.%lu.%lu",
+        snprintf( cur_if->ip, 128, "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u."
+                  "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u",
                   vp2->name[10],
                   vp2->name[11],
                   vp2->name[12],
@@ -535,7 +536,7 @@
     struct iftot *sum = NULL, *total  = NULL;    /* overall summary    */
     int    line;
     int    first;
-    int    i;
+    size_t i;
 
     var = NULL;
     if ( intrface ) {
diff --git a/apps/snmpnetstat/inet.c b/apps/snmpnetstat/inet.c
index a69fb5b..6f7c1e1 100644
--- a/apps/snmpnetstat/inet.c
+++ b/apps/snmpnetstat/inet.c
@@ -46,8 +46,6 @@
 #include <unistd.h>
 #endif
 #if HAVE_WINSOCK_H
-#include <winsock2.h>
-#include <ws2tcpip.h>
 #include "winstub.h"
 #endif
 #if HAVE_SYS_SOCKET_H
@@ -69,7 +67,7 @@
 #include "netstat.h"
 
 struct stat_table {
-    int             entry;      /* entry number in table */
+    unsigned int  entry;      /* entry number in table */
     /*
      * format string to printf(description, value) 
      * warning: the %d must be before the %s 
@@ -641,7 +639,7 @@
 		snprintf(line, sizeof line, "%s", cp);
 	else {
 		inp->s_addr = ntohl(inp->s_addr);
-#define C(x)	((x) & 0xff)
+#define C(x)	(unsigned)((x) & 0xff)
 		snprintf(line, sizeof line, "%u.%u.%u.%u",
 		    C(inp->s_addr >> 24), C(inp->s_addr >> 16),
 		    C(inp->s_addr >> 8), C(inp->s_addr));
diff --git a/apps/snmpnetstat/inet6.c b/apps/snmpnetstat/inet6.c
index 7b36298..42718f2 100644
--- a/apps/snmpnetstat/inet6.c
+++ b/apps/snmpnetstat/inet6.c
@@ -46,8 +46,6 @@
 #include <unistd.h>
 #endif
 #if HAVE_WINSOCK_H
-#include <winsock2.h>
-#include <ws2tcpip.h>
 #include "winstub.h"
 #endif
 #if HAVE_SYS_SOCKET_H
@@ -73,7 +71,7 @@
 #include "netstat.h"
 
 struct stat_table {
-    int             entry;      /* entry number in table */
+    unsigned int entry;      /* entry number in table */
     /*
      * format string to printf(description, value) 
      * warning: the %d must be before the %s 
@@ -130,7 +128,7 @@
         return;
 
     for (vp = var; vp ; vp=vp->next_variable) {
-        state = *var->val.integer;
+        state = *vp->val.integer;
         if (!aflag && state == MIB_TCPCONNSTATE_LISTEN)
             continue;
 
@@ -146,12 +144,12 @@
         
         /* Extract the local/remote information from the index values */
         for (i=0; i<16; i++)
-            localAddr[i]  = var->name[ 10+i ];
-        localPort    = var->name[ 26 ];
+            localAddr[i]  = vp->name[ 10+i ];
+        localPort    = vp->name[ 26 ];
         for (i=0; i<16; i++)
-            remoteAddr[i] = var->name[ 27+i ];
-        remotePort   = var->name[ 43 ];
-        ifIndex      = var->name[ 44 ];
+            remoteAddr[i] = vp->name[ 27+i ];
+        remotePort   = vp->name[ 43 ];
+        ifIndex      = vp->name[ 44 ];
 
         printf("%-5.5s", name);
         inet6print(localAddr,  localPort,  name, 1);
@@ -198,9 +196,9 @@
          *   the IP address from the varbind value, (which is why
          *   we walked udpLocalAddress rather than udpLocalPort)
          */
-        localPort = var->name[ var->name_length-2 ];
-        ifIndex   = var->name[ var->name_length-1 ];
-        inet6print(var->val.string, localPort, name, 1);
+        localPort = vp->name[ vp->name_length-2 ];
+        ifIndex   = vp->name[ vp->name_length-1 ];
+        inet6print(vp->val.string, localPort, name, 1);
         printf(" %4d\n", ifIndex );
     }
     snmp_free_varbind( var );
@@ -225,20 +223,21 @@
 {
     netsnmp_variable_list *var, *vp;
     struct stat_table     *sp;
-    oid   *stats, stat;
-    int    max_stat = 0;
+    long   *stats;
+    oid stat;
+    unsigned int max_stat = 0;
     int    active   = 0;
 
     var = NULL;
     for (sp=stable; sp->entry; sp++) {
         oid_buf[buf_len-1] = sp->entry;
-        if (sp->entry>max_stat)
+        if (sp->entry > max_stat)
             max_stat = sp->entry;
         snmp_varlist_add_variable( &var, oid_buf, buf_len,
                                    ASN_NULL, NULL,  0);
     }
     oid_buf[buf_len-1] = stable[0].entry;
-    stats = (oid *)calloc(max_stat+1, sizeof(oid));
+    stats = (long *)calloc(max_stat+1, sizeof(long));
     
     /*
      * Walk the specified column(s), and total the individual statistics
@@ -246,12 +245,12 @@
     while (1) {
         if (netsnmp_query_getnext( var, ss ) != SNMP_ERR_NOERROR)
             break;
-        if ( snmp_oid_compare( oid_buf,   buf_len-1,
-                               var->name, buf_len-1) != 0 )
+        if ( snmp_oid_compare( oid_buf,   buf_len,
+                               var->name, buf_len) != 0 )
             break;    /* End of Table */
             
         for ( vp=var; vp; vp=vp->next_variable ) {
-            stat = var->name[ buf_len-1 ];
+            stat = vp->name[ buf_len-1 ];
             stats[stat] += *vp->val.integer;
         }
         active=1;
@@ -415,7 +414,7 @@
 
 	struct servent *sp = NULL;
 	char line[80], *cp;
-	int width;
+	unsigned width;
 	int len = sizeof line;
 
 	width = Aflag ? 12 : 16;
@@ -493,7 +492,7 @@
 		if (IN6_IS_ADDR_LINKLOCAL(in6p) ||
 		    IN6_IS_ADDR_MC_LINKLOCAL(in6p)) {
 			sin6.sin6_scope_id =
-			    ntohs(*(const u_int16_t *)&in6p->s6_addr[2]);
+			    ntohs(*(const uint16_t *)&in6p->s6_addr[2]);
 			sin6.sin6_addr.s6_addr[2] = 0;
 			sin6.sin6_addr.s6_addr[3] = 0;
 		}
diff --git a/apps/snmpnetstat/main.c b/apps/snmpnetstat/main.c
index ac2b04f..fa199ed 100644
--- a/apps/snmpnetstat/main.c
+++ b/apps/snmpnetstat/main.c
@@ -57,6 +57,10 @@
 #include "main.h"
 #include "netstat.h"
 
+#if HAVE_WINSOCK_H
+#include "winstub.h"
+#endif
+
 int	Aflag;		/* show addresses of protocol control block */
 int	aflag;		/* show all sockets (including servers) */
 int	bflag;		/* show bytes instead of packets */
@@ -316,11 +320,13 @@
             progname = argv[0];
 
 	switch (snmp_parse_args( argc, argv, &session, "C:iRs", optProc)) {
-	case -2:
+	case NETSNMP_PARSE_ARGS_ERROR:
+	    exit(1);
+	case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
 	    exit(0);
-	case -1:
+	case NETSNMP_PARSE_ARGS_ERROR_USAGE:
 	    usage();
-	    exit(0);
+	    exit(1);
 	default:
 	    break;
 	}
@@ -511,7 +517,7 @@
 
 	setprotoent(1);			/* make protocol lookup cheaper */
 	while ((p = getprotoent())) {
-		/* assert: name not same as p->name */
+		/* netsnmp_assert: name not same as p->name */
 		for (alias = p->p_aliases; *alias; alias++)
 			if (strcmp(name, *alias) == 0) {
 				endprotoent();
diff --git a/apps/snmpnetstat/main.h b/apps/snmpnetstat/main.h
index 71e7a65..1272321 100644
--- a/apps/snmpnetstat/main.h
+++ b/apps/snmpnetstat/main.h
@@ -4,10 +4,13 @@
 #endif
 
 extern  netsnmp_session *ss;
+NETSNMP_IMPORT
 int netsnmp_query_get(    netsnmp_variable_list *list,
                           netsnmp_session       *session);
+NETSNMP_IMPORT
 int netsnmp_query_getnext(netsnmp_variable_list *list,
                           netsnmp_session       *session);
+NETSNMP_IMPORT
 int netsnmp_query_walk(   netsnmp_variable_list *list,
                           netsnmp_session       *session);
 
diff --git a/apps/snmpnetstat/winstub.c b/apps/snmpnetstat/winstub.c
index ffd5966..5e2dd64 100644
--- a/apps/snmpnetstat/winstub.c
+++ b/apps/snmpnetstat/winstub.c
@@ -25,9 +25,6 @@
 #if HAVE_STRING_H
 #include <string.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
diff --git a/apps/snmpnetstat/winstub.h b/apps/snmpnetstat/winstub.h
index ea40450..8fc51dd 100644
--- a/apps/snmpnetstat/winstub.h
+++ b/apps/snmpnetstat/winstub.h
@@ -2,6 +2,8 @@
 #ifndef _WINSTUB_H_
 #define _WINSTUB_H_
 
+#include <net-snmp/types.h>
+
 #if (defined(WIN32) || defined(cygwin))
 
 /*
diff --git a/apps/snmpset.c b/apps/snmpset.c
index faeda95..1b29a6c 100644
--- a/apps/snmpset.c
+++ b/apps/snmpset.c
@@ -43,11 +43,7 @@
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -59,9 +55,6 @@
 #if HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -142,9 +135,11 @@
      * get the common command line arguments 
      */
     switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) {
-    case -2:
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
         exit(0);
-    case -1:
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
         usage();
         exit(1);
     default:
diff --git a/apps/snmpstatus.c b/apps/snmpstatus.c
index a061813..166ff3d 100644
--- a/apps/snmpstatus.c
+++ b/apps/snmpstatus.c
@@ -1,5 +1,6 @@
 /*
- * snmpstatus.c - send snmp GET requests to a network entity.
+ * snmpstatus.c - retrieves a fixed set of management information from
+ * a network entity.
  *
  */
 /***********************************************************************
@@ -43,11 +44,7 @@
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -59,9 +56,6 @@
 #if HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -159,9 +153,11 @@
      * get the common command line arguments 
      */
     switch (snmp_parse_args(argc, argv, &session, "C:", &optProc)) {
-    case -2:
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
         exit(0);
-    case -1:
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
         usage();
         exit(1);
     default:
diff --git a/apps/snmptable.c b/apps/snmptable.c
index 1422ece..c9c7d26 100644
--- a/apps/snmptable.c
+++ b/apps/snmptable.c
@@ -43,11 +43,7 @@
 # include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -60,9 +56,6 @@
 #include <sys/select.h>
 #endif
 #include <stdio.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -208,6 +201,7 @@
             default:
                 fprintf(stderr, "Bad option after -C: %c\n", optarg[-1]);
                 usage();
+                exit(1);
             }
         }
         break;
@@ -265,9 +259,11 @@
      * get the common command line arguments 
      */
     switch (snmp_parse_args(argc, argv, &session, "C:", optProc)) {
-    case -2:
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
         exit(0);
-    case -1:
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
         usage();
         exit(1);
     default:
@@ -670,7 +666,7 @@
                     col++;
                     name[rootlen] = column[col].subid;
                     if ((vars->name_length < name_length) ||
-                        ((int) vars->name[rootlen] != column[col].subid) ||
+                        (vars->name[rootlen] != column[col].subid) ||
                         memcmp(name, vars->name,
                                name_length * sizeof(oid)) != 0
                         || vars->type == SNMP_ENDOFMIBVIEW) {
diff --git a/apps/snmptest.c b/apps/snmptest.c
index 28f9254..519e38e 100644
--- a/apps/snmptest.c
+++ b/apps/snmptest.c
@@ -45,11 +45,7 @@
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -61,9 +57,6 @@
 #if HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -102,9 +95,11 @@
      * get the common command line arguments 
      */
     switch (snmp_parse_args(argc, argv, &session, NULL, NULL)) {
-    case -2:
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
         exit(0);
-    case -1:
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
         usage();
         exit(1);
     default:
@@ -168,7 +163,11 @@
                     } else {
                         printf("What repeat count? ");
                         fflush(stdout);
-                        fgets(input, sizeof(input), stdin);
+                        if (!fgets(input, sizeof(input), stdin)) {
+                            printf("Quitting,  Goodbye\n");
+                            SOCK_CLEANUP;
+                            exit(0);
+                        }
                         maxRepetitions = atoi(input);
                         pdu->non_repeaters = nonRepeaters;
                         pdu->max_repetitions = maxRepetitions;
@@ -303,7 +302,7 @@
     if (buf[val_len - 1] == '\n')
         buf[--val_len] = 0;
     if (*buf == '$') {
-        switch (toupper(buf[1])) {
+        switch (toupper((unsigned char)(buf[1]))) {
         case 'G':
             command = SNMP_MSG_GET;
             printf("Request type is Get Request\n");
@@ -343,7 +342,7 @@
             }
             break;
         case 'Q':
-            switch ((toupper(buf[2]))) {
+            switch ((toupper((unsigned char)(buf[2])))) {
             case '\n':
             case 0:
                 printf("Quitting,  Goodbye\n");
@@ -380,7 +379,11 @@
         || command == SNMP_MSG_TRAP2) {
         printf("Type [i|u|s|x|d|n|o|t|a]: ");
         fflush(stdout);
-        fgets(buf, sizeof(buf), stdin);
+        if (!fgets(buf, sizeof(buf), stdin)) {
+            printf("Quitting,  Goodbye\n");
+            SOCK_CLEANUP;
+            exit(0);
+        }
         ch = *buf;
         switch (ch) {
         case 'i':
@@ -419,7 +422,11 @@
       getValue:
         printf("Value: ");
         fflush(stdout);
-        fgets(buf, sizeof(buf), stdin);
+        if (!fgets(buf, sizeof(buf), stdin)) {
+            printf("Quitting,  Goodbye\n");
+            SOCK_CLEANUP;
+            exit(0);
+        }
         switch (vp->type) {
         case ASN_INTEGER:
             vp->val.integer = (long *) malloc(sizeof(long));
diff --git a/apps/snmptls.c b/apps/snmptls.c
new file mode 100644
index 0000000..809d369
--- /dev/null
+++ b/apps/snmptls.c
@@ -0,0 +1,556 @@
+/*
+ * Note: this file originally auto-generated by mib2c using
+ *  $
+ */
+
+#include <net-snmp/net-snmp-config.h>
+#undef NETSNMP_USE_ASSERT
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+
+#include <ctype.h>
+
+#include <openssl/ssl.h>
+#include <openssl/x509.h>
+#include <net-snmp/library/cert_util.h>
+
+#include "tlstm-mib.h"
+#include "tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable.h"
+#include "tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable.h"
+#include "tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h"
+
+
+
+/*
+#define COL_SNMPTLSTMCERTTOTSN_ID                       1
+#define COL_SNMPTLSTMCERTTOTSN_FINGERPRINT              2
+#define COL_SNMPTLSTMCERTTOTSN_MAPTYPE                  3
+#define COL_SNMPTLSTMCERTTOTSN_DATA                     4
+#define COL_SNMPTLSTMCERTTOTSN_STORAGETYPE              5
+#define COL_SNMPTLSTMCERTTOTSN_ROWSTATUS                6
+*/
+const oid certNum[] = { SNMP_TLS_TM_CERT_COUNT };
+const oid certChg[] = { SNMP_TLS_TM_CERT_CHANGED };
+const oid certTbl[] = { SNMP_TLS_TM_CERT_TABLE };
+
+/*
+#define COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT    1
+#define COLUMN_SNMPTLSTMPARAMSSTORAGETYPE    2
+#define COLUMN_SNMPTLSTMPARAMSROWSTATUS    3
+*/
+
+const oid paramsNum[] = { SNMP_TLS_TM_PARAMS_COUNT };
+const oid paramsChg[] = { SNMP_TLS_TM_PARAMS_CHANGED };
+const oid paramsTbl[] = { SNMP_TLS_TM_PARAMS_TABLE };
+
+const oid addrNum[] = { SNMP_TLS_TM_ADDR_COUNT };
+const oid addrChg[] = { SNMP_TLS_TM_ADDR_CHANGED };
+const oid addrTbl[] = { SNMP_TLS_TM_ADDR_TABLE };
+
+
+const oid tlstmCertSpecified[]     = { SNMP_TLS_TM_BASE, 1, 1, 1 };
+const oid tlstmCertSANRFC822Name[] = { SNMP_TLS_TM_BASE, 1, 1, 2 };
+const oid tlstmCertSANDNSName[]    = { SNMP_TLS_TM_BASE, 1, 1, 3 };
+const oid tlstmCertSANIpAddress[]  = { SNMP_TLS_TM_BASE, 1, 1, 4 };
+const oid tlstmCertSANAny[]        = { SNMP_TLS_TM_BASE, 1, 1, 5 };
+const oid tlstmCertCommonName[]    = { SNMP_TLS_TM_BASE, 1, 1, 6 };
+
+const oid *certMapTypes[TSNM_tlstmCert_MAX + 1] = {
+    0, tlstmCertSpecified, tlstmCertSANRFC822Name, tlstmCertSANDNSName,
+    tlstmCertSANIpAddress, tlstmCertSANAny, tlstmCertCommonName };
+
+/** **************************************************************************
+ *
+ * cert rows
+ *
+ */
+netsnmp_variable_list *
+cert_row_create(uint32_t priority, int hash_type, const char *fp,
+                const oid *map_type, int map_type_len, const u_char *data,
+                int data_len, uint32_t st, int *row_status_index)
+{
+    oid                    name[] = { SNMP_TLS_TM_CERT_TABLE, 1, -1, -1 };
+    int                    name_len = OID_LENGTH(name), col_pos = name_len - 2;
+    int                    rs_index = 4;
+    u_char                 bin_fp[SNMP_MAXBUF_SMALL], *bin_fp_ptr = bin_fp;
+    u_int                  rs;
+    size_t                 bin_fp_len;
+    netsnmp_variable_list *vl = NULL, *vb;
+
+    netsnmp_require_ptr_LRV( fp, NULL );
+
+    DEBUGMSGT(("cert:create", "creating varbinds for pri %d, fp %s\n", priority,
+               fp));
+
+    bin_fp_len = sizeof(bin_fp);
+    netsnmp_tls_fingerprint_build(hash_type, fp, &bin_fp_ptr, &bin_fp_len, 0);
+
+    name[name_len-1] = priority;
+    name[col_pos] = COL_SNMPTLSTMCERTTOTSN_FINGERPRINT;
+    vl = snmp_varlist_add_variable(&vl, name, name_len, ASN_OCTET_STR,
+                                   &bin_fp, bin_fp_len);
+    netsnmp_require_ptr_LRV(vl, NULL);
+
+    if (map_type_len && map_type) {
+        name[col_pos] = COL_SNMPTLSTMCERTTOTSN_MAPTYPE;
+        vb = snmp_varlist_add_variable(&vl, name, name_len, ASN_OBJECT_ID,
+                                       map_type, map_type_len * sizeof(oid));
+        if (NULL == vb) {
+            snmp_free_varbind(vl);
+            return NULL;
+        }
+    }
+    else
+        --rs_index;
+
+    if (data) {
+        name[col_pos] = COL_SNMPTLSTMCERTTOTSN_DATA;
+        vb = snmp_varlist_add_variable(&vl, name, name_len, ASN_OCTET_STR,
+                                       data, data_len);
+        if (NULL == vb) {
+            snmp_free_varbind(vl);
+            return NULL;
+        }
+    }
+    else
+        --rs_index;
+
+    if (st) {
+        name[col_pos] = COL_SNMPTLSTMCERTTOTSN_STORAGETYPE;
+        vb = snmp_varlist_add_variable(&vl, name, name_len, ASN_INTEGER,
+                                       &st, sizeof(st));
+        if (NULL == vb) {
+            snmp_free_varbind(vl);
+            return NULL;
+        }
+    }
+    else
+        --rs_index;
+
+    name[col_pos] = COL_SNMPTLSTMCERTTOTSN_ROWSTATUS;
+    rs = RS_CREATEANDGO;
+    vb = snmp_varlist_add_variable(&vl, name, name_len, ASN_INTEGER,
+                                   &rs, sizeof(rs));
+    if (NULL == vb) {
+        snmp_free_varbind(vl);
+        return NULL;
+    }
+
+    if (row_status_index)
+        *row_status_index = rs_index;
+
+    return vl;
+}
+
+/** **************************************************************************
+ *
+ * param rows
+ *
+ */
+netsnmp_variable_list *
+params_row_create(const char *param_name, int hash_type, const char *fp,
+                  uint32_t st, int *row_status_index)
+{
+    oid                    name[MAX_OID_LEN];
+    int                    name_len, col_pos, rs_index = 2;
+    u_char                 bin_fp[SNMP_MAXBUF_SMALL], *bin_fp_ptr = bin_fp;
+    u_int                  rs;
+    size_t                 bin_fp_len;
+    netsnmp_variable_list *vl = NULL, *vb;
+
+    netsnmp_require_ptr_LRV( param_name, NULL );
+    netsnmp_require_ptr_LRV( fp, NULL );
+
+    DEBUGMSGT(("params:create", "creating varbinds for %s params, fp %s\n",
+               param_name, fp));
+
+    /*
+     * build base name
+     */
+    name_len = OID_LENGTH(paramsTbl);
+    memcpy(name, paramsTbl, sizeof(paramsTbl));
+    name[name_len++] = 1; /* entry */
+    col_pos = name_len++; /* column */
+    while (*param_name)
+        name[name_len++] = *param_name++;
+
+    bin_fp_len = sizeof(bin_fp);
+    netsnmp_tls_fingerprint_build(hash_type, fp, &bin_fp_ptr, &bin_fp_len, 0);
+
+    name[col_pos] = COLUMN_SNMPTLSTMPARAMSCLIENTFINGERPRINT;
+    vl = snmp_varlist_add_variable(&vl, name, name_len, ASN_OCTET_STR,
+                                   &bin_fp, bin_fp_len);
+    netsnmp_require_ptr_LRV(vl, NULL);
+
+    if (st) {
+        name[col_pos] = COLUMN_SNMPTLSTMPARAMSSTORAGETYPE;
+        vb = snmp_varlist_add_variable(&vl, name, name_len, ASN_INTEGER,
+                                       &st, sizeof(st));
+        if (NULL == vb) {
+            snmp_free_varbind(vl);
+            return NULL;
+        }
+    }
+    else
+        --rs_index;
+
+    name[col_pos] = COLUMN_SNMPTLSTMPARAMSROWSTATUS;
+    rs = RS_CREATEANDGO;
+    vb = snmp_varlist_add_variable(&vl, name, name_len, ASN_INTEGER,
+                                   &rs, sizeof(rs));
+    if (NULL == vb) {
+        snmp_free_varbind(vl);
+        return NULL;
+    }
+
+    if (row_status_index)
+        *row_status_index = rs_index;
+
+    return vl;
+}
+
+/** **************************************************************************
+ *
+ * addr rows
+ *
+ */
+netsnmp_variable_list *
+addr_row_create(const char *target_name, int hash_type, const char *fp,
+                const char *identity, uint32_t st, int *row_status_index)
+{
+    oid                    name[MAX_OID_LEN];
+    int                    name_len, col_pos, rs_index = 3;
+    u_char                 bin_fp[SNMP_MAXBUF_SMALL], *bin_fp_ptr = bin_fp;
+    u_int                  rs;
+    size_t                 bin_fp_len;
+    netsnmp_variable_list *vl = NULL, *vb;
+
+    netsnmp_require_ptr_LRV( target_name, NULL );
+
+    DEBUGMSGT(("addr:create", "creating varbinds for %s addr, fp %s, id %s\n",
+               target_name, fp, identity));
+
+    /*
+     * build base name
+     */
+    name_len = OID_LENGTH(addrTbl);
+    memcpy(name, addrTbl, sizeof(addrTbl));
+    name[name_len++] = 1; /* entry */
+    col_pos = name_len++; /* column */
+    while (*target_name)
+        name[name_len++] = *target_name++;
+
+    if (fp) {
+        bin_fp_len = sizeof(bin_fp);
+        netsnmp_tls_fingerprint_build(hash_type, fp, &bin_fp_ptr,
+                                           &bin_fp_len, 0);
+
+        name[col_pos] = COLUMN_SNMPTLSTMADDRSERVERFINGERPRINT;
+        vl = snmp_varlist_add_variable(&vl, name, name_len, ASN_OCTET_STR,
+                                       &bin_fp, bin_fp_len);
+        netsnmp_require_ptr_LRV(vl, NULL);
+    }
+    else
+        --rs_index;
+
+    if (identity) {
+        name[col_pos] = COLUMN_SNMPTLSTMADDRSERVERIDENTITY;
+        vl = snmp_varlist_add_variable(&vl, name, name_len, ASN_OCTET_STR,
+                                       identity, strlen(identity));
+        netsnmp_require_ptr_LRV(vl, NULL);
+    }
+    else
+        --rs_index;
+
+    if (st) {
+        name[col_pos] = COLUMN_SNMPTLSTMADDRSTORAGETYPE;
+        vb = snmp_varlist_add_variable(&vl, name, name_len, ASN_INTEGER,
+                                       &st, sizeof(st));
+        if (NULL == vb) {
+            snmp_free_varbind(vl);
+            return NULL;
+        }
+    }
+    else
+        --rs_index;
+
+    name[col_pos] = COLUMN_SNMPTLSTMADDRROWSTATUS;
+    rs = RS_CREATEANDGO;
+    vb = snmp_varlist_add_variable(&vl, name, name_len, ASN_INTEGER,
+                                   &rs, sizeof(rs));
+    if (NULL == vb) {
+        snmp_free_varbind(vl);
+        return NULL;
+    }
+
+    if (row_status_index)
+        *row_status_index = rs_index;
+
+    return vl;
+}
+
+/** **************************************************************************
+ *
+ * application code
+ *
+ */
+static char         *_data = NULL, *_map_type_str = NULL, *_id_str = NULL;
+static char         *_storage_type_str = NULL, *_fp_str = NULL;
+static int           _storage_type = ST_NONE, _hash_type = NS_HASH_NONE;
+static size_t        _data_len;
+
+static void
+optProc(int argc, char *const *argv, int opt)
+{
+    if ('C' != opt)
+        return;
+
+    while (*optarg) {
+        switch (*optarg++) {
+            case 'm':
+                if (optind < argc)
+                    _map_type_str = argv[optind++];
+                else {
+                    fprintf(stderr, "Bad -Cm option: no argument given\n");
+                    exit(1);
+                }
+                break;
+                
+            case 'd':
+                if (optind < argc) {
+                    _data = argv[optind++];
+                    _data_len = strlen(_data);
+                }
+                else {
+                    fprintf(stderr, "Bad -Cd option: no argument given\n");
+                    exit(1);
+                }
+                break;
+
+	    case 's':
+                if (optind < argc) {
+                    if (isdigit(0xFF & argv[optind][0]))
+                        _storage_type = atoi(argv[optind++]);
+                    else
+                        _storage_type_str = argv[optind++];
+                }
+                else {
+                    fprintf(stderr, "Bad -Cs option: no argument given\n");
+                    exit(1);
+                }
+		break;
+                
+	    case 'h':
+                if (optind < argc) {
+                    if (isdigit(0xFF & argv[optind][0]))
+                        _hash_type = atoi(argv[optind++]);
+                }
+                else {
+                    fprintf(stderr, "Bad -Ch option: no argument given\n");
+                    exit(1);
+                }
+		break;
+                
+	    case 'f':
+                if (optind < argc)
+                    _fp_str = argv[optind++];
+                else {
+                    fprintf(stderr, "Bad -Cf option: no argument given\n");
+                    exit(1);
+                }
+		break;
+                
+	    case 'i':
+                if (optind < argc)
+                    _id_str = argv[optind++];
+                else {
+                    fprintf(stderr, "Bad -Ci option: no argument given\n");
+                    exit(1);
+                }
+		break;
+                
+            default:
+                fprintf(stderr, "Unknown flag passed to -C: %c\n",
+                        optarg[-1]);
+                exit(1);
+        }
+    }
+}
+
+void
+_parse_storage_type(const char *arg)
+{
+    netsnmp_pdu dummy;
+    oid name[] = { SNMP_TLS_TM_CERT_TABLE, 1,
+                   COL_SNMPTLSTMCERTTOTSN_STORAGETYPE };
+    int name_len = OID_LENGTH(name);
+
+    if (NULL == arg)
+        return;
+
+    memset(&dummy, 0x00, sizeof(dummy));
+    snmp_add_var(&dummy, name, name_len, 'i', arg);
+    if (dummy.variables) {
+        _storage_type = *dummy.variables->val.integer;
+        snmp_free_varbind(dummy.variables);
+    }
+    else {
+        fprintf(stderr, "unknown storage type %s for -Cs\n", arg);
+        exit(1);
+    }
+
+    return;
+}
+
+void
+usage(void)
+{
+    fprintf(stderr, "USAGE: snmptls [-Cm mapTypeOID] [-Cd data] [-Cs storageType] ");
+    snmp_parse_args_usage(stderr);
+    fprintf(stderr, "<command> [command options]\n\n");
+    snmp_parse_args_descriptions(stderr);
+    fprintf(stderr, "  [options]   certToSecName add <priority> <hashType> <fingerprint>\n");
+    fprintf(stderr, "\t-Cm\t\tMaptype; [snmpTlstmCertCommonName|snmpTlstmCertSANRFC822Name|snmpTlstmCertSANIpAddress|snmpTlstmCertSANDNSName|snmpTlstmCertSpecified]\n");
+    fprintf(stderr, "\t\t\t(default is snmpTlstmCertSpecified)\n");
+    fprintf(stderr, "\t-Cd\t\tData; data for snmpTlstmCertSpecified.\n");
+    fprintf(stderr, "\t-Cs\t\tstorageType; default is nonVolatile.\n");
+
+    fprintf(stderr, "  [options]   targetParamsFingerprint add <params-name> <hashType> <fingerprint>\n");
+    fprintf(stderr, "\t-Cs\t\tstorageType; default is nonVolatile.\n");
+
+    fprintf(stderr, "  [options]   targetAddr add <target-name> <hashType> [<hash_type> <remote-fingerprint>] [server-identity]\n");
+    fprintf(stderr, "\t-Cs\t\tstorageType; default is nonVolatile.\n");
+
+    exit(1);
+}
+
+int
+main(int argc, char **argv)
+{
+    netsnmp_session        session, *ss;
+    netsnmp_variable_list *var_list = NULL;
+    int                    arg, rs_idx = 0;
+    u_int                  hash_type;
+    char                  *fingerprint, *tmp;
+
+    /*
+     * get the common command line arguments 
+     */
+    switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) {
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
+        exit(0);
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
+        usage();
+    default:
+        break;
+    }
+
+    /*
+     * Open an SNMP session.
+     */
+    SOCK_STARTUP;
+    ss = snmp_open(&session);
+    if (ss == NULL) {
+        /*
+         * diagnose snmp_open errors with the input netsnmp_session pointer 
+         */
+        snmp_sess_perror("snmptls", &session);
+        SOCK_CLEANUP;
+        exit(1);
+    }
+
+    if (strcmp(argv[arg], "certToSecName") == 0) {
+
+        oid           map_type[MAX_OID_LEN];
+        u_int         pri;
+        size_t        map_type_len = 0;
+
+        if (strcmp(argv[++arg], "add") != 0) {
+            fprintf(stderr, "only add is supported at this time\n");
+            exit(1);
+        }
+
+        pri = atoi(argv[++arg]);
+        tmp = argv[++arg];
+        hash_type = atoi(tmp);
+        fingerprint = argv[++arg];
+
+        DEBUGMSGT(("snmptls",
+                   "create pri %d, hash type %d, fp %s",
+                   pri, hash_type, fingerprint));
+        if (_map_type_str) {
+            map_type_len = MAX_OID_LEN;
+            if (snmp_parse_oid(_map_type_str, map_type, &map_type_len) 
+                == NULL) {
+                snmp_perror(_map_type_str);
+                exit(1);
+            }
+            DEBUGMSG(("snmptls", ", map type "));
+            DEBUGMSGOID(("snmptls", map_type, map_type_len));
+        }
+        if (_data)
+            DEBUGMSG(("snmptls", ", data %s", _data));
+
+        _parse_storage_type(_storage_type_str);
+
+        DEBUGMSG(("snmptls", "\n"));
+        var_list = cert_row_create(pri, hash_type, fingerprint, map_type,
+                                   map_type_len, (u_char*)_data, _data_len,
+                                   _storage_type, &rs_idx);
+    }
+    else if (strcmp(argv[arg], "targetParamsFingerprint") == 0) {
+
+        char * params_name;
+
+        if (strcmp(argv[++arg], "add") != 0) {
+            fprintf(stderr, "only add is supported at this time\n");
+            exit(1);
+        }
+
+        params_name = argv[++arg];
+        hash_type = atoi(argv[++arg]);
+        fingerprint = argv[++arg];
+        
+        _parse_storage_type(_storage_type_str);
+
+        DEBUGMSGT(("snmptls",
+                   "create %s param fp, hash type %d, fp %s\n",
+                   params_name, hash_type, fingerprint));
+
+        var_list = params_row_create(params_name, hash_type, fingerprint,
+                                     _storage_type, &rs_idx);
+    }
+
+    else if (strcmp(argv[arg], "targetAddr") == 0) {
+
+        char * addr_name;
+
+        if (strcmp(argv[++arg], "add") != 0) {
+            fprintf(stderr, "only add is supported at this time\n");
+            exit(1);
+        }
+
+        addr_name = argv[++arg];
+        
+        _parse_storage_type(_storage_type_str);
+
+        DEBUGMSGT(("snmptls",
+                   "create %s addr fp, hash type %d, fp %s, id %s\n",
+                   addr_name, _hash_type, _fp_str, _id_str));
+
+        var_list = addr_row_create(addr_name, _hash_type, _fp_str, _id_str,
+                                     _storage_type, &rs_idx);
+    }
+
+    if (! var_list) {
+        fprintf(stderr, "no command specified\n");
+        usage();
+    }
+
+    netsnmp_row_create(ss, var_list, rs_idx);
+
+    SOCK_CLEANUP;
+    return 0;
+}
diff --git a/apps/snmptranslate.c b/apps/snmptranslate.c
index 750d60f..7391fd4 100644
--- a/apps/snmptranslate.c
+++ b/apps/snmptranslate.c
@@ -51,11 +51,6 @@
 #include <stdio.h>
 #include <ctype.h>
 #include <net-snmp/utilities.h>
-
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #include <net-snmp/config_api.h>
 #include <net-snmp/output_api.h>
 #include <net-snmp/mib_api.h>
@@ -240,7 +235,6 @@
         }
     }
 
-    snmp_enable_stderrlog();
     init_snmp("snmpapp");
     if (optind < argc)
         current_name = argv[optind];
diff --git a/apps/snmptrap.c b/apps/snmptrap.c
index 55320f8..7c086db 100644
--- a/apps/snmptrap.c
+++ b/apps/snmptrap.c
@@ -41,11 +41,7 @@
 # include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -58,9 +54,6 @@
 #include <sys/select.h>
 #endif
 #include <stdio.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
@@ -152,9 +145,11 @@
     if (strcmp(prognam, "snmpinform") == 0)
         inform = 1;
     switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) {
-    case -2:
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
         exit(0);
-    case -1:
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
         usage();
         exit(1);
     default:
diff --git a/apps/snmptrapd.c b/apps/snmptrapd.c
index 4ee615d..16dff50 100644
--- a/apps/snmptrapd.c
+++ b/apps/snmptrapd.c
@@ -40,9 +40,7 @@
 #if HAVE_SYS_WAIT_H
 #include <sys/wait.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#else
+#if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
 #if HAVE_SYS_SOCKIO_H
@@ -103,6 +101,7 @@
 #include "snmptrapd_log.h"
 #include "snmptrapd_auth.h"
 #include "notification-log-mib/notification_log.h"
+#include "tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable.h"
 #include "mibII/vacm_conf.h"
 #ifdef NETSNMP_EMBEDDED_PERL
 #include "snmp_perl.h"
@@ -529,15 +528,6 @@
 #endif
 
 void
-parse_config_logOption(const char *token, char *cptr)
-{
-  int my_argc = 0 ;
-  char **my_argv = NULL;
-
-  snmp_log_options( cptr, my_argc, my_argv );
-}
-
-void
 parse_config_doNotFork(const char *token, char *cptr)
 {
   if (netsnmp_ds_parse_boolean(cptr) == 1)
@@ -650,9 +640,6 @@
                             parse_config_agentgroup, NULL, "groupid");
 #endif
     
-    register_config_handler("snmptrapd", "logOption",
-                            parse_config_logOption, NULL, "string");
-
     register_config_handler("snmptrapd", "doNotFork",
                             parse_config_doNotFork, NULL, "(1|yes|true|0|no|false)");
 
@@ -1041,6 +1028,9 @@
         /* register net-snmp vacm extensions */
         init_register_nsVacm_context("snmptrapd");
 #endif
+#ifdef USING_TLSTM_MIB_SNMPTLSTMCERTTOTSNTABLE_MODULE
+        init_snmpTlstmCertToTSNTable_context("snmptrapd");
+#endif
     }
 #endif
 
diff --git a/apps/snmptrapd_auth.c b/apps/snmptrapd_auth.c
index b7fb605..be21e5e 100644
--- a/apps/snmptrapd_auth.c
+++ b/apps/snmptrapd_auth.c
@@ -4,11 +4,13 @@
  */
 #include <net-snmp/net-snmp-config.h>
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#else
+#if HAVE_SYS_TYPES_H
 #include <sys/types.h>
+#endif
+#if HAVE_NETINET_IN_H
 #include <netinet/in.h>
+#endif
+#if HAVE_NETDB_H
 #include <netdb.h>
 #endif
 
diff --git a/apps/snmptrapd_ds.h b/apps/snmptrapd_ds.h
index 55c1226..03eba14 100644
--- a/apps/snmptrapd_ds.h
+++ b/apps/snmptrapd_ds.h
@@ -1,7 +1,12 @@
 #ifndef SNMPTRAPD_DS_H
 #define SNMPTRAPD_DS_H
 
-/* these must not conflict with agent's DS booleans */
+/* booleans
+ *
+ * WARNING: These must not conflict with the agent's DS booleans
+ * If you define additional entries here, check in <agent/ds_agent.h> first
+ *  (and consider repeating the definitions there) */
+
 #define NETSNMP_DS_APP_NUMERIC_IP       16
 #define NETSNMP_DS_APP_NO_AUTHORIZATION 17
 
diff --git a/apps/snmptrapd_handlers.c b/apps/snmptrapd_handlers.c
index 0176aa7..3ee3aa7 100644
--- a/apps/snmptrapd_handlers.c
+++ b/apps/snmptrapd_handlers.c
@@ -14,10 +14,10 @@
 #endif
 #include <ctype.h>
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#else
+#if HAVE_NETINET_IN_H
 #include <netinet/in.h>
+#endif
+#if HAVE_NETDB_H
 #include <netdb.h>
 #endif
 #if HAVE_SYS_WAIT_H
@@ -217,7 +217,7 @@
      * which tells us which style of format this is
      */
     cp = line;
-    while (*cp && !isspace(*cp))
+    while (*cp && !isspace((unsigned char)(*cp)))
         cp++;
     if (!(*cp)) {
         /*
@@ -230,7 +230,7 @@
 
     sep = cp;
     *(cp++) = '\0';
-    while (*cp && isspace(*cp))
+    while (*cp && isspace((unsigned char)(*cp)))
         cp++;
 
     /*
@@ -359,7 +359,7 @@
  * to be applied to *all* incoming traps
  */
 netsnmp_trapd_handler *
-netsnmp_add_global_traphandler(int list, Netsnmp_Trap_Handler handler)
+netsnmp_add_global_traphandler(int list, Netsnmp_Trap_Handler *handler)
 {
     netsnmp_trapd_handler *traph;
 
@@ -405,7 +405,7 @@
  * traps with no specific trap handlers of their own.
  */
 netsnmp_trapd_handler *
-netsnmp_add_default_traphandler( Netsnmp_Trap_Handler handler) {
+netsnmp_add_default_traphandler(Netsnmp_Trap_Handler *handler) {
     return netsnmp_add_global_traphandler(NETSNMPTRAPD_DEFAULT_HANDLER,
                                           handler);
 }
@@ -785,6 +785,11 @@
                        netsnmp_transport     *transport,
                        netsnmp_trapd_handler *handler)
 {
+#ifndef USING_UTILITIES_EXECUTE_MODULE
+    NETSNMP_LOGONCE((LOG_WARNING,
+                     "support for run_shell_command not available\n"));
+    return NETSNMPTRAPD_HANDLER_FAIL;
+#else
     u_char         *rbuf = NULL;
     size_t          r_len = 64, o_len = 0;
     int             oldquick;
@@ -843,6 +848,7 @@
         free(rbuf);
     }
     return NETSNMPTRAPD_HANDLER_OK;
+#endif /* !def USING_UTILITIES_EXECUTE_MODULE */
 }
 
 
@@ -938,10 +944,6 @@
     netsnmp_trapd_handler *traph;
     netsnmp_transport *transport = (netsnmp_transport *) magic;
     int ret, idx;
-    extern netsnmp_trapd_handler *netsnmp_auth_global_traphandlers;
-    extern netsnmp_trapd_handler *netsnmp_pre_global_traphandlers;
-    extern netsnmp_trapd_handler *netsnmp_post_global_traphandlers;
-
 
     switch (op) {
     case NETSNMP_CALLBACK_OP_RECEIVED_MESSAGE:
diff --git a/apps/snmptrapd_log.c b/apps/snmptrapd_log.c
index f488302..9bfc0b2 100644
--- a/apps/snmptrapd_log.c
+++ b/apps/snmptrapd_log.c
@@ -40,9 +40,7 @@
 #if HAVE_SYS_WAIT_H
 #include <sys/wait.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#else
+#if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
 #if HAVE_SYS_SOCKIO_H
@@ -106,7 +104,7 @@
 typedef struct {
     char            cmd;        /* the format command itself */
     size_t          width;      /* the field's minimum width */
-    size_t          precision;  /* the field's precision */
+    int             precision;  /* the field's precision */
     int             left_justify;       /* if true, left justify this field */
     int             alt_format; /* if true, display in alternate format */
     int             leading_zeroes;     /* if true, display with leading zeroes */
@@ -370,7 +368,7 @@
     temp_to_write = temp_len;
 
     if (options->precision != UNDEF_PRECISION &&
-        temp_to_write > options->precision) {
+        temp_to_write > (size_t)options->precision) {
         temp_to_write = options->precision;
     }
 
@@ -622,7 +620,7 @@
     char           *tstr;
     unsigned int    oflags;
 
-    if ((temp_buf = calloc(temp_buf_len, 1)) == NULL) {
+    if ((temp_buf = (u_char*)calloc(temp_buf_len, 1)) == NULL) {
         return 0;
     }
 
@@ -654,7 +652,7 @@
         }
         if (host != NULL) {
             if (!snmp_strcat(&temp_buf, &temp_buf_len, &temp_out_len, 1,
-                             (u_char *)host->h_name)) {
+                             (const u_char *)host->h_name)) {
                 if (temp_buf != NULL) {
                     free(temp_buf);
                 }
@@ -995,9 +993,9 @@
     char            fmt_cmd = options->cmd;     /* what we're outputting */
     u_char         *temp_buf = NULL;
     size_t          tbuf_len = 64;
-    int             i;
+    unsigned int    i;
 
-    if ((temp_buf = calloc(tbuf_len, 1)) == NULL) {
+    if ((temp_buf = (u_char*)calloc(tbuf_len, 1)) == NULL) {
         return 0;
     }
 
@@ -1161,7 +1159,7 @@
         }
 
         for (i = 0; i < pdu->securityNameLen; i++) {
-            if (isprint(pdu->securityName[i])) {
+            if (isprint((unsigned char)(pdu->securityName[i]))) {
                 *(*buf + *out_len) = pdu->securityName[i];
             } else {
                 *(*buf + *out_len) = '.';
@@ -1183,7 +1181,7 @@
         }
 
         for (i = 0; i < pdu->contextNameLen; i++) {
-            if (isprint(pdu->contextName[i])) {
+            if (isprint((unsigned char)(pdu->contextName[i]))) {
                 *(*buf + *out_len) = pdu->contextName[i];
             } else {
                 *(*buf + *out_len) = '.';
@@ -1719,7 +1717,7 @@
              * Parsing a width field.  
              */
             reset_options = TRUE;
-            if (isdigit(next_chr)) {
+            if (isdigit((unsigned char)(next_chr))) {
                 options.width *= 10;
                 options.width +=
                     (unsigned long) next_chr - (unsigned long) '0';
@@ -1750,7 +1748,7 @@
              * Parsing a precision field.  
              */
             reset_options = TRUE;
-            if (isdigit(next_chr)) {
+            if (isdigit((unsigned char)(next_chr))) {
                 if (options.precision == UNDEF_PRECISION) {
                     options.precision =
                         (unsigned long) next_chr - (unsigned long) '0';
@@ -1761,8 +1759,9 @@
                 }
             } else if (is_fmt_cmd(next_chr)) {
                 options.cmd = next_chr;
-                if (options.width < options.precision) {
-                    options.width = options.precision;
+                if ((options.precision != UNDEF_PRECISION) &&
+                    (options.width < (size_t)options.precision)) {
+                    options.width = (size_t)options.precision;
                 }
                 if (!realloc_dispatch_format_cmd
                     (buf, buf_len, out_len, allow_realloc, &options, pdu,
diff --git a/apps/snmptrapd_sql.c b/apps/snmptrapd_sql.c
index fcac40b..ac17711 100644
--- a/apps/snmptrapd_sql.c
+++ b/apps/snmptrapd_sql.c
@@ -28,10 +28,10 @@
 #endif
 #include <ctype.h>
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#else
+#if HAVE_NETINET_IN_H
 #include <netinet/in.h>
+#endif
+#if HAVE_NETDB_H
 #include <netdb.h>
 #endif
 
@@ -63,7 +63,7 @@
     char        *password;        /* password (def=none) */
     u_int        port_num;        /* port number (built-in value) */
     char        *socket_name;     /* socket name (built-in value) */
-    char        *db_name;         /* database name (def=none) */
+    const char  *db_name;         /* database name (def=none) */
     u_int        flags;           /* connection flags (none) */
     MYSQL       *conn;            /* connection */
     u_char       connected;       /* connected flag */
@@ -145,7 +145,7 @@
     u_char    *val;
     u_long     val_len;
 
-    u_int16_t  type;
+    uint16_t   type;
 
 } sql_vb_buf;
 
@@ -161,14 +161,14 @@
     u_long     user_len;
 
     MYSQL_TIME time;
-    u_int16_t  version, type;
-    u_int32_t  reqid;
+    uint16_t   version, type;
+    uint32_t   reqid;
 
     char      *transport;
     u_long     transport_len;
 
-    u_int16_t  security_level, security_model;
-    u_int32_t  msgid;
+    uint16_t   security_level, security_model;
+    uint32_t   msgid;
 
     char      *context;
     u_long     context_len;
@@ -1084,7 +1084,7 @@
         return;
 
     DEBUGMSGT(("sql:process", "processing %d queued traps\n",
-               CONTAINER_SIZE(_sql.queue)));
+               (int)CONTAINER_SIZE(_sql.queue)));
 
     /*
      * if we don't have a database connection, try to reconnect. We
@@ -1112,4 +1112,6 @@
                     NULL);
 }
 
+#else
+int unused;	/* Suppress "empty translation unit" warning */
 #endif /* NETSNMP_USE_MYSQL */
diff --git a/apps/snmpusm.c b/apps/snmpusm.c
index f86515e..42919bd 100644
--- a/apps/snmpusm.c
+++ b/apps/snmpusm.c
@@ -36,11 +36,7 @@
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -52,9 +48,6 @@
 #if HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -129,6 +122,7 @@
 size_t          usmUserEngineIDLen = 0;
 u_char         *usmUserEngineID = NULL;
 char           *usmUserPublic_val = NULL;
+int             docreateandwait = 0;
 
 
 void
@@ -139,19 +133,21 @@
     fprintf(stderr, " COMMAND\n\n");
     snmp_parse_args_descriptions(stderr);
     fprintf(stderr, "\nsnmpusm commands:\n");
-    fprintf(stderr, "  [options] create     USER [CLONEFROM-USER]\n");
-    fprintf(stderr, "  [options] delete     USER\n");
-    fprintf(stderr, "  [options] cloneFrom  USER CLONEFROM-USER\n");
-    fprintf(stderr, "  [options] activate   USER\n");
-    fprintf(stderr, "  [options] deactivate USER\n");
-    fprintf(stderr, "  [options] [-Ca] [-Cx] changekey [USER]\n");
+    fprintf(stderr, "  [options]               create     USER [CLONEFROM-USER]\n");
+    fprintf(stderr, "  [options]               delete     USER\n");
+    fprintf(stderr, "  [options]               activate   USER\n");
+    fprintf(stderr, "  [options]               deactivate USER\n");
+    fprintf(stderr, "  [options] [-Cw]         cloneFrom  USER CLONEFROM-USER\n");
+    fprintf(stderr, "  [options] [-Ca] [-Cx]   changekey  [USER]\n");
     fprintf(stderr,
-            "  [options] [-Ca] [-Cx] passwd OLD-PASSPHRASE NEW-PASSPHRASE [USER]\n");
+            "  [options] [-Ca] [-Cx]   passwd     OLD-PASSPHRASE NEW-PASSPHRASE [USER]\n");
     fprintf(stderr,
-            "  [options] (-Ca|-Cx) -Ck passwd OLD-KEY-OR-PASSPHRASE NEW-KEY-OR-PASSPHRASE [USER]\n");
+            "  [options] (-Ca|-Cx) -Ck passwd     OLD-KEY-OR-PASS NEW-KEY-OR-PASS [USER]\n");
     fprintf(stderr, "\nsnmpusm options:\n");
     fprintf(stderr, "\t-CE ENGINE-ID\tSet usmUserEngineID (e.g. 800000020109840301).\n");
     fprintf(stderr, "\t-Cp STRING\tSet usmUserPublic value to STRING.\n");
+    fprintf(stderr, "\t-Cw\t\tCreate the user with createAndWait.\n");
+    fprintf(stderr, "\t\t\t(it won't be active until you active it)\n");
     fprintf(stderr, "\t-Cx\t\tChange the privacy key.\n");
     fprintf(stderr, "\t-Ca\t\tChange the authentication key.\n");
     fprintf(stderr, "\t-Ck\t\tAllows to use localized key (must start with 0x)\n");
@@ -197,7 +193,6 @@
     BIGNUM *other_pub;
     u_char *key;
     size_t key_len;
-    unsigned char *cp;
             
     dhkeychange = (u_char *) malloc(2 * vars->val_len * sizeof(char));
     if (!dhkeychange)
@@ -205,9 +200,10 @@
     
     memcpy(dhkeychange, vars->val.string, vars->val_len);
 
-    cp = dhvar->val.string;
-    dh = d2i_DHparams(NULL, (const unsigned char **) &cp,
-                      dhvar->val_len);
+    {
+        const unsigned char *cp = dhvar->val.string;
+        dh = d2i_DHparams(NULL, &cp, dhvar->val_len);
+    }
 
     if (!dh || !dh->g || !dh->p) {
         SNMP_FREE(dhkeychange);
@@ -220,7 +216,7 @@
         return SNMPERR_GENERR;
     }
             
-    if (vars->val_len != BN_num_bytes(dh->pub_key)) {
+    if (vars->val_len != (unsigned int)BN_num_bytes(dh->pub_key)) {
         SNMP_FREE(dhkeychange);
         fprintf(stderr,"incorrect diffie-helman lengths (%lu != %d)\n",
                 (unsigned long)vars->val_len, BN_num_bytes(dh->pub_key));
@@ -253,7 +249,7 @@
 
         printf("new %s key: 0x", keyname);
         for(kp = key + key_len - outkey_len;
-            kp - key < key_len;  kp++) {
+            kp - key < (int)key_len;  kp++) {
             printf("%02x", (unsigned char) *kp);
         }
         printf("\n");
@@ -300,6 +296,10 @@
                 optind++;
                 break;
 
+            case 'w':
+                docreateandwait = 1;
+                break;
+
 	    case 'E': {
 	        size_t ebuf_len = MAX_ENGINEID_LENGTH;
                 u_char *ebuf;
@@ -382,9 +382,11 @@
      * get the common command line arguments 
      */
     switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) {
-    case -2:
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
         exit(0);
-    case -1:
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
         usage();
         exit(1);
     default:
@@ -710,7 +712,11 @@
              */
             setup_oid(usmUserStatus, &name_length,
                       usmUserEngineID, usmUserEngineIDLen, argv[arg-1]);
-            longvar = RS_CREATEANDGO;
+            if (docreateandwait) {
+                longvar = RS_CREATEANDWAIT;
+            } else {
+                longvar = RS_CREATEANDGO;
+            }
             snmp_pdu_add_variable(pdu, usmUserStatus, name_length,
                                   ASN_INTEGER, (u_char *) & longvar,
                                   sizeof(longvar));
diff --git a/apps/snmpvacm.c b/apps/snmpvacm.c
index bdba896..f88ede6 100644
--- a/apps/snmpvacm.c
+++ b/apps/snmpvacm.c
@@ -23,11 +23,7 @@
 #include <stdio.h>
 #include <ctype.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -39,9 +35,6 @@
 #if HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -279,7 +272,8 @@
     int             exitval = 0;
     int             command = 0;
     long            longvar;
-    int             secModel, secLevel, contextMatch, val, i = 0;
+    int             secModel, secLevel, contextMatch;
+    unsigned int    val, i = 0;
     char           *mask, *groupName, *prefix, *authtype;
     u_char          viewMask[VACMSTRINGLEN];
     char           *st;
@@ -289,9 +283,11 @@
      * get the common command line arguments 
      */
     switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) {
-    case -2:
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
         exit(0);
-    case -1:
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
         usage();
         exit(1);
     default:
@@ -388,7 +384,7 @@
                 i++;
             }
 	} else {
-            for (i=0 ; i < ((int)name_length+7)/8; i++)
+            for (i=0 ; i < (name_length+7)/8; i++)
                 viewMask[i] = (u_char)0xff;
         }
         view_oid(vacmViewTreeFamilyMask, &name_length, argv[arg],
diff --git a/apps/snmpwalk.c b/apps/snmpwalk.c
index b0db3f4..dfad7e0 100644
--- a/apps/snmpwalk.c
+++ b/apps/snmpwalk.c
@@ -42,11 +42,7 @@
 # include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -59,9 +55,6 @@
 #include <sys/select.h>
 #endif
 #include <stdio.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -213,9 +206,11 @@
      * get the common command line arguments 
      */
     switch (arg = snmp_parse_args(argc, argv, &session, "C:", optProc)) {
-    case -2:
+    case NETSNMP_PARSE_ARGS_ERROR:
+        exit(1);
+    case NETSNMP_PARSE_ARGS_SUCCESS_EXIT:
         exit(0);
-    case -1:
+    case NETSNMP_PARSE_ARGS_ERROR_USAGE:
         usage();
         exit(1);
     default:
diff --git a/apps/sshtosnmp.c b/apps/sshtosnmp.c
index 070a45d..d26067d 100644
--- a/apps/sshtosnmp.c
+++ b/apps/sshtosnmp.c
@@ -68,7 +68,6 @@
     struct sockaddr_un addr;
     u_char buf[4096];
     size_t buf_len = sizeof(buf);
-    u_short name_len;
     int rc = 0, pktsize = 0;
 
     fd_set read_set;
diff --git a/configure b/configure
index 0edcd3e..4812f37 100755
--- a/configure
+++ b/configure
Binary files differ
diff --git a/configure.ac b/configure.ac
index 3cb4cdd..4215a30 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10,7 +10,7 @@
 #
 # Process this file with autoconf to produce a configure script.
 #
-AC_INIT([Net-SNMP], [5.5.2], [net-snmp-coders@lists.sourceforge.net])
+AC_INIT([Net-SNMP], [5.6.2], [net-snmp-coders@lists.sourceforge.net])
 AC_PREREQ([2.63])
 AC_CONFIG_SRCDIR([agent/mibgroup/ucd-snmp/extensible.c])
 AC_REVISION([$Revision$])
@@ -42,22 +42,28 @@
 #     checks for system services
 
 m4_include([configure.d/config_project_with_enable])
+m4_include([configure.d/config_project_manual])
 m4_include([configure.d/config_os_progs])
 m4_include([configure.d/config_project_paths])
 m4_include([configure.d/config_os_headers])
+AC_CACHE_SAVE
 m4_include([configure.d/config_project_ipv6_types])
 m4_include([configure.d/config_modules_lib])
+AC_CACHE_SAVE
 m4_include([configure.d/config_os_libs1])
 m4_include([configure.d/config_modules_agent])
 m4_include([configure.d/config_os_misc1])
 m4_include([configure.d/config_os_libs2])
+AC_CACHE_SAVE
 m4_include([configure.d/config_project_perl_python])
 m4_include([configure.d/config_os_misc2])
 m4_include([configure.d/config_project_types])
 m4_include([configure.d/config_os_misc3])
+AC_CACHE_SAVE
 m4_include([configure.d/config_os_functions])
 m4_include([configure.d/config_os_struct_members])
 m4_include([configure.d/config_os_misc4])
+AC_CACHE_SAVE
 
 #
 # define the agent libraries variables
@@ -67,10 +73,11 @@
 AC_SUBST(OTHERAGENTLIBOBJS)
 AC_SUBST(OTHERAGENTLIBLOBJS)
 
-m4_include([configure.d/config_project_manual])
-
 AC_SUBST(DLLIBS)
 
+AC_SUBST(PARTIALTARGETFLAGS)
+AC_SUBST(ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE)
+
 AC_CONFIG_FILES([Makefile:Makefile.top:Makefile.in:Makefile.rules])
 AC_CONFIG_FILES([snmplib/Makefile:Makefile.top:snmplib/Makefile.in:Makefile.rules:snmplib/Makefile.depend])
 AC_CONFIG_FILES([apps/Makefile:Makefile.top:apps/Makefile.in:Makefile.rules:apps/Makefile.depend])
@@ -86,6 +93,7 @@
 		[chmod +x net-snmp-config])
 AC_CONFIG_FILES([net-snmp-create-v3-user:net-snmp-create-v3-user.in],
 		[chmod +x net-snmp-create-v3-user])
+AC_CONFIG_FILES([dist/generation-scripts/gen-variables:dist/generation-scripts/gen-variables.in])
 
 AC_CONFIG_COMMANDS([default], echo timestamp > stamp-h)
 
diff --git a/configure.d/config_modules_agent b/configure.d/config_modules_agent
index 7815448..5cb30bb 100644
--- a/configure.d/config_modules_agent
+++ b/configure.d/config_modules_agent
@@ -778,3 +778,20 @@
 AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_MIBS,"$NETSNMP_DEFAULT_MIBS")
 AC_SUBST(NETSNMP_DEFAULT_MIBS)
 AC_MSG_RESULT($NETSNMP_DEFAULT_MIBS)
+
+#-------------------
+# Define symbols for conditional compilation in makefiles
+#
+
+if echo " $agent_module_list " | \
+   fgrep ' agentx/agentx_config ' | \
+   fgrep ' agentx/client ' | \
+   fgrep ' agentx/protocol ' > /dev/null ; then
+   NETSNMP_HAVE_AGENTX_LIBS_TRUE=''
+   NETSNMP_HAVE_AGENTX_LIBS_FALSE='#'
+else
+   NETSNMP_HAVE_AGENTX_LIBS_TRUE='#'
+   NETSNMP_HAVE_AGENTX_LIBS_FALSE=''
+fi
+AC_SUBST([NETSNMP_HAVE_AGENTX_LIBS_TRUE])
+AC_SUBST([NETSNMP_HAVE_AGENTX_LIBS_FALSE])
diff --git a/configure.d/config_modules_lib b/configure.d/config_modules_lib
index 4334f42..52063f1 100644
--- a/configure.d/config_modules_lib
+++ b/configure.d/config_modules_lib
@@ -59,122 +59,8 @@
 AC_MSG_RESULT([$other_agentobjs $other_lagentobjs $other_trapd_objects])
   
 #
-# Do transport module processing.
+# Create directory structure for build
 #
-AC_MSG_CHECKING([for and configuring transport modules to use])
-transport_src_list=""
-transport_hdr_list=""
-transport_def_list=""
-transport_result_list=""
-transport_add_list=""
-new_with_transport_list=`echo $with_transports | $SED 's/,/ /g;'`
-new_with_out_transport_list=`echo $with_out_transports | $SED 's/,/ /g;'`
-
-#
-# Add the default transports to the list
-#
-if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then 
-  transport_default_list="UDP TCP Alias Callback"
-else
-  transport_default_list="UDP TCP Alias Unix Callback"
-fi
-if test "x$enable_ipv6" = "xyes"; then
-  transport_default_list="UDPIPv6 TCPIPv6 $transport_default_list"
-fi
-for i in $transport_default_list; do
-  if echo " $new_with_transport_list " | $GREP " $i " >/dev/null; then
-    :
-  else
-    transport_add_list="$i $transport_add_list"
-  fi
-done
-new_transport_list="$transport_add_list $new_with_transport_list"
-
-for i in $new_transport_list; do
-  if echo " $new_with_out_transport_list " | $GREP " $i " >/dev/null; then
-    if test "x$i" = "xUDP"; then
-      echo
-      AC_MSG_ERROR(It is not possible to compile without UDP/IP support.)
-    fi
-    continue
-  else
-    if test "x$i" = "xAAL5PVC"; then
-      if test "x$PARTIALTARGETOS" != "xlinux"; then
-        echo
-        AC_MSG_ERROR(AAL5 PVC support unavailable for this platform (Linux only))
-      fi
-    fi
-    if test "x$i" = "xIPX"; then
-      if test "x$PARTIALTARGETOS" != "xlinux"; then
-        echo
-        AC_MSG_ERROR(IPX support unavailable for this platform (Linux only))
-      fi
-    fi
-    if test "x$i" = "xUnix"; then
-      if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
-        echo
-        AC_MSG_ERROR(Unix domain protocol support unavailable for this platform)
-      fi
-    fi
-    if test ! "x$enable_ipv6" = "xyes"; then
-        if test "x$i" = "xUDPIPv6" -o "x$i" = "xTCPIPv6"; then
-            echo
-            AC_MSG_ERROR(IPv6 transports not available if IPv6 support is not enabled)
-        fi
-    fi
-    transport_src="snmp"$i"Domain.c"
-    transport_hdr="snmp"$i"Domain.h"
-    rel_transport_src="snmplib/"$transport_src
-    rel_transport_hdr="include/net-snmp/library/"$transport_hdr
-    if test -f "$srcdir/$rel_transport_src"; then
-      transport_result_list="$transport_result_list $i"
-      transport_src_list="$transport_src $transport_src_list"
-      if test -f "$srcdir/$rel_transport_hdr"; then
-        transport_hdr_list="$transport_hdr $transport_hdr_list"
-      fi
-      transport_def=`echo $i | $SED 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-      transport_def_list="NETSNMP_TRANSPORT_"$transport_def"_DOMAIN $transport_def_list"
-    else
-      echo
-      AC_MSG_ERROR(Cannot find file $srcdir/$rel_transport_src to support SNMP transport domain $i.)
-    fi
-  fi
-done
-transport_obj_list=`echo " $transport_src_list " | $SED 's/\.c/\.o/g'` 	 
-transport_lobj_list=`echo " $transport_src_list " | $SED 's/\.c/\.lo/g'`
-
-## MinGW requires inet_ntop() and inet_pton().
-if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
-  if echo "$transport_def_list" | $GREP "IPV6" >/dev/null; then
-    transport_obj_list="$transport_obj_list inet_ntop.o inet_pton.o"
-    transport_lobj_list="$transport_lobj_list inet_ntop.lo inet_pton.lo"
-  fi
-fi
-
-AC_SUBST(transport_hdr_list)
-AC_SUBST(transport_src_list)
-AC_SUBST(transport_obj_list)
-AC_SUBST(transport_lobj_list)
-for i in $transport_def_list; do
-  AC_DEFINE_UNQUOTED($i)
-done
-AC_MSG_RESULT($transport_result_list.)
-AC_MSG_CACHE_ADD(Network transport support: $transport_result_list)
-
-#
-# Security modules to use
-# 
-
-AC_MSG_CHECKING([for security modules to use])
-security_def_list="usm"
-security_src_list=""
-security_obj_list="" 	 
-security_lobj_list=""
-security_init_file="snmplib/snmpsm_init.h"
-security_incl_file="include/net-snmp/library/snmpv3-security-includes.h"
-new_with_security=`echo $with_security_modules | $SED 's/,/ /g;'`
-new_with_out_security=`echo $with_out_security_modules | $SED 's/,/ /g;'`
-
 if test ! -d include; then
   mkdir include
 fi
@@ -194,43 +80,37 @@
 if test ! -d snmplib; then
   mkdir snmplib
 fi
-echo "/* This file is automatically generated by configure.  Do not modify by hand. */" > $security_init_file
-echo "/* This file is automatically generated by configure.  Do not modify by hand. */" > $security_incl_file
+if test ! -d snmplib/transports ; then
+  mkdir snmplib/transports
+fi
 
-for i in $security_def_list; do
-  if echo " $new_with_out_security " | $GREP " $i " > /dev/null; then
-    if test "x$i" = "xusm"; then
-	echo
-        AC_MSG_ERROR(The USM security module is mandatory)
-    fi
-  else
-    new_with_security="$new_with_security $i"
-  fi
+#
+# Do transport module processing.
+#
+AC_MSG_CHECKING([for and configuring transport modules to use])
+
+# include the actual code checking
+m4_include(configure.d/config_modules_transports)
+
+AC_SUBST(transport_hdr_list)
+AC_SUBST(transport_src_list)
+AC_SUBST(transport_obj_list)
+AC_SUBST(transport_lobj_list)
+for i in $transport_def_list; do
+  AC_DEFINE_UNQUOTED($i)
 done
+AC_MSG_RESULT($transport_result_list.)
+AC_MSG_CACHE_ADD(Network transport support: $transport_result_list)
 
-for i in $new_with_security; do
-  cfile="snmp"$i".c"
-  hfile="snmp"$i".h"
+# cleanup
+rm -f module_tmp_header.h
 
-  # make sure support exists for it
-  if test -f $srcdir"/snmplib/"$cfile -a -f $srcdir"/include/net-snmp/library/"$hfile; then
-    :
-  else
-    echo
-    AC_MSG_ERROR(No such security module: $i / $cfile / $hfile)
-  fi
+#
+# Security modules to use
+# 
 
-  # define a bunch of stuff to enable it
-  security_src_list="$security_src_list $cfile"
-  security_hdr_list="$security_hdr_list $hfile"
-  security_obj_list="$security_obj_list snmp"$i".o" 	 
-  security_lobj_list="$security_lobj_list snmp"$i".lo"
-  def_name="NETSNMP_SECMOD_"`echo $i | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  echo "init_"$i"();" >> $security_init_file
-  echo "#include <net-snmp/library/$hfile>" >> $security_incl_file
-  AC_DEFINE_UNQUOTED($def_name)
-done
-
+AC_MSG_CHECKING([for security modules to use])
+m4_include(configure.d/config_modules_security_modules)
 AC_SUBST(security_src_list)
 AC_SUBST(security_hdr_list)
 AC_SUBST(security_obj_list) 	 
@@ -340,6 +220,6 @@
 if test "x$ac_cv_header_sensors_sensors_h" = "xyes"; then
     AC_CHECK_DECLS([sensors_get_all_subfeatures],
         [AC_DEFINE(NETSNMP_USE_SENSORS_V3, 1,
-            [Define this if you have lim_sensors v3 or later])],,
+            [Define this if you have lm_sensors v3 or later])],,
         [[#include <sensors/sensors.h>]])
 fi
diff --git a/configure.d/config_modules_security_modules b/configure.d/config_modules_security_modules
new file mode 100644
index 0000000..1b5d125
--- /dev/null
+++ b/configure.d/config_modules_security_modules
@@ -0,0 +1,51 @@
+# -*- sh -*-
+security_def_list="usm"
+security_src_list=""
+security_obj_list="" 	 
+security_lobj_list=""
+if test "x$security_init_file" = "x" ; then
+    security_init_file="snmplib/snmpsm_init.h"
+fi
+if test "x$security_incl_file" = "x" ; then
+    security_incl_file="include/net-snmp/library/snmpv3-security-includes.h"
+fi
+new_with_security=`echo $with_security_modules | $SED 's/,/ /g;'`
+new_with_out_security=`echo $with_out_security_modules | $SED 's/,/ /g;'`
+
+echo "/* This file is automatically generated by configure.  Do not modify by hand. */" > $security_init_file
+echo "/* This file is automatically generated by configure.  Do not modify by hand. */" > $security_incl_file
+
+for i in $security_def_list; do
+  if echo " $new_with_out_security " | $GREP " $i " > /dev/null; then
+    if test "x$i" = "xusm"; then
+	echo
+        AC_MSG_ERROR(The USM security module is mandatory)
+    fi
+  else
+    new_with_security="$new_with_security $i"
+  fi
+done
+
+for i in $new_with_security; do
+  cfile="snmp"$i".c"
+  hfile="snmp"$i".h"
+
+  # make sure support exists for it
+  if test -f $srcdir"/snmplib/"$cfile -a -f $srcdir"/include/net-snmp/library/"$hfile; then
+    :
+  else
+    echo
+    AC_MSG_ERROR(No such security module: $i / $cfile / $hfile)
+  fi
+
+  # define a bunch of stuff to enable it
+  security_src_list="$security_src_list $cfile"
+  security_hdr_list="$security_hdr_list $hfile"
+  security_obj_list="$security_obj_list snmp"$i".o" 	 
+  security_lobj_list="$security_lobj_list snmp"$i".lo"
+  def_name="NETSNMP_SECMOD_"`echo $i | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  echo "init_"$i"();" >> $security_init_file
+  echo "#include <net-snmp/library/$hfile>" >> $security_incl_file
+  AC_DEFINE_UNQUOTED($def_name)
+done
+
diff --git a/configure.d/config_modules_transports b/configure.d/config_modules_transports
new file mode 100644
index 0000000..aa27146
--- /dev/null
+++ b/configure.d/config_modules_transports
@@ -0,0 +1,134 @@
+# -*- sh -*-
+transport_src_list=""
+transport_hdr_list=""
+transport_def_list=""
+transport_result_list=""
+transport_add_list=""
+new_with_transport_list=`echo $with_transports | $SED 's/,/ /g;'`
+new_with_out_transport_list=`echo $with_out_transports | $SED 's/,/ /g;'`
+
+# set up the CPP command
+MODULECPP="$CPP $PARTIALTARGETFLAGS -I${srcdir} -I${srcdir}/include"
+
+#
+# Add the default transports to the list
+#
+if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then 
+  transport_default_list="UDP TCP Alias Callback"
+else
+  transport_default_list="UDP TCP Alias Unix Callback"
+fi
+if test "x$enable_ipv6" = "xyes"; then
+  transport_default_list="UDPIPv6 TCPIPv6 $transport_default_list"
+fi
+for i in $transport_default_list; do
+  if echo " $new_with_transport_list " | $GREP " $i " >/dev/null; then
+    :
+  else
+    transport_add_list="$i $transport_add_list"
+  fi
+done
+new_transport_list="$transport_add_list $new_with_transport_list"
+
+if test "x$ctor_header" = "x" ; then
+   ctor_header="snmplib/transports/snmp_transport_inits.h"
+fi
+
+echo "/* This file is automatically generated by configure.  Do not modify by hand. */" > $ctor_header
+while test "x$new_transport_list" != "x"; do
+  future_new_transport_list=""
+  for i in $new_transport_list; do
+    if echo " $new_with_out_transport_list " | $GREP " $i " >/dev/null; then
+      true
+    else
+      if test "x$enable_ipv6" != "xyes"; then
+          if test "x$i" = "xUDPIPv6" -o "x$i" = "xTCPIPv6"; then
+              AC_MSG_ERROR(IPv6 transports not available if IPv6 support is not enabled)
+          fi
+      fi
+      transport_src="transports/snmp"$i"Domain.c"
+      transport_hdr="snmp"$i"Domain.h"
+      rel_transport_src="snmplib/"$transport_src
+      rel_transport_hdr="include/net-snmp/library/"$transport_hdr
+      lc_i=`echo $i | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+      ctor_fn="netsnmp_"$lc_i"_ctor"
+      if test -f "$srcdir/$rel_transport_src"; then
+        transport_result_list="$transport_result_list $i"
+        transport_src_list="$transport_src $transport_src_list"
+        if test -f "$srcdir/$rel_transport_hdr"; then
+          transport_hdr_list="$transport_hdr $transport_hdr_list"
+        fi
+        transport_def=`echo $i | $SED 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+        transport_def_list="NETSNMP_TRANSPORT_"$transport_def"_DOMAIN $transport_def_list"
+      else
+        echo
+        AC_MSG_ERROR(Cannot find file $srcdir/$rel_transport_src to support SNMP transport domain $i.)
+      fi
+
+      #---------------------
+      # build a pseudo include header that includes current config and
+      # system symbols:
+      rm -f conftest.$ac_ext module_tmp_header.h
+      AC_LANG_CONFTEST(AC_LANG_SOURCE([[
+#include NETSNMP_SYSTEM_INCLUDE_FILE
+#define NET_SNMP_CONFIG_H
+#undef config_require
+#define config_require(foo) config_checkit_require(foo)
+#undef config_error
+#define config_error(foo) config_checkit_error(foo)
+#include "$rel_transport_hdr"]]))
+      mv conftest.$ac_ext module_tmp_header.h
+
+      #
+      # check for dependencies using config_require() macro
+      #
+      sub_list=`$MODULECPP module_tmp_header.h | $GREP config_checkit_require | $SED 's/.*config_checkit_require *( *\(.*\) *).*/\1/'`
+      if test "x$sub_list" != "x" ; then
+        for j in $sub_list ; do
+	  if echo " $future_new_transport_list $new_transport_list " | $GREP " $j " > /dev/null ; then
+	    :
+	  else
+            future_new_transport_list="$future_new_transport_list $j"
+	  fi
+        done
+      fi
+
+      #
+      # check for errors using config_error() macro
+      #
+      error_list=`$MODULECPP module_tmp_header.h | $GREP config_checkit_error | $SED 's/.*config_checkit_error(\(.*\)).*/\1/g'`
+      if test "x$error_list" != "x" ; then
+        echo ""
+        AC_MSG_ERROR($error_list)
+      fi
+
+      #
+      # Check for needed constructor initialization routines to call
+      #
+      found=`grep $ctor_fn $srcdir/$rel_transport_src`
+      if grep $ctor_fn $srcdir/$rel_transport_src > /dev/null ; then
+	# we add them down below instead of here to make sure
+	# config_require dependency constructors get called first.
+	tr_init_list="$ctor_fn $tr_init_list"
+      fi
+    fi
+  done # for each new transport
+  new_transport_list="$future_new_transport_list"
+done # while new transports exist
+transport_obj_list=`echo " $transport_src_list " | $SED 's/\.c/\.o/g'`
+transport_lobj_list=`echo " $transport_src_list " | $SED 's/\.c/\.lo/g'`
+for i in $tr_init_list ; do
+   echo "$i();" >> $ctor_header
+done
+
+## win32 platforms require inet_ntop etc.
+if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
+  if echo "$transport_def_list" | $GREP "IPV6" >/dev/null; then
+    transport_obj_list="$transport_obj_list inet_ntop.o inet_pton.o"
+    transport_lobj_list="$transport_lobj_list inet_ntop.lo inet_pton.lo"
+  fi
+fi
+
+if test "x$transport_result_list" = x ; then
+   AC_MSG_ERROR([No transports configured, at least one must be provided])
+fi
diff --git a/configure.d/config_os_functions b/configure.d/config_os_functions
index a7162d6..57d7854 100644
--- a/configure.d/config_os_functions
+++ b/configure.d/config_os_functions
@@ -31,32 +31,67 @@
                [signal          sigset                  ] )
 
 #  Library:
-AC_CHECK_FUNCS([fork            gai_strerror                   ] dnl
-               [getaddrinfo     gethostname   gethostbyname    ] dnl
-               [getipnodebyname               gettimeofday     ] dnl
-               [if_nametoindex  mkstemp       regcomp          ] dnl
-               [readdir                                        ] dnl
-               [setenv          setitimer     setlocale        ] dnl
-               [setsid          snprintf                       ] dnl
-               [strcasestr      strdup        strerror         ] dnl
-               [strlcat         strlcpy       strncasecmp      ] dnl
-               [strtok_r        strtol        strtoul          ] dnl
-               [strtoull        sysconf       times            ] dnl
-               [vsnprintf                                      ] )
+AC_CHECK_FUNCS([closedir        fork            getipnodebyname  ] dnl
+               [gettimeofday    if_nametoindex  mkstemp          ] dnl
+               [opendir         readdir         regcomp          ] dnl
+               [setenv          setitimer       setlocale        ] dnl
+               [setsid          snprintf        strcasestr       ] dnl
+               [strdup          strerror        strncasecmp      ] dnl
+               [sysconf         times           vsnprintf        ] )
+
+# IPv4/IPv6 function checks. AC_CHECK_FUNC() can't find these on MinGW
+# since these functions have the __cdecl calling convention on MinGW.
+case x$target_os in
+  xmingw*)
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <ws2tcpip.h>],
+    [ gai_strerror(0); ])],
+    [ ac_cv_func_gai_strerror=yes
+      AS_ECHO "#define HAVE_GAI_STRERROR 1" >>confdefs.h
+    ], [ ])
+
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <ws2tcpip.h>],
+    [ getaddrinfo(NULL, NULL, NULL, NULL); ])],
+    [ ac_cv_func_getaddrinfo=yes
+      AS_ECHO "#define HAVE_GETADDRINFO 1" >>confdefs.h
+    ], [ ])
+
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <winsock2.h>],
+    [ gethostbyname(NULL); ])],
+    [ ac_cv_func_gethostbyname=yes
+      AS_ECHO "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h
+    ], [ ])
+
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <winsock2.h>],
+    [ gethostname(NULL, 0); ])],
+    [ ac_cv_func_gethostname=yes
+      AS_ECHO "#define HAVE_GETHOSTNAME 1" >>confdefs.h
+    ], [ ])
+    ;;
+
+  *)
+    AC_CHECK_FUNCS([gai_strerror getaddrinfo gethostbyname gethostbyname2 gethostname])
+    ;;
+esac
+
+AC_CONFIG_LIBOBJ_DIR([snmplib])
+
+AC_REPLACE_FUNCS([getopt        inet_ntop     inet_pton        ] dnl
+                 [strlcat       strlcpy       strtok_r         ] dnl
+                 [strtol        strtoul       strtoull         ] )
 
 #  Agent:
-AC_CHECK_FUNCS([cgetnext        execv         gai_strerror     ] dnl
-               [getfsstat       getgrnam      gethostname      ] dnl
-               [                getloadavg                     ] dnl
-               [getpid          getpwnam      getvfsstat       ] dnl
+AC_CHECK_FUNCS([cgetnext        chown          execv           ] dnl
+               [gai_strerror                   getgrnam        ] dnl
+               [gethostname     getloadavg                     ] dnl
+               [getpid          getpwnam                       ] dnl
                [hasmntopt       initgroups                     ] dnl
-               [if_nameindex    if_nametoindex                 ] dnl
-               [kinfo_get_cpus                                 ] dnl
-               [mkstemp         mktime                         ] dnl
+               [if_nameindex    if_indextoname if_nametoindex  ] dnl
+               [localtime_r     mkstemp        mktime          ] dnl
                [poll            regcomp                        ] dnl
                [setgid          setgroups                      ] dnl
                [setmntent       setuid                         ] dnl
                [sigaction       sigblock      sighold          ] dnl
+               [sigprocmask                                    ] dnl
                [statfs          statvfs       stime            ] dnl
                [strncasecmp     system                         ] dnl
                [uname           usleep                         ] )
@@ -92,7 +127,7 @@
 AC_MSG_CHECKING([[for two-argument statfs with struct fs_data (Ultrix)]])
 AC_CACHE_VAL(
     fu_cv_sys_stat_fs_data,
-    [AC_TRY_RUN([
+    [AC_RUN_IFELSE([AC_LANG_SOURCE([[
 #ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
 #endif
@@ -109,10 +144,10 @@
 /* Ultrix's statfs returns 1 for success,
    0 for not mounted, -1 for failure.  */
 exit (statfs (".", &fsd) != 1);
-}],
-    fu_cv_sys_stat_fs_data=yes,
-    fu_cv_sys_stat_fs_data=no,
-    fu_cv_sys_stat_fs_data=no)])
+}]])],
+    [fu_cv_sys_stat_fs_data=yes],
+    [fu_cv_sys_stat_fs_data=no],
+    [fu_cv_sys_stat_fs_data=no])])
 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
 if test $fu_cv_sys_stat_fs_data = yes; then
     AC_DEFINE(STAT_STATFS_FS_DATA, 1,
@@ -228,3 +263,55 @@
 AC_MSG_RESULT($netsnmp_PRIz)
 AC_DEFINE_UNQUOTED([NETSNMP_PRIz], ["$netsnmp_PRIz"],
                    [Size prefix to use to printf a size_t or ssize_t])
+
+##
+#   Check how to print a uint32_t variable
+##
+
+AC_CACHE_CHECK(
+    [the underlying type of an uint32_t],
+    netsnmp_cv_uint32_t_type,
+    [m4_foreach([TYPE], [[char],[short],[int],[long],[long long]],
+     [if [[ x$netsnmp_cv_uint32_t_type = x ]] ; then
+         AC_COMPILE_IFELSE(
+	     [AC_LANG_PROGRAM(
+[AC_INCLUDES_DEFAULT()
+extern unsigned TYPE variable;
+extern uint32_t variable;],
+                 [])],
+             [netsnmp_cv_uint32_t_type="TYPE"])
+     fi
+    ])])
+
+AC_MSG_CHECKING([how to printf a uint32_t])
+case "$netsnmp_cv_uint32_t_type" in
+    char|short|int) netsnmp_PRI32="" ;;
+    long) netsnmp_PRI32="l" ;;
+    "long long") netsnmp_PRI32="ll" ;;
+    *) AC_MSG_ERROR([underlying type of uint32_t not known]) ;;
+esac
+AC_MSG_RESULT($netsnmp_PRI32)
+AC_DEFINE_UNQUOTED([NETSNMP_PRI32], ["$netsnmp_PRI32"],
+                   [Size prefix to use to printf a uint32_t])
+
+# check to see if the openssl is good enough for DTLS
+# (BIO_dgram_get_peer is a macro, not a true function)
+if echo " $transport_result_list " | $GREP "DTLS" > /dev/null; then
+    AC_CACHE_VAL(
+       netsnmp_cv_bio_dgram_get_peer,
+       AC_MSG_CHECKING([[for BIO_dgram_get_peer]])
+       [
+        oldLIBS="$LIBS"
+        LIBS="$LIBS -lcrypto"
+        AC_LINK_IFELSE(
+          [AC_LANG_PROGRAM(
+            [[#include <openssl/bio.h>]],
+            [[BIO_dgram_get_peer(NULL, NULL);]])], [],
+          [AC_MSG_ERROR(DTLS support requires a newer version of OpenSSL)])
+
+        LIBS="$oldLIBS"
+       ]
+       AC_MSG_RESULT(yes)
+    )
+fi
+
diff --git a/configure.d/config_os_headers b/configure.d/config_os_headers
index 3803734..19b27fc 100644
--- a/configure.d/config_os_headers
+++ b/configure.d/config_os_headers
@@ -13,6 +13,9 @@
 #  Apps:
 AC_HEADER_SYS_WAIT      #  <sys/wait.h>
 
+# allow for quick module/library/etc processing checks
+if test "x$NETSNMP_QUICK_CHECK" = "x" ; then
+
 ##
 #   Stand-alone headers:
 ##
@@ -24,6 +27,7 @@
                  [sys/select.h       ] dnl
                  [sys/socket.h       ] dnl
                  [sys/time.h         ] dnl
+                 [sys/timeb.h        ] dnl
                  [sys/un.h           ])
 
 #  Library and Agent:
@@ -204,6 +208,9 @@
 #endif
     ]])
 
+#	QNX
+AC_CHECK_HEADERS([nbutil.h])
+
 #       UFS headers
 #  Agent:
 #
@@ -473,7 +480,12 @@
 *** To monitor CPU/memory values in AIX you need to install
 *** libperfstat which can be found in bos.perf
 ]),,
-                LMIBLIBS))
+                LMIBLIBS),,
+    [[
+#if HAVE_SYS_PROTOSW_H
+#include <sys/protosw.h>
+#endif
+    ]])
         ;;
     hpux*)
         #       HP-UX agent needs open_mib       (XXX - not a header check!)
@@ -504,5 +516,6 @@
 #
 # for ucd-snmp/lmsensorsMib
 #
-AC_CHECK_HEADERS([sensors/sensors.h])
+AC_CHECK_HEADERS([sensors/sensors.h picl.h])
 
+fi # NETSNMP_QUICK_CHECK
diff --git a/configure.d/config_os_libs2 b/configure.d/config_os_libs2
index cc47545..a698319 100644
--- a/configure.d/config_os_libs2
+++ b/configure.d/config_os_libs2
@@ -223,13 +223,15 @@
 #   Security related functions
 #
 NONAGENTLIBS=$LIBS	 # save old libraries
-SSHINSTALLBINPROGS=""
-if test "x$tryopenssl" != "xno"; then
+SSHPROG=no
+TLSPROG=no
+if test "x$tryopenssl" != "xno" -a "x$tryopenssl" != "xinternal"; then
+    # check for libpkcs11 if asked
     if test "x$askedopenssl" != "xyes" -a "x$askedpkcs" = "xyes"; then
         AC_CHECK_LIB(pkcs11, C_Initialize,
             AC_DEFINE(HAVE_LIBPKCS11, 1,
                 [Define to 1 if you have the `pkcs11' library (-lpkcs11).])
-            LIBPKCS11="-lpkcs11")
+		LIBPKCS11="-lpkcs11")
     else 
         if test "x$tryrsaref" != "xno"; then
             AC_CHECK_LIB(rsaref, RSAPrivateDecrypt)
@@ -265,12 +267,21 @@
                 AC_DEFINE([HAVE_EVP_MD_CTX_DESTROY], [],
                     [Define to 1 if you have the `EVP_MD_CTX_destroy' function.]))
         fi
+        if echo " $transport_result_list " | $GREP "DTLS" > /dev/null; then
+	    AC_CHECK_LIB(ssl, DTLSv1_method,
+                AC_DEFINE(HAVE_LIBSSL_DTLS, 1,
+                    [Define to 1 if your `ssl' library supports DTLS (-lssl).])
+                LIBCRYPTO=" -lssl $LIBCRYPTO",	
+		AC_MSG_ERROR([The DTLS based transports require the libssl library from OpenSSL to be available and support DTLS])	,-lcrypto)
+            TLSPROG=yes
+        fi
         if echo " $transport_result_list " | $GREP "TLS" > /dev/null; then
 	    AC_CHECK_LIB(ssl, SSL_library_init,
                 AC_DEFINE(HAVE_LIBSSL, 1,
                     [Define to 1 if you have the `ssl' library (-lssl).])
                 LIBCRYPTO=" -lssl $LIBCRYPTO",	
 		AC_MSG_ERROR([The DTLS based transports require the libssl library from OpenSSL to be available])	,-lcrypto)
+            TLSPROG=yes
         fi
         if echo " $transport_result_list " | $GREP " SSH " > /dev/null; then
 	    AC_CHECK_LIB(ssh2, libssh2_session_startup,
@@ -278,7 +289,7 @@
                     [Define to 1 if you have the `ssh2' library (-lssh2).])
                 LIBCRYPTO=" -lssh2 $LIBCRYPTO",
                 AC_MSG_ERROR([The SSH transport requires the libssh2 library to be available]),)
-            SSHINSTALLBINPROGS=sshtosnmp
+            SSHPROG=yes
         fi
     fi
 elif test "x$askedpkcs" = "xyes"; then
@@ -287,8 +298,53 @@
         LIBPKCS11="-lpkcs11")
 fi
 LIBS=$NONAGENTLIBS	 # restore old libraries
-AC_SUBST(SSHINSTALLBINPROGS)
+if test "x$SSHPROG" = "xyes"; then
+    NETSNMP_BUILD_SSH_PROG_TRUE=''
+    NETSNMP_BUILD_SSH_PROG_FALSE='#'
+else
+    NETSNMP_BUILD_SSH_PROG_TRUE='#'
+    NETSNMP_BUILD_SSH_PROG_FALSE=''
+fi
+if test "x$TLSPROG" = "xyes"; then
+    NETSNMP_BUILD_TLS_PROG_TRUE=''
+    NETSNMP_BUILD_TLS_PROG_FALSE='#'
+else
+    NETSNMP_BUILD_TLS_PROG_TRUE='#'
+    NETSNMP_BUILD_TLS_PROG_FALSE=''
+fi
+AC_SUBST(NETSNMP_BUILD_SSH_PROG_TRUE)
+AC_SUBST(NETSNMP_BUILD_SSH_PROG_FALSE)
+AC_SUBST(NETSNMP_BUILD_TLS_PROG_TRUE)
+AC_SUBST(NETSNMP_BUILD_TLS_PROG_FALSE)
 
+#
+# If we're using internal crypto support we need to compile in extra files
+#
+crypto_files_c=""
+crypto_files_o=""
+crypto_files_lo=""
+if test "x$tryopenssl" != "xno" -a "x$CRYPTO" = "x"; then
+   # If we:
+   #   1) couldn't find needed openssl support
+   #   2) OR were asked to use internal support
+   #   3) AND we have the needed files
+   # then use it
+   CRYPTO="internal"
+   crypto_files_c="openssl/openssl_sha1.c openssl/openssl_md5.c openssl/openssl_set_key.c openssl/openssl_des_enc.c openssl/openssl_cbc_enc.c openssl/openssl_aes_cfb.c openssl/openssl_aes_core.c openssl/openssl_cfb128.c"
+   crypto_files_o="openssl/openssl_sha1.o openssl/openssl_md5.o openssl/openssl_set_key.o openssl/openssl_des_enc.o openssl/openssl_cbc_enc.o openssl/openssl_aes_cfb.o openssl/openssl_aes_core.oo openssl/openssl_cfb128.o"
+   crypto_files_lo="openssl/openssl_sha1.lo openssl/openssl_md5.lo openssl/openssl_set_key.lo openssl/openssl_des_enc.lo openssl/openssl_cbc_enc.lo openssl/openssl_aes_cfb.lo openssl/openssl_aes_core.lo openssl/openssl_cfb128.lo"
+   AC_DEFINE(HAVE_AES_CFB128_ENCRYPT)
+fi
+AC_SUBST(crypto_files_c)
+AC_SUBST(crypto_files_o)
+AC_SUBST(crypto_files_lo)
+
+#
+# if we can do any sort of crypto then note it
+#
+if test "x$CRYPTO" != "x" ; then
+  AC_DEFINE(NETSNMP_CAN_DO_CRYPTO, 1, "Define if crytography support is possible")
+fi
 
 #   TCP wrapper support
 #
@@ -307,12 +363,11 @@
   LIBS="$LIBS -lwrap"
   AC_MSG_CHECKING([for TCP wrappers library -lwrap])
   # XXX: should check for hosts_ctl
-  AC_TRY_LINK(
-    [#include <sys/types.h>
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
      #include <tcpd.h>
      int allow_severity = 0;
-     int deny_severity  = 0;],
-    [hosts_access((void *)0)],
+     int deny_severity  = 0;]],
+    [[hosts_access((void *)0)]])],
     [AC_MSG_RESULT([yes])
      AC_DEFINE(NETSNMP_USE_LIBWRAP)
      test "$with_libwrap" != no -a "$with_libwrap" != yes && _wraplibs="-L$with_libwrap/lib"
@@ -322,12 +377,11 @@
      AC_CHECK_FUNC(yp_get_default_domain, ,
        AC_CHECK_LIB(nsl, yp_get_default_domain))
      AC_MSG_CHECKING([for TCP wrappers library -lwrap linked with -lnsl])
-     AC_TRY_LINK(
-       [#include <sys/types.h>
+     AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
 	#include <tcpd.h>
 	int allow_severity = 0;
-	int deny_severity  = 0;],
-       [hosts_access((void *)0)],
+	int deny_severity  = 0;]],
+       [[hosts_access((void *)0)]])],
        [AC_MSG_RESULT(yes)
 	AC_DEFINE(NETSNMP_USE_LIBWRAP)
 	test "$with_libwrap" != no -a "$with_libwrap" != yes && _wraplibs="-L$with_libwrap/lib"
diff --git a/configure.d/config_os_misc2 b/configure.d/config_os_misc2
index 3d867b2..d90036d 100644
--- a/configure.d/config_os_misc2
+++ b/configure.d/config_os_misc2
@@ -43,7 +43,16 @@
 
 #       Available authentication/encryption modes
 #
-if test "x$useopenssl" != "xno" ; then
+if test "x$CRYPTO" = "xinternal" ; then
+    authmodes="MD5 SHA1"
+    if test "x$enable_privacy" != "xno" ; then
+        encrmodes="DES AES"
+    else
+        encrmodes="[disabled]"
+    fi
+    AC_DEFINE(NETSNMP_USE_INTERNAL_CRYPTO, 1, "Define if internal cryptography code should be used")
+    AC_MSG_RESULT(Internal Crypto Support)
+elif test "x$useopenssl" != "xno" ; then
     authmodes="MD5 SHA1"
     if test "x$enable_privacy" != "xno" ; then
         if test "x$ac_cv_header_openssl_aes_h" = "xyes" ; then
@@ -80,6 +89,7 @@
 AC_SUBST(LNETSNMPLIBS)
 AC_SUBST(LAGENTLIBS)
 
+AC_MSG_CACHE_ADD(Crypto support from:        $CRYPTO)
 AC_MSG_CACHE_ADD(Authentication support:     $authmodes)
 AC_MSG_CACHE_ADD(Encryption support:         $encrmodes)
 
diff --git a/configure.d/config_os_misc4 b/configure.d/config_os_misc4
index 81dded5..73f8087 100644
--- a/configure.d/config_os_misc4
+++ b/configure.d/config_os_misc4
@@ -143,6 +143,22 @@
 #   System/Compilation-related
 ##
 
+#       Test for SIGHUP
+#
+
+AC_MSG_CHECKING([for SIGHUP])
+AC_COMPILE_IFELSE(
+    [AC_LANG_PROGRAM([#include <signal.h>], [return SIGHUP])],
+    [netsnmp_have_sighup=yes],
+    [netsnmp_have_sighup=no]
+)
+AC_MSG_RESULT([$netsnmp_have_sighup])
+if test "x$netsnmp_have_sighup" = xyes; then
+    AC_DEFINE([HAVE_SIGHUP], [1],
+              [Define if SIGHUP is defined in <signal.h>.])
+fi
+
+
 #       Check whether sysctl() is usable
 #	    used in library/agent
 #
@@ -195,6 +211,39 @@
   AC_DEFINE(NETSNMP_CAN_USE_SYSCTL, 1, [sysctl works to get boottime, etc...])
 fi
 
+#   Check FreeBSD's kernel OID kern.cp_times existance
+#
+#         used in agent only 
+#
+if test $cross_compiling = yes; then
+    AC_MSG_WARN([Can't check either sysctl kern.cp_times, manually define HAVE_KERN_CP_TIMES if platform support available])
+else
+    AC_CACHE_CHECK([if sysctl provides kern.cp_times kernel information],
+        ac_cv_HAVE_KERN_CP_TIMES,
+       [AC_TRY_RUN([
+#include <sys/types.h>
+#include <sys/sysctl.h>
+#include <stdlib.h>
+
+main () {
+
+  size_t              cp_times_size;
+  size_t              ncpu_size;
+
+  if (sysctlbyname("kern.cp_times", NULL, &cp_times_size, NULL, 0))
+    exit(1);
+  else
+    exit(0);
+}
+        ],
+        ac_cv_HAVE_KERN_CP_TIMES=yes,
+        ac_cv_HAVE_KERN_CP_TIMES=no,
+        ac_cv_HAVE_KERN_CP_TIMES=no)])
+fi
+
+if test "x$ac_cv_HAVE_KERN_CP_TIMES" = "xyes"; then
+  AC_DEFINE(HAVE_KERN_CP_TIMES, 1, [kern.cp_times displays multi cpu load on FreeBSD...])
+fi
 
 #   Check whether TCP timer constants are indeed constant
 #       or depend on the kernel clock tick 'hz'.        (FreeBSD 4.x)
@@ -284,3 +333,100 @@
     fi         # "test $ac_inet_ip_h = yes"
     ;;
 esac
+
+#   Check whether IP_PKTINFO is usable.
+#
+
+AC_CACHE_CHECK([for IP_PKTINFO ],
+                [ac_cv_have_ip_pktinfo],
+[AC_LINK_IFELSE([AC_LANG_PROGRAM([
+#include <stdio.h>  /* printf() */
+#include <stdlib.h> /* malloc() */
+#include <string.h> /* memset() */
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+], [
+    void *buf;
+    int len;
+    void *from;
+    socklen_t *fromlen;
+
+    struct iovec iov;
+    char *cmsg = malloc(CMSG_SPACE(sizeof(struct in_pktinfo)));
+    struct cmsghdr *cm;
+    struct msghdr msg;
+
+    iov.iov_base = buf;
+    iov.iov_len = len;
+
+    memset(&msg, 0, sizeof msg);
+    msg.msg_name = from;
+    msg.msg_namelen = *fromlen;
+    msg.msg_iov = &iov;
+    msg.msg_iovlen = 1;
+    msg.msg_control = &cmsg;
+    msg.msg_controllen = sizeof(cmsg);
+
+    for (cm = CMSG_FIRSTHDR(&msg); cm; cm = CMSG_NXTHDR(&msg, cm)) {
+        if (cm->cmsg_level == SOL_IP && cm->cmsg_type == IP_PKTINFO) {
+            struct in_pktinfo* src = (struct in_pktinfo *)CMSG_DATA(cm);
+            printf("Address: %s; index: %d\n", inet_ntoa(src->ipi_addr),
+	           src->ipi_ifindex);
+        }
+    }
+])],
+[ac_cv_have_ip_pktinfo=yes],
+[ac_cv_have_ip_pktinfo=no]
+)])
+if test x$ac_cv_have_ip_pktinfo = xyes; then
+    AC_DEFINE(HAVE_IP_PKTINFO, 1, [Set if IP_PKTINFO is usable])
+fi
+
+#   Check whether IP_RECVDSTADDR is usable.
+#
+
+AC_CACHE_CHECK([for IP_RECVDSTADDR ],
+                [ac_cv_have_ip_recvdstaddr],
+[AC_LINK_IFELSE([AC_LANG_PROGRAM([
+#include <stdio.h>  /* printf() */
+#include <stdlib.h> /* malloc() */
+#include <string.h> /* memset() */
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+], [
+    void *buf;
+    int len;
+    void *from;
+    socklen_t *fromlen;
+
+    struct iovec iov;
+    char *cmsg = malloc(CMSG_SPACE(sizeof(struct in_addr)));
+    struct cmsghdr *cm;
+    struct msghdr msg;
+
+    iov.iov_base = buf;
+    iov.iov_len = len;
+
+    memset(&msg, 0, sizeof msg);
+    msg.msg_name = from;
+    msg.msg_namelen = *fromlen;
+    msg.msg_iov = &iov;
+    msg.msg_iovlen = 1;
+    msg.msg_control = &cmsg;
+    msg.msg_controllen = sizeof(cmsg);
+
+    for (cm = CMSG_FIRSTHDR(&msg); cm; cm = CMSG_NXTHDR(&msg, cm)) {
+        if (cm->cmsg_level == IPPROTO_IP && cm->cmsg_type == IP_RECVDSTADDR) {
+            struct in_addr* src = (struct in_addr *)CMSG_DATA(cm);
+            printf("Address: %s\n", inet_ntoa(src));
+        }
+    }
+])],
+[ac_cv_have_ip_recvdstaddr=yes],
+[ac_cv_have_ip_recvdstaddr=no]
+)])
+if test x$ac_cv_have_ip_recvdstaddr = xyes; then
+    AC_DEFINE(HAVE_IP_RECVDSTADDR, 1, [Set if IP_RECVDSTADDR is usable])
+fi
diff --git a/configure.d/config_os_progs b/configure.d/config_os_progs
index addbc71..dd3eb0f 100644
--- a/configure.d/config_os_progs
+++ b/configure.d/config_os_progs
@@ -40,6 +40,16 @@
 AC_PROG_MAKE_SET
 AC_PROG_SED
 
+AC_CHECK_PROGS([FILE], [file])
+if test x$ac_cv_prog_FILE = x; then
+  # The file program is not included in the default Cygwin setup, although
+  # this program is essential for libtool to work properly. It is nontrivial
+  # to deduce from the message printed by libtool that the 'file' tool is
+  # missing and libtool does not abort when the file program is not found. So
+  # stop now if the file program has not been found.
+  AC_MSG_ERROR([file program not found although it is needed by libtool.], [1])
+fi
+
 AC_CHECK_PROGS(FIND,   find)
 AC_CHECK_PROGS(WHOAMI, whoami logname, whoami)
 
@@ -67,6 +77,24 @@
 
 
 ##
+#   The Perl function system() is used for running the Net-SNMP regression
+#   tests. Find out whether that function invokes a POSIX shell, which is
+#   necessary in order to run the regression tests. When using Windows + MSYS
+#   + ActiveState Perl, Perl's system() function does invoke Windows' cmd.exe
+#   which is not a POSIX shell.
+##
+
+AC_MSG_CHECKING([whether the Perl function system() invokes a POSIX shell])
+if test "x$PERLPROG" != 'x' && test -x "$PERLPROG" && test "x`$PERLPROG -e 'system('\''echo $OSTYPE'\'');'`" != 'x$OSTYPE'; then
+    PERL_SYSTEM_INVOKES_POSIX_SHELL=yes
+else
+    PERL_SYSTEM_INVOKES_POSIX_SHELL=no
+fi
+AC_MSG_RESULT([$PERL_SYSTEM_INVOKES_POSIX_SHELL])
+AC_SUBST([PERL_SYSTEM_INVOKES_POSIX_SHELL])
+
+
+##
 #   Compilation-related program checks:
 ##
 
@@ -187,7 +215,11 @@
 #
 case x$target_os in
   xmingw*)
-    with_socklib=winsock2;;
+    with_socklib=winsock2
+    if test "x$enable_ipv6" = "xyes"; then
+      CFLAGS="-D_WIN32_WINNT=0x0501 $CFLAGS"
+    fi
+    ;;
   *)
     with_socklib=default;;
 esac
@@ -345,7 +377,7 @@
 #
     
 case $target_os in
-    aix4.2*|aix4.3*|aix5*|aix6*)
+    aix4.2*|aix4.3*|aix5*|aix6*|aix7*)
         #   Runtime linking flags                       (AIX)
         #
         AC_MSG_CHECKING([what linker flags to add to enable runtime linking on AIX])
@@ -368,7 +400,7 @@
 	fi
 	;;
 
-    darwin8*|darwin9*)
+    darwin8*|darwin9*|darwin10*)
         #   Flat Namespace linking                      (Mac OS/X)
         #
         AC_MSG_CHECKING([whether darwin ld might need -flat_namespace])
@@ -385,6 +417,14 @@
 esac
 
 
+#       dpkg package (swintst_apt)
+#	    used in agent only
+#
+AC_PATH_PROG([DPKG_QUERY_PATH], dpkg-query)
+if test x$DPKG_QUERY_PATH != x; then
+    AC_DEFINE(HAVE_DPKG_QUERY, 1, [Set if the dpkg-query command is available])
+fi
+
 
 ##
 #   Non-program/compilation checks:
diff --git a/configure.d/config_os_struct_members b/configure.d/config_os_struct_members
index 3c4bde6..182d763 100644
--- a/configure.d/config_os_struct_members
+++ b/configure.d/config_os_struct_members
@@ -192,27 +192,16 @@
 #endif
     ]])
 
-#       struct msghdr
+#       struct sockaddr_un
 #   Library:
 #
-AC_CHECK_MEMBERS([struct msghdr.msg_control],,,[
-    AC_INCLUDES_DEFAULT()
+AC_CHECK_SIZEOF([sockaddr_un.sun_path],,[
+    AC_INCLUDES_DEFAULT
     [
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
+#if HAVE_SYS_UN_H
+#include <sys/un.h>
 #endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_WINSOCK2_H
-#include <winsock2.h>
-#endif
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
+struct sockaddr_un sockaddr_un;
     ]])
 
 #       struct statfs
@@ -221,6 +210,7 @@
 AC_CHECK_MEMBERS([struct statfs.f_favail,
                   struct statfs.f_ffree,
                   struct statfs.f_files,
+                  struct statfs.f_flags,
                   struct statfs.f_frsize],,,[
     AC_INCLUDES_DEFAULT()
     [
@@ -233,6 +223,9 @@
 #ifdef HAVE_SYS_MOUNT_H
 #include <sys/mount.h>
 #endif 
+#ifdef HAVE_NBUTIL_H
+#include <nbutil.h>
+#endif 
     ]])
 
 #       struct statvfs
@@ -306,6 +299,49 @@
 #endif
     ]])
 
+#       extern timezone
+AC_MSG_CHECKING([extern timezone])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+]], [[
+  return timezone;
+]])], [
+AC_MSG_RESULT([yes])
+AC_DEFINE([HAVE_TIMEZONE_VARIABLE], [1], [Define if a timezone variable is declared in <sys/time.h>])
+], [
+AC_MSG_RESULT([no])
+])
+
+#       struct timezone
+#   Library:
+#
+AC_CHECK_MEMBERS([struct timezone.tz_dsttime],,,[
+    AC_INCLUDES_DEFAULT()
+    [
+#ifdef HAVE_SYS_TIMEB_H
+# include <sys/timeb.h>
+#endif
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# ifdef HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+    ]])
+
 #       struct udpstat
 #   Agent:
 #
diff --git a/configure.d/config_project_ipv6_types b/configure.d/config_project_ipv6_types
index 5a1b3fb..35886a1 100644
--- a/configure.d/config_project_ipv6_types
+++ b/configure.d/config_project_ipv6_types
@@ -160,18 +160,6 @@
 				v6trylibc=yes;
 				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
 			;;
-		cygwin)
-			AC_EGREP_CPP(yes, [
-#include <netinet/in.h>
-#ifdef _CYGWIN_IN6_H
-yes
-#endif],
-				[v6type=$i;
-				v6lib=dummy;
-				v6libdir=none
-				v6trylibc=yes;
-				CFLAGS="-DNETSNMP_ENABLE_IPV6 $CFLAGS"])
-                       ;;
 		generic)
                         AC_MSG_RESULT([[postponed]])
 			AC_CHECK_MEMBER([struct sockaddr_in6.sin6_addr],,,[
@@ -187,7 +175,7 @@
 #endif
 ]])
 	                AC_MSG_CHECKING([[ipv6 stack type]])
-                        if test "x$ac_cv_have_struct_sockaddr_in6_sin6_addr" = "xyes"; then
+                        if test "x$ac_cv_member_struct_sockaddr_in6_sin6_addr" = "xyes"; then
 				v6type=$i
 				v6lib=dummy
 				v6libdir=none
diff --git a/configure.d/config_project_paths b/configure.d/config_project_paths
index cee8367..9690c84 100644
--- a/configure.d/config_project_paths
+++ b/configure.d/config_project_paths
@@ -31,20 +31,20 @@
 
 #   Exec prefix
 #
-if test "x$exec_prefix" = "xNONE"; then
-    exec_prefix=$prefix
-fi
-
 #       Prefix must be an absolute path
 #           i.e. begin with "/"                         (Unix)
 #                or "[A-Z]:"                            (Windows)
 #
-firstchar=`echo $exec_prefix | $SED 's/\(.\).*/\1/'`
-if test "x$firstchar" != "x/" ; then
-   secondchar=`echo $exec_prefix | $SED 's/.\(.\).*/\1/'`
-   if test "x$secondchar" != "x:" ; then
-      exec_prefix=`pwd`/$exec_prefix
-      echo "adjusting exec_prefix to $exec_prefix"
+if test "x$exec_prefix" = "xNONE"; then
+   exec_prefix='${prefix}'
+else
+   firstchar=`echo $exec_prefix | $SED 's/\(.\).*/\1/'`
+   if test "x$firstchar" != "x/" ; then
+      secondchar=`echo $exec_prefix | $SED 's/.\(.\).*/\1/'`
+      if test "x$secondchar" != "x:" ; then
+         exec_prefix=`pwd`/$exec_prefix
+         echo "adjusting exec_prefix to $exec_prefix"
+      fi
    fi
 fi
 
diff --git a/configure.d/config_project_perl_python b/configure.d/config_project_perl_python
index 812b66f..798c5ce 100644
--- a/configure.d/config_project_perl_python
+++ b/configure.d/config_project_perl_python
@@ -174,6 +174,16 @@
       fi
     ;;
 
+    # Embedded perl typically fails on HP-UX and Mac OS X
+    # We really need to investigate why, and check for this explicitly
+    # But for the time being, turn this off by default
+    hpux*|darwin8*|darwin9*|darwin10*)
+        if test "x$embed_perl" = "xtry" ; then
+            AC_MSG_WARN([Embedded perl defaulting to off])
+            embed_perl="no"
+        fi
+    ;;
+
     *)
     ;;
 esac
diff --git a/configure.d/config_project_with_enable b/configure.d/config_project_with_enable
index 3a93fec..069cc07 100644
--- a/configure.d/config_project_with_enable
+++ b/configure.d/config_project_with_enable
@@ -81,10 +81,15 @@
 tryopenssl=defaultyes
 askedopenssl=no
 NETSNMP_ARG_WITH(openssl,
-[  --with-openssl=PATH             Look for openssl in PATH/lib.],
+[  --with-openssl=PATH             Look for openssl in PATH/lib,
+                                  or PATH may be "internal" to build with
+                                  minimal copied OpenSSL code for USM only.],
     if test "x$withval" = "xyes"; then
       tryopenssl=yes
       askedopenssl=yes
+    elif test "x$withval" = "xinternal"; then
+      tryopenssl=internal
+      askedopenssl=internal
     elif test "x$withval" = "xno"; then
       tryopenssl=no
     elif test -d "$withval"; then
@@ -527,8 +532,9 @@
     IPX         support for SNMP over IPX per RFC 1420.
                 This transport is presently only available for Linux,
                 is never compiled in by default and may be omitted.
+    DTLSUDP     support for tunneling SNMP over DTLS/UDP
+    TLSTCP      support for tunneling SNMP over TLS/TCP
     SSH         (alpha) support for tunneling SNMP over SSH
-    DTLSUDP     (alpha) support for tunneling SNMP over DTLS/UDP
 ])
 
 #
@@ -552,7 +558,7 @@
                            (required and always compiled in)
         ksm                support for kerberos based SNMP security
         tsm                support for the Transport-based security
-                           (for use with the SSH and DTLSUDP transports)
+                           (for use with the SSH, DTLSUDP and TLSTCP transports)
 ])
 
 
@@ -579,6 +585,8 @@
      developer="yes"
    elif test "$enableval" != no ; then
      AC_MSG_ERROR([Please use --enable/--disable-developer])
+   else
+     developer="no"
    fi])
 
 NETSNMP_ARG_ENABLE(testing-code,
diff --git a/dist/Makefile b/dist/Makefile
index d7c8f84..10a7493 100644
--- a/dist/Makefile
+++ b/dist/Makefile
@@ -19,7 +19,7 @@
 NAME = net-snmp
 
 # Define the default RPM release number. Set by Version-Munge.pl
-VERSION = 5.5.2
+VERSION = 5.6.2
 
 VERSION_TAG=`echo Ext-$(VERSION) | sed 's/\./-/g;'`
 
diff --git a/dist/generation-scripts/gen-security-headers.in b/dist/generation-scripts/gen-security-headers.in
new file mode 100644
index 0000000..4e5881a
--- /dev/null
+++ b/dist/generation-scripts/gen-security-headers.in
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+# we should be able to do this without creating a full configure-like
+# script, but we need to figure out how to call m4 directly.
+AC_INIT([Net-SNMP], [5.6.pre2], [net-snmp-coders@lists.sourceforge.net])
+
+AC_ARG_WITH(security-modules,
+[  --with-security-modules="s1 s2 ..."   Compile in the given SNMP security
+                                    modules (space or comma separated list).])
+AC_ARG_WITH(output-header,
+[  --with-output-header="file"            Where to store the header file])
+AC_ARG_WITH(output-init,
+[  --with-output-init="file"              Where to store the init file])
+
+m4_include(dist/generation-scripts/gen-variables)
+
+AC_DEFINE_UNQUOTED(NETSNMP_SYSTEM_INCLUDE_FILE, "$NETSNMP_SYSTEM_INCLUDE_FILE")
+
+if test "x$with_output_header" != "x" ; then
+    security_incl_file="$with_output_header"
+fi
+
+if test "x$with_output_init" != "x" ; then
+    security_init_file="$with_output_init"
+fi
+
+m4_include(configure.d/config_modules_security_modules)
+
+
diff --git a/dist/generation-scripts/gen-transport-headers.in b/dist/generation-scripts/gen-transport-headers.in
new file mode 100644
index 0000000..71a7bd9
--- /dev/null
+++ b/dist/generation-scripts/gen-transport-headers.in
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+# we should be able to do this without creating a full configure-like
+# script, but we need to figure out how to call m4 directly.
+AC_INIT([Net-SNMP], [5.6.pre2], [net-snmp-coders@lists.sourceforge.net])
+
+AC_ARG_WITH(transports,
+[  --with-transports="t1 t2 ..."   Compile in the given SNMP transport
+                                    modules (space or comma separated list).])
+AC_ARG_WITH(out_transports,
+[  --with-out-transports="t1 ..."  Exclude listed SNMP transports
+                                    (space or comma separated list).])
+
+AC_ARG_WITH(output,
+[  --with-output="file"            Where to store the header file])
+
+m4_include(dist/generation-scripts/gen-variables)
+
+AC_DEFINE_UNQUOTED(NETSNMP_SYSTEM_INCLUDE_FILE, "$NETSNMP_SYSTEM_INCLUDE_FILE")
+
+if test "x$with_output" != "x" ; then
+    ctor_header=$with_output
+fi
+
+m4_include(configure.d/config_modules_transports)
+
+
diff --git a/dist/generation-scripts/gen-variables.in b/dist/generation-scripts/gen-variables.in
new file mode 100644
index 0000000..4329206
--- /dev/null
+++ b/dist/generation-scripts/gen-variables.in
@@ -0,0 +1,10 @@
+#
+# common variables used by configure scripts
+#
+SED="@SED@"
+CPP="@CPP@"
+GREP="@GREP@"
+PARTIALTARGETFLAGS="@PARTIALTARGETFLAGS@"
+NETSNMP_SYSTEM_INCLUDE_FILE="@ac_cv_NETSNMP_SYSTEM_INCLUDE_FILE@"
+
+srcdir=@srcdir@
diff --git a/dist/makerelease.xml b/dist/makerelease.xml
index f0fb803..c32b813 100644
--- a/dist/makerelease.xml
+++ b/dist/makerelease.xml
@@ -362,7 +362,7 @@
 	<step type="system" stepname="build:configure" title="build:configure">
 	  <text>We need to run configure to set up the build tree.</text>
 	  <commands>
-	    <command>./configure --cache=config.cache --with-defaults --with-mib-modules='host examples examples/example testhandler smux Rmon disman/event-mib' --with-transports=IPX --enable-ipv6 --enable-embedded-perl --enable-shared</command>
+	    <command>./configure --cache=config.cache --with-defaults --with-mib-modules='host examples examples/example testhandler tlstm-mib tsm-mib smux Rmon disman/event-mib' --with-transports="IPX TLSTCP DTLSUDP" --with-security-modules="tsm" --enable-ipv6 --enable-embedded-perl --enable-shared</command>
 	  </commands>
 	</step>
 	<step type="system" stepname="build:make" title="build:make">
@@ -376,7 +376,7 @@
 	  set up test results.  If not, this needs to be fixed or at
 	  least understood and accepted as is for some other reason.</text>
 	  <commands>
-	    <command>make test TESTOPTS=-n</command>
+	    <command>make test</command>
 	  </commands>
 	</step>
 	<step type="system" stepname="code:checkcomments" title="code:checkcomments">
diff --git a/dist/net-snmp.spec b/dist/net-snmp.spec
index ac1fe20..2283c2f 100644
--- a/dist/net-snmp.spec
+++ b/dist/net-snmp.spec
@@ -37,7 +37,7 @@
 %endif
 Summary: Tools and servers for the SNMP protocol
 Name: net-snmp
-Version: 5.5.2
+Version: 5.6.2
 # update release for vendor release. (eg 1.fc6, 1.rh72, 1.ydl3, 1.ydl23)
 Release: 1
 URL: http://www.net-snmp.org/
diff --git a/dist/patme b/dist/patme
index 6b71082..cc0b87a 100755
--- a/dist/patme
+++ b/dist/patme
@@ -14,12 +14,13 @@
 our %opts =
 (
  'd' => $ENV{'HOME'} . "/src/snmp/patme/",
- 'b' => 'main,5.4,5.3,5.2',
+ 'b' => 'main,5.5,5.4,5.3,5.2',
  'p' => '-p0',
 );
 
 # sets the order shown
 our @codetrees = ('main',
+		  '5.5',
 		  '5.4',
 		  '5.3',
 		  '5.2',
@@ -32,6 +33,7 @@
 		  '5.2' => 'V5-2-patches',
 		  '5.3' => 'V5-3-patches',
 		  '5.4' => 'V5-4-patches',
+		  '5.5' => 'V5-5-patches',
 		  'main' => 'net-snmp',
 		  'UCD' => 'V4-2-patches');
 
diff --git a/doxygen.conf b/doxygen.conf
index 29824b1..20e457d 100644
--- a/doxygen.conf
+++ b/doxygen.conf
@@ -585,7 +585,7 @@
 # If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
 # generate man pages
 
-GENERATE_MAN           = YES
+GENERATE_MAN           = NO
 
 # The MAN_OUTPUT tag is used to specify where the man pages will be put. 
 # If a relative path is entered the value of OUTPUT_DIRECTORY will be 
diff --git a/include/net-snmp/agent/agent_handler.h b/include/net-snmp/agent/agent_handler.h
index 86fa1c5..2432b88 100644
--- a/include/net-snmp/agent/agent_handler.h
+++ b/include/net-snmp/agent/agent_handler.h
@@ -232,6 +232,8 @@
     void
         netsnmp_request_add_list_data(netsnmp_request_info *request,
                                       netsnmp_data_list *node);
+    int netsnmp_request_remove_list_data(netsnmp_request_info *request,
+                                         const char *name);
 
     int
         netsnmp_request_remove_list_data(netsnmp_request_info *request,
diff --git a/include/net-snmp/agent/agent_read_config.h b/include/net-snmp/agent/agent_read_config.h
index e9af89d..e6b3540 100644
--- a/include/net-snmp/agent/agent_read_config.h
+++ b/include/net-snmp/agent/agent_read_config.h
@@ -11,12 +11,17 @@
 
     void            init_agent_read_config(const char *);
     void            update_config(void);
-    void            snmpd_register_config_handler(const char *,
+    void            snmpd_register_config_handler(const char *token,
                                                   void (*parser) (const
                                                                   char *,
                                                                   char *),
                                                   void (*releaser) (void),
-                                                  const char *);
+                                                  const char *help);
+    void            snmpd_register_const_config_handler(
+                                 const char *,
+                                 void (*parser) (const char *, const char *),
+                                 void (*releaser) (void),
+                                 const char *);
     void            snmpd_unregister_config_handler(const char *);
     void            snmpd_store_config(const char *);
 
diff --git a/include/net-snmp/agent/agent_registry.h b/include/net-snmp/agent/agent_registry.h
index 44fe42e..ba80793 100644
--- a/include/net-snmp/agent/agent_registry.h
+++ b/include/net-snmp/agent/agent_registry.h
@@ -48,7 +48,7 @@
 };
 
 typedef struct subtree_context_cache_s {
-    char				*context_name;
+    const char				*context_name;
     struct netsnmp_subtree_s		*first_subtree;
     struct subtree_context_cache_s	*next;
 } subtree_context_cache;
diff --git a/include/net-snmp/agent/agent_trap.h b/include/net-snmp/agent/agent_trap.h
index 3ef4c6e..26e2223 100644
--- a/include/net-snmp/agent/agent_trap.h
+++ b/include/net-snmp/agent/agent_trap.h
@@ -14,20 +14,20 @@
 void            send_easy_trap(int, int);
 void            send_trap_pdu(netsnmp_pdu *);
 void            send_v2trap(netsnmp_variable_list *);
-void            send_v3trap(netsnmp_variable_list *vars, char *context);
+void            send_v3trap(netsnmp_variable_list *vars, const char *context);
 void            send_trap_vars(int, int, netsnmp_variable_list *);
 void            send_trap_vars_with_context(int trap, int specific, 
-                                          netsnmp_variable_list *vars, 
-										  char *context);
+                                            netsnmp_variable_list *vars,
+                                            const char *context);
 void            send_enterprise_trap_vars(int trap, int specific,
-                                          oid * enterprise,
+                                          const oid * enterprise,
                                           int enterprise_length,
                                           netsnmp_variable_list * vars);
 int             netsnmp_send_traps(int trap, int specific,
-                          oid * enterprise, int enterprise_length,
+                          const oid * enterprise, int enterprise_length,
                           netsnmp_variable_list * vars,
-                          /* These next two are currently unused */
-                          char * context, int flags);
+                          /* flags are currently unused */
+                          const char * context, int flags);
 void            snmpd_parse_config_authtrap(const char *, char *);
 void            snmpd_parse_config_trapsink(const char *, char *);
 void            snmpd_parse_config_trap2sink(const char *, char *);
diff --git a/include/net-snmp/agent/all_helpers.h b/include/net-snmp/agent/all_helpers.h
index 27e580e..d0d5c22 100644
--- a/include/net-snmp/agent/all_helpers.h
+++ b/include/net-snmp/agent/all_helpers.h
@@ -32,6 +32,7 @@
 #include <net-snmp/agent/table_array.h> 
 
 #include <net-snmp/agent/mfd.h>
+#include <net-snmp/agent/snmp_get_statistic.h>
 
 
 void            netsnmp_init_helpers(void);
diff --git a/include/net-snmp/agent/cache_handler.h b/include/net-snmp/agent/cache_handler.h
index b002159..7f4e74e 100644
--- a/include/net-snmp/agent/cache_handler.h
+++ b/include/net-snmp/agent/cache_handler.h
@@ -95,6 +95,7 @@
     netsnmp_cache_create(int timeout, NetsnmpCacheLoad * load_hook,
                          NetsnmpCacheFree * free_hook,
                          const oid * rootoid, int rootoid_len);
+    int netsnmp_cache_remove(netsnmp_cache *cache);
     int netsnmp_cache_free(netsnmp_cache *cache);
 
     netsnmp_mib_handler *
diff --git a/include/net-snmp/agent/ds_agent.h b/include/net-snmp/agent/ds_agent.h
index 86c74d4..3ae759d 100644
--- a/include/net-snmp/agent/ds_agent.h
+++ b/include/net-snmp/agent/ds_agent.h
@@ -28,9 +28,16 @@
 #define NETSNMP_DS_APP_DONT_LOG         NETSNMP_DS_AGENT_DONT_RETAIN_NOTIFICATIONS /* compat */
 #define NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES    13   /* 1 = don't store NFS entries in hrStorageTable */
 
-/* WARNING: The trap receiver uses DS flags and must not conflict with
-   these!  If you use a value above 15, change the minimimum DS bool
-   value in snmptrapd_log.h */
+   /* Repeated from "apps/snmptrapd_ds.h" */
+#define NETSNMP_DS_APP_NUMERIC_IP       16
+#define NETSNMP_DS_APP_NO_AUTHORIZATION 17
+
+#define NETSNMP_DS_AGENT_DISKIO_NO_FD   18      /* 1 = don't report /dev/fd*   entries in diskIOTable */
+#define NETSNMP_DS_AGENT_DISKIO_NO_LOOP 19      /* 1 = don't report /dev/loop* entries in diskIOTable */
+#define NETSNMP_DS_AGENT_DISKIO_NO_RAM  20      /* 1 = don't report /dev/ram*  entries in diskIOTable */
+
+/* WARNING: The trap receiver also uses DS flags and must not conflict with these!
+ * If you define additional boolean entries, check in "apps/snmptrapd_ds.h" first */
 
 /*
  * strings 
diff --git a/include/net-snmp/agent/hardware/fsys.h b/include/net-snmp/agent/hardware/fsys.h
index cd7880c..5a1e5ef 100644
--- a/include/net-snmp/agent/hardware/fsys.h
+++ b/include/net-snmp/agent/hardware/fsys.h
@@ -47,6 +47,7 @@
 #define NETSNMP_FS_FLAG_RONLY    0x04
 #define NETSNMP_FS_FLAG_BOOTABLE 0x08
 #define NETSNMP_FS_FLAG_REMOVE   0x10
+#define NETSNMP_FS_FLAG_UCD      0x20
 
 #define NETSNMP_FS_FIND_CREATE     1   /* or use one of the type values */
 #define NETSNMP_FS_FIND_EXIST      0
@@ -67,6 +68,9 @@
      long inums_total;
      long inums_avail;
 
+     int  minspace;
+     int  minpercent;
+
      long flags;
 
      netsnmp_fsys_info *next;
@@ -88,6 +92,10 @@
 int  netsnmp_fsys_load( netsnmp_cache *cache, void *data );
 void netsnmp_fsys_free( netsnmp_cache *cache, void *data );
 
-unsigned int netsnmp_fsys_size( netsnmp_fsys_info* );
-unsigned int netsnmp_fsys_used( netsnmp_fsys_info* );
-unsigned int netsnmp_fsys_avail(netsnmp_fsys_info* );
+int netsnmp_fsys_size( netsnmp_fsys_info* );
+int netsnmp_fsys_used( netsnmp_fsys_info* );
+int netsnmp_fsys_avail(netsnmp_fsys_info* );
+
+unsigned long long netsnmp_fsys_size_ull( netsnmp_fsys_info* );
+unsigned long long netsnmp_fsys_used_ull( netsnmp_fsys_info* );
+unsigned long long netsnmp_fsys_avail_ull(netsnmp_fsys_info* );
diff --git a/include/net-snmp/agent/hardware/sensors.h b/include/net-snmp/agent/hardware/sensors.h
index 66a10bd..d59eca7 100644
--- a/include/net-snmp/agent/hardware/sensors.h
+++ b/include/net-snmp/agent/hardware/sensors.h
@@ -43,6 +43,6 @@
 
 netsnmp_container   *get_sensor_container( void );
 netsnmp_cache       *get_sensor_cache( void );
-netsnmp_sensor_info *sensor_by_name( char *, int );
+netsnmp_sensor_info *sensor_by_name( const char *, int );
 NetsnmpCacheLoad     netsnmp_sensor_load;
 NetsnmpCacheFree     netsnmp_sensor_free;
diff --git a/include/net-snmp/agent/snmp_agent.h b/include/net-snmp/agent/snmp_agent.h
index 45ca62b..7995a5b 100644
--- a/include/net-snmp/agent/snmp_agent.h
+++ b/include/net-snmp/agent/snmp_agent.h
@@ -262,7 +262,11 @@
 
     u_long          netsnmp_marker_uptime(marker_t pm);
     u_long          netsnmp_timeval_uptime(struct timeval *tv);
+    const_marker_t  netsnmp_get_agent_starttime(void);
+    uint64_t        netsnmp_get_agent_runtime(void);
+    void            netsnmp_set_agent_starttime(marker_t s);
     u_long          netsnmp_get_agent_uptime(void);
+    void            netsnmp_set_agent_uptime(u_long hsec);
     int             netsnmp_check_transaction_id(int transaction_id);
     int             netsnmp_agent_check_packet(netsnmp_session *,
                                                struct netsnmp_transport_s
diff --git a/agent/mibgroup/utilities/snmp_get_statistic.h b/include/net-snmp/agent/snmp_get_statistic.h
similarity index 100%
rename from agent/mibgroup/utilities/snmp_get_statistic.h
rename to include/net-snmp/agent/snmp_get_statistic.h
diff --git a/include/net-snmp/agent/sysORTable.h b/include/net-snmp/agent/sysORTable.h
index 0608591..bfebad2 100644
--- a/include/net-snmp/agent/sysORTable.h
+++ b/include/net-snmp/agent/sysORTable.h
@@ -25,7 +25,7 @@
 #define REGISTER_SYSOR_TABLE(theoid, len, descr)           \
   do {                                                     \
     struct sysORTable t;                                   \
-    t.OR_descr = descr;                                    \
+    t.OR_descr = NETSNMP_REMOVE_CONST(char *, descr);      \
     t.OR_oid = theoid;                                     \
     t.OR_oidlen = len;                                     \
     t.OR_sess = NULL;                                      \
diff --git a/include/net-snmp/agent/table_container.h b/include/net-snmp/agent/table_container.h
index dc6bfa8..b342110 100644
--- a/include/net-snmp/agent/table_container.h
+++ b/include/net-snmp/agent/table_container.h
@@ -89,6 +89,8 @@
 
     void netsnmp_container_table_row_insert(netsnmp_request_info *request,
                                             netsnmp_index *row);
+    void netsnmp_container_table_row_remove(netsnmp_request_info *request,
+                                            netsnmp_index        *row);
 
 /* ===================================
  * Container Table API: Row operations
diff --git a/include/net-snmp/agent/table_dataset.h b/include/net-snmp/agent/table_dataset.h
index 7d8aeec..9b8a9a3 100644
--- a/include/net-snmp/agent/table_dataset.h
+++ b/include/net-snmp/agent/table_dataset.h
@@ -132,6 +132,16 @@
     netsnmp_table_data_set_storage
         *netsnmp_extract_table_data_set_column(netsnmp_request_info *,
                                                unsigned int);
+    netsnmp_oid_stash_node **
+    netsnmp_table_dataset_get_or_create_stash(netsnmp_agent_request_info *ari,
+                                              netsnmp_table_data_set *tds,
+                                              netsnmp_table_request_info *tri);
+    netsnmp_table_row *
+    netsnmp_table_dataset_get_newrow(netsnmp_request_info *request,
+                                     netsnmp_agent_request_info *reqinfo,
+                                     int rootoid_len,
+                                     netsnmp_table_data_set *datatable,
+                                     netsnmp_table_request_info *table_info);
 
 
 /* ============================
diff --git a/include/net-snmp/agent/table_tdata.h b/include/net-snmp/agent/table_tdata.h
index 28c049d..b0a1689 100644
--- a/include/net-snmp/agent/table_tdata.h
+++ b/include/net-snmp/agent/table_tdata.h
@@ -21,6 +21,7 @@
 #define TABLE_TDATA_TABLE "table_tdata_table"
 
 #define TDATA_FLAG_NO_STORE_INDEXES   0x01
+#define TDATA_FLAG_NO_CONTAINER       0x02 /* user will provide container */
 
     /*
      * The (table-independent) per-row data structure
@@ -94,6 +95,7 @@
     void               *netsnmp_tdata_extract_entry(    netsnmp_request_info *);
 
     void netsnmp_insert_tdata_row(netsnmp_request_info *, netsnmp_tdata_row *);
+    void netsnmp_remove_tdata_row(netsnmp_request_info *, netsnmp_tdata_row *);
 
 
 /* ============================
diff --git a/include/net-snmp/config_api.h b/include/net-snmp/config_api.h
index 80cf5d6..048eed9 100644
--- a/include/net-snmp/config_api.h
+++ b/include/net-snmp/config_api.h
@@ -12,39 +12,61 @@
 extern          "C" {
 #endif
 
+    /* Config Handlers */
+    NETSNMP_IMPORT
     struct config_line *register_config_handler(const char *filePrefix,
                                                 const char *token,
                                                 void (*parser) (const char *, char *),
                                                 void (*releaser) (void),
                                                 const char *usageLine);
+    NETSNMP_IMPORT
+    struct config_line *register_const_config_handler(const char *filePrefix,
+                                  const char *token,
+                                  void (*parser) (const char *, const char *),
+                                  void (*releaser) (void),
+                                  const char *usageLine);
+    NETSNMP_IMPORT
+    struct config_line *register_prenetsnmp_mib_handler(const char *filePrefix,
+                                                const char *token,
+                                                void (*parser) (const char *, char *),
+                                                void (*releaser) (void),
+                                                const char *usageLine);
+    NETSNMP_IMPORT
+    void            unregister_config_handler(const char *filePrefix, const char *token);
+
+    				/* Defined in mib.c, rather than read_config.c */
+    void            register_mib_handlers(void);
+    void            unregister_all_config_handlers(void);
+
+    /* Application Handlers */
+    NETSNMP_IMPORT
     struct config_line *register_app_config_handler(
                                                 const char *token,
                                                 void (*parser) (const char *, char *),
                                                 void (*releaser) (void),
                                                 const char *usageLine);
 
-/* These two are documented as "register{,_app}_premib_handler() */
-/*?*/    struct config_line *register_prenetsnmp_mib_handler(const char *filePrefix,
+    NETSNMP_IMPORT
+    struct config_line *register_app_prenetsnmp_mib_handler(
                                                 const char *token,
                                                 void (*parser) (const char *, char *),
                                                 void (*releaser) (void),
                                                 const char *usageLine);
-/*?*/    struct config_line *register_app_prenetsnmp_mib_handler(
-                                                const char *token,
-                                                void (*parser) (const char *, char *),
-                                                void (*releaser) (void),
-                                                const char *usageLine);
-                                                            
-    void            unregister_config_handler(const char *filePrefix, const char *token);
+    NETSNMP_IMPORT
     void            unregister_app_config_handler(                    const char *token);
-    void            unregister_all_config_handlers(void);
 
-/*?*/ void register_mib_handlers(void);
+    /* Reading Config Files */
+    NETSNMP_IMPORT
     void            read_configs(void);
+    NETSNMP_IMPORT
     void            read_premib_configs(void);
 
+    /* Help Strings and Errors */
+    NETSNMP_IMPORT
     void            read_config_print_usage(const char *lead);
+    NETSNMP_IMPORT
     void            config_perror(const char *);
+    NETSNMP_IMPORT
     void            config_pwarn(const char *);
 
 #ifdef __cplusplus
@@ -52,13 +74,18 @@
 #endif
 
     /*
-     *  For the initial release, this will just refer to the
-     *  relevant UCD header files.
-     *    In due course, the routines relevant to this area of the
-     *  API will be identified, and listed here directly.
+     *    Having extracted the main ("public API") calls relevant
+     *  to this area of the Net-SNMP project, the next step is to
+     *  identify the related "public internal API" routines.
      *
-     *  But for the time being, this header file is a placeholder,
-     *  to allow application writers to adopt the new header file names.
+     *    In due course, these should probably be gathered
+     *  together into a companion 'library/config_api.h' header file.
+     *  [Or some suitable name]
+     *
+     *    But for the time being, the expectation is that the
+     *  traditional headers that provided the above definitions
+     *  will probably also cover the relevant internal API calls.
+     *  Hence they are listed here:
      */
 #include <net-snmp/library/snmp_api.h>
 
diff --git a/include/net-snmp/data_access/ip_scalars.h b/include/net-snmp/data_access/ip_scalars.h
index 25191fe..f7b2e31 100644
--- a/include/net-snmp/data_access/ip_scalars.h
+++ b/include/net-snmp/data_access/ip_scalars.h
@@ -5,8 +5,10 @@
 extern          "C" {
 #endif
 
-int netsnmp_arch_ip_scalars_ipv6IpForwarding_get(u_long *value);
+int netsnmp_arch_ip_scalars_ipForwarding_get(u_long *value);
+int netsnmp_arch_ip_scalars_ipForwarding_set(u_long value);
 
+int netsnmp_arch_ip_scalars_ipv6IpForwarding_get(u_long *value);
 int netsnmp_arch_ip_scalars_ipv6IpForwarding_set(u_long value);
 
 
diff --git a/include/net-snmp/data_access/route.h b/include/net-snmp/data_access/route.h
index 9ba1b19..d944d10 100644
--- a/include/net-snmp/data_access/route.h
+++ b/include/net-snmp/data_access/route.h
@@ -45,7 +45,7 @@
     * define the maximum oid length for a policy, for use by the
     * inetCidrRouteTable. Must be at least 2, for default nullOid case.
     */
-#define NETSNMP_POLICY_OID_MAX_LEN  2
+#define NETSNMP_POLICY_OID_MAX_LEN  3
    oid      *rt_policy;      /* NULL should be interpreted as { 0, 0 } */
    u_char    rt_policy_len;  /* 0-128 oids */
 #endif
diff --git a/include/net-snmp/data_access/systemstats.h b/include/net-snmp/data_access/systemstats.h
index 1baacd5..c72dfbb 100644
--- a/include/net-snmp/data_access/systemstats.h
+++ b/include/net-snmp/data_access/systemstats.h
@@ -36,6 +36,11 @@
     */
    netsnmp_ipstats stats;
 
+   /*
+    * for logging
+    */
+   const char* tableName;
+   
    /** old_stats is used in netsnmp_access_interface_entry_update_stats */
    netsnmp_ipstats *old_stats;
 
@@ -49,6 +54,11 @@
 /*
  * init
  */
+void netsnmp_access_systemstats_init(void);
+
+/*
+ * init
+ */
 netsnmp_container * netsnmp_access_systemstats_container_init(u_int init_flags);
 #define NETSNMP_ACCESS_SYSTEMSTATS_INIT_NOFLAGS               0x0000
 #define NETSNMP_ACCESS_SYSTEMSTATS_INIT_ADDL_IDX_BY_ADDR      0x0001
@@ -74,7 +84,8 @@
  * create/free an entry
  */
 netsnmp_systemstats_entry *
-netsnmp_access_systemstats_entry_create(int version, int if_index);
+netsnmp_access_systemstats_entry_create(int version, int if_index,
+            const char* tableName);
 
 void netsnmp_access_systemstats_entry_free(netsnmp_systemstats_entry * entry);
 
diff --git a/include/net-snmp/library/asn1.h b/include/net-snmp/library/asn1.h
index 46ed441..52ecc3b 100644
--- a/include/net-snmp/library/asn1.h
+++ b/include/net-snmp/library/asn1.h
@@ -1,6 +1,8 @@
 #ifndef ASN1_H
 #define ASN1_H
 
+#include <net-snmp/library/oid.h>
+
 #ifdef __cplusplus
 extern          "C" {
 #endif
@@ -37,18 +39,6 @@
 ******************************************************************/
 
 
-#ifndef MAX_SUBID               /* temporary - duplicate definition protection */
-#ifndef EIGHTBIT_SUBIDS
-    typedef u_long  oid;
-#define MAX_SUBID   0xFFFFFFFF
-#define NETSNMP_PRIo "l"
-#else
-    typedef u_char  oid;
-#define MAX_SUBID   0xFF
-#define NETSNMP_PRIo ""
-#endif
-#endif
-
 #define MIN_OID_LEN	    2
 #define MAX_OID_LEN	    128 /* max subid's in an oid */
 #ifndef MAX_NAME_LEN            /* conflicts with some libraries */
@@ -188,37 +178,56 @@
 
 
     int             asn_check_packet(u_char *, size_t);
+    NETSNMP_IMPORT
     u_char         *asn_parse_int(u_char *, size_t *, u_char *, long *,
                                   size_t);
+    NETSNMP_IMPORT
     u_char         *asn_build_int(u_char *, size_t *, u_char, const long *,
                                   size_t);
+    NETSNMP_IMPORT
     u_char         *asn_parse_unsigned_int(u_char *, size_t *, u_char *,
                                            u_long *, size_t);
+    NETSNMP_IMPORT
     u_char         *asn_build_unsigned_int(u_char *, size_t *, u_char,
                                            const u_long *, size_t);
+    NETSNMP_IMPORT
     u_char         *asn_parse_string(u_char *, size_t *, u_char *,
                                      u_char *, size_t *);
+    NETSNMP_IMPORT
     u_char         *asn_build_string(u_char *, size_t *, u_char,
                                      const u_char *, size_t);
+    NETSNMP_IMPORT
     u_char         *asn_parse_header(u_char *, size_t *, u_char *);
     u_char         *asn_parse_sequence(u_char *, size_t *, u_char *, u_char expected_type,      /* must be this type */
                                        const char *estr);       /* error message prefix */
+    NETSNMP_IMPORT
     u_char         *asn_build_header(u_char *, size_t *, u_char, size_t);
+    NETSNMP_IMPORT
     u_char         *asn_build_sequence(u_char *, size_t *, u_char, size_t);
+    NETSNMP_IMPORT
     u_char         *asn_parse_length(u_char *, u_long *);
+    NETSNMP_IMPORT
     u_char         *asn_build_length(u_char *, size_t *, size_t);
+    NETSNMP_IMPORT
     u_char         *asn_parse_objid(u_char *, size_t *, u_char *, oid *,
                                     size_t *);
+    NETSNMP_IMPORT
     u_char         *asn_build_objid(u_char *, size_t *, u_char, oid *,
                                     size_t);
+    NETSNMP_IMPORT
     u_char         *asn_parse_null(u_char *, size_t *, u_char *);
+    NETSNMP_IMPORT
     u_char         *asn_build_null(u_char *, size_t *, u_char);
+    NETSNMP_IMPORT
     u_char         *asn_parse_bitstring(u_char *, size_t *, u_char *,
                                         u_char *, size_t *);
+    NETSNMP_IMPORT
     u_char         *asn_build_bitstring(u_char *, size_t *, u_char,
                                         const u_char *, size_t);
+    NETSNMP_IMPORT
     u_char         *asn_parse_unsigned_int64(u_char *, size_t *, u_char *,
                                              struct counter64 *, size_t);
+    NETSNMP_IMPORT
     u_char         *asn_build_unsigned_int64(u_char *, size_t *, u_char,
                                              const struct counter64 *, size_t);
     u_char         *asn_parse_signed_int64(u_char *, size_t *, u_char *,
diff --git a/include/net-snmp/library/callback.h b/include/net-snmp/library/callback.h
index 55bca19..c25ad4b 100644
--- a/include/net-snmp/library/callback.h
+++ b/include/net-snmp/library/callback.h
@@ -51,21 +51,28 @@
     /*
      * function prototypes 
      */
+    NETSNMP_IMPORT
     void            init_callbacks(void);
 
     int             netsnmp_register_callback(int major, int minor,
                                               SNMPCallback * new_callback,
                                               void *arg, int priority);
+    NETSNMP_IMPORT
     int             snmp_register_callback(int major, int minor,
                                            SNMPCallback * new_callback,
                                            void *arg);
+    NETSNMP_IMPORT
     int             snmp_call_callbacks(int major, int minor,
                                         void *caller_arg);
+    NETSNMP_IMPORT
     int             snmp_callback_available(int major, int minor);      /* is >1 available */
+    NETSNMP_IMPORT
     int             snmp_count_callbacks(int major, int minor); /* ret the number registered */
+    NETSNMP_IMPORT
     int             snmp_unregister_callback(int major, int minor,
                                              SNMPCallback * new_callback,
                                              void *arg, int matchargs);
+    NETSNMP_IMPORT
     void            clear_callback (void);
     int             netsnmp_callback_clear_client_arg(void *, int i, int j);
 
diff --git a/include/net-snmp/library/cert_util.h b/include/net-snmp/library/cert_util.h
new file mode 100644
index 0000000..34a79dc
--- /dev/null
+++ b/include/net-snmp/library/cert_util.h
@@ -0,0 +1,226 @@
+#ifndef NETSNMP_CERT_UTIL_H
+
+#if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_LIBSSL)
+
+#ifndef HEADER_SSL_H
+#error "must include <openssl/ssl.h> before cert_util.h"
+#endif
+#ifndef HEADER_X509_H
+#error "must include <openssl/x509.h> before cert_util.h"
+#endif
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+    /*************************************************************************
+     *
+     * netsnmp_cert structures, defines and function definitions
+     *
+     *************************************************************************/
+
+void netsnmp_certs_init(void);
+void netsnmp_certs_agent_init(void);
+void netsnmp_certs_shutdown(void);
+void netsnmp_certs_load(void);
+netsnmp_container *netsnmp_cert_get_trustlist(void);
+
+    typedef struct netsnmp_cert_common_s {
+        char           *dir;
+        char           *filename;
+        
+        u_char          type;
+        u_char          allowed_uses;
+        u_char          _pad[2]; /* for future use */
+    } netsnmp_cert_common;
+
+    typedef struct netsnmp_key_s {
+        netsnmp_cert_common info;
+
+        EVP_PKEY       *okey;
+        struct netsnmp_cert_s   *cert;
+    } netsnmp_key;
+
+    typedef struct netsnmp_cert_s {
+        netsnmp_cert_common info;
+
+        X509           *ocert;
+        netsnmp_key    *key;
+        struct netsnmp_cert_s *issuer_cert;
+
+        char           *issuer;
+        char           *subject;
+        char           *fingerprint;
+        char           *common_name;
+
+        u_char          hash_type;
+        u_char          _pad[3]; /* for future use */
+    } netsnmp_cert;
+
+/** types */
+    enum { NS_CERT_TYPE_UNKNOWN = 0, NS_CERT_TYPE_PEM, NS_CERT_TYPE_DER,
+           NS_CERT_TYPE_PKCS12, NS_CERT_TYPE_KEY };
+
+/** uses */
+#define NS_CERT_IDENTITY       0x0001
+#define NS_CERT_REMOTE_PEER    0x0002
+#define NS_CERT_RESERVED1      0x0004
+#define NS_CERT_CA             0x0008
+
+/** source */
+#define NS_CERTKEY_DEFAULT       0x000 /* get default from DS store */
+#define NS_CERTKEY_FILE          0x001 /* filename/full path */
+#define NS_CERTKEY_FINGERPRINT   0x002 /* public key fingerprint */
+#define NS_CERTKEY_CA            0x004 /* trusted CA */
+#define NS_CERTKEY_SAN_RFC822    0x008 /* subj alt name: rfc822 */
+#define NS_CERTKEY_SAN_DNS       0x010 /* subj alt name: DNS */
+#define NS_CERTKEY_SAN_IPADDR    0x020 /* subj alt name: IP address */
+#define NS_CERTKEY_COMMON_NAME   0x040 /* common name */
+#define NS_CERTKEY_TARGET_PARAM  0x080 /* tlstmParamsTable */
+#define NS_CERTKEY_TARGET_ADDR   0x100 /* tlstmAddrTable */
+#define NS_CERTKEY_MULTIPLE      0x200 /* try multiple sources */
+
+/** RFC 5246 hash algorithms (Section 7.4.1.4.1) */
+#define NS_HASH_NONE        0
+#define NS_HASH_MD5         1
+#define NS_HASH_SHA1        2
+#define NS_HASH_SHA224      3
+#define NS_HASH_SHA256      4
+#define NS_HASH_SHA384      5
+#define NS_HASH_SHA512      6
+#define NS_HASH_MAX         NS_HASH_SHA512
+
+/** SNMP-TLS-TM-MIB */
+#define SNMPTLSFINGERPRINT_MAX_LEN   255
+
+    /*************************************************************************
+     * netsnmp_cert function definitions
+     *************************************************************************/
+
+    netsnmp_cert *netsnmp_cert_find(int what, int where, void *hint);
+
+    int netsnmp_cert_check_vb_fingerprint(const netsnmp_variable_list *var);
+
+    void netsnmp_fp_lowercase_and_strip_colon(char *fp);
+    int netsnmp_cert_parse_hash_type(const char *str);
+    int netsnmp_tls_fingerprint_build(int hash_type, const char *hex_fp,
+                                      u_char **tls_fp, size_t *tls_fp_len,
+                                      int allow_realloc);
+    int netsnmp_tls_fingerprint_parse(const u_char *binary_fp, int fp_len,
+                                      char **fp_str_ptr, u_int *fp_str_len,
+                                      int allow_realloc, u_char *hash_type_ptr);
+
+
+    int netsnmp_cert_trust(SSL_CTX *ctx, netsnmp_cert *thiscert);
+    int netsnmp_cert_trust_ca(SSL_CTX *ctx, netsnmp_cert *thiscertsrootca);
+
+    /*************************************************************************
+     *
+     *  certificate to Transport Security Name mapping (netsnmp_cert_map)
+     *
+     *************************************************************************/
+
+#define TSNM_tlstmCertSpecified                 1
+#define TSNM_tlstmCertSANRFC822Name             2
+#define TSNM_tlstmCertSANDNSName                3
+#define TSNM_tlstmCertSANIpAddress              4
+#define TSNM_tlstmCertSANAny                    5
+#define TSNM_tlstmCertCommonName                6
+#define TSNM_tlstmCert_MAX                      TSNM_tlstmCertCommonName
+
+#define NSCM_FROM_CONFIG                        0x0001
+#define NSCM_FROM_MIB                           0x0002
+#define NSCM_NONVOLATILE                        0x0004
+
+    typedef struct netsnmp_cert_map_s {
+        int             priority;
+        char           *fingerprint;
+        int             mapType;
+        char           *data;
+
+        char            hashType;
+        char            flags;
+
+        X509           *ocert;
+    } netsnmp_cert_map;
+
+    netsnmp_cert_map *netsnmp_cert_map_alloc(char *fp, X509 *ocert);
+    void netsnmp_cert_map_free(netsnmp_cert_map *cert_map);
+    int netsnmp_cert_map_add(netsnmp_cert_map *map);
+    int netsnmp_cert_map_remove(netsnmp_cert_map *map);
+    netsnmp_cert_map *netsnmp_cert_map_find(netsnmp_cert_map *map);
+
+    void netsnmp_cert_map_container_free(netsnmp_container *c);
+    netsnmp_container *netsnmp_cert_map_container_create(int with_fp);
+    netsnmp_container *netsnmp_cert_map_container(void);
+
+    int netsnmp_cert_get_secname_maps(netsnmp_container *cm);
+
+    /*************************************************************************
+     *
+     *  snmpTlstmParamsTable data
+     *
+     *************************************************************************/
+    typedef struct snmpTlstmParams_s {
+        char         *name;
+        char         *fingerprint;
+        char          hashType;
+        u_char        flags;
+        u_char        fingerprint_len;
+    } snmpTlstmParams;
+    
+#define TLSTM_PARAMS_FROM_CONFIG          0x01
+#define TLSTM_PARAMS_FROM_MIB             0x02
+#define TLSTM_PARAMS_NONVOLATILE          0x04
+/** ine TLSTM_PARAMS_XXX                  0x08 */
+
+    snmpTlstmParams *netsnmp_tlstmParams_create(const char *tag, int hashType,
+                                                const char *fp, int fp_len);
+    void netsnmp_tlstmParams_free(snmpTlstmParams *stp);
+    snmpTlstmParams *netsnmp_tlstmParams_restore_common(char **line);
+
+    netsnmp_container *netsnmp_tlstmParams_container(void);
+    int netsnmp_tlstmParams_add(snmpTlstmParams *stp);
+    int netsnmp_tlstmParams_remove(snmpTlstmParams *stp);
+    snmpTlstmParams *netsnmp_tlstmParams_find(snmpTlstmParams *stp);
+
+    /*************************************************************************
+     *
+     *  snmpTlstmAddrTable data
+     *
+     *************************************************************************/
+    typedef struct snmpTlstmAddr_s {
+        char         *name;
+        char         *fingerprint;
+        char         *identity;
+        
+        u_char        hashType;
+        u_char        flags;
+        
+    } snmpTlstmAddr;
+
+#define TLSTM_ADDR_FROM_CONFIG          0x01
+#define TLSTM_ADDR_FROM_MIB             0x02
+#define TLSTM_ADDR_NONVOLATILE          0x04
+/** ine TLSTM_ADDR_XXX                  0x08 */
+
+    int netsnmp_tlstmAddr_restore_common(char **line, char *name,
+                                         size_t *name_len, char *id,
+                                         size_t *id_len, char *fp,
+                                         size_t *fp_len, u_char *ht);
+    netsnmp_container *netsnmp_tlstmAddr_container(void);
+    snmpTlstmAddr *netsnmp_tlstmAddr_find(snmpTlstmAddr *entry);
+    snmpTlstmAddr *netsnmp_tlstmAddr_create(char *targetAddrName);
+    void netsnmp_tlstmAddr_free(snmpTlstmAddr *entry);
+    int netsnmp_tlstmAddr_add(snmpTlstmAddr *entry);
+    int netsnmp_tlstmAddr_remove(snmpTlstmAddr *entry);
+    char *netsnmp_tlstmAddr_get_serverId(const char *name);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* defined(NETSNMP_USE_OPENSSL) && defined(HAVE_LIBSSL) */
+
+#endif /* NETSNMP_CERT_UTIL_H */
+
diff --git a/include/net-snmp/library/check_varbind.h b/include/net-snmp/library/check_varbind.h
index 4271f76..1e1615a 100644
--- a/include/net-snmp/library/check_varbind.h
+++ b/include/net-snmp/library/check_varbind.h
@@ -18,21 +18,31 @@
     int netsnmp_check_vb_size_range(const netsnmp_variable_list *var,
                                     size_t low, size_t high );
 
+    NETSNMP_IMPORT
     int netsnmp_check_vb_type_and_size(const netsnmp_variable_list *var,
                                     int type, size_t size);
+    NETSNMP_IMPORT
     int netsnmp_check_vb_type_and_max_size(const netsnmp_variable_list *var,
                                     int type, size_t size);
 
+    NETSNMP_IMPORT
     int netsnmp_check_vb_oid(const netsnmp_variable_list *var);
+    NETSNMP_IMPORT
     int netsnmp_check_vb_int(const netsnmp_variable_list *var);
+    NETSNMP_IMPORT
     int netsnmp_check_vb_uint(const netsnmp_variable_list *var);
+    NETSNMP_IMPORT
     int netsnmp_check_vb_int_range(const netsnmp_variable_list *var, int low,
                                    int high);
 
+    NETSNMP_IMPORT
     int netsnmp_check_vb_truthvalue(const netsnmp_variable_list *var);
 
+    NETSNMP_IMPORT
     int netsnmp_check_vb_rowstatus_value(const netsnmp_variable_list *var);
+    NETSNMP_IMPORT
     int netsnmp_check_vb_rowstatus(const netsnmp_variable_list *var, int old_val);
+    int netsnmp_check_vb_rowstatus_with_storagetype(const netsnmp_variable_list *var, int old_val, int old_storage);
 
     int netsnmp_check_vb_storagetype(const netsnmp_variable_list *var, int old_val);
 
diff --git a/include/net-snmp/library/container.h b/include/net-snmp/library/container.h
index 3241a1c..30b82f1 100644
--- a/include/net-snmp/library/container.h
+++ b/include/net-snmp/library/container.h
@@ -24,9 +24,11 @@
 #error "Please include <net-snmp/net-snmp-config.h> before this file"
 #endif
 
+#include <stdlib.h> /* free() */
 #include <net-snmp/types.h>
 #include <net-snmp/library/factory.h>
 #include <net-snmp/library/snmp_logging.h>
+#include <net-snmp/library/tools.h>
 
 #ifdef  __cplusplus
 extern "C" {
@@ -41,7 +43,14 @@
     struct netsnmp_container_s; /** forward declare */
 
     /*
-     * function returning an int for an operation on a container
+     * function for performing an operation on a container which
+     * returns (maybe the same) container.
+     */
+    typedef struct netsnmp_container_s* (netsnmp_container_mod_op)
+        (struct netsnmp_container_s *, void *context, u_int flags);
+
+    /*
+     * function for setting an option on a container
      */
     typedef int (netsnmp_container_option)(struct netsnmp_container_s *,
                                            int set, u_int flags);
@@ -145,17 +154,15 @@
        /*
         * release memory for an entry from the container
         */
-       netsnmp_container_op    *release;
-
-       /*
-        * Note: do not change the key!  If you need to
-        * change a key, remove the entry, change the key,
-        * and the re-add the entry.
-        */
+       netsnmp_container_op    *release; /* NOTE: deprecated. Use free_item */
+       netsnmp_container_obj_func *free_item;
 
        /*
         * find the entry in the container with the same key
         *
+        * Note: do not change the key!  If you need to
+        * change a key, remove the entry, change the key,
+        * and the re-add the entry.
         */
        netsnmp_container_rtn   *find;
 
@@ -201,6 +208,14 @@
         */
        netsnmp_container_op    *insert_filter;
 
+        /*
+         * OPTIONAL function to duplicate a container. Defaults to a shallow
+         * copy. Only the specified container is copied (i.e. sub-containers
+         * not included).
+         */
+        netsnmp_container_mod_op *duplicate;
+
+
        /*
         * function to compare two object stored in the container.
         *
@@ -229,11 +244,16 @@
 
        /*
         * sort count, for iterators to track (insert/delete
-        * bumps coutner, invalidates iterator
+        * bumps counter, invalidates iterator)
         */
        u_long                          sync;
 
        /*
+        * flags
+        */
+       u_int                           flags;
+
+       /*
         * containers can contain other containers (additional indexes)
         */
        struct netsnmp_container_s *next, *prev;
@@ -244,7 +264,9 @@
      * initialize/free a container of container factories. used by
      * netsnmp_container_find* functions.
      */
+    NETSNMP_IMPORT
     void netsnmp_container_init_list(void);
+    NETSNMP_IMPORT
     void netsnmp_container_free_list(void);
 
     /*
@@ -259,12 +281,14 @@
      * search for and create a container from a list of types or a
      * specific type.
      */
+    NETSNMP_IMPORT
     netsnmp_container * netsnmp_container_find(const char *type_list);
     netsnmp_container * netsnmp_container_get(const char *type);
 
     /*
      * utility routines
      */
+    NETSNMP_IMPORT
     void netsnmp_container_add_index(netsnmp_container *primary,
                                      netsnmp_container *new_index);
 
@@ -275,7 +299,9 @@
      * common comparison routines
      */
     /** first data element is a 'netsnmp_index' */
+    NETSNMP_IMPORT
     int netsnmp_compare_netsnmp_index(const void *lhs, const void *rhs);
+    NETSNMP_IMPORT
     int netsnmp_ncompare_netsnmp_index(const void *lhs, const void *rhs);
 
     /** first data element is a 'char *' */
@@ -289,7 +315,13 @@
     /** no structure, just 'char *' pointers */
     int netsnmp_compare_direct_cstring(const void * lhs, const void * rhs);
 
+    int netsnmp_compare_long(const void * lhs, const void * rhs);
+    int netsnmp_compare_ulong(const void * lhs, const void * rhs);
+    int netsnmp_compare_int32(const void * lhs, const void * rhs);
+    int netsnmp_compare_uint32(const void * lhs, const void * rhs);
+
     /** for_each callback to call free on data item */
+    NETSNMP_IMPORT
     void  netsnmp_container_simple_free(void *data, void *context);
 
 /*
@@ -301,15 +333,15 @@
 #define CONTAINER_SET_OPTIONS(x,o,rc)  do {                             \
         if (NULL==(x)->options)                                         \
             rc = -1;                                                    \
-        else                                                            \
+        else {                                                          \
             rc = (x)->options(x, 1, o);                                 \
+            if (rc != -1 )                                              \
+                (x)->flags |= o;                                        \
+        }                                                               \
     } while(0)
 
 #define CONTAINER_CHECK_OPTION(x,o,rc)    do {                          \
-        if (NULL==(x)->options)                                         \
-            rc = -1;                                                    \
-        else                                                            \
-            rc = (x)->options(x,0, o);                                  \
+        rc = x->flags & 0;                                              \
     } while(0)
 
 
@@ -348,16 +380,33 @@
     int CONTAINER_REMOVE(netsnmp_container *x, const void *k);
 
     /*
+     * duplicate container
+     */
+    netsnmp_container *CONTAINER_DUP(netsnmp_container *x, void *ctx,
+                                     u_int flags);
+
+    /*
      * clear all containers. When clearing the *first* container, and
      * *only* the first container, call the function f for each item.
      * After calling this function, all containers should be empty.
      */
     void CONTAINER_CLEAR(netsnmp_container *x, netsnmp_container_obj_func *f,
                         void *c);
+
+    /*
+     * clear all containers. When clearing the *first* container, and
+     * *only* the first container, call the free_item function for each item.
+     * After calling this function, all containers should be empty.
+     */
+    void CONTAINER_FREE_ALL(netsnmp_container *x, void *c);
+
     /*
      * free all containers
      */
     int CONTAINER_FREE(netsnmp_container *x);
+
+    netsnmp_container *SUBCONTAINER_FIND(netsnmp_container *x,
+                                         const char* name);
 #else
     /*------------------------------------------------------------------
      * These functions should EXACTLY match the function version in
@@ -427,6 +476,22 @@
      * container.c. If you change one, change them both.
      */
     NETSNMP_STATIC_INLINE /* gcc docs recommend static w/inline */
+    netsnmp_container *CONTAINER_DUP(netsnmp_container *x, void *ctx,
+                                     u_int flags)
+    {
+        if (NULL == x->duplicate) {
+            snmp_log(LOG_ERR, "container '%s' does not support duplicate\n",
+                     x->container_name ? x->container_name : "");
+            return NULL;
+        }
+        return x->duplicate(x, ctx, flags);
+    }
+
+    /*------------------------------------------------------------------
+     * These functions should EXACTLY match the function version in
+     * container.c. If you change one, change them both.
+     */
+    NETSNMP_STATIC_INLINE /* gcc docs recommend static w/inline */
     int CONTAINER_FREE(netsnmp_container *x)
     {
 	int  rc2, rc = 0;
@@ -436,17 +501,17 @@
             x = x->next;
         while(x) {
             netsnmp_container *tmp;
-            const char *name;
+            char *name;
             tmp = x->prev;
             name = x->container_name;
-            if (NULL != x->container_name)
-                SNMP_FREE(x->container_name);
+            x->container_name = NULL;
             rc2 = x->cfree(x);
             if (rc2) {
                 snmp_log(LOG_ERR,"error on subcontainer '%s' cfree (%d)\n",
                          name ? name : "", rc2);
                 rc = rc2;
             }
+            SNMP_FREE(name);
             x = tmp;
         }
         return rc;
@@ -475,6 +540,17 @@
         x->clear(x, f, c);
     }
 
+    /*
+     * clear all containers. When clearing the *first* container, and
+     * *only* the first container, call the free_item function for each item.
+     * After calling this function, all containers should be empty.
+     */
+    NETSNMP_STATIC_INLINE /* gcc docs recommend static w/inline */
+    void CONTAINER_FREE_ALL(netsnmp_container *x, void *c)
+    {
+        CONTAINER_CLEAR(x, x->free_item, c);
+    }
+
     /*------------------------------------------------------------------
      * These functions should EXACTLY match the function version in
      * container.c. If you change one, change them both.
@@ -502,6 +578,22 @@
     }
 
 #endif
+
+    /*
+     * INTERNAL utility routines for container implementations
+     */
+    void netsnmp_init_container(netsnmp_container         *c,
+                                netsnmp_container_rc      *init,
+                                netsnmp_container_rc      *cfree,
+                                netsnmp_container_size    *size,
+                                netsnmp_container_compare *cmp,
+                                netsnmp_container_op      *ins,
+                                netsnmp_container_op      *rem,
+                                netsnmp_container_rtn     *fnd);
+    /** Duplicate container meta-data. */
+    int netsnmp_container_data_dup(netsnmp_container *dup,
+                                   netsnmp_container *c);
+
     
     /*************************************************************************
      *
@@ -551,12 +643,20 @@
 
        netsnmp_iterator_rtn          *next;
 
+        /*
+         * remove will remove the item at the current position, then back up
+         * the iterator to the previous item. That way next will move to the
+         * item (the one that replaced the removed item.
+         */
+       netsnmp_iterator_rc           *remove;
+
     } netsnmp_iterator;
 
 
 #define ITERATOR_FIRST(x)  x->first(x)
 #define ITERATOR_NEXT(x)   x->next(x)
 #define ITERATOR_LAST(x)   x->last(x)
+#define ITERATOR_REMOVE(x) x->remove(x)
 #define ITERATOR_RELEASE(x) do { x->release(x); x = NULL; } while(0)
     
 #ifdef  __cplusplus
diff --git a/include/net-snmp/library/container_list_ssll.h b/include/net-snmp/library/container_list_ssll.h
index 039ba48..494f213 100644
--- a/include/net-snmp/library/container_list_ssll.h
+++ b/include/net-snmp/library/container_list_ssll.h
@@ -16,6 +16,7 @@
     netsnmp_container *netsnmp_container_get_sorted_singly_linked_list(void);
     netsnmp_container *netsnmp_container_get_singly_linked_list(int fifo);
 
+    NETSNMP_IMPORT
     void netsnmp_container_ssll_init(void);
 
 
diff --git a/include/net-snmp/library/container_null.h b/include/net-snmp/library/container_null.h
index 6489606..a55d342 100644
--- a/include/net-snmp/library/container_null.h
+++ b/include/net-snmp/library/container_null.h
@@ -10,6 +10,7 @@
 
 netsnmp_container *netsnmp_container_get_null(void);
 
+    NETSNMP_IMPORT
     void netsnmp_container_null_init(void);
 
 
diff --git a/include/net-snmp/library/data_list.h b/include/net-snmp/library/data_list.h
index a64e07a..54a3a5d 100644
--- a/include/net-snmp/library/data_list.h
+++ b/include/net-snmp/library/data_list.h
@@ -56,6 +56,7 @@
        Netsnmp_Free_List_Data *data_list_free_ptr;
     } netsnmp_data_list_saveinfo;
 
+    NETSNMP_IMPORT
     netsnmp_data_list *
       netsnmp_create_data_list(const char *, void *, Netsnmp_Free_List_Data* );
     void            netsnmp_data_list_add_node(netsnmp_data_list **head,
@@ -64,17 +65,23 @@
       netsnmp_data_list_add_data(netsnmp_data_list **head,
                                  const char *name, void *data,
                                  Netsnmp_Free_List_Data * beer);
+    NETSNMP_IMPORT
     void           *netsnmp_get_list_data(netsnmp_data_list *head,
                                           const char *node);
+    NETSNMP_IMPORT
     void            netsnmp_free_list_data(netsnmp_data_list *head);    /* single */
+    NETSNMP_IMPORT
     void            netsnmp_free_all_list_data(netsnmp_data_list *head);        /* multiple */
+    NETSNMP_IMPORT
     int             netsnmp_remove_list_node(netsnmp_data_list **realhead,
                                              const char *name);
+    NETSNMP_IMPORT
     netsnmp_data_list *
     netsnmp_get_list_node(netsnmp_data_list *head,
                           const char *name);
 
     /** depreciated: use netsnmp_data_list_add_node() */
+    NETSNMP_IMPORT
     void            netsnmp_add_list_data(netsnmp_data_list **head,
                                           netsnmp_data_list *node);
 
diff --git a/include/net-snmp/library/default_store.h b/include/net-snmp/library/default_store.h
index 92fdebf..fcb87e0 100644
--- a/include/net-snmp/library/default_store.h
+++ b/include/net-snmp/library/default_store.h
@@ -24,6 +24,8 @@
 #ifndef DEFAULT_STORE_H
 #define DEFAULT_STORE_H
 
+#include <net-snmp/net-snmp-config.h>
+
 #ifdef __cplusplus
 extern          "C" {
 #endif
@@ -90,7 +92,7 @@
 #define NETSNMP_DS_LIB_APPEND_LOGFILES     37 /* append, don't overwrite, log files */
 #define NETSNMP_DS_LIB_NO_DISCOVERY        38 /* don't support RFC5343 contextEngineID discovery */
 #define NETSNMP_DS_LIB_TSM_USE_PREFIX      39 /* TSM's simple security name mapping */
-#define NETSNMP_DS_LIB_ALLOW_SELF_SIGNED   40 /* Certs for DTLS */
+#define NETSNMP_DS_LIB_DONT_LOAD_HOST_FILES 40 /* don't read host.conf files */
 
     /*
      * library integers 
@@ -150,37 +152,48 @@
 #define NETSNMP_DS_LIB_APPTYPES          20
 #define NETSNMP_DS_LIB_KSM_KEYTAB        21
 #define NETSNMP_DS_LIB_KSM_SERVICE_NAME  22
-/* for the client */
 #define NETSNMP_DS_LIB_X509_CLIENT_PUB   23
-#define NETSNMP_DS_LIB_X509_CLIENT_PRIV  24
-#define NETSNMP_DS_LIB_X509_SERVER_CERTS 25
-/* for the server */
-#define NETSNMP_DS_LIB_X509_SERVER_PUB   26
-#define NETSNMP_DS_LIB_X509_SERVER_PRIV  27
-#define NETSNMP_DS_LIB_X509_CLIENT_CERTS 28
-#define NETSNMP_DS_LIB_SSHTOSNMP_SOCKET  29
+#define NETSNMP_DS_LIB_X509_SERVER_PUB   24
+#define NETSNMP_DS_LIB_SSHTOSNMP_SOCKET  25
+#define NETSNMP_DS_LIB_CERT_EXTRA_SUBDIR 26
+#define NETSNMP_DS_LIB_HOSTNAME          27
+#define NETSNMP_DS_LIB_X509_CRL_FILE     28
+#define NETSNMP_DS_LIB_TLS_ALGORITMS     29
 
     /*
      * end storage definitions 
      */
 
+    NETSNMP_IMPORT
     int             netsnmp_ds_set_boolean(int storeid, int which, int value);
+    NETSNMP_IMPORT
     int             netsnmp_ds_get_boolean(int storeid, int which);
+    NETSNMP_IMPORT
     int             netsnmp_ds_toggle_boolean(int storeid, int which);
+    NETSNMP_IMPORT
     int             netsnmp_ds_set_int(int storeid, int which, int value);
+    NETSNMP_IMPORT
     int             netsnmp_ds_get_int(int storeid, int which);
+    NETSNMP_IMPORT
     int             netsnmp_ds_set_string(int storeid, int which,
                                   const char *value);
+    NETSNMP_IMPORT
     char           *netsnmp_ds_get_string(int storeid, int which);
+    NETSNMP_IMPORT
     int             netsnmp_ds_set_void(int storeid, int which, void *value);
+    NETSNMP_IMPORT
     void           *netsnmp_ds_get_void(int storeid, int which);
+    NETSNMP_IMPORT
     int             netsnmp_ds_register_config(u_char type, const char *ftype,
                                        const char *token, int storeid,
                                        int which);
+    NETSNMP_IMPORT
     int             netsnmp_ds_register_premib(u_char type, const char *ftype,
                                        const char *token, int storeid,
                                        int which);
+    NETSNMP_IMPORT
     int             netsnmp_ds_parse_boolean(char *line);
+    NETSNMP_IMPORT
     void            netsnmp_ds_shutdown(void);
 
 #ifdef __cplusplus
diff --git a/include/net-snmp/library/dir_utils.h b/include/net-snmp/library/dir_utils.h
index a620d00..471bb0b 100644
--- a/include/net-snmp/library/dir_utils.h
+++ b/include/net-snmp/library/dir_utils.h
@@ -15,13 +15,27 @@
 extern "C" {
 #endif
 
+    /*
+     * filter function; return 1 to include file, 0 to exclude
+     */
+#define NETSNMP_DIR_EXCLUDE 0
+#define NETSNMP_DIR_INCLUDE 1
+    typedef int (netsnmp_directory_filter)(const void *text, void *ctx);
+
+
     /*------------------------------------------------------------------
      *
      * Prototypes
      */
-    netsnmp_container * netsnmp_directory_container_read(netsnmp_container *c,
-                                                         const char *dir,
-                                                         u_int flags);
+    netsnmp_container *
+    netsnmp_directory_container_read_some(netsnmp_container *user_container,
+                                          const char *dirname,
+                                          netsnmp_directory_filter *filter,
+                                          void *filter_ctx, u_int flags);
+
+#define netsnmp_directory_container_read(c,d,f) \
+    netsnmp_directory_container_read_some(c,d,NULL,NULL,f);
+
     void netsnmp_directory_container_free(netsnmp_container *c);
 
         
@@ -30,7 +44,15 @@
      *
      * flags
      */
-#define NETSNMP_DIR_RECURSE                           0x1
+#define NETSNMP_DIR_RECURSE                           0x0001
+#define NETSNMP_DIR_RELATIVE_PATH                     0x0002
+#define NETSNMP_DIR_SORTED                            0x0004
+/** don't return null if dir empty */
+#define NETSNMP_DIR_EMPTY_OK                          0x0008
+/** store netsnmp_file instead of filenames */
+#define NETSNMP_DIR_NSFILE                            0x0010
+/** load stats in netsnmp_file */
+#define NETSNMP_DIR_NSFILE_STATS                      0x0020
 
     
         
diff --git a/include/net-snmp/library/fd_event_manager.h b/include/net-snmp/library/fd_event_manager.h
index 14cdf51..ede67b4 100644
--- a/include/net-snmp/library/fd_event_manager.h
+++ b/include/net-snmp/library/fd_event_manager.h
@@ -88,8 +88,10 @@
  *
  * Side Effects: None
  */
+NETSNMP_IMPORT
 void netsnmp_external_event_info(int *numfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds);
 
+NETSNMP_IMPORT
 void netsnmp_external_event_info2(int *numfds,
                                   netsnmp_large_fd_set *readfds,
                                   netsnmp_large_fd_set *writefds,
@@ -119,7 +121,9 @@
  *
  * Side Effects: None
  */
+NETSNMP_IMPORT
 void netsnmp_dispatch_external_events(int *count, fd_set *readfds, fd_set *writefds, fd_set *exceptfds);
+NETSNMP_IMPORT
 void netsnmp_dispatch_external_events2(int *count,
                                        netsnmp_large_fd_set *readfds,
                                        netsnmp_large_fd_set *writefds,
diff --git a/include/net-snmp/library/file_utils.h b/include/net-snmp/library/file_utils.h
index fa9b5a4..9f5cdce 100644
--- a/include/net-snmp/library/file_utils.h
+++ b/include/net-snmp/library/file_utils.h
@@ -13,32 +13,23 @@
      */
     typedef struct netsnmp_file_s {
         
-        /*
-         * file name
-         */
+        /** file name */
         char                   *name;
         
-        /*
-         * file descriptor for the file
-         */
+        /** file descriptor for the file */
         int                     fd;
 
-        /*
-         * filesystem flags
-         */
+        /** filesystem flags */
         int                     fs_flags;
 
-        /*
-         * open/create mode
-         */
+        /** open/create mode */
         mode_t                  mode;
 
-        /*
-         * netsnmp flags
-         */
+        /** netsnmp flags */
         u_int                   ns_flags;
 
-
+        /** file stats */
+        struct stat            *stats;
 
         /*
          * future expansion
@@ -54,6 +45,9 @@
      * Prototypes
      *
      */
+    netsnmp_file *netsnmp_file_new(const char *name, int fs_flags, mode_t mode,
+                                   u_int ns_flags);
+
     netsnmp_file * netsnmp_file_create(void);
     netsnmp_file * netsnmp_file_fill(netsnmp_file * filei, const char* name,
                                      int fs_flags, mode_t mode, u_int ns_flags);
@@ -62,7 +56,11 @@
     int netsnmp_file_open(netsnmp_file * filei);
     int netsnmp_file_close(netsnmp_file * filei);
 
-        
+    /** support netsnmp_file containers */
+    int netsnmp_file_compare_name(netsnmp_file *lhs, netsnmp_file *rhs);
+    void netsnmp_file_container_free(netsnmp_file *file, void *context);
+
+
 
     /*------------------------------------------------------------------
      *
@@ -70,7 +68,8 @@
      *
      */
 #define NETSNMP_FILE_NO_AUTOCLOSE                         0x00000001
-#define NETSNMP_FILE_                                     0x00000002
+#define NETSNMP_FILE_STATS                                0x00000002
+#define NETSNMP_FILE_AUTO_OPEN                            0x00000004
 
     /*------------------------------------------------------------------
      *
diff --git a/include/net-snmp/library/int64.h b/include/net-snmp/library/int64.h
index fdc6805..9c7c894 100644
--- a/include/net-snmp/library/int64.h
+++ b/include/net-snmp/library/int64.h
@@ -13,11 +13,15 @@
     void            multBy10(U64, U64 *);
     void            incrByU16(U64 *, unsigned int);
     void            incrByU32(U64 *, unsigned int);
+    NETSNMP_IMPORT
     void            zeroU64(U64 *);
     int             isZeroU64(const U64 *);
+    NETSNMP_IMPORT
     void            printU64(char *, const U64 *);
+    NETSNMP_IMPORT
     void            printI64(char *, const U64 *);
     int             read64(U64 *, const char *);
+    NETSNMP_IMPORT
     void            u64Subtract(const U64 * pu64one, const U64 * pu64two,
                                 U64 * pu64out);
     void            u64Incr(U64 * pu64out, const U64 * pu64one);
@@ -27,6 +31,7 @@
 
     int             netsnmp_c64_check_for_32bit_wrap(U64 *old_val, U64 *new_val,
                                                      int adjust);
+    NETSNMP_IMPORT
     int             netsnmp_c64_check32_and_update(struct counter64 *prev_val,
                                                    struct counter64 *new_val,
                                                    struct counter64 *old_prev_val,
diff --git a/include/net-snmp/library/keytools.h b/include/net-snmp/library/keytools.h
index 2276216..44acc48 100644
--- a/include/net-snmp/library/keytools.h
+++ b/include/net-snmp/library/keytools.h
@@ -24,21 +24,25 @@
     /*
      * Prototypes.h
      */
+    NETSNMP_IMPORT
     int             generate_Ku(const oid * hashtype, u_int hashtype_len,
-                                u_char * P, size_t pplen,
+                                const u_char * P, size_t pplen,
                                 u_char * Ku, size_t * kulen);
 
+    NETSNMP_IMPORT
     int             generate_kul(const oid * hashtype, u_int hashtype_len,
-                                 u_char * engineID, size_t engineID_len,
-                                 u_char * Ku, size_t ku_len,
+                                 const u_char * engineID, size_t engineID_len,
+                                 const u_char * Ku, size_t ku_len,
                                  u_char * Kul, size_t * kul_len);
 
+    NETSNMP_IMPORT
     int             encode_keychange(const oid * hashtype,
                                      u_int hashtype_len, u_char * oldkey,
                                      size_t oldkey_len, u_char * newkey,
                                      size_t newkey_len, u_char * kcstring,
                                      size_t * kcstring_len);
 
+    NETSNMP_IMPORT
     int             decode_keychange(const oid * hashtype,
                                      u_int hashtype_len, u_char * oldkey,
                                      size_t oldkey_len, u_char * kcstring,
diff --git a/include/net-snmp/library/large_fd_set.h b/include/net-snmp/library/large_fd_set.h
index 7ddf169..5077780 100644
--- a/include/net-snmp/library/large_fd_set.h
+++ b/include/net-snmp/library/large_fd_set.h
@@ -64,8 +64,11 @@
     do { (fdset)->lfs_setptr->fd_count = 0; } while(0)
 
 
+NETSNMP_IMPORT
 void   netsnmp_large_fd_setfd( SOCKET fd, netsnmp_large_fd_set *fdset);
+NETSNMP_IMPORT
 void   netsnmp_large_fd_clr(   SOCKET fd, netsnmp_large_fd_set *fdset);
+NETSNMP_IMPORT
 int    netsnmp_large_fd_is_set(SOCKET fd, netsnmp_large_fd_set *fdset);
 
 #else
@@ -116,6 +119,7 @@
  * The file descriptor set must be initialized separately, e.g. via
  * NETSNMP_LARGE_FD_CLR().
  */
+NETSNMP_IMPORT
 void   netsnmp_large_fd_set_init(   netsnmp_large_fd_set *fdset, int setsize);
 
 /**
@@ -135,12 +139,13 @@
  * @see See also select(2) for more information.
  */
 NETSNMP_IMPORT
-int    netsnmp_large_fd_set_select(int numfds, netsnmp_large_fd_set *readfds,
-                            netsnmp_large_fd_set *writefds,
-                            netsnmp_large_fd_set *exceptfds,
-                            struct timeval *timeout);
+int    net_snmp_large_fd_set_select(int numfds, netsnmp_large_fd_set *readfds,
+			    netsnmp_large_fd_set *writefds,
+			    netsnmp_large_fd_set *exceptfds,
+			    struct timeval *timeout);
 
 /** Deallocate the memory allocated by netsnmp_large_fd_set_init. */
+NETSNMP_IMPORT
 void   netsnmp_large_fd_set_cleanup(netsnmp_large_fd_set *fdset);
 
 /**
diff --git a/include/net-snmp/library/lcd_time.h b/include/net-snmp/library/lcd_time.h
index 2c65e2c..da8c3c1 100644
--- a/include/net-snmp/library/lcd_time.h
+++ b/include/net-snmp/library/lcd_time.h
@@ -99,7 +99,7 @@
     /*
      * Prototypes.
      */
-    int             get_enginetime(u_char * engineID, u_int engineID_len,
+    int             get_enginetime(const u_char * engineID, u_int engineID_len,
                                    u_int * engine_boot,
                                    u_int * engine_time,
                                    u_int authenticated);
@@ -111,7 +111,7 @@
                                       u_int * last_engine_time,
                                       u_int authenticated);
 
-    int             set_enginetime(u_char * engineID, u_int engineID_len,
+    int             set_enginetime(const u_char * engineID, u_int engineID_len,
                                    u_int engine_boot, u_int engine_time,
                                    u_int authenticated);
 
@@ -122,9 +122,9 @@
          
          
         Enginetime
-        search_enginetime_list(u_char * engineID, u_int engineID_len);
+        search_enginetime_list(const u_char * engineID, u_int engineID_len);
 
-    int             hash_engineID(u_char * engineID, u_int engineID_len);
+    int             hash_engineID(const u_char * engineID, u_int engineID_len);
 
     void            dump_etimelist_entry(Enginetime e, int count);
     void            dump_etimelist(void);
diff --git a/include/net-snmp/library/libsnmp.h b/include/net-snmp/library/libsnmp.h
index ebd0062..eaf2bbf 100644
--- a/include/net-snmp/library/libsnmp.h
+++ b/include/net-snmp/library/libsnmp.h
@@ -53,11 +53,7 @@
 #include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -71,9 +67,7 @@
 #endif
 #include <stdio.h>
 #include <ctype.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#else
+#if HAVE_NETDB_H
 #include <netdb.h>
 #endif
 #if HAVE_ARPA_INET_H
diff --git a/include/net-snmp/library/md5.h b/include/net-snmp/library/md5.h
index c995c7e..12b192a 100644
--- a/include/net-snmp/library/md5.h
+++ b/include/net-snmp/library/md5.h
@@ -28,7 +28,7 @@
      * ** Input: MD -- an MDptr
      * ** Initialize the MDstruct prepatory to doing a message digest computation.
      */
-    extern void     MDbegin(MDptr);
+    NETSNMP_IMPORT void MDbegin(MDptr);
 
     /*
      * MDupdate(MD,X,count)
@@ -43,7 +43,7 @@
      * ** every MD computation should end with one call to MDupdate with a
      * ** count less than 512.  Zero is OK for a count.
      */
-    extern int      MDupdate(MDptr, unsigned char *, unsigned int);
+    NETSNMP_IMPORT int MDupdate(MDptr, const unsigned char *, unsigned int);
 
     /*
      * MDprint(MD)
@@ -54,10 +54,10 @@
      */
     extern void     MDprint(MDptr);
 
-    int             MDchecksum(u_char * data, size_t len, u_char * mac,
+    int             MDchecksum(const u_char * data, size_t len, u_char * mac,
                                size_t maclen);
-    int             MDsign(u_char * data, size_t len, u_char * mac,
-                           size_t maclen, u_char * secret,
+    int             MDsign(const u_char * data, size_t len, u_char * mac,
+                           size_t maclen, const u_char * secret,
                            size_t secretlen);
     void            MDget(MDstruct * MD, u_char * buf, size_t buflen);
 
diff --git a/include/net-snmp/library/mib.h b/include/net-snmp/library/mib.h
index 299f310..18d98e1 100644
--- a/include/net-snmp/library/mib.h
+++ b/include/net-snmp/library/mib.h
@@ -117,9 +117,11 @@
     struct variable_list;
     struct enum_list;
 
+    NETSNMP_IMPORT
     void            print_ascii_dump(FILE *);
     void            register_mib_handlers(void);
     void            netsnmp_set_mib_directory(const char *dir);
+    NETSNMP_IMPORT
     char            *netsnmp_get_mib_directory(void);
     void            netsnmp_fixup_mib_directory(void);
     void            netsnmp_mibindex_load( void );
@@ -128,31 +130,41 @@
     int             sprint_realloc_description(u_char ** buf, size_t * buf_len,
                                 size_t * out_len, int allow_realloc,
                                 oid * objid, size_t objidlen, int width);
+    NETSNMP_IMPORT
     int             get_wild_node(const char *, oid *, size_t *);
+    NETSNMP_IMPORT
     int             get_node(const char *, oid *, size_t *);
+    NETSNMP_IMPORT
     struct tree    *get_tree(const oid *, size_t, struct tree *);
+    NETSNMP_IMPORT
     struct tree    *get_tree_head(void);
     void            set_function(struct tree *);
 
+    NETSNMP_IMPORT
     int             parse_one_oid_index(oid ** oidStart, size_t * oidLen,
                                         netsnmp_variable_list * data,
                                         int complete);
+    NETSNMP_IMPORT
     int             parse_oid_indexes(oid * oidIndex, size_t oidLen,
                                       netsnmp_variable_list * data);
+    NETSNMP_IMPORT
     int             build_oid_noalloc(oid * in, size_t in_len,
                                       size_t * out_len, oid * prefix,
                                       size_t prefix_len,
                                       netsnmp_variable_list * indexes);
+    NETSNMP_IMPORT
     int             build_oid(oid ** out, size_t * out_len, oid * prefix,
                               size_t prefix_len,
                               netsnmp_variable_list * indexes);
     int             build_oid_segment(netsnmp_variable_list * var);
 
+    NETSNMP_IMPORT
     int             sprint_realloc_variable(u_char ** buf, size_t * buf_len,
                                    size_t * out_len, int allow_realloc,
                                    const oid * objid, size_t objidlen,
                                    const netsnmp_variable_list * variable);
 
+    NETSNMP_IMPORT
 #ifndef NETSNMP_DISABLE_MIB_LOADING
     struct tree    *
 #else
@@ -166,6 +178,7 @@
                                                       const oid * objid,
                                                       size_t objidlen);
 
+    NETSNMP_IMPORT
     void
                     netsnmp_sprint_realloc_objid(u_char ** buf,
                                                  size_t * buf_len,
@@ -175,15 +188,18 @@
                                                  const oid * objid,
                                                  size_t objidlen);
 
+    NETSNMP_IMPORT
     int             sprint_realloc_value(u_char ** buf, size_t * buf_len,
                                  size_t * out_len, int allow_realloc,
                                  const oid * objid, size_t objidlen,
                                  const netsnmp_variable_list * variable);
 
+    NETSNMP_IMPORT
     int             sprint_realloc_objid(u_char ** buf, size_t * buf_len,
                                  size_t * out_len, int allow_realloc,
                                  const oid * objid, size_t objidlen);
 
+    NETSNMP_IMPORT
     int             sprint_realloc_by_type(u_char ** buf, size_t * buf_len,
                                            size_t * out_len,
                                            int allow_realloc,
@@ -192,12 +208,14 @@
                                            const char *hint,
                                            const char *units);
 
+    NETSNMP_IMPORT
     int             sprint_realloc_hexstring(u_char ** buf,
                                              size_t * buf_len,
                                              size_t * out_len,
                                              int allow_realloc,
                                              const u_char *, size_t);
 
+    NETSNMP_IMPORT
     int             sprint_realloc_asciistring(u_char ** buf,
                                                size_t * buf_len,
                                                size_t * out_len,
@@ -416,6 +434,7 @@
                                  const struct enum_list *, const char *,
                                  const char *);
 
+    NETSNMP_IMPORT
     int             snprint_bitstring(char *buf, size_t buf_len,
                                       const netsnmp_variable_list *,
                                       const struct enum_list *, const char *,
@@ -448,23 +467,35 @@
                                    const char *);
 #endif
 
+    NETSNMP_IMPORT
     void            print_oid_report(FILE *);
+    NETSNMP_IMPORT
     void            print_oid_report_enable_labeledoid(void);
+    NETSNMP_IMPORT
     void            print_oid_report_enable_oid(void);
+    NETSNMP_IMPORT
     void            print_oid_report_enable_suffix(void);
+    NETSNMP_IMPORT
     void            print_oid_report_enable_symbolic(void);
+    NETSNMP_IMPORT
     void            print_oid_report_enable_mibchildoid(void);
 
     const char     *parse_octet_hint(const char *hint, const char *value,
 	                             unsigned char **new_val, int *new_val_len);
 
+    NETSNMP_IMPORT
     void            clear_tree_flags(register struct tree *tp);
 
+    NETSNMP_IMPORT
     char           *snmp_out_toggle_options(char *);
+    NETSNMP_IMPORT
     void            snmp_out_toggle_options_usage(const char *, FILE *);
+    NETSNMP_IMPORT
     char           *snmp_in_toggle_options(char *);
     char           *snmp_in_options(char *, int, char * const *);
+    NETSNMP_IMPORT
     void            snmp_in_toggle_options_usage(const char *, FILE *);
+    NETSNMP_IMPORT
     u_char          mib_to_asn_type(int mib_type);
 
 
diff --git a/include/net-snmp/library/mt_support.h b/include/net-snmp/library/mt_support.h
index c17c729..4e35d33 100644
--- a/include/net-snmp/library/mt_support.h
+++ b/include/net-snmp/library/mt_support.h
@@ -63,9 +63,13 @@
 #endif /*  HAVE_PTHREAD_H  */
 
 
+NETSNMP_IMPORT
 int             snmp_res_init(void);
+NETSNMP_IMPORT
 int             snmp_res_lock(int groupID, int resourceID);
+NETSNMP_IMPORT
 int             snmp_res_unlock(int groupID, int resourceID);
+NETSNMP_IMPORT
 int             snmp_res_destroy_mutex(int groupID, int resourceID);
 
 #else /*  NETSNMP_REENTRANT  */
diff --git a/include/net-snmp/library/oid.h b/include/net-snmp/library/oid.h
new file mode 100644
index 0000000..e7adf41
--- /dev/null
+++ b/include/net-snmp/library/oid.h
@@ -0,0 +1,18 @@
+#ifndef NETSNMP_LIBRARY_OID_H
+#define NETSNMP_LIBRARY_OID_H
+
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
+
+#ifndef EIGHTBIT_SUBIDS
+typedef u_long oid;
+#define MAX_SUBID   0xFFFFFFFFUL
+#define NETSNMP_PRIo "l"
+#else
+typedef uint8_t oid;
+#define MAX_SUBID   0xFF
+#define NETSNMP_PRIo ""
+#endif
+
+#endif /* NETSNMP_LIBRARY_OID_H */
diff --git a/include/net-snmp/library/oid_stash.h b/include/net-snmp/library/oid_stash.h
index eeab490..290bb40 100644
--- a/include/net-snmp/library/oid_stash.h
+++ b/include/net-snmp/library/oid_stash.h
@@ -38,6 +38,7 @@
        NetSNMPStashDump *dumpfn;
     } netsnmp_oid_stash_save_info;
 
+    NETSNMP_IMPORT
     int             netsnmp_oid_stash_add_data(netsnmp_oid_stash_node **root,
 					       const oid * lookup,
                                                size_t lookup_len,
@@ -48,9 +49,11 @@
     netsnmp_oid_stash_node
         *netsnmp_oid_stash_get_node(netsnmp_oid_stash_node *root,
                                     const oid * lookup, size_t lookup_len);
+    NETSNMP_IMPORT
     void           *netsnmp_oid_stash_get_data(netsnmp_oid_stash_node *root,
 					       const oid * lookup,
                                                size_t lookup_len);
+    NETSNMP_IMPORT
     netsnmp_oid_stash_node *
     netsnmp_oid_stash_getnext_node(netsnmp_oid_stash_node *root,
                                    oid * lookup, size_t lookup_len);
@@ -65,6 +68,7 @@
                                  oid *curoid, size_t curoid_len);
 
     /* frees all data in the stash and cleans it out.  Sets root = NULL */
+    NETSNMP_IMPORT
     void netsnmp_oid_stash_free(netsnmp_oid_stash_node **root,
                                 NetSNMPStashFreeNode *freefn);
                                 
diff --git a/include/net-snmp/library/openssl_aes.h b/include/net-snmp/library/openssl_aes.h
new file mode 100644
index 0000000..bddf083
--- /dev/null
+++ b/include/net-snmp/library/openssl_aes.h
@@ -0,0 +1,140 @@
+/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */
+/* ====================================================================
+ * Copyright (c) 1998-2002 The OpenSSL Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ *    endorse or promote products derived from this software without
+ *    prior written permission. For written permission, please contact
+ *    openssl-core@openssl.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ *    nor may "OpenSSL" appear in their names without prior written
+ *    permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ */
+
+#ifndef HEADER_AES_H
+#define HEADER_AES_H
+
+#ifdef OPENSSL_NO_AES
+#error AES is disabled.
+#endif
+
+#include <stddef.h>
+
+#define AES_ENCRYPT	1
+#define AES_DECRYPT	0
+
+/* Because array size can't be a const in C, the following two are macros.
+   Both sizes are in bytes. */
+#define AES_MAXNR 14
+#define AES_BLOCK_SIZE 16
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+/* This should be a hidden type, but EVP requires that the size be known */
+struct aes_key_st {
+#ifdef AES_LONG
+    unsigned long rd_key[4 *(AES_MAXNR + 1)];
+#else
+    unsigned int rd_key[4 *(AES_MAXNR + 1)];
+#endif
+    int rounds;
+};
+typedef struct aes_key_st AES_KEY;
+
+const char *AES_options(void);
+
+int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
+	AES_KEY *key);
+int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
+	AES_KEY *key);
+
+void AES_encrypt(const unsigned char *in, unsigned char *out,
+	const AES_KEY *key);
+void AES_decrypt(const unsigned char *in, unsigned char *out,
+	const AES_KEY *key);
+
+void AES_ecb_encrypt(const unsigned char *in, unsigned char *out,
+	const AES_KEY *key, const int enc);
+void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
+	size_t length, const AES_KEY *key,
+	unsigned char *ivec, const int enc);
+void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out,
+	size_t length, const AES_KEY *key,
+	unsigned char *ivec, int *num, const int enc);
+void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out,
+	size_t length, const AES_KEY *key,
+	unsigned char *ivec, int *num, const int enc);
+void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out,
+	size_t length, const AES_KEY *key,
+	unsigned char *ivec, int *num, const int enc);
+void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out,
+	size_t length, const AES_KEY *key,
+	unsigned char *ivec, int *num);
+void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out,
+	size_t length, const AES_KEY *key,
+	unsigned char ivec[AES_BLOCK_SIZE],
+	unsigned char ecount_buf[AES_BLOCK_SIZE],
+	unsigned int *num);
+/* NB: the IV is _two_ blocks long */
+void AES_ige_encrypt(const unsigned char *in, unsigned char *out,
+		     size_t length, const AES_KEY *key,
+		     unsigned char *ivec, const int enc);
+/* NB: the IV is _four_ blocks long */
+void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out,
+			size_t length, const AES_KEY *key,
+			const AES_KEY *key2, const unsigned char *ivec,
+			const int enc);
+
+int AES_wrap_key(AES_KEY *key, const unsigned char *iv,
+		unsigned char *out,
+		const unsigned char *in, unsigned int inlen);
+int AES_unwrap_key(AES_KEY *key, const unsigned char *iv,
+		unsigned char *out,
+		const unsigned char *in, unsigned int inlen);
+
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* !HEADER_AES_H */
diff --git a/include/net-snmp/library/openssl_des.h b/include/net-snmp/library/openssl_des.h
new file mode 100644
index 0000000..44e7baf
--- /dev/null
+++ b/include/net-snmp/library/openssl_des.h
@@ -0,0 +1,236 @@
+/* crypto/des/des.h */
+/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+/* Copied roughly from opensslconf.h which it's a little more complex */
+#define DES_LONG unsigned long
+
+#ifndef HEADER_NEW_DES_H
+#define HEADER_NEW_DES_H
+
+#ifdef OPENSSL_NO_DES
+#error DES is disabled.
+#endif
+
+#ifdef OPENSSL_BUILD_SHLIBCRYPTO
+# undef OPENSSL_EXTERN
+# define OPENSSL_EXTERN OPENSSL_EXPORT
+#endif
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+typedef unsigned char DES_cblock[8];
+typedef /* const */ unsigned char const_DES_cblock[8];
+/* With "const", gcc 2.8.1 on Solaris thinks that DES_cblock *
+ * and const_DES_cblock * are incompatible pointer types. */
+
+typedef struct DES_ks
+    {
+    union
+	{
+	DES_cblock cblock;
+	/* make sure things are correct size on machines with
+	 * 8 byte longs */
+	DES_LONG deslong[2];
+	} ks[16];
+    } DES_key_schedule;
+
+#ifndef OPENSSL_DISABLE_OLD_DES_SUPPORT
+# ifndef OPENSSL_ENABLE_OLD_DES_SUPPORT
+#  define OPENSSL_ENABLE_OLD_DES_SUPPORT
+# endif
+#endif
+
+#define DES_KEY_SZ 	(sizeof(DES_cblock))
+#define DES_SCHEDULE_SZ (sizeof(DES_key_schedule))
+
+#define DES_ENCRYPT	1
+#define DES_DECRYPT	0
+
+#define DES_CBC_MODE	0
+#define DES_PCBC_MODE	1
+
+#define DES_ecb2_encrypt(i,o,k1,k2,e) \
+	DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e))
+
+#define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \
+	DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e))
+
+#define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \
+	DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e))
+
+#define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \
+	DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n))
+
+const char *DES_options(void);
+void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output,
+		      DES_key_schedule *ks1,DES_key_schedule *ks2,
+		      DES_key_schedule *ks3, int enc);
+DES_LONG DES_cbc_cksum(const unsigned char *input,DES_cblock *output,
+		       long length,DES_key_schedule *schedule,
+		       const_DES_cblock *ivec);
+/* DES_cbc_encrypt does not update the IV!  Use DES_ncbc_encrypt instead. */
+void DES_cbc_encrypt(const unsigned char *input,unsigned char *output,
+		     long length,DES_key_schedule *schedule,DES_cblock *ivec,
+		     int enc);
+void DES_ncbc_encrypt(const unsigned char *input,unsigned char *output,
+		      long length,DES_key_schedule *schedule,DES_cblock *ivec,
+		      int enc);
+void DES_xcbc_encrypt(const unsigned char *input,unsigned char *output,
+		      long length,DES_key_schedule *schedule,DES_cblock *ivec,
+		      const_DES_cblock *inw,const_DES_cblock *outw,int enc);
+void DES_cfb_encrypt(const unsigned char *in,unsigned char *out,int numbits,
+		     long length,DES_key_schedule *schedule,DES_cblock *ivec,
+		     int enc);
+void DES_ecb_encrypt(const_DES_cblock *input,DES_cblock *output,
+		     DES_key_schedule *ks,int enc);
+
+/* 	This is the DES encryption function that gets called by just about
+	every other DES routine in the library.  You should not use this
+	function except to implement 'modes' of DES.  I say this because the
+	functions that call this routine do the conversion from 'char *' to
+	long, and this needs to be done to make sure 'non-aligned' memory
+	access do not occur.  The characters are loaded 'little endian'.
+	Data is a pointer to 2 unsigned long's and ks is the
+	DES_key_schedule to use.  enc, is non zero specifies encryption,
+	zero if decryption. */
+void DES_encrypt1(DES_LONG *data,DES_key_schedule *ks, int enc);
+
+/* 	This functions is the same as DES_encrypt1() except that the DES
+	initial permutation (IP) and final permutation (FP) have been left
+	out.  As for DES_encrypt1(), you should not use this function.
+	It is used by the routines in the library that implement triple DES.
+	IP() DES_encrypt2() DES_encrypt2() DES_encrypt2() FP() is the same
+	as DES_encrypt1() DES_encrypt1() DES_encrypt1() except faster :-). */
+void DES_encrypt2(DES_LONG *data,DES_key_schedule *ks, int enc);
+
+void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1,
+		  DES_key_schedule *ks2, DES_key_schedule *ks3);
+void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1,
+		  DES_key_schedule *ks2, DES_key_schedule *ks3);
+void DES_ede3_cbc_encrypt(const unsigned char *input,unsigned char *output, 
+			  long length,
+			  DES_key_schedule *ks1,DES_key_schedule *ks2,
+			  DES_key_schedule *ks3,DES_cblock *ivec,int enc);
+void DES_ede3_cbcm_encrypt(const unsigned char *in,unsigned char *out,
+			   long length,
+			   DES_key_schedule *ks1,DES_key_schedule *ks2,
+			   DES_key_schedule *ks3,
+			   DES_cblock *ivec1,DES_cblock *ivec2,
+			   int enc);
+void DES_ede3_cfb64_encrypt(const unsigned char *in,unsigned char *out,
+			    long length,DES_key_schedule *ks1,
+			    DES_key_schedule *ks2,DES_key_schedule *ks3,
+			    DES_cblock *ivec,int *num,int enc);
+void DES_ede3_cfb_encrypt(const unsigned char *in,unsigned char *out,
+			  int numbits,long length,DES_key_schedule *ks1,
+			  DES_key_schedule *ks2,DES_key_schedule *ks3,
+			  DES_cblock *ivec,int enc);
+void DES_ede3_ofb64_encrypt(const unsigned char *in,unsigned char *out,
+			    long length,DES_key_schedule *ks1,
+			    DES_key_schedule *ks2,DES_key_schedule *ks3,
+			    DES_cblock *ivec,int *num);
+#if 0
+void DES_xwhite_in2out(const_DES_cblock *DES_key,const_DES_cblock *in_white,
+		       DES_cblock *out_white);
+#endif
+
+int DES_enc_read(int fd,void *buf,int len,DES_key_schedule *sched,
+		 DES_cblock *iv);
+int DES_enc_write(int fd,const void *buf,int len,DES_key_schedule *sched,
+		  DES_cblock *iv);
+char *DES_fcrypt(const char *buf,const char *salt, char *ret);
+char *DES_crypt(const char *buf,const char *salt);
+void DES_ofb_encrypt(const unsigned char *in,unsigned char *out,int numbits,
+		     long length,DES_key_schedule *schedule,DES_cblock *ivec);
+void DES_pcbc_encrypt(const unsigned char *input,unsigned char *output,
+		      long length,DES_key_schedule *schedule,DES_cblock *ivec,
+		      int enc);
+DES_LONG DES_quad_cksum(const unsigned char *input,DES_cblock output[],
+			long length,int out_count,DES_cblock *seed);
+int DES_random_key(DES_cblock *ret);
+void DES_set_odd_parity(DES_cblock *key);
+int DES_check_key_parity(const_DES_cblock *key);
+int DES_is_weak_key(const_DES_cblock *key);
+/* DES_set_key (= set_key = DES_key_sched = key_sched) calls
+ * DES_set_key_checked if global variable DES_check_key is set,
+ * DES_set_key_unchecked otherwise. */
+int DES_set_key(const_DES_cblock *key,DES_key_schedule *schedule);
+int DES_key_sched(const_DES_cblock *key,DES_key_schedule *schedule);
+int DES_set_key_checked(const_DES_cblock *key,DES_key_schedule *schedule);
+void DES_set_key_unchecked(const_DES_cblock *key,DES_key_schedule *schedule);
+void DES_string_to_key(const char *str,DES_cblock *key);
+void DES_string_to_2keys(const char *str,DES_cblock *key1,DES_cblock *key2);
+void DES_cfb64_encrypt(const unsigned char *in,unsigned char *out,long length,
+		       DES_key_schedule *schedule,DES_cblock *ivec,int *num,
+		       int enc);
+void DES_ofb64_encrypt(const unsigned char *in,unsigned char *out,long length,
+		       DES_key_schedule *schedule,DES_cblock *ivec,int *num);
+
+int DES_read_password(DES_cblock *key, const char *prompt, int verify);
+int DES_read_2passwords(DES_cblock *key1, DES_cblock *key2, const char *prompt,
+	int verify);
+
+#define DES_fixup_key_parity DES_set_odd_parity
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif
diff --git a/include/net-snmp/library/openssl_md5.h b/include/net-snmp/library/openssl_md5.h
new file mode 100644
index 0000000..1e85f31
--- /dev/null
+++ b/include/net-snmp/library/openssl_md5.h
@@ -0,0 +1,116 @@
+/* crypto/md5/md5.h */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+#ifndef HEADER_MD5_H
+#define HEADER_MD5_H
+
+#include <stddef.h>
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+#ifdef OPENSSL_NO_MD5
+#error MD5 is disabled.
+#endif
+
+/*
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ * ! MD5_LONG has to be at least 32 bits wide. If it's wider, then !
+ * ! MD5_LONG_LOG2 has to be defined along.			   !
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ */
+
+#if defined(__LP32__)
+#define MD5_LONG unsigned long
+#elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__)
+#define MD5_LONG unsigned long
+#define MD5_LONG_LOG2 3
+/*
+ * _CRAY note. I could declare short, but I have no idea what impact
+ * does it have on performance on none-T3E machines. I could declare
+ * int, but at least on C90 sizeof(int) can be chosen at compile time.
+ * So I've chosen long...
+ *					<appro@fy.chalmers.se>
+ */
+#else
+#define MD5_LONG unsigned int
+#endif
+
+#define MD5_CBLOCK	64
+#define MD5_LBLOCK	(MD5_CBLOCK/4)
+#define MD5_DIGEST_LENGTH 16
+
+typedef struct MD5state_st
+	{
+	MD5_LONG A,B,C,D;
+	MD5_LONG Nl,Nh;
+	MD5_LONG data[MD5_LBLOCK];
+	unsigned int num;
+	} MD5_CTX;
+
+int MD5_Init(MD5_CTX *c);
+int MD5_Update(MD5_CTX *c, const void *data, size_t len);
+int MD5_Final(unsigned char *md, MD5_CTX *c);
+unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md);
+void MD5_Transform(MD5_CTX *c, const unsigned char *b);
+#ifdef  __cplusplus
+}
+#endif
+
+#endif
diff --git a/include/net-snmp/library/openssl_sha.h b/include/net-snmp/library/openssl_sha.h
new file mode 100644
index 0000000..ec2ff09
--- /dev/null
+++ b/include/net-snmp/library/openssl_sha.h
@@ -0,0 +1,199 @@
+/* crypto/sha/sha.h */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+#ifndef HEADER_SHA_H
+#define HEADER_SHA_H
+
+#include <stddef.h>
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+#if defined(OPENSSL_NO_SHA) || (defined(OPENSSL_NO_SHA0) && defined(OPENSSL_NO_SHA1))
+#error SHA is disabled.
+#endif
+
+#if defined(OPENSSL_FIPS)
+#define FIPS_SHA_SIZE_T size_t
+#endif
+
+/*
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ * ! SHA_LONG has to be at least 32 bits wide. If it's wider, then !
+ * ! SHA_LONG_LOG2 has to be defined along.                        !
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ */
+
+#if defined(__LP32__)
+#define SHA_LONG unsigned long
+#elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__)
+#define SHA_LONG unsigned long
+#define SHA_LONG_LOG2 3
+#else
+#define SHA_LONG unsigned int
+#endif
+
+#define SHA_LBLOCK	16
+#define SHA_CBLOCK	(SHA_LBLOCK*4)	/* SHA treats input data as a
+					 * contiguous array of 32 bit
+					 * wide big-endian values. */
+#define SHA_LAST_BLOCK  (SHA_CBLOCK-8)
+#define SHA_DIGEST_LENGTH 20
+
+typedef struct SHAstate_st
+	{
+	SHA_LONG h0,h1,h2,h3,h4;
+	SHA_LONG Nl,Nh;
+	SHA_LONG data[SHA_LBLOCK];
+	unsigned int num;
+	} SHA_CTX;
+
+#ifndef OPENSSL_NO_SHA0
+int SHA_Init(SHA_CTX *c);
+int SHA_Update(SHA_CTX *c, const void *data, size_t len);
+int SHA_Final(unsigned char *md, SHA_CTX *c);
+unsigned char *SHA(const unsigned char *d, size_t n, unsigned char *md);
+void SHA_Transform(SHA_CTX *c, const unsigned char *data);
+#endif
+#ifndef OPENSSL_NO_SHA1
+int SHA1_Init(SHA_CTX *c);
+int SHA1_Update(SHA_CTX *c, const void *data, size_t len);
+int SHA1_Final(unsigned char *md, SHA_CTX *c);
+unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md);
+void SHA1_Transform(SHA_CTX *c, const unsigned char *data);
+#endif
+
+#define SHA256_CBLOCK	(SHA_LBLOCK*4)	/* SHA-256 treats input data as a
+					 * contiguous array of 32 bit
+					 * wide big-endian values. */
+#define SHA224_DIGEST_LENGTH	28
+#define SHA256_DIGEST_LENGTH	32
+
+typedef struct SHA256state_st
+	{
+	SHA_LONG h[8];
+	SHA_LONG Nl,Nh;
+	SHA_LONG data[SHA_LBLOCK];
+	unsigned int num,md_len;
+	} SHA256_CTX;
+
+#ifndef OPENSSL_NO_SHA256
+int SHA224_Init(SHA256_CTX *c);
+int SHA224_Update(SHA256_CTX *c, const void *data, size_t len);
+int SHA224_Final(unsigned char *md, SHA256_CTX *c);
+unsigned char *SHA224(const unsigned char *d, size_t n,unsigned char *md);
+int SHA256_Init(SHA256_CTX *c);
+int SHA256_Update(SHA256_CTX *c, const void *data, size_t len);
+int SHA256_Final(unsigned char *md, SHA256_CTX *c);
+unsigned char *SHA256(const unsigned char *d, size_t n,unsigned char *md);
+void SHA256_Transform(SHA256_CTX *c, const unsigned char *data);
+#endif
+
+#define SHA384_DIGEST_LENGTH	48
+#define SHA512_DIGEST_LENGTH	64
+
+#ifndef OPENSSL_NO_SHA512
+/*
+ * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64
+ * being exactly 64-bit wide. See Implementation Notes in sha512.c
+ * for further details.
+ */
+#define SHA512_CBLOCK	(SHA_LBLOCK*8)	/* SHA-512 treats input data as a
+					 * contiguous array of 64 bit
+					 * wide big-endian values. */
+#if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__)
+#define SHA_LONG64 unsigned __int64
+#define U64(C)     C##UI64
+#elif defined(__arch64__)
+#define SHA_LONG64 unsigned long
+#define U64(C)     C##UL
+#else
+#define SHA_LONG64 unsigned long long
+#define U64(C)     C##ULL
+#endif
+
+typedef struct SHA512state_st
+	{
+	SHA_LONG64 h[8];
+	SHA_LONG64 Nl,Nh;
+	union {
+		SHA_LONG64	d[SHA_LBLOCK];
+		unsigned char	p[SHA512_CBLOCK];
+	} u;
+	unsigned int num,md_len;
+	} SHA512_CTX;
+#endif
+
+#ifndef OPENSSL_NO_SHA512
+int SHA384_Init(SHA512_CTX *c);
+int SHA384_Update(SHA512_CTX *c, const void *data, size_t len);
+int SHA384_Final(unsigned char *md, SHA512_CTX *c);
+unsigned char *SHA384(const unsigned char *d, size_t n,unsigned char *md);
+int SHA512_Init(SHA512_CTX *c);
+int SHA512_Update(SHA512_CTX *c, const void *data, size_t len);
+int SHA512_Final(unsigned char *md, SHA512_CTX *c);
+unsigned char *SHA512(const unsigned char *d, size_t n,unsigned char *md);
+void SHA512_Transform(SHA512_CTX *c, const unsigned char *data);
+#endif
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif
diff --git a/include/net-snmp/library/parse.h b/include/net-snmp/library/parse.h
index f5b0cd6..8726cc7 100644
--- a/include/net-snmp/library/parse.h
+++ b/include/net-snmp/library/parse.h
@@ -193,28 +193,43 @@
     void            unload_all_mibs(void);
     int             add_mibfile(const char*, const char*, FILE *);
     int             which_module(const char *);
+    NETSNMP_IMPORT
     char           *module_name(int, char *);
+    NETSNMP_IMPORT
     void            print_subtree(FILE *, struct tree *, int);
+    NETSNMP_IMPORT
     void            print_ascii_dump_tree(FILE *, struct tree *, int);
+    NETSNMP_IMPORT
     struct tree    *find_tree_node(const char *, int);
+    NETSNMP_IMPORT
     const char     *get_tc_descriptor(int);
+    NETSNMP_IMPORT
     const char     *get_tc_description(int);
+    NETSNMP_IMPORT
     struct tree    *find_best_tree_node(const char *, struct tree *,
                                         u_int *);
     /*
      * backwards compatability 
      */
+    NETSNMP_IMPORT
     struct tree    *find_node(const char *, struct tree *);
     struct tree    *find_node2(const char *, const char *); 
+    NETSNMP_IMPORT
     struct module  *find_module(int);
     void            adopt_orphans(void);
+    NETSNMP_IMPORT
     char           *snmp_mib_toggle_options(char *options);
+    NETSNMP_IMPORT
     void            snmp_mib_toggle_options_usage(const char *lead,
                                                   FILE * outf);
+    NETSNMP_IMPORT
     void            print_mib(FILE *);
+    NETSNMP_IMPORT
     void            print_mib_tree(FILE *, struct tree *, int);
     int             get_mib_parse_error_count(void);
+    NETSNMP_IMPORT
     int             snmp_get_token(FILE * fp, char *token, int maxtlen);
+    NETSNMP_IMPORT
     struct tree    *find_best_tree_node(const char *name,
                                         struct tree *tree_top,
                                         u_int * match);
diff --git a/include/net-snmp/library/read_config.h b/include/net-snmp/library/read_config.h
index dd28411..08eca9b 100644
--- a/include/net-snmp/library/read_config.h
+++ b/include/net-snmp/library/read_config.h
@@ -43,50 +43,88 @@
     };
 
 
+    NETSNMP_IMPORT
     int             netsnmp_config(char *);     /* parse a simple line: token=values */
+    NETSNMP_IMPORT
     void            netsnmp_config_remember(char *);    /* process later, during snmp_init() */
     void            netsnmp_config_process_memories(void);      /* run all memories through parser */
-    void            read_config(const char *, struct config_line *, int);
-    void            read_config_files(int);
+    int             read_config(const char *, struct config_line *, int);
+    int             read_config_files(int);
+    NETSNMP_IMPORT
     void            free_config(void);
 #if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2&& __GNUC_MINOR__ < 8)
+    NETSNMP_IMPORT
     void            netsnmp_config_error(const char *, ...);
     void            netsnmp_config_warn(const char *, ...);
 #else
+    NETSNMP_IMPORT
     void            netsnmp_config_error(const char *, ...)
 	__attribute__((__format__(__printf__, 1, 2)));
     void            netsnmp_config_warn(const char *, ...)
 	__attribute__((__format__(__printf__, 1, 2)));
 #endif
 
+    NETSNMP_IMPORT
     char           *skip_white(char *);
+    NETSNMP_IMPORT
+    const char     *skip_white_const(const char *);
+    NETSNMP_IMPORT
     char           *skip_not_white(char *);
+    NETSNMP_IMPORT
+    const char     *skip_not_white_const(const char *);
+    NETSNMP_IMPORT
     char           *skip_token(char *);
+    NETSNMP_IMPORT
+    const char     *skip_token_const(const char *);
+    NETSNMP_IMPORT
     char           *copy_nword(char *, char *, int);
+    NETSNMP_IMPORT
+    const char     *copy_nword_const(const char *, char *, int);
+    NETSNMP_IMPORT
     char           *copy_word(char *, char *);  /* do not use */
-    void            read_config_with_type(const char *, const char *);
+    NETSNMP_IMPORT
+    int             read_config_with_type(const char *, const char *);
+    NETSNMP_IMPORT
     char           *read_config_save_octet_string(char *saveto,
                                                   const u_char * str,
                                                   size_t len);
-    char           *read_config_read_octet_string(char *readfrom,
+    NETSNMP_IMPORT
+    char           *read_config_read_octet_string(const char *readfrom,
                                                   u_char ** str,
                                                   size_t * len);
+    NETSNMP_IMPORT
+    const char     *read_config_read_octet_string_const(const char *readfrom,
+                                                        u_char ** str,
+                                                        size_t * len);
+    NETSNMP_IMPORT
     char           *read_config_read_objid(char *readfrom, oid ** objid,
                                            size_t * len);
+    const char     *read_config_read_objid_const(const char *readfrom,
+                                                 oid ** objid,
+                                                 size_t * len);
+    NETSNMP_IMPORT
     char           *read_config_save_objid(char *saveto, oid * objid,
                                            size_t len);
+    NETSNMP_IMPORT
     char           *read_config_read_data(int type, char *readfrom,
                                           void *dataptr, size_t * len);
+    NETSNMP_IMPORT
     char           *read_config_read_memory(int type, char *readfrom,
                                             char *dataptr, size_t * len);
+    NETSNMP_IMPORT
     char           *read_config_store_data(int type, char *storeto,
                                            void *dataptr, size_t * len);
     char           *read_config_store_data_prefix(char prefix, int type,
                                                   char *storeto,
                                                   void *dataptr, size_t len);
+    int  read_config_files_of_type(int when, struct config_files *ctmp);
+    NETSNMP_IMPORT
     void            read_config_store(const char *type, const char *line);
+    NETSNMP_IMPORT
     void            read_app_config_store(const char *line);
+    NETSNMP_IMPORT
     void            snmp_save_persistent(const char *type);
+    NETSNMP_IMPORT
     void            snmp_clean_persistent(const char *type);
     struct config_line *read_config_get_handlers(const char *type);
 
@@ -104,13 +142,17 @@
                                                    **mem);
 
     void            set_configuration_directory(const char *dir);
+    NETSNMP_IMPORT
     const char     *get_configuration_directory(void);
     void            set_persistent_directory(const char *dir);
     const char     *get_persistent_directory(void);
     void            set_temp_file_pattern(const char *pattern);
+    NETSNMP_IMPORT
     const char     *get_temp_file_pattern(void);
+    NETSNMP_IMPORT
     void            handle_long_opt(const char *myoptarg);
 
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/net-snmp/library/scapi.h b/include/net-snmp/library/scapi.h
index d927044..f4b63f5 100644
--- a/include/net-snmp/library/scapi.h
+++ b/include/net-snmp/library/scapi.h
@@ -35,6 +35,7 @@
     int             sc_get_proper_priv_length(const oid * privtype,
                                               u_int privtype_len);
 
+    NETSNMP_IMPORT
     int             sc_init(void);
     int             sc_shutdown(int majorID, int minorID, void *serverarg,
                                 void *clientarg);
@@ -43,20 +44,20 @@
 
     int             sc_generate_keyed_hash(const oid * authtype,
                                            size_t authtypelen,
-                                           u_char * key, u_int keylen,
-                                           u_char * message, u_int msglen,
+                                           const u_char * key, u_int keylen,
+                                           const u_char * message, u_int msglen,
                                            u_char * MAC, size_t * maclen);
 
     int             sc_check_keyed_hash(const oid * authtype,
-                                        size_t authtypelen, u_char * key,
-                                        u_int keylen, u_char * message,
-                                        u_int msglen, u_char * MAC,
+                                        size_t authtypelen, const u_char * key,
+                                        u_int keylen, const u_char * message,
+                                        u_int msglen, const u_char * MAC,
                                         u_int maclen);
 
     int             sc_encrypt(const oid * privtype, size_t privtypelen,
                                u_char * key, u_int keylen,
                                u_char * iv, u_int ivlen,
-                               u_char * plaintext, u_int ptlen,
+                               const u_char * plaintext, u_int ptlen,
                                u_char * ciphertext, size_t * ctlen);
 
     int             sc_decrypt(const oid * privtype, size_t privtypelen,
@@ -66,7 +67,7 @@
                                u_char * plaintext, size_t * ptlen);
 
     int             sc_hash(const oid * hashtype, size_t hashtypelen,
-                            u_char * buf, size_t buf_len,
+                            const u_char * buf, size_t buf_len,
                             u_char * MAC, size_t * MAC_len);
 
     int             sc_get_transform_type(oid * hashtype,
diff --git a/include/net-snmp/library/snmp-tc.h b/include/net-snmp/library/snmp-tc.h
index d957bbe..a355dd0 100644
--- a/include/net-snmp/library/snmp-tc.h
+++ b/include/net-snmp/library/snmp-tc.h
@@ -18,6 +18,7 @@
                                           u_char utc_offset_hours,
                                           u_char utc_offset_minutes);
 
+    NETSNMP_IMPORT
     u_char         *date_n_time(const time_t *, size_t *);
     time_t          ctime_to_timet(const char *);
 
@@ -52,7 +53,11 @@
 #define ST_PERMANENT	4
 #define ST_READONLY	5
 
+    NETSNMP_IMPORT
     char            check_rowstatus_transition(int old_val, int new_val);
+    NETSNMP_IMPORT
+    char            check_rowstatus_with_storagetype_transition(int old_val, int new_val, int old_storage);
+    NETSNMP_IMPORT
     char            check_storage_transition(int old_val, int new_val);
 
 #ifdef __cplusplus
diff --git a/include/net-snmp/library/snmp.h b/include/net-snmp/library/snmp.h
index 3bb55bf..5daf166 100644
--- a/include/net-snmp/library/snmp.h
+++ b/include/net-snmp/library/snmp.h
@@ -277,6 +277,7 @@
 #define SNMP_SEC_MODEL_SNMPv1		1
 #define SNMP_SEC_MODEL_SNMPv2c		2
 #define SNMP_SEC_MODEL_USM		3
+#define SNMP_SEC_MODEL_TSM              4
 #define SNMP_SEC_MODEL_SNMPv2p		256
 
 #define SNMP_SEC_LEVEL_NOAUTH		1
@@ -319,11 +320,15 @@
 #define SNMPADMINLENGTH 255
 
 
+    NETSNMP_IMPORT
     char           *uptime_string(u_long, char *);
     char           *uptime_string_n(u_long, char *, size_t);
-    void            xdump(const u_char *, size_t, const char *);
+    NETSNMP_IMPORT
+    void            xdump(const void *, size_t, const char *);
+    NETSNMP_IMPORT
     u_char         *snmp_parse_var_op(u_char *, oid *, size_t *, u_char *,
                                       size_t *, u_char **, size_t *);
+    NETSNMP_IMPORT
     u_char         *snmp_build_var_op(u_char *, oid *, size_t *, u_char,
                                       size_t, u_char *, size_t *);
 
diff --git a/include/net-snmp/library/snmpAAL5PVCDomain.h b/include/net-snmp/library/snmpAAL5PVCDomain.h
index 88516cb..325109a 100644
--- a/include/net-snmp/library/snmpAAL5PVCDomain.h
+++ b/include/net-snmp/library/snmpAAL5PVCDomain.h
@@ -11,6 +11,10 @@
 #include <sys/socket.h>
 #endif
 
+#ifndef linux
+    config_error(AAL5 PVC support unavailable for this platform -Linux only-);
+#endif
+
 #include <atm.h>
 
 #include <net-snmp/library/snmp_transport.h>
diff --git a/include/net-snmp/library/snmpCallbackDomain.h b/include/net-snmp/library/snmpCallbackDomain.h
index 4a4e1a8..e1be70b 100644
--- a/include/net-snmp/library/snmpCallbackDomain.h
+++ b/include/net-snmp/library/snmpCallbackDomain.h
@@ -11,6 +11,7 @@
 
 #ifdef NETSNMP_TRANSPORT_CALLBACK_DOMAIN
 
+#include <net-snmp/types.h>
 #include <net-snmp/library/snmp_transport.h>
 
 typedef struct netsnmp_callback_pass_s {
@@ -38,6 +39,7 @@
 int             netsnmp_callback_check_packet(u_char * pkt, size_t len);
 netsnmp_pdu    *netsnmp_callback_create_pdu(netsnmp_transport *transport,
                                             void *opaque, size_t olength);
+NETSNMP_IMPORT
 netsnmp_session *netsnmp_callback_open(int attach_to,
                                        int (*return_func) (int op,
                                                            netsnmp_session
@@ -55,6 +57,7 @@
                                                            *,
                                                            netsnmp_pdu *,
                                                            int));
+NETSNMP_IMPORT
 void             netsnmp_clear_callback_list(void);
 
 #else
diff --git a/include/net-snmp/library/snmpDTLSUDPDomain.h b/include/net-snmp/library/snmpDTLSUDPDomain.h
index 192dd17..2135da3 100644
--- a/include/net-snmp/library/snmpDTLSUDPDomain.h
+++ b/include/net-snmp/library/snmpDTLSUDPDomain.h
@@ -1,34 +1,26 @@
 #ifndef _SNMPDTLSUDPDOMAIN_H
 #define _SNMPDTLSUDPDOMAIN_H
 
-#ifdef __cplusplus
-extern          "C" {
-#endif
-
-#include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/asn1.h>
-
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
 
-#define TRANSPORT_DOMAIN_DTLS_UDP_IP	1,3,6,1,4,1,8072,3,3,8
-NETSNMP_IMPORT oid netsnmpDTLSUDPDomain[];
+config_require(UDP)
+config_require(TLSBase)
 
-netsnmp_transport *netsnmp_dtlsudp_transport(struct sockaddr_in *addr, int local);
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmp_transport.h>
 
+#ifdef __cplusplus
+extern          "C" {
+#endif
 
-/*
- * Convert a "traditional" peername into a sockaddr_in structure which is
- * written to *addr.  Returns 1 if the conversion was successful, or 0 if it
- * failed.  
- */
+#define TRANSPORT_DOMAIN_DTLS_UDP_IP	1,3,6,1,6,1,9
+NETSNMP_IMPORT oid netsnmpDTLSUDPDomain[7];
+NETSNMP_IMPORT size_t netsnmpDTLSUDPDomain_len;
 
-int             netsnmp_sockaddr_in(struct sockaddr_in *addr,
-                                    const char *peername, int remote_port);
+netsnmp_transport *netsnmp_dtlsudp_transport(struct sockaddr_in *addr,
+                                             int local);
 
 
 /*
@@ -37,18 +29,6 @@
 
 void            netsnmp_dtlsudp_agent_config_tokens_register(void);
 
-void            netsnmp_dtlsudp_parse_security(const char *token, char *param);
-
-int             netsnmp_dtlsudp_getSecName(void *opaque, int olength,
-                                       const char *community,
-                                       size_t community_len,
-                                       char **secname,
-                                       char **contextName);
-
-int             netsnmp_sock_buffer_set(int s, int optname, int local,
-                                        int size);
-
-
 /*
  * "Constructor" for transport domain object.  
  */
diff --git a/include/net-snmp/library/snmpIPXDomain.h b/include/net-snmp/library/snmpIPXDomain.h
index 304b360..11c2beb 100644
--- a/include/net-snmp/library/snmpIPXDomain.h
+++ b/include/net-snmp/library/snmpIPXDomain.h
@@ -11,6 +11,9 @@
 #include <netipx/ipx.h>
 #endif
 
+#ifndef linux
+    config_error(IPX support unavailable for this platform -Linux only-);
+#endif
 
 netsnmp_transport *netsnmp_ipx_transport(struct sockaddr_ipx *addr, int local);
 
diff --git a/include/net-snmp/library/snmpIPv4BaseDomain.h b/include/net-snmp/library/snmpIPv4BaseDomain.h
new file mode 100644
index 0000000..7871dc4
--- /dev/null
+++ b/include/net-snmp/library/snmpIPv4BaseDomain.h
@@ -0,0 +1,37 @@
+/* IPV4 base transport support functions
+ */
+#ifndef SNMPIPV4BASE_H
+#define SNMPIPV4BASE_H
+
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
+#include <net-snmp/library/snmp_transport.h>
+
+#ifdef __cplusplus
+extern          "C" {
+#endif
+
+/*
+ * Prototypes
+ */
+
+    char *netsnmp_ipv4_fmtaddr(const char *prefix, netsnmp_transport *t,
+                               void *data, int len);
+
+/*
+ * Convert a "traditional" peername into a sockaddr_in structure which is
+ * written to *addr_  Returns 1 if the conversion was successful, or 0 if it
+ * failed
+ */
+
+    int netsnmp_sockaddr_in(struct sockaddr_in *addr, const char *peername,
+                            int remote_port);
+    int netsnmp_sockaddr_in2(struct sockaddr_in *addr, const char *inpeername,
+                             const char *default_target);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* SNMPIPV4BASE_H */
diff --git a/include/net-snmp/library/snmpIPv6BaseDomain.h b/include/net-snmp/library/snmpIPv6BaseDomain.h
new file mode 100644
index 0000000..545c8f0
--- /dev/null
+++ b/include/net-snmp/library/snmpIPv6BaseDomain.h
@@ -0,0 +1,34 @@
+/* IPV6 base transport support functions
+ */
+#ifndef SNMPIPV6BASE_H
+#define SNMPIPV6BASE_H
+
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
+#include <net-snmp/library/snmp_transport.h>
+
+#ifdef __cplusplus
+extern          "C" {
+#endif
+
+/*
+ * Prototypes
+ */
+
+    NETSNMP_IMPORT
+    char *netsnmp_ipv6_fmtaddr(const char *prefix, netsnmp_transport *t,
+                               void *data, int len);
+    NETSNMP_IMPORT
+    int netsnmp_sockaddr_in6_2(struct sockaddr_in6 *addr,
+                               const char *inpeername,
+                               const char *default_target);
+    int netsnmp_sockaddr_in6(struct sockaddr_in6 *addr,
+                             const char *inpeername, int remote_port);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* SNMPIPV6BASE_H */
+
diff --git a/include/net-snmp/library/snmpSSHDomain.h b/include/net-snmp/library/snmpSSHDomain.h
index 6610818..2bd44e9 100644
--- a/include/net-snmp/library/snmpSSHDomain.h
+++ b/include/net-snmp/library/snmpSSHDomain.h
@@ -1,34 +1,34 @@
 #ifndef _SNMPSSHDOMAIN_H
 #define _SNMPSSHDOMAIN_H
 
+config_require(IPv4Base)
+config_require(SocketBase)
+
 #ifdef NETSNMP_TRANSPORT_SSH_DOMAIN
 
+#include <net-snmp/library/snmp_transport.h>
+
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
 #ifdef __cplusplus
 extern          "C" {
 #endif
 
-#include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/asn1.h>
-
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
 /*
  * The SNMP over SSH over IPv4 transport domain is identified by
  * transportDomainSshIpv4 as defined in RFC 3419.
  */
 
 #define TRANSPORT_DOMAIN_SSH_IP		1,3,6,1,2,1,100,1,100
-NETSNMP_IMPORT oid netsnmp_snmpSSHDomain[];
+NETSNMP_IMPORT const oid netsnmp_snmpSSHDomain[];
+enum { netsnmp_snmpSSHDomain_len = 9 };
 
 netsnmp_transport *netsnmp_ssh_transport(struct sockaddr_in *addr, int local);
 
 /*
- * "Constructor" for transport domain object.  
+ * "Constructor" for transport domain object.
  */
 
 void            netsnmp_ssh_ctor(void);
diff --git a/include/net-snmp/library/snmpSTDDomain.h b/include/net-snmp/library/snmpSTDDomain.h
index 77be22b..3e9a59f 100644
--- a/include/net-snmp/library/snmpSTDDomain.h
+++ b/include/net-snmp/library/snmpSTDDomain.h
@@ -3,13 +3,12 @@
 
 #ifdef NETSNMP_TRANSPORT_STD_DOMAIN
 
+#include <net-snmp/library/snmp_transport.h>
+
 #ifdef __cplusplus
 extern          "C" {
 #endif
 
-#include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/asn1.h>
-
 /*
  * The SNMP over STD over IPv4 transport domain is identified by
  * transportDomainStdIpv4 as defined in RFC 3419.
diff --git a/include/net-snmp/library/snmpSocketBaseDomain.h b/include/net-snmp/library/snmpSocketBaseDomain.h
new file mode 100644
index 0000000..71d86c8
--- /dev/null
+++ b/include/net-snmp/library/snmpSocketBaseDomain.h
@@ -0,0 +1,25 @@
+#ifndef SNMPSOCKETBASEDOMAIN_H
+#define SNMPSOCKETBASEDOMAIN_H
+
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
+#include <net-snmp/library/snmp_transport.h>
+
+#ifdef __cplusplus
+extern          "C" {
+#endif
+
+/*
+ * Prototypes
+ */
+    int netsnmp_socketbase_close(netsnmp_transport *t);
+    int netsnmp_sock_buffer_set(int s, int optname, int local, int size);
+    int netsnmp_set_non_blocking_mode(int sock, int non_blocking_mode);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* SNMPSOCKETBASEDOMAIN_H */
diff --git a/include/net-snmp/library/snmpTCPBaseDomain.h b/include/net-snmp/library/snmpTCPBaseDomain.h
new file mode 100644
index 0000000..9c81a90
--- /dev/null
+++ b/include/net-snmp/library/snmpTCPBaseDomain.h
@@ -0,0 +1,22 @@
+#ifndef SNMPTCPBASEDOMAIN_H
+#define SNMPTCPBASEDOMAIN_H
+
+#include <net-snmp/library/snmp_transport.h>
+
+#ifdef __cplusplus
+extern          "C" {
+#endif
+
+/*
+ * Prototypes
+ */
+    int netsnmp_tcpbase_recv(netsnmp_transport *t, void *buf, int size,
+                             void **opaque, int *olength);
+    int netsnmp_tcpbase_send(netsnmp_transport *t, void *buf, int size,
+                             void **opaque, int *olength);
+        
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* SNMPTCPBASEDOMAIN_H */
diff --git a/include/net-snmp/library/snmpTCPDomain.h b/include/net-snmp/library/snmpTCPDomain.h
index f465b79..c45856b 100644
--- a/include/net-snmp/library/snmpTCPDomain.h
+++ b/include/net-snmp/library/snmpTCPDomain.h
@@ -1,22 +1,22 @@
 #ifndef _SNMPTCPDOMAIN_H
 #define _SNMPTCPDOMAIN_H
 
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
+config_require(IPv4Base)
+config_require(SocketBase)
+config_require(TCPBase)
+
 #ifdef NETSNMP_TRANSPORT_TCP_DOMAIN
 
+#include <net-snmp/library/snmpIPv4BaseDomain.h>
+
 #ifdef __cplusplus
 extern          "C" {
 #endif
 
-#include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/asn1.h>
-
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
 /*
  * The SNMP over TCP over IPv4 transport domain is identified by
  * transportDomainTcpIpv4 as defined in RFC 3419.
diff --git a/include/net-snmp/library/snmpTCPIPv6Domain.h b/include/net-snmp/library/snmpTCPIPv6Domain.h
index b9de9eb..3bca22b 100644
--- a/include/net-snmp/library/snmpTCPIPv6Domain.h
+++ b/include/net-snmp/library/snmpTCPIPv6Domain.h
@@ -1,13 +1,20 @@
 #ifndef _SNMPTCPIPV6DOMAIN_H
 #define _SNMPTCPIPV6DOMAIN_H
 
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
+config_require(IPv6Base)
+config_require(SocketBase)
+config_require(TCPBase)
+
+#include <net-snmp/library/snmpIPv6BaseDomain.h>
+
 #ifdef __cplusplus
 extern          "C" {
 #endif
 
-#include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/asn1.h>
-
 /*
  * The SNMP over TCP over IPv6 transport domain is identified by
  * transportDomainTcpIpv4 as defined in RFC 3419.
@@ -23,7 +30,7 @@
  * "Constructor" for transport domain object.  
  */
 
-void            netsnmp_tcp6_ctor(void);
+NETSNMP_IMPORT void     netsnmp_tcpipv6_ctor(void);
 
 #ifdef __cplusplus
 }
diff --git a/include/net-snmp/library/snmpTLSBaseDomain.h b/include/net-snmp/library/snmpTLSBaseDomain.h
new file mode 100644
index 0000000..ec77a73
--- /dev/null
+++ b/include/net-snmp/library/snmpTLSBaseDomain.h
@@ -0,0 +1,84 @@
+#ifndef _SNMPTLSBASEDOMAIN_H
+#define _SNMPTLSBASEDOMAIN_H
+
+#ifdef __cplusplus
+extern          "C" {
+#endif
+
+#include <net-snmp/library/snmp_transport.h>
+#include <net-snmp/library/asn1.h>
+#include <net-snmp/library/container.h>
+
+/* OpenSSL Includes */
+#include "openssl/bio.h"
+#include "openssl/ssl.h"
+#include "openssl/err.h"
+
+/*
+ * Prototypes
+ */
+
+    void netsnmp_tlsbase_ctor(void);
+    void netsnmp_init_tlsbase(void);
+    const char * _x509_get_error(int x509failvalue, const char *location);
+    void _openssl_log_error(int rc, SSL *con, const char *location);
+
+    /* will likely go away */
+    SSL_CTX *get_client_ctx(void);
+    SSL_CTX *get_server_ctx(void);
+
+#define NETSNMP_TLSBASE_IS_CLIENT     0x01
+#define NETSNMP_TLSBASE_CERT_FP_VERIFIED 0x02
+
+    /*
+     * _Internal_ structures
+     */
+    typedef struct _netsnmpTLSBaseData_s {
+       int                        flags;
+       SSL_CTX                   *ssl_context;
+       SSL                       *ssl;
+       BIO                       *sslbio;
+       BIO                       *accept_bio;
+       BIO                       *accepted_bio;
+       char                      *securityName;
+       char                      *addr_string;
+       struct sockaddr_in         addr;
+       char                      *our_identity;
+       char                      *their_identity;
+       char                      *their_fingerprint;
+       char                      *their_hostname;
+       char                      *trust_cert;
+       netsnmp_indexed_addr_pair *remote_addr;
+    } _netsnmpTLSBaseData;
+
+#define VRFY_PARENT_WAS_OK 1
+    typedef struct _netsnmp_verify_info_s {
+       int flags;
+    } _netsnmp_verify_info;
+
+    SSL_CTX *sslctx_client_setup(const SSL_METHOD *,
+                                 _netsnmpTLSBaseData *tlsbase);
+    SSL_CTX *sslctx_server_setup(const SSL_METHOD *);
+
+    int netsnmp_tlsbase_verify_server_cert(SSL *ssl,
+                                           _netsnmpTLSBaseData *tlsdata);
+    int netsnmp_tlsbase_verify_client_cert(SSL *ssl,
+                                           _netsnmpTLSBaseData *tlsdata);
+    int netsnmp_tlsbase_extract_security_name(SSL *ssl, _netsnmpTLSBaseData *tlsdata);
+    _netsnmpTLSBaseData *netsnmp_tlsbase_allocate_tlsdata(netsnmp_transport *t,
+                                                          int isserver);
+    int netsnmp_tlsbase_wrapup_recv(netsnmp_tmStateReference *tmStateRef,
+                                    _netsnmpTLSBaseData *tlsdata,
+                                    void **opaque, int *olength);
+    int netsnmp_tlsbase_config(struct netsnmp_transport_s *t,
+                               const char *token, const char *value);
+
+    int netsnmp_tlsbase_session_init(struct netsnmp_transport_s *,
+                                     struct snmp_session *sess);
+    int tls_get_verify_info_index(void);
+
+    void netsnmp_tlsbase_free_tlsdata(_netsnmpTLSBaseData *tlsbase);
+#ifdef __cplusplus
+}
+#endif
+#endif/*_SNMPTLSBASEDOMAIN_H*/
diff --git a/include/net-snmp/library/snmpTLSTCPDomain.h b/include/net-snmp/library/snmpTLSTCPDomain.h
new file mode 100644
index 0000000..4f27662
--- /dev/null
+++ b/include/net-snmp/library/snmpTLSTCPDomain.h
@@ -0,0 +1,39 @@
+#ifndef _SNMPTLSTCPDOMAIN_H
+#define _SNMPTLSTCPDOMAIN_H
+
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
+config_require(IPv4Base)
+config_require(SocketBase)
+config_require(TLSBase)
+
+#include <net-snmp/library/snmpIPv4BaseDomain.h>
+
+#ifdef __cplusplus
+extern          "C" {
+#endif
+
+#define TRANSPORT_DOMAIN_TLS_TCP_IP	1,3,6,1,6,1,8
+NETSNMP_IMPORT oid netsnmpTLSTCPDomain[7];
+NETSNMP_IMPORT size_t netsnmpTLSTCPDomain_len;
+
+netsnmp_transport *netsnmp_tlstcp_transport(const char *addr_string, int local);
+
+/*
+ * Register any configuration tokens specific to the agent.  
+ */
+
+void            netsnmp_tlstcp_agent_config_tokens_register(void);
+
+/*
+ * "Constructor" for transport domain object.  
+ */
+
+void            netsnmp_tlstcp_ctor(void);
+
+#ifdef __cplusplus
+}
+#endif
+#endif/*_SNMPTLSTCPDOMAIN_H*/
diff --git a/include/net-snmp/library/snmpUDPBaseDomain.h b/include/net-snmp/library/snmpUDPBaseDomain.h
new file mode 100644
index 0000000..97b291a
--- /dev/null
+++ b/include/net-snmp/library/snmpUDPBaseDomain.h
@@ -0,0 +1,46 @@
+#ifndef SNMPUDPBASEDOMAIN_H
+#define SNMPUDPBASEDOMAIN_H
+
+config_require(SocketBase)
+
+#include <net-snmp/library/snmp_transport.h>
+
+#ifdef __cplusplus
+extern          "C" {
+#endif
+
+#ifdef  MSG_DONTWAIT
+#define NETSNMP_DONTWAIT MSG_DONTWAIT
+#else
+#define NETSNMP_DONTWAIT 0
+#endif
+
+#ifdef  MSG_NOSIGNAL
+#define NETSNMP_NOSIGNAL MSG_NOSIGNAL
+#else
+#define NETSNMP_NOSIGNAL 0
+#endif
+
+/*
+ * Prototypes
+ */
+    void _netsnmp_udp_sockopt_set(int fd, int local);
+    int netsnmp_udpbase_recv(netsnmp_transport *t, void *buf, int size,
+                             void **opaque, int *olength);
+    int netsnmp_udpbase_send(netsnmp_transport *t, void *buf, int size,
+                             void **opaque, int *olength);
+
+#if defined(HAVE_IP_PKTINFO) || defined(HAVE_IP_RECVDSTADDR)
+    int netsnmp_udpbase_recvfrom(int s, void *buf, int len,
+                                 struct sockaddr *from, socklen_t *fromlen,
+                                 struct sockaddr *dstip, socklen_t *dstlen,
+                                 int *if_index);
+    int netsnmp_udpbase_sendto(int fd, struct in_addr *srcip, int if_index,
+                               struct sockaddr *remote, void *data, int len);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* SNMPUDPBASEDOMAIN_H */
diff --git a/include/net-snmp/library/snmpUDPDomain.h b/include/net-snmp/library/snmpUDPDomain.h
index 4ed7558..3a09dfd 100644
--- a/include/net-snmp/library/snmpUDPDomain.h
+++ b/include/net-snmp/library/snmpUDPDomain.h
@@ -15,36 +15,28 @@
 #include <netinet/in.h>
 #endif
 
+config_require(UDPIPv4Base)
+#include <net-snmp/library/snmpUDPIPv4BaseDomain.h>
+
 netsnmp_transport *netsnmp_udp_transport(struct sockaddr_in *addr, int local);
 
 
 /*
- * Convert a "traditional" peername into a sockaddr_in structure which is
- * written to *addr.  Returns 1 if the conversion was successful, or 0 if it
- * failed.  
- */
-
-int             netsnmp_sockaddr_in(struct sockaddr_in *addr,
-                                    const char *peername, int remote_port);
-
-
-/*
  * Register any configuration tokens specific to the agent.  
  */
 
+NETSNMP_IMPORT
 void            netsnmp_udp_agent_config_tokens_register(void);
 
+NETSNMP_IMPORT
 void            netsnmp_udp_parse_security(const char *token, char *param);
 
+NETSNMP_IMPORT
 int             netsnmp_udp_getSecName(void *opaque, int olength,
                                        const char *community,
                                        size_t community_len,
-                                       char **secname,
-                                       char **contextName);
-
-int             netsnmp_sock_buffer_set(int s, int optname, int local,
-                                        int size);
-
+                                       const char **secname,
+                                       const char **contextName);
 
 /*
  * "Constructor" for transport domain object.  
@@ -56,12 +48,12 @@
  * protected-ish functions used by other core-code
  */
 char *netsnmp_udp_fmtaddr(netsnmp_transport *t, void *data, int len);
-#if defined(linux) && defined(IP_PKTINFO) || \
-    defined(IP_RECVDSTADDR) && !defined(_MSC_VER)
+#if defined(HAVE_IP_PKTINFO) || defined(HAVE_IP_RECVDSTADDR)
 int netsnmp_udp_recvfrom(int s, void *buf, int len, struct sockaddr *from,
-                         socklen_t *fromlen, struct in_addr *dstip);
-int netsnmp_udp_sendto(int fd, struct in_addr *srcip, struct sockaddr *remote,
-                       void *data, int len);
+                         socklen_t *fromlen, struct sockaddr *dstip,
+                         socklen_t *dstlen, int *if_index);
+int netsnmp_udp_sendto(int fd, struct in_addr *srcip, int if_index,
+					   struct sockaddr *remote, void *data, int len);
 #endif
 
 #ifdef __cplusplus
diff --git a/include/net-snmp/library/snmpUDPIPv4BaseDomain.h b/include/net-snmp/library/snmpUDPIPv4BaseDomain.h
new file mode 100644
index 0000000..09e121d
--- /dev/null
+++ b/include/net-snmp/library/snmpUDPIPv4BaseDomain.h
@@ -0,0 +1,52 @@
+/* UDPIPV4 base transport support functions
+ */
+#ifndef SNMPUDPIPV4BASE_H
+#define SNMPUDPIPV4BASE_H
+
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
+config_require(UDPBase)
+config_require(IPv4Base)
+
+#include <net-snmp/library/snmpIPv4BaseDomain.h>
+#include <net-snmp/library/snmpUDPBaseDomain.h>
+
+#ifdef __cplusplus
+extern          "C" {
+#endif
+
+/*
+ * Definitions
+ */
+#ifdef  MSG_DONTWAIT
+#define NETSNMP_DONTWAIT MSG_DONTWAIT
+#else
+#define NETSNMP_DONTWAIT 0
+#endif
+
+/*
+ * Prototypes
+ */
+
+    netsnmp_transport *netsnmp_udpipv4base_transport(struct sockaddr_in *addr,
+                                                     int local);
+
+#if defined(HAVE_IP_PKTINFO) || defined(HAVE_IP_RECVDSTADDR)
+    int netsnmp_udpipv4_recvfrom(int s, void *buf, int len,
+                                 struct sockaddr *from, socklen_t *fromlen,
+                                 struct sockaddr *dstip, socklen_t *dstlen,
+                                 int *if_index);
+    int netsnmp_udpipv4_sendto(int fd, struct in_addr *srcip, int if_index,
+                               struct sockaddr *remote, void *data, int len);
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* SNMPUDPIPV4BASE_H */
diff --git a/include/net-snmp/library/snmpUDPIPv6Domain.h b/include/net-snmp/library/snmpUDPIPv6Domain.h
index 6824a5c..16fd819 100644
--- a/include/net-snmp/library/snmpUDPIPv6Domain.h
+++ b/include/net-snmp/library/snmpUDPIPv6Domain.h
@@ -1,12 +1,18 @@
 #ifndef _SNMPUDPIPV6DOMAIN_H
 #define _SNMPUDPIPV6DOMAIN_H
 
+#include <net-snmp/types.h>
+
 #ifdef __cplusplus
 extern          "C" {
 #endif
 
 #include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/asn1.h>
+
+config_require(IPv6Base)
+config_require(UDPBase)
+
+#include <net-snmp/library/snmpIPv6BaseDomain.h>
 
 /*
  * The SNMP over UDP over IPv6 transport domain is identified by
@@ -23,13 +29,14 @@
 /*
  * Convert a "traditional" peername into a sockaddr_in6 structure which is
  * written to *addr.  Returns 1 if the conversion was successful, or 0 if it
- * failed.  
+ * failed.
  */
 
 int             netsnmp_sockaddr_in6(struct sockaddr_in6 *addr,
                                      const char *peername,
                                      int remote_port);
 
+NETSNMP_IMPORT
 void            netsnmp_udp6_agent_config_tokens_register(void);
 NETSNMP_IMPORT
 void            netsnmp_udp6_parse_security(const char *token,
@@ -38,14 +45,15 @@
 NETSNMP_IMPORT
 int             netsnmp_udp6_getSecName(void *opaque, int olength,
                                         const char *community,
-                                        int community_len, char **secname,
-                                        char **contextName);
+                                        int community_len,
+                                        const char **secname,
+                                        const char **contextName);
 
 /*
- * "Constructor" for transport domain object.  
+ * "Constructor" for transport domain object.
  */
 
-void            netsnmp_udp6_ctor(void);
+NETSNMP_IMPORT void netsnmp_udpipv6_ctor(void);
 
 #ifdef __cplusplus
 }
diff --git a/include/net-snmp/library/snmpUnixDomain.h b/include/net-snmp/library/snmpUnixDomain.h
index 5d9e60c..91e7f63 100644
--- a/include/net-snmp/library/snmpUnixDomain.h
+++ b/include/net-snmp/library/snmpUnixDomain.h
@@ -3,8 +3,8 @@
 
 #ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
 
-#ifdef __cplusplus
-extern          "C" {
+#if defined(cygwin) || defined(mingw32) || defined(mingw32msvc)
+    config_error(Unix domain protocol support unavailable for this platform)
 #endif
 
 #if HAVE_SYS_SOCKET_H
@@ -15,7 +15,12 @@
 #endif
 
 #include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/asn1.h>
+
+config_require(SocketBase)
+
+#ifdef __cplusplus
+extern          "C" {
+#endif
 
 /*
  * The SNMP over local socket transport domain is identified by
@@ -31,8 +36,8 @@
 void netsnmp_unix_parse_security(const char *token, char *param);
 int netsnmp_unix_getSecName(void *opaque, int olength,
                             const char *community,
-                            size_t community_len, char **secName,
-                            char **contextName);
+                            size_t community_len, const char **secName,
+                            const char **contextName);
 
 
 /*
diff --git a/include/net-snmp/library/snmp_alarm.h b/include/net-snmp/library/snmp_alarm.h
index f97a712..1167e2c 100644
--- a/include/net-snmp/library/snmp_alarm.h
+++ b/include/net-snmp/library/snmp_alarm.h
@@ -12,6 +12,7 @@
      * alarm flags 
      */
 #define SA_REPEAT 0x01          /* keep repeating every X seconds */
+#define SA_FIRED 0x10          /* Being processed in run_alarms */
 
     struct snmp_alarm {
         struct timeval  t;
@@ -27,8 +28,10 @@
     /*
      * the ones you should need 
      */
+    NETSNMP_IMPORT
     void            snmp_alarm_unregister(unsigned int clientreg);
     void	    snmp_alarm_unregister_all(void);
+    NETSNMP_IMPORT
     unsigned int    snmp_alarm_register(unsigned int when,
                                         unsigned int flags,
                                         SNMPAlarmCallback * thecallback,
@@ -45,17 +48,20 @@
     /*
      * the ones you shouldn't 
      */
-    void            init_snmp_alarm(void);
+    NETSNMP_IMPORT void init_snmp_alarm(void);
     int             init_alarm_post_config(int majorid, int minorid,
                                            void *serverarg,
                                            void *clientarg);
     void            sa_update_entry(struct snmp_alarm *alrm);
     struct snmp_alarm *sa_find_next(void);
-    void            run_alarms(void);
+    NETSNMP_IMPORT void run_alarms(void);
     RETSIGTYPE      alarm_handler(int a);
     void            set_an_alarm(void);
+    int             netsnmp_get_next_alarm_time(struct timeval *alarm_tm,
+                                                const struct timeval *now);
     int             get_next_alarm_delay_time(struct timeval *delta);
 
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/net-snmp/library/snmp_api.h b/include/net-snmp/library/snmp_api.h
index d0bc907..def02b9 100644
--- a/include/net-snmp/library/snmp_api.h
+++ b/include/net-snmp/library/snmp_api.h
@@ -26,6 +26,7 @@
 
 #include <net-snmp/types.h>
 #include <net-snmp/varbind_api.h>
+#include <net-snmp/output_api.h>
 #include <net-snmp/pdu_api.h>
 #include <net-snmp/session_api.h>
 
@@ -114,8 +115,6 @@
 #endif
 #define SNMP_DEFAULT_PRIV_PROTOLEN  USM_LENGTH_OID_TRANSFORM
 
-    NETSNMP_IMPORT const char *snmp_api_errstring(int);
-    NETSNMP_IMPORT void     snmp_perror(const char *);
     NETSNMP_IMPORT void     snmp_set_detail(const char *);
 
 #define SNMP_MAX_MSG_SIZE          1472 /* ethernet MTU minus IP/UDP header */
@@ -257,8 +256,11 @@
 #define SNMPERR_PROTOCOL		(-64)
 #define SNMPERR_OID_NONINCREASING       (-65)
 #define SNMPERR_JUST_A_CONTEXT_PROBE    (-66)
+#define SNMPERR_TRANSPORT_NO_CONFIG     (-67)
+#define SNMPERR_TRANSPORT_CONFIG_ERROR  (-68)
+#define SNMPERR_TLS_NO_CERTIFICATE      (-69)
 
-#define SNMPERR_MAX			(-66)
+#define SNMPERR_MAX			(-69)
 
 
     /*
@@ -327,20 +329,27 @@
 
     long            snmp_get_next_msgid(void);
     long            snmp_get_next_reqid(void);
+    NETSNMP_IMPORT
     long            snmp_get_next_sessid(void);
+    NETSNMP_IMPORT
     long            snmp_get_next_transid(void);
 
+    NETSNMP_IMPORT
     int             snmp_oid_compare(const oid *, size_t, const oid *,
                                      size_t);
     int             snmp_oid_ncompare(const oid *, size_t, const oid *,
                                       size_t, size_t);
+    NETSNMP_IMPORT
     int             snmp_oidtree_compare(const oid *, size_t, const oid *,
                                          size_t);
+    NETSNMP_IMPORT
     int             snmp_oidsubtree_compare(const oid *, size_t, const oid *,
                                          size_t);
+    NETSNMP_IMPORT
     int             netsnmp_oid_compare_ll(const oid * in_name1,
                                            size_t len1, const oid * in_name2,
                                            size_t len2, size_t *offpt);
+    NETSNMP_IMPORT
     int             netsnmp_oid_equals(const oid *, size_t, const oid *,
                                        size_t);
     int             netsnmp_oid_tree_equals(const oid *, size_t, const oid *,
@@ -348,8 +357,10 @@
     NETSNMP_IMPORT
     int             netsnmp_oid_is_subtree(const oid *, size_t, const oid *,
                                            size_t);
+    NETSNMP_IMPORT
     int             netsnmp_oid_find_prefix(const oid * in_name1, size_t len1,
                                             const oid * in_name2, size_t len2);
+    NETSNMP_IMPORT
     void            init_snmp(const char *);
     u_char         *snmp_pdu_build(netsnmp_pdu *, u_char *, size_t *);
 #ifdef NETSNMP_USE_REVERSE_ASNENCODING
@@ -373,13 +384,24 @@
                                    size_t * length);
     u_char         *snmpv3_scopedPDU_parse(netsnmp_pdu *pdu, u_char * cp,
                                            size_t * length);
+    NETSNMP_IMPORT
+    void            snmp_store_needed(const char *type);
+    NETSNMP_IMPORT
+    void            snmp_store_if_needed(void);
+    NETSNMP_IMPORT
     void            snmp_store(const char *type);
+    NETSNMP_IMPORT
     void            snmp_shutdown(const char *type);
+    NETSNMP_IMPORT
     int             snmp_add_var(netsnmp_pdu *, const oid *, size_t, char,
                                  const char *);
+    NETSNMP_IMPORT
     oid            *snmp_duplicate_objid(const oid * objToCopy, size_t);
+    NETSNMP_IMPORT
     u_int           snmp_increment_statistic(int which);
+    NETSNMP_IMPORT
     u_int           snmp_increment_statistic_by(int which, int count);
+    NETSNMP_IMPORT
     u_int           snmp_get_statistic(int which);
     void            snmp_init_statistics(void);
     int             create_user_from_session(netsnmp_session * session);
@@ -410,6 +432,7 @@
      * Extended open; fpre_parse has changed.  
      */
 
+    NETSNMP_IMPORT
     netsnmp_session *snmp_open_ex(netsnmp_session *,
                                   int (*fpre_parse) (netsnmp_session *,
                                                      struct
@@ -433,17 +456,16 @@
      * See snmp_debug.h and snmp_debug.c instead.
      */
 
+    NETSNMP_IMPORT
     void            snmp_set_do_debugging(int);
+    NETSNMP_IMPORT
     int             snmp_get_do_debugging(void);
 
 
-
-    void            snmp_sess_error(void *, int *, int *, char **);
+    NETSNMP_IMPORT
     void            netsnmp_sess_log_error(int priority,
                                            const char *prog_string,
                                            netsnmp_session * ss);
-    void            snmp_sess_perror(const char *prog_string,
-                                     netsnmp_session * ss);
     const char *    snmp_pdu_type(int type);
 
     /*
@@ -451,10 +473,19 @@
      * pointer.  
      */
 
+    NETSNMP_IMPORT
     struct netsnmp_transport_s *snmp_sess_transport(void *);
     void            snmp_sess_transport_set(void *,
 					    struct netsnmp_transport_s *);
 
+    NETSNMP_IMPORT int
+    netsnmp_sess_config_transport(struct netsnmp_container_s *transport_configuration,
+                                  struct netsnmp_transport_s *transport);
+
+    NETSNMP_IMPORT int
+    netsnmp_sess_config_and_open_transport(netsnmp_session *in_session,
+                                           struct netsnmp_transport_s *transport);
+
     /*
      * EXTENDED SESSION API ------------------------------------------ 
      * 
@@ -503,6 +534,7 @@
                                   int (*fpost_parse) (netsnmp_session *,
                                                       netsnmp_pdu *, int));
 
+    NETSNMP_IMPORT
     netsnmp_session *snmp_add(netsnmp_session *,
                               struct netsnmp_transport_s *,
                               int (*fpre_parse) (netsnmp_session *,
@@ -510,6 +542,7 @@
                                                  *, void *, int),
                               int (*fpost_parse) (netsnmp_session *,
                                                   netsnmp_pdu *, int));
+    NETSNMP_IMPORT
     netsnmp_session *snmp_add_full(netsnmp_session * in_session,
                                    struct netsnmp_transport_s *transport,
                                    int (*fpre_parse) (netsnmp_session *,
@@ -619,7 +652,38 @@
 #define  STAT_TARGET_STATS_START             STAT_SNMPUNAVAILABLECONTEXTS
 #define  STAT_TARGET_STATS_END               STAT_SNMPUNKNOWNCONTEXTS
 
-#define  MAX_STATS                           43
+    /*
+     * TSM counters
+     */
+#define  STAT_TSM_SNMPTSMINVALIDCACHES             43
+#define  STAT_TSM_SNMPTSMINADEQUATESECURITYLEVELS  44
+#define  STAT_TSM_SNMPTSMUNKNOWNPREFIXES           45
+#define  STAT_TSM_SNMPTSMINVALIDPREFIXES           46
+#define  STAT_TSM_STATS_START                 STAT_TSM_SNMPTSMINVALIDCACHES
+#define  STAT_TSM_STATS_END                   STAT_TSM_SNMPTSMINVALIDPREFIXES
+
+    /*
+     * TLSTM counters
+     */
+#define  STAT_TLSTM_SNMPTLSTMSESSIONOPENS                      47
+#define  STAT_TLSTM_SNMPTLSTMSESSIONCLIENTCLOSES               48
+#define  STAT_TLSTM_SNMPTLSTMSESSIONOPENERRORS                 49
+#define  STAT_TLSTM_SNMPTLSTMSESSIONACCEPTS                    50
+#define  STAT_TLSTM_SNMPTLSTMSESSIONSERVERCLOSES               51
+#define  STAT_TLSTM_SNMPTLSTMSESSIONNOSESSIONS                 52
+#define  STAT_TLSTM_SNMPTLSTMSESSIONINVALIDCLIENTCERTIFICATES  53
+#define  STAT_TLSTM_SNMPTLSTMSESSIONUNKNOWNSERVERCERTIFICATE   54
+#define  STAT_TLSTM_SNMPTLSTMSESSIONINVALIDSERVERCERTIFICATES  55
+#define  STAT_TLSTM_SNMPTLSTMSESSIONINVALIDCACHES              56
+
+#define  STAT_TLSTM_STATS_START                 STAT_TLSTM_SNMPTLSTMSESSIONOPENS
+#define  STAT_TLSTM_STATS_END          STAT_TLSTM_SNMPTLSTMSESSIONINVALIDCACHES
+
+    /* this previously was end+1; don't know why the +1 is needed;
+       XXX: check the code */
+#define  NETSNMP_STAT_MAX_STATS              (STAT_TLSTM_STATS_END+1)
+/** backwards compatability */
+#define MAX_STATS NETSNMP_STAT_MAX_STATS
 
 #ifdef __cplusplus
 }
diff --git a/include/net-snmp/library/snmp_assert.h b/include/net-snmp/library/snmp_assert.h
index 51cb754..8f52a69 100644
--- a/include/net-snmp/library/snmp_assert.h
+++ b/include/net-snmp/library/snmp_assert.h
@@ -23,43 +23,105 @@
 #  endif /* __STDC__ */
 #endif /* __STRING */
 
-#define netsnmp_static_assert(x) \
-    do { switch(0) { case (x): case 0: ; } } while(0)
-
-
 /*
  * always use assert if requested
  */
 #ifdef NETSNMP_USE_ASSERT
 /*   void netsnmp_assert( int );*/
 #   define netsnmp_assert(x)  assert( x )
+#   define netsnmp_assert_or_return(x, y)  assert( x )
+#   define netsnmp_assert_or_msgreturn(x, y, z)  assert( x )
 #else
 /*
  *  if asserts weren't requested, just log, unless NETSNMP_NO_DEBUGGING specified
  */
 #   ifndef NETSNMP_NO_DEBUGGING
 #      ifdef  NETSNMP_FUNCTION
-#         define netsnmp_assert(x)  do { \
-                 if ( x ) \
-                    ; \
-                 else \
-                    snmp_log(LOG_ERR,"netsnmp_assert %s failed %s:%d %s()\n", \
-                             __STRING(x),__FILE__,__LINE__, \
-                             NETSNMP_FUNCTION); \
-              }while(0)
+#          define NETSNMP_FUNC_FMT " %s()\n"
+#          define NETSNMP_FUNC_PARAM NETSNMP_FUNCTION
 #      else
-#         define netsnmp_assert(x)  do { \
-                 if( x )\
-                    ; \
-                 else \
-                    snmp_log(LOG_ERR,"netsnmp_assert %s failed %s:%d\n", \
-                             __STRING(x),__FILE__,__LINE__); \
-              }while(0)
+#          define NETSNMP_FUNC_FMT "%c"
+#          define NETSNMP_FUNC_PARAM '\n'
 #      endif
+#
+#      define netsnmp_assert(x)  do { \
+              if ( x ) \
+                 ; \
+              else \
+                 snmp_log(LOG_ERR, \
+                          "netsnmp_assert %s failed %s:%d" NETSNMP_FUNC_FMT, \
+                          __STRING(x),__FILE__,__LINE__, \
+                          NETSNMP_FUNC_PARAM); \
+           }while(0)
+#      define netsnmp_assert_or_return(x, y)  do {        \
+              if ( x ) \
+                 ; \
+              else { \
+                 snmp_log(LOG_ERR, \
+                          "netsnmp_assert %s failed %s:%d" NETSNMP_FUNC_FMT, \
+                          __STRING(x),__FILE__,__LINE__, \
+                          NETSNMP_FUNC_PARAM); \
+                 return y; \
+              } \
+           }while(0)
+#      define netsnmp_assert_or_msgreturn(x, y, z)  do {       \
+              if ( x ) \
+                 ; \
+              else { \
+                 snmp_log(LOG_ERR, \
+                          "netsnmp_assert %s failed %s:%d" NETSNMP_FUNC_FMT, \
+                          __STRING(x),__FILE__,__LINE__, \
+                          NETSNMP_FUNC_PARAM); \
+                 snmp_log(LOG_ERR, y); \
+                 return z; \
+              } \
+           }while(0)
 #   else /* NO DEBUGGING */
 #      define netsnmp_assert(x)
+#      define netsnmp_assert_or_return(x, y)  do {        \
+                 if ( x ) \
+                    ; \
+                 else { \
+                    return y; \
+                 } \
+              }while(0)
+#      define netsnmp_assert_or_msgreturn(x, y, z)  do {       \
+                 if ( x ) \
+                    ; \
+                 else { \
+                    return z; \
+                 } \
+              }while(0)
 #   endif /* NO DEBUGGING */
 #endif /* not NETSNMP_USE_ASSERT */
 
 
+#define netsnmp_static_assert(x) \
+    do { switch(0) { case (x): case 0: ; } } while(0)
+
+
+/*
+ *  EXPERIMENTAL macros. May be removed without warning in future
+ * releases. Use at your own risk
+ *
+ * The series of uppercase letters at or near the end of these macros give
+ * an indication of what they do. The letters used are:
+ *
+ *   L  : log a message
+ *   RN : return NULL
+ *   RE : return a specific hardcoded error appropriate for the condition
+ *   RV : return user specified value
+ *
+ */
+#define netsnmp_malloc_check_LRN(ptr)           \
+    netsnmp_assert_or_return( (ptr) != NULL, NULL)
+#define netsnmp_malloc_check_LRE(ptr)           \
+    netsnmp_assert_or_return( (ptr) != NULL, SNMPERR_MALLOC)
+#define netsnmp_malloc_check_LRV(ptr, val)                          \
+    netsnmp_assert_or_return( (ptr) != NULL, val)
+
+#define netsnmp_require_ptr_LRV( ptr, val ) \
+    netsnmp_assert_or_return( (ptr) != NULL, val)
+
+
 #endif /* SNMP_ASSERT_H */
diff --git a/include/net-snmp/library/snmp_client.h b/include/net-snmp/library/snmp_client.h
index 1e16ce6..c023253 100644
--- a/include/net-snmp/library/snmp_client.h
+++ b/include/net-snmp/library/snmp_client.h
@@ -29,6 +29,7 @@
 #include <net-snmp/types.h>
 #include <net-snmp/varbind_api.h>
 #include <net-snmp/pdu_api.h>
+#include <net-snmp/output_api.h>
 #include <net-snmp/session_api.h>
 
 #ifdef __cplusplus
@@ -53,41 +54,111 @@
         netsnmp_pdu    *pdu;
     };
 
+    NETSNMP_IMPORT
     void            snmp_replace_var_types(netsnmp_variable_list * vbl,
                                            u_char old_type,
                                            u_char new_type);
+    NETSNMP_IMPORT
     void            snmp_reset_var_buffers(netsnmp_variable_list * var);
     void            snmp_reset_var_types(netsnmp_variable_list * vbl,
                                          u_char new_type);
+    NETSNMP_IMPORT
     int             count_varbinds(netsnmp_variable_list * var_ptr);
+    NETSNMP_IMPORT
     int             count_varbinds_of_type(netsnmp_variable_list * var_ptr,
                                            u_char type);
     netsnmp_variable_list *find_varbind_of_type(netsnmp_variable_list *
                                                 var_ptr, u_char type);
+    NETSNMP_IMPORT
     netsnmp_variable_list *find_varbind_in_list(netsnmp_variable_list *vblist,
-                                                oid *name, size_t len);
+                                                const oid *name, size_t len);
 
     netsnmp_pdu    *snmp_split_pdu(netsnmp_pdu *, int skipCount,
                                    int copyCount);
 
     unsigned long   snmp_varbind_len(netsnmp_pdu *pdu);
+    NETSNMP_IMPORT
     int             snmp_clone_var(netsnmp_variable_list *,
                                    netsnmp_variable_list *);
-    const char     *snmp_errstring(int);
+    NETSNMP_IMPORT
     int             snmp_synch_response_cb(netsnmp_session *,
                                            netsnmp_pdu *, netsnmp_pdu **,
                                            snmp_callback);
+    NETSNMP_IMPORT
     int             snmp_clone_mem(void **, const void *, unsigned);
 
 
+NETSNMP_IMPORT
 void              netsnmp_query_set_default_session(netsnmp_session *);
+NETSNMP_IMPORT
 netsnmp_session * netsnmp_query_get_default_session_unchecked( void );
+NETSNMP_IMPORT
 netsnmp_session * netsnmp_query_get_default_session( void );
+NETSNMP_IMPORT
 int netsnmp_query_get(     netsnmp_variable_list *, netsnmp_session *);
+NETSNMP_IMPORT
 int netsnmp_query_getnext( netsnmp_variable_list *, netsnmp_session *);
+NETSNMP_IMPORT
 int netsnmp_query_walk(    netsnmp_variable_list *, netsnmp_session *);
+NETSNMP_IMPORT
 int netsnmp_query_set(     netsnmp_variable_list *, netsnmp_session *);
 
+/** **************************************************************************
+ *
+ * state machine
+ *
+ */
+    /** forward declare */
+    struct netsnmp_state_machine_step_s;
+    struct netsnmp_state_machine_input_s;
+
+    /** state machine process */
+    typedef int (netsnmp_state_machine_func)(struct netsnmp_state_machine_input_s *input,
+                                             struct netsnmp_state_machine_step_s *step);
+
+    typedef struct netsnmp_state_machine_step_s {
+
+        const char   *name; /* primarily for logging/debugging */
+        u_int         sm_flags;
+        
+        netsnmp_state_machine_func *run;
+        int                         result; /* return code for this step */
+        
+        
+        struct netsnmp_state_machine_step_s *on_success;
+        struct netsnmp_state_machine_step_s *on_error;
+        
+        /*
+         * user fields (not touched by state machine functions)
+         */
+        u_int         flags;
+        void         *step_context;
+        
+    } netsnmp_state_machine_step;
+
+    typedef struct netsnmp_state_machine_input_s {
+        const char                  *name;
+        int                          steps_so_far;
+        netsnmp_state_machine_step  *steps;
+        netsnmp_state_machine_step  *cleanup;
+        netsnmp_state_machine_step  *last_run;
+
+        /*
+         * user fields (not touched by state machine functions)
+         */
+        void         *input_context;
+
+    } netsnmp_state_machine_input;
+
+
+    NETSNMP_IMPORT int
+    netsnmp_state_machine_run( netsnmp_state_machine_input *input );
+
+    NETSNMP_IMPORT int
+    netsnmp_row_create(netsnmp_session *sess, netsnmp_variable_list *vars,
+                       int row_status_index);
+
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/net-snmp/library/snmp_debug.h b/include/net-snmp/library/snmp_debug.h
index 765cc44..a3969f6 100644
--- a/include/net-snmp/library/snmp_debug.h
+++ b/include/net-snmp/library/snmp_debug.h
@@ -15,46 +15,59 @@
      */
 
 
+#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
+#define NETSNMP_ATTRIBUTE_FORMAT(type, formatArg, firstArg)
+#else
+#define NETSNMP_ATTRIBUTE_FORMAT(type, formatArg, firstArg) \
+  __attribute__((__format__( __ ## type ## __, formatArg, firstArg )))
+#endif
+
     /*
      * These functions should not be used, if at all possible.  Instead, use
      * the macros below. 
      */
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
-    void            debugmsg(const char *token, const char *format, ...);
-    void            debugmsgtoken(const char *token, const char *format,
-                                  ...);
-    void            debug_combo_nc(const char *token, const char *format,
-                                   ...);
-#else
+    NETSNMP_IMPORT
     void            debugmsg(const char *token, const char *format, ...)
-                        __attribute__ ((__format__ (__printf__, 2, 3)));
+                        NETSNMP_ATTRIBUTE_FORMAT(printf, 2, 3);
+    NETSNMP_IMPORT
     void            debugmsgtoken(const char *token, const char *format,
                                   ...)
-                        __attribute__ ((__format__ (__printf__, 2, 3)));
+                        NETSNMP_ATTRIBUTE_FORMAT(printf, 2, 3);
     void            debug_combo_nc(const char *token, const char *format,
                                    ...)
-                        __attribute__ ((__format__ (__printf__, 2, 3)));
-#endif
+                        NETSNMP_ATTRIBUTE_FORMAT(printf, 2, 3);
+
+#undef NETSNMP_ATTRIBUTE_FORMAT
+
+    NETSNMP_IMPORT
     void            debugmsg_oid(const char *token, const oid * theoid,
                                  size_t len);
+    NETSNMP_IMPORT
     void            debugmsg_suboid(const char *token, const oid * theoid,
                                     size_t len);
+    NETSNMP_IMPORT
     void            debugmsg_var(const char *token,
                                  netsnmp_variable_list * var);
+    NETSNMP_IMPORT
     void            debugmsg_oidrange(const char *token,
                                       const oid * theoid, size_t len,
                                       size_t var_subid, oid range_ubound);
-    void            debugmsg_hex(const char *token, u_char * thedata,
+    NETSNMP_IMPORT
+    void            debugmsg_hex(const char *token, const u_char * thedata,
                                  size_t len);
-    void            debugmsg_hextli(const char *token, u_char * thedata,
+    NETSNMP_IMPORT
+    void            debugmsg_hextli(const char *token, const u_char * thedata,
                                     size_t len);
+    NETSNMP_IMPORT
     void            debug_indent_add(int amount);
+    NETSNMP_IMPORT
     int             debug_indent_get(void);
     /*
      * What is said above is true for this function as well. Further this
      * function is deprecated and only provided for backwards compatibility.
      * Please use "%*s", debug_indent_get(), "" if you used this one before.
      */
+    NETSNMP_IMPORT
     const char     *debug_indent(void);
 
     /*
@@ -135,8 +148,11 @@
 #ifdef  NETSNMP_FUNCTION
 #define __DBGTRACE       __DBGMSGT(("trace","%s(): %s, %d:\n",\
 				NETSNMP_FUNCTION,__FILE__,__LINE__))
+#define __DBGTRACETOK(x) __DBGMSGT((x,"%s(): %s, %d:\n",       \
+                                    NETSNMP_FUNCTION,__FILE__,__LINE__))
 #else
 #define __DBGTRACE       __DBGMSGT(("trace"," %s, %d:\n", __FILE__,__LINE__))
+#define __DBGTRACETOK(x) __DBGMSGT((x," %s, %d:\n", __FILE__,__LINE__))
 #endif
 
 #define __DBGMSGL(x)     __DBGTRACE, debugmsg x
@@ -184,89 +200,27 @@
 
 /******************* End   private macros ************************/
 /*****************************************************************/
+#endif /* NETSNMP_NO_DEBUGGING */
 
-/*****************************************************************/
-/********************Start public  macros ************************/
-
-#define DEBUGMSG(x)        do {if (_DBG_IF_) {debugmsg x;} }while(0)
-#define DEBUGMSGT(x)       do {if (_DBG_IF_) {__DBGMSGT(x);} }while(0)
-#define DEBUGTRACE         do {if (_DBG_IF_) {__DBGTRACE;} }while(0)
-#define DEBUGMSGL(x)       do {if (_DBG_IF_) {__DBGMSGL(x);} }while(0)
-#define DEBUGMSGTL(x)      do {if (_DBG_IF_) {__DBGMSGTL(x);} }while(0)
-#define DEBUGMSGOID(x)     do {if (_DBG_IF_) {__DBGMSGOID(x);} }while(0)
-#define DEBUGMSGSUBOID(x)  do {if (_DBG_IF_) {__DBGMSGSUBOID(x);} }while(0)
-#define DEBUGMSGVAR(x)     do {if (_DBG_IF_) {__DBGMSGVAR(x);} }while(0)
-#define DEBUGMSGOIDRANGE(x) do {if (_DBG_IF_) {__DBGMSGOIDRANGE(x);} }while(0)
-#define DEBUGMSGHEX(x)     do {if (_DBG_IF_) {__DBGMSGHEX(x);} }while(0)
-#define DEBUGMSGHEXTLI(x)  do {if (_DBG_IF_) {__DBGMSGHEXTLI(x);} }while(0)
-#define DEBUGINDENTADD(x)  do {if (_DBG_IF_) {__DBGINDENTADD(x);} }while(0)
-#define DEBUGINDENTMORE()  do {if (_DBG_IF_) {__DBGINDENTMORE();} }while(0)
-#define DEBUGINDENTLESS()  do {if (_DBG_IF_) {__DBGINDENTLESS();} }while(0)
-#define DEBUGPRINTINDENT(token) \
-	do {if (_DBG_IF_) {__DBGPRINTINDENT(token);} }while(0)
-
-
-#define DEBUGDUMPHEADER(token,x) \
-	do {if (_DBG_IF_) {__DBGDUMPHEADER(token,x);} }while(0)
-
-#define DEBUGDUMPSECTION(token,x) \
-	do {if (_DBG_IF_) {__DBGDUMPSECTION(token,x);} }while(0)
-
-#define DEBUGDUMPSETUP(token,buf,len) \
-	do {if (_DBG_IF_) {__DBGDUMPSETUP(token,buf,len);} }while(0)
-
-#define DEBUGMSG_NC(x)  do { __DBGMSG_NC(x); }while(0)
-#define DEBUGMSGT_NC(x) do { __DBGMSGT_NC(x); }while(0)
-
-#else                           /* NETSNMP_NO_DEBUGGING := enable streamlining of the code */
-
-#define DEBUGMSG(x)
-#define DEBUGMSGT(x)
-#define DEBUGTRACE
-#define DEBUGMSGL(x)
-#define DEBUGMSGTL(x)
-#define DEBUGMSGOID(x)
-#define DEBUGMSGSUBOID(x)
-#define DEBUGMSGVAR(x)
-#define DEBUGMSGOIDRANGE(x)
-#define DEBUGMSGHEX(x)
-#define DEBUGIF(x)        if(0)
-#define DEBUGDUMP(t,b,l,p)
-#define DEBUGINDENTMORE()
-#define DEBUGINDENTLESS()
-#define DEBUGINDENTADD(x)
-#define DEBUGMSGHEXTLI(x)
-#define DEBUGPRINTINDENT(token)
-#define DEBUGDUMPHEADER(token,x)
-#define DEBUGDUMPSECTION(token,x)
-#define DEBUGDUMPSETUP(token, buf, len)
-
-#define DEBUGMSG_NC(x)
-#define DEBUGMSGT_NC(x)
-
+#ifdef __cplusplus
+}
 #endif
 
+    /* Public macros moved to top-level API header file */
+#include <net-snmp/output_api.h>
+
+#ifdef __cplusplus
+extern          "C" {
+#endif
+
+    void            snmp_debug_init(void);
+
 #define MAX_DEBUG_TOKENS 256
 #define MAX_DEBUG_TOKEN_LEN 128
 #define DEBUG_TOKEN_DELIMITER ","
 #define DEBUG_ALWAYS_TOKEN "all"
 
-    /*
-     * setup routines:
-     * 
-     * debug_register_tokens(char *):     registers a list of tokens to
-     * print debugging output for.
-     * 
-     * debug_is_token_registered(char *): returns SNMPERR_SUCCESS or SNMPERR_GENERR
-     * if a token has been registered or
-     * not (and debugging output is "on").
-     * snmp_debug_init(void):             registers .conf handlers.
-     */
-    void            debug_register_tokens(char *tokens);
-    int             debug_is_token_registered(const char *token);
-    void            snmp_debug_init(void);
-    void            snmp_set_do_debugging(int);
-    int             snmp_get_do_debugging(void);
+#ifndef NETSNMP_NO_DEBUGGING
 
 /*
  * internal:
@@ -280,7 +234,9 @@
 
 NETSNMP_IMPORT int                 debug_num_tokens;
 NETSNMP_IMPORT netsnmp_token_descr dbg_tokens[MAX_DEBUG_TOKENS];
-    
+
+#endif /* NETSNMP_NO_DEBUGGING */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/net-snmp/library/snmp_enum.h b/include/net-snmp/library/snmp_enum.h
index 4167d28..237891d 100644
--- a/include/net-snmp/library/snmp_enum.h
+++ b/include/net-snmp/library/snmp_enum.h
@@ -63,8 +63,10 @@
      * find a list, and then operate on that list
      *   ( direct methods further below if you already have the list pointer)
      */
+    NETSNMP_IMPORT
     char           *se_find_label_in_slist(const char *listname,
                                            int value);
+    NETSNMP_IMPORT
     int             se_find_value_in_slist(const char *listname,
                                            const char *label);
     int             se_find_free_value_in_slist(const char *listname);
@@ -73,6 +75,7 @@
      * ownership of the memory pointed to by label to the list:
      * clear_snmp_enum() deallocates that memory.
      */
+    NETSNMP_IMPORT
     int             se_add_pair_to_slist(const char *listname, char *label,
                                          int value);
 
@@ -94,6 +97,7 @@
                                        const char *token, const char *type);
     void            se_store_list(unsigned int major, unsigned int minor,
                                   const char *type);
+    void            se_clear_slist(const char *listname);
     void            se_store_slist(const char *listname, const char *type);
     int             se_store_slist_callback(int majorID, int minorID,
                                            void *serverargs, void *clientargs);
@@ -102,6 +106,7 @@
      * Deallocate the memory allocated by init_snmp_enum(): remove all key/value
      * pairs stored by se_add_*() calls.
      */
+    NETSNMP_IMPORT
     void            clear_snmp_enum(void);
 
 #ifdef __cplusplus
diff --git a/include/net-snmp/library/snmp_logging.h b/include/net-snmp/library/snmp_logging.h
index 550e664..1d7921b 100644
--- a/include/net-snmp/library/snmp_logging.h
+++ b/include/net-snmp/library/snmp_logging.h
@@ -1,9 +1,8 @@
 #ifndef SNMP_LOGGING_H
 #define SNMP_LOGGING_H
 
-#ifdef __cplusplus
-extern          "C" {
-#endif
+#include <net-snmp/types.h>
+#include <net-snmp/output_api.h>
 
 #if HAVE_SYSLOG_H
 #include <syslog.h>
@@ -11,6 +10,10 @@
 #include <stdio.h>
 #include <stdarg.h>
 
+#ifdef __cplusplus
+extern          "C" {
+#endif
+
 #ifndef LOG_ERR
 #define LOG_EMERG       0       /* system is unusable */
 #define LOG_ALERT       1       /* action must be taken immediately */
@@ -40,46 +43,27 @@
     } while(0)
 
     void            init_snmp_logging(void);
-    void            shutdown_snmp_logging(void);
-    int             snmp_get_do_logging(void);
+    NETSNMP_IMPORT
     void            snmp_disable_syslog(void);
     void            snmp_disable_filelog(void);
+    NETSNMP_IMPORT
     void            snmp_disable_stderrlog(void);
     void            snmp_disable_calllog(void);
-    void            snmp_disable_log(void);
+    NETSNMP_IMPORT
     void            snmp_enable_syslog(void);
+    NETSNMP_IMPORT
     void            snmp_enable_syslog_ident(const char *ident,
                                              const int   facility);
+    NETSNMP_IMPORT
     void            snmp_enable_filelog(const char *logfilename,
                                         int dont_zero_log);
+    NETSNMP_IMPORT
     void            snmp_enable_stderrlog(void);
     void            snmp_enable_calllog(void);
 
+    NETSNMP_IMPORT
     int             snmp_stderrlog_status(void);
 
-#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
-    int             snmp_log(int priority, const char *format, ...);
-#else
-    int             snmp_log(int priority, const char *format, ...)
-                    	__attribute__ ((__format__ (__printf__, 2, 3)));
-#endif
-    int             snmp_vlog(int priority, const char *format,
-                              va_list ap);
-    /*
-     * 0 - successful message formatting 
-     */
-    /*
-     * -1 - Could not format log-string 
-     */
-    /*
-     * -2 - Could not allocate memory for log-message 
-     */
-    /*
-     * -3 - Log-message too long! 
-     */
-
-    void            snmp_log_perror(const char *s);
-
 
 #define NETSNMP_LOGHANDLER_STDOUT	1
 #define NETSNMP_LOGHANDLER_STDERR	2
@@ -88,9 +72,13 @@
 #define NETSNMP_LOGHANDLER_CALLBACK	5
 #define NETSNMP_LOGHANDLER_NONE		6
 
+    NETSNMP_IMPORT
     void netsnmp_set_line_buffering(FILE *stream);
+    NETSNMP_IMPORT
     int snmp_log_options(char *optarg, int argc, char *const *argv);
+    NETSNMP_IMPORT
     void snmp_log_options_usage(const char *lead, FILE *outf);
+    NETSNMP_IMPORT
     char *snmp_log_syslogname(const char *syslogname);
     typedef struct netsnmp_log_handler_s netsnmp_log_handler; 
     typedef int (NetsnmpLogHandler)(netsnmp_log_handler*, int, const char *);
@@ -116,13 +104,21 @@
 	netsnmp_log_handler	*next, *prev;
     };
 
+NETSNMP_IMPORT
 netsnmp_log_handler *get_logh_head( void );
+NETSNMP_IMPORT
 netsnmp_log_handler *netsnmp_register_loghandler( int type, int pri );
 netsnmp_log_handler *netsnmp_find_loghandler( const char *token );
 int netsnmp_add_loghandler(    netsnmp_log_handler *logh );
+NETSNMP_IMPORT
 int netsnmp_remove_loghandler( netsnmp_log_handler *logh );
 int netsnmp_enable_loghandler( const char *token );
 int netsnmp_disable_loghandler( const char *token );
+NETSNMP_IMPORT
+void netsnmp_enable_this_loghandler( netsnmp_log_handler *logh );
+NETSNMP_IMPORT
+void netsnmp_disable_this_loghandler( netsnmp_log_handler *logh );
+NETSNMP_IMPORT
 void netsnmp_logging_restart(void);
 #ifdef __cplusplus
 }
diff --git a/include/net-snmp/library/snmp_openssl.h b/include/net-snmp/library/snmp_openssl.h
index 8092f74..b291736 100644
--- a/include/net-snmp/library/snmp_openssl.h
+++ b/include/net-snmp/library/snmp_openssl.h
@@ -11,6 +11,35 @@
 
     void netsnmp_init_openssl(void);
 
+    /*
+     * cert fields
+     */
+    void netsnmp_openssl_cert_dump_names(X509 *ocert);
+    void netsnmp_openssl_cert_dump_extensions(X509 *ocert);
+
+    char *netsnmp_openssl_cert_get_commonName(X509 *, char **buf, int *len);
+    char *netsnmp_openssl_cert_get_subjectName(X509 *, char **buf, int *len);
+    char *netsnmp_openssl_cert_get_fingerprint(X509 *ocert, int alg);
+    int netsnmp_openssl_cert_get_hash_type(X509 *ocert);
+
+    int netsnmp_openssl_cert_issued_by(X509 *issuer, X509 *cert);
+
+    char *netsnmp_openssl_extract_secname(netsnmp_cert_map *cert_map,
+                                          netsnmp_cert_map *peer_cert);
+
+    char *netsnmp_openssl_cert_get_subjectAltName(X509 *, char **buf, int *len);
+
+    /*
+     * ssl cert chains
+     */
+    netsnmp_container *netsnmp_openssl_get_cert_chain(SSL *ssl);
+
+    /*
+     * misc
+     */
+    void netsnmp_openssl_err_log(const char *prefix);
+    void netsnmp_openssl_null_checks(SSL *ssl, int *nullAuth, int *nullCipher);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/net-snmp/library/snmp_parse_args.h b/include/net-snmp/library/snmp_parse_args.h
index c0fe71e..e468335 100644
--- a/include/net-snmp/library/snmp_parse_args.h
+++ b/include/net-snmp/library/snmp_parse_args.h
@@ -4,13 +4,85 @@
 extern "C" {
 #endif
 
+/**
+ * @file snmp_parse_args.h
+ *
+ * Support for initializing variables of type netsnmp_session from command
+ * line arguments
+ */
+
+/** Don't enable any logging even if there is no -L argument */
+#define NETSNMP_PARSE_ARGS_NOLOGGING    0x0001
+/** Don't zero out sensitive arguments as they are not on the command line
+ *  anyway, typically used when the function is called from an internal
+ *  config-line handler
+ */
+#define NETSNMP_PARSE_ARGS_NOZERO       0x0002
+
+/**
+ * Parsing of command line arguments succeeded and application is expected
+ * to continue with normal operation.
+ */
+#define NETSNMP_PARSE_ARGS_SUCCESS       0
+/**
+  * Parsing of command line arguments succeeded, but the application is expected
+  * to exit with zero exit code. For example, '-V' parameter has been found.
+  */
+#define NETSNMP_PARSE_ARGS_SUCCESS_EXIT  -2
+/**
+ * Parsing of command line arguments failed and application is expected to show
+ * usage (i.e. list of parameters) and exit with nozero exit code. 
+ */
+#define NETSNMP_PARSE_ARGS_ERROR_USAGE   -1
+/**
+ * Parsing of command line arguments failed and application is expected to exit
+ * with nozero exit code.  netsnmp_parse_args() has already printed what went
+ * wrong.
+ */
+#define NETSNMP_PARSE_ARGS_ERROR         -3
+    
+/**
+ *  Parse an argument list and initialize \link netsnmp_session
+ *  session\endlink
+ *  from it.
+ *  @param argc Number of elements in argv
+ *  @param argv string array of at least argc elements
+ *  @param session
+ *  @param localOpts Additional option characters to accept
+ *  @param proc function pointer used to process any unhandled arguments
+ *  @param flags flags directing how to handle the string
+ *
+ *  @retval 0 (= #NETSNMP_PARSE_ARGS_SUCCESS) on success
+ *  @retval #NETSNMP_PARSE_ARGS_SUCCESS_EXIT when the application is expected
+ *  to exit with zero exit code (e.g. '-V' option was found)
+ *  @retval #NETSNMP_PARSE_ARGS_ERROR_USAGE when the function failed to parse
+ *  the command line and the application is expected to show it's usage
+ *  @retval #NETSNMP_PARSE_ARGS_ERROR when the function failed to parse
+ *  the command line and it has already printed enough information for the user
+ *  and no other output is needed
+ *
+ *  The proc function is called with argc, argv and the currently processed
+ *  option as arguments
+ */
+NETSNMP_IMPORT int
+netsnmp_parse_args(int argc, char **argv, netsnmp_session *session,
+                   const char *localOpts, void (*proc)(int, char *const *, int),
+                   int flags);
+
+/**
+ *  Calls \link netsnmp_parse_args()
+ *  netsnmp_parse_args(argc, argv, session, localOpts, proc, 0)\endlink
+ */
+NETSNMP_IMPORT
 int
 snmp_parse_args(int argc, char **argv, netsnmp_session *session,
 		const char *localOpts, void (*proc)(int, char *const *, int));
 
+NETSNMP_IMPORT
 void
 snmp_parse_args_descriptions(FILE *);
 
+NETSNMP_IMPORT
 void
 snmp_parse_args_usage(FILE *);
 
diff --git a/include/net-snmp/library/snmp_secmod.h b/include/net-snmp/library/snmp_secmod.h
index 6a687df..5bacad7 100644
--- a/include/net-snmp/library/snmp_secmod.h
+++ b/include/net-snmp/library/snmp_secmod.h
@@ -10,8 +10,9 @@
 /* Locally defined security models.
  * (Net-SNMP enterprise number = 8072)*256 + local_num
  */
-#define NETSNMP_KSM_SECURITY_MODEL     2066432
-#define NETSNMP_TSM_SECURITY_MODEL     2066434
+#define NETSNMP_SEC_MODEL_KSM     2066432
+#define NETSNMP_KSM_SECURITY_MODEL     NETSNMP_SEC_MODEL_KSM
+#define NETSNMP_TSM_SECURITY_MODEL     SNMP_SEC_MODEL_TSM
 
 struct snmp_secmod_def;
 
@@ -93,6 +94,8 @@
 typedef int     (SecmodDiscoveryMethod) (void *slp,
                                          netsnmp_session *session);
 
+typedef int     (SecmodSessionSetup) (netsnmp_session *in_session,
+                                      netsnmp_session *out_session);
 /*
  * definition of a security module
  */
@@ -107,6 +110,7 @@
      */
     SecmodSessionCallback *session_open;        /* called in snmp_sess_open()  */
     SecmodSessionCallback *session_close;       /* called in snmp_sess_close() */
+    SecmodSessionSetup    *session_setup;
 
     /*
      * pdu manipulation routines 
@@ -153,6 +157,7 @@
 /*
  * find a security service definition 
  */
+NETSNMP_IMPORT
 struct snmp_secmod_def *find_sec_mod(int);
 /*
  * register a security service 
@@ -163,6 +168,7 @@
 /*
  * clears the sec_mod list
  */
+NETSNMP_IMPORT
 void            clear_sec_mod(void);
 
 #ifdef __cplusplus
diff --git a/include/net-snmp/library/snmp_service.h b/include/net-snmp/library/snmp_service.h
index 5a4565d..711f676 100644
--- a/include/net-snmp/library/snmp_service.h
+++ b/include/net-snmp/library/snmp_service.h
@@ -7,7 +7,7 @@
 
 /* Default port handling */
 
-extern int
+NETSNMP_IMPORT int
 netsnmp_register_default_domain(const char* application, const char* domain);
 
 extern const char*
@@ -19,7 +19,7 @@
 extern void
 netsnmp_clear_default_domain(void);
 
-extern int
+NETSNMP_IMPORT int
 netsnmp_register_default_target(const char* application, const char* domain,
 				const char* target);
 
@@ -29,7 +29,7 @@
 extern void
 netsnmp_clear_default_target(void);
 
-extern void
+NETSNMP_IMPORT void
 netsnmp_register_service_handlers(void);
 
 #ifdef __cplusplus
diff --git a/include/net-snmp/library/snmp_transport.h b/include/net-snmp/library/snmp_transport.h
index cd4ec37..d89f9c0 100644
--- a/include/net-snmp/library/snmp_transport.h
+++ b/include/net-snmp/library/snmp_transport.h
@@ -1,7 +1,12 @@
 #ifndef _SNMP_TRANSPORT_H
 #define _SNMP_TRANSPORT_H
 
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
 #include <sys/types.h>
+
 #include <net-snmp/library/asn1.h>
 
 #ifdef __cplusplus
@@ -22,6 +27,7 @@
 #define         NETSNMP_TRANSPORT_FLAG_TMSTATE   0x08  /* indicates opaque is a
                                                           TSM tmStateReference */
 #define		NETSNMP_TRANSPORT_FLAG_EMPTY_PKT 0x10
+#define		NETSNMP_TRANSPORT_FLAG_OPENED	 0x20  /* f_open called */
 #define		NETSNMP_TRANSPORT_FLAG_HOSTNAME	 0x80  /* for fmtaddr hook */
 
 /*  The standard SNMP domains.  */
@@ -47,9 +53,15 @@
 
 typedef struct netsnmp_addr_pair_s {
    struct sockaddr_in remote_addr;
-   struct in_addr local_addr;
+   struct sockaddr_in local_addr;
 } netsnmp_addr_pair;
 
+typedef struct netsnmp_indexed_addr_pair_s {
+   struct sockaddr_in remote_addr;
+   struct sockaddr_in local_addr;
+    int if_index;
+} netsnmp_indexed_addr_pair;
+
 typedef struct netsnmp_tmStateReference_s {
    oid    transportDomain[MAX_OID_LEN];
    size_t transportDomainLen;
@@ -58,16 +70,18 @@
    int    requestedSecurityLevel;
    int    transportSecurityLevel;
    char   sameSecurity;
-   int    sessionID;
+   char   sessionID[8];
    
    char   have_addresses;
-   netsnmp_addr_pair addresses;
+   netsnmp_indexed_addr_pair addresses;
 
    void *otherTransportOpaque; /* XXX: May have mem leak issues */
 } netsnmp_tmStateReference;
 
 /*  Structure which defines the transport-independent API.  */
 
+struct snmp_session;
+
 typedef struct netsnmp_transport_s {
     /*  The transport domain object identifier.  */
 
@@ -115,14 +129,34 @@
 				 int, void **, int *);
     int             (*f_close)  (struct netsnmp_transport_s *);
 
+    /* Optional: opening can occur during creation if more appropriate */
+   struct netsnmp_transport_s * (*f_open)   (struct netsnmp_transport_s *);
+
     /*  This callback is only necessary for stream-oriented transports.  */
 
     int             (*f_accept) (struct netsnmp_transport_s *);
 
     /*  Optional callback to format a transport address.  */
 
-    char           *(*f_fmtaddr)(struct netsnmp_transport_s *, void *,
-				 int);
+    char           *(*f_fmtaddr)(struct netsnmp_transport_s *, void *, int);
+
+    /*  Optional callback to support extra configuration token/value pairs */
+    /*  return non-zero on error */
+    int            (*f_config)(struct netsnmp_transport_s *, const char *,
+                               const char *);
+
+    /*  Optional callback that is called after the first transport is
+        cloned to the second */
+    int            (*f_copy)(struct netsnmp_transport_s *,
+                             struct netsnmp_transport_s *);
+
+    /*  Setup initial session config if special things are needed */
+   int             (*f_setup_session)(struct netsnmp_transport_s *,
+                                      struct snmp_session *);
+  
+    /* allocated host name identifier; used by configuration system
+       to load localhost.conf for host-specific configuration */
+    u_char         *identifier; /* udp:localhost:161 -> "localhost" */
 } netsnmp_transport;
 
 typedef struct netsnmp_transport_list_s {
@@ -150,9 +184,17 @@
 
 } netsnmp_tdomain;
 
+void init_snmp_transport(void);
 
 /*  Some utility functions.  */
 
+char *netsnmp_transport_peer_string(netsnmp_transport *t, void *data, int len);
+
+int netsnmp_transport_send(netsnmp_transport *t, void *data, int len,
+                           void **opaque, int *olength);
+int netsnmp_transport_recv(netsnmp_transport *t, void *data, int len,
+                           void **opaque, int *olength);
+
 int netsnmp_transport_add_to_list(netsnmp_transport_list **transport_list,
 				  netsnmp_transport *transport);
 int netsnmp_transport_remove_from_list(netsnmp_transport_list **transport_list,
@@ -169,6 +211,7 @@
 
 /*  Free an netsnmp_transport.  */
 
+NETSNMP_IMPORT
 void            netsnmp_transport_free(netsnmp_transport *t);
 
 
@@ -180,6 +223,7 @@
  * *out_len.
  */
 
+NETSNMP_IMPORT
 int             netsnmp_tdomain_support(const oid *in_oid, size_t in_len,
 					const oid **out_oid, size_t *out_len);
 
@@ -187,35 +231,52 @@
     
 int             netsnmp_tdomain_unregister(netsnmp_tdomain *domain);
 
+NETSNMP_IMPORT
 void            netsnmp_clear_tdomain_list(void);
 
 void            netsnmp_tdomain_init(void);
 
+NETSNMP_IMPORT
 netsnmp_transport *netsnmp_tdomain_transport(const char *str,
 					     int local,
 					     const char *default_domain);
 
+NETSNMP_IMPORT
 netsnmp_transport *netsnmp_tdomain_transport_full(const char *application,
 						  const char *str,
 						  int local,
 						  const char *default_domain,
 						  const char *default_target);
 
+NETSNMP_IMPORT
 netsnmp_transport *netsnmp_tdomain_transport_oid(const oid * dom,
 						 size_t dom_len,
 						 const u_char * o,
 						 size_t o_len,
 						 int local);
 
+NETSNMP_IMPORT
 netsnmp_transport*
 netsnmp_transport_open_client(const char* application, const char* str);
 
+NETSNMP_IMPORT
 netsnmp_transport*
 netsnmp_transport_open_server(const char* application, const char* str);
 
 netsnmp_transport*
 netsnmp_transport_open(const char* application, const char* str, int local);
 
+typedef struct netsnmp_transport_config_s {
+   char *key;
+   char *value;
+} netsnmp_transport_config;
+    
+NETSNMP_IMPORT    
+int netsnmp_transport_config_compare(netsnmp_transport_config *left,
+                                     netsnmp_transport_config *right);
+NETSNMP_IMPORT
+netsnmp_transport_config *netsnmp_transport_create_config(char *key,
+                                                          char *value);
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/net-snmp/library/snmpksm.h b/include/net-snmp/library/snmpksm.h
index 0284727..c75e5ef 100644
--- a/include/net-snmp/library/snmpksm.h
+++ b/include/net-snmp/library/snmpksm.h
@@ -13,7 +13,7 @@
                                           snmp_secmod_outgoing_params *);
     int             ksm_process_in_msg(struct snmp_secmod_incoming_params
                                        *);
-    void            init_usm(void);
+    void            init_ksm(void);
 
     /*
      * This is the "key usage" that is used by the new crypto API.  It's used
diff --git a/include/net-snmp/library/snmptsm.h b/include/net-snmp/library/snmptsm.h
index edd5a19..a7c8d93 100644
--- a/include/net-snmp/library/snmptsm.h
+++ b/include/net-snmp/library/snmptsm.h
@@ -13,7 +13,7 @@
                                           snmp_secmod_outgoing_params *);
     int             tsm_process_in_msg(struct snmp_secmod_incoming_params
                                        *);
-    void            init_usm(void);
+    void            init_tsm(void);
 
     #define NETSNMP_TM_SAME_SECURITY_NOT_REQUIRED 0
     #define NETSNMP_TM_USE_SAME_SECURITY          1
@@ -21,7 +21,6 @@
     /* basically we store almost nothing else but a tm ref */
     typedef struct netsnmp_tsmSecurityReference_s {
        netsnmp_tmStateReference *tmStateRef;
-       int securityLevel;
     } netsnmp_tsmSecurityReference;
 
 #ifdef __cplusplus
diff --git a/include/net-snmp/library/snmpusm.h b/include/net-snmp/library/snmpusm.h
index 18cf119..d1ced90 100644
--- a/include/net-snmp/library/snmpusm.h
+++ b/include/net-snmp/library/snmpusm.h
@@ -28,7 +28,7 @@
 #define USM_MD5_AND_SHA_AUTH_LEN        12      /* bytes */
 #define USM_MAX_AUTHSIZE                USM_MD5_AND_SHA_AUTH_LEN
 
-#define USM_SEC_MODEL_NUMBER            3
+#define USM_SEC_MODEL_NUMBER            SNMP_SEC_MODEL_USM
 
     /*
      * Structures.
@@ -180,6 +180,7 @@
                                                     u_int time_uint,
                                                     int *error);
 
+    SecmodSessionCallback usm_open_session;
     SecmodOutMsg    usm_secmod_generate_out_msg;
     SecmodOutMsg    usm_secmod_generate_out_msg;
     SecmodInMsg     usm_secmod_process_in_msg;
@@ -200,49 +201,63 @@
                                        void **, netsnmp_session *, u_char);
 
     int             usm_check_secLevel(int level, struct usmUser *user);
+    NETSNMP_IMPORT
     struct usmUser *usm_get_userList(void);
+    NETSNMP_IMPORT
     struct usmUser *usm_get_user(u_char * engineID, size_t engineIDLen,
                                  char *name);
     struct usmUser *usm_get_user_from_list(u_char * engineID,
                                            size_t engineIDLen, char *name,
                                            struct usmUser *userList,
                                            int use_default);
+    NETSNMP_IMPORT
     struct usmUser *usm_add_user(struct usmUser *user);
     struct usmUser *usm_add_user_to_list(struct usmUser *user,
                                          struct usmUser *userList);
+    NETSNMP_IMPORT
     struct usmUser *usm_free_user(struct usmUser *user);
+    NETSNMP_IMPORT
     struct usmUser *usm_create_user(void);
+    NETSNMP_IMPORT
     struct usmUser *usm_create_initial_user(const char *name,
                                             const oid * authProtocol,
                                             size_t authProtocolLen,
                                             const oid * privProtocol,
                                             size_t privProtocolLen);
+    NETSNMP_IMPORT
     struct usmUser *usm_cloneFrom_user(struct usmUser *from,
                                        struct usmUser *to);
+    NETSNMP_IMPORT
     struct usmUser *usm_remove_user(struct usmUser *user);
     struct usmUser *usm_remove_user_from_list(struct usmUser *user,
                                               struct usmUser **userList);
     char           *get_objid(char *line, oid ** optr, size_t * len);
+    NETSNMP_IMPORT
     void            usm_save_users(const char *token, const char *type);
     void            usm_save_users_from_list(struct usmUser *user,
                                              const char *token,
                                              const char *type);
     void            usm_save_user(struct usmUser *user, const char *token,
                                   const char *type);
+    NETSNMP_IMPORT
     SNMPCallback    usm_store_users;
-    struct usmUser *usm_read_user(char *line);
+    struct usmUser *usm_read_user(const char *line);
+    NETSNMP_IMPORT
     void            usm_parse_config_usmUser(const char *token,
                                              char *line);
 
     void            usm_set_password(const char *token, char *line);
+    NETSNMP_IMPORT
     void            usm_set_user_password(struct usmUser *user,
                                           const char *token, char *line);
     void            init_usm(void);
+    NETSNMP_IMPORT
     void            init_usm_conf(const char *app);
     int             init_usm_post_config(int majorid, int minorid,
                                          void *serverarg, void *clientarg);
     int             deinit_usm_post_config(int majorid, int minorid, void *serverarg,
 					   void *clientarg);
+    NETSNMP_IMPORT
     void            clear_user_list(void);
 
 #ifdef __cplusplus
diff --git a/include/net-snmp/library/snmpv3.h b/include/net-snmp/library/snmpv3.h
index f3d295f..633ea57 100644
--- a/include/net-snmp/library/snmpv3.h
+++ b/include/net-snmp/library/snmpv3.h
@@ -20,6 +20,7 @@
 
 #define	DEFAULT_NIC "eth0"
 
+    NETSNMP_IMPORT
     int             setup_engineID(u_char ** eidp, const char *text);
     void            engineID_conf(const char *word, char *cptr);
     void            engineBoots_conf(const char *, char *);
@@ -27,8 +28,10 @@
     void            engineIDNic_conf(const char *, char *);
     void            snmpv3_authtype_conf(const char *word, char *cptr);
     void            snmpv3_privtype_conf(const char *word, char *cptr);
+    NETSNMP_IMPORT
     void            usm_parse_create_usmUser(const char *token,
                                              char *line);
+    NETSNMP_IMPORT
     void            init_snmpv3(const char *);
     int             init_snmpv3_post_config(int majorid, int minorid,
                                             void *serverarg,
@@ -40,18 +43,25 @@
     void            shutdown_snmpv3(const char *type);
     int             snmpv3_store(int majorID, int minorID, void *serverarg,
                                  void *clientarg);
+    NETSNMP_IMPORT
     u_long          snmpv3_local_snmpEngineBoots(void);
     int             snmpv3_clone_engineID(u_char **, size_t *, u_char *,
                                           size_t);
+    NETSNMP_IMPORT
     size_t          snmpv3_get_engineID(u_char * buf, size_t buflen);
+    NETSNMP_IMPORT
     u_char         *snmpv3_generate_engineID(size_t *);
+    NETSNMP_IMPORT
     u_long          snmpv3_local_snmpEngineTime(void);
     int             get_default_secLevel(void);
+    NETSNMP_IMPORT
     const oid      *get_default_authtype(size_t *);
+    NETSNMP_IMPORT
     const oid      *get_default_privtype(size_t *);
     void            snmpv3_set_engineBootsAndTime(int boots, int ttime);
     int             free_engineID(int majorid, int minorid, void *serverarg,
 				  void *clientarg);
+    NETSNMP_IMPORT
     int             parse_secLevel_conf(const char* word, char *cptr);
 
 #ifdef __cplusplus
diff --git a/include/net-snmp/library/system.h b/include/net-snmp/library/system.h
index 03c2b07..f3ec24c 100644
--- a/include/net-snmp/library/system.h
+++ b/include/net-snmp/library/system.h
@@ -47,6 +47,7 @@
      * Returns: -1 : fork failed
      *           0 : No errors
      */
+    NETSNMP_IMPORT
     int netsnmp_daemonize(int quit_immediately, int stderr_log);
 
     /*
@@ -79,24 +80,41 @@
         struct direct   dirstr; /* Directory structure to return */
     } DIR;
 
+    NETSNMP_IMPORT
     DIR            *opendir(const char *filename);
+    NETSNMP_IMPORT
     struct direct  *readdir(DIR * dirp);
+    NETSNMP_IMPORT
     int             closedir(DIR * dirp);
 #endif /* HAVE_READDIR */
 
 #ifndef HAVE_GETTIMEOFDAY
+    NETSNMP_IMPORT
     int             gettimeofday(struct timeval *, struct timezone *tz);
 #endif
 
-#endif				/* MSVC_PERL */
+#endif                         /* MSVC_PERL */
 
-#ifndef HAVE_STRNCASECMP
+/*
+ * Note: when compiling Net-SNMP with dmalloc enabled on a system without
+ * strcasecmp() or strncasecmp(), the macro HAVE_STRNCASECMP is
+ * not defined but strcasecmp() and strncasecmp() are defined as macros in
+ * <dmalloc.h>. In order to prevent a compilation error, do not declare
+ * strcasecmp() or strncasecmp() when the <dmalloc.h> header has been included.
+ */
+#if !defined(HAVE_STRNCASECMP) && !defined(strcasecmp)
+    NETSNMP_IMPORT
     int             strcasecmp(const char *s1, const char *s2);
+#endif
+#if !defined(HAVE_STRNCASECMP) && !defined(strncasecmp)
+    NETSNMP_IMPORT
     int             strncasecmp(const char *s1, const char *s2, size_t n);
 #endif
 
 #ifdef WIN32
+    NETSNMP_IMPORT
     char           *winsock_startup(void);
+    NETSNMP_IMPORT
     void            winsock_cleanup(void);
 #define SOCK_STARTUP winsock_startup()
 #define SOCK_CLEANUP winsock_cleanup()
@@ -109,23 +127,29 @@
 
     /* Simply resolve a hostname and return first IPv4 address.
      * Returns -1 on error */
+    NETSNMP_IMPORT
     int             netsnmp_gethostbyname_v4(const char* name,
                                              in_addr_t *addr_out);
 
+    NETSNMP_IMPORT
     in_addr_t       get_myaddr(void);
+    NETSNMP_IMPORT
     long            get_uptime(void);
 
 #ifndef HAVE_STRDUP
     char           *strdup(const char *);
 #endif
 #ifndef HAVE_SETENV
+    NETSNMP_IMPORT
     int             setenv(const char *, const char *, int);
 #endif
 
-    int             calculate_time_diff(struct timeval *,
-                                        struct timeval *);
-    u_int           calculate_sectime_diff(struct timeval *now,
-                                           struct timeval *then);
+    NETSNMP_IMPORT
+    int             calculate_time_diff(const struct timeval *,
+                                        const struct timeval *);
+    NETSNMP_IMPORT
+    u_int           calculate_sectime_diff(const struct timeval *now,
+                                           const struct timeval *then);
 
 #ifndef HAVE_STRCASESTR
     char           *strcasestr(const char *, const char *);
@@ -140,16 +164,20 @@
     NETSNMP_IMPORT uint64_t strtoull(const char *, char **, int);
 #endif
 #ifndef HAVE_STRTOK_R
+    NETSNMP_IMPORT
     char           *strtok_r(char *, const char *, char **);
 #endif
 #ifndef HAVE_SNPRINTF
     int             snprintf(char *, size_t, const char *, ...);
 #endif
 
+    NETSNMP_IMPORT
     int             mkdirhier(const char *pathname, mode_t mode,
                               int skiplast);
+    NETSNMP_IMPORT
     const char     *netsnmp_mktemp(void);
 #ifndef HAVE_STRLCPY
+    NETSNMP_IMPORT
     size_t            strlcpy(char *, const char *, size_t);
 #endif
 #ifndef HAVE_STRLCAT
@@ -161,7 +189,9 @@
                                         const char *ospmrelprefix);
     int             netsnmp_os_kernel_width(void);
 
+    NETSNMP_IMPORT
     int             netsnmp_str_to_uid(const char *useroruid);
+    NETSNMP_IMPORT
     int             netsnmp_str_to_gid(const char *grouporgid);
 
 #ifdef __cplusplus
diff --git a/include/net-snmp/library/testing.h b/include/net-snmp/library/testing.h
new file mode 100644
index 0000000..aabe52f
--- /dev/null
+++ b/include/net-snmp/library/testing.h
@@ -0,0 +1,16 @@
+#ifndef NETSNMP_LIBRARY_TESTING_H
+#define NETSNMP_LIBRARY_TESTING_H
+
+/* These are macros used for the net-snmp testing infrastructure; see
+   the "testing" subdirectory of the source code for details. */
+
+static int __test_counter = 0;
+static int __did_plan = 0;
+
+#define OK(isok, description) { printf("%s %d - %s\n", ((isok) ? "ok" : "not ok"), ++__test_counter, description); }
+
+#define OKF(isok, description) { printf("%s %d - \n", ((isok) ? "ok" : "not ok"), ++__test_counter); printf description; printf("\n"); }
+
+#define PLAN(number) { printf("1..%d\n", number); __did_plan = 1;}
+
+#endif /* NETSNMP_LIBRARY_TESTING_H */
diff --git a/include/net-snmp/library/tools.h b/include/net-snmp/library/tools.h
index 22e1e9a..c2b6179 100644
--- a/include/net-snmp/library/tools.h
+++ b/include/net-snmp/library/tools.h
@@ -199,14 +199,22 @@
      * Prototypes.
      */
 
+    NETSNMP_IMPORT
     int             snmp_realloc(u_char ** buf, size_t * buf_len);
 
     void            free_zero(void *buf, size_t size);
 
     u_char         *malloc_random(size_t * size);
     u_char         *malloc_zero(size_t size);
+    NETSNMP_IMPORT
     int             memdup(u_char ** to, const void * from, size_t size);
 
+    NETSNMP_IMPORT
+    u_int           netsnmp_binary_to_hex(u_char ** dest, size_t *dest_len,
+                                          int allow_realloc,
+                                          const u_char * input, size_t len);
+
+    NETSNMP_IMPORT
     u_int           binary_to_hex(const u_char * input, size_t len,
                                   char **output);
                     /* preferred */
@@ -214,39 +222,53 @@
                                          size_t * offset, int allow_realloc,
                                          const char *hex, const char *delim);
                     /* calls netsnmp_hex_to_binary w/delim of " " */
+    NETSNMP_IMPORT
     int             snmp_hex_to_binary(u_char ** buf, size_t * buf_len,
                                        size_t * offset, int allow_realloc,
                                        const char *hex);
                     /* handles odd lengths */
+    NETSNMP_IMPORT
     int             hex_to_binary2(const u_char * input, size_t len,
                                    char **output);
 
+    NETSNMP_IMPORT
     int             snmp_decimal_to_binary(u_char ** buf, size_t * buf_len,
                                            size_t * out_len,
                                            int allow_realloc,
                                            const char *decimal);
 #define snmp_cstrcat(b,l,o,a,s) snmp_strcat(b,l,o,a,(const u_char *)s)
+    NETSNMP_IMPORT
     int             snmp_strcat(u_char ** buf, size_t * buf_len,
                                 size_t * out_len, int allow_realloc,
                                 const u_char * s);
+    NETSNMP_IMPORT
     char           *netsnmp_strdup_and_null(const u_char * from,
                                             size_t from_len);
 
+    NETSNMP_IMPORT
     void            dump_chunk(const char *debugtoken, const char *title,
                                const u_char * buf, int size);
     char           *dump_snmpEngineID(const u_char * buf, size_t * buflen);
 
+    /** A pointer to an opaque time marker value. */
     typedef void   *marker_t;
-    marker_t        atime_newMarker(void);
-    void            atime_setMarker(marker_t pm);
-    long            atime_diff(marker_t first, marker_t second);
-    u_long          uatime_diff(marker_t first, marker_t second);       /* 1/1000th sec */
-    u_long          uatime_hdiff(marker_t first, marker_t second);      /* 1/100th sec */
-    int             atime_ready(marker_t pm, int deltaT);
-    int             uatime_ready(marker_t pm, unsigned int deltaT);
+    typedef const void* const_marker_t;
 
-    int             marker_tticks(marker_t pm);
-    int             timeval_tticks(struct timeval *tv);
+    NETSNMP_IMPORT
+    marker_t        atime_newMarker(void);
+    NETSNMP_IMPORT
+    void            atime_setMarker(marker_t pm);
+    NETSNMP_IMPORT
+    long            atime_diff(const_marker_t first, const_marker_t second);
+    u_long          uatime_diff(const_marker_t first, const_marker_t second);       /* 1/1000th sec */
+    NETSNMP_IMPORT
+    u_long          uatime_hdiff(const_marker_t first, const_marker_t second);      /* 1/100th sec */
+    NETSNMP_IMPORT
+    int             atime_ready(const_marker_t pm, int delta_ms);
+    int             uatime_ready(const_marker_t pm, unsigned int delta_ms);
+
+    int             marker_tticks(const_marker_t pm);
+    int             timeval_tticks(const struct timeval *tv);
     NETSNMP_IMPORT
     char            *netsnmp_getenv(const char *name);
     NETSNMP_IMPORT
diff --git a/include/net-snmp/library/ucd_compat.h b/include/net-snmp/library/ucd_compat.h
index 73979d3..329d435 100644
--- a/include/net-snmp/library/ucd_compat.h
+++ b/include/net-snmp/library/ucd_compat.h
@@ -13,22 +13,34 @@
         /*
          * from snmp_api.h 
          */
+NETSNMP_IMPORT
 void            snmp_set_dump_packet(int);
+NETSNMP_IMPORT
 int             snmp_get_dump_packet(void);
+NETSNMP_IMPORT
 void            snmp_set_quick_print(int);
+NETSNMP_IMPORT
 int             snmp_get_quick_print(void);
+NETSNMP_IMPORT
 void            snmp_set_suffix_only(int);
+NETSNMP_IMPORT
 int             snmp_get_suffix_only(void);
+NETSNMP_IMPORT
 void            snmp_set_full_objid(int);
 int             snmp_get_full_objid(void);
+NETSNMP_IMPORT
 void            snmp_set_random_access(int);
+NETSNMP_IMPORT
 int             snmp_get_random_access(void);
 
         /*
          * from parse.h 
          */
+NETSNMP_IMPORT
 void            snmp_set_mib_warnings(int);
+NETSNMP_IMPORT
 void            snmp_set_mib_errors(int);
+NETSNMP_IMPORT
 void            snmp_set_save_descriptions(int);
 void            snmp_set_mib_comment_term(int);
 void            snmp_set_mib_parse_label(int);
diff --git a/include/net-snmp/library/vacm.h b/include/net-snmp/library/vacm.h
index a34dc69..a5be6ac 100644
--- a/include/net-snmp/library/vacm.h
+++ b/include/net-snmp/library/vacm.h
@@ -126,12 +126,15 @@
         struct vacm_viewEntry *next;
     };
 
+    NETSNMP_IMPORT
     void            vacm_destroyViewEntry(const char *, oid *, size_t);
+    NETSNMP_IMPORT
     void            vacm_destroyAllViewEntries(void);
 
 #define VACM_MODE_FIND                0
 #define VACM_MODE_IGNORE_MASK         1
 #define VACM_MODE_CHECK_SUBTREE       2
+    NETSNMP_IMPORT
     struct vacm_viewEntry *vacm_getViewEntry(const char *, oid *, size_t,
                                              int);
     /*
@@ -140,6 +143,7 @@
      * Returns NULL if that entry does not exist.
      */
 
+    NETSNMP_IMPORT
     int vacm_checkSubtree(const char *, oid *, size_t);
 
     /*
@@ -155,6 +159,7 @@
      *                         disallowed portions.
      */
 
+    NETSNMP_IMPORT
     void
                     vacm_scanViewInit(void);
     /*
@@ -164,6 +169,7 @@
      */
 
 
+    NETSNMP_IMPORT
     struct vacm_viewEntry *vacm_scanViewNext(void);
     /*
      * Returns a pointer to the next viewEntry.
@@ -174,6 +180,7 @@
      * view_scanInit() starts the scan over.
      */
 
+    NETSNMP_IMPORT
     struct vacm_viewEntry *vacm_createViewEntry(const char *, oid *,
                                                 size_t);
     /*
@@ -182,22 +189,34 @@
      * The status of this entry is created as invalid.
      */
 
+    NETSNMP_IMPORT
     void            vacm_destroyGroupEntry(int, const char *);
+    NETSNMP_IMPORT
     void            vacm_destroyAllGroupEntries(void);
+    NETSNMP_IMPORT
     struct vacm_groupEntry *vacm_createGroupEntry(int, const char *);
+    NETSNMP_IMPORT
     struct vacm_groupEntry *vacm_getGroupEntry(int, const char *);
+    NETSNMP_IMPORT
     void            vacm_scanGroupInit(void);
+    NETSNMP_IMPORT
     struct vacm_groupEntry *vacm_scanGroupNext(void);
 
+    NETSNMP_IMPORT
     void            vacm_destroyAccessEntry(const char *, const char *,
                                             int, int);
+    NETSNMP_IMPORT
     void            vacm_destroyAllAccessEntries(void);
+    NETSNMP_IMPORT
     struct vacm_accessEntry *vacm_createAccessEntry(const char *,
                                                     const char *, int,
                                                     int);
+    NETSNMP_IMPORT
     struct vacm_accessEntry *vacm_getAccessEntry(const char *,
                                                  const char *, int, int);
+    NETSNMP_IMPORT
     void            vacm_scanAccessInit(void);
+    NETSNMP_IMPORT
     struct vacm_accessEntry *vacm_scanAccessNext(void);
 
     void            vacm_destroySecurityEntry(const char *);
@@ -205,6 +224,7 @@
     struct vacm_securityEntry *vacm_getSecurityEntry(const char *);
     void            vacm_scanSecurityInit(void);
     struct vacm_securityEntry *vacm_scanSecurityEntry(void);
+    NETSNMP_IMPORT
     int             vacm_is_configured(void);
 
     void            vacm_save(const char *token, const char *type);
@@ -217,16 +237,23 @@
     void            vacm_save_group(struct vacm_groupEntry *group_entry,
                                     const char *token, const char *type);
 
-    void            vacm_parse_config_view(const char *token, char *line);
-    void            vacm_parse_config_group(const char *token, char *line);
+    NETSNMP_IMPORT
+    void            vacm_parse_config_view(const char *token, const char *line);
+    NETSNMP_IMPORT
+    void            vacm_parse_config_group(const char *token,
+                                            const char *line);
+    NETSNMP_IMPORT
     void            vacm_parse_config_access(const char *token,
-                                             char *line);
+                                             const char *line);
+    NETSNMP_IMPORT
     void            vacm_parse_config_auth_access(const char *token,
-                                             char *line);
+                                                  const char *line);
 
+    NETSNMP_IMPORT
     int             store_vacm(int majorID, int minorID, void *serverarg,
                                void *clientarg);
 
+    NETSNMP_IMPORT
     struct vacm_viewEntry *netsnmp_view_get(struct vacm_viewEntry *head,
                                             const char *viewName,
                                             oid * viewSubtree,
diff --git a/include/net-snmp/library/winpipe.h b/include/net-snmp/library/winpipe.h
index c1dd93f..90fd723 100644
--- a/include/net-snmp/library/winpipe.h
+++ b/include/net-snmp/library/winpipe.h
@@ -35,6 +35,7 @@
 #ifndef WINPIPE_H
 #define WINPIPE_H
 
+NETSNMP_IMPORT
 int create_winpipe_transport(int *pipefds);
 
 #endif
diff --git a/include/net-snmp/library/winservice.h b/include/net-snmp/library/winservice.h
index 1c4763a..76080d6 100644
--- a/include/net-snmp/library/winservice.h
+++ b/include/net-snmp/library/winservice.h
@@ -95,17 +95,6 @@
   VOID DisplayError (LPCTSTR pszTitle, int quite);
 
   /*
-   * To update windows service status to SCM 
-   */
-  static BOOL UpdateServiceStatus (DWORD dwStatus, DWORD dwErrorCode,
-				   DWORD dwWaitHint);
-
-  /*
-   * To Report current service status to SCM 
-   */
-  static BOOL ReportCurrentServiceStatus (VOID);
-
-  /*
    * Service Main function,  Which will spawn a thread, and calls the
    * Service run part
    */
diff --git a/include/net-snmp/mib_api.h b/include/net-snmp/mib_api.h
index 7068bfb..3b54e83 100644
--- a/include/net-snmp/mib_api.h
+++ b/include/net-snmp/mib_api.h
@@ -12,48 +12,73 @@
 #endif
 
     /* Initialisation and Shutdown */
+    NETSNMP_IMPORT
+    int             add_mibdir(const char *);
+
+    NETSNMP_IMPORT
     void            netsnmp_init_mib(void);
 #ifndef NETSNMP_NO_LEGACY_DEFINITIONS
+    NETSNMP_IMPORT
     void            init_mib(void);
+    NETSNMP_IMPORT
     void            init_mib_internals(void);
 #endif
+    NETSNMP_IMPORT
     void            shutdown_mib(void);
 
      /* Reading and Parsing MIBs */
-    int             add_mibdir(const char *);
     NETSNMP_IMPORT
     struct tree    *netsnmp_read_module(const char *);
 #ifndef NETSNMP_NO_LEGACY_DEFINITIONS
+    NETSNMP_IMPORT
     struct tree    *read_module(const char *);
 #endif
+
+    NETSNMP_IMPORT
     struct tree    *read_mib(const char *);
+    NETSNMP_IMPORT
     struct tree    *read_all_mibs(void);
+
+    NETSNMP_IMPORT
     void            add_module_replacement(const char *, const char *,
                                            const char *, int);
 
          /* from ucd-compat.h */
+    NETSNMP_IMPORT
     void            snmp_set_mib_warnings(int);
+    NETSNMP_IMPORT
     void            snmp_set_mib_errors(int);
+    NETSNMP_IMPORT
     void            snmp_set_save_descriptions(int);
 
 
      /* Searching the MIB Tree */
-    oid            *snmp_parse_oid(const char *, oid *, size_t *);
+    NETSNMP_IMPORT
     int             read_objid(const char *, oid *, size_t *);
+    NETSNMP_IMPORT
+    oid            *snmp_parse_oid(const char *, oid *, size_t *);
+    NETSNMP_IMPORT
     int             get_module_node(const char *, const char *, oid *, size_t *);
 
      /* Output */
+    NETSNMP_IMPORT
     void            print_mib(FILE * fp);
 
+    NETSNMP_IMPORT
     void            print_objid(const oid * objid, size_t objidlen);
+    NETSNMP_IMPORT
     void           fprint_objid(FILE * fp,
                                 const oid * objid, size_t objidlen);
+    NETSNMP_IMPORT
     int           snprint_objid(char *buf, size_t buf_len,
                                 const oid * objid, size_t objidlen);
 
+    NETSNMP_IMPORT
     void            print_description(oid * objid, size_t objidlen, int width);
+    NETSNMP_IMPORT
     void           fprint_description(FILE * fp,
                                 oid * objid, size_t objidlen, int width);
+    NETSNMP_IMPORT
     int           snprint_description(char *buf, size_t buf_len,
                                 oid * objid, size_t objidlen, int width);
 
@@ -62,13 +87,18 @@
 #endif
 
     /*
-     *  For the initial release, this will just refer to the
-     *  relevant UCD header files.
-     *    In due course, the routines relevant to this area of the
-     *  API will be identified, and listed here directly.
+     *    Having extracted the main ("public API") calls relevant
+     *  to this area of the Net-SNMP project, the next step is to
+     *  identify the related "public internal API" routines.
      *
-     *  But for the time being, this header file is a placeholder,
-     *  to allow application writers to adopt the new header file names.
+     *    In due course, these should probably be gathered
+     *  together into a companion 'library/mib_api.h' header file.
+     *  [Or some suitable name]
+     *
+     *    But for the time being, the expectation is that the
+     *  traditional headers that provided the above definitions
+     *  will probably also cover the relevant internal API calls.
+     *  Hence they are listed here:
      */
 
 #include <net-snmp/library/snmp_api.h>
diff --git a/include/net-snmp/net-snmp-config.h.in b/include/net-snmp/net-snmp-config.h.in
index 8b9e489..e09dd76 100644
--- a/include/net-snmp/net-snmp-config.h.in
+++ b/include/net-snmp/net-snmp-config.h.in
@@ -1,6 +1,10 @@
 /* include/net-snmp/net-snmp-config.h.in.  Generated from configure.ac by autoheader.  */
 /* 
  * net-snmp configuration header file
+ *
+ * NOTE: DO NOT EDIT include/net-snmp/net-snmp-config.h.in as your changes
+ *       will be overwritten. This content is in acconfig.h and merged
+ *       into include/net-snmp/net-snmp-config.h.in by autoheader.
  */
 /* Portions of this file are subject to the following copyright(s).  See
  * the Net-SNMP's COPYING file for more details and other copyrights
@@ -95,6 +99,12 @@
 /* Define to 1 if you have the `cgetnext' function. */
 #undef HAVE_CGETNEXT
 
+/* Define to 1 if you have the `chown' function. */
+#undef HAVE_CHOWN
+
+/* Define to 1 if you have the `closedir' function. */
+#undef HAVE_CLOSEDIR
+
 /* Define to 1 if the system has the type `Counter64'. */
 #undef HAVE_COUNTER64
 
@@ -121,6 +131,9 @@
 /* Define to 1 if you have the <dmalloc.h> header file. */
 #undef HAVE_DMALLOC_H
 
+/* Set if the dpkg-query command is available */
+#undef HAVE_DPKG_QUERY
+
 /* Define to 1 if you have the <err.h> header file. */
 #undef HAVE_ERR_H
 
@@ -166,6 +179,9 @@
 /* Define to 1 if you have the `gethostbyname' function. */
 #undef HAVE_GETHOSTBYNAME
 
+/* Define to 1 if you have the `gethostbyname2' function. */
+#undef HAVE_GETHOSTBYNAME2
+
 /* Define to 1 if you have the `gethostname' function. */
 #undef HAVE_GETHOSTNAME
 
@@ -178,6 +194,9 @@
 /* Define to 1 if you have the `getmntent' function. */
 #undef HAVE_GETMNTENT
 
+/* Define to 1 if you have the `getopt' function. */
+#undef HAVE_GETOPT
+
 /* Define to 1 if you have the <getopt.h> header file. */
 #undef HAVE_GETOPT_H
 
@@ -205,6 +224,9 @@
 /* Define to 1 if you have the `if_freenameindex' function. */
 #undef HAVE_IF_FREENAMEINDEX
 
+/* Define to 1 if you have the `if_indextoname' function. */
+#undef HAVE_IF_INDEXTONAME
+
 /* Define to 1 if you have the `if_nameindex' function. */
 #undef HAVE_IF_NAMEINDEX
 
@@ -220,6 +242,12 @@
 /* Define to 1 if you have the <inet/mib2.h> header file. */
 #undef HAVE_INET_MIB2_H
 
+/* Define to 1 if you have the `inet_ntop' function. */
+#undef HAVE_INET_NTOP
+
+/* Define to 1 if you have the `inet_pton' function. */
+#undef HAVE_INET_PTON
+
 /* Define to 1 if you have the `initgroups' function. */
 #undef HAVE_INITGROUPS
 
@@ -244,6 +272,15 @@
 /* Define to 1 if you have the <iphlpapi.h> header file. */
 #undef HAVE_IPHLPAPI_H
 
+/* Set if IP_PKTINFO is usable */
+#undef HAVE_IP_PKTINFO
+
+/* Set if IP_RECVDSTADDR is usable */
+#undef HAVE_IP_RECVDSTADDR
+
+/* kern.cp_times displays multi cpu load on FreeBSD... */
+#undef HAVE_KERN_CP_TIMES
+
 /* Define to 1 if you have the `kinfo_get_cpus' function. */
 #undef HAVE_KINFO_GET_CPUS
 
@@ -310,6 +347,9 @@
 /* Define to 1 if you have the `ssl' library (-lssl). */
 #undef HAVE_LIBSSL
 
+/* Define to 1 if your `ssl' library supports DTLS (-lssl). */
+#undef HAVE_LIBSSL_DTLS
+
 /* Define to 1 if you have the <limits.h> header file. */
 #undef HAVE_LIMITS_H
 
@@ -331,6 +371,9 @@
 /* Define to 1 if you have the <locale.h> header file. */
 #undef HAVE_LOCALE_H
 
+/* Define to 1 if you have the `localtime_r' function. */
+#undef HAVE_LOCALTIME_R
+
 /* Define to 1 if the system has the type `long long int'. */
 #undef HAVE_LONG_LONG_INT
 
@@ -373,6 +416,9 @@
 /* Define to 1 if you have the <mtab.h> header file. */
 #undef HAVE_MTAB_H
 
+/* Define to 1 if you have the <nbutil.h> header file. */
+#undef HAVE_NBUTIL_H
+
 /* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
 #undef HAVE_NDIR_H
 
@@ -499,6 +545,9 @@
 /* Define to 1 if the system has the type `off64_t'. */
 #undef HAVE_OFF64_T
 
+/* Define to 1 if you have the `opendir' function. */
+#undef HAVE_OPENDIR
+
 /* Define to 1 if you have the <openssl/aes.h> header file. */
 #undef HAVE_OPENSSL_AES_H
 
@@ -637,9 +686,15 @@
 /* Define to 1 if you have the `sighold' function. */
 #undef HAVE_SIGHOLD
 
+/* Define if SIGHUP is defined in <signal.h>. */
+#undef HAVE_SIGHUP
+
 /* Define to 1 if you have the `signal' function. */
 #undef HAVE_SIGNAL
 
+/* Define to 1 if you have the `sigprocmask' function. */
+#undef HAVE_SIGPROCMASK
+
 /* Define to 1 if you have the `sigset' function. */
 #undef HAVE_SIGSET
 
@@ -814,9 +869,6 @@
 /* Define to 1 if `m_mbufs' is member of `struct mbstat'. */
 #undef HAVE_STRUCT_MBSTAT_M_MBUFS
 
-/* Define to 1 if `msg_control' is member of `struct msghdr'. */
-#undef HAVE_STRUCT_MSGHDR_MSG_CONTROL
-
 /* Define to 1 if `n_value' is member of `struct nlist64'. */
 #undef HAVE_STRUCT_NLIST64_N_VALUE
 
@@ -869,6 +921,9 @@
 /* Define to 1 if `f_files' is member of `struct statfs'. */
 #undef HAVE_STRUCT_STATFS_F_FILES
 
+/* Define to 1 if `f_flags' is member of `struct statfs'. */
+#undef HAVE_STRUCT_STATFS_F_FLAGS
+
 /* Define to 1 if `f_frsize' is member of `struct statfs'. */
 #undef HAVE_STRUCT_STATFS_F_FRSIZE
 
@@ -887,6 +942,9 @@
 /* Define to 1 if `tcp_rcvmemdrop' is member of `struct tcpstat'. */
 #undef HAVE_STRUCT_TCPSTAT_TCP_RCVMEMDROP
 
+/* Define to 1 if `tz_dsttime' is member of `struct timezone'. */
+#undef HAVE_STRUCT_TIMEZONE_TZ_DSTTIME
+
 /* Define to 1 if `tm_gmtoff' is member of `struct tm'. */
 #undef HAVE_STRUCT_TM_TM_GMTOFF
 
@@ -1045,6 +1103,9 @@
 /* Define to 1 if you have the <sys/tcpipstats.h> header file. */
 #undef HAVE_SYS_TCPIPSTATS_H
 
+/* Define to 1 if you have the <sys/timeb.h> header file. */
+#undef HAVE_SYS_TIMEB_H
+
 /* Define to 1 if you have the <sys/timeout.h> header file. */
 #undef HAVE_SYS_TIMEOUT_H
 
@@ -1099,6 +1160,9 @@
 /* Define to 1 if you have the `times' function. */
 #undef HAVE_TIMES
 
+/* Define if a timezone variable is declared in <sys/time.h> */
+#undef HAVE_TIMEZONE_VARIABLE
+
 /* Define to 1 if you have the <ufs/ffs/fs.h> header file. */
 #undef HAVE_UFS_FFS_FS_H
 
@@ -1193,6 +1257,9 @@
 /* Define if static inline functions are unsupported */
 #undef NETSNMP_BROKEN_INLINE
 
+/* "Define if crytography support is possible" */
+#undef NETSNMP_CAN_DO_CRYPTO
+
 /* sysctl works to get boottime, etc... */
 #undef NETSNMP_CAN_USE_SYSCTL
 
@@ -1268,6 +1335,9 @@
 /* umask permissions to set up persistent files with */
 #undef NETSNMP_PERSISTENT_MASK
 
+/* Size prefix to use to printf a uint32_t */
+#undef NETSNMP_PRI32
+
 /* Size prefix to use to printf a size_t or ssize_t */
 #undef NETSNMP_PRIz
 
@@ -1281,6 +1351,9 @@
 /* Pattern of temporary files */
 #undef NETSNMP_TEMP_FILE_PATTERN
 
+/* "Define if internal cryptography code should be used" */
+#undef NETSNMP_USE_INTERNAL_CRYPTO
+
 /* define if you are using the MD5 code ... */
 #undef NETSNMP_USE_INTERNAL_MD5
 
@@ -1296,7 +1369,7 @@
 /* Define if you are using the codeS11 library ... */
 #undef NETSNMP_USE_PKCS11
 
-/* Define this if you have lim_sensors v3 or later */
+/* Define this if you have lm_sensors v3 or later */
 #undef NETSNMP_USE_SENSORS_V3
 
 /* Should we compile to use special opaque types: float, double, counter64,
@@ -1356,6 +1429,9 @@
 /* The size of `short', as computed by sizeof. */
 #undef SIZEOF_SHORT
 
+/* The size of `sockaddr_un.sun_path', as computed by sizeof. */
+#undef SIZEOF_SOCKADDR_UN_SUN_PATH
+
 /* If using the C implementation of alloca, define if you know the
    direction of stack growth for your system; otherwise it will be
    automatically deduced at runtime.
@@ -1513,7 +1589,7 @@
 
 /* If you have openssl 0.9.7 or above, you likely have AES support. */
 #undef NETSNMP_USE_OPENSSL
-#if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_OPENSSL_AES_H) && defined(HAVE_AES_CFB128_ENCRYPT)
+#if (defined(NETSNMP_USE_OPENSSL) && defined(HAVE_OPENSSL_AES_H) && defined(HAVE_AES_CFB128_ENCRYPT)) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
 #define HAVE_AES 1
 #endif
 
@@ -1729,7 +1805,7 @@
 #ifdef WIN32
 #define NETSNMP_OSTYPE NETSNMP_WIN32ID
 #endif
-#if defined(aix3) || defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix3) || defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
 #define NETSNMP_OSTYPE NETSNMP_AIXID
 #endif
 #if defined(darwin) && (darwin >= 8)
@@ -1856,7 +1932,7 @@
 
 /*  This is defined if support for the TLS transport domain is
     available.   */
-#undef NETSNMP_TRANSPORT_TLS_DOMAIN
+#undef NETSNMP_TRANSPORT_TLSBASE_DOMAIN
 
 /*  This is defined if support for the Alias transport domain is
     available.   */
@@ -1870,9 +1946,16 @@
     available.   */
 #undef NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
 
+/*  This is defined if support for the TLS/TCP transport domain is
+    available.   */
+#undef NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+
 /*  This is defined if support for stdin/out transport domain is available.   */
 #undef NETSNMP_TRANSPORT_STD_DOMAIN
 
+/*  This is defined if support for the IPv4Base transport domain is available.   */
+#undef NETSNMP_TRANSPORT_IPV4BASE_DOMAIN
+
 /* define this if the USM security module is available */
 #undef NETSNMP_SECMOD_USM
 
diff --git a/include/net-snmp/net-snmp-includes.h b/include/net-snmp/net-snmp-includes.h
index 3aea094..cd37407 100644
--- a/include/net-snmp/net-snmp-includes.h
+++ b/include/net-snmp/net-snmp-includes.h
@@ -38,11 +38,7 @@
 #endif
 
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
diff --git a/include/net-snmp/openssl_md5.h b/include/net-snmp/openssl_md5.h
new file mode 100644
index 0000000..1e85f31
--- /dev/null
+++ b/include/net-snmp/openssl_md5.h
@@ -0,0 +1,116 @@
+/* crypto/md5/md5.h */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+#ifndef HEADER_MD5_H
+#define HEADER_MD5_H
+
+#include <stddef.h>
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+#ifdef OPENSSL_NO_MD5
+#error MD5 is disabled.
+#endif
+
+/*
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ * ! MD5_LONG has to be at least 32 bits wide. If it's wider, then !
+ * ! MD5_LONG_LOG2 has to be defined along.			   !
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ */
+
+#if defined(__LP32__)
+#define MD5_LONG unsigned long
+#elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__)
+#define MD5_LONG unsigned long
+#define MD5_LONG_LOG2 3
+/*
+ * _CRAY note. I could declare short, but I have no idea what impact
+ * does it have on performance on none-T3E machines. I could declare
+ * int, but at least on C90 sizeof(int) can be chosen at compile time.
+ * So I've chosen long...
+ *					<appro@fy.chalmers.se>
+ */
+#else
+#define MD5_LONG unsigned int
+#endif
+
+#define MD5_CBLOCK	64
+#define MD5_LBLOCK	(MD5_CBLOCK/4)
+#define MD5_DIGEST_LENGTH 16
+
+typedef struct MD5state_st
+	{
+	MD5_LONG A,B,C,D;
+	MD5_LONG Nl,Nh;
+	MD5_LONG data[MD5_LBLOCK];
+	unsigned int num;
+	} MD5_CTX;
+
+int MD5_Init(MD5_CTX *c);
+int MD5_Update(MD5_CTX *c, const void *data, size_t len);
+int MD5_Final(unsigned char *md, MD5_CTX *c);
+unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md);
+void MD5_Transform(MD5_CTX *c, const unsigned char *b);
+#ifdef  __cplusplus
+}
+#endif
+
+#endif
diff --git a/include/net-snmp/output_api.h b/include/net-snmp/output_api.h
index be2ce0c..3bf3172 100644
--- a/include/net-snmp/output_api.h
+++ b/include/net-snmp/output_api.h
@@ -1,5 +1,5 @@
-#ifndef NET_SNMP_LOGGING_API_H
-#define NET_SNMP_LOGGING_API_H
+#ifndef NET_SNMP_OUTPUT_API_H
+#define NET_SNMP_OUTPUT_API_H
 
     /**
      *  Library API routines concerned with logging and message output
@@ -7,17 +7,145 @@
      */
 
 #include <net-snmp/types.h>
+#include <stdarg.h>	/* for va_list */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /* Error reporting */
+    NETSNMP_IMPORT
+    void    snmp_error(netsnmp_session *sess, int *clib_errorno,
+                           int *snmp_errorno, char **errstring);
+    NETSNMP_IMPORT
+    void    snmp_sess_error(      void *sess, int *clib_errorno,
+                           int *snmp_errorno, char **errstring);
+
+    NETSNMP_IMPORT
+    const char *snmp_api_errstring(int snmp_errorno);  /*  library errors */
+    NETSNMP_IMPORT
+    const char     *snmp_errstring(int snmp_errorno);  /* protocol errors */
+
+    NETSNMP_IMPORT
+    void    snmp_perror(const char *msg);   /* for parsing errors only */
+
+    NETSNMP_IMPORT
+    void    snmp_sess_perror(const char *msg, netsnmp_session *sess);
+                                       /* for all other SNMP library errors */
+    NETSNMP_IMPORT
+    void    snmp_log_perror(const char *msg);
+                                       /* for system library errors */
+
+    /* Logging messages */
+
+#if !defined(__GNUC__) || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
+#define _LOG_ATTR
+#else
+#define _LOG_ATTR   __attribute__ ((__format__ (__printf__, 2, 3)))
+#endif
+
+    NETSNMP_IMPORT
+    int  snmp_log( int priority, const char *format, ...) _LOG_ATTR;
+    NETSNMP_IMPORT
+    int  snmp_vlog(int priority, const char *format, va_list ap);
+    NETSNMP_IMPORT
+    int  snmp_get_do_logging(    void);
+    NETSNMP_IMPORT
+    void netsnmp_logging_restart(void);
+    NETSNMP_IMPORT
+    void snmp_disable_log(       void);
+    NETSNMP_IMPORT
+    void shutdown_snmp_logging(  void);
+
+#undef _LOG_ATTR
+
+    /* Debug messages */
+#ifndef NETSNMP_NO_DEBUGGING
+#include <net-snmp/library/snmp_debug.h>	/* for internal macros */
+#define DEBUGMSG(x)        do {if (_DBG_IF_) {debugmsg x;} }while(0)
+#define DEBUGMSGT(x)       do {if (_DBG_IF_) {__DBGMSGT(x);} }while(0)
+#define DEBUGTRACE         do {if (_DBG_IF_) {__DBGTRACE;} }while(0)
+#define DEBUGTRACETOK(x)   do {if (_DBG_IF_) {__DBGTRACETOK(x);} }while(0)
+#define DEBUGMSGL(x)       do {if (_DBG_IF_) {__DBGMSGL(x);} }while(0)
+#define DEBUGMSGTL(x)      do {if (_DBG_IF_) {__DBGMSGTL(x);} }while(0)
+#define DEBUGMSGOID(x)     do {if (_DBG_IF_) {__DBGMSGOID(x);} }while(0)
+#define DEBUGMSGSUBOID(x)  do {if (_DBG_IF_) {__DBGMSGSUBOID(x);} }while(0)
+#define DEBUGMSGVAR(x)     do {if (_DBG_IF_) {__DBGMSGVAR(x);} }while(0)
+#define DEBUGMSGOIDRANGE(x) do {if (_DBG_IF_) {__DBGMSGOIDRANGE(x);} }while(0)
+#define DEBUGMSGHEX(x)     do {if (_DBG_IF_) {__DBGMSGHEX(x);} }while(0)
+#define DEBUGMSGHEXTLI(x)  do {if (_DBG_IF_) {__DBGMSGHEXTLI(x);} }while(0)
+#define DEBUGINDENTADD(x)  do {if (_DBG_IF_) {__DBGINDENTADD(x);} }while(0)
+#define DEBUGINDENTMORE()  do {if (_DBG_IF_) {__DBGINDENTMORE();} }while(0)
+#define DEBUGINDENTLESS()  do {if (_DBG_IF_) {__DBGINDENTLESS();} }while(0)
+#define DEBUGPRINTINDENT(token) \
+	do {if (_DBG_IF_) {__DBGPRINTINDENT(token);} }while(0)
+#define DEBUGDUMPHEADER(token,x) \
+	do {if (_DBG_IF_) {__DBGDUMPHEADER(token,x);} }while(0)
+#define DEBUGDUMPSECTION(token,x) \
+	do {if (_DBG_IF_) {__DBGDUMPSECTION(token,x);} }while(0)
+#define DEBUGDUMPSETUP(token,buf,len) \
+	do {if (_DBG_IF_) {__DBGDUMPSETUP(token,buf,len);} }while(0)
+#define DEBUGMSG_NC(x)  do { __DBGMSG_NC(x); }while(0)
+#define DEBUGMSGT_NC(x) do { __DBGMSGT_NC(x); }while(0)
+
+#else        /* NETSNMP_NO_DEBUGGING := enable streamlining of the code */
+
+#define DEBUGMSG(x)
+#define DEBUGMSGT(x)
+#define DEBUGTRACE
+#define DEBUGTRACETOK(x)
+#define DEBUGMSGL(x)
+#define DEBUGMSGTL(x)
+#define DEBUGMSGOID(x)
+#define DEBUGMSGSUBOID(x)
+#define DEBUGMSGVAR(x)
+#define DEBUGMSGOIDRANGE(x)
+#define DEBUGMSGHEX(x)
+#define DEBUGIF(x)        if(0)
+#define DEBUGDUMP(t,b,l,p)
+#define DEBUGINDENTMORE()
+#define DEBUGINDENTLESS()
+#define DEBUGINDENTADD(x)
+#define DEBUGMSGHEXTLI(x)
+#define DEBUGPRINTINDENT(token)
+#define DEBUGDUMPHEADER(token,x)
+#define DEBUGDUMPSECTION(token,x)
+#define DEBUGDUMPSETUP(token, buf, len)
+
+#define DEBUGMSG_NC(x)
+#define DEBUGMSGT_NC(x)
+
+#endif    /* NETSNMP_NO_DEBUGGING */
+
+    NETSNMP_IMPORT
+    void            debug_register_tokens(const char *tokens);
+    NETSNMP_IMPORT
+    int             debug_is_token_registered(const char *token);
+    NETSNMP_IMPORT
+    void            snmp_set_do_debugging(int);
+    NETSNMP_IMPORT
+    int             snmp_get_do_debugging(void);
 
     /*
-     *  For the initial release, this will just refer to the
-     *  relevant UCD header files.
-     *    In due course, the routines relevant to this area of the
-     *  API will be identified, and listed here directly.
+     *    Having extracted the main ("public API") calls relevant
+     *  to this area of the Net-SNMP project, the next step is to
+     *  identify the related "public internal API" routines.
      *
-     *  But for the time being, this header file is a placeholder,
-     *  to allow application writers to adopt the new header file names.
+     *    In due course, these should probably be gathered
+     *  together into a companion 'library/output_api.h' header file.
+     *  [Or some suitable name]
+     *
+     *    But for the time being, the expectation is that the
+     *  traditional headers that provided the above definitions
+     *  will probably also cover the relevant internal API calls.
+     *  Hence they are listed here:
      */
 
+#ifdef __cplusplus
+}
+#endif
+
+#include <net-snmp/library/snmp_api.h>
 #include <net-snmp/library/snmp_client.h>
 #include <net-snmp/library/snmp_debug.h>
 #include <net-snmp/library/snmp_logging.h>
@@ -26,4 +154,4 @@
 #define ERROR_MSG(string)	snmp_set_detail(string)
 #endif
 
-#endif                          /* NET_SNMP_LOGGING_API_H */
+#endif                          /* NET_SNMP_OUTPUT_API_H */
diff --git a/include/net-snmp/pdu_api.h b/include/net-snmp/pdu_api.h
index 87c1011..125595d 100644
--- a/include/net-snmp/pdu_api.h
+++ b/include/net-snmp/pdu_api.h
@@ -11,9 +11,13 @@
 extern          "C" {
 #endif
 
+NETSNMP_IMPORT
 netsnmp_pdu    *snmp_pdu_create(int type);
+NETSNMP_IMPORT
 netsnmp_pdu    *snmp_clone_pdu(netsnmp_pdu *pdu);
+NETSNMP_IMPORT
 netsnmp_pdu    *snmp_fix_pdu(  netsnmp_pdu *pdu, int idx);
+NETSNMP_IMPORT
 void            snmp_free_pdu( netsnmp_pdu *pdu);
 
 #ifdef __cplusplus
@@ -21,13 +25,18 @@
 #endif
 
     /*
-     *  For the initial release, this will just refer to the
-     *  relevant UCD header files.
-     *    In due course, the routines relevant to this area of the
-     *  API will be identified, and listed here directly.
+     *    Having extracted the main ("public API") calls relevant
+     *  to this area of the Net-SNMP project, the next step is to
+     *  identify the related "public internal API" routines.
      *
-     *  But for the time being, this header file is a placeholder,
-     *  to allow application writers to adopt the new header file names.
+     *    In due course, these should probably be gathered
+     *  together into a companion 'library/pdu_api.h' header file.
+     *  [Or some suitable name]
+     *
+     *    But for the time being, the expectation is that the
+     *  traditional headers that provided the above definitions
+     *  will probably also cover the relevant internal API calls.
+     *  Hence they are listed here:
      */
 
 #include <net-snmp/library/snmp_api.h>
diff --git a/include/net-snmp/session_api.h b/include/net-snmp/session_api.h
index 907b7b9..88dbc41 100644
--- a/include/net-snmp/session_api.h
+++ b/include/net-snmp/session_api.h
@@ -12,6 +12,7 @@
 extern          "C" {
 #endif
 
+    NETSNMP_IMPORT
     void            snmp_sess_init(netsnmp_session *);
 
     /*
@@ -24,6 +25,7 @@
      * the pointer passed to snmp_open()).  On any error, NULL is returned
      * and snmp_errno is set to the appropriate error code.
      */
+    NETSNMP_IMPORT
     netsnmp_session *snmp_open(netsnmp_session *);
 
     /*
@@ -36,7 +38,9 @@
      *
      * snmp_close_sessions() does the same thing for all open sessions
      */
+    NETSNMP_IMPORT
     int             snmp_close(netsnmp_session *);
+    NETSNMP_IMPORT
     int             snmp_close_sessions(void);
 
 
@@ -53,6 +57,7 @@
      * On any error, 0 is returned.
      * The pdu is freed by snmp_send() unless a failure occured.
      */
+    NETSNMP_IMPORT
     int             snmp_send(netsnmp_session *, netsnmp_pdu *);
 
     /*
@@ -71,6 +76,7 @@
      * On any error, 0 is returned.
      * The pdu is freed by snmp_send() unless a failure occured.
      */
+    NETSNMP_IMPORT
     int             snmp_async_send(netsnmp_session *, netsnmp_pdu *,
                                     netsnmp_callback, void *);
 
@@ -85,6 +91,7 @@
      * is passed to the callback routine for that session.  If the callback
      * routine returns successfully, the pdu and it's request are deleted.
      */
+    NETSNMP_IMPORT
     void            snmp_read(fd_set *);
 
     /*
@@ -92,9 +99,11 @@
      * large file descriptor set instead of a pointer to a regular file
      * descriptor set.
      */
+    NETSNMP_IMPORT
     void            snmp_read2(netsnmp_large_fd_set *);
 
 
+    NETSNMP_IMPORT
     int             snmp_synch_response(netsnmp_session *, netsnmp_pdu *,
                                         netsnmp_pdu **);
 
@@ -125,6 +134,7 @@
      * snmp_select_info returns the number of open sockets.  (i.e. The number
      * of sessions open)
      */
+    NETSNMP_IMPORT
     int             snmp_select_info(int *, fd_set *, struct timeval *,
                                      int *);
 
@@ -133,9 +143,18 @@
      * pointer to a large file descriptor set instead of a pointer to a
      * regular file descriptor set.
      */
+    NETSNMP_IMPORT
     int             snmp_select_info2(int *, netsnmp_large_fd_set *,
                                       struct timeval *, int *);
 
+#define NETSNMP_SELECT_NOFLAGS  0x00
+#define NETSNMP_SELECT_NOALARMS 0x01
+    NETSNMP_IMPORT
+    int             snmp_sess_select_info_flags(void *, int *, fd_set *,
+                                                struct timeval *, int *, int);
+    int             snmp_sess_select_info2_flags(void *, int *,
+                                                 netsnmp_large_fd_set *,
+                                                 struct timeval *, int *, int);
 
     /*
      * void snmp_timeout();
@@ -149,16 +168,10 @@
      * callback for the session is used to alert the user of the timeout.
      */
 
+    NETSNMP_IMPORT
     void            snmp_timeout(void);
 
     /*
-     * snmp_error - return error data
-     * Inputs :  address of errno, address of snmp_errno, address of string
-     * Caller must free the string returned after use.
-     */
-    void            snmp_error(netsnmp_session *, int *, int *, char **);
-
-    /*
      * single session API.
      *
      * These functions perform similar actions as snmp_XX functions,
@@ -196,8 +209,11 @@
      *  4. Replace snmp_send(ss,pdu) with snmp_sess_send(sessp,pdu)
      */
 
+    NETSNMP_IMPORT
     void           *snmp_sess_open(netsnmp_session *);
+    NETSNMP_IMPORT
     void           *snmp_sess_pointer(netsnmp_session *);
+    NETSNMP_IMPORT
     netsnmp_session *snmp_sess_session(void *);
     NETSNMP_IMPORT
     netsnmp_session *snmp_sess_session_lookup(void *);
@@ -207,27 +223,36 @@
      * use return value from snmp_sess_open as void * parameter 
      */
 
+    NETSNMP_IMPORT
     int             snmp_sess_send(void *, netsnmp_pdu *);
+    NETSNMP_IMPORT
     int             snmp_sess_async_send(void *, netsnmp_pdu *,
                                          netsnmp_callback, void *);
+    NETSNMP_IMPORT
     int             snmp_sess_select_info(void *, int *, fd_set *,
                                           struct timeval *, int *);
+    NETSNMP_IMPORT
     int             snmp_sess_select_info2(void *, int *,
 					   netsnmp_large_fd_set *,
                                            struct timeval *, int *);
     /*
      * Returns 0 if success, -1 if fail.
      */
+    NETSNMP_IMPORT
     int             snmp_sess_read(void *, fd_set *);
     /*
      * Similar to snmp_sess_read(), but accepts a pointer to a large file
      * descriptor set instead of a pointer to a file descriptor set.
      */
+    NETSNMP_IMPORT
     int             snmp_sess_read2(void *,
                                     netsnmp_large_fd_set *);
+    NETSNMP_IMPORT
     void            snmp_sess_timeout(void *);
+    NETSNMP_IMPORT
     int             snmp_sess_close(void *);
 
+    NETSNMP_IMPORT
     int             snmp_sess_synch_response(void *, netsnmp_pdu *,
                                              netsnmp_pdu **);
 
@@ -237,13 +262,18 @@
 
 
     /*
-     *  For the initial release, this will just refer to the
-     *  relevant UCD header files.
-     *    In due course, the routines relevant to this area of the
-     *  API will be identified, and listed here directly.
+     *    Having extracted the main ("public API") calls relevant
+     *  to this area of the Net-SNMP project, the next step is to
+     *  identify the related "public internal API" routines.
      *
-     *  But for the time being, this header file is a placeholder,
-     *  to allow application writers to adopt the new header file names.
+     *    In due course, these should probably be gathered
+     *  together into a companion 'library/session_api.h' header file.
+     *  [Or some suitable name]
+     *
+     *    But for the time being, the expectation is that the
+     *  traditional headers that provided the above definitions
+     *  will probably also cover the relevant internal API calls.
+     *  Hence they are listed here:
      */
 
 #include <net-snmp/library/snmp_api.h>
diff --git a/include/net-snmp/system/cygwin.h b/include/net-snmp/system/cygwin.h
index 14ae8ae..a9b76fb 100644
--- a/include/net-snmp/system/cygwin.h
+++ b/include/net-snmp/system/cygwin.h
@@ -7,7 +7,6 @@
 #include <stdint.h>	/* uint32_t */
 #endif
 
-#undef HAVE_WINSOCK_H
 #undef bsdlike
 #undef MBSTAT_SYMBOL
 #undef TOTAL_MEMORY_SYMBOL
diff --git a/include/net-snmp/system/darwin.h b/include/net-snmp/system/darwin.h
index 6750cf1..6eaf09f 100644
--- a/include/net-snmp/system/darwin.h
+++ b/include/net-snmp/system/darwin.h
@@ -5,3 +5,9 @@
  * At least, as of 5.3.
  */
 #undef HAVE_FSTAB_H
+
+/*
+ * as of 7/2010, openssl on darwin does not have sha256
+ */
+#define OPENSSL_NO_SHA256 1
+#define OPENSSL_NO_SHA512 1
diff --git a/include/net-snmp/system/darwin10.h b/include/net-snmp/system/darwin10.h
new file mode 100644
index 0000000..2333015
--- /dev/null
+++ b/include/net-snmp/system/darwin10.h
@@ -0,0 +1,161 @@
+/*
+ * While Darwin 10 (aka, Mac OS X 10.6 Snow Leopard) is "BSD-like", it differs
+ * substantially enough to not warrant pretending it is a BSD flavor.
+ * This first section are the vestigal BSD remnants.
+ */
+/* Portions of this file are subject to the following copyright(s).  See
+ * the Net-SNMP's COPYING file for more details and other copyrights
+ * that may apply:
+ */
+/*
+ * Portions of this file are copyrighted by:
+ * Copyright (C) 2007 Apple, Inc. All rights reserved.
+ * Use is subject to license terms specified in the COPYING file
+ * distributed with the Net-SNMP package.
+ */
+
+/*
+ * BSD systems use a different method of looking up sockaddr_in values 
+ */
+/* #define NEED_KLGETSA 1 */
+
+/*
+ * ARP_Scan_Next needs a 4th ifIndex argument 
+ */
+#define ARP_SCAN_FOUR_ARGUMENTS 1
+
+#define CHECK_RT_FLAGS 1
+
+/*
+ * this is not good enough before freebsd3! 
+ */
+/* #undef HAVE_NET_IF_MIB_H */
+
+/*
+ * This section adds the relevant definitions from generic.h
+ * (a file we don't include here)
+ */
+
+/*
+ * udp_inpcb list symbol, e.g. for mibII/udpTable.c
+ */
+#define INP_NEXT_SYMBOL inp_next
+
+/*
+ * This section defines Mac OS X 10.5 (and later) specific additions.
+ */
+#define darwin 10
+#ifndef darwin10
+#   define darwin10 darwin
+#endif
+
+/*
+ * Mac OS X should only use the modern API and definitions.
+ */
+#ifndef NETSNMP_NO_LEGACY_DEFINITIONS
+#define NETSNMP_NO_LEGACY_DEFINITIONS 1
+#endif
+
+/*
+ * looks like the IFTable stuff works better than the mibII versions
+ */
+ 
+#define NETSNMP_INCLUDE_IFTABLE_REWRITES
+
+/*
+ * use new host resources files as well
+ */
+#define NETSNMP_INCLUDE_HRSWINST_REWRITES
+#define NETSNMP_INCLUDE_HRSWRUN_REWRITES
+#undef NETSNMP_INCLUDE_HRSWRUN_WRITE_SUPPORT
+#define NETSNMP_CAN_GET_DISK_LABEL 1
+
+/*
+ * Enabling this restricts the compiler to mostly public APIs.
+ */
+#ifndef __APPLE_API_STRICT_CONFORMANCE
+#define __APPLE_API_STRICT_CONFORMANCE 1
+#endif
+#ifndef __APPLE_API_UNSTABLE
+#define __APPLE_API_UNSTABLE 1
+#endif
+
+/*
+ * Darwin's tools are capable of building multiple architectures in one pass.
+ * As a result, platform definitions should be deferred until compile time.
+ */
+#ifdef BYTE_ORDER
+# undef WORDS_BIGENDIAN
+# if BYTE_ORDER == BIG_ENDIAN
+#  define WORDS_BIGENDIAN 1
+# endif
+#endif
+
+/*
+ * Darwin's tools are capable of building multiple architectures in one pass.
+ * As a result, platform definitions should be deferred until compile time.
+ */
+#ifdef BYTE_ORDER
+# undef WORDS_BIGENDIAN
+# if BYTE_ORDER == BIG_ENDIAN
+#  define WORDS_BIGENDIAN 1
+# endif
+#endif
+
+/*
+ * Although Darwin does have a kvm.h file, kvm_openfiles etc. always
+ * return null because /dev/kmem was removed completely in OS X 10.5.
+ */
+#undef HAVE_KVM_H
+#undef HAVE_KVM_GETPROCS
+#undef HAVE_KVM_OPENFILES
+
+/*
+ * Although Darwin does have an fstab.h file, getfsfile etc. always return null.
+ * At least, as of 5.3.
+ */
+#undef HAVE_FSTAB_H
+
+#define SWAPFILE_DIR "/private/var/vm"
+#define SWAPFILE_PREFIX "swapfile"
+
+/*
+ * These apparently used to be in netinet/tcp_timers.h, but went away in
+ * 10.4.2. Define them here til we find out a way to get the real values.
+ */
+#define TCPTV_MIN       (  1*PR_SLOWHZ)         /* minimum allowable value */
+#define TCPTV_REXMTMAX  ( 64*PR_SLOWHZ)         /* max allowable REXMT value */
+
+/*
+ * Because Mac OS X is built on Mach, it does not provide a BSD-compatible
+ * VM statistics API.
+ */
+#define USE_MACH_HOST_STATISTICS 1
+
+/*
+ * This tells code that manipulates IPv6 that the structures are unified,
+ * i.e., IPv4 and IPv6 use the same structs.
+ * This should eventually be replaced with a configure directive.
+ */
+/* #define USE_UNIFIED_IPV6_STRUCTS 1 */
+#undef STRUCT_in6pcb_HAS_inp_vflag
+
+/*
+ * utility macro used in several darwin specific files
+ */
+#define SNMP_CFRelease(x) do { if (x) { CFRelease(x); x = NULL; } } while(0)
+
+/*
+ * Mac OS X runs on both PPC and Intel hardware,
+ *   which handle udpTable index values differently
+ */
+#include <TargetConditionals.h>
+#ifdef TARGET_RT_LITTLE_ENDIAN
+#define UDP_ADDRESSES_IN_HOST_ORDER 1
+#endif
+
+/*
+ * as of 7/2010, openssl on darwin does not have sha256
+ */
+#define OPENSSL_NO_SHA256 1
+#define OPENSSL_NO_SHA512 1
diff --git a/include/net-snmp/system/darwin11.h b/include/net-snmp/system/darwin11.h
new file mode 100644
index 0000000..24fed93
--- /dev/null
+++ b/include/net-snmp/system/darwin11.h
@@ -0,0 +1,161 @@
+/*
+ * While Darwin 10 (aka, Mac OS X 10.6 Snow Leopard) is "BSD-like", it differs
+ * substantially enough to not warrant pretending it is a BSD flavor.
+ * This first section are the vestigal BSD remnants.
+ */
+/* Portions of this file are subject to the following copyright(s).  See
+ * the Net-SNMP's COPYING file for more details and other copyrights
+ * that may apply:
+ */
+/*
+ * Portions of this file are copyrighted by:
+ * Copyright (C) 2007 Apple, Inc. All rights reserved.
+ * Use is subject to license terms specified in the COPYING file
+ * distributed with the Net-SNMP package.
+ */
+
+/*
+ * BSD systems use a different method of looking up sockaddr_in values 
+ */
+/* #define NEED_KLGETSA 1 */
+
+/*
+ * ARP_Scan_Next needs a 4th ifIndex argument 
+ */
+#define ARP_SCAN_FOUR_ARGUMENTS 1
+
+#define CHECK_RT_FLAGS 1
+
+/*
+ * this is not good enough before freebsd3! 
+ */
+/* #undef HAVE_NET_IF_MIB_H */
+
+/*
+ * This section adds the relevant definitions from generic.h
+ * (a file we don't include here)
+ */
+
+/*
+ * udp_inpcb list symbol, e.g. for mibII/udpTable.c
+ */
+#define INP_NEXT_SYMBOL inp_next
+
+/*
+ * This section defines Mac OS X 10.5 (and later) specific additions.
+ */
+#define darwin 11
+#ifndef darwin11
+#   define darwin11 darwin
+#endif
+
+/*
+ * Mac OS X should only use the modern API and definitions.
+ */
+#ifndef NETSNMP_NO_LEGACY_DEFINITIONS
+#define NETSNMP_NO_LEGACY_DEFINITIONS 1
+#endif
+
+/*
+ * looks like the IFTable stuff works better than the mibII versions
+ */
+ 
+#define NETSNMP_INCLUDE_IFTABLE_REWRITES
+
+/*
+ * use new host resources files as well
+ */
+#define NETSNMP_INCLUDE_HRSWINST_REWRITES
+#define NETSNMP_INCLUDE_HRSWRUN_REWRITES
+#undef NETSNMP_INCLUDE_HRSWRUN_WRITE_SUPPORT
+#define NETSNMP_CAN_GET_DISK_LABEL 1
+
+/*
+ * Enabling this restricts the compiler to mostly public APIs.
+ */
+#ifndef __APPLE_API_STRICT_CONFORMANCE
+#define __APPLE_API_STRICT_CONFORMANCE 1
+#endif
+#ifndef __APPLE_API_UNSTABLE
+#define __APPLE_API_UNSTABLE 1
+#endif
+
+/*
+ * Darwin's tools are capable of building multiple architectures in one pass.
+ * As a result, platform definitions should be deferred until compile time.
+ */
+#ifdef BYTE_ORDER
+# undef WORDS_BIGENDIAN
+# if BYTE_ORDER == BIG_ENDIAN
+#  define WORDS_BIGENDIAN 1
+# endif
+#endif
+
+/*
+ * Darwin's tools are capable of building multiple architectures in one pass.
+ * As a result, platform definitions should be deferred until compile time.
+ */
+#ifdef BYTE_ORDER
+# undef WORDS_BIGENDIAN
+# if BYTE_ORDER == BIG_ENDIAN
+#  define WORDS_BIGENDIAN 1
+# endif
+#endif
+
+/*
+ * Although Darwin does have a kvm.h file, kvm_openfiles etc. always
+ * return null because /dev/kmem was removed completely in OS X 10.5.
+ */
+#undef HAVE_KVM_H
+#undef HAVE_KVM_GETPROCS
+#undef HAVE_KVM_OPENFILES
+
+/*
+ * Although Darwin does have an fstab.h file, getfsfile etc. always return null.
+ * At least, as of 5.3.
+ */
+#undef HAVE_FSTAB_H
+
+#define SWAPFILE_DIR "/private/var/vm"
+#define SWAPFILE_PREFIX "swapfile"
+
+/*
+ * These apparently used to be in netinet/tcp_timers.h, but went away in
+ * 10.4.2. Define them here til we find out a way to get the real values.
+ */
+#define TCPTV_MIN       (  1*PR_SLOWHZ)         /* minimum allowable value */
+#define TCPTV_REXMTMAX  ( 64*PR_SLOWHZ)         /* max allowable REXMT value */
+
+/*
+ * Because Mac OS X is built on Mach, it does not provide a BSD-compatible
+ * VM statistics API.
+ */
+#define USE_MACH_HOST_STATISTICS 1
+
+/*
+ * This tells code that manipulates IPv6 that the structures are unified,
+ * i.e., IPv4 and IPv6 use the same structs.
+ * This should eventually be replaced with a configure directive.
+ */
+/* #define USE_UNIFIED_IPV6_STRUCTS 1 */
+#undef STRUCT_in6pcb_HAS_inp_vflag
+
+/*
+ * utility macro used in several darwin specific files
+ */
+#define SNMP_CFRelease(x) do { if (x) { CFRelease(x); x = NULL; } } while(0)
+
+/*
+ * Mac OS X runs on both PPC and Intel hardware,
+ *   which handle udpTable index values differently
+ */
+#include <TargetConditionals.h>
+#ifdef TARGET_RT_LITTLE_ENDIAN
+#define UDP_ADDRESSES_IN_HOST_ORDER 1
+#endif
+
+/*
+ * as of 7/2010, openssl on darwin does not have sha256
+ */
+#define OPENSSL_NO_SHA256 1
+#define OPENSSL_NO_SHA512 1
diff --git a/include/net-snmp/system/darwin12.h b/include/net-snmp/system/darwin12.h
new file mode 100644
index 0000000..fd66147
--- /dev/null
+++ b/include/net-snmp/system/darwin12.h
@@ -0,0 +1,161 @@
+/*
+ * While Darwin 10 (aka, Mac OS X 10.6 Snow Leopard) is "BSD-like", it differs
+ * substantially enough to not warrant pretending it is a BSD flavor.
+ * This first section are the vestigal BSD remnants.
+ */
+/* Portions of this file are subject to the following copyright(s).  See
+ * the Net-SNMP's COPYING file for more details and other copyrights
+ * that may apply:
+ */
+/*
+ * Portions of this file are copyrighted by:
+ * Copyright (C) 2007 Apple, Inc. All rights reserved.
+ * Use is subject to license terms specified in the COPYING file
+ * distributed with the Net-SNMP package.
+ */
+
+/*
+ * BSD systems use a different method of looking up sockaddr_in values 
+ */
+/* #define NEED_KLGETSA 1 */
+
+/*
+ * ARP_Scan_Next needs a 4th ifIndex argument 
+ */
+#define ARP_SCAN_FOUR_ARGUMENTS 1
+
+#define CHECK_RT_FLAGS 1
+
+/*
+ * this is not good enough before freebsd3! 
+ */
+/* #undef HAVE_NET_IF_MIB_H */
+
+/*
+ * This section adds the relevant definitions from generic.h
+ * (a file we don't include here)
+ */
+
+/*
+ * udp_inpcb list symbol, e.g. for mibII/udpTable.c
+ */
+#define INP_NEXT_SYMBOL inp_next
+
+/*
+ * This section defines Mac OS X 10.5 (and later) specific additions.
+ */
+#define darwin 12
+#ifndef darwin12
+#   define darwin12 darwin
+#endif
+
+/*
+ * Mac OS X should only use the modern API and definitions.
+ */
+#ifndef NETSNMP_NO_LEGACY_DEFINITIONS
+#define NETSNMP_NO_LEGACY_DEFINITIONS 1
+#endif
+
+/*
+ * looks like the IFTable stuff works better than the mibII versions
+ */
+ 
+#define NETSNMP_INCLUDE_IFTABLE_REWRITES
+
+/*
+ * use new host resources files as well
+ */
+#define NETSNMP_INCLUDE_HRSWINST_REWRITES
+#define NETSNMP_INCLUDE_HRSWRUN_REWRITES
+#undef NETSNMP_INCLUDE_HRSWRUN_WRITE_SUPPORT
+#define NETSNMP_CAN_GET_DISK_LABEL 1
+
+/*
+ * Enabling this restricts the compiler to mostly public APIs.
+ */
+#ifndef __APPLE_API_STRICT_CONFORMANCE
+#define __APPLE_API_STRICT_CONFORMANCE 1
+#endif
+#ifndef __APPLE_API_UNSTABLE
+#define __APPLE_API_UNSTABLE 1
+#endif
+
+/*
+ * Darwin's tools are capable of building multiple architectures in one pass.
+ * As a result, platform definitions should be deferred until compile time.
+ */
+#ifdef BYTE_ORDER
+# undef WORDS_BIGENDIAN
+# if BYTE_ORDER == BIG_ENDIAN
+#  define WORDS_BIGENDIAN 1
+# endif
+#endif
+
+/*
+ * Darwin's tools are capable of building multiple architectures in one pass.
+ * As a result, platform definitions should be deferred until compile time.
+ */
+#ifdef BYTE_ORDER
+# undef WORDS_BIGENDIAN
+# if BYTE_ORDER == BIG_ENDIAN
+#  define WORDS_BIGENDIAN 1
+# endif
+#endif
+
+/*
+ * Although Darwin does have a kvm.h file, kvm_openfiles etc. always
+ * return null because /dev/kmem was removed completely in OS X 10.5.
+ */
+#undef HAVE_KVM_H
+#undef HAVE_KVM_GETPROCS
+#undef HAVE_KVM_OPENFILES
+
+/*
+ * Although Darwin does have an fstab.h file, getfsfile etc. always return null.
+ * At least, as of 5.3.
+ */
+#undef HAVE_FSTAB_H
+
+#define SWAPFILE_DIR "/private/var/vm"
+#define SWAPFILE_PREFIX "swapfile"
+
+/*
+ * These apparently used to be in netinet/tcp_timers.h, but went away in
+ * 10.4.2. Define them here til we find out a way to get the real values.
+ */
+#define TCPTV_MIN       (  1*PR_SLOWHZ)         /* minimum allowable value */
+#define TCPTV_REXMTMAX  ( 64*PR_SLOWHZ)         /* max allowable REXMT value */
+
+/*
+ * Because Mac OS X is built on Mach, it does not provide a BSD-compatible
+ * VM statistics API.
+ */
+#define USE_MACH_HOST_STATISTICS 1
+
+/*
+ * This tells code that manipulates IPv6 that the structures are unified,
+ * i.e., IPv4 and IPv6 use the same structs.
+ * This should eventually be replaced with a configure directive.
+ */
+/* #define USE_UNIFIED_IPV6_STRUCTS 1 */
+#undef STRUCT_in6pcb_HAS_inp_vflag
+
+/*
+ * utility macro used in several darwin specific files
+ */
+#define SNMP_CFRelease(x) do { if (x) { CFRelease(x); x = NULL; } } while(0)
+
+/*
+ * Mac OS X runs on both PPC and Intel hardware,
+ *   which handle udpTable index values differently
+ */
+#include <TargetConditionals.h>
+#ifdef TARGET_RT_LITTLE_ENDIAN
+#define UDP_ADDRESSES_IN_HOST_ORDER 1
+#endif
+
+/*
+ * as of 7/2010, openssl on darwin does not have sha256
+ */
+#define OPENSSL_NO_SHA256 1
+#define OPENSSL_NO_SHA512 1
diff --git a/include/net-snmp/system/darwin7.h b/include/net-snmp/system/darwin7.h
index b1553de..f8f521e 100644
--- a/include/net-snmp/system/darwin7.h
+++ b/include/net-snmp/system/darwin7.h
@@ -12,3 +12,9 @@
 
 #define SWAPFILE_DIR "/private/var/vm"
 #define SWAPFILE_PREFIX "swapfile"
+
+/*
+ * as of 7/2010, openssl on darwin does not have sha256
+ */
+#define OPENSSL_NO_SHA256 1
+#define OPENSSL_NO_SHA512 1
diff --git a/include/net-snmp/system/darwin8.h b/include/net-snmp/system/darwin8.h
index 174fa78..c38283e 100644
--- a/include/net-snmp/system/darwin8.h
+++ b/include/net-snmp/system/darwin8.h
@@ -99,3 +99,9 @@
  */
 /* #define USE_UNIFIED_IPV6_STRUCTS 1 */
 #undef STRUCT_in6pcb_HAS_inp_vflag
+
+/*
+ * as of 7/2010, openssl on darwin does not have sha256
+ */
+#define OPENSSL_NO_SHA256 1
+#define OPENSSL_NO_SHA512 1
diff --git a/include/net-snmp/system/darwin9.h b/include/net-snmp/system/darwin9.h
index b556d90..bcbd067 100644
--- a/include/net-snmp/system/darwin9.h
+++ b/include/net-snmp/system/darwin9.h
@@ -153,3 +153,9 @@
 #ifdef TARGET_RT_LITTLE_ENDIAN
 #define UDP_ADDRESSES_IN_HOST_ORDER 1
 #endif
+
+/*
+ * as of 7/2010, openssl on darwin does not have sha256
+ */
+#define OPENSSL_NO_SHA256 1
+#define OPENSSL_NO_SHA512 1
diff --git a/include/net-snmp/system/mingw32.h b/include/net-snmp/system/mingw32.h
index 29d09a4..68a3a76 100644
--- a/include/net-snmp/system/mingw32.h
+++ b/include/net-snmp/system/mingw32.h
@@ -16,6 +16,15 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
  
  */
+
+/*
+ * Make the getnameinfo() function available.
+ * Note: according to MSDN getnameinfo() is available in ws2_32 on Windows 2000
+ * and above. MinGW only makes getnameinfo() visible when setting _WIN32_WINNT
+ * to 0x0501 (Windows XP) or higher, which is a bug in the MinGW 5.1.6 headers.
+ */
+#define _WIN32_WINNT 0x0501
+
 #include <net-snmp/system/generic.h>
 
 #ifdef HAVE_STDINT_H
@@ -30,10 +39,7 @@
 #undef HAVE_SIGNAL
 
 /* Define if you have the gettimeofday function.  */
-/* Only when compiling Perl module                */
-#ifdef MINGW_PERL
 #define HAVE_GETTIMEOFDAY 1
-#endif
 
 /* Define if you have the gethostbyname function.  */
 #define HAVE_GETHOSTBYNAME 1
@@ -44,6 +50,9 @@
 /* Define if you have raise() instead of alarm() */
 #define HAVE_RAISE 1
 
+/* Define if you have the socket function.  */
+#define HAVE_SOCKET 1
+
 /* Define to 1 if you have the `execv' function. */
 #undef HAVE_EXECV
 
@@ -72,15 +81,13 @@
 #define	F_SETFL		4
 #define	O_NONBLOCK	0x4000  /* non blocking I/O (POSIX style) */
 
+#ifndef HAVE_STRUCT_TIMEZONE_TZ_DSTTIME
 /*
- * I dunno why. It's just not there. Define struct timezone.
- * If other systems need this it could be moved to system.h
- * and the proper checking done at config time. Right now I have
- * just put it here to keep the MinGW out of the main tree as much
- * as possible.
+ * Older MinGW versions do not have struct timezone, so define it here.
  */
 struct timezone {
 	int tz_minuteswest;
 	int tz_dsttime;
 };
+#endif
 
diff --git a/include/net-snmp/system/netbsd.h b/include/net-snmp/system/netbsd.h
index c67260d..1f22a44 100644
--- a/include/net-snmp/system/netbsd.h
+++ b/include/net-snmp/system/netbsd.h
@@ -34,8 +34,36 @@
 
 #define UDP_ADDRESSES_IN_HOST_ORDER 1
 
+#ifdef netbsdelf6
+#define netbsd6
+#define netbsdelf5
+#endif
+#ifdef netbsdelf5
+#define netbsd5
+#define netbsdelf4
+#endif
+#ifdef netbsdelf4
+#define netbsd4
+#define netbsdelf3
+#endif
+#ifdef netbsdelf3
+#define netbsd3
+#endif
+
+#if defined(netbsd6) && !defined(netbsd5)
+#define netbsd5 netbsd5
+#endif
+#if defined(netbsd5) && !defined(netbsd4)
+#define netbsd4 netbsd4
+#endif
+#if defined(netbsd4) && !defined(netbsd3)
+#define netbsd3 netbsd3
+#endif
+#if defined(netbsd3) && !defined(netbsd2)
+#define netbsd2 netbsd2
+#endif
 #ifndef netbsd1
-# define netbsd1 netbsd1
+#define netbsd1 netbsd1
 #endif
 
 #if __NetBSD_Version__ >= 499005800
diff --git a/include/net-snmp/system/nto-qnx6.h b/include/net-snmp/system/nto-qnx6.h
new file mode 100644
index 0000000..1965111
--- /dev/null
+++ b/include/net-snmp/system/nto-qnx6.h
@@ -0,0 +1,35 @@
+#include "bsd.h"
+
+#include <sys/param.h>
+
+#define PCB_TABLE 1
+#undef TCP_SYMBOL
+#define TCP_SYMBOL "tcbtable"
+#undef TCP_TTL_SYMBOL
+#define TCP_TTL_SYMBOL "ip_defttl"
+#undef UDB_SYMBOL
+#define UDB_SYMBOL "udbtable"
+#undef NPROC_SYMBOL
+#undef PROC_SYMBOL
+
+#define MBPOOL_SYMBOL	"mbpool"
+#define MCLPOOL_SYMBOL	"mclpool"
+
+/*
+ * inp_next symbol 
+ */
+#undef INP_NEXT_SYMBOL
+#define INP_NEXT_SYMBOL inp_queue.cqe_next
+#undef INP_PREV_SYMBOL
+#define INP_PREV_SYMBOL inp_queue.cqe_prev
+#define HAVE_INPCBTABLE 1
+
+#undef IFADDR_SYMBOL
+#define IFADDR_SYMBOL "in_ifaddrhead"
+
+#define UTMP_FILE _PATH_UTMP
+
+#define UDP_ADDRESSES_IN_HOST_ORDER 1
+
+/* define the extra mib modules that are supported */
+/* #define NETSNMP_INCLUDE_HOST_RESOURCES */
diff --git a/include/net-snmp/types.h b/include/net-snmp/types.h
index 0a654e1..5695f8b 100644
--- a/include/net-snmp/types.h
+++ b/include/net-snmp/types.h
@@ -15,11 +15,7 @@
                          * For 'timeval' 
                          */
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -62,22 +58,12 @@
 #include <netinet/in.h>		/* For definition of in_addr_t */
 #endif
 
+#include <net-snmp/library/oid.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#ifndef MAX_SUBID               /* temporary - duplicate definition protection */
-#ifndef EIGHTBIT_SUBIDS
-typedef u_long  oid;
-#define MAX_SUBID   0xFFFFFFFFUL
-#define NETSNMP_PRIo "l"
-#else
-typedef u_char  oid;
-#define MAX_SUBID   0xFF
-#define NETSNMP_PRIo ""
-#endif
-#endif
-
 #ifndef HAVE_SOCKLEN_T
 typedef u_int socklen_t;
 #endif
@@ -281,6 +267,9 @@
                                           netsnmp_pdu *, void *);
 typedef int     (*netsnmp_callback) (int, netsnmp_session *, int,
                                           netsnmp_pdu *, void *);
+
+struct netsnmp_container_s;
+
 /** @struct snmp_session
  * The snmp session structure.
  */
@@ -400,6 +389,11 @@
     void           *securityInfo;
 
     /**
+     * transport specific configuration 
+     */
+   struct netsnmp_container_s *transport_configuration;
+
+    /**
      * use as you want data 
      *
      *     used by 'SNMP_FLAGS_RESP_CALLBACK' handling in the agent
diff --git a/include/net-snmp/varbind_api.h b/include/net-snmp/varbind_api.h
index 924977e..7f48503 100644
--- a/include/net-snmp/varbind_api.h
+++ b/include/net-snmp/varbind_api.h
@@ -12,54 +12,72 @@
 #endif
 
     /* Creation */
+    NETSNMP_IMPORT
     netsnmp_variable_list *
        snmp_pdu_add_variable(netsnmp_pdu *pdu,
                                  const oid * name, size_t name_length,
                                  u_char type,
                                  const void * value, size_t len);
+    NETSNMP_IMPORT
     netsnmp_variable_list *
        snmp_varlist_add_variable(netsnmp_variable_list ** varlist,
                                  const oid * name, size_t name_length,
                                  u_char type,
                                  const void * value, size_t len);
+    NETSNMP_IMPORT
     netsnmp_variable_list *
        snmp_add_null_var(netsnmp_pdu *pdu,
                                  const oid * name, size_t name_length);
+    NETSNMP_IMPORT
     netsnmp_variable_list *
        snmp_clone_varbind(netsnmp_variable_list * varlist);
 
     /* Setting Values */
-    int             snmp_set_var_value(netsnmp_variable_list * var,
-                                       const void * value, size_t len);
+    NETSNMP_IMPORT
     int             snmp_set_var_objid(netsnmp_variable_list * var,
                                        const oid * name, size_t name_length);
+    NETSNMP_IMPORT
+    int             snmp_set_var_value(netsnmp_variable_list * var,
+                                       const void * value, size_t len);
+    NETSNMP_IMPORT
     int             snmp_set_var_typed_value(netsnmp_variable_list * var,
                                        u_char type,
                                        const void * value, size_t len);
+    NETSNMP_IMPORT
     int             snmp_set_var_typed_integer(netsnmp_variable_list * var,
                                        u_char type, long val);
 
      /* Output */
+    NETSNMP_IMPORT
     void            print_variable(const oid * objid, size_t objidlen,
                                    const netsnmp_variable_list * variable);
+    NETSNMP_IMPORT
     void           fprint_variable(FILE * fp,
                                    const oid * objid, size_t objidlen,
                                    const netsnmp_variable_list * variable);
+    NETSNMP_IMPORT
     int           snprint_variable(char *buf, size_t buf_len,
                                    const oid * objid, size_t objidlen,
                                    const netsnmp_variable_list * variable);
 
+    NETSNMP_IMPORT
     void             print_value(const oid * objid, size_t objidlen,
                                  const netsnmp_variable_list * variable);
+    NETSNMP_IMPORT
     void            fprint_value(FILE * fp,
                                  const oid * objid, size_t objidlen,
                                  const netsnmp_variable_list * variable);
+    NETSNMP_IMPORT
     int            snprint_value(char *buf, size_t buf_len,
                                  const oid * objid, size_t objidlen,
                                  const netsnmp_variable_list * variable);
 
+           /* See mib_api.h for {,f,sn}print_objid */
+
     /* Deletion */
+    NETSNMP_IMPORT
     void            snmp_free_var(    netsnmp_variable_list *var);     /* frees just this one */
+    NETSNMP_IMPORT
     void            snmp_free_varbind(netsnmp_variable_list *varlist); /* frees all in list */
 
 #ifdef __cplusplus
@@ -67,13 +85,18 @@
 #endif
 
     /*
-     *  For the initial release, this will just refer to the
-     *  relevant UCD header files.
-     *    In due course, the routines relevant to this area of the
-     *  API will be identified, and listed here directly.
+     *    Having extracted the main ("public API") calls relevant
+     *  to this area of the Net-SNMP project, the next step is to
+     *  identify the related "public internal API" routines.
      *
-     *  But for the time being, this header file is a placeholder,
-     *  to allow application writers to adopt the new header file names.
+     *    In due course, these should probably be gathered
+     *  together into a companion 'library/varbind_api.h' header file.
+     *  [Or some suitable name]
+     *
+     *    But for the time being, the expectation is that the
+     *  traditional headers that provided the above definitions
+     *  will probably also cover the relevant internal API calls.
+     *  Hence they are listed here:
      */
 #include <net-snmp/library/snmp_api.h>
 #include <net-snmp/library/snmp_client.h>
diff --git a/include/net-snmp/version.h b/include/net-snmp/version.h
index 17b2e45..1c36ffe 100644
--- a/include/net-snmp/version.h
+++ b/include/net-snmp/version.h
@@ -9,6 +9,7 @@
     extern const char *NetSnmpVersionInfo;
 #endif
 
+    NETSNMP_IMPORT
     const char     *netsnmp_get_version(void);
 
 #ifdef __cplusplus
diff --git a/local/Makefile.in b/local/Makefile.in
index 6d5cbe0..df81db0 100644
--- a/local/Makefile.in
+++ b/local/Makefile.in
@@ -16,10 +16,11 @@
 #
 SNMPCONFPATH=@SNMPCONFPATH@
 PERSISTENT_DIRECTORY=@PERSISTENT_DIRECTORY@
-PERLSCRIPTS=snmpcheck tkmib mib2c fixproc ipf-mod.pl snmpconf traptoemail
+PERLSCRIPTS=snmpcheck tkmib mib2c fixproc ipf-mod.pl snmpconf traptoemail snmp-bridge-mib net-snmp-cert
 SHELLSCRIPTS=mib2c-update
 SCRIPTSMADEFORPERL=snmpcheck.made tkmib.made mib2c.made fixproc.made \
-	ipf-mod.pl.made snmpconf.made traptoemail.made
+	ipf-mod.pl.made snmpconf.made traptoemail.made snmp-bridge-mib.made \
+	net-snmp-cert.made
 DATASRCS=mib2c.conf mib2c.iterate.conf mib2c.iterate_access.conf \
 	mib2c.create-dataset.conf mib2c.mfd.conf \
 	mib2c.array-user.conf mib2c.column_enums.conf \
@@ -107,6 +108,13 @@
 	  touch mib2c.made; \
         fi
 
+net-snmp-cert.made: $(srcdir)/net-snmp-cert
+	if test "x$(PERL)" != "x" ; then \
+	  $(PERL) -p -e 's%^#!.*/perl.*%#!$(PERL)%;s#/usr/local/share/snmp#$(snmplibdir)#;' ${srcdir}/net-snmp-cert > net-snmp-cert.made; \
+	else \
+	  touch net-snmp-cert.made; \
+        fi
+
 
 ipf-mod.pl.made: $(srcdir)/ipf-mod.pl
 	if test "x$(PERL)" != "x" ; then \
@@ -136,6 +144,13 @@
 	  touch traptoemail.made; \
         fi
 
+snmp-bridge-mib.made: $(srcdir)/snmp-bridge-mib
+	if test "x$(PERL)" != "x" ; then \
+	  $(PERL) -p -e 's%^#!.*/perl.*%#!$(PERL)%' ${srcdir}/snmp-bridge-mib > snmp-bridge-mib.made; \
+	else \
+	  touch snmp-bridge-mib.made; \
+        fi
+
 localinstall: $(SCRIPTSMADEFORPERL)
 	@if test "x$(PERL)" != "x" ; then \
 	  for i in $(PERLSCRIPTS) ; do $(INSTALL) $$i.made $(INSTALL_PREFIX)$(bindir)/$$i ; echo "install:  installed $$i in $(INSTALL_PREFIX)$(bindir)" ; done ; \
diff --git a/local/Version-Munge.pl b/local/Version-Munge.pl
index 249cfec..7f6f29c 100755
--- a/local/Version-Munge.pl
+++ b/local/Version-Munge.pl
@@ -71,7 +71,7 @@
 	     { type => 'configure',
 	       expr => 'AC_INIT\\(\\[Net-SNMP\\], \\[([^\\]]+)\\]',
 	       repl => 'AC_INIT([Net-SNMP], [$VERSION]',
-	       files => [qw(configure.in)],
+	       files => [qw(configure.ac)],
 	       exec => 'autoconf',
 	       exfiles => [qw(configure)],
 	     },
diff --git a/local/certgen-test.pl b/local/certgen-test.pl
new file mode 100644
index 0000000..b335428
--- /dev/null
+++ b/local/certgen-test.pl
@@ -0,0 +1,66 @@
+#!/usr/bin/perl
+
+system("rm -rf /tmp/.snmp1");
+system("rm -rf /tmp/.snmp2");
+
+system("cp net-snmp-cert ~/bin");
+
+$str = "\ngenca (in -C /tmp/.snmp1) : ca-snmp\n\n";
+print("$str");
+die("$str\n") if system("net-snmp-cert genca -I -C /tmp/.snmp1 --cn ca-snmp --email ca\@ca.com --host host.a.b.com  --san DNS:ca.a.b.com --san EMAIL:ca\@ca.com");
+
+print "\nusing -C /tmp/.snmp2 for all following tests\n";
+$str = "\ngenca: ca-snmp\n\n";
+print("$str");
+die("$str\n") if system("net-snmp-cert genca -I -C /tmp/.snmp2 --cn ca-snmp --email ca\@ca.com --host host.a.b.com  --san DNS:ca.a.b.com --san EMAIL:ca\@ca.com");
+
+$str = "\ngenca: ca-snmp-2 (signed w/ ca-snmp)\n\n";
+print("$str");
+die("$str\n") if system("net-snmp-cert genca -I -C /tmp/.snmp2 --with-ca ca-snmp --cn ca-snmp-2 --email ca2\@ca.com --host host2.a.b.com  --san DNS:ca2.a.b.com --san EMAIL:ca2\@ca.com");
+
+$str = "\ngencsr: snmpapp\n\n";
+print("$str");
+die("$str\n") if system("net-snmp-cert gencsr -I -C /tmp/.snmp2 -t snmpapp --cn 'admin' --email admin@net-snmp.org --host admin-host.net-snmp.org  --san EMAIL:a\@b.com --san IP:1.2.3.4 --san DNS:admin.a.b.org");
+
+$str = "\nsigncsr: snmpapp w/ca-snmp\n\n";
+print("$str");
+die("died: $str\n") if system("net-snmp-cert signcsr -I -C /tmp/.snmp2 --with-ca ca-snmp --csr snmpapp  --install");
+
+$str = "\nsigncsr: snmpapp w/ca-snmp-2\n\n";
+print("$str");
+die("$str\n") if system("net-snmp-cert signcsr -I -C /tmp/.snmp2 --with-ca ca-snmp-2 --csr snmpapp --san EMAIL:noinstall\@b.com --san IP:5.6.7.8");
+
+$str = "\ngencert: snmptrapd (self-signed)\n\n";
+print("$str");
+die("$str\n") if system("net-snmp-cert gencert -I -C /tmp/.snmp2 -t snmptrapd --cn 'NOC' --email 'noc\@net-snmp.org' --host noc-host.net-snmp.org  --san DNS:noc.a.b.org --san 'EMAIL:noc\@net-snmp.org'");
+
+$str = "\ngencert: snmpd (signed w/ ca-snmp-2)\n\n";
+print("$str");
+die("$str\n") if system("net-snmp-cert gencert -I -C /tmp/.snmp2 -t snmpd --with-ca ca-snmp-2 --email snmpd\@net-snmp.org --host snmpd-host.net-snmp.org  --san DNS:snmpd.a.b.org --san EMAIL:snmpd\@net-snmp.org");
+
+system("cp net-snmp-cert.conf /tmp/.snmp2");
+
+$str = "\ngenca (in -C /tmp/.snmp2 -i CA-identity)\n\n";
+print("$str");
+die("$str\n") if system("net-snmp-cert genca -I -C /tmp/.snmp2 -i CA-identity");
+
+$str = "\ngencert (in -C /tmp/.snmp2 -i nocadm -t snmp-identity)\n\n";
+print("$str");
+die("$str\n") if system("net-snmp-cert gencert -I -C /tmp/.snmp2 -t snmp-identity -i nocadm --with-ca CA-identity");
+
+
+$str = "\nshow CAs\n\n";
+print("$str");
+die("$str\n") if system("net-snmp-cert -C /tmp/.snmp2 showca --issuer --subject");
+
+$str = "show Certs\n\n";
+print("$str");
+die("$str\n") if system("net-snmp-cert -C /tmp/.snmp2 showcert --issuer --subject");
+
+$str = "show CAs fingerprint\n\n";
+print("$str");
+die("$str\n") if system("net-snmp-cert -C /tmp/.snmp2 showca --fingerprint --brief");
+
+$str = "\nshow Certs fingerprint\n\n";
+print("$str");
+die("$str\n") if system("net-snmp-cert -C /tmp/.snmp2 showcert --fingerprint --brief");
diff --git a/local/mib2c b/local/mib2c
index 5fa5cc9..2016f06 100755
--- a/local/mib2c
+++ b/local/mib2c
@@ -51,6 +51,7 @@
 $quiet=0;
 $strict_unk_token = 0;
 $noindent = 0;
+$nosed = 0;
 $currentline = 0;
 $currentlevel = -1;
 %assignments;
@@ -73,6 +74,7 @@
     print "  -d\t\tdebugging output (don't do it.  trust me.)\n\n";
     print "  -S VAR=VAL\tSet \$VAR variable to \$VAL\n\n";
     print "  -i\t\tDon't run indent on the resulting code\n\n";
+    print "  -s\t\tDon't look for mibNode.sed and run sed on the resulting code\n\n";
     print "  mibNode\tThe name of the top level mib node you want to\n\t\tgenerate code for.  By default, the code will be stored in\n\t\tmibNode.c and mibNode.h (use the -f flag to change this)\n\n";
     1;
 }	
@@ -99,6 +101,8 @@
         $quiet = 1;
       } elsif (/^-i/) {
         $noindent = 1;
+      } elsif (/^-s/) {
+        $nosed = 1;
       } elsif (/^-h/) {
         usage && exit(1);
       } elsif (/^-f/) {
@@ -231,6 +235,15 @@
 process("-balanced");
 $fh->close;
 
+if (-f "$outputName.sed" && !$nosed) {
+  foreach $i (keys(%written)) {
+    next if ($i eq "-");
+    next if (!($i =~ /\.[ch]$/));
+    print STDERR "running sed --in-place=.orig --file=$outputName.sed $i\n" if (!$quiet);
+    system("sed --in-place=.orig --file=$outputName.sed $i");
+  }
+}
+
 if (!$noindent) {
   foreach $i (keys(%written)) {
     next if ($i eq "-");
@@ -290,9 +303,11 @@
 #   $var.creatable     -- 1 if a column object can be created as part of a new row, 0 if not
 #   $var.noaccess      -- 1 if not-accessible, 0 if not
 #   $var.accessible    -- 1 if accessible, 0 if not
+#   $var.storagetype   -- 1 if an object is a StorageType object, 0 if not
 #   $var.rowstatus     -- 1 if an object is a RowStatus object, 0 if not
-#     'settable', 'creatable' and 'rowstatus' can also be used with table variables
-#     to indicate whether it contains writable, creatable or RowStatus column objects
+#     'settable', 'creatable', 'lastchange', 'storagetype' and 'rowstatus' can
+#     also be used with table variables to indicate whether it contains
+#     writable, creatable, LastChange, StorageType or RowStatus column objects
 #
 #   $var.hasdefval     -- returns 1 if var has a DEFVAL clause
 #   $var.defval        -- node's DEFVAL
@@ -347,6 +362,7 @@
     $it =~ s/\$(\w+)\.(enums)/(%{$SNMP::MIB{$vars{$1}}{'enums'}} == 0) ? 0 : 1/eg;
     $it =~ s/\$(\w+)\.(enumrange)/%{$SNMP::MIB{$vars{$1}}{'enums'}}/eg;
     $it =~ s/\$(\w+)\.(rowstatus)/(($SNMP::MIB{$vars{$1}}{syntax} =~ \/(RowStatus)\/)?1:0)/eg;
+    $it =~ s/\$(\w+)\.(storagetype)/(($SNMP::MIB{$vars{$1}}{syntax} =~ \/(StorageType)\/)?1:0)/eg;
     if ( $it =~ /\$(\w+)\.(\w+)/ ) {
       warn "Possible unknown variable attribute \$$1.$2 at $currentfile:$currentline\n";
     }
diff --git a/local/mib2c-conf.d/mfd-interface.m2c b/local/mib2c-conf.d/mfd-interface.m2c
index a7d1892..42351c9 100644
--- a/local/mib2c-conf.d/mfd-interface.m2c
+++ b/local/mib2c-conf.d/mfd-interface.m2c
@@ -252,7 +252,7 @@
                              0);
 
     /*  Define the minimum and maximum accessible columns.  This
-        optimizes retrival. */
+        optimizes retrieval. */
     tbl_info->min_column = $context.uc_MIN_COL;
     tbl_info->max_column = $context.uc_MAX_COL;
 
@@ -605,7 +605,7 @@
                              netsnmp_agent_request_info *agtreq_info,
                              netsnmp_request_info *requests)
 {
-    ${context}_rowreq_ctx *rowreq_ctx =
+    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
                   netsnmp_container_table_row_extract(requests);
     int rc, packet_rc;
 
@@ -779,7 +779,7 @@
                          netsnmp_request_info *requests)
 {
     int                    rc = SNMP_ERR_NOERROR;
-    ${context}_rowreq_ctx *rowreq_ctx =
+    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
                   netsnmp_container_table_row_extract(requests);
     
     DEBUGMSGTL(("internal:${context}:_mfd_${context}_object_lookup","called\n"));
@@ -944,7 +944,7 @@
                          netsnmp_agent_request_info *agtreq_info,
                          netsnmp_request_info *requests)
 {
-    ${context}_rowreq_ctx *rowreq_ctx =
+    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
                   netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info * tri;
     u_char                     * old_string;
@@ -1100,7 +1100,7 @@
                          netsnmp_agent_request_info *agtreq_info,
                          netsnmp_request_info *requests)
 {
-    ${context}_rowreq_ctx *rowreq_ctx =
+    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
                   netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info * tri;
     int                          rc;
@@ -1147,7 +1147,7 @@
                          netsnmp_request_info *requests)
 {
     int                    rc;
-    ${context}_rowreq_ctx *rowreq_ctx =
+    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
                   netsnmp_container_table_row_extract(requests);
     DEBUGMSGTL(("internal:${context}:_mfd_${context}_check_dependencies","called\n"));
 
@@ -1217,7 +1217,7 @@
                          netsnmp_request_info *requests)
 {
     int                    rc;
-    ${context}_rowreq_ctx *rowreq_ctx =
+    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
                   netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:${context}:_mfd_${context}_undo_setup","called\n"));
@@ -1281,7 +1281,7 @@
                              netsnmp_agent_request_info *agtreq_info,
                              netsnmp_request_info *requests)
 {
-    ${context}_rowreq_ctx *rowreq_ctx =
+    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
                   netsnmp_container_table_row_extract(requests);
     int rc;
 
@@ -1369,7 +1369,7 @@
                          netsnmp_agent_request_info *agtreq_info,
                          netsnmp_request_info *requests)
 {
-    ${context}_rowreq_ctx *rowreq_ctx =
+    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
                   netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info * tri;
     int                          rc = SNMP_ERR_NOERROR;
@@ -1415,7 +1415,7 @@
                          netsnmp_request_info *requests)
 {
     int                    rc;
-    ${context}_rowreq_ctx *rowreq_ctx =
+    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
                   netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:${context}:_mfd_${context}_commit","called\n"));
@@ -1448,7 +1448,7 @@
                          netsnmp_request_info *requests)
 {
     int                    rc;
-    ${context}_rowreq_ctx *rowreq_ctx =
+    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
                   netsnmp_container_table_row_extract(requests);
 
     DEBUGMSGTL(("internal:${context}:_mfd_${context}_undo_commit","called\n"));
@@ -1529,7 +1529,7 @@
                          netsnmp_request_info *requests)
 {
     int                    rc;
-    ${context}_rowreq_ctx *rowreq_ctx =
+    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
                   netsnmp_container_table_row_extract(requests);
     netsnmp_table_request_info * tri;
 
@@ -1586,7 +1586,7 @@
 @   if $m2c_irreversible_commit == 1@
     int                    rc;
 @   end@
-    ${context}_rowreq_ctx *rowreq_ctx =
+    ${context}_rowreq_ctx *rowreq_ctx = (${context}_rowreq_ctx*)
                   netsnmp_container_table_row_extract(requests);
     
     DEBUGMSGTL(("internal:${context}:_mfd_${context}_irreversible:commit","called\n"));
@@ -1667,7 +1667,7 @@
     if (MFD_SUCCESS != rc)
         return NULL;
 
-    rowreq_ctx = CONTAINER_FIND(${context}_if_ctx.container, &oid_idx);
+    rowreq_ctx = (${context}_rowreq_ctx*)CONTAINER_FIND(${context}_if_ctx.container, &oid_idx);
 
     return rowreq_ctx;
 }
diff --git a/local/mib2c-conf.d/mfd-persistence.m2i b/local/mib2c-conf.d/mfd-persistence.m2i
index c9b152f..7796cf2 100644
--- a/local/mib2c-conf.d/mfd-persistence.m2i
+++ b/local/mib2c-conf.d/mfd-persistence.m2i
@@ -162,7 +162,7 @@
      * be treated a little differently. Specifically, you will need
      * (4 * len) + 4 [3 ASCII chars per byte + 1 for ., + 4 for len].
      *
-     * 3) Also, remeber to add space for the identifier and seperator
+     * 3) Also, remember to add space for the identifier and separator
      * characters (for example, each column is prefixed by the
      * column number and a semicolon. To allow for the maximum
      * column values, 12 bytes [11 for oid + 1 for ':'] per
diff --git a/local/mib2c-update b/local/mib2c-update
index 223ec63..42017e5 100755
--- a/local/mib2c-update
+++ b/local/mib2c-update
@@ -39,7 +39,7 @@
 
 error()
 {
-    echo "ERROR: $@" >2
+    echo "ERROR: $@" >&2
 }
 
 die()
@@ -308,8 +308,16 @@
     . $HOME/.mib2c-updaterc
 fi
 
-if [ -f .mib2c-updaterc ]; then
-    . .mib2c-updaterc
+if [ -f $PWD/.mib2c-updaterc ]; then
+    . $PWD/.mib2c-updaterc
+else
+   echo "creating example .mib2c-udpaterc. edit as needed and re-run "
+   echo "mib2c-update."
+   
+   echo "UPDATE_OID=ipAddressTable" >> .mib2c-updaterc
+   echo "UPDATE_CONF=mib2c.mfd.conf" >> .mib2c-updaterc
+   echo "UPDATE_MIB2C_OPTS=" >> .mib2c-updaterc
+   echo "#UPDATE_NOPROBE=1" >> .mib2c-updaterc
 fi
 
 check_setup
diff --git a/local/mib2c.access_functions.conf b/local/mib2c.access_functions.conf
index c209b29..9d54f14 100644
--- a/local/mib2c.access_functions.conf
+++ b/local/mib2c.access_functions.conf
@@ -116,7 +116,7 @@
 
 /** Create a data_context for non-existent rows that SETs are performed on.
  *  return a void * pointer which will be passed to subsequent get_XXX
- *  and set_XXX functions for data retrival and modification during
+ *  and set_XXX functions for data retrieval and modification during
  *  this SET request.
  *
  *  The indexes are encoded (in order) into the index_data pointer,
diff --git a/local/mib2c.conf b/local/mib2c.conf
index 329e71e..c71968c 100644
--- a/local/mib2c.conf
+++ b/local/mib2c.conf
@@ -5,12 +5,12 @@
 You requested mib2c to be run on the following part of the MIB tree:
   OID:                       	    $name
   numeric translation:       	    $name.objectID
-@eval $num = count_scalars@
-  number of scalars within:         $num
-@eval $num = count_tables@
-  number of tables within:          $num
-@eval $num = count_notifications@
-  number of notifications within:   $num
+@eval $numS = count_scalars@
+  number of scalars within:         $numS
+@eval $numT = count_tables@
+  number of tables within:          $numT
+@eval $numN = count_notifications@
+  number of notifications within:   $numN
 
 First, do you want to generate code that is compatible with the
 ucd-snmp 4.X line of code, or code for the newer Net-SNMP 5.X code
@@ -31,7 +31,32 @@
 @elsif $ans != 2@
 Invalid answer.
 @else@
-@if count_scalars() > 0@
+  @if $numS > 0 && $numT > 0@
+**********************************************************************
+		 MIXED MIB TEMPLATE
+**********************************************************************
+The portion of the MIB tree that you have selected contains both
+scalar objects and MIB tables.  The automatically generated Net-SNMP
+style code cannot handle both of these simultaneously (though you
+could generate the two files separately, and then merge the two).
+
+Which code do you want to generate:
+
+  1) Scalar objects
+  2) MIB tables
+
+    @prompt $ans Select your choice : @
+    @if $ans == 1 @
+      @eval $numT = 0@
+    @elsif $ans == 2@
+      @eval $numS = 0@
+    @else@
+Invalid answer
+      @eval $numS = 0@
+      @eval $numT = 0@
+    @end@
+  @end@
+@if $numS > 0@
 
 **********************************************************************
 		 GENERATING CODE FOR SCALAR OBJECTS:
@@ -63,191 +88,190 @@
   @end@
 @end@ # scalars
 
-@if count_tables() > 0@
+@if $numT > 0@
 **********************************************************************
 		     GENERATING CODE FOR TABLES:
 **********************************************************************
 
-  Your tables will likely either fall into one of two categories:
+  The Net-SNMP agent API is extremely extensive and, in fact, lets
+  each programmer write agent code according to the style that works
+  best for them based on their experience and their preference.  We're
+  going to ask you a serious of questions that will help mib2c
+  generate code that best suits *your* needs, as the programmer that
+  will be responsible for taking the code and further refining it.  If
+  you don't like how the results look, you are always welcome to
+  re-run mib2c and select a different set of options.
 
-    1) tables where the list of rows is external to the agent.
-       This is suited to MIBs which monitor or manipulate external
-       data (perhaps extracted from the operating system kernel
-       or other system interfaces), and where rows are typically
-       created or destroyed independently of the SNMP agent.
+    There are essentially two tasks involved in processing requests
+  for OIDs within a MIB table - firstly identifying the relevant row
+  of the table for a given request, and then returning (or updating)
+  the appropriate column value within that row.  Many MIB tables model
+  the state of some external system (the kernel, a device, processes,
+  etc), and the MIB implementation module (the code we're about to
+  produce a template for) acts as an interface between this underlying
+  system and the SNMP side.  Other tables hold data internally that is
+  only available within the agent itself, or at least the master copy
+  of the data is held within the agent.
 
-    2) tables where the list of rows is held by the agent itself.
-       This is particularly suited to tables that are primarily
-       manipulated via SNMP, or where the rows of the table are
-       relatively static.
+    There are a number of different code templates that can be used to
+  implement MIB tables, using various approaches to these two tasks.
 
-    3) Do not generate code for the tables.
+  There are three basic approaches to identifying the relevant row:
 
-  @prompt $ans Select the option that best fits you: @
-  @if $ans != 3@
-    @if $ans == 1@
+    1) Pass the request through to the table-specific code, and
+       identify the requested row there (for both GET and GETNEXT
+       requests).  This is typically the most efficient way to get
+       up-to-date information, but relies on suitable
+       (programmer-provided) code within the MIB handler.
+       Most importantly, you should be an expert to use this choice.
 
-      This style of table tends to use the iterator helper to instrument
-      the external data, so it can be represented by an SNMP table.
-      The main characteristic of this helper is the use of a pair
-      of "iteration hook" routines to loop through the rows in turn
-      (in the most natural order for the underlying data).
-        There are a couple of different template configurations that
-      can be used as a framework for this:
+       This will produce code based on the table_dataset handler.
 
-      1) One based around a single handler, that includes code to handle
-         both GET and SET requests, as well as row creation and deletion.
-         This template defines a suitable data structure, and implements
-         the table as an internally-held linked list, but both of these
-         are mainly for illustration, and could reasonably be replaced by
-         code more appropriate for the table being implemented.
-           The same template can be generated using
-                 mib2c -c mib2c.iterate.conf $name
- 
-      2) An alternative framework, designed as an API wrapper on top of
-         the basic iterator helper, that seeks to separate the standard
-         processing of the syntax of a MIB table (which can be generated
-         automaticall), from the semantics of a given table (which cannot).
-           It generates a number of separate code files, but typically
-         only one or two of these will need to be edited.  These contain
-         separate 'get_column()' and 'set_column()' functions for each
-         column in the table, plus some other routines for manipulating
-         rows (plus the standard iterator hook routines).
-           The same templates can be generated using
-                 mib2c -c mib2c.iterate_access.conf $name
-         (See the agent/mibgroup/example/netSnmpHostsTable.c file for example)
+    2) Have table-specific code to provide information about which
+       rows exist in the table (by iterating through them in turn),
+       but utilise standard helper code to select the appropriate
+       row for a given request.  This is particularly suitable for
+       tables where the data is naturally stored in a "random" order
+       (or differently to the MIB table index), or where rows are
+       frequently added to or removed from the table.
 
-      3) An API layer (not based on the iterator helper) that attempts
-         to reduce the amount of SNMP specific knowledge required to
-         implement a module. It provides more APIs than 2, which are
-         (hopefully) smaller and more specific, with less SNMP terminology.
-           This API is also known as "MIBs for Dummies".  Numerous tables
-         in the Net-SNMP agent have been re-written to use this API.
-           The same templates can be generated using
-                 mib2c -c mib2c.mfd.conf $name
-         (See the agent/mibgroup/if-mib/ifTable/ifTable*.c files for examples)
+         However searching for the requested row is not very efficient,
+       and performance can be slow - particularly for large tables with
+       many rows.
 
-      4) Do not generate code for the tables.
+    3) Hold a locally cached copy of the contents of the table (or at
+       least a cache of which rows are valid), and utilise standard
+       helper code to select the appropriate row.  This is
+       significantly faster than the iterator-based approach, but
+       cached data is inevitably slightly "stale" with respect to the
+       data from the underlying system being managed.  This approach,
+       since it relies on caching of data, is also results in a larger
+       memory footprint.  It is less appropriate for tables where rows
+       are frequently added or removed externally to the agent (i.e.,
+       not via SNMP requests).
 
-      If you are unsure which option to pick, choices 2) or 3) are perhaps
-      more suited for those less familiar with the concepts behind the SNMP
-      protocol operations, while choice 1) gives more control over exactly
-      what is done.
+       This approach can also be used where _all_ use of the table is
+       via SNMP, and there is no external "underlying system".  In
+       this case, the local cache is the canonical version of the
+       table.
 
-     @prompt $ans Select the API style you wish to use: @
-     @if $ans != 5@
-       @if $ans == 1@
-         using the mib2c.iterate.conf configuration file to generate your code.
-         @run mib2c.iterate.conf@
-       @elsif $ans == 2@
-         using the mib2c.iterate_access.conf configuration file to
-         generate your code.
-         @run mib2c.iterate_access.conf@
-       @elsif $ans == 3@
-         using the mib2c.mfd.conf configuration file to
-         generate your code.
-         @run mib2c.mfd.conf@
-       @else@
-         WARNING: Unknown response.  Skipping code generation for tables.
-       @end@
-     @end@
+    4) Do not generate code for the tables.
+
+  @prompt $ans1 Select the option that best fits your requirements: @
+
+  @if ($ans1 == 2) || ($ans1 == 3)@
+
+  Having identified the appropriate row for a given request, there are
+  three basic styles of code for returning (or updating) the requested
+  column value from within this row:
+
+    1) A single handler routine, which contains all the code needed to
+       handle GET and SET requests for each of the column objects.
+
+@if $ans1 == 2@
+       The code typically looks like a single function with a large 'case'
+       statement covering each of the columns.
+
+       This will produce code based on the 'iterator' hepler.
+@end@
+
+    2) A set of individual routines, each of which is concerned
+       with a particular aspect of processing the request.
+    @if $ans1 == 2 @
+       Each column object within the table has one routine for
+       retrieving the current value, and another for setting a new one.
+
+       This will produce code based on the 'iterate_access' hepler.
     @else@
-      @if $ans == 2@
-      This style of table holds a list of the table rows internally
-      within the agent itself.  Typically this will tend to include
-      the column values for each particular row, and that is the
-      model used by the generated template code.  But it should usually
-      be possible to read in some or all of the column values from an
-      external source, should this be necessary for a particular MIB table.
-        There are a number of different template configurations that
-      can be used as a framework for this:
-      
-
-      1) dataset storage: The data for the table is stored completely
-         within the agent, and the user-visible code does not need to
-         be concerned with the internal representation of an individual
-         row.  This is most suited to MIB tables that are purely internal
-         to the agent, rather than modelling external data, or using
-         existing data structures.
-           The same template can be generated using
-                 mib2c -c mib2c.create-dataset.conf $name
-
-      2) row-data storage: The data for the table is held by the agent,
-         but using an arbitrary (user-provided) data structure for the
-         representation of an individual row. This is suited for MIB
-         tables where there is a natural existing data structure,
-         or where the contents of the table may need to be interpreted
-         for some additional purpose, other than simply implementing
-         the table for SNMP requests.
-           The same template can be generated using
-                 mib2c -c mib2c.table_data.conf $name
-
-      3) container storage: This is very similar to the previous row-data
-         mechanism, but uses a different (and slightly more efficient)
-         internal representation.  The main practical effect is to
-         introduce a slight constraint on the form of the per-row data
-         structure.
-           The same template can be generated using
-                 mib2c -c mib2c.container.conf $name
-
-      All three of these templates generate a single code file, and
-      use a "single handler" format for the driving code.
-
-      4) sorted array:  The data for the table is stored in a sorted
-         array.
-         (manually mib2c -c mib2c.array-user.conf ${name})
-
-      5) Net-SNMP container: (Also known as "MIBs for Dummies", or MFD.)
-         The data for the table is stored via a
-         generic interface. Various types of containers may be
-         selected, including linked lists or binary arrays.
-         (manually mib2c -c mib2c.mfd.conf ${name})
-
-      6) Do not generate code for the tables.
-
-      All APIs are fully functional with little-to-no required code
-      to make the table operational on your end once the template
-      code is produced.  The MFD and dataset APIs are a bit better
-      documented, but the sorted array is probably better tested
-      as it was used heavily in the net-policy sourceforge project.
-      The MFD API is the successor to the array-user API, and several
-      tables in the Net-SNMP agent have been re-written to use it.
-      The dataset API is used inside the snmptrapd application for
-      logging incoming traps.
-
-      @prompt $ans Select the API style you wish to use: @
-      @if $ans != 6@
-        @if $ans == 1@
-          using the mib2c.create-dataset.conf configuration file
-          to generate your code.
-          @run mib2c.create-dataset.conf@
-        @elsif $ans == 2@
-          using the mib2c.table_data.conf configuration file to
-          generate your code.
-          @run mib2c.table_data.conf@
-        @elsif $ans == 3@
-          using the mib2c.container.conf configuration file to
-          generate your code.
-          @run mib2c.container.conf@
-        @elsif $ans == 4@
-          using the mib2c.array-user.conf configuration file to
-          generate your code.
-          @run mib2c.array-user.conf@
-        @elsif $ans == 5@
-          using the mib2c.mfd.conf configuration file to generate your code.
-          @run mib2c.mfd.conf@
-        @else@
-          WARNING: Unknown response.  Skipping code generation for tables.
-        @end@
-      @else@
-        WARNING: Unknown response.  Skipping code generation for tables.
-      @end@
+       There is one routine for reporting values for GET requests,
+       and one routine for each stage of processing a SET request.
     @end@
+
+    3) A (different) set of individual routines, each of which is
+       smaller and more tightly focused than the code generated by
+       style 2.  The aim here is to reduce the amount of SNMP specific
+       knowledge required to implement a module, and hide much of the
+       SNMP terminology and processing within standard generated code
+       (which can simply be used sight unseen).
+@if $name !~ /Table$/i@
+         However this style of code can only be generated when mib2c
+       is run on an individual MIB table.  To use this approach, you
+       will need to re-invoke mib2c with the name of a single MIB table.
+@end@
+
+       This will produce code based on the 'mfd' hepler ('MIB for Dummies').
+
+    4) Do not generate code for the tables.
+
+   (In all cases, GETNEXT requests are automatically converted
+    into the equivalent GET request, so the MIB specific code
+    need only be concerned with GET and SET requests.).
+       
+  @prompt $ans2 Select the code style you wish to use: @
   @end@
- @end@ # != 3
+
+  @eval $template = NONE@
+  @if $ans1 == 1@
+     @eval $template = "create-dataset"@
+
+  @elsif $ans1 == 2@
+   @if $ans2 == 1@
+     @eval $template = iterate@
+   @elsif $ans2 == 2@
+     @eval $template = iterate_access@
+   @elsif $ans2 == 3@
+     @eval $template = mfd@
+   @elsif $ans2 != 4@
+     WARNING: Unknown response.  Skipping code generation for tables.
+   @end@
+
+  @elsif $ans1 == 3@
+   @if $ans2 == 1@
+     There are actually two alternative templates that use this
+     style of code - differing primarily in the data structure
+     used for representing a row of the table
+
+      1) The first is well suited for situations where there is a
+         natural existing data structure, or where the contents of
+         the table may need to be interpreted for some additional
+         purpose, other than simply implementing the table in SNMP.
+
+         This will produce code based on the 'table_data' hepler.
+
+      2) The second is slightly more efficient, but introduces some
+         minor constraints on the form of the per-row data structure.
+
+         This will produce code based on the 'container' hepler.
+
+      @prompt $ans3 Select the row representation you wish to use: @
+
+      @if $ans3 == 1@
+       @eval $template = table_data@
+      @elsif $ans3 == 2@
+       @eval $template = container@
+      @else@
+     WARNING: Unknown response.  Skipping code generation for tables.
+      @end@
+   @elsif $ans2 == 2@
+     @eval $template = "array-user"@
+   @elsif $ans2 == 3@
+     @eval $template = mfd@
+   @else@
+     WARNING: Unknown response.  Skipping code generation for tables.
+   @end@
+
+  @elsif $ans1 != 4@
+     WARNING: Unknown response.  Skipping code generation for tables.
+  @end@
+
+  @if $template ne NONE@
+     The same template code can be generated using
+                 mib2c -c mib2c.${template}.conf $name
+     @run mib2c.${template}.conf@
+  @end@
 @end@ # tables
 
-@if count_notifications() > 0@
+@if $numN > 0@
 **********************************************************************
 		 GENERATING CODE FOR NOTIFICATIONS:
 **********************************************************************
diff --git a/local/mib2c.iterate.conf b/local/mib2c.iterate.conf
index e409ba9..3a2b5f7 100644
--- a/local/mib2c.iterate.conf
+++ b/local/mib2c.iterate.conf
@@ -1,4 +1,38 @@
 ## -*- c -*-
+#
+@if "$cache" eq "" @
+@open -@
+This framework can work in one of two ways:
+
+  1)  Hold a local cached copy of some external data
+      which is then used to service incoming requests.
+
+  2)  Query the external data directly for each request.
+
+The first is typically more efficient, but results in
+slightly "stale" data (depending on the expiration timeout
+for the cache) and greater memory usage.  The second can
+provide more up-to-date information, but at the cost of
+higher processing overheads.
+
+Which is more appropriate for your needs?
+    @prompt $ans Select your choice : @
+    @if $ans == 1 @
+      @eval $cache = 1@
+    @elsif $ans == 2@
+      @eval $cache = 0@
+    @else@
+Invalid answer - generating caching code
+      @eval $cache = 1@
+    @end@
+@else@       #  -S cache={something}
+    @if "$cache" ne "1" && "$cache" ne "0" @
+@open -@
+Invalid value for 'cache' ($cache) - generating caching code
+      @eval $cache = 1@
+    @end@
+@end@
+
 ######################################################################
 ## Do the .h file
 ######################################################################
@@ -17,7 +51,7 @@
 Netsnmp_Node_Handler ${i}_handler;
 Netsnmp_First_Data_Point  ${i}_get_first_data_point;
 Netsnmp_Next_Data_Point   ${i}_get_next_data_point;
-@if "$cache" ne "" @
+@if "$cache" == 1 @
 NetsnmpCacheLoad ${i}_load;
 NetsnmpCacheFree ${i}_free;
 #define $i.uc_TIMEOUT  60
@@ -105,7 +139,7 @@
     iinfo->table_reginfo        = table_info;
     
     netsnmp_register_table_iterator( reg, iinfo );
-@if "$cache" ne "" @
+@if "$cache" == 1 @
     netsnmp_inject_handler_before( reg, 
         netsnmp_get_cache_handler($i.uc_TIMEOUT,
                                   ${i}_load, ${i}_free,
@@ -213,7 +247,7 @@
     SNMP_FREE( entry );   /* XXX - release any other internal resources */
 }
 
-@if "$cache" ne "" @
+@if "$cache" == 1 @
 /* Example cache handling - set up linked list from a suitable file */
 int
 ${i}_load( netsnmp_cache *cache, void *vmagic ) {
diff --git a/local/mib2c.iterate_access.conf b/local/mib2c.iterate_access.conf
index cce0889..c211fd3 100644
--- a/local/mib2c.iterate_access.conf
+++ b/local/mib2c.iterate_access.conf
@@ -114,7 +114,7 @@
                              0);
 
     /** Define the minimum and maximum accessible columns.  This
-        optimizes retrival. */
+        optimizes retrieval. */
     @eval $minv = 0xffffffff@
     @eval $maxv = 0@
     @foreach $c column@
diff --git a/local/mib2c.notify.conf b/local/mib2c.notify.conf
index 6c1eb1a..77f3330 100644
--- a/local/mib2c.notify.conf
+++ b/local/mib2c.notify.conf
@@ -30,7 +30,8 @@
 #include <net-snmp/agent/net-snmp-agent-includes.h>
 #include "${name}.h"
 
-static const oid snmptrap_oid[] = {1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0};
+extern const oid snmptrap_oid[];
+extern const size_t snmptrap_oid_len;
 
 @foreach $i notifications@
 int
@@ -51,7 +52,7 @@
      * Set the snmpTrapOid.0 value
      */
     snmp_varlist_add_variable(&var_list,
-        snmptrap_oid, OID_LENGTH(snmptrap_oid),
+        snmptrap_oid, snmptrap_oid_len,
         ASN_OBJECT_ID,
         ${i}_oid, sizeof(${i}_oid));
     
diff --git a/local/mib2c.raw-table.conf b/local/mib2c.raw-table.conf
index 5c4d416..bd88fdb 100644
--- a/local/mib2c.raw-table.conf
+++ b/local/mib2c.raw-table.conf
@@ -58,7 +58,7 @@
     @end@
 
     /* Column values */
-    @foreach $c column@
+    @foreach $c nonindex@
     @if $c.readable@
      @if $c.needlength@
     $c.decl $c[NNN];
diff --git a/local/mib2c.table_data.conf b/local/mib2c.table_data.conf
index 775c021..2cc665c 100644
--- a/local/mib2c.table_data.conf
+++ b/local/mib2c.table_data.conf
@@ -1,4 +1,32 @@
 ## -*- c -*-
+#
+@if "$cache" eq "" @
+@open -@
+This framework can work in one of two ways:
+
+  1)  Hold a local cached copy of some external data
+      which is then used to service incoming requests.
+
+  2)  Hold the data for the table solely within the agent
+
+Which is more appropriate for your needs?
+    @prompt $ans Select your choice : @
+    @if $ans == 1 @
+      @eval $cache = 1@
+    @elsif $ans == 2@
+      @eval $cache = 0@
+    @else@
+Invalid answer - generating caching code
+      @eval $cache = 1@
+    @end@
+@else@       #  -S cache={something}
+    @if "$cache" ne "1" && "$cache" ne "0" @
+@open -@
+Invalid value for 'cache' ($cache) - generating caching code
+      @eval $cache = 1@
+    @end@
+@end@
+
 ######################################################################
 ## Do the .h file
 ######################################################################
@@ -15,7 +43,7 @@
 @foreach $i table@
 void initialize_table_$i(void);
 Netsnmp_Node_Handler ${i}_handler;
-@if "$cache" ne "" @
+@if "$cache" == 1 @
 NetsnmpCacheLoad ${i}_load;
 NetsnmpCacheFree ${i}_free;
 #define $i.uc_TIMEOUT  60
@@ -75,7 +103,7 @@
     netsnmp_handler_registration    *reg;
     netsnmp_tdata                   *table_data;
     netsnmp_table_registration_info *table_info;
-@if "$cache" ne "" @
+@if "$cache" == 1 @
     netsnmp_cache                   *cache;
 @end@
 
@@ -92,7 +120,25 @@
               );
 
     table_data = netsnmp_tdata_create_table( "$i", 0 );
+    if (NULL == table_data) {
+        snmp_log(LOG_ERR,"error creating tdata table for $i\n");
+        return;
+    }
+@if "$cache" == 1 @
+    cache = netsnmp_cache_create($i.uc_TIMEOUT,
+                                  ${i}_load, ${i}_free,
+                                  ${i}_oid, ${i}_oid_len);
+    if (NULL == cache) {
+        snmp_log(LOG_ERR,"error creating cache for $i\n");
+    }
+    else
+        cache->magic = (void *)table_data;
+@end@
     table_info = SNMP_MALLOC_TYPEDEF( netsnmp_table_registration_info );
+    if (NULL == table_info) {
+        snmp_log(LOG_ERR,"error creating table info for $i\n");
+        return;
+    }
     netsnmp_table_helper_add_indexes(table_info,
     @foreach $idx index@
                            $idx.type,  /* index: $idx */
@@ -103,12 +149,10 @@
     table_info->max_column = COLUMN_$last_column.uc;
     
     netsnmp_tdata_register( reg, table_data, table_info );
-@if "$cache" ne "" @
-    cache = netsnmp_cache_create($i.uc_TIMEOUT,
-                                  ${i}_load, ${i}_free,
-                                  ${i}_oid, ${i}_oid_len);
-    cache->magic = (void *)table_data;
-    netsnmp_inject_handler_before( reg, netsnmp_cache_handler_GET(cache), TABLE_TDATA_NAME);
+@if "$cache" == 1 @
+    if (cache) 
+        netsnmp_inject_handler_before( reg, netsnmp_cache_handler_GET(cache),
+                                       TABLE_TDATA_NAME);
 @end@
 
     /* Initialise the contents of the table here */
@@ -176,6 +220,8 @@
         return NULL;
     }
     row->data = entry;
+
+    DEBUGMSGT(("${i}:entry:create", "row 0x%x\n", (uintptr_t)row));
   @foreach $idx index@
    @if $idx.needlength@
     memcpy(entry->$idx, $idx, ${idx}_len);
@@ -189,7 +235,8 @@
                                  sizeof(entry->$idx));
    @end@
   @end@
-    netsnmp_tdata_add_row( table_data, row );
+    if (table_data)
+        netsnmp_tdata_add_row( table_data, row );
     return row;
 }
 
@@ -201,13 +248,19 @@
 
     if (!row)
         return;    /* Nothing to remove */
-    entry = (struct ${i}_entry *)
+
+    DEBUGMSGT(("${i}:entry:remove", "row 0x%x\n", (uintptr_t)row));
+
+    entry = (struct ${i}_entry *)row->data;
+    SNMP_FREE( entry );   /* XXX - release any other internal resources */
+
+    if (table_data)
         netsnmp_tdata_remove_and_delete_row( table_data, row );
-    if (entry)
-        SNMP_FREE( entry );   /* XXX - release any other internal resources */
+    else
+        netsnmp_tdata_delete_row( row );    
 }
 
-@if "$cache" ne "" @
+@if "$cache" == 1 @
 /* Example cache handling - set up table_data list from a suitable file */
 int
 ${i}_load( netsnmp_cache *cache, void *vmagic ) {
diff --git a/local/net-snmp-cert b/local/net-snmp-cert
new file mode 100755
index 0000000..852a47f
--- /dev/null
+++ b/local/net-snmp-cert
@@ -0,0 +1,2690 @@
+#!/usr/bin/perl
+
+use strict;
+use 5.8.0;
+
+use Getopt::Long qw(:config gnu_getopt no_ignore_case pass_through);
+use Cwd qw(getcwd realpath);
+use File::Basename;
+use File::Copy;
+use File::Path;
+use Sys::Hostname;
+use Carp;
+
+our @CC = (
+["AF","AFGHANISTAN"],
+["AX","ÅLAND ISLANDS"],
+["AL","ALBANIA"],
+["DZ","ALGERIA"],
+["AS","AMERICAN SAMOA"],
+["AD","ANDORRA"],
+["AO","ANGOLA"],
+["AI","ANGUILLA"],
+["AQ","ANTARCTICA"],
+["AG","ANTIGUA AND BARBUDA"],
+["AR","ARGENTINA"],
+["AM","ARMENIA"],
+["AW","ARUBA"],
+["AU","AUSTRALIA"],
+["AT","AUSTRIA"],
+["AZ","AZERBAIJAN"],
+["BS","BAHAMAS"],
+["BH","BAHRAIN"],
+["BD","BANGLADESH"],
+["BB","BARBADOS"],
+["BY","BELARUS"],
+["BE","BELGIUM"],
+["BZ","BELIZE"],
+["BJ","BENIN"],
+["BM","BERMUDA"],
+["BT","BHUTAN"],
+["BO","BOLIVIA, PLURINATIONAL STATE OF"],
+["BA","BOSNIA AND HERZEGOVINA"],
+["BW","BOTSWANA"],
+["BV","BOUVET ISLAND"],
+["BR","BRAZIL"],
+["IO","BRITISH INDIAN OCEAN TERRITORY"],
+["BN","BRUNEI DARUSSALAM"],
+["BG","BULGARIA"],
+["BF","BURKINA FASO"],
+["BI","BURUNDI"],
+["KH","CAMBODIA"],
+["CM","CAMEROON"],
+["CA","CANADA"],
+["CV","CAPE VERDE"],
+["KY","CAYMAN ISLANDS"],
+["CF","CENTRAL AFRICAN REPUBLIC"],
+["TD","CHAD"],
+["CL","CHILE"],
+["CN","CHINA"],
+["CX","CHRISTMAS ISLAND"],
+["CC","COCOS (KEELING) ISLANDS"],
+["CO","COLOMBIA"],
+["KM","COMOROS"],
+["CG","CONGO"],
+["CD","CONGO, THE DEMOCRATIC REPUBLIC OF THE"],
+["CK","COOK ISLANDS"],
+["CR","COSTA RICA"],
+["CI","CÔTE D'IVOIRE"],
+["HR","CROATIA"],
+["CU","CUBA"],
+["CY","CYPRUS"],
+["CZ","CZECH REPUBLIC"],
+["DK","DENMARK"],
+["DJ","DJIBOUTI"],
+["DM","DOMINICA"],
+["DO","DOMINICAN REPUBLIC"],
+["EC","ECUADOR"],
+["EG","EGYPT"],
+["SV","EL SALVADOR"],
+["GQ","EQUATORIAL GUINEA"],
+["ER","ERITREA"],
+["EE","ESTONIA"],
+["ET","ETHIOPIA"],
+["FK","FALKLAND ISLANDS (MALVINAS)"],
+["FO","FAROE ISLANDS"],
+["FJ","FIJI"],
+["FI","FINLAND"],
+["FR","FRANCE"],
+["GF","FRENCH GUIANA"],
+["PF","FRENCH POLYNESIA"],
+["TF","FRENCH SOUTHERN TERRITORIES"],
+["GA","GABON"],
+["GM","GAMBIA"],
+["GE","GEORGIA"],
+["DE","GERMANY"],
+["GH","GHANA"],
+["GI","GIBRALTAR"],
+["GR","GREECE"],
+["GL","GREENLAND"],
+["GD","GRENADA"],
+["GP","GUADELOUPE"],
+["GU","GUAM"],
+["GT","GUATEMALA"],
+["GG","GUERNSEY"],
+["GN","GUINEA"],
+["GW","GUINEA-BISSAU"],
+["GY","GUYANA"],
+["HT","HAITI"],
+["HM","HEARD ISLAND AND MCDONALD ISLANDS"],
+["VA","HOLY SEE (VATICAN CITY STATE)"],
+["HN","HONDURAS"],
+["HK","HONG KONG"],
+["HU","HUNGARY"],
+["IS","ICELAND"],
+["IN","INDIA"],
+["ID","INDONESIA"],
+["IR","IRAN, ISLAMIC REPUBLIC OF"],
+["IQ","IRAQ"],
+["IE","IRELAND"],
+["IM","ISLE OF MAN"],
+["IL","ISRAEL"],
+["IT","ITALY"],
+["JM","JAMAICA"],
+["JP","JAPAN"],
+["JE","JERSEY"],
+["JO","JORDAN"],
+["KZ","KAZAKHSTAN"],
+["KE","KENYA"],
+["KI","KIRIBATI"],
+["KP","KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF"],
+["KR","KOREA, REPUBLIC OF"],
+["KW","KUWAIT"],
+["KG","KYRGYZSTAN"],
+["LA","LAO PEOPLE'S DEMOCRATIC REPUBLIC"],
+["LV","LATVIA"],
+["LB","LEBANON"],
+["LS","LESOTHO"],
+["LR","LIBERIA"],
+["LY","LIBYAN ARAB JAMAHIRIYA"],
+["LI","LIECHTENSTEIN"],
+["LT","LITHUANIA"],
+["LU","LUXEMBOURG"],
+["MO","MACAO"],
+["MK","MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF"],
+["MG","MADAGASCAR"],
+["MW","MALAWI"],
+["MY","MALAYSIA"],
+["MV","MALDIVES"],
+["ML","MALI"],
+["MT","MALTA"],
+["MH","MARSHALL ISLANDS"],
+["MQ","MARTINIQUE"],
+["MR","MAURITANIA"],
+["MU","MAURITIUS"],
+["YT","MAYOTTE"],
+["MX","MEXICO"],
+["FM","MICRONESIA, FEDERATED STATES OF"],
+["MD","MOLDOVA, REPUBLIC OF"],
+["MC","MONACO"],
+["MN","MONGOLIA"],
+["ME","MONTENEGRO"],
+["MS","MONTSERRAT"],
+["MA","MOROCCO"],
+["MZ","MOZAMBIQUE"],
+["MM","MYANMAR"],
+["NA","NAMIBIA"],
+["NR","NAURU"],
+["NP","NEPAL"],
+["NL","NETHERLANDS"],
+["AN","NETHERLANDS ANTILLES"],
+["NC","NEW CALEDONIA"],
+["NZ","NEW ZEALAND"],
+["NI","NICARAGUA"],
+["NE","NIGER"],
+["NG","NIGERIA"],
+["NU","NIUE"],
+["NF","NORFOLK ISLAND"],
+["MP","NORTHERN MARIANA ISLANDS"],
+["NO","NORWAY"],
+["OM","OMAN"],
+["PK","PAKISTAN"],
+["PW","PALAU"],
+["PS","PALESTINIAN TERRITORY, OCCUPIED"],
+["PA","PANAMA"],
+["PG","PAPUA NEW GUINEA"],
+["PY","PARAGUAY"],
+["PE","PERU"],
+["PH","PHILIPPINES"],
+["PN","PITCAIRN"],
+["PL","POLAND"],
+["PT","PORTUGAL"],
+["PR","PUERTO RICO"],
+["QA","QATAR"],
+["RE","RÉUNION"],
+["RO","ROMANIA"],
+["RU","RUSSIAN FEDERATION"],
+["RW","RWANDA"],
+["BL","SAINT BARTHÉLEMY"],
+["SH","SAINT HELENA, ASCENSION AND TRISTAN DA CUNHA"],
+["KN","SAINT KITTS AND NEVIS"],
+["LC","SAINT LUCIA"],
+["MF","SAINT MARTIN"],
+["PM","SAINT PIERRE AND MIQUELON"],
+["VC","SAINT VINCENT AND THE GRENADINES"],
+["WS","SAMOA"],
+["SM","SAN MARINO"],
+["ST","SAO TOME AND PRINCIPE"],
+["SA","SAUDI ARABIA"],
+["SN","SENEGAL"],
+["RS","SERBIA"],
+["SC","SEYCHELLES"],
+["SL","SIERRA LEONE"],
+["SG","SINGAPORE"],
+["SK","SLOVAKIA"],
+["SI","SLOVENIA"],
+["SB","SOLOMON ISLANDS"],
+["SO","SOMALIA"],
+["ZA","SOUTH AFRICA"],
+["GS","SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS"],
+["ES","SPAIN"],
+["LK","SRI LANKA"],
+["SD","SUDAN"],
+["SR","SURINAME"],
+["SJ","SVALBARD AND JAN MAYEN"],
+["SZ","SWAZILAND"],
+["SE","SWEDEN"],
+["CH","SWITZERLAND"],
+["SY","SYRIAN ARAB REPUBLIC"],
+["TW","TAIWAN, PROVINCE OF CHINA"],
+["TJ","TAJIKISTAN"],
+["TZ","TANZANIA, UNITED REPUBLIC OF"],
+["TH","THAILAND"],
+["TL","TIMOR-LESTE"],
+["TG","TOGO"],
+["TK","TOKELAU"],
+["TO","TONGA"],
+["TT","TRINIDAD AND TOBAGO"],
+["TN","TUNISIA"],
+["TR","TURKEY"],
+["TM","TURKMENISTAN"],
+["TC","TURKS AND CAICOS ISLANDS"],
+["TV","TUVALU"],
+["UG","UGANDA"],
+["UA","UKRAINE"],
+["AE","UNITED ARAB EMIRATES"],
+["GB","UNITED KINGDOM"],
+["US","UNITED STATES"],
+["UM","UNITED STATES MINOR OUTLYING ISLANDS"],
+["UY","URUGUAY"],
+["UZ","UZBEKISTAN"],
+["VU","VANUATU"],
+["VE","VENEZUELA, BOLIVARIAN REPUBLIC OF"],
+["VN","VIET NAM"],
+["VG","VIRGIN ISLANDS, BRITISH"],
+["VI","VIRGIN ISLANDS, U.S."],
+["WF","WALLIS AND FUTUNA"],
+["EH","WESTERN SAHARA"],
+["YE","YEMEN"],
+["ZM","ZAMBIA"],
+["ZW","ZIMBABWE"],
+);
+
+package NetSNMP::Term;
+# gratefully taken from Wayne Thompson's Term::Complete
+# if newer CORE modules could be used this could be removed
+our($complete, $exit, $done, $kill, $erase1, $erase2, $tty_raw_noecho, $tty_restore, $stty, $tty_safe_restore);
+our($tty_saved_state) = '';
+CONFIG: {
+  $exit   = "\003";
+  $done   = "\004";
+  $kill   = "\025";
+  $erase1 =   "\177";
+  $erase2 =   "\010";
+  foreach my $s (qw(/bin/stty /usr/bin/stty)) {
+    if (-x $s) {
+      $tty_raw_noecho = "$s raw -echo";
+      $tty_restore    = "$s -raw echo";
+      $tty_safe_restore = $tty_restore;
+      $stty = $s;
+      last;
+    }
+  }
+}
+
+sub Complete {
+  my($prompt, $dflt, $help, $match, @cmp_lst);
+  my (%help, $cmp, $test, $l, @match);
+  my ($return, $r, $exitting) = ("", 0, 0);
+  my $tab;
+
+  $prompt = shift;
+  $dflt = shift;
+  $help = shift;
+  $match = shift;
+
+  if (ref $_[0] and ref($_[0][0])) {
+    @cmp_lst = @{$_[0]};
+  } else {
+    @cmp_lst = @_;
+  }
+  @cmp_lst = map {if (ref($_)) { $help{$_->[0]}=$_->[1]; $_->[0]} else {$_;}} @cmp_lst;
+
+  # Attempt to save the current stty state, to be restored later
+  if (defined $stty && defined $tty_saved_state && $tty_saved_state eq '') {
+    $tty_saved_state = qx($stty -g 2>/dev/null);
+    if ($?) {
+      # stty -g not supported
+      $tty_saved_state = undef;
+    } else {
+      $tty_saved_state =~ s/\s+$//g;
+      $tty_restore = qq($stty "$tty_saved_state" 2>/dev/null);
+    }
+  }
+  system $tty_raw_noecho if defined $tty_raw_noecho;
+ LOOP: {
+    local $_;
+    print($prompt, $return);
+    while (($_ = getc(STDIN)) ne "\r") {
+    CASE: {
+	# (TAB) attempt completion
+	$_ eq "\t" && do {
+	  if ($tab) {
+	    print(join("\r\n", '', map {exists $help{$_} ? sprintf("\t%-10.10s - %s", $_, $help{$_}) :
+					  "\t$_"} grep(/^\Q$return/, @cmp_lst)), "\r\n");
+	    $tab--;
+	    redo LOOP;
+	  }
+	  @match = grep(/^\Q$return/, @cmp_lst);
+	  unless ($#match < 0) {
+	    $l = length($test = shift(@match));
+	    foreach $cmp (@match) {
+	      until (substr($cmp, 0, $l) eq substr($test, 0, $l)) {
+		$l--;
+	      }
+	    }
+	    print("\a");
+	    print($test = substr($test, $r, $l - $r));
+	    $r = length($return .= $test);
+	  }
+	  $tab++;
+	  last CASE;
+	};
+
+	# (^C) exit
+	$_ eq $exit && do {
+	  print("\r\naborting application...\r\n");
+	  $exitting++;
+	  undef $return;
+	  last LOOP;
+	};
+
+	# (^D) done
+	$_ eq $done && do {
+	  undef $return;
+	  last LOOP;
+	};
+
+	# (?) show help if available
+	$_ eq '?' && do {
+	  print("\r\n$help\r\n");
+	  if (exists $help{$return}) {
+	    print("\t$return - $help{$return}\r\n");
+	  } else {
+	    print(join("\r\n", map {exists $help{$_} ? "\t$_ - $help{$_}" :
+				      "\t$_"} grep(/^\Q$return/, @cmp_lst)), "\r\n");
+	  }
+	  redo LOOP;
+	};
+
+	# (^U) kill
+	$_ eq $kill && do {
+	  if ($r) {
+	    $r	= 0;
+	    $return	= "";
+	    print("\r\n");
+	    redo LOOP;
+	  }
+	  last CASE;
+	};
+
+	# (DEL) || (BS) erase
+	($_ eq $erase1 || $_ eq $erase2) && do {
+	  if ($r) {
+	    print("\b \b");
+	    chop($return);
+	    $r--;
+	  }
+	  last CASE;
+	};
+
+	# printable char
+	ord >= 32 && do {
+	  $return .= $_;
+	  $r++;
+	  print;
+	  last CASE;
+	};
+      }
+    }
+
+    if (defined $return) {
+      if (length($return) == 0 or $return eq $dflt) {
+	$return = $dflt;
+      } elsif ($match == $NetSNMP::Cert::MATCH and scalar(grep {/^$return$/} @cmp_lst) != 1 or
+	       $match == $NetSNMP::Cert::PREMATCH and scalar(grep {$return=~/$_/} @cmp_lst) != 1) {
+	$r	= 0;
+	$return	= "";
+	print("\r\nChoose a valid option, or ^D to exit\r\n");
+	redo LOOP;
+      }
+    }
+  }
+ DONE:
+  # system $tty_restore if defined $tty_restore;
+  if (defined $tty_saved_state && defined $tty_restore && defined $tty_safe_restore) {
+    system $tty_restore;
+    if ($?) {
+      # tty_restore caused error
+      system $tty_safe_restore;
+    }
+  }
+
+  exit(1) if $exitting;
+  print("\n");
+  return $return;
+}
+
+package NetSNMP::Cert;
+
+our $VERSION      = '0.2.9';
+
+our $PROG         = ::basename($0);
+our $DEBUG        = 0;
+our $OK           = 0;
+our $ERR          = -1;
+
+# user input param
+our $MATCH        = 1;
+our $PREMATCH     = 2;
+
+# Load LWP if possible to import cert from URL
+eval('use LWP::UserAgent;');
+our $haveUserAgent = ($@ ? 0 : 1);
+
+# required executables
+our $OPENSSL     = $ENV{NET_SNMP_CRT_OPENSSL}  || 'openssl';
+our $CFGTOOL     = $ENV{NET_SNMP_CRT_CFGTOOL}  || 'net-snmp-config';
+
+# default app config file
+our $CFGFILE     = $ENV{NET_SNMP_CRT_CFGFILE}  || 'net-snmp-cert.conf';
+
+# default OpenSSL config files
+our $SSLCFGIN    = $ENV{NET_SNMP_CRT_SSLCFGIN} || 'openssl.in';
+our $SSLCFGOUT   = $ENV{NET_SNMP_CRT_SSLCFGIN} || '.openssl.conf';
+our $SSLCFG      = $ENV{NET_SNMP_CRT_SSLCFG};
+
+# default cmd logs
+our $OUTLOG      = $ENV{NET_SNMP_CRT_OUTLOG}   || '.cmd.out.log';
+our $ERRLOG      = $ENV{NET_SNMP_CRT_ERRLOG}   || '.cmd.err.log';
+
+# default cert dirs
+our $TLSDIR      = $ENV{NET_SNMP_CRT_TLSDIR}   || 'tls';
+our $CRTDIR      = $ENV{NET_SNMP_CRT_CRTDIR}   || 'certs';
+our $NEWCRTDIR   = $ENV{NET_SNMP_CRT_NEWCRTDIR}|| 'newcerts';
+our $CADIR       = $ENV{NET_SNMP_CRT_CADIR}    || 'ca-certs';
+our $PRIVDIR     = $ENV{NET_SNMP_CRT_PRIVDIR}  || 'private';
+
+our $SERIAL      = $ENV{NET_SNMP_CRT_SERIAL}   || '.serial';
+our $INDEX       = $ENV{NET_SNMP_CRT_INDEX}    || '.index';
+
+our $DEFCADAYS   = $ENV{NET_SNMP_CRT_DEFCADAYS} || 1825;
+our $DEFCRTDAYS  = $ENV{NET_SNMP_CRT_DEFCRTDAYS}|| 365;
+
+our @TLSDIRS     = ($CRTDIR, $NEWCRTDIR, $CADIR, $PRIVDIR);
+
+our @CRTSUFFIXES = qw(.pem .csr .der .crt);
+
+our @X509FMTS = qw(text modulus serial subject_hash issuer_hash hash subject
+		    purpose issuer startdate enddate dates fingerprint C);
+
+sub dprint {
+  my $str = shift;
+  my $opts = shift;
+  my $dlevel = shift || 1;
+  my $flag = (defined $opts ? int($opts->{'debug'} >= $dlevel) : 1);
+  my ($pkg, $file, $line, $sub) = caller(1);
+  my ($pkg0, $file0, $line0) = caller(0);
+  print("${sub}():$line0: $str") if $flag;
+}
+
+sub dwarn {
+  my $str = shift;
+  my $opts = shift;
+  my $dlevel = shift || 1;
+  my $flag = (defined $opts ? $opts->{'debug'} >= $dlevel : 1);
+  my ($pkg, $file, $line, $sub) = caller(1);
+  my ($pkg0, $file0, $line0) = caller(0);
+  warn("${sub}():$line0: $str") if $flag;
+}
+
+sub vprint {
+  my $str = shift;
+  my $opts = shift;
+  my $flag = (defined $opts ? $opts->{'verbose'} : 1);
+  my $debug = (defined $opts ? $opts->{'debug'} : 1);
+  my ($pkg, $file, $line, $sub) = caller(1);
+  my ($pkg0, $file0, $line0) = caller(0);
+  $str = ($debug ? "${sub}():$line0: $str" : "$str");
+  print("$str") if $flag;
+}
+
+sub vwarn {
+  my $str = shift;
+  my $opts = shift;
+  my $flag = (defined $opts ? $opts->{'verbose'} : 1);
+  my ($pkg, $file, $line, $sub) = caller(1);
+  my ($pkg0, $file0, $line0) = caller(0);
+  warn("${sub}():$line0: $str") if $flag;
+}
+
+sub rsystem {
+  my $cmd = shift;
+  my $flag = shift;
+
+  # if not running as root try to use sudo
+  if ($>) {
+    $cmd = "sudo $flag $cmd";
+  } else {
+    if ($flag =~ /-b/) {
+      $cmd = "$cmd \&";
+    }
+  }
+  die("cmd failed($!): $cmd\n") if system("$cmd");
+}
+
+sub usystem {
+  my $cmd = shift;
+  my $opts = shift;
+  my $ret;
+
+  unlink $NetSNMP::Cert::OUTLOG if -e $NetSNMP::Cert::OUTLOG;
+  unlink $NetSNMP::Cert::ERRLOG if -e $NetSNMP::Cert::ERRLOG;
+
+  $ret = system("$cmd");
+
+  if ($ret) {
+    if ($opts->{'verbose'}) {
+      system("cat $NetSNMP::Cert::OUTLOG") if -r $NetSNMP::Cert::OUTLOG;
+      system("cat $NetSNMP::Cert::ERRLOG") if -r $NetSNMP::Cert::ERRLOG;
+    }
+    die("cmd failed($!): $cmd\n");
+  }
+}
+
+sub home_dir {
+  my $cdir = ::getcwd();
+
+  chdir("~");
+  my $dir = ::getcwd();
+  chdir($cdir);
+
+  return $dir;
+}
+
+sub find_bin_dir {
+  # This code finds the path to the currently invoked program and
+  my $dir;
+
+  $0 =~ m%^(([^/]*)(.*)/)([^/]+)$%;
+  if ($1) {
+    if ($2) {
+      # Invoked using a relative path.  CD there and use pwd.
+      $dir = `cd $1 && pwd`;
+      chomp $dir;
+    } else {
+      # Invoked using an absolute path; that's it!
+      $dir = $3;
+    }
+  } else {
+    # No path.  Look in PATH for the first instance.
+    foreach my $p (split /:/, $ENV{PATH}) {
+      $p ||= '.';
+      -x "$p/$4" or next;
+      $dir = $p;
+    }
+  }
+  $dir or die "Cannot locate program '$0'!";
+}
+
+sub fq_rel_path {
+  my $path = shift;
+  my $cwd = ::getcwd();
+  my $rdir = shift || $cwd;
+
+  chdir($rdir) or die("can't change directory: $rdir");
+  # get fully qualified path
+  if ($path !~ m|^/|) {
+    my $pwd = `pwd`; chomp $pwd;
+    $path = "$pwd/$path";
+    $path = ::realpath($path) if -e $path;
+  }
+  chdir($cwd) or die("can't change directory: $cwd");
+
+  return $path;
+}
+
+sub dir_empty
+  {
+    my $path = shift;
+    opendir(DIR, $path);
+    foreach (readdir(DIR)) {
+      next if /^\.\.?$/;
+      closedir(DIR);
+      return 0;
+    }
+    closedir(DIR);
+    return 1;
+  }
+
+sub make_dirs {
+  my $opts = shift;
+  my $dir = shift;
+  my $mode = shift;
+  my @dirs = @_;
+
+  my $wd = ::getcwd();
+
+  NetSNMP::Cert::dprint("make dirs [$dir:@dirs] from $wd\n", $opts);
+
+  ::mkpath($dir, $opts->{'debug'}, $mode) or die("error - can't make $dir")
+    if defined $dir and not -d $dir;
+
+  foreach my $subdir (@dirs) {
+    my $d = "$subdir";
+    $d = "$dir/$d" if defined $dir;
+    NetSNMP::Cert::dprint("making directory: $d\n", $opts) unless -d $d;
+    mkdir($d, $mode) or die("error - can't make $d") unless -d $d;
+  }
+}
+
+sub is_url {
+  my $url = shift;
+
+  return $url =~ /^(?#Protocol)(?:(?:ht|f)tp(?:s?)\:\/\/|~\/|\/)?(?#Username:Password)(?:\w+:\w+@)?(?#Subdomains)(?:(?:[-\w]+\.)+(?#TopLevel Domains)(?:com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum|travel|[a-z]{2}))(?#Port)(?::[\d]{1,5})?(?#Directories)(?:(?:(?:\/(?:[-\w~!$+|.,=]|%[a-f\d]{2})+)+|\/)+|\?|#)?(?#Query)(?:(?:\?(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=?(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)(?:&(?:[-\w~!$+|.,*:]|%[a-f\d{2}])+=?(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)*)*(?#Anchor)(?:#(?:[-\w~!$+|.,*:=]|%[a-f\d]{2})*)?$/;
+}
+
+sub in_set {
+  my $elem = shift;
+  my $set = shift;
+  for my $e (eval($set)) {
+    return 1 if $e == $elem;
+  }
+  return 0;
+}
+
+sub in_arr {
+  my $elem = shift;
+  my $arr = shift;
+  for my $e (@{$arr}) {
+    return 1 if $e eq $elem;
+  }
+  return 0;
+}
+
+sub map_bool {
+  my $val = shift;
+
+  return 1 if $val =~ /^true$/i;
+  return 0 if $val =~ /^false$/i;
+  return $val;
+}
+
+sub version {
+  my $ret = (@_ ? shift : 1);
+  print "$NetSNMP::Cert::PROG: $NetSNMP::Cert::VERSION\n";
+  exit($ret);
+}
+
+sub GetOptsFromArray {
+  my $args = shift;
+  local *ARGV;
+  @ARGV = @$args;
+  my $ret = ::GetOptions(@_);
+  @$args = @ARGV; # GetOptions strips out the ones it handles and leaves others
+  return $ret;
+}
+sub pull_cmd {
+  my $args = shift;
+  my $cmd;
+
+  foreach (@{$args}) {
+    if (/^(gence?rt|genca|gencsr|signcsr|showcas?|showce?rts?|import)$/) {
+      $cmd = $1;
+    }
+  }
+
+  @{$args} = grep {!/^$cmd$/} @{$args};
+
+  return $cmd;
+}
+
+
+sub usage {
+  my $ret = (@_ ? shift : 1);
+  my $arg = shift;
+
+  print "Command not implmeneted yet: $arg\n" if $ret == 2;
+  print "Unknown: $arg\n" if $ret == 3;
+  print "\n   NAME:\n";
+  print "     $NetSNMP::Cert::PROG: [$NetSNMP::Cert::VERSION] - ";
+  print "Net-SNMP Certificate Management Tool\n";
+  print "\n   DESCRIPTION:\n";
+  print "     net-snmp-cert creates, signs, installs and displays X.509\n";
+  print "     certificates used in the operation of Net-SNMP/(D)TLS.\n";
+  print "\n   SYNOPSIS:\n";
+  print "     net-snmp-cert [--help|-?]\n";
+  print "     net-snmp-cert [--version|-V]\n";
+  print "     net-snmp-cert genca    [<flags>] [<dn-opts>] [--with-ca <ca>]\n";
+  print "     net-snmp-cert gencert  [<flags>] [<dn-opts>] [--with-ca <ca>]\n";
+  print "     net-snmp-cert gencsr   [<flags>] [<dn-opts>] [--from-crt <crt>]\n";
+  print "     net-snmp-cert signcsr  [<flags>] [--install] --csr <csr> --with-ca <ca>\n";
+  print "     net-snmp-cert showca   [<flags>] [<format-opts>] [<file>|<search-tag>]\n";
+  print "     net-snmp-cert showcert [<flags>] [<format-opts>] [<file>|<search-tag>]\n";
+  print "     net-snmp-cert import   [<flags>] <file|url> [<key>]\n";
+  print "\n   COMMANDS:\n";
+  print "     genca    -- generate a signed CA certificate suitable for signing other\n";
+  print "                 certificates. default: self-signed unless --with-ca <ca> supplied\n\n";
+  print "     gencert  -- generate a signed certificate suitable for identification, or\n";
+  print "                 validation. default: self-signed unless --with-ca <ca> supplied\n\n";
+  print "     gencsr   -- generate a certificate signing request. will create a new\n";
+  print "                 key and certificate unless --from-crt <crt> supplied\n\n";
+  print "     signcsr  -- sign a certificate signing request specified by --csr <csr>\n";
+  print "                 with the CA certificate specified by --with-ca <ca>\n";
+  print "     import   -- import an identity or CA certificate, optionally import <key>\n";
+  print "                 if an URL is passed, will attempt to import certificate from site\n";
+  print "     showca,\n";
+  print "     showcert -- show CA or identity certificate(s). may pass fully qualified\n";
+  print "                 file or directory name, or a search-tag which prefix matches\n";
+  print "                 installed CA or identity certificate file name(s)\n";
+  print "                 see FORMAT OPTIONS to specify output format\n\n";
+  print "\n   FLAGS:\n";
+  print "     -?, --help            -- show this text and exit\n";
+  print "     -V, --version         -- show version string and exit\n";
+  print "     -D, --debug           -- raise debug level (-D -D for higher level)\n";
+  print "     -F, --force           -- force overwrite of existing output files\n";
+  print "     -I, --nointeractive   -- non-interactive run (default interactive)\n";
+  print "     -Q, --noverbose       -- non-verbose output (default verbose)\n";
+  print "     -C, --cfgdir   <dir>  -- configuration dir (see man(5) snmp_config)\n";
+  print "     -T, --tlsdir   <dir>  -- root for cert storage (default <cfgdir>/tls)\n";
+  print "     -f, --cfgfile  <file> -- config (default <cfgdir>/net-snmp-cert.conf)\n";
+  print "     -i, --identity <id>   -- identity to use from config\n";
+  print "     -t, --tag      <tag>  -- application tag (default 'snmp')\n";
+  print "     --<cfg-param>[=<val>] -- additional config params\n";  
+  print "\n   CERTIFICATE OPTIONS (<cert-opts>):\n";
+  print "     -a, --with-ca <ca>    -- CA certificate used to sign request\n";
+  print "     -A, --ca <ca>         -- explicit output CA certificate\n";
+  print "     -r, --csr <csr>       -- certificate signing request\n";
+  print "     -x, --from-crt <crt>  -- input certificate for current operation\n";
+  print "     -X, --crt <crt>       -- explicit output certificate\n";
+  print "     -y, --install         -- install result in local repository\n";
+  print "\n   DISTINGUISHED NAME OPTIONS (<dn-opts>):\n";
+  print "     -e, --email <email>       -- email name\n";
+  print "     -h, --host <host>         -- DNS host name, or IP address\n";
+  print "     -d, --days <days>         -- number of days certificate is valid\n";
+  print "     -n, --cn <cn>             -- common name (CN)\n";
+  print "     -o, --org <org>           -- organiztion name\n";
+  print "     -u, --unit <unit>         -- organiztion unit name\n";
+  print "     -c, --country <country>   -- country code (e.g., US)\n";
+  print "     -p, --province <province> -- province name (synomynous w/ state)\n";
+  print "     -p, --state <state>       -- state name (synomynous w/ province)\n";
+  print "     -l, --locality <locality> -- locality name (e.g, town)\n";
+  print "     -s, --san <san>           -- subjectAltName, repeat for each <san>\n";
+  print "                               -- <san> value format (<FMT>:<VAL>):\n";
+  print "                               --   dirName:/usr/share/snmp/tls\n";
+  print "                               --   DNS:net-snmp.org\n";
+  print "                               --   email:admin\@net-snmp.org\n";
+  print "                               --   IP:192.168.1.1\n";
+  print "                               --   RID:1.1.3.6\n";
+  print "                               --   URI:http://net-snmp.org\n";
+  print "\n   FORMAT OPTIONS (<format-opts>): \n";
+  print "     --brief        -- minimized output (values only where applicable)\n";
+  print "     --text         -- full text description\n";
+  print "     --subject      -- subject description\n";
+  print "     --subject_hash -- hash of subject for indexing\n";
+  print "     --issuer       -- issuer description\n";
+  print "     --issuer_hash  -- hash of issuer for indexing\n";
+  print "     --fingerprint  -- SHA1 digest of DER\n";
+  print "     --serial       -- serial number\n";
+  print "     --modulus      -- modulus of the public key\n";
+  print "     --dates        -- start and end dates\n";
+  print "     --purpose      -- displays allowed uses\n";
+  print "     --C            -- C code description\n";
+  print "\n   EXAMPLES: \n";
+  print "     net-snmp-cert genca --cn ca-net-snmp.org --days 1000\n";
+  print "     net-snmp-cert genca -f .snmp/net-snmp-cert.conf -i nocadm -I\n";
+  print "     net-snmp-cert gencert -t snmpd --cn host.net-snmp.org\n";
+  print "     net-snmp-cert gencsr -t snmpapp\n";
+  print "     net-snmp-cert signcsr --csr snmpapp --with-ca ca-net-snmp.org\n";
+  print "     net-snmp-cert showcerts --subject --issuer --dates snmpapp\n";
+  print "     net-snmp-cert showcas --fingerprint ca-net-snmp.org --brief\n";
+  print "     net-snmp-cert import ca-third-party.crt\n";
+  print "     net-snmp-cert import signed-request.crt signed-request.key\n\n";
+
+  exit $ret;
+}
+
+sub set_default {
+  my $opts = shift;
+  my $config = shift;
+  my $field = shift;
+  my $val = shift;
+
+  if (not defined $opts->{$field}) {
+    my $cval = $config->inherit($field);
+    $opts->{$field} = (defined $cval ? $cval : $val);
+  }
+}
+
+sub cfg_path {
+  my $path;
+
+  $path = `$NetSNMP::Cert::CFGTOOL --snmpconfpath`;
+  chomp $path;
+  return (wantarray ? split(':', $path) : $path);
+}
+
+sub find_cfgfile {
+  my $dir = shift;
+  my $file = shift;
+
+  if (defined $dir and -d $dir and 
+      defined $file and $file !~ /^[\.\/]/) {
+    return fq_rel_path("$dir/$file") if -f "$dir/$file";
+  }
+
+  if (defined $file) {
+    if (-f $file) {
+      return fq_rel_path($file);
+    } else {
+      return $file; # file is not found, complain later
+    }
+  }
+
+  my @path = cfg_path();
+  unshift(@path, $dir) if defined $dir;
+  while (@path) {
+    my $p = pop(@path);
+    next if $p eq '/var/lib/snmp';
+    if (-r "$p/$NetSNMP::Cert::CFGFILE") {
+      return fq_rel_path("$p/$NetSNMP::Cert::CFGFILE");
+    }
+  }
+
+  return $file;
+}
+
+sub find_cfgdir {
+  my $dir = shift;
+  my $file = shift;
+
+  if (defined $dir) {
+    $dir = NetSNMP::Cert::fq_rel_path($dir);
+    return $dir;
+  }
+
+  if (defined $file and -f $file) {
+    $dir = ::dirname($file);
+    return NetSNMP::Cert::fq_rel_path($dir);
+  } else {
+    my @path = cfg_path();
+    # search first for writeable tls dir
+    # for root search top down, for user bottom up
+    while (@path) {
+      $dir = ($> ? pop(@path): shift(@path));
+      next if $dir eq '/var/lib/snmp';
+      return $dir if -d "$dir/$NetSNMP::Cert::TLSDIR" and -w "$dir/$NetSNMP::Cert::TLSDIR";
+    }
+    @path = cfg_path();
+    # if no tls dir found, pick first writable config dir
+    # for root search top down, for user bottom up
+    while (@path) {
+      $dir = ($> ? pop(@path): shift(@path));
+      next if $dir eq '/var/lib/snmp';
+      return $dir if -d $dir and -w $dir;
+    }
+    my $home = $ENV{HOME} || die "Unable to determine home directory: set \$HOME\n";
+    return ($> ? "$home/.snmp" : "/usr/share/snmp"); # XXX hack - no dirs existed or were writable
+  }
+  # this should never happen
+  return undef;
+}
+
+sub find_certs {
+  my $opts = shift;
+  my $dir = shift || 'certs';
+  my $targ = shift;
+  my $suffix_regex;
+  my $cwd = ::getcwd();
+
+  if ($dir eq 'csrs') {
+    $dir = $NetSNMP::Cert::NEWCRTDIR;
+    $suffix_regex = '\.csr|\.pem';
+  } else {
+    $suffix_regex = '\.crt|\.pem';
+  }
+
+  NetSNMP::Cert::dprint("find_certs(1:$cwd):$dir:$targ:$suffix_regex\n", $opts);
+
+  if ($targ =~ /\.?\//) {
+    # see if targ could be file - calc orig. rel. path
+    my $arg = NetSNMP::Cert::fq_rel_path($targ, $opts->{'rdir'});
+    NetSNMP::Cert::dprint("find_certs(2):$dir:$targ:$arg\n", $opts);
+    # targ is a file name - use it
+    return (wantarray ? ($arg) : $arg) if -f $arg;
+    # else mark as dir if it is
+    $targ = "$arg" if -d $arg;
+  }
+
+  $targ =~ s/\/*$/\// if -d $targ;
+
+  NetSNMP::Cert::dprint("find_certs(3):$dir:$targ\n", $opts);
+
+  # find certs in targ if a dir (in tlsdir, or relative)
+  $dir = $1 if $targ =~ s/^(\S+)\/([^\/\s]*)$/$2/ and -d $1;
+
+  NetSNMP::Cert::dprint("find_certs(4):${dir}:$targ:$cwd\n", $opts);
+
+  my @certs;
+  my $glob = "$dir/$targ";
+  foreach (<$dir/*>) {
+    NetSNMP::Cert::dprint("checking($dir:$targ): $_\n", $opts);
+    next unless /^$dir\/$targ(.*$suffix_regex)?$/;
+    # return exact match if not wantarray()
+    return $_ if (not wantarray()) and /^$dir\/$targ($suffix_regex)?$/;
+    NetSNMP::Cert::dprint("pushing: $_\n", $opts);
+    push(@certs, $_);
+  }
+
+  return (wantarray ? @certs : $certs[0]);
+}
+
+sub check_output_file {
+  my $opts = shift;
+  my $file = shift;
+  my $interactive = shift;
+  my $force = shift;
+  my $continue = 1;
+
+  if (-w $file) {
+    if ($interactive and not $force) {
+      print "Output file ($file) exists; will be overwritten\nContinue [y/N]: ";
+      $continue = <STDIN>; chomp $continue;
+      $continue = 0 if $continue =~ /^\s*$|^no?\s*$/i;
+    } else {
+      if ($force) {
+	NetSNMP::Cert::vprint("Output file ($file) exists; overwriting...\n", $opts);
+      } else {
+	NetSNMP::Cert::vprint("Output file ($file) exists; exiting...\n", $opts);
+	$continue = 0;
+      }
+    }
+  } elsif (-e $file) {
+    NetSNMP::Cert::vprint("Output file ($file) not writable; exiting...\n", $opts);
+    $continue = 0;
+  }
+  exit(1) unless $continue;
+}
+
+sub is_server {
+  my $tag = shift;
+  return 1 if $tag eq 'snmpd' or $tag eq 'snmptrapd';
+  return 0;
+}
+
+sub is_ca_cert {
+  my $crt = shift;
+  my $output = `openssl x509 -in '$crt' -text -noout`;
+  return ($output =~ /^\s*CA:TRUE\s*$/m ? 1 : 0);
+}
+
+sub x509_format {
+  my $opts = shift;
+  my $fmt;
+
+  foreach my $f (@NetSNMP::Cert::X509FMTS) {
+    $fmt .= " -$f" if defined $opts->{$f};
+  }
+
+  return $fmt;
+}
+
+sub make_openssl_conf {
+  my $file = shift;
+  return if -r $file;
+
+  open(F, ">$file") or die("could not open $file");
+
+  print F <<'END';
+#
+# Net-SNMP (D)TLS OpenSSL configuration file.
+#
+
+rdir            = .
+dir		= $ENV::DIR
+RANDFILE	= $rdir/.rand
+MD		= sha1
+KSIZE		= 2048
+CN		= net-snmp.org
+EMAIL		= admin@net-snmp.org
+COUNTRY	        = US
+STATE		= CA
+LOCALITY	= Davis
+ORG		= Net-SNMP
+ORG_UNIT	= Development
+SAN             = email:copy
+DAYS            = 365
+CRLDAYS         = 30
+
+default_days	= $ENV::DAYS		# how long to certify for
+default_crl_days= $ENV::CRLDAYS		# how long before next CRL
+default_md	= $ENV::MD		# which md to use.
+
+database	= $dir/.index		# database index file.
+serial		= $dir/.serial 		# The current serial number
+certs		= $rdir/certs		# identity certs
+new_certs_dir	= $dir/newcerts	# default place for new certs.
+ca_certs_dir	= $rdir/ca-certs	# default place for new certs.
+key_dir		= $rdir/private
+
+crl_dir		= $dir/crl		# crl's
+crlnumber	= $dir/.crlnumber	# the current crl number
+					# must be commented out to leave V1 CRL
+crl		= $crl_dir/crl.pem	# The current CRL
+
+preserve	= no			# keep passed DN ordering
+unique_subject	= yes			# Set to 'no' to allow creation of
+					# certificates with same subject.
+# Extra OBJECT IDENTIFIER info:
+oid_section		= new_oids
+
+[ new_oids ]
+
+# Add new OIDs in here for use by 'ca' and 'req'.
+# Add a simple OID like this:
+# testoid1=1.2.3.4
+# Use config file substitution like this:
+# testoid2=${testoid1}.5.6
+
+####################################################################
+[ ca ]
+default_ca	= CA_default		# The default ca section
+
+####################################################################
+[ CA_default ]
+# certificate	= $ca_certs_dir/$ENV::TAG.crt 	# CA certificate so sign with
+name_opt 	= ca_default		# Subject Name options
+cert_opt 	= ca_default		# Certificate field options
+policy		= policy_match
+copy_extensions = copy                  # copy v3 extensions (subjectAltName)
+subjectAltName  = copy
+
+# For the CA policy
+[ policy_match ]
+countryName		= match
+stateOrProvinceName	= match
+organizationName	= match
+organizationalUnitName	= optional
+commonName		= supplied
+emailAddress		= optional
+
+# For the 'anything' policy
+# At this point in time, you must list all acceptable 'object'
+# types.
+[ policy_anything ]
+countryName		= optional
+stateOrProvinceName	= optional
+localityName		= optional
+organizationName	= optional
+organizationalUnitName	= optional
+commonName		= supplied
+emailAddress		= optional
+
+####################################################################
+[ req ]
+default_bits		= $ENV::KSIZE
+default_md		= $ENV::MD
+distinguished_name	= req_distinguished_name
+string_mask 		= MASK:0x2002
+req_extensions          = v3_req
+x509_extensions         = v3_user_create
+
+[ req_distinguished_name ]
+countryName			= Country Name (2 letter code)
+countryName_default		= $ENV::COUNTRY
+countryName_min			= 2
+countryName_max			= 2
+
+stateOrProvinceName		= State or Province Name (full name)
+stateOrProvinceName_default	= $ENV::STATE
+
+localityName			= Locality Name (eg, city)
+localityName_default		= $ENV::LOCALITY
+
+0.organizationName		= Organization Name (eg, company)
+0.organizationName_default	= $ENV::ORG
+
+organizationalUnitName		= Organizational Unit Name (eg, section)
+organizationalUnitName_default	= $ENV::ORG_UNIT
+
+commonName			= Common Name (eg, your name or your server\'s hostname)
+commonName_max			= 64
+commonName_default              = $ENV::CN
+
+emailAddress			= Email Address
+emailAddress_max		= 64
+emailAddress_default            = $ENV::EMAIL
+
+[ v3_req ]
+
+# Extensions to add to a certificate request
+basicConstraints = CA:FALSE
+
+# Import the email address and/or specified SANs.
+%[subjectAltName = $ENV::SAN]
+
+[ v3_user_create ]
+
+# Extensions to add to a certificate request
+basicConstraints = CA:FALSE
+#keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+# PKIX recommendation.
+subjectKeyIdentifier = hash
+authorityKeyIdentifier = keyid:always,issuer:always
+
+# Import the email address and/or specified SANs.
+%[subjectAltName = $ENV::SAN]
+
+[ v3_ca_create ]
+# Extensions to add to a CA certificate
+basicConstraints = CA:TRUE
+# This will be displayed in Netscape's comment listbox.
+nsComment = "OpenSSL Generated Certificate (net-snmp)"
+
+# PKIX recommendation.
+subjectKeyIdentifier = hash
+authorityKeyIdentifier = keyid:always,issuer:always
+
+# Import the email address and/or specified SANs.
+%[subjectAltName = $ENV::SAN]
+
+[ v3_ca_sign ]
+# Extensions to add when 'ca' signs a request.
+basicConstraints = CA:FALSE
+# This will be displayed in Netscape's comment listbox.
+nsComment = "OpenSSL Generated Certificate (net-snmp)"
+
+keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier = hash
+authorityKeyIdentifier = keyid:always,issuer:always
+
+[ v3_ca_sign_ca ]
+# Extensions to add when 'ca' signs a ca request.
+basicConstraints = CA:TRUE
+
+# This will be displayed in Netscape's comment listbox.
+nsComment = "OpenSSL Generated Certificate (net-snmp)"
+
+# PKIX recommendations harmless if included in all certificates.
+subjectKeyIdentifier = hash
+authorityKeyIdentifier = keyid:always,issuer:always
+
+END
+
+}
+
+
+package NetSNMP::Cert::Obj;
+
+sub new {
+  my $class = shift;
+  my $cfield = shift;
+  my $parent = shift;
+  my $ind = shift;
+  my $this = {};
+  bless($this, $class);
+
+  # initialize hash of keys which are dynamically created or internal
+  $this->{'AUTOKEYS'}{'AUTOKEYS'}++;
+
+  # store a reference to ourselves so our children can find us
+  $this->autoSet('CFIELD', $cfield);
+  $this->autoSet($cfield , $this);
+  $this->autoSet('CHILDREN', []);
+  $this->autoSet('INDEX', $ind) if defined $ind;
+
+  if (defined $parent) {
+    # cache 'APP' in all objs for easy reference
+    $this->autoSet('APP', $parent->inherit('APP'));
+    my $app = $this->{'APP'};
+
+    die("net-snmp-cert: error: no NetSNMP::Cert::App context provided")
+      if not defined $app or not ref $app eq 'NetSNMP::Cert::App';
+    # save children for list traversal
+    push(@{$parent->{'CHILDREN'}}, $this) unless $parent eq $this;
+  } else {
+    # we are the top of the list
+    $parent = $this;
+  }
+  $this->autoSet('PARENT' , $parent);
+
+  return $this;
+}
+
+sub autoSet {
+  my $this = shift;
+  my $key = shift;
+  if (@_) {
+    my $val = shift;
+    $this->{'AUTOKEYS'}{$key}++;
+    $this->{$key} = $val;
+  }
+  return exists $this->{'AUTOKEYS'}{$key};
+}
+
+sub inherit {
+  my $this = shift;
+  my $field = shift;
+  my $id;
+
+  # cmd opts override config settings
+  if (exists $this->{'APP'} and exists $this->{'APP'}{'OPTS'}) {
+    my $opts = $this->{'APP'}{'OPTS'};
+    $id = $opts->{'identity'};
+    return $opts->{$field} if defined $opts->{$field};
+  }
+
+  if (defined $id and exists $this->{'identity'} and
+      exists $this->{'identity'}{$id} and
+      exists $this->{'identity'}{$id}{$field}) {
+    return $this->{'identity'}{$id}{$field};
+  }
+
+  # return our field if we have it
+  return $this->{$field} if defined $this->{$field};
+
+  # terminate recursion at top and return undef if not found
+  return undef if not defined $this->{'PARENT'} or $this->{'PARENT'} eq $this;
+
+  # recurse to parent
+  $this->{'PARENT'}->inherit($field);
+}
+
+sub resolve {
+  my $this = shift;
+  my $opts = $this->inherit('OPTS');
+  my $val = shift;
+
+  NetSNMP::Cert::dprint("resolving: $val\n", $opts);
+
+  $val =~ s/(\$(\w+))/$this->inherit($2) or die("unresolved reference in config: $1")/ge;
+  $val =~ s/(\&\{(.*?)\})/$2/gee;
+
+  NetSNMP::Cert::dprint("resolved: $val\n", $opts);
+
+  return $val
+}
+
+sub delete {
+  my $this = shift;
+  my $opts = $this->inherit('OPTS');
+
+  NetSNMP::Cert::dprint("Obj::delete: ($this) [$this->{CFIELD}]\n", $opts);
+
+  my $parent = $this->{'PARENT'};
+  my @children = @{$this->{'CHILDREN'}};
+
+  foreach my $child (@children) {
+    $child->delete();
+  }
+
+  NetSNMP::Cert::dwarn("Obj: children not freed\n", $opts) if @{$this->{'CHILDREN'}};
+
+  # delete all our self-references
+  delete($this->{$this->{'CFIELD'}}) if exists $this->{'CFIELD'};
+  delete($this->{'PARENT'});
+  delete($this->{'CHILDREN'});
+
+  $parent->disown($this) if defined $parent and ref($parent) =~ /NetSNMP::Cert/;
+}
+
+sub disown {
+  my $this = shift;
+  my $thechild = shift;
+  my $opts = $this->inherit('OPTS');
+  my $ind = 0;
+
+  NetSNMP::Cert::dprint("Obj::disown: ($this) [$this->{CFIELD}] disowning ($thechild) [$thechild->{CFIELD}]\n", $opts);
+
+  foreach my $child (@{$this->{'CHILDREN'}}) {
+    last if $child eq $thechild;
+    $ind++;
+  }
+  if ($ind < @{$this->{'CHILDREN'}}) {
+    splice(@{$this->{'CHILDREN'}}, $ind, 1);
+  } else {
+    NetSNMP::Cert::dwarn("Child ($thechild) not found in object ($this)\n", $opts);
+  }
+}
+
+sub disabled {
+  my $this = shift;
+  return (exists $this->{'disable'} ? $this->{'disable'} : 0);
+}
+
+my %cfg = (
+	   'name' => 1,
+	   'type' => 2,
+	   'id' => 6,
+	  );
+
+sub cfgsort {
+  my $self = shift;
+  my $a = shift;
+  my $b = shift;
+  return -1 if exists $cfg{$a} and not exists $cfg{$b};
+  return 1 if exists $cfg{$b} and not exists $cfg{$a};
+  return $cfg{$a} <=> $cfg{$b} if exists $cfg{$a} and exists $cfg{$b};
+  return -1 if !ref($self->{$a}) and ref($self->{$b});
+  return 1 if !ref($self->{$b}) and ref($self->{$a});
+  return -1 if ref($self->{$a}) =~ /NetSNMP::Cert/ and ref($self->{$b}) !~ /NetSNMP::Cert/;
+  return 1 if ref($self->{$b}) =~ /NetSNMP::Cert/ and ref($self->{$a}) !~ /NetSNMP::Cert/;
+  return 0;
+}
+
+sub dump {
+  my $self = shift;
+  my $indent = shift;
+  my $self_str = $self->{'CFIELD'};
+  my @data_keys =  grep {!$self->autoSet($_)} keys %$self;
+  my @lines;
+
+  push(@lines, "\n" . ' ' x $indent . "$self_str = {\n") if defined $indent;
+
+  {
+    my $indent = (defined $indent ? $indent + 3 : 0);
+    foreach my $key (sort {cfgsort($self,$NetSNMP::Cert::Obj::a,
+				   $NetSNMP::Cert::Obj::b)} (sort @data_keys)) {
+      if (ref($self->{$key}) =~ /NetSNMP::Cert/) {
+	push(@lines, $self->{$key}->dump($indent));
+      } elsif (ref($self->{$key}) =~ /ARRAY/) {
+	push(@lines, "\n") if ref(${$self->{$key}}[0]) !~ /NetSNMP::Cert/;
+	foreach my $elem (@{$self->{$key}}) {
+	  if (ref($elem) =~ /NetSNMP::Cert/) {
+	    push(@lines, $elem->dump($indent));
+	  } else {
+	    push(@lines, ' ' x $indent . "$key = $elem\n");
+	  }
+	}
+      } else {
+	my $str = $key . (defined $self->{$key} ? " = $self->{$key}\n" : "\n");
+	push(@lines, ' ' x $indent . $str);
+      }
+    }
+  }
+
+  push(@lines, ' ' x $indent . "}; # end $self_str\n") if defined $indent;
+  return @lines;
+}
+
+sub DESTROY {
+  my $this = shift;
+
+  print("Obj::DESTROY $this [", ref $this, "]\n") if $NetSNMP::Cert::DEBUG >= 3;
+}
+
+package NetSNMP::Cert::App;
+use vars qw(@ISA);
+
+@ISA = qw(NetSNMP::Cert::Obj);
+
+sub new {
+  my $class = shift;
+
+  # the app is god, it is its own parent
+  my $this = $class->SUPER::new('APP');
+
+  bless($this, $class);
+
+  # verify required tools or die
+  $this->checkReqs();
+
+  # internal intitialization
+  $this->initOpts();
+
+  # make a new empty config and init (not parsed)
+  $this->{'config'} = new NetSNMP::Cert::Config($this);
+
+  return $this;
+}
+
+sub checkReqs {
+  my $app = shift;
+
+  die("$NetSNMP::Cert::OPENSSL does not exist or is not executable")
+    if system("$NetSNMP::Cert::OPENSSL version > /dev/null 2>&1");
+
+  my $ossl_ver = `$NetSNMP::Cert::OPENSSL version`; chomp $ossl_ver;
+  $ossl_ver =~ s/^OpenSSL\s+([\d\.]+).*$/$1/;
+  my $ossl_min_ver = $NetSNMP::Cert::OPENSSL_MIN_VER;
+
+  die("$NetSNMP::Cert::OPENSSL (v$ossl_ver): must be $ossl_min_ver or later")
+    if ($ossl_ver cmp $ossl_min_ver) < 0;
+
+  die("$NetSNMP::Cert::CFGTOOL not found: please install")
+    if system("$NetSNMP::Cert::CFGTOOL > /dev/null 2>&1");
+}
+
+sub initOpts {
+  my $app = shift;
+  my $opts = {};
+  $app->autoSet('OPTS', $opts);
+
+  # Define directories we need.
+  $opts->{'bindir'} = NetSNMP::Cert::find_bin_dir();
+
+  $opts->{'out'} = "> $NetSNMP::Cert::OUTLOG";
+  $opts->{'err'} = "2> $NetSNMP::Cert::ERRLOG";
+
+  # set up paths for app install and runtime env
+  $ENV{PATH} = "/sbin:/usr/sbin:$ENV{PATH}";
+  $ENV{PATH} = "$opts->{'bindir'}:$ENV{PATH}";
+
+  # default all privs to -rw-------
+  umask(077);
+}
+
+sub init {
+  my $app = shift;
+  my $opts = $app->{'OPTS'};
+  my $config = $app->{'config'};
+  my @args = @_;   # pass external args (typically ARGV)
+
+  # parse command line
+  $app->parseArgs(@args);
+
+  # lazy config parsing postponed until here, will not reparse
+  $config->parse();
+
+  # set defaults here if not already set in cmdline or config
+  # guided interactive mode by default
+  NetSNMP::Cert::set_default($opts, $config, 'interactive', 1);
+  # verbose output
+  NetSNMP::Cert::set_default($opts, $config, 'verbose', 1);
+
+  # find tlsdir/subdirs or make it
+  $opts->{'tlsdir'} = $app->createTlsDir();
+}
+
+sub parseArgs {
+  my $app = shift;
+  my $opts = $app->{'OPTS'};
+  my @args = @_;
+
+  NetSNMP::Cert::GetOptsFromArray(\@args, $opts, 'help|?', 'version|V',
+		      'interactive!', 'I', 'verbose!', 'Q', 'force|F',
+		      'cfgfile|f=s', 'cfgdir|C=s', 'tlsdir|tlsDir|T=s',
+		      'tag|t=s', 'identity|i=s', 'debug|D+',);
+
+  NetSNMP::Cert::version(0) if $opts->{'version'};
+
+  NetSNMP::Cert::usage(0) if $opts->{'help'};
+
+  # pull out the cmd - getOpts should leave it untouched for us
+  $opts->{'cmd'} = NetSNMP::Cert::pull_cmd(\@args);
+
+  # save extra args for command specific processing
+  $opts->{'cmdargs'} = [@args];
+
+  # Check debug option first
+  $NetSNMP::Cert::DEBUG = $opts->{'debug'};
+  $opts->{'err'} = $opts->{'out'} = "" if $opts->{'debug'};
+  $opts->{'interactive'} = not $opts->{'I'} if defined $opts->{'I'};
+  $opts->{'verbose'} = not $opts->{'Q'} if defined $opts->{'Q'};
+
+  # search for cfgdir and cfgfile based on opts and confpath
+  $opts->{'cfgdir'} = NetSNMP::Cert::find_cfgdir($opts->{'cfgdir'},
+						 $opts->{'cfgfile'});
+  $opts->{'cfgfile'} = NetSNMP::Cert::find_cfgfile($opts->{'cfgdir'},
+						   $opts->{'cfgfile'});
+}
+
+sub createTlsDir {
+  my $app = shift;
+  my $opts = $app->{'OPTS'};
+  my $config = $app->{'config'};
+  my $dir;
+  my $file;
+  my $cmd;
+
+  $dir = $config->inherit('tlsDir');
+
+  if (not defined $dir) {
+    my $cfgdir = $opts->{'cfgdir'};
+    die("undefined cfgdir: unable to creat tlsdir: exiting...\n") unless defined $cfgdir;
+    $dir = "$cfgdir/$NetSNMP::Cert::TLSDIR";
+  }
+
+  NetSNMP::Cert::dprint("tlsDir is: $dir\n", $opts);
+  $dir = NetSNMP::Cert::fq_rel_path($dir);
+  NetSNMP::Cert::dprint("tlsDir is: $dir\n", $opts);
+
+  NetSNMP::Cert::dprint("tlsDir not found, creating\n", $opts) unless -d $dir;
+  NetSNMP::Cert::make_dirs($opts, $dir, 0700, @NetSNMP::Cert::TLSDIRS);
+
+  my $ssl_cfg_in = NetSNMP::Cert::fq_rel_path($NetSNMP::Cert::SSLCFGIN,$dir);
+
+  # Existing openssl.conf tmpl will be preserved
+  if (-f $ssl_cfg_in) {
+    NetSNMP::Cert::dwarn("OpenSSL template exists: preserving...", $opts);
+  }
+
+  if (not -f $ssl_cfg_in) {
+    NetSNMP::Cert::dprint("make_openssl_conf($ssl_cfg_in)", $opts);
+    NetSNMP::Cert::make_openssl_conf($ssl_cfg_in);
+    chmod(0600, $ssl_cfg_in);
+  }
+
+  NetSNMP::Cert::dprint("createTlsDir: done\n", $opts);
+  return $dir;
+}
+
+my @interactive_ops = (['gencert', "Generate a signed certificate"],
+	   ['genca', "Generate a CA certificate"],
+	   ['gencsr', "Generate a Certificate Signing Request"],
+	   ['signcsr', "Sign a Certificate Signing Request"],
+	  );
+
+sub run {
+  my $app = shift;
+  my $opts = $app->{'OPTS'};
+  my $cmd = $opts->{'cmd'};
+
+  # must have a command in non-Interactive mode
+  NetSNMP::Cert::usage(3) if !$opts->{'interactive'} and !$opts->{'cmd'};
+
+  #  change dir tls dir - the cwd for all commands - save cwd first
+  $opts->{'rdir'} = ::getcwd();
+  chdir($opts->{'tlsdir'}) or die("could'nt change directory: $opts->{tlsdir}");
+  # display context
+  NetSNMP::Cert::dprint("PATH: $ENV{PATH}\n\n", $opts);
+  NetSNMP::Cert::dprint("config file: $opts->{cfgfile}\n", $opts);
+  NetSNMP::Cert::dprint("config dir:  $opts->{cfgdir}\n", $opts);
+  NetSNMP::Cert::dprint("tls dir:     $opts->{tlsdir}\n", $opts);
+
+  my $cmdstr = join(' ', $cmd, @{$opts->{'cmdargs'}});
+  NetSNMP::Cert::dprint("command:     $cmdstr\n", $opts);
+
+  NetSNMP::Cert::GetOptsFromArray(\@{$opts->{'cmdargs'}}, $opts,
+				  'with-ca|a=s', 'ca|A=s','csr|r=s',
+				  'from-crt|x=s', 'crt|X=s', 'days|d=s',
+				  'cn|n=s', 'email|e=s', 'host|h=s',
+				  'san|s=s@', 'org|o=s', 'unit|u=s',
+				  'country|c=s', 'state|province|p=s',
+				  'locality|l=s', 'brief|b',
+				  @NetSNMP::Cert::X509FMTS);
+
+  # process extra args; --<cfg-name>[=<val>]
+  $app->processExtraArgs();
+
+  # If in interactive mode - fill missing info by interviewing user
+  if (not defined $cmd or grep {/$cmd/} map {$_->[0]} @interactive_ops) {
+    $app->userInput() if $opts->{interactive};
+    $cmd = $opts->{'cmd'}; # may have changed
+  }
+
+  # resolve input args to filenames
+  $app->resolveCrtArgs();
+
+  # use env. or merge template for OpenSSL config
+  $NetSNMP::Cert::SSLCFG ||= $app->opensslCfg();
+
+  if ($cmd =~ /^genca$/) {
+    NetSNMP::Cert::usage(1) if defined $opts->{'from-crt'} or defined $opts->{'csr'};
+    $app->genCa($opts->{'with-ca'});
+  } elsif ($cmd =~ /^gence?rt$/) {
+    NetSNMP::Cert::usage(1) if defined $opts->{'from-crt'} or defined $opts->{'csr'};
+    $app->genCert($opts->{'with-ca'});
+  } elsif ($cmd =~ /^gencsr$/) {
+    NetSNMP::Cert::usage(1) if defined $opts->{'with-ca'} or defined $opts->{'crt'};
+    $app->genCsr();
+  } elsif ($cmd =~ /^signcsr$/) {
+    NetSNMP::Cert::usage(1) unless defined $opts->{'with-ca'} and defined $opts->{'csr'};
+    $app->signCsr();
+  } elsif ($cmd =~ /^show(ce?rts?)?$/) {
+    $app->show('certs');
+  } elsif ($cmd =~ /^showcas?$/) {
+    $app->show('ca-certs');
+  } elsif ($cmd =~ /^import$/) {
+    $app->import();
+  } else {
+    NetSNMP::Cert::usage();
+  }
+}
+
+sub processExtraArgs {
+  my $app = shift;
+  my $opts = $app->{'OPTS'};
+  my @args;
+
+  NetSNMP::Cert::dprint("processing extra args...\n", $opts);
+
+  while (@{$opts->{'cmdargs'}}) {
+    my $arg = shift(@{$opts->{'cmdargs'}});
+    NetSNMP::Cert::dprint("found: arg --> $arg\n", $opts);
+    if ($arg =~ /^-+(\w+)(?:=(.*?))?\s*$/) {
+      NetSNMP::Cert::dprint("found: arg($1) val($2)\n", $opts);
+      if (exists $opts->{$1}) {
+   	NetSNMP::Cert::vwarn("option ($1) already set: overwriting\n", $opts);
+      } 
+      $opts->{$1} = (defined $2 ? $2 : 1);
+    } else {
+      push(@args, $arg);
+    }
+  }
+  @{$opts->{'cmdargs'}} = @args;
+}
+
+sub resolveCrtArgs {
+  my $app = shift;
+  my $opts = $app->{'OPTS'};
+
+  # find ca, crt, csr args if present and return fully qualified path
+  if (defined $opts->{'with-ca'}) {
+    my $ca;
+    $ca = NetSNMP::Cert::find_certs($opts, 'ca-certs', $opts->{'with-ca'});
+    die("unable to locate CA certificate ($opts->{'with-ca'})\n") unless -e $ca;
+    die("unable read CA certificate ($opts->{'with-ca'})\n") unless -r $ca;
+    $opts->{'with-ca'} = $ca;
+  }
+
+  if (defined $opts->{'from-crt'}) {
+    my $crt;
+    $crt = NetSNMP::Cert::find_certs($opts, 'certs', $opts->{'from-crt'});
+    die("unable to locate certificate ($opts->{'from-crt'})\n") unless -e $crt;
+    die("unable read certificate ($opts->{'from-crt'})\n") unless -r $crt;
+    $opts->{'from-crt'} = $crt;
+  }
+
+  if (defined $opts->{'csr'}) {
+    my $csr;
+    $csr = NetSNMP::Cert::find_certs($opts, 'csrs', $opts->{'csr'});
+    die("unable to locate CSR certificate ($opts->{csr})\n") unless -e $csr;
+    die("unable read CSR certificate ($opts->{csr})\n") unless -r $csr;
+    $opts->{'csr'} = $csr;
+  }
+}
+
+sub opensslCfg {
+  my $app = shift;
+  my $config = $app->{'config'};
+  my $opts = $app->{'OPTS'};
+  my $san = $config->inherit('san') || $config->inherit('subjectAltName');
+  my $ssl_cfg_in = NetSNMP::Cert::fq_rel_path($NetSNMP::Cert::SSLCFGIN);
+  my $ssl_cfg_out = NetSNMP::Cert::fq_rel_path($NetSNMP::Cert::SSLCFGOUT);
+
+  if (not -f $ssl_cfg_in) {
+    NetSNMP::Cert::vwarn("OpenSSL template not found: $ssl_cfg_in\n", $opts);
+    die("no OpenSSL template");
+  }
+
+  open(IN, $ssl_cfg_in) or die("unable to open OpenSSL template: $ssl_cfg_in\n");
+  open(OUT, ">$ssl_cfg_out") or die("unable to open OpenSSL config: $ssl_cfg_out\n");
+
+  print OUT "#######################################################\n";
+  print OUT "#####    Warning: Do Not Edit - Generated File    #####\n";
+  print OUT "#######################################################\n";
+  while (<IN>) {
+    if ($san) {
+      s/\%\[([^\]]*?)\]/$1/;
+    } else {
+      s/\%\[([^\]]*?)\]//;
+    }
+    print OUT $_;
+  }
+  close(IN);
+  close(OUT);
+
+  return $ssl_cfg_out;
+}
+
+sub opensslEnv {
+  my $app = shift;
+  my $config = $app->{'config'};
+  my $opts = $app->{'OPTS'};
+
+  my $cn = shift;
+  my $days = shift;
+  my $dir = shift || ".";
+  # XXX - need to handle config'd identity here
+  my $name = $config->inherit("name");
+  my $host = $config->inherit("host");
+  my $email = $config->inherit("email");
+  my $country = $config->inherit("country");
+  my $state = $config->inherit("state");
+  my $locality = $config->inherit("locality");
+  my $org = $config->inherit("org");
+  my $org_unit = $config->inherit("unit") || $config->inherit("orgUnit");
+  my $san;
+  my $san_arr_ref;
+  my $md = $config->inherit("msgDigest");
+  my $ksize = $config->inherit("keySize");
+
+  my $env;
+
+  $env .= " KSIZE=$ksize" if defined $ksize;
+  $env .= " DAYS=$days" if defined $days;
+  $env .= " MD=$md" if defined $md;
+
+  $env .= " DIR='$dir'" if defined $dir;
+
+  $env .= " EMAIL=$email" if defined $email;
+  $env .= " CN='$cn'" if defined $cn;
+  $env .= " ORG='$org'" if defined $org;
+  $env .= " ORG_UNIT='$org_unit'" if defined $org_unit;
+  $env .= " COUNTRY=$country" if defined $country;
+  $env .= " STATE=$state" if defined $state;
+  $env .= " LOCALITY=$locality" if defined $locality;
+
+  $san_arr_ref = $config->inherit('subjectAltName');
+  $san = join('\,\ ', @{$san_arr_ref}) if ref $san_arr_ref;
+  $san_arr_ref = $config->inherit('san');
+  $san .= join('\,\ ', @{$san_arr_ref}) if ref $san_arr_ref;
+  $san =~ s/EMAIL:/email:/g;
+  $env .= " SAN=$san" if defined $san;
+
+  NetSNMP::Cert::dprint("opensslEnv: $env\n", $opts);
+
+  return $env;
+}
+our @san_prefix = (['dirName:', "e.g., dirName:/usr/share/snmp/tls"],
+		   ['DNS:', "e.g., DNS:test.net-snmp.org)"],
+		   ['email:', "e.g., email:admin\@net-snmp.org"],
+		   ['IP:', "e.g., IP:192.168.1.1"],
+		   ['RID:', "e.g., RID:1.1.3.6.20"],
+		   ['URI:', "e.g., URI:http://www.net-snmp.org"]);
+
+sub userInputDN {
+  my $app = shift;
+  my $config = $app->{'config'};
+  my $opts = $app->{'OPTS'};
+  my $prompt;
+  my $ret;
+  my $host = $config->inherit("host") || ::hostname();
+  my $email = $config->inherit('email') || getlogin() . "\@$host";
+
+ # get EMAIL
+  $prompt = "Enter Email";
+  $ret = $email;
+  $prompt .= (defined $ret ? " [$ret]: " : ": ");
+  $ret = NetSNMP::Term::Complete($prompt, $ret,
+				 "\tEmail Address - (e.g., <name>@<domain>)");
+  $email = $opts->{'email'} = $ret if defined $ret;
+  # get CN
+  $prompt = "Enter Common Name";
+  $ret = ($opts->{'cmd'} eq 'genca' ? "ca-$host" : $email);
+  $ret = $config->inherit('cn') || $config->inherit('commonName') || $ret;
+  $prompt .= (defined $ret ? " [$ret]: " : ": ");
+  $ret = NetSNMP::Term::Complete($prompt, $ret,
+				 "\tCommon Name - (e.g., net-snmp.org)");
+  $opts->{'cn'} = $ret if defined $ret;
+  # get ORG
+  $prompt = "Enter Organization";
+  $ret = $config->inherit('org') || 'Net-SNMP';
+  $prompt .= (defined $ret ? " [$ret]: " : ": ");
+  $ret = NetSNMP::Term::Complete($prompt, $ret,
+				 "\tOrganization - (e.g., Net-SNMP)");
+  $opts->{'org'} = $ret if defined $ret;
+  # get ORG_UNIT
+  $prompt = "Enter Organizational Unit";
+  $ret = $config->inherit('unit') || 'Development';
+  $prompt .= (defined $ret ? " [$ret]: " : ": ");
+  $ret = NetSNMP::Term::Complete($prompt, $ret,
+				 "\tOrganizational Unit - (e.g., Development)");
+  $opts->{'unit'} = $ret if defined $ret;
+  # get COUNTRY
+  $prompt = "Enter Country Code";
+  $ret = $config->inherit('country') || 'US';
+  $prompt .= (defined $ret ? " [$ret]: " : ": ");
+  $ret = NetSNMP::Term::Complete($prompt, $ret,
+				 "Country Code, 2 letters (<tab> for options)",
+				 $NetSNMP::Cert::MATCH, \@CC);
+  $opts->{'country'} = $ret if defined $ret;
+  # get STATE(Province)
+  $prompt = "Enter State or Province";
+  $ret = $config->inherit('state') || 'CA';
+  $prompt .= (defined $ret ? " [$ret]: " : ": ");
+  $ret = NetSNMP::Term::Complete($prompt, $ret,
+				 "\tState or Province - (e.g., CA)");
+  $opts->{'state'} = $ret if defined $ret;
+  # get LOCALITY
+  $prompt = "Enter Locality";
+  $ret = $config->inherit('locality') || 'Davis';
+  $prompt .= (defined $ret ? " [$ret]: " : ": ");
+  $ret = NetSNMP::Term::Complete($prompt, $ret, "\tLocality - (e.g., Davis)");
+  $opts->{'locality'} = $ret if defined $ret;
+  # get SAN (loop)
+  if (!$config->{'brief'}) {
+      print "Enter Subject Alt Names.  Examples:\n";
+      foreach my $pair (@san_prefix) {
+	  printf("\t%-10.10s %s\n", $pair->[0], $pair->[1]);
+      }
+  }
+  do {
+    $ret = 'done';
+    $prompt = "Enter Subject Alt Name (enter 'done' when finished) [$ret]: ";
+    $ret = NetSNMP::Term::Complete ($prompt, $ret,
+			    "\tSubject Alt Name - (<type>:<val>)",
+			     $NetSNMP::Cert::PREMATCH, \@san_prefix);
+    push(@{$opts->{'san'}}, $ret) if defined $ret and $ret ne 'done';
+  } while (defined $ret and $ret ne 'done');
+}
+
+our @snmp_apps = (['snmp', 'Generic Certificate'],
+		  ['snmpapp','Client Certificate'],
+		  ['snmpd','Agent Certificate'],
+		  ['snmptrapd','Trap-agent Certificate']);
+
+sub userInputTag {
+  my $app = shift;
+  my $config = $app->{'config'};
+  my $opts = $app->{'OPTS'};
+  my $ret;
+  my $prompt;
+
+  print "Application Tag:\n\tused to name the certificate and dictate its filename\n";
+  print "\tIt may also associate it with a particular application (eg \"snmpd\")\n";
+  print "\tif 'none', a name will be generated from other parameters\n";
+  print "\tenter <tab><tab> for typical options, or enter new name\n";
+  $prompt = "Enter Application Tag";
+  $ret = $config->inherit('tag') || 'none';
+  $prompt .= (defined $ret ? " [$ret]: " : ": ");
+  $ret = NetSNMP::Term::Complete($prompt, $ret,
+				 "Application Tag assocaiated with certificate",
+				 (not $NetSNMP::Cert::MATCH), \@snmp_apps);
+  $opts->{'tag'} = $ret if defined $ret and $ret ne 'none';
+}
+
+sub userInput {
+  my $app = shift;
+  my $config = $app->{'config'};
+  my $opts = $app->{'OPTS'};
+  my $prompt;
+  my $ret;
+
+  print "Choose an operation:\n";
+  foreach my $op (@interactive_ops) {
+    print "\t$op->[0]\t-  $op->[1]\n";
+  }
+
+  $prompt = "Operation";
+  $ret = $config->inherit('cmd') || $interactive_ops[0][0];
+  $prompt .= (defined $ret ? " [$ret]: " : ": ");
+  $ret = NetSNMP::Term::Complete($prompt, $ret,
+				 "Certifciate Operation to perform",
+				 $NetSNMP::Cert::MATCH, \@interactive_ops);
+
+  $opts->{'cmd'} = $ret;
+
+  if ($ret =~ /^gencert$/) {
+    # get tag
+    $app->userInputTag();
+    # get DN
+    $app->userInputDN();
+    # self-signed/CA-signed(ca-cert)
+  } elsif ($ret =~ /^genca$/) {
+    # get DN
+    $app->userInputDN();
+  } elsif ($ret =~ /^gencsr$/) {
+    # get tag
+    $app->userInputTag();
+    # get DN
+    $app->userInputDN();
+  } elsif ($ret =~ /^signcsr$/) {
+    # get csr
+    $prompt = "Choose Certificate Signing Request";
+    $ret = $config->inherit('csr');
+    $prompt .= (defined $ret ? " [$ret]: " : ": ");
+    $ret = NetSNMP::Term::Complete($prompt, $ret);
+    $opts->{'csr'} = $ret if defined $ret;
+    # get ca
+    $prompt = "Choose CA Certificate";
+    $ret = $config->inherit('with-ca');
+    $prompt .= (defined $ret ? " [$ret]: " : ": ");
+    $ret = NetSNMP::Term::Complete($prompt, $ret);
+    $opts->{'with-ca'} = $ret if defined $ret;
+  } else {
+    NetSNMP::Cert::vwarn("aborting operation: exiting...\n", $opts);
+    exit(1);
+  }
+}
+
+sub createCaDir {
+  my $app = shift;
+  my $dir = shift;
+  my $config = $app->{'config'};
+  my $opts = $app->{'OPTS'};
+  my $file;
+  my $cmd;
+
+  NetSNMP::Cert::make_dirs($opts, $dir, 0700,'newcerts','private');
+
+  $file = "$dir/$NetSNMP::Cert::SERIAL";
+  if (not -f $file) {
+    $cmd = "echo '01' > '$file'";
+    NetSNMP::Cert::dprint("$cmd\n", $opts);
+    NetSNMP::Cert::usystem($cmd, $opts);
+    chmod(0600, $file);
+  }
+
+  $file = "$dir/$NetSNMP::Cert::INDEX";
+  if (not -f $file) {
+    $cmd = "touch '$file'";
+    NetSNMP::Cert::dprint("$cmd\n", $opts);
+    NetSNMP::Cert::usystem($cmd, $opts);
+    chmod(0600, $file);
+  }
+}
+
+sub genCa {
+  my $app = shift;
+  my $config = $app->{'config'};
+  my $opts = $app->{'OPTS'};
+  my $host = $config->inherit('host') || ::hostname();
+  my $days = $config->inherit('days') || $config->inherit('caDays') || 
+             $NetSNMP::Cert::DEFCADAYS;
+  my $cn = $config->inherit('cn') || $config->inherit('commonName') ||
+           "ca-$host";
+  my $ca = $config->inherit('with-ca');
+  my $tag = $config->inherit('tag') || $cn;
+
+  # create CA dir
+  my $dir = ".ca/$tag";
+  $app->createCaDir($dir);
+
+  my $outCrt = "$NetSNMP::Cert::CADIR/$tag.crt";
+  my $outKey = "$NetSNMP::Cert::PRIVDIR/$tag.key";
+
+  # set command env
+  my $env = $app->opensslEnv($cn, $days);
+
+  NetSNMP::Cert::check_output_file($opts, $outCrt,
+				   $config->inherit('interactive'),
+				   $config->inherit('force'));
+  NetSNMP::Cert::check_output_file($opts, $outKey,
+				   $config->inherit('interactive'),
+				   $config->inherit('force'));
+
+  my $cmd = "$env openssl req -extensions v3_ca_create -new -days $days -batch -config $NetSNMP::Cert::SSLCFG -keyout '$outKey'";
+  $cmd .= " -nodes";
+
+  if (defined $ca) {
+    # we have to gen a csr and then sign it, must preserve CA:TRUE
+    my $outCsr = "$NetSNMP::Cert::NEWCRTDIR/$tag.csr";
+    NetSNMP::Cert::check_output_file($opts, $outCsr,
+				   $config->inherit('interactive'),
+				   $config->inherit('force'));
+    $cmd .= " -out '$outCsr'";
+
+    NetSNMP::Cert::dprint("genCa (gencsr): $cmd\n", $opts);
+    NetSNMP::Cert::usystem("$cmd $opts->{out} $opts->{err}", $opts);
+
+    my $ca_base = ::basename($ca, @NetSNMP::Cert::CRTSUFFIXES);
+    NetSNMP::Cert::dprint("ca_base: $ca_base\n", $opts);
+
+    # set command env
+    $env = $app->opensslEnv($cn, $days, ".ca/$ca_base");
+
+    $cmd = "$env openssl ca -extensions v3_ca_sign_ca -days $days -cert '$ca' -keyfile '$NetSNMP::Cert::PRIVDIR/$ca_base.key' -in '$outCsr' -batch -config $NetSNMP::Cert::SSLCFG -out '$outCrt'";
+
+    NetSNMP::Cert::dprint("genCa (signcsr): $cmd\n", $opts);
+    NetSNMP::Cert::usystem("$cmd $opts->{out} $opts->{err}", $opts);
+  } else {
+    $cmd .= " -x509 -out '$outCrt'";
+
+    NetSNMP::Cert::dprint("genCa: $cmd\n", $opts);
+    NetSNMP::Cert::usystem("$cmd $opts->{out} $opts->{err}", $opts);
+  }
+
+  NetSNMP::Cert::vprint("CA Generated:\n", $opts);
+  NetSNMP::Cert::vprint("  $outCrt\n", $opts);
+  NetSNMP::Cert::vprint("  $outKey\n", $opts);
+}
+
+sub genCert {
+  my $app = shift;
+  my $config = $app->{'config'};
+  my $opts = $app->{'OPTS'};
+  my $host = $config->inherit("host") || ::hostname();
+  my $email = $config->inherit("email") || getlogin() . "\@$host";
+  my $days = $config->inherit('days') || $config->inherit('crtDays') || $NetSNMP::Cert::DEFCRTDAYS;
+  my $cn = $config->inherit('cn') || $config->inherit('commonName');
+  my $ca = $config->inherit('with-ca');
+  my $cmd;
+
+  my $tag = $opts->{'tag'} || 'snmp';
+  $cn ||= (NetSNMP::Cert::is_server($tag) ? $host : $email);
+
+  my $env = $app->opensslEnv($cn, $days);
+
+  my $outCrt = "$NetSNMP::Cert::CRTDIR/$tag.crt";
+  my $outKey = "$NetSNMP::Cert::PRIVDIR/$tag.key";
+
+  NetSNMP::Cert::check_output_file($opts, $outCrt,
+				   $config->inherit('interactive'),
+				   $config->inherit('force'));
+  NetSNMP::Cert::check_output_file($opts, $outKey,
+				   $config->inherit('interactive'),
+				   $config->inherit('force'));
+
+  $cmd = "$env openssl req -extensions v3_user_create -new -days $days -keyout '$outKey' -batch -config $NetSNMP::Cert::SSLCFG";
+  $cmd .= " -nodes";
+
+  if (defined $ca) {
+    my $outCsr = "$NetSNMP::Cert::NEWCRTDIR/$tag.csr";
+    NetSNMP::Cert::check_output_file($opts, $outCsr,
+				   $config->inherit('interactive'),
+				   $config->inherit('force'));
+    $cmd .= " -out '$outCsr'";
+
+    NetSNMP::Cert::dprint("genCert (gencsr): $cmd\n", $opts);
+    NetSNMP::Cert::usystem("$cmd $opts->{out} $opts->{err}", $opts);
+
+    # XXX cleanup this temp CSR
+    my $ca_base = ::basename($ca, @NetSNMP::Cert::CRTSUFFIXES);
+    NetSNMP::Cert::dprint("ca_base: $ca_base\n", $opts);
+
+    # set command env
+    $env = $app->opensslEnv($cn, $days, ".ca/$ca_base");
+
+    $cmd = "$env openssl ca -extensions v3_ca_sign -days $days -cert '$ca' -keyfile '$NetSNMP::Cert::PRIVDIR/$ca_base.key' -in '$outCsr' -batch -config $NetSNMP::Cert::SSLCFG -out '$outCrt'";
+
+    NetSNMP::Cert::dprint("gencert (signcsr): $cmd\n", $opts);
+    NetSNMP::Cert::usystem("$cmd $opts->{out} $opts->{err}", $opts);
+  } else {
+    $cmd .= " -x509 -out '$outCrt'";
+
+    NetSNMP::Cert::dprint("genCert: $cmd\n", $opts);
+    NetSNMP::Cert::usystem("$cmd $opts->{out} $opts->{err}", $opts);
+  }
+
+  NetSNMP::Cert::vprint("Certificate Generated:\n", $opts);
+  NetSNMP::Cert::vprint("  $outCrt\n", $opts);
+  NetSNMP::Cert::vprint("  $outKey\n", $opts);
+}
+
+sub genCsr {
+  my $app = shift;
+  my $isCa = shift; # XXX - not implemented yet
+  my $config = $app->{'config'};
+  my $opts = $app->{'OPTS'};
+  my $host = $config->inherit("host") || ::hostname();
+  my $email = $config->inherit("email") || getlogin() . "\@$host";
+  my $days = $config->inherit('days') || $config->inherit('crtDays') || $NetSNMP::Cert::DEFCRTDAYS;
+  my $cn = $config->inherit('cn') || $config->inherit('commonName');
+  my $tag = $config->inherit('tag');
+  my $inCrt = $config->inherit('from-crt') || $config->inherit('fromCert');
+  my $outCsr;
+  my $csrKey;
+
+  if (defined $inCrt) {
+    $inCrt = NetSNMP::Cert::find_certs($opts, 'certs', $inCrt);
+    my $crt = ::basename($inCrt, @NetSNMP::Cert::CRTSUFFIXES);
+    $csrKey = "$NetSNMP::Cert::PRIVDIR/$crt.key";
+    $tag ||= $crt;
+  } else {
+    $tag ||= 'snmp';
+    $csrKey ||= "$NetSNMP::Cert::PRIVDIR/$tag.key";
+  }
+
+  $outCsr = "$NetSNMP::Cert::NEWCRTDIR/$tag.csr";
+
+  $cn ||= (NetSNMP::Cert::is_server($tag) ? $host : $email);
+
+  my $env = $app->opensslEnv($cn, $days);
+
+  NetSNMP::Cert::check_output_file($opts, $outCsr,
+				   $config->inherit('interactive'),
+				   $config->inherit('force'));
+  NetSNMP::Cert::check_output_file($opts, $csrKey,
+				   $config->inherit('interactive'),
+				   $config->inherit('force'));
+
+  my $cmd = (defined $inCrt ?
+  "$env openssl x509 -x509toreq -in $inCrt -out '$outCsr' -signkey '$csrKey' -nodes -days $days -batch -config $NetSNMP::Cert::SSLCFG" :
+  "$env openssl req -new -nodes -days $days -batch -keyout '$csrKey' -out '$outCsr' -config $NetSNMP::Cert::SSLCFG");
+
+  $cmd .= ($isCa ? " -extensions v3_ca_create" : " -extensions v3_user_create");
+
+  NetSNMP::Cert::dprint("genCsr: $cmd\n", $opts);
+
+  NetSNMP::Cert::usystem("$cmd $opts->{out} $opts->{err}", $opts);
+
+  NetSNMP::Cert::vprint("Certificate Signing Request Generated:\n", $opts);
+  NetSNMP::Cert::vprint("  $outCsr\n", $opts);
+  NetSNMP::Cert::vprint("  $csrKey\n", $opts);
+}
+
+sub signCsr {
+  my $app = shift;
+  my $isCa = shift;
+  my $config = $app->{'config'};
+  my $opts = $app->{'OPTS'};
+  my $host = $config->inherit("host") || ::hostname();
+  my $email = $config->inherit("email") || getlogin() . "\@$host";
+  my $days = $config->inherit('days') || $config->inherit('crtDays') || $NetSNMP::Cert::DEFCRTDAYS;
+  my $cn = $config->inherit('cn') || $config->inherit('commonName');
+  my $tag = $config->inherit('tag') || 'snmp';
+  my $install = $config->inherit('install');
+
+  $cn = (NetSNMP::Cert::is_server($tag) ? $host : $email);
+
+  my $ca = $opts->{'with-ca'};
+  NetSNMP::Cert::dprint("ca: $ca\n", $opts);
+  my $ca_base = ::basename($ca, @NetSNMP::Cert::CRTSUFFIXES);
+  NetSNMP::Cert::dprint("ca_base: $ca_base\n", $opts);
+  my $ca_key = "$NetSNMP::Cert::PRIVDIR/$ca_base.key"; 
+
+  my $csr = $opts->{'csr'};
+  NetSNMP::Cert::dprint("csr: $csr\n", $opts);
+  my $csr_base = ::basename($csr, @NetSNMP::Cert::CRTSUFFIXES);
+  NetSNMP::Cert::dprint("csr_base: $csr_base\n", $opts);
+  my $outdir = ($install ? $NetSNMP::Cert::CRTDIR : $NetSNMP::Cert::NEWCRTDIR);
+  my $outCrt = "$outdir/$csr_base.crt";
+
+  my $env = $app->opensslEnv($cn, $days, ".ca/$ca_base");
+
+  NetSNMP::Cert::check_output_file($opts, $outCrt,
+				   $config->inherit('interactive'),
+				   $config->inherit('force'));
+
+  # XXX - handle keyfile search??
+  my $cmd = "$env openssl ca -batch -days $days -extensions v3_ca_sign -cert '$ca' -keyfile '$ca_key' -in '$csr' -out '$outCrt' -config $NetSNMP::Cert::SSLCFG";
+
+  # $cmd .= ($isCa ? " -extensions v3_ca_sign_ca" : " -extensions v3_ca_sign");
+
+  NetSNMP::Cert::dprint("signCsr: $cmd\n", $opts);
+
+  NetSNMP::Cert::usystem("$cmd $opts->{out} $opts->{err}", $opts);
+
+  NetSNMP::Cert::vprint("Signed Certificate Signing Request:\n", $opts);
+  NetSNMP::Cert::vprint("  $csr\n", $opts);
+  NetSNMP::Cert::vprint("with CA:\n", $opts);
+  NetSNMP::Cert::vprint("  $ca\n", $opts);
+  NetSNMP::Cert::vprint("  $ca_key\n", $opts);
+  NetSNMP::Cert::vprint("Generated Certificate:\n", $opts);
+  NetSNMP::Cert::vprint("  $outCrt\n", $opts);
+}
+
+sub show {
+  my $app = shift;
+  my $type = shift || 'certs';
+  my $config = $app->{'config'};
+  my $opts = $app->{'OPTS'};
+  my $stag = shift(@{$opts->{'cmdargs'}});
+  my $fmt = NetSNMP::Cert::x509_format($opts) || '-subject';
+  my $brief = $config->inherit('brief');
+  my $output;
+  my $cmd;
+
+  my $cwd = ::getcwd();
+  NetSNMP::Cert::dprint("show ($cwd):$type:$stag:$fmt\n", $opts);
+  NetSNMP::Cert::vprint("$opts->{'tlsdir'}:\n", $opts) unless $brief;
+
+  foreach my $c (NetSNMP::Cert::find_certs($opts, $type, $stag)) {
+    print "\n$c:\n" unless $brief;
+    $cmd = "openssl x509 -in '$c' -noout $fmt";
+    NetSNMP::Cert::dprint("show: $cmd\n", $opts);
+
+    $output = `$cmd`; chomp $output;
+    NetSNMP::Cert::vwarn("show-$type failed ($?): $output\n", $opts) if $?;
+
+    $output =~ s/^[^\n=]+=// if $brief;
+
+    print "$output\n";
+    print "\n" unless $brief;
+  }
+}
+
+sub import_file {
+  my ($file, $suffix, $targ, $rdir, $tag) = @_;
+
+  if (NetSNMP::Cert::is_url($file)) {
+    if ($NetSNMP::Cert::haveUserAgent) {
+
+      require File::Temp;
+      import File::Temp qw(tempfile);
+
+      my ($fh, $newfilename) = tempfile(SUFFIX => $suffix);
+      return if (!$fh || !$newfilename);
+      my $ua = LWP::UserAgent->new;
+      my $response = $ua->get($file);
+      if ($response->is_success) {
+	print $fh $response->decoded_content();
+      } else {
+	NetSNMP::Cert::vwarn("failed to download a certificate from $file");
+	return;
+      }
+      $fh->close;
+      $file = $newfilename;
+    } else {
+      NetSNMP::Cert::vwarn("LWP::UserAgent not installed: unable to import certificate");
+      return;
+    }
+  }
+
+  $file = NetSNMP::Cert::fq_rel_path($file, $rdir);
+  die("file unreadable: $file\n") unless -r $file;
+
+
+  if (! $targ) {
+    $targ = (NetSNMP::Cert::is_ca_cert($file) ? $NetSNMP::Cert::CADIR : $NetSNMP::Cert::CRTDIR);
+  }
+
+  $targ .= "/" . $tag . $suffix if ($tag);
+  ::copy($file, $targ);
+}
+
+
+sub import {
+  my $app = shift;
+  my $config = $app->{'config'};
+  my $opts = $app->{'OPTS'};
+  my $carg = shift(@{$opts->{'cmdargs'}});
+  my $karg = shift(@{$opts->{'cmdargs'}});
+  my $targ;
+
+  if (not defined $carg) {
+    NetSNMP::Cert::vwarn("import: no certificate supplied\n", $opts);
+    NetSNMP::Cert::usage(1);
+  }
+
+  import_file($carg, '.crt', '',,
+	      $opts->{'rdir'}, $opts->{'tag'});
+
+  return unless defined $karg;
+
+  import_file($karg, '.key', 'private',,
+	      $opts->{'rdir'}, $opts->{'tag'});
+}
+
+
+package NetSNMP::Cert::Config;
+use vars qw(@ISA);
+@ISA = qw(NetSNMP::Cert::Obj);
+
+sub new {
+  my $class = shift;
+  my $parent = shift;
+  my $this = $class->SUPER::new('config', $parent);
+
+  bless($this, $class);
+}
+
+sub parse {
+  my $config = shift;
+  my $app = $config->{'APP'};
+  my $opts = $app->{'OPTS'};
+  my $cfgfile = shift;
+  $cfgfile ||= $opts->{'cfgfile'};
+
+  return '0 but true' if $config->{'PARSED'};
+  return '0 but true' unless defined $cfgfile;
+
+  open( CONFIG, "<$cfgfile" )
+    or die "error - could not open configuration file: $cfgfile";
+
+  while (<CONFIG>) {
+    next if /^\s*#/ or /^\s*$/;
+
+    if (/^\s*(\w+)(?:\(([\)\(\d\,\.]+)\))?\s*=\s*{/) {
+      my $obj = $1;
+
+      NetSNMP::Cert::dprint("object: $obj ($2) = {\n", $opts);
+      die "error - identity: indices not supported: $2" if defined $2;
+
+      # Found an object.
+      if ( $obj eq 'identity' ) {
+	my $identity = NetSNMP::Cert::Identity::parse(*CONFIG, $config);
+	my $id = $identity->{'id'};
+	die "error - identity: 'id' not defined" unless defined $id;
+	die "error - identity: duplicate '$id'" if exists $config->{$obj}{$id};
+	$config->{$obj}{$id} = $identity;
+      } else {
+        die "error - unrecognized object ($1) at scope (config)";
+      }
+    } elsif (/^\s*(\w+)\s*=?\s*(.*?)\s*$/) {
+      my $key = $1;
+      my $val = $2;
+
+      $val = $config->resolve($val) if $val =~ /\$\w+|\&\{.*?\}/;
+      # Found a symbol.
+      NetSNMP::Cert::dprint("  $key = $val\n", $opts);
+      if ($key eq 'subjectAltName' or $key eq 'san') {
+	push(@{$config->{$key}}, $val);
+      } elsif ( defined $config->{$key} ) {
+        die "error - duplicate symbol $key";
+      } else {
+        $config->{$key} = (defined $val ? NetSNMP::Cert::map_bool($val) : 1 );
+      }
+    } elsif (/^\s*env\s*(\w+=\S+)\s*$/) {
+      # Found an environment variable.
+      NetSNMP::Cert::dprint("$&\n", $opts);
+      push(@{$config->{'env'}}, $1);
+    } else {
+      die("error in config file [$cfgfile:line $.]");
+    }
+  }
+
+  NetSNMP::Cert::dprint("end parse config\n", $opts);
+  close(CONFIG);
+
+  # augment with any config directives supplied in opts
+  foreach my $cfg (@{$opts->{'config'}}) {
+    NetSNMP::Cert::dprint("augmenting config: $cfg\n", $opts);
+
+    $config->autoSet($1, (defined($2) ? $2 : 1 ))
+      if $cfg =~ /^\s*(\w+)\s*=?\s*(.*?)\s*$/;
+  }
+  $config->autoSet('PARSED', 1);
+  return $config->{'PARSED'};
+}
+
+package NetSNMP::Cert::Identity;
+use vars qw(@ISA);
+@ISA = qw(NetSNMP::Cert::Obj);
+
+sub new {
+  my $class = shift;
+  my $this = shift || $class->SUPER::new('identity', @_);
+  my $ind = $this->{'INDEX'} || 1;
+
+  $this->autoSet('name', "$this->{type}.$ind") unless exists $this->{'name'};
+
+  $this->autoSet('LOG','') unless exists $this->{'LOG'};
+  $this->autoSet('TTY_LOG','') unless exists $this->{TTY_LOG};
+
+  bless($this, $class);
+}
+
+
+sub parse {
+  my $FILE = shift;
+  my $parent = shift;
+  my $opts = $parent->inherit('OPTS');
+  my $identity = new NetSNMP::Cert::Obj('identity', $parent);
+
+  NetSNMP::Cert::dprint("parse identity\n", $opts);
+
+  while (<$FILE>) {
+    next if /^\s*#/ or /^\s*$/;
+
+    if (/^\s*(\w+)\s*=\s*{/) {
+      # Found an object.
+      die "error - can't have nested $1";
+    } elsif (/^\s*(\w+)\s*=?\s*(.*?)\s*$/) {
+      my $key = $1;
+      my $val = $2;
+
+      # Found a symbol.
+      NetSNMP::Cert::dprint("  $key = $val\n", $opts);
+
+      $val = $identity->resolve($val) if $val =~ /\$\w+|\&\{.*?\}/;
+
+      if ( $key eq 'subjectAltName' or $key eq 'san') {
+	push(@{$identity->{$key}}, $val);
+      } elsif ( defined $identity->{$key} ) {
+        die "error - duplicate symbol $key";
+      } else {
+        $identity->{$key} = (defined $val ? NetSNMP::Cert::map_bool($val) : 1 );
+      }
+    } elsif (/\s*\}\s*\;/) {
+      # End of definition.
+      NetSNMP::Cert::dprint("end parse identity\n", $opts);
+      return new NetSNMP::Cert::Identity($identity);
+    } else {
+      die("error in config file [$opts->{cfgfile}:line $.]");
+    }
+  }
+  die "error - unexpected end of conf file";
+}
+
+package main;
+
+my $app = new NetSNMP::Cert::App();
+$app->init(@ARGV);
+$app->run();
+
+__END__
+=pod
+
+=head1   NAME
+
+net-snmp-cert - Net-SNMP Certificate Management Tool
+
+=head1   SYNOPSIS
+
+=over
+
+=item $ net-snmp-cert genca -I --cn ca-Net-SNMP
+
+=item $ net-snmp-cert gencert -I -t snmpapp --with-ca ca-Net-SNMP
+
+=item $ net-snmp-cert gencert -I -t snmpd --cn net-snmp.org
+
+=item $ net-snmp-cert showcas
+
+=item $ net-snmp-cert showcerts
+
+=back
+
+=head1   DESCRIPTION
+
+net-snmp-cert creates, signs, installs and displays X.509
+certificates used in the operation of Net-SNMP/(D)TLS.
+
+=head1   SYNTAX
+
+=over
+
+=item net-snmp-cert [--help|-?]
+
+=item net-snmp-cert [--version|-V]
+
+=item net-snmp-cert genca    [<flags>] [<dn-opts>] [--with-ca <ca>]
+
+=item net-snmp-cert gencert  [<flags>] [<dn-opts>] [--with-ca <ca>]
+
+=item net-snmp-cert gencsr   [<flags>] [<dn-opts>] [--from-crt <crt>]
+
+=item net-snmp-cert signcsr  [<flags>] [--install] --csr <csr> --with-ca <ca>
+
+=item net-snmp-cert showca   [<flags>] [<format-opts>] [<file>|<search-tag>]
+
+=item net-snmp-cert showcert [<flags>] [<format-opts>] [<file>|<search-tag>]
+
+=item net-snmp-cert import   [<flags>] <file|url> [<key>]
+
+=back
+
+=head1   COMMANDS
+
+=over
+
+=item genca
+
+generate a signed CA certificate suitable for signing other
+certificates. default: self-signed unless --with-ca <ca> supplied
+
+=item gencert
+
+generate a signed certificate suitable for identification, or
+validation. default: self-signed unless --with-ca <ca> supplied
+
+=item gencsr
+
+generate a certificate signing request. will create a new
+key and certificate unless --from-crt <crt> supplied
+
+=item signcsr
+
+sign a certificate signing request specified by --csr <csr>
+with the CA certificate specified by --with-ca <ca>
+
+=item import
+
+import an identity or CA certificate, optionally import <key>
+if an URL is passed, will attempt to import certificate from site
+
+=item showca, showcert
+
+show CA or identity certificate(s). may pass fully qualified
+file or directory name, or a search-tag which prefix matches
+installed CA or identity certificate file name(s)
+see FORMAT OPTIONS to specify output format
+
+
+=back
+
+=head1   FLAGS
+
+=over
+
+=item -?, --help            -- show this text and exit
+
+=item -V, --version         -- show version string and exit
+
+=item -D, --debug           -- raise debug level (-D -D for higher level)
+
+=item -F, --force           -- force overwrite of existing output files
+
+=item -I, --nointeractive   -- non-interactive run (default interactive)
+
+=item -Q, --noverbose       -- non-verbose output (default verbose)
+
+=item -C, --cfgdir   <dir>  -- configuration dir (see man(5) snmp_config)
+
+=item -T, --tlsdir   <dir>  -- root for cert storage (default <cfgdir>/tls)
+
+=item -f, --cfgfile  <file> -- config (default <cfgdir>/net-snmp-cert.conf)
+
+=item -i, --identity <id>   -- identity to use from config
+
+=item -t, --tag      <tag>  -- application tag (default 'snmp')
+
+=item --<cfg-param>[=<val>] -- additional config params
+
+=back
+
+=head1   CERTIFICATE OPTIONS (<cert-opts>)
+
+=over
+
+=item -a, --with-ca <ca>    -- CA certificate used to sign request
+
+=item -A, --ca <ca>         -- explicit output CA certificate
+
+=item -r, --csr <csr>       -- certificate signing request
+
+=item -x, --from-crt <crt>  -- input certificate for current operation
+
+=item -X, --crt <crt>       -- explicit output certificate
+
+=item -y, --install         -- install result in local repository
+
+=back
+
+=head1   DISTINGUISHED NAME OPTIONS (<dn-opts>)
+
+=over
+
+=item -e, --email <email>       -- email name
+
+=item -h, --host <host>         -- DNS host name, or IP address
+
+=item -d, --days <days>         -- number of days certificate is valid
+
+=item -n, --cn <cn>             -- common name (CN)
+
+=item -o, --org <org>           -- organiztion name
+
+=item -u, --unit <unit>         -- organiztion unit name
+
+=item -c, --country <country>   -- country code (e.g., US)
+
+=item -p, --province <province> -- province name (synomynous w/ state)
+
+=item -p, --state <state>       -- state name (synomynous w/ province)
+
+=item -l, --locality <locality> -- locality name (e.g, town)
+
+=item -s, --san <san>           -- subjectAltName, repeat for each <san>
+
+=over 2
+
+=item    <san> value format (<FMT>:<VAL>):
+
+=over 3
+
+=item       dirName:/usr/share/snmp/tls
+
+=item       DNS:net-snmp.org
+
+=item       email:admin@net-snmp.org
+
+=item       IP:192.168.1.1
+
+=item       RID:1.1.3.6
+
+=item       URI:http://net-snmp.org
+
+=back
+
+=back
+
+=back
+
+=head1   FORMAT OPTIONS (<format-opts>)
+
+=over
+
+=item --brief        -- minimized output (values only where applicable)
+
+=item --text         -- full text description
+
+=item --subject      -- subject description
+
+=item --subject_hash -- hash of subject for indexing
+
+=item --issuer       -- issuer description
+
+=item --issuer_hash  -- hash of issuer for indexing
+
+=item --fingerprint  -- SHA1 digest of DER
+
+=item --serial       -- serial number
+
+=item --modulus      -- modulus of the public key
+
+=item --dates        -- start and end dates
+
+=item --purpose      -- displays allowed uses
+
+=item --C            -- C code description
+
+=back
+
+=head1   OPERATIONAL NOTES
+
+
+=head2   Interactive Mode
+
+The application operates in interactive mode by default. In this mode
+basic operations of offered and required input is queried through the
+command line. 
+
+Typical <tab> completion is provided when possible and field specific
+help may be obtained by entering '?'.
+
+To turn off interactive mode, supply '--nointeractive' or '-I' on the
+initial command line. Equivalantly, 'interactive = false' maybe placed
+in the configuration file (see below).
+
+=head2   Configuration
+
+A configuration file may be supplied on the command line or found in a
+default location (<snmpconfpath>/net-snmp-cert.conf). This file may
+contain configuration parameters equivalent to those supplied on the
+command line and effectively provides default values for these
+values. If a command line parameter is supplied it will override the
+value in the config file. If neither is present then an application
+value will be used.
+
+=head2   Certificate Naming
+
+Filenames of created certificates, as stored in the configuration
+directory, are chosen in the following manner. If and application tag
+is supplied, it will be used as the basename for the certificate and
+key generated. Otherwise, for CA certificates, the basename will be
+derived from the Common Name. For non-CA certificates the application
+tag defaults to 'snmp' which will then be used as the basename of the
+certificate and key.
+
+=head1   EXAMPLES
+
+=over
+
+=item net-snmp-cert genca --cn ca-net-snmp.org --days 1000
+
+=item net-snmp-cert genca -f .snmp/net-snmp-cert.conf -i nocadm
+
+=item net-snmp-cert gencert -t snmpd --cn host.net-snmp.org
+
+=item net-snmp-cert gencsr -t snmpapp
+
+=item net-snmp-cert signcsr --csr snmpapp --with-ca ca-net-snmp.org
+
+=item net-snmp-cert showcerts --subject --issuer --dates snmpapp
+
+=item net-snmp-cert showcas --fingerprint ca-net-snmp.org --brief
+
+=item net-snmp-cert import ca-third-party.crt
+
+=item net-snmp-cert import signed-request.crt signed-request.key
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright (c) 2010 Cobham Analytic Solutions - All rights reserved.
+Copyright (c) 2010 G. S. Marzot -  All rights reserved.
+
+=head1   AUTHOR
+
+G. S. Marzot (marz@users.sourceforge.net)
+
+=cut
+
diff --git a/local/net-snmp-cert.conf b/local/net-snmp-cert.conf
new file mode 100644
index 0000000..7def1cc
--- /dev/null
+++ b/local/net-snmp-cert.conf
@@ -0,0 +1,72 @@
+#
+# Net-SNMP Certificate Generation and Management Tool Configuration
+#
+
+# default mode to non-interactive
+# interactive = false
+
+# location of 'tls' directory relative to configuration dir
+# tlsDir = ./tls
+
+# encryptCA = false - XXX not-implemented
+# encryptCrt = false - XXX not-implemented
+
+# default valid lifetime duration for CA certificates
+# caDays = 1825
+
+# default valid lifetime duration for certificates
+# crtDays = 365
+
+# default key types generated
+# keyType = rsa
+
+# default key size generated
+# keySize = 2048
+
+# default type of message digest used
+# msgDigest = sha1
+
+# to set individual defaults, a specific identity may be indicated
+# on the net-snmp-cert command line: '--identity <id>' or '-i <id>'
+# values defined at the global/file level will be used unless
+# overriden by values supplied in the specified identity.
+ 
+identity = {
+   id = nocadm
+   host = net-snmp.org
+   cn = Client-identity
+   email = admin@net-snmp.org
+   org = Net-SNMP Developers
+   orgUnit = SNMP-DTLS
+   country = US
+   state = MA
+   locality = Boston
+
+   # 10 years
+   caDays = 3654
+   # 2 years
+   crtDays = 730
+
+   subjectAltName = email:client@net-snmp.org
+   subjectAltName = URI:http://net-snmp.org
+};
+
+identity = {
+   id = CA-identity
+   host = net-snmp.org
+   cn = CA-identity
+   email = ca-admin@net-snmp.org
+   org = Net-SNMP Developers
+   orgUnit = SNMP-DTLS
+   country = US
+   state = MA
+   locality = Boston
+
+   # 10 years
+   caDays = 1000
+   # 2 years
+   crtDays = 500
+
+   subjectAltName = DNS:test.net-snmp.org
+};
+
diff --git a/local/snmp-bridge-mib b/local/snmp-bridge-mib
new file mode 100644
index 0000000..880ea6b
--- /dev/null
+++ b/local/snmp-bridge-mib
@@ -0,0 +1,1170 @@
+#!/usr/bin/perl
+#
+# Copyright (c) IBM Corp. 2009, 2010, All Rights Reserved
+#
+# Author(s):	Vasileios Pappas <vpappas@us.ibm.com>
+#		Jens Osterkamp <jens@linux.vnet.ibm.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+use NetSNMP::OID (':all');
+use NetSNMP::ASN (':all');
+use NetSNMP::agent (':all');
+
+sub STP_PROP_VALUE() { 0x01}
+sub STP_PROP_FILE() { 0x02}
+sub STP_PROP_DEC() { 0x04}
+sub STP_PROP_HEX() { 0x08}
+
+sub FDB_STATUS_OTHER { 1 }
+sub FDB_STATUS_INVALID { 2 }
+sub FDB_STATUS_LEARNED { 3 }
+sub FDB_STATUS_SELF { 4 }
+sub FDB_STATUS_MGMT { 5 }
+
+my %oid_value;
+my %oid_type;
+my %oid_next;
+my (%indexes, %interfaces, %macs, %ages, %locals, %vlans, %tagged);
+my $oid;
+
+$subagent=0;
+my $netdir="/sys/class/net/";
+my $targetbridge;
+
+$cache_timout=60;
+$last_populated=0;
+
+my $regoid = ".1.3.6.1.2.1.17";
+# are we running embedded ? If not, register as subagent
+if (!$agent) {
+    $agent = new NetSNMP::agent('Name' => 'dot1qbridge',
+				'AgentX' => 1);
+    $subagent = 1;
+    if ( $#ARGV != 0) {
+	usage($0);
+	exit();
+    }
+    $targetbridge = $ARGV[0];
+} else {
+    if (!defined($bridge)) {
+	usage($0);
+	exit();
+    }
+    $targetbridge = $bridge;
+}
+
+$agent->register("dot1qbridge", ".1.3.6.1.2.1.17", \&request_handler) or die "registration of handler failed !\n";
+
+if ($subagent) {
+	# register handler for graceful shutdown
+	$SIG{'INT'} = \&shutdown;
+	$SIG{'QUIT'} = \&shutdown;
+	$running = 1;
+
+	while($running) {
+		$agent->agent_check_and_process(1);
+	}
+
+	$agent->shutdown();
+}
+
+sub usage {
+	my $name = shift;
+	if ($subagent) {
+		print $name."\n\n";
+		print "usage: \t$name <bridge>	start snmp bridge module".
+			" for bridge <bridge>\n\n";
+		print "arguments:	bridge		name of the Linux bridge".
+			" which you want to provide info via snmp for.\n\n";
+	} else {
+		print 'usage in snmpd.conf: perl $bridge="br0"; perl do <path to $name>\n';
+	}
+	print "number of arguments given $#ARGV\n\n";
+}
+
+sub request_handler {
+	my ($handler, $registration_info, $request_info, $requests)=@_;
+	my $request;
+
+	populate_mib($targetbridge);
+
+	for($request = $requests; $request; $request = $request->next()) {
+		if($request_info->getMode() == MODE_GET) {
+			mode_get($request);
+		} elsif($request_info->getMode() == MODE_GETNEXT) {
+			mode_get_next($request);
+		} else {
+			print STDERR "mode not implemented.\n";
+		}
+	}
+}
+
+sub mode_get{
+	my ($request)=@_;
+	my $oid=$request->getOID();
+
+	$SNMP::use_numeric = 1;
+	my $noid=SNMP::translateObj($oid);
+
+	reply($request, $noid) if (exists $oid_value{$noid});
+}
+
+sub find_next{
+	my ($noid) = @_;
+	my $nextoid = $oid_next{$noid};
+	if(!defined($nextoid) || !defined($oid_value{$nextoid})) {
+		# find the lowest OID whis is higher than $noid
+		$prev = ".1.3.6.1.2.1.18";
+		$prev_oid = new NetSNMP::OID($prev);
+		$noid_oid = new NetSNMP::OID($noid);
+		#print "looking for next of $noid\n";
+		for my $candidate (keys %oid_value) {
+			#print "evaluating $candidate\n";
+			$candidate_oid = new NetSNMP::OID($candidate);
+			if ($noid_oid < $candidate_oid && $prev_oid > $candidate_oid) {
+				#print "found candidate $candidate\n";
+				$prev = $candidate;
+				$prev_oid = $candidate_oid;
+			}
+		}
+		if ($prev eq ".1.3.6.1.2.1.18") {
+			return; # no OID higher than $noid found
+		}
+		$nextoid = $prev;
+	}
+	return $nextoid;
+}
+
+sub mode_get_next{
+	my ($request)=@_;
+	my $oid=$request->getOID();
+	$SNMP::use_numeric = 1;
+	my $noid=SNMP::translateObj($oid);
+	my $nextoid = find_next($noid);
+	#print "found $nextoid\n";
+	if(defined($nextoid)) {
+		my $type = $oid_type{$nextoid};
+		my $value = $oid_value{$nextoid};
+		if (defined($type) and defined($value)) {
+			reply($request,	$nextoid);
+		}
+	}
+}
+
+sub reply{
+	my ($request, $oid)=@_;
+
+	my $type=$oid_type{$oid};
+	my $value=$oid_value{$oid};
+
+	$request->setOID(new NetSNMP::OID($oid));
+	$request->setValue($type, $value);
+}
+
+# Populated MIB OID
+#
+## dot1dBasePort:	1.3.6.1.2.1.17.1.4.1.1.<dot1dBasePort>
+#			INTEGER32
+#
+# dot1dBasePortIfIndex:	1.3.6.1.2.1.17.1.4.1.2.<dot1dBasePort>
+#			INTEGER32
+#
+# dot1dStp*:		1.3.6.1.2.1.17.2.<1-14>
+#			INTEGER, OCTET STRING
+#
+# dot1dTpFdbAddress:	1.3.6.1.2.1.17.4.3.1.1.<dot1dTpFdbAddress>
+#			OCTET STRING (SIZE (6))
+#
+# dot1dTpFdbPort:	1.3.6.1.2.1.17.4.3.1.2.<dot1dTpFdbAddress>
+#			INTEGER32
+#
+# dot1dTpFdbStatus:	1.3.6.1.2.1.17.4.3.1.3.<dot1dTpFdbAddress>
+#			INTEGER
+#			1 : other
+#			2 : invalid
+#			3 : learned
+#			4 : self
+#			5 : mgmt
+#
+
+sub populate_mib {
+	my $now;
+	my $bridge = shift;
+	my $seconds_passed;
+	$ports=0;
+	$oid="";
+
+        $now=time();
+	$seconds_passed=$now-$last_populated;
+        return if($seconds_passed <= $cache_timout);
+        $last_populated=$now;
+
+	%oid_value=();
+	%oid_type=();
+	%oid_next=();
+	%indexes=();
+	%interfaces=();
+	%macs=();
+	%ages=();
+	%locals=();
+	%vlans=();
+	%tagged=();
+
+	# first populated oid
+	$oid_next{".1.3.6.1.2.1.17"}=".1.3.6.1.2.1.17.1.1";
+
+	createbaseinfo($bridge);
+
+	readindexes($bridge);
+	readforwards($bridge);
+	readvlans($bridge);
+
+	createports($bridge);
+
+	stpproperties($bridge);
+
+	stpportproperties($bridge);
+
+	dot1dTpproperties();
+
+	my $prevoid = $oid;
+	my $curroid = createmacs($bridge);
+	$oid_next{$prevoid} = $curroid;
+
+	portproperties($bridge);
+
+
+	dot1qbase($bridge);
+
+	dot1qfdb($bridge);
+
+	dot1qcurrentvlans($bridge);
+
+	return 0;
+}
+
+sub findbridges()
+{
+	my @bridges;
+
+	opendir(DIR, $netdir) or die "unable to open $netdir !\n";
+
+	while(my $br=readdir(DIR)){
+		next if $br eq ".";
+		next if $br eq "..";
+		next unless -d $netdir.$br."/bridge";
+		push @bridges, $br;
+	}
+
+	close(DIR);
+
+	return @bridges;
+}
+
+sub createbaseinfo()
+{
+	my $bridge = shift;
+
+	$oid=".1.3.6.1.2.1.17.1.1";
+	$oid_value{$oid}=mac2hex(readfile($netdir.$bridge."/address", 0));
+	$oid_type{$oid}=ASN_OCTET_STR;
+	$oid_next{$oid}=".1.3.6.1.2.1.17.1.2";
+
+	opendir(DIR, $netdir.$bridge."/brif/") or die "Could not open ".$netdir.$bridge."brif !\n";
+
+	foreach $entry (readdir(DIR)) {
+		next if $entry eq ".";
+		next if $entry eq "..";
+		# only count non-vlan interfaces
+		next if $entry =~ /\.[0-9]*/;
+		$ports++;
+	}
+
+	closedir(DIR);
+
+	$oid=".1.3.6.1.2.1.17.1.2";
+	$oid_value{$oid}=$ports;
+	$oid_type{$oid}=ASN_INTEGER;
+	$oid_next{$oid}=".1.3.6.1.2.1.17.1.3";
+
+	$oid=".1.3.6.1.2.1.17.1.3";
+	$oid_value{$oid}="2";	# transparent only
+	$oid_type{$oid}=ASN_INTEGER;
+	$oid_next{$oid}=".1.3.6.1.2.1.17.1.4.1.1.1";
+
+}
+
+sub createmacs()
+{
+	my $bridge = shift;
+        my $start_oid = $oid = ".1.3.6.1.2.1.17.4.3.1";
+
+	foreach my $mac (sort {$a cmp $b} keys %macs) {
+		my $mac_oid=mac2oid($mac);
+		unless(defined($first_mac_oid)){
+			$first_mac_oid=$mac_oid;
+			$oid_next{$oid.".1"}=$oid.".1".$mac_oid;
+			$oid_next{$oid.".2"}=$oid.".2".$mac_oid;
+			$oid_next{$oid.".3"}=$oid.".3".$mac_oid;
+		}
+		my $port=$macs{$mac}{$bridge};
+		my $baseport=$baseports{$bridge}{$port};
+		my $status=$locals{$mac}{$bridge};
+		my $age=$ages{$mac}{$bridge};
+
+		$oid_value{$oid.".1".$mac_oid}=mac2hex($mac);
+		$oid_type{$oid.".1".$mac_oid}=ASN_OCTET_STR;
+		if(defined($prv_mac_oid)){
+			$oid_next{$oid.".1".$prv_mac_oid}=
+				$oid.".1".$mac_oid;
+		}
+
+		$oid_value{$oid.".2".$mac_oid}=$baseport;
+		$oid_type{$oid.".2".$mac_oid}=ASN_INTEGER;
+		if(defined($prv_mac_oid)){
+			$oid_next{$oid.".2".$prv_mac_oid}=
+				$oid.".2".$mac_oid;
+		}
+
+		$oid_value{$oid.".3".$mac_oid}=$status;
+		$oid_type{$oid.".3".$mac_oid}=ASN_INTEGER;
+		if(defined($prv_mac_oid)){
+			$oid_next{$oid.".3".$prv_mac_oid}=
+				$oid.".3".$mac_oid;
+		}
+
+		$prv_mac_oid=$mac_oid;
+	}
+
+	if ($prv_mac_oid and $first_mac_oid) {
+		$oid_next{$oid.".1".$prv_mac_oid}=$oid.".2".$first_mac_oid;
+		$oid_next{$oid.".2".$prv_mac_oid}=$oid.".3".$first_mac_oid;
+		$oid_next{$oid.".3".$prv_mac_oid}=".1.3.6.1.2.1.17.4.4.1.1.1";
+	}
+
+	undef $prv_mac_oid;
+	undef $first_mac_oid;
+
+	return $start_oid.".1".$first_mac_oid;
+}
+
+# TODO: is this sequence complete ?
+sub createports()
+{
+	my $bridge = shift;
+	my ($baseport, $prev_baseport, $first_baseport);
+	$baseport=1;
+	my $oid= '.1.3.6.1.2.1.17.1.4.1';
+
+	foreach my $port (keys %{$interfaces{$bridge}}) {
+		unless(defined($first_baseport)){
+			$first_baseport=$baseport;
+			$oid_next{$oid.".1"}=$oid.".1.".$baseport;
+			$oid_next{$oid.".2"}=$oid.".2.".$baseport;
+		}
+		my $index=$indexes{$bridge}{$port};
+		$baseports{$bridge}{$port}=$baseport;
+
+		$oid_value{$oid.".1.".$baseport}=$baseport;
+		$oid_type{$oid.".1.".$baseport}=ASN_INTEGER;
+		if(defined($prv_baseport)){
+			$oid_next{$oid.".1.".$prv_baseport}=
+				$oid.".1.".$baseport;
+		}
+
+		$oid_value{$oid.".2.".$baseport}=$index;
+		$oid_type{$oid.".2.".$baseport}=ASN_INTEGER;
+		if(defined($prv_baseport)){
+			$oid_next{$oid.".2.".$prv_baseport}=
+				$oid.".2.".$baseport;
+		}
+
+		$prv_baseport=$baseport;
+		$baseport++;
+	}
+
+	if ( $prv_baseport and $first_baseport ) {
+		$oid_next{$oid.".1.".$prv_baseport}=$oid.".2.".$first_baseport;
+		$oid_next{$oid.".2.".$prv_baseport}=".1.3.6.1.2.1.17.2.1";
+	}
+
+	undef $prv_baseport;
+	undef $first_baseport;
+
+}
+
+sub stpproperties()
+{
+	my $bridge = shift;
+	my $dir = $netdir.$bridge."/bridge/";
+
+	@stpprops = ( { oid => ".1.3.6.1.2.1.17.2.1",
+			flags => STP_PROP_VALUE,
+			value => "3",
+			type => ASN_INTEGER,
+			nextoid => ".1.3.6.1.2.1.17.2.2" },
+			{ oid => ".1.3.6.1.2.1.17.2.2",
+			flags => STP_PROP_FILE | STP_PROP_DEC,
+			value => $dir."priority",
+			type => ASN_INTEGER,
+			nextoid => ".1.3.6.1.2.1.17.2.3" },
+			{ oid => ".1.3.6.1.2.1.17.2.3",
+			flags => STP_PROP_FILE | STP_PROP_DEC,
+			value => $dir."topology_change_timer",
+			type => ASN_TIMETICKS,
+			nextoid => ".1.3.6.1.2.1.17.2.4" },
+			{ oid => ".1.3.6.1.2.1.17.2.4",
+			flags => STP_PROP_FILE | STP_PROP_DEC,
+			value => $dir."topology_change",
+			type => ASN_COUNTER,
+			nextoid => ".1.3.6.1.2.1.17.2.5" },
+			{ oid => ".1.3.6.1.2.1.17.2.5",
+			flags => STP_PROP_FILE | STP_PROP_DEC,
+			value => $dir."root_id",
+			type => ASN_OCTET_STR,
+			nextoid => ".1.3.6.1.2.1.17.2.6" },
+			{ oid => ".1.3.6.1.2.1.17.2.6",
+			flags => STP_PROP_FILE | STP_PROP_DEC,
+			value => $dir."root_path_cost",
+			type => ASN_INTEGER,
+			nextoid => ".1.3.6.1.2.1.17.2.7" },
+			{ oid => ".1.3.6.1.2.1.17.2.7",
+			flags => STP_PROP_FILE | STP_PROP_DEC,
+			value => $dir."root_port",
+			type => ASN_INTEGER,
+			nextoid => ".1.3.6.1.2.1.17.2.8" },
+			{ oid => ".1.3.6.1.2.1.17.2.8",
+			flags => STP_PROP_FILE | STP_PROP_DEC,
+			value => $dir."max_age",
+			type => ASN_INTEGER,
+			nextoid => ".1.3.6.1.2.1.17.2.9" },
+			{ oid => ".1.3.6.1.2.1.17.2.9",
+			flags => STP_PROP_FILE | STP_PROP_DEC,
+			value => $dir."hello_time",
+			type => ASN_INTEGER,
+			nextoid => ".1.3.6.1.2.1.17.2.11" },
+			# TODO ...17.2.10
+			{ oid => ".1.3.6.1.2.1.17.2.11",
+			flags => STP_PROP_FILE | STP_PROP_DEC,
+			value => $dir."forward_delay",
+			type => ASN_INTEGER,
+			nextoid => ".1.3.6.1.2.1.17.2.12" },
+			{ oid => ".1.3.6.1.2.1.17.2.12",
+			flags => STP_PROP_FILE | STP_PROP_DEC,
+			value => $dir."max_age",
+			type => ASN_INTEGER,
+			nextoid => ".1.3.6.1.2.1.17.2.13" },
+			{ oid => ".1.3.6.1.2.1.17.2.13",
+			flags => STP_PROP_FILE | STP_PROP_DEC,
+			value => $dir."hello_time",
+			type => ASN_INTEGER,
+			nextoid => ".1.3.6.1.2.1.17.2.14" },
+			{ oid => ".1.3.6.1.2.1.17.2.14",
+			flags => STP_PROP_FILE | STP_PROP_DEC,
+			value => $dir."forward_delay",
+			type => ASN_INTEGER,
+			nextoid => ".1.3.6.1.2.1.17.2.15.1.1.1" },
+			);
+
+	for ($i=0; $i <= $#stpprops; $i++) {
+		my %props = %{$stpprops[$i]};
+		$oid = $props{'oid'};
+		if ( $props{'flags'} & STP_PROP_VALUE,) {
+			$oid_value{$oid} = $props{'value'};
+		}
+		if ( $props{'flags'} & STP_PROP_FILE,) {
+			$oid_value{$oid} =
+			readfile($props{'value'},
+			$props{'flags'});
+		}
+		$oid_type{$oid} = $props{'type'};
+		$oid_next{$oid} = $props{'nextoid'};
+	}
+}
+
+sub stpportproperties
+{
+	my $bridge = shift;
+	my $brifdir = $netdir.$bridge."/brif/";
+	my ($baseport, $first_baseport, $prev_baseport);
+
+	$oid='.1.3.6.1.2.1.17.2.15.1';
+
+	foreach my $port (keys %{$interfaces{$bridge}}) {
+		$baseport = $baseports{$bridge}{$port};
+
+		unless(defined($first_baseport)){
+			$first_baseport=$baseport;
+			$oid_next{$oid.".1"}=$oid.".1.".$baseport;
+			$oid_next{$oid.".2"}=$oid.".2.".$baseport;
+		}
+
+		my $interface = $interfaces{$bridge}{$port};
+		my $ifdir = $brifdir.$interface;
+
+		# dot1dStpPort
+		$oid_value{$oid.".1.".$baseport}=$baseport;
+		$oid_type{$oid.".1.".$baseport}=ASN_INTEGER;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".1.".$prev_baseport}=
+				$oid.".1.".$baseport;
+		}
+
+		# dot1dStpPortPriority
+		$oid_value{$oid.".2.".$baseport}=readfile($ifdir."/priority", 0);
+		$oid_type{$oid.".2.".$baseport}=ASN_INTEGER;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".2.".$prev_baseport}=
+				$oid.".2.".$baseport;
+		}
+
+		# dot1dStpPortState
+		my @translation = (1, 3, 4, 5, 2);
+		my $state = readfile($ifdir."/state", 0);
+		$oid_value{$oid.".3.".$baseport}=$translation[$state];
+		$oid_type{$oid.".3.".$baseport}=ASN_INTEGER;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".3.".$prev_baseport}=
+				$oid.".3.".$baseport;
+		}
+
+		# dot1dStpPortEnable
+		@translation = (2, 1, 1, 1, 1);
+		$oid_value{$oid.".4.".$baseport}=$translation[$state];
+		$oid_type{$oid.".4.".$baseport}=ASN_INTEGER;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".4.".$prev_baseport}=
+				$oid.".4.".$baseport;
+		}
+
+		# dot1dStpPortPathCost
+		$oid_value{$oid.".5.".$baseport}=readfile($ifdir."/path_cost", 0);
+		$oid_type{$oid.".5.".$baseport}=ASN_INTEGER;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".5.".$prev_baseport}=
+				$oid.".5.".$baseport;
+		}
+
+		# dot1dStpPortDesignatedRoot
+		$oid_value{$oid.".6.".$baseport}=readfile($ifdir."/designated_root", 0);
+		$oid_type{$oid.".6.".$baseport}=ASN_OCTET_STR;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".6.".$prev_baseport}=
+				$oid.".6.".$baseport;
+		}
+
+		# dot1dStpPortDesignatedCost
+		$oid_value{$oid.".7.".$baseport}=readfile($ifdir."/designated_cost", 0);
+		$oid_type{$oid.".7.".$baseport}=ASN_INTEGER;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".7.".$prev_baseport}=
+				$oid.".7.".$baseport;
+		}
+
+		# dot1dStpPortDesignatedBridge
+		$oid_value{$oid.".8.".$baseport}=readfile($ifdir."/designated_bridge", 0);
+		$oid_type{$oid.".8.".$baseport}=ASN_OCTET_STR;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".8.".$prev_baseport}=
+				$oid.".8.".$baseport;
+		}
+
+		# dot1dStpPortDesignatedPort
+		$oid_value{$oid.".9.".$baseport}=readfile($ifdir."/designated_port", 0);
+		$oid_type{$oid.".9.".$baseport}=ASN_OCTET_STR;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".9.".$prev_baseport}=
+				$oid.".9.".$baseport;
+		}
+
+		# dot1dStpPortForwardTransitions (no value in bridge module)
+
+		# dot1dStpPortPathCost32
+		$oid_value{$oid.".11.".$baseport}=readfile($ifdir."/path_cost", 0);
+		$oid_type{$oid.".11.".$baseport}=ASN_INTEGER;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".11.".$prev_baseport}=
+				$oid.".11.".$baseport;
+		}
+
+
+		$prev_baseport=$baseport;
+	}
+
+	if ( $prev_baseport and $first_baseport ) {
+		$oid_next{$oid.".1.".$prev_baseport}=$oid.".2.".$first_baseport;
+		$oid_next{$oid.".2.".$prev_baseport}=$oid.".3.".$first_baseport;
+		$oid_next{$oid.".3.".$prev_baseport}=$oid.".4.".$first_baseport;
+		$oid_next{$oid.".4.".$prev_baseport}=$oid.".5.".$first_baseport;
+		$oid_next{$oid.".5.".$prev_baseport}=$oid.".6.".$first_baseport;
+		$oid_next{$oid.".6.".$prev_baseport}=$oid.".7.".$first_baseport;
+		$oid_next{$oid.".7.".$prev_baseport}=$oid.".8.".$first_baseport;
+		$oid_next{$oid.".8.".$prev_baseport}=$oid.".9.".$first_baseport;
+		$oid_next{$oid.".9.".$prev_baseport}=$oid.".11.".$first_baseport;
+		$oid_next{$oid.".11.".$prev_baseport}=".1.3.6.1.2.1.17.4.1";
+	}
+
+	$oid = $oid.".11.".$prev_baseport;
+
+	undef $prev_baseport;
+	undef $first_baseport;
+
+}
+
+sub dot1dTpproperties()
+{
+	@stpprops = ( { oid => ".1.3.6.1.2.1.17.4.1",
+			flags => STP_PROP_VALUE,
+			value => "0",
+			type => ASN_COUNTER,
+			nextoid => ".1.3.6.1.2.1.17.4.2" },
+			{ oid => ".1.3.6.1.2.1.17.4.2",
+			flags => STP_PROP_VALUE,
+			value => "300",
+			type => ASN_INTEGER,
+			nextoid => ".1.3.6.1.2.1.17.4.3" },
+			);
+
+	for ($i=0; $i <= $#stpprops; $i++) {
+		my %props = %{$stpprops[$i]};
+		$oid = $props{'oid'};
+		if ( $props{'flags'} & STP_PROP_VALUE,) {
+			$oid_value{$oid} = $props{'value'};
+		}
+		if ( $props{'flags'} & STP_PROP_FILE,) {
+			$oid_value{$oid} =
+			readfile($props{'value'},
+			$props{'flags'});
+		}
+		$oid_type{$oid} = $props{'type'};
+		$oid_next{$oid} = $props{'nextoid'};
+	}
+}
+
+sub portproperties
+{
+	my $bridge = shift;
+	my ($baseport, $first_baseport, $prev_baseport);
+
+	$oid='.1.3.6.1.2.1.17.4.4.1';
+
+	foreach my $port (keys %{$interfaces{$bridge}}) {
+		$baseport = $baseports{$bridge}{$port};
+
+		unless(defined($first_baseport)){
+			$first_baseport=$baseport;
+			$oid_next{$oid.".1"}=$oid.".1.".$baseport;
+			$oid_next{$oid.".2"}=$oid.".2.".$baseport;
+		}
+
+		my $interface = $interfaces{$bridge}{$port};
+		my $ifdir = $netdir.$interface;
+
+		# dot1dTpPort
+		$oid_value{$oid.".1.".$baseport}=$baseport;
+		$oid_type{$oid.".1.".$baseport}=ASN_INTEGER;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".1.".$prev_baseport}=
+				$oid.".1.".$baseport;
+		}
+
+		# dot1dTpPortMaxInfo
+		$oid_value{$oid.".2.".$baseport}=readfile($ifdir."/mtu", 0);
+		$oid_type{$oid.".2.".$baseport}=ASN_INTEGER;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".2.".$prev_baseport}=
+				$oid.".2.".$baseport;
+		}
+
+		# dot1dTpPortInFrames
+		$oid_value{$oid.".3.".$baseport}=readfile($ifdir."/statistics/rx_packets", 0);
+		$oid_type{$oid.".3.".$baseport}=ASN_COUNTER;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".3.".$prev_baseport}=
+				$oid.".3.".$baseport;
+		}
+
+		# dot1dTpPortOutFrames
+		$oid_value{$oid.".4.".$baseport}=readfile($ifdir."/statistics/tx_packets", 0);
+		$oid_type{$oid.".4.".$baseport}=ASN_COUNTER;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".4.".$prev_baseport}=
+				$oid.".4.".$baseport;
+		}
+
+		# dot1dTpPortInDiscards
+		$oid_value{$oid.".5.".$baseport}=readfile($ifdir."/statistics/rx_dropped", 0);
+		$oid_type{$oid.".5.".$baseport}=ASN_COUNTER;
+		if(defined($prev_baseport)){
+			$oid_next{$oid.".5.".$prev_baseport}=
+				$oid.".5.".$baseport;
+		}
+
+		$prev_baseport=$baseport;
+	}
+
+	if ( $prev_baseport and $first_baseport ) {
+		$oid_next{$oid.".1.".$prev_baseport}=$oid.".2.".$first_baseport;
+		$oid_next{$oid.".2.".$prev_baseport}=$oid.".3.".$first_baseport;
+		$oid_next{$oid.".3.".$prev_baseport}=$oid.".4.".$first_baseport;
+		$oid_next{$oid.".4.".$prev_baseport}=$oid.".5.".$first_baseport;
+		$oid_next{$oid.".5.".$prev_baseport}=".1.3.6.1.2.1.17.5.1";
+	}
+
+	$oid = $oid.".5.".$prev_baseport;
+
+	undef $prev_baseport;
+	undef $first_baseport;
+}
+
+sub dot1qbase()
+{
+	my $bridge = shift;
+
+	my $oid=".1.3.6.1.2.1.17.7.1.1";
+	$oid_next{".1.3.6.1.2.1.17.7"}=$oid.".1";
+	$oid_next{".1.3.6.1.2.1.17.7.1"}=$oid.".1";
+
+	$oid_value{$oid.".1"}=1;
+	$oid_type{$oid.".1"}=ASN_INTEGER;
+	$oid_next{$oid.".1"}=$oid.".2";
+
+	$oid_value{$oid.".2"}=4094;
+	$oid_type{$oid.".2"}=ASN_UNSIGNED;
+	$oid_next{$oid.".2"}=$oid.".3";
+
+	$oid_value{$oid.".3"}=4094;
+	$oid_type{$oid.".3"}=ASN_UNSIGNED;
+	$oid_next{$oid.".3"}=$oid.".4";
+
+	$oid_value{$oid.".4"}=0; # filled in by currentvlans
+	$oid_type{$oid.".4"}=ASN_UNSIGNED;
+	$oid_next{$oid.".4"}=$oid.".5";
+
+	$oid_value{$oid.".5"}=2;
+	$oid_type{$oid.".5"}=ASN_INTEGER;
+	$oid_next{$oid.".5"}=0;  # filled in by dot1qfdb
+
+}
+
+sub dot1qfdb()
+{
+	my $bridge = shift;
+
+	my $oid=".1.3.6.1.2.1.17.7.1.2";
+	foreach my $vlan (sort {$a<=>$b} keys %vlans){
+		unless(defined($first_vlan)){
+			$first_vlan=$vlan;
+			$oid_next{".1.3.6.1.2.1.17.7.1.1.5"}=$oid.".1.1.".$vlan;
+			$oid_next{$oid}=$oid.".1.1.".$vlan;
+			$oid_next{$oid.".1"}=$oid.".1.1.".$vlan;
+			$oid_next{$oid.".1.1"}=$oid.".1.1.".$vlan;
+			$oid_next{$oid.".1.2"}=$oid.".1.2.".$vlan;
+		}
+
+		$oid_value{$oid.".1.1.".$vlan}=$vlan;
+		$oid_type{$oid.".1.1.".$vlan}=ASN_UNSIGNED;
+		if(defined($prv_vlan)){
+			$oid_next{$oid.".1.1.".$prv_vlan}=$oid.".1.1.".$vlan;
+		}
+
+		$oid_value{$oid.".1.2.".$vlan}=0; # to be filled later
+		$oid_type{$oid.".1.2.".$vlan}=ASN_COUNTER;
+		if(defined($prv_vlan)){
+			$oid_next{$oid.".1.2.".$prv_vlan}=$oid.".1.2.".$vlan;
+		}
+
+		$prv_vlan=$vlan;
+	}
+	if($prv_vlan and $first_vlan){
+		$oid_next{$oid.".1.1.".$prv_vlan}=$oid.".1.2.".$first_vlan;
+		$oid_next{$oid.".1.2.".$prv_vlan}=0; # to be filled later
+	}
+
+	my %macvlan=();
+	my %vlanmac=();
+
+	foreach my $vlan (sort {$a<=>$b} keys %vlans){
+		my $count=0;
+		foreach my $mac (sort {$a cmp $b} keys %macs) {
+			my $vbridge=$bridge."_vlan".$vlan;
+			next unless(defined($macs{$mac}{$vbridge}));
+			$count++;
+			my $mac_oid=mac2oid($mac);
+			$macvlan{$vlan.$mac_oid}=$mac;
+			$vlanmac{$vlan.$mac_oid}=$vlan;
+		}
+		$oid_value{$oid.".1.2.".$vlan}=$count;
+	}
+
+	foreach my $vmac_oid (sort {$a cmp $b} keys %vlanmac){
+		my $mac=$macvlan{$vmac_oid};
+		my $vlan=$vlanmac{$vmac_oid};
+
+		#print "VMAC: $vmac_oid ($vlan:$mac)\n";
+		unless(defined($first_vmac_oid)){
+			$first_vmac_oid=$vmac_oid;
+			$oid_next{$oid.".1.2.".$prv_vlan}=$oid.".2.1.".$vmac_oid;
+			$oid_next{$oid.".2"}=$oid.".2.1.".$vmac_oid;
+			$oid_next{$oid.".2.1"}=$oid.".2.1.".$vmac_oid;
+			$oid_next{$oid.".2.2"}=$oid.".2.2.".$vmac_oid;
+			$oid_next{$oid.".2.3"}=$oid.".2.3.".$vmac_oid;
+		}
+
+		my $port=$macs{$mac}{$bridge};
+		my $baseport=$baseports{$bridge}{$port};
+		my $status=$locals{$mac}{$bridge};
+		my $age=$ages{$mac}{$bridge};
+
+		print "VLAN $vlan: $mac -> $port:$baseport ($status, $age)\n"; 
+
+		$oid_value{$oid.".2.1.".$vmac_oid}=mac2hex($mac);
+		$oid_type{$oid.".2.1.".$vmac_oid}=ASN_OCTET_STR;
+		if(defined($prv_vmac_oid)){
+			$oid_next{$oid.".2.1.".$prv_vmac_oid}=$oid.".2.1.".$vmac_oid;
+		}
+
+		$oid_value{$oid.".2.2.".$vmac_oid}=$baseport;
+		$oid_type{$oid.".2.2.".$vmac_oid}=ASN_INTEGER;
+		if(defined($prv_vmac_oid)){
+			$oid_next{$oid.".2.2.".$prv_vmac_oid}=$oid.".2.2.".$vmac_oid;
+		}
+
+		$oid_value{$oid.".2.3.".$vmac_oid}=$status;
+		$oid_type{$oid.".2.3.".$vmac_oid}=ASN_INTEGER;
+		if(defined($prv_vmac_oid)){
+			$oid_next{$oid.".2.3.".$prv_vmac_oid}=$oid.".2.3.".$vmac_oid;
+		}
+		$prv_vmac_oid=$vmac_oid;
+	}
+
+	if ($prv_vmac_oid and $first_vmac_oid) {
+		$oid_next{$oid.".2.1.".$prv_vmac_oid}=$oid.".2.2.".$first_vmac_oid;
+		$oid_next{$oid.".2.2.".$prv_vmac_oid}=$oid.".2.3.".$first_vmac_oid;
+		$oid_next{$oid.".2.3.".$prv_vmac_oid}=".1.3.6.1.2.1.17.7.1.4.1";
+	}
+
+	undef $first_vmac_oid;
+	undef $prv_vmac_oid;
+
+	undef $first_vlan;
+	undef $prv_vlan;
+}
+
+sub dot1qcurrentvlans()
+{
+	my $bridge = shift;
+
+
+	my $oid=".1.3.6.1.2.1.17.7.1.4.1";
+	$oid_next{".1.3.6.1.2.1.17.7.1.4"}=$oid;
+
+	$oid_value{$oid}=0;	# can't keep track of this info
+	$oid_type{$oid}=ASN_COUNTER;
+
+	my $count=0;
+	$oid=".1.3.6.1.2.1.17.7.1.4.2";
+	foreach my $vlan (sort {$a<=>$b} keys %vlans){
+		$count++;
+		my @allports=();
+		my @untaggedports=();
+		foreach my $port (keys %{$vlans{$vlan}}){
+			$baseport=$baseports{$bridge}{$port};
+			push @allports, $baseport;
+			push @untaggedports, $baseport
+				unless($tagged{$vlan}{$port});
+		}
+		#print "ADDING: vlan $vlan (@allports, @untaggedports)\n";
+		unless(defined($first_vlan)){
+			$first_vlan=$vlan;
+			$oid_next{".1.3.6.1.2.1.17.7.1.4.1"}=$oid.".1.0.".$vlan;
+			$oid_next{$oid}=$oid.".1.0.".$vlan;
+			$oid_next{$oid.".1"}=$oid.".1.0.".$vlan;
+			$oid_next{$oid.".2"}=$oid.".2.0.".$vlan;
+			$oid_next{$oid.".3"}=$oid.".3.0.".$vlan;
+			$oid_next{$oid.".4"}=$oid.".4.0.".$vlan;
+			$oid_next{$oid.".5"}=$oid.".5.0.".$vlan;
+			$oid_next{$oid.".6"}=$oid.".6.0.".$vlan;
+			$oid_next{$oid.".7"}=$oid.".7.0.".$vlan;
+		}
+
+		$oid_value{$oid.".1.0.".$vlan}=0; # can't keep track of this
+		$oid_type{$oid.".1.0.".$vlan}=ASN_TIMETICKS;
+		if(defined($prv_vlan)){
+			$oid_next{$oid.".1.0.".$prv_vlan}=$oid.".1.0.".$vlan;
+		}
+
+		$oid_value{$oid.".2.0.".$vlan}=$vlan;
+		$oid_type{$oid.".2.0.".$vlan}=ASN_UNSIGNED;
+		if(defined($prv_vlan)){
+			$oid_next{$oid.".2.0.".$prv_vlan}=$oid.".2.0.".$vlan;
+		}
+
+		$oid_value{$oid.".3.0.".$vlan}=$vlan; 
+		$oid_type{$oid.".3.0.".$vlan}=ASN_UNSIGNED;
+		if(defined($prv_vlan)){
+			$oid_next{$oid.".3.0.".$prv_vlan}=$oid.".3.0.".$vlan;
+		}
+
+		$oid_value{$oid.".4.0.".$vlan}=getportlist(@allports);
+		$oid_type{$oid.".4.0.".$vlan}=ASN_OCTET_STR;
+		if(defined($prv_vlan)){
+			$oid_next{$oid.".4.0.".$prv_vlan}=$oid.".4.0.".$vlan;
+		}
+
+		$oid_value{$oid.".5.0.".$vlan}=getportlist(@untaggedports);
+		$oid_type{$oid.".5.0.".$vlan}=ASN_OCTET_STR;
+		if(defined($prv_vlan)){
+			$oid_next{$oid.".5.0.".$prv_vlan}=$oid.".5.0.".$vlan;
+		}
+
+		$oid_value{$oid.".6.0.".$vlan}=1;
+		$oid_type{$oid.".6.0.".$vlan}=ASN_INTEGER;
+		if(defined($prv_vlan)){
+			$oid_next{$oid.".6.0.".$prv_vlan}=$oid.".6.0.".$vlan;
+		}
+
+		$oid_value{$oid.".7.0.".$vlan}=0;
+		$oid_type{$oid.".7.0.".$vlan}=ASN_TIMETICKS;
+		if(defined($prv_vlan)){
+			$oid_next{$oid.".7.0.".$prv_vlan}=$oid.".7.0.".$vlan;
+		}
+		$prv_vlan=$vlan;
+	}
+
+	$oid_value{".1.3.6.1.2.1.17.7.1.1.4"}=$count;
+	if($prv_vlan and $first_vlan){
+		$oid_next{$oid.".1.0.".$prv_vlan}=$oid.".2.0.".$first_vlan;
+		$oid_next{$oid.".2.0.".$prv_vlan}=$oid.".3.0.".$first_vlan;
+		$oid_next{$oid.".3.0.".$prv_vlan}=$oid.".4.0.".$first_vlan;
+		$oid_next{$oid.".4.0.".$prv_vlan}=$oid.".5.0.".$first_vlan;
+		$oid_next{$oid.".5.0.".$prv_vlan}=$oid.".6.0.".$first_vlan;
+		$oid_next{$oid.".6.0.".$prv_vlan}=$oid.".7.0.".$first_vlan;
+		$oid_next{$oid.".7.0.".$prv_vlan}=".1.3.6.1.2.1.17.7.1.4.3";
+	}
+
+	undef $prv_vlan;
+	undef $first_vlan;
+
+}
+
+sub readforwards()
+{
+	my $bridge = shift;
+	my $fdb=$netdir.$bridge."/brforward";
+
+	open(FWD, $fdb) or return -1;
+	while(sysread(FWD, $data, 20)){
+		my $mac;
+		my ($b1,$b2,$b3,$b4,$b5,$b6,$port,$local,$age,$hi)=
+		unpack("C6 C C L C x3", $data);
+		$mac=sprintf("%.2x:%.2x:%.2x:%.2x:%.2x:%.2x",
+					$b1,$b2,$b3,$b4,$b5,$b6);
+		$age=$age/100;
+		$macs{$mac}{$bridge}=$port;
+		$ages{$mac}{$bridge}=$age;
+		$locals{$mac}{$bridge}=FDB_STATUS_LEARNED;
+		next if ($local);
+		$macs{$mac}{$bridge}=$bridge;
+		$locals{$mac}{$bridge}=FDB_STATUS_SELF;
+	}
+	close(FWD);
+}
+
+sub readindexes()
+{
+	my $bridge = shift;
+
+	my $brifdir=$netdir.$bridge."/brif/";
+
+	opendir(DIR, $brifdir) or return -1;
+	my @interfaces = readdir(DIR);
+	next if ($#interfaces lt 2);
+	foreach my $if (@interfaces) {
+		next if $if eq ".";
+		next if  $if eq "..";
+
+		my $port=hex(readfile($brifdir.$if."/port_no", 0));
+		my $index=readfile($netdir.$if."/ifindex", 0);
+
+		$indexes{$bridge}{$port}=$index;
+		$interfaces{$bridge}{$port}=$if;
+	}
+
+	$indexes{$bridge}{$bridge}=readfile($netdir.$bridge."/ifindex", 0);
+
+	close(DIR);
+}
+
+sub readvlans()
+{
+	my $bridge = shift;
+	my $brifdir = $netdir.$bridge."/brif/";
+	my %ifs;
+
+	opendir(DIR, $brifdir) or return -1;
+	my @interfaces = readdir(DIR);
+	return if ($#interfaces < 2);
+	foreach my $if (@interfaces) {
+		next if $if eq ".";
+		next if  $if eq "..";
+		$ifs{$if}=1;
+	}
+	close(DIR);
+
+	opendir(DIR, $netdir) or return -1;
+	@interfaces = readdir(DIR);
+	return 0 if ($#interfaces < 2);
+	foreach my $if (@interfaces) {
+		next if $if eq ".";
+		next if  $if eq "..";
+		next unless($if=~/^(.*)\.(\d+)$/);
+		my $pif=$1;
+		my $vlan=$2;
+		next unless(defined($ifs{$pif}));
+		tracevlan($vlan, $if, $bridge);
+	}
+	close(DIR);
+}
+
+sub tracevlan{
+	my ($vlan, $interface, $bridge)=@_;
+
+	my $brifdir=$netdir.$interface."/brport/bridge/brif/";
+
+	opendir(DIR, $brifdir) or return -1;
+	my @interfaces = readdir(DIR);
+	return if ($#interfaces < 2);
+	foreach my $if (@interfaces) {
+		next if $if eq ".";
+		next if  $if eq "..";
+		my $port;
+		my $index;
+		if($if=~/^(.*)\.(\d+)$/){
+			my $pif=$1;
+			$brifdir=$netdir.$pif."/brport/bridge/brif/";
+			$port=hex(readfile($brifdir.$pif."/port_no", 0));
+			$index=readfile($netdir.$pif."/ifindex", 0);
+			#$indexes{$bridge}{$port}=$index;
+			#$interfaces{$bridge}{$port}=$if;
+			$tagged{$vlan}{$port}=1;
+		}else{
+			my $brid=readfile($netdir.$if."/brport/bridge/ifindex",	0);
+			$brifdir=$netdir.$if."/brport/bridge/brif/";
+			$port=hex(readfile($brifdir.$if."/port_no", 0));
+			$port=$brid*1000+$port; #create a unique port number
+			$index=readfile($netdir.$if."/ifindex", 0);
+			$indexes{$bridge}{$port}=$index;
+			$interfaces{$bridge}{$port}=$if;
+			$tagged{$vlan}{$port}=0;
+		}
+		$vlans{$vlan}{$port}=1;
+		#print "VLAN: $vlan -> $if ($port <-> $index)\n";
+	}
+	close(DIR);
+
+	my $brid=readfile($netdir.$interface."/brport/bridge/ifindex", 0);
+	my $fdb=$netdir.$interface."/brport/bridge/brforward";
+
+	my $vbridge=$bridge."_vlan".$vlan;
+	open(FWD, $fdb) or return -1;
+	while(sysread(FWD, $data, 20)){
+		my $mac;
+		my ($b1,$b2,$b3,$b4,$b5,$b6,$port,$local,$age,$hi)=
+		unpack("C6 C C L C x3", $data);
+		 $mac=sprintf("%.2x:%.2x:%.2x:%.2x:%.2x:%.2x",
+					$b1,$b2,$b3,$b4,$b5,$b6);
+		 $port=$brid*1000+$port unless(defined($indexes{$bridge}{$port}));  #create a unique port number
+		 $age=$age/100;
+		 #$macs{$mac}{$bridge}=$port;
+		 $macs{$mac}{$vbridge}=$port;
+		 #$ages{$mac}{$bridge}=$age;
+		 $ages{$mac}{$vbridge}=$age;
+		 #$locals{$mac}{$bridge}=FDB_STATUS_LEARNED;
+		 $locals{$mac}{$vbridge}=FDB_STATUS_LEARNED;
+		 next if ($local);
+		 #$macs{$mac}{$bridge}=$bridge;
+		 $macs{$mac}{$vbridge}=$bridge;
+		 #$locals{$mac}{$bridge}=FDB_STATUS_SELF;
+		 $locals{$mac}{$vbridge}=FDB_STATUS_SELF;
+	}
+	close(FWD);
+}
+
+sub readfile()
+{
+	my $file = shift;
+	my $flags = shift;
+
+	open(FILE, $file) or print "Could not open file $file !\n";
+	my $value=<FILE>;
+	chomp $value;
+	close(FILE);
+
+	if ($flags & STP_PROP_HEX) {
+		return hex($value);
+	}
+
+	return $value;
+}
+
+sub getportlist{
+	my @ports=@_;
+	my $portlist="";
+
+	@ports=sort {$a <=> $b} @ports;
+	my $last=1;
+	foreach my $port (@ports){
+		for(my $i=$last; $i<$port; $i++){
+			$portlist=$portlist."0";
+		}
+		$portlist=$portlist."1";
+		$last=$port+1;
+	}
+	return pack('B*',$portlist); 
+}
+
+sub mac2oid{
+	my ($mac)=@_;
+	my @octets=split(/:/,$mac);
+
+	$mac="";
+	foreach my $octet (@octets){
+		$mac=$mac.".".hex($octet);
+	}
+	return $mac;
+}
+
+sub mac2hex{
+        my ($mac)=@_;
+	my @decimals;
+	my @octets=split(/:/,$mac);
+
+	foreach my $octet (@octets){
+		push @decimals, hex($octet);
+	}
+	return pack("CCCCCC", @decimals);
+}
+
+sub shutdown {
+	$running = 0;
+}
diff --git a/local/snmpcheck.def b/local/snmpcheck.def
index 84997ef..ad392ee 100755
--- a/local/snmpcheck.def
+++ b/local/snmpcheck.def
@@ -32,7 +32,7 @@
 $andlog=0;
 $snmppath="BINDIR";
 $eraseline="                                                                           \r";
-$fixit=0;  # this should be 0 not -1, but is necissary till getc(STDIN) works
+$fixit=0;  # this should be 0 not -1, but is necessary till getc(STDIN) works
 $rescanWhen = 300;
 $display = $ENV{'DISPLAY'};
 $hidden = 0;
diff --git a/ltmain.sh b/ltmain.sh
index b36c4ad..1e3b146 100755
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -4576,7 +4576,7 @@
 	continue
 	;;
 
-      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads|-fstack-protector*)
 	compiler_flags="$compiler_flags $arg"
 	func_append compile_command " $arg"
 	func_append finalize_command " $arg"
diff --git a/man/Makefile.in b/man/Makefile.in
index 9052597..5627cc0 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -14,79 +14,66 @@
 # local stuff
 #
 
-MAN1  = snmpinform.1
-MAN1G = snmpbulkget.1 snmpcmd.1 snmpget.1 snmpset.1 snmpwalk.1 \
+MAN1  = snmpinform.1 snmp-bridge-mib.1
+
+@NETSNMP_HAVE_AGENTX_LIBS_TRUE@AGENTXTRAP = agentxtrap.1
+@NETSNMP_HAVE_AGENTX_LIBS_FALSE@AGENTXTRAP =
+
+MAN1G = $(AGENTXTRAP) snmpbulkget.1 snmpcmd.1 snmpget.1 snmpset.1 snmpwalk.1 \
 	snmpbulkwalk.1 snmpgetnext.1 snmptest.1 snmptranslate.1 snmptrap.1 \
 	snmpusm.1 snmpvacm.1 snmptable.1 snmpstatus.1 snmpconf.1 mib2c.1 \
 	snmpnetstat.1 snmpdelta.1 snmpdf.1 encode_keychange.1 fixproc.1 \
 	net-snmp-config.1 mib2c-update.1 tkmib.1 traptoemail.1 \
 	net-snmp-create-v3-user.1
 
-MAN3  = snmp_close.3 snmp_free_pdu.3 snmp_open.3 snmp_read.3 \
-	snmp_select_info.3 snmp_send.3 snmp_timeout.3			       \
-	snmp_sess_async_send.3 snmp_sess_close.3 snmp_sess_error.3     \
-	snmp_sess_init.3 snmp_sess_open.3 snmp_sess_read.3	       \
-	snmp_sess_select_info.3 snmp_sess_send.3 snmp_sess_timeout.3   \
-	snmp_sess_session.3 snmp_perror.3 snmp_sess_perror.3	       \
-	snmp_error.3 snmp_api_errstring.3 init_mib.3 add_mibdir.3      \
-	init_mib_internals.3 snmp_set_mib_warnings.3 read_module.3     \
-	read_all_mibs.3 read_mib.3 read_module_node.3 read_objid.3     \
-	add_module_replacement.3 shutdown_mib.3 print_mib.3	       \
-	print_variable.3 print_value.3 print_objid.3		       \
-	print_description.3 snmp_set_save_descriptions.3	       \
-	get_module_node.3 netsnmp_agent.3 netsnmp_bulk_to_next.3       \
-	netsnmp_debug.3 netsnmp_example_scalar_int.3 netsnmp_handler.3 \
-	netsnmp_instance.3 netsnmp_mib_handler_methods.3	       \
-	netsnmp_multiplexer.3 netsnmp_old_api.3 netsnmp_read_only.3    \
-	netsnmp_serialize.3 netsnmp_table.3 netsnmp_table_array.3      \
-	netsnmp_table_data.3 netsnmp_table_dataset.3		       \
-	netsnmp_table_iterator.3 netsnmp_scalar.3       \
-	netsnmp_watcher.3 netsnmp_mode_end_call.3 netsnmp_library.3    \
-	netsnmp_mib_utilities.3					       \
-	netsnmp_baby_steps.3 netsnmp_cache_handler.3		       \
-	netsnmp_container.3 netsnmp_iterator_info_s.3 netsnmp_leaf.3   \
-	netsnmp_row_merge.3		       \
-	netsnmp_scalar_group_group.3 netsnmp_stash_cache.3	       \
-	netsnmp_utilities.3 \
-	netsnmp_container_iterator.h.3 \
-	netsnmp_container_iterator.3 \
-	netsnmp_netsnmp_monitor_callback_header_s.3 \
-	netsnmp_table_row.3 \
-	netsnmp_agent_handler.h.3 \
-	netsnmp_access_multiplexer.3 \
-	netsnmp_null_container.3 \
-	netsnmp_tools.h.3
-
-MAN3G = default_store.3 mib_api.3 config_api.3 snmp_agent_api.3 snmp_alarm.3 \
-	session_api.3 snmp_sess_api.3 snmp_trap_api.3 varbind_api.3 pdu_api.3 
+# If MAN3 is populated again, then remember to re-enable the corresponding
+# action line within the 'maninstall' target
+MAN3  = 
+MAN3_API = netsnmp_mib_api.3 netsnmp_config_api.3 snmp_alarm.3 \
+	netsnmp_session_api.3 netsnmp_sess_api.3 netsnmp_trap_api.3 netsnmp_varbind_api.3 netsnmp_pdu_api.3 
+MAN3G = default_store.3 netsnmp_agent_api.3 $(MAN3_API)
 MAN5G = snmpd.conf.5 snmptrapd.conf.5 snmp.conf.5 snmp_config.5 variables.5 \
         mib2c.conf.5 snmpd.examples.5 snmpd.internal.5
 MAN8G = snmptrapd.8 snmpd.8
 
-DEFAULT_STORE_ALIASES = netsnmp_ds_get_boolean.3 netsnmp_ds_get_int.3	\
-	netsnmp_ds_get_string.3 netsnmp_ds_register_config.3		\
-	netsnmp_ds_register_premib.3 netsnmp_ds_set_boolean.3 		\
-	netsnmp_ds_set_int.3						\
-	netsnmp_ds_set_string.3 netsnmp_ds_shutdown.3
-READ_CONFIG_ALIASES = config_perror.3 config_pwarn.3			\
-	read_config_print_usage.3 read_configs.3 read_premib_configs.3	\
-	register_app_config_handler.3 register_app_premib_handler.3	\
-	register_config_handler.3 register_mib_handlers.3 		\
-	register_premib_handler.3 					\
-	unregister_app_config_handler.3 unregister_config_handler.3 read_config.3
-SNMP_ALARM_ALIASES = snmp_alarm_register.3 snmp_alarm_register_hr.3 	\
-	snmp_alarm_unregister.3
-SNMP_SET_SAVE_DESCRIPTIONS_ALIASES = fprint_description.3 fprint_objid.3 \
-	fprint_value.3 fprint_variable.3 snprint_objid.3 snprint_value.3 \
-	snprint_variable.3 sprint_realloc_objid.3 sprint_realloc_value.3 \
-	sprint_realloc_variable.3
-SNMP_TRAP_API_ALIASES = send_easy_trap.3 send_trap_vars.3 send_v2trap.3
+MIB_ALIASES     = add_mibdir.3 add_module_replacement.3		\
+	fprint_description.3 fprint_objid.3 get_module_node.3	\
+	netsnmp_init_mib.3 netsnmp_read_module.3		\
+	print_description.3 print_mib.3 print_objid.3		\
+	read_all_mibs.3 read_mib.3 read_objid.3			\
+	shutdown_mib.3 snmp_parse_oid.3 snmp_set_mib_errors.3	\
+	snmp_set_mib_warnings.3 snmp_set_save_descriptions.3	\
+	snprint_description.3 snprint_objid.3
+CONFIG_ALIASES  = config_perror.3 config_pwarn.3			    \
+	read_config_print_usage.3 read_configs.3 read_premib_configs.3	    \
+	register_app_config_handler.3 register_app_prenetsnmp_mib_handler.3 \
+	register_config_handler.3 register_const_config_handler.3	    \
+	register_mib_handlers.3 register_prenetsnmp_mib_handler.3	    \
+	unregister_all_config_handlers.3			 	    \
+	unregister_app_config_handler.3 unregister_config_handler.3
+ALARM_ALIASES   = snmp_alarm_register.3 snmp_alarm_register_hr.3 snmp_alarm_unregister.3
+SESSION_ALIASES = snmp_api_errstring.3 snmp_close.3 snmp_error.3    \
+	snmp_open.3 snmp_perror.3 snmp_read.3 snmp_select_info.3    \
+	snmp_send.3 snmp_sess_perror.3 snmp_timeout.3
+SSESS_ALIASES   = snmp_sess_async_send.3 snmp_sess_close.3 snmp_sess_error.3 \
+	snmp_sess_init.3 snmp_sess_open.3 snmp_sess_read.3		     \
+	snmp_sess_select_info.3 snmp_sess_send.3			     \
+	snmp_sess_session.3 snmp_sess_timeout.3
+TRAP_ALIASES    = send_easy_trap.3 send_trap_vars.3 send_v2trap.3 
+VARBIND_ALIASES = fprint_value.3 fprint_variable.3	\
+	print_value.3 print_variable.3			\
+	snmp_add_null_var.3 snmp_clone_varbind.3	\
+	snmp_free_var.3 snmp_free_varbind.3		\
+	snmp_pdu_add_variable.3				\
+	snmp_set_var_objid.3 snmp_set_var_typed_integer.3 \
+	snmp_set_var_typed_value.3 snmp_set_var_value.3   \
+	snmp_varlist_add_variable.3 snprint_value.3 snprint_variable.3
+PDU_ALIASES     = snmp_clone_pdu.3 snmp_fix_pdu.3 snmp_free_pdu.3 snmp_pdu_create.3
 
 
 
-MANALIASES=$(DEFAULT_STORE_ALIASES) $(READ_CONFIG_ALIASES) 		\
-	$(SNMP_ALARM_ALIASES) $(SNMP_SET_SAVE_DESCRIPTIONS_ALIASES) 	\
-	$(SNMP_TRAP_API_ALIASES)
+MANALIASES=$(MIB_ALIASES) $(CONFIG_ALIASES) $(ALARM_ALIASES) $(SESSION_ALIASES) \
+	$(SSESS_ALIASES) $(TRAP_ALIASES) $(VARBIND_ALIASES) $(PDU_ALIASES)
 MANALL = $(MAN1) $(MAN1G) $(MAN3) $(MAN3G) $(MAN5G) $(MAN8G) $(MANALIASES)
 
 TARGETS = $(MAN5G) $(MAN1G) $(MAN3G) $(MAN8G)
@@ -96,27 +83,15 @@
 
 manaliases: Makefile
 	touch manaliases
-	@for i in $(DEFAULT_STORE_ALIASES) ; do				\
-		echo "making man page alias $$i -> default_store APIs" ; \
-		echo ".so man3/default_store.3" > $$i ; 		\
+	@for i in $(MAN3_API) ; do				  \
+            for j in `sed -n '/^.SH NAME/,/^.SH SYNOPSIS/p' $$i  | sed -e 's/.- .*//' | sed 's/,.*//'  | @EGREP@ -v '^.SH ' `; do \
+		echo "making man page alias $$j -> $$i APIs" ;    \
+		echo ".so man3/$$i" > $$j.3 ; 		  \
+	    done                                                  \
 	done
-	@for i in $(READ_CONFIG_ALIASES) ; do				\
-		echo "making man page alias $$i -> config_api APIs" ;	\
-		echo ".so man3/config_api.3" > $$i ; 			\
-	done
-	@for i in $(SNMP_ALARM_ALIASES) ; do				\
-		echo "making man page alias $$i -> snmp_alarm APIs" ;	\
-		echo ".so man3/snmp_alarm.3" > $$i ; 			\
-	done
-	@for i in $(SNMP_SET_SAVE_DESCRIPTIONS_ALIASES) ; do		\
-		echo "making man page alias $$i -> snmp_set_save_descriptions APIs" ; \
-		echo ".so man3/snmp_set_save_descriptions.3" > $$i ; 	\
-	done
-	@for i in $(SNMP_TRAP_API_ALIASES) ; do				\
-		echo "making man page alias $$i -> snmp_trap APIs" ;	\
-		echo ".so man3/snmp_trap_api.3" > $$i ;			\
-	done
-	echo ".so man3/session_api.3" > snmp_api.3
+
+agentxtrap.1: $(srcdir)/agentxtrap.1.def ../sedscript
+	$(SED) -f ../sedscript < $(srcdir)/agentxtrap.1.def > agentxtrap.1
 
 snmpbulkget.1: $(srcdir)/snmpbulkget.1.def ../sedscript
 	$(SED) -f ../sedscript < $(srcdir)/snmpbulkget.1.def > snmpbulkget.1
@@ -194,61 +169,61 @@
 	$(SED) -f ../sedscript < $(srcdir)/net-snmp-create-v3-user.1.def > net-snmp-create-v3-user.1
 
 tkmib.1: $(srcdir)/tkmib.1.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/tkmib.1.def > tkmib.1
+	$(SED) -f ../sedscript < $(srcdir)/tkmib.1.def > $@
 
 traptoemail.1: $(srcdir)/traptoemail.1.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/traptoemail.1.def > traptoemail.1
+	$(SED) -f ../sedscript < $(srcdir)/traptoemail.1.def > $@
 
-varbind_api.3: $(srcdir)/varbind_api.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/varbind_api.3.def > varbind_api.3
+netsnmp_varbind_api.3: $(srcdir)/netsnmp_varbind_api.3.def ../sedscript
+	$(SED) -f ../sedscript < $(srcdir)/netsnmp_varbind_api.3.def > $@
 
-pdu_api.3: $(srcdir)/pdu_api.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/pdu_api.3.def > pdu_api.3
+netsnmp_pdu_api.3: $(srcdir)/netsnmp_pdu_api.3.def ../sedscript
+	$(SED) -f ../sedscript < $(srcdir)/netsnmp_pdu_api.3.def > $@
 
-session_api.3: $(srcdir)/session_api.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/session_api.3.def > session_api.3
+netsnmp_session_api.3: $(srcdir)/netsnmp_session_api.3.def ../sedscript
+	$(SED) -f ../sedscript < $(srcdir)/netsnmp_session_api.3.def > $@
 
-mib_api.3: $(srcdir)/mib_api.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/mib_api.3.def > mib_api.3
+netsnmp_mib_api.3: $(srcdir)/netsnmp_mib_api.3.def ../sedscript
+	$(SED) -f ../sedscript < $(srcdir)/netsnmp_mib_api.3.def > $@
 
-config_api.3: $(srcdir)/config_api.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/config_api.3.def > config_api.3
-
-snmp_agent_api.3: $(srcdir)/snmp_agent_api.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmp_agent_api.3.def > snmp_agent_api.3
+netsnmp_config_api.3: $(srcdir)/netsnmp_config_api.3.def ../sedscript
+	$(SED) -f ../sedscript < $(srcdir)/netsnmp_config_api.3.def > $@
 
 snmp_alarm.3: $(srcdir)/snmp_alarm.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmp_alarm.3.def > snmp_alarm.3
+	$(SED) -f ../sedscript < $(srcdir)/snmp_alarm.3.def > $@
 
-snmp_sess_api.3: $(srcdir)/snmp_sess_api.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmp_sess_api.3.def > snmp_sess_api.3
+netsnmp_sess_api.3: $(srcdir)/netsnmp_sess_api.3.def ../sedscript
+	$(SED) -f ../sedscript < $(srcdir)/netsnmp_sess_api.3.def > $@
 
-snmp_trap_api.3: $(srcdir)/snmp_trap_api.3.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmp_trap_api.3.def > snmp_trap_api.3
+netsnmp_agent_api.3: $(srcdir)/netsnmp_agent_api.3.def ../sedscript
+	$(SED) -f ../sedscript < $(srcdir)/netsnmp_agent_api.3.def > $@
+
+netsnmp_trap_api.3: $(srcdir)/netsnmp_trap_api.3.def ../sedscript
+	$(SED) -f ../sedscript < $(srcdir)/netsnmp_trap_api.3.def > $@
 
 snmp.conf.5: $(srcdir)/snmp.conf.5.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmp.conf.5.def > snmp.conf.5
+	$(SED) -f ../sedscript < $(srcdir)/snmp.conf.5.def > $@
 
 snmp_config.5: $(srcdir)/snmp_config.5.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmp_config.5.def > snmp_config.5
+	$(SED) -f ../sedscript < $(srcdir)/snmp_config.5.def > $@
 
 snmpd.conf.5: $(srcdir)/snmpd.conf.5.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmpd.conf.5.def > snmpd.conf.5
+	$(SED) -f ../sedscript < $(srcdir)/snmpd.conf.5.def > $@
 
 snmpd.examples.5: $(srcdir)/snmpd.examples.5.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmpd.examples.5.def > snmpd.examples.5
+	$(SED) -f ../sedscript < $(srcdir)/snmpd.examples.5.def > $@
 
 snmpd.internal.5: $(srcdir)/snmpd.internal.5.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmpd.internal.5.def > snmpd.internal.5
+	$(SED) -f ../sedscript < $(srcdir)/snmpd.internal.5.def > $@
 
 snmptrapd.conf.5: $(srcdir)/snmptrapd.conf.5.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmptrapd.conf.5.def > snmptrapd.conf.5
+	$(SED) -f ../sedscript < $(srcdir)/snmptrapd.conf.5.def > $@
 
 variables.5: $(srcdir)/variables.5.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/variables.5.def > variables.5
+	$(SED) -f ../sedscript < $(srcdir)/variables.5.def > $@
 
 snmptrapd.8: $(srcdir)/snmptrapd.8.def ../sedscript
-	$(SED) -f ../sedscript < $(srcdir)/snmptrapd.8.def > snmptrapd.8
+	$(SED) -f ../sedscript < $(srcdir)/snmptrapd.8.def > $@
 
 default_store.3.h: $(srcdir)/../include/net-snmp/library/default_store.h
 	awk '{ if ($$0 == "     * begin storage definitions ") { p = 1 } else if ($$0 == "     * end storage definitions ") { p = 0 } else if (p) { print $$0}}' < $(srcdir)/../include/net-snmp/library/default_store.h > default_store.3.h
@@ -268,7 +243,7 @@
 	@for i in $(MAN1) ; do $(INSTALL_DATA) $(srcdir)/$$i $(INSTALL_PREFIX)$(man1dir) ; echo "install:  installed $$i in $(INSTALL_PREFIX)$(man1dir)" ; done
 	@$(INSTALL_DATA) $(MAN1G) $(INSTALL_PREFIX)$(man1dir)
 	@for i in $(MAN1G) ; do echo "install:  installed $$i in $(INSTALL_PREFIX)$(man1dir)" ; done
-	@for i in $(MAN3) ; do $(INSTALL_DATA) $(srcdir)/$$i $(INSTALL_PREFIX)$(man3dir) ; echo "install:  installed $$i in $(INSTALL_PREFIX)$(man3dir)" ; done
+	#EMPTY LIST#@for i in $(MAN3) ; do $(INSTALL_DATA) $(srcdir)/$$i $(INSTALL_PREFIX)$(man3dir) ; echo "install:  installed $$i in $(INSTALL_PREFIX)$(man3dir)" ; done
 	@$(INSTALL_DATA) $(MAN3G) $(INSTALL_PREFIX)$(man3dir)
 	@for i in $(MAN3G) ; do echo "install:  installed $$i in $(INSTALL_PREFIX)$(man3dir)" ; done
 	@$(INSTALL_DATA) $(MANALIASES) $(INSTALL_PREFIX)$(man3dir)
diff --git a/man/add_mibdir.3 b/man/add_mibdir.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/add_mibdir.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/add_module_replacement.3 b/man/add_module_replacement.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/add_module_replacement.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/agentxtrap.1.def b/man/agentxtrap.1.def
new file mode 100644
index 0000000..331325f
--- /dev/null
+++ b/man/agentxtrap.1.def
@@ -0,0 +1,110 @@
+.TH AGENTXTRAP 1 "20 Dec 2009" VVERSIONINFO "Net-SNMP"
+.SH NAME
+agentxtrap - send an AgentX NotifyPDU to an AgentX master agent
+.SH SYNOPSIS
+.B agentxtrap
+.RI [ OPTIONS ] " trap-oid " [ "OID TYPE VALUE" ...]
+.SH DESCRIPTION
+.B agentxtrap
+issues an AgentX NotifyPDU to a master agent. One or more object
+identifiers (OIDs) can be given as arguments on the command line.
+A type and a value must accompany each object identifier.
+Each variable name is given in the format specified in
+.IR variables(5) .
+.PP
+.SH OPTIONS
+.PD 0
+.TP 6
+.BI \-c "\| contextName\^"
+if the
+.B \-c
+option is present then the notification is sent in the nondefault name context.
+.TP
+.BI \-U "\| uptime\^"
+if the
+.B \-U
+option is present then that value, parsed as centiseconds, is taken to be the
+sysUpTime field of the application.
+.TP
+.BI \-x "\| ADDRESS\^"
+if the
+.B \-x
+option is present then contact the AgentX master at ADDRESS and not the default
+one.
+.PD
+.PP
+Additionally all the options described in
+.IR snmpcmd(1)
+under the
+.BR "MIB PARSING OPTIONS" ", " "LOGGING OPTIONS" " and " "INPUT OPTIONS"
+headers as well as the
+.BR -d ", " -D ", " -m " and " -M
+options are supported.
+.PP
+In
+.I OID TYPE VALUE
+the parsing of the
+.I VALUE
+field is controlled by the
+.I TYPE
+field. The possible values for the
+.I TYPE
+field is one of the following characters:
+.RS
+.PD 0
+.TP 3
+.B =
+Let
+.I OID
+decide how
+.I VALUE
+should be interpreted
+.TP
+.B i
+INTEGER
+.TP
+.B u
+Unsigned
+.TP
+.B c
+Counter32
+.TP
+.B s
+OCTET STRING of chaacters
+.TP
+.B x
+OCTET STRING, entered as a sequence of optionally space separated hexadecimal
+digit pairs
+.TP
+.B d
+OCTET STRING, entered as a sequence of space separated decimal digits in the
+range 0 - 255
+.TP
+.B n
+NULL
+.TP
+.B o
+OBJECT IDENTIFIER
+.TP
+.B t
+TimeTicks
+.TP
+.B a
+IpAddress
+.TP
+.B b
+BITS
+.PD
+.RE
+which are handled in the same way as the
+.B snmpset
+command.
+.PP
+.SH EXAMPLES
+To send a generic linkUp trap to the manager for interface 1 the following
+command can be used:
+.PP
+agentxtrap netSnmp.0.3 ifindex.1 i 1
+.PP
+.SH SEE ALSO
+snmpcmd(1), snmpset(1), variables(5), RFC 2741
diff --git a/man/default_store.3.bot b/man/default_store.3.bot
index 56a3678..16c08ee 100644
--- a/man/default_store.3.bot
+++ b/man/default_store.3.bot
@@ -116,5 +116,5 @@
 is processed before MIBs are read (this is therefore useful for controlling
 MIB processing options).
 .SH "SEE ALSO"
-.BR snmp_config "(5), " read_config "(3)"
+.BR snmp_config "(5), " netsnmp_config_api "(3)"
 
diff --git a/man/default_store.3.top b/man/default_store.3.top
index ec526bb..cc04822 100644
--- a/man/default_store.3.top
+++ b/man/default_store.3.top
@@ -1,5 +1,4 @@
 .TH DEFAULT_STORE 3 "25 Jun 2002" VVERSIONINFO "Net-SNMP"
-.UC 5
 .SH NAME
 default_store \- generic storage of global data.
 .SH SYNOPSIS
diff --git a/man/get_module_node.3 b/man/get_module_node.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/get_module_node.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/init_mib.3 b/man/init_mib.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/init_mib.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/init_mib_internals.3 b/man/init_mib_internals.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/init_mib_internals.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/mib2c-update.1.def b/man/mib2c-update.1.def
index bd9ad93..52ece8a 100644
--- a/man/mib2c-update.1.def
+++ b/man/mib2c-update.1.def
@@ -1,4 +1,4 @@
-.TH mib2c-update "1" "16 Nov 2006" VVERSIONINFO "Net-SNMP"
+.TH mib2c-update 1 "07 Apr 2010" VVERSIONINFO "Net-SNMP"
 .SH NAME
 mib2c-update - script to merge custom code into updated mib2c code
 .SH SYNOPSIS
@@ -6,4 +6,23 @@
 .B mib2c-update
 .SH DESCRIPTION
 .PP
-merges custom code into updated mib2c code
+Use mib2c-update to generate your mib2c code templates, and it will track
+the original code and the changes you make to the code. If the mib2c
+template changes (bug fixes, enhances in later releases), re-running
+mib2c will update the template and then attempt to re-apply your
+changes.
+.PP
+This can be extremely useful when developing your own mib2c templates.
+.PP
+When you first run mib2c-update, it will create several hidden
+directories and a .mib2c-updaterc file. You must edit the .mib2c-udpaterc
+file to specify two values. The first, UPDATE_OID, is the table name
+to specify when running mib2c. The second, UPDATE_CONF, is the mib2c
+configuration file to specify when running mib2c.
+.PP
+Additional mib2c options can be specified in UPDATE_MIB2C_OPTS.
+.PP
+.SH BUGS
+.PP
+mib2c-update has only been tested on individual tables. Specifying
+a scalar or and entire MIB might not work.
diff --git a/man/mib2c.1.def b/man/mib2c.1.def
index 0b8c989..b9c1134 100644
--- a/man/mib2c.1.def
+++ b/man/mib2c.1.def
@@ -7,12 +7,12 @@
 .\" Use is subject to license terms specified in the COPYING file
 .\" distributed with the Net-SNMP package.
 .\" ******************************************************************/
-.TH MIB2C 1 "1 Sep 2004" VVERSIONINFO "Net-SNMP"
+.TH MIB2C 1 "05 Apr 2010" VVERSIONINFO "Net-SNMP"
 .SH NAME
 mib2c -- generate template code for extending the agent
 .SH SYNOPSIS
 .B mib2c
-[-h] -c CONFIGFILE [-I PATH] [-f OUTNAME] [-i][q][-S VAR=VAL] MIBNODE
+[-h] -c CONFIGFILE [-I PATH] [-f OUTNAME] [-i][-s][-q][-S VAR=VAL] MIBNODE
 .SH DESCRIPTION
 The mib2c tool is designed to take a portion of the MIB tree (as defined
 by a MIB file) and generate the template C code necessary to implement
@@ -175,6 +175,10 @@
 .BI -i
 Do not run indent on the resulting code.
 .TP
+.BI -s
+Do not look for MIBNODE.sed and run sed on the resulting code. This
+is useful to shorten long mib variable names in the code.
+.TP
 .BI -q
 Run in "quiet" mode, which minimizes the status messages
 mib2c generates.
diff --git a/man/mib2c.conf.5.in b/man/mib2c.conf.5.in
index 9bef875..7e5a210 100644
--- a/man/mib2c.conf.5.in
+++ b/man/mib2c.conf.5.in
@@ -1,5 +1,4 @@
-.TH MIB2C.CONF 5 "28 Apr 2004" V5.2 "Net-SNMP"
-.UC 4
+.TH MIB2C.CONF 5 "28 Apr 2004" VVERSIONINFO "Net-SNMP"
 .SH NAME
 mib2c.conf -- How to write mib2c.conf files to do ANYTHING based on MIB input.
 .SH SYNOPSIS
diff --git a/man/netsnmp_access_multiplexer.3 b/man/netsnmp_access_multiplexer.3
deleted file mode 100644
index 3b58ea2..0000000
--- a/man/netsnmp_access_multiplexer.3
+++ /dev/null
@@ -1,26 +0,0 @@
-.TH "baby_steps_access_multiplexer: calls individual access methods based on baby_step mode." 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-baby_steps_access_multiplexer: calls individual access methods based on baby_step mode. \- 
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_baby_steps_access_multiplexer_get\fP (\fBnetsnmp_baby_steps_access_methods\fP *am)"
-.br
-.RI "\fIreturns a baby_steps handler that can be injected into a given handler chain. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_baby_step_mode2flag\fP (u_int mode)"
-.br
-.in -1c
-.SH "Function Documentation"
-.PP 
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_baby_steps_access_multiplexer_get (\fBnetsnmp_baby_steps_access_methods\fP * am)"
-.PP
-returns a baby_steps handler that can be injected into a given handler chain. 
-.PP
-Definition at line 336 of file baby_steps.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_agent.3 b/man/netsnmp_agent.3
deleted file mode 100644
index d45ae64..0000000
--- a/man/netsnmp_agent.3
+++ /dev/null
@@ -1,33 +0,0 @@
-.TH "The Net-SNMP agent" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-The Net-SNMP agent \- 
-.PP
-The snmp agent responds to SNMP queries from management stations.  
-
-.SS "Modules"
-
-.in +1c
-.ti -1c
-.RI "\fBNet-SNMP Agent handler and extensibility API\fP"
-.br
-.PP
-
-.RI "\fIThe basic theory goes something like this: In the past, with the original mib \fBmodule\fP api (which derived from the original CMU SNMP code) the underlying mib modules were passed very little information (only the truly most basic information about a request). \fP"
-.ti -1c
-.RI "\fBMaintain a registry of MIB subtrees, together with related information regarding mibmodule, sessions, etc\fP"
-.br
-.ti -1c
-.RI "\fBTrap generation routines for mib modules to use\fP"
-.br
-.ti -1c
-.RI "\fBnet-snmp agent related processing\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-The snmp agent responds to SNMP queries from management stations. 
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/snmp_agent_api.3.def b/man/netsnmp_agent_api.3.def
similarity index 93%
rename from man/snmp_agent_api.3.def
rename to man/netsnmp_agent_api.3.def
index 63e40de..87dc541 100644
--- a/man/snmp_agent_api.3.def
+++ b/man/netsnmp_agent_api.3.def
@@ -1,6 +1,6 @@
-.TH SNMP_AGENT_API 3 "01 Aug 2002" VVERSIONINFO "Net-SNMP"
+.TH NETSNMP_AGENT_API 3 "13 Aug 2010" VVERSIONINFO "Net-SNMP"
 .SH NAME
-snmp_agent_api \- embedding an agent into a external application
+netsnmp_agent_api \- embedding an agent into a external application
 .SH SYNOPSIS
 .nf
 #include <net-snmp/net-snmp-config.h>
@@ -110,7 +110,7 @@
 .I name
 string that you passed in.  It can be used to configure access
 control, for instance.   Please see the
-.IR read_config(3) ", " snmp_config(5) ", and " snmpd.conf(5)
+.IR netsnmp_config_api(3) ", " snmp_config(5) ", and " snmpd.conf(5)
 manual pages for further details on this subject.
 .IP "init_master_agent(void)"
 Initializes the master agent and causes it to listen for SNMP requests 
@@ -127,6 +127,6 @@
 .IP "snmp_shutdown(char *name);"
 This shuts down the agent, saving any needed persistent storage, etc.
 .SH "SEE ALSO"
-http://www.net-snmp.org/tutorial-5/toolkit/, select(2), snmp_api(3),
-default_store(3), snmp_alarm(3), read_config(3), snmp_config(5),
+http://www.net-snmp.org/tutorial-5/toolkit/ select(2), snmp_api(3),
+default_store(3), snmp_alarm(3), netsnmp_config_api(3), snmp_config(5),
 snmpd.conf(5)
diff --git a/man/netsnmp_agent_handler.h.3 b/man/netsnmp_agent_handler.h.3
deleted file mode 100644
index 41429e4..0000000
--- a/man/netsnmp_agent_handler.h.3
+++ /dev/null
@@ -1,240 +0,0 @@
-.TH "agent_handler.h" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-agent_handler.h \- 
-.SH SYNOPSIS
-.br
-.PP
-.SS "Data Structures"
-
-.in +1c
-.ti -1c
-.RI "struct \fBnetsnmp_mib_handler_s\fP"
-.br
-.RI "\fIthe mib handler structure to be registered \fP"
-.ti -1c
-.RI "struct \fBnetsnmp_handler_registration_s\fP"
-.br
-.RI "\fIRoot registration info. \fP"
-.ti -1c
-.RI "struct \fBnetsnmp_handler_args_s\fP"
-.br
-.ti -1c
-.RI "struct \fBnetsnmp_delegated_cache_s\fP"
-.br
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBMIB_HANDLER_AUTO_NEXT\fP   0x00000001"
-.br
-.ti -1c
-.RI "#define \fBMIB_HANDLER_AUTO_NEXT_OVERRIDE_ONCE\fP   0x00000002"
-.br
-.ti -1c
-.RI "#define \fBMIB_HANDLER_INSTANCE\fP   0x00000004"
-.br
-.ti -1c
-.RI "#define \fBMIB_HANDLER_CUSTOM4\fP   0x10000000"
-.br
-.ti -1c
-.RI "#define \fBMIB_HANDLER_CUSTOM3\fP   0x20000000"
-.br
-.ti -1c
-.RI "#define \fBMIB_HANDLER_CUSTOM2\fP   0x40000000"
-.br
-.ti -1c
-.RI "#define \fBMIB_HANDLER_CUSTOM1\fP   0x80000000"
-.br
-.ti -1c
-.RI "#define \fBHANDLER_CAN_GETANDGETNEXT\fP   0x01"
-.br
-.ti -1c
-.RI "#define \fBHANDLER_CAN_SET\fP   0x02"
-.br
-.ti -1c
-.RI "#define \fBHANDLER_CAN_GETBULK\fP   0x04"
-.br
-.ti -1c
-.RI "#define \fBHANDLER_CAN_NOT_CREATE\fP   0x08"
-.br
-.ti -1c
-.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
-.RI "#define \fBHANDLER_CAN_RWRITE\fP   (HANDLER_CAN_GETANDGETNEXT | HANDLER_CAN_SET)"
-.br
-.ti -1c
-.RI "#define \fBHANDLER_CAN_SET_ONLY\fP   (HANDLER_CAN_SET | HANDLER_CAN_NOT_CREATE)"
-.br
-.ti -1c
-.RI "#define \fBHANDLER_CAN_DEFAULT\fP   (HANDLER_CAN_RONLY | HANDLER_CAN_NOT_CREATE)"
-.br
-.ti -1c
-.RI "#define \fBREQUEST_IS_DELEGATED\fP   1"
-.br
-.ti -1c
-.RI "#define \fBREQUEST_IS_NOT_DELEGATED\fP   0"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef struct \fBnetsnmp_mib_handler_s\fP \fBnetsnmp_mib_handler\fP"
-.br
-.RI "\fITypedefs the \fBnetsnmp_mib_handler_s\fP struct into netsnmp_mib_handler. \fP"
-.ti -1c
-.RI "typedef struct \fBnetsnmp_handler_registration_s\fP \fBnetsnmp_handler_registration\fP"
-.br
-.RI "\fITypedefs the \fBnetsnmp_handler_registration_s\fP struct into netsnmp_handler_registration. \fP"
-.ti -1c
-.RI "typedef int( \fBNetsnmp_Node_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 "typedef struct \fBnetsnmp_handler_args_s\fP \fBnetsnmp_handler_args\fP"
-.br
-.ti -1c
-.RI "typedef struct \fBnetsnmp_delegated_cache_s\fP \fBnetsnmp_delegated_cache\fP"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBnetsnmp_init_handler_conf\fP (void)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_handler\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIregister a handler, as defined by the netsnmp_handler_registration pointer. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_unregister_handler\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIunregister a handler, as defined by the netsnmp_handler_registration pointer. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_handler_nocallback\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIregister a handler, as defined by the netsnmp_handler_registration pointer. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_inject_handler\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_mib_handler\fP *handler)"
-.br
-.RI "\fIinject a new handler into the calling chain of the handlers defined by the netsnmp_handler_registration pointer. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_inject_handler_before\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_mib_handler\fP *handler, const char *before_what)"
-.br
-.RI "\fIinject a new handler into the calling chain of the handlers defined by the netsnmp_handler_registration pointer. \fP"
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_find_handler_by_name\fP (\fBnetsnmp_handler_registration\fP *reginfo, const char *name)"
-.br
-.RI "\fIReturns a handler from a chain based on the name. \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_find_handler_data_by_name\fP (\fBnetsnmp_handler_registration\fP *reginfo, const char *name)"
-.br
-.RI "\fIReturns a handler's void * pointer from a chain based on the name. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_call_handlers\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
-.br
-.ti -1c
-.RI "NETSNMP_INLINE int \fBnetsnmp_call_handler\fP (\fBnetsnmp_mib_handler\fP *next_handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
-.br
-.RI "\fIcalls a handler with with appropriate NULL checking of arguments, etc. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE int \fBnetsnmp_call_next_handler\fP (\fBnetsnmp_mib_handler\fP *current, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
-.br
-.RI "\fIcalls the next handler in the chain after the current one with with appropriate NULL checking, etc. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE int \fBnetsnmp_call_next_handler_one_request\fP (\fBnetsnmp_mib_handler\fP *current, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
-.br
-.RI "\fIcalls the next handler in the chain after the current one with with appropriate NULL checking, etc. \fP"
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_create_handler\fP (const char *name, Netsnmp_Node_Handler *handler_access_method)"
-.br
-.RI "\fIcreates a netsnmp_mib_handler structure given a name and a access method. \fP"
-.ti -1c
-.RI "\fBnetsnmp_handler_registration\fP * \fBnetsnmp_handler_registration_create\fP (const char *name, \fBnetsnmp_mib_handler\fP *handler, const oid *reg_oid, size_t reg_oid_len, int modes)"
-.br
-.RI "\fIcreates a handler registration structure given a name, a access_method function, a registration location oid and the modes the handler supports. \fP"
-.ti -1c
-.RI "\fBnetsnmp_handler_registration\fP * \fBnetsnmp_create_handler_registration\fP (const char *name, Netsnmp_Node_Handler *handler_access_method, const oid *reg_oid, size_t reg_oid_len, int modes)"
-.br
-.ti -1c
-.RI "NETSNMP_INLINE \fBnetsnmp_delegated_cache\fP * \fBnetsnmp_create_delegated_cache\fP (\fBnetsnmp_mib_handler\fP *handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests, void *localinfo)"
-.br
-.RI "\fIcreates a cache of information which can be saved for future reference. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_free_delegated_cache\fP (\fBnetsnmp_delegated_cache\fP *dcache)"
-.br
-.RI "\fIfrees a cache once you're finished using it \fP"
-.ti -1c
-.RI "NETSNMP_INLINE \fBnetsnmp_delegated_cache\fP * \fBnetsnmp_handler_check_cache\fP (\fBnetsnmp_delegated_cache\fP *dcache)"
-.br
-.RI "\fIcheck's a given cache and returns it if it is still valid (ie, the agent still considers it to be an outstanding request. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_register_handler_by_name\fP (const char *name, \fBnetsnmp_mib_handler\fP *handler)"
-.br
-.RI "\fIregisters a given handler by name so that it can be found easily later. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_clear_handler_list\fP (void)"
-.br
-.RI "\fIclears the entire handler-registration list \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_request_add_list_data\fP (\fBnetsnmp_request_info\fP *request, \fBnetsnmp_data_list\fP *\fBnode\fP)"
-.br
-.RI "\fIadd data to a request that can be extracted later by submodules \fP"
-.ti -1c
-.RI "NETSNMP_INLINE int \fBnetsnmp_request_remove_list_data\fP (\fBnetsnmp_request_info\fP *request, const char *name)"
-.br
-.RI "\fIremove data from a request \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_request_get_list_data\fP (\fBnetsnmp_request_info\fP *request, const char *name)"
-.br
-.RI "\fIextract data from a request that was added previously by a parent \fBmodule\fP \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_free_request_data_set\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIFree the extra data stored in a request. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_free_request_data_sets\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIFree the extra data stored in a bunch of requests (all data in the chain). \fP"
-.ti -1c
-.RI "void \fBnetsnmp_handler_free\fP (\fBnetsnmp_mib_handler\fP *handler)"
-.br
-.RI "\fIfrees the resources associated with a given handler \fP"
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_handler_dup\fP (\fBnetsnmp_mib_handler\fP *handler)"
-.br
-.RI "\fIduplicates a handler and all subsequent handlers see also _clone_handler \fP"
-.ti -1c
-.RI "\fBnetsnmp_handler_registration\fP * \fBnetsnmp_handler_registration_dup\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIduplicates the handler registration object \fP"
-.ti -1c
-.RI "void \fBnetsnmp_handler_registration_free\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIfree the resources associated with a handler registration object \fP"
-.ti -1c
-.RI "void \fBnetsnmp_handler_mark_requests_as_delegated\fP (\fBnetsnmp_request_info\fP *requests, int isdelegated)"
-.br
-.RI "\fImarks a list of requests as delegated (or not if isdelegaded = 0) \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_handler_get_parent_data\fP (\fBnetsnmp_request_info\fP *, const char *)"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-
-.PP
-Definition in file \fBagent_handler.h\fP.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_agent_registry.3 b/man/netsnmp_agent_registry.3
deleted file mode 100644
index 36c8d9f..0000000
--- a/man/netsnmp_agent_registry.3
+++ /dev/null
@@ -1,278 +0,0 @@
-.TH "Maintain a registry of MIB subtrees, together with related information regarding mibmodule, sessions, etc" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Maintain a registry of MIB subtrees, together with related information regarding mibmodule, sessions, etc \- 
-.SS "Data Structures"
-
-.in +1c
-.ti -1c
-.RI "struct \fBlookup_cache_s\fP"
-.br
-.ti -1c
-.RI "struct \fBlookup_cache_context_s\fP"
-.br
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBIN_SNMP_VARS_C\fP"
-.br
-.ti -1c
-.RI "#define \fBSUBTREE_DEFAULT_CACHE_SIZE\fP   8"
-.br
-.ti -1c
-.RI "#define \fBSUBTREE_MAX_CACHE_SIZE\fP   32"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef struct \fBlookup_cache_s\fP \fBlookup_cache\fP"
-.br
-.ti -1c
-.RI "typedef struct \fBlookup_cache_context_s\fP \fBlookup_cache_context\fP"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBnetsnmp_set_lookup_cache_size\fP (int newsize)"
-.br
-.RI "\fIset the lookup cache size for optimized agent registration performance. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_get_lookup_cache_size\fP (void)"
-.br
-.RI "\fIretrieves the current value of the lookup cache size \fP"
-.ti -1c
-.RI "NETSNMP_STATIC_INLINE \fBlookup_cache_context\fP * \fBget_context_lookup_cache\fP (const char *context)"
-.br
-.ti -1c
-.RI "NETSNMP_STATIC_INLINE void \fBlookup_cache_add\fP (const char *context, \fBnetsnmp_subtree\fP *next, \fBnetsnmp_subtree\fP *previous)"
-.br
-.ti -1c
-.RI "NETSNMP_STATIC_INLINE void \fBlookup_cache_replace\fP (\fBlookup_cache\fP *ptr, \fBnetsnmp_subtree\fP *next, \fBnetsnmp_subtree\fP *previous)"
-.br
-.ti -1c
-.RI "NETSNMP_STATIC_INLINE \fBlookup_cache\fP * \fBlookup_cache_find\fP (const char *context, oid *name, size_t name_len, int *retcmp)"
-.br
-.ti -1c
-.RI "NETSNMP_STATIC_INLINE void \fBinvalidate_lookup_cache\fP (const char *context)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_subtree_free\fP (\fBnetsnmp_subtree\fP *a)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_subtree\fP * \fBnetsnmp_subtree_deepcopy\fP (\fBnetsnmp_subtree\fP *a)"
-.br
-.ti -1c
-.RI "\fBsubtree_context_cache\fP * \fBget_top_context_cache\fP (void)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_subtree\fP * \fBnetsnmp_subtree_find_first\fP (const char *context_name)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_subtree\fP * \fBadd_subtree\fP (\fBnetsnmp_subtree\fP *new_tree, const char *context_name)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_subtree\fP * \fBnetsnmp_subtree_replace_first\fP (\fBnetsnmp_subtree\fP *new_tree, const char *context_name)"
-.br
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_subtree_change_next\fP (\fBnetsnmp_subtree\fP *ptr, \fBnetsnmp_subtree\fP *thenext)"
-.br
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_subtree_change_prev\fP (\fBnetsnmp_subtree\fP *ptr, \fBnetsnmp_subtree\fP *theprev)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_subtree_compare\fP (const \fBnetsnmp_subtree\fP *ap, const \fBnetsnmp_subtree\fP *bp)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_subtree_join\fP (\fBnetsnmp_subtree\fP *root)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_subtree\fP * \fBnetsnmp_subtree_split\fP (\fBnetsnmp_subtree\fP *current, oid name[], int name_len)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_subtree_load\fP (\fBnetsnmp_subtree\fP *new_sub, const char *context_name)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_mib\fP (const char *moduleName, struct \fBvariable\fP *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, \fBnetsnmp_handler_registration\fP *reginfo, int perform_callback)"
-.br
-.ti -1c
-.RI "void \fBregister_mib_reattach\fP (void)"
-.br
-.ti -1c
-.RI "void \fBregister_mib_detach\fP (void)"
-.br
-.ti -1c
-.RI "int \fBregister_mib_context\fP (const char *moduleName, struct \fBvariable\fP *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)"
-.br
-.ti -1c
-.RI "int \fBregister_mib_range\fP (const char *moduleName, struct \fBvariable\fP *var, size_t varsize, size_t numvars, oid *mibloc, size_t mibloclen, int priority, int range_subid, oid range_ubound, \fBnetsnmp_session\fP *ss)"
-.br
-.ti -1c
-.RI "int \fBregister_mib_priority\fP (const char *moduleName, struct \fBvariable\fP *var, size_t varsize, size_t numvars, oid *mibloc, size_t mibloclen, int priority)"
-.br
-.ti -1c
-.RI "int \fBregister_mib\fP (const char *moduleName, struct \fBvariable\fP *var, size_t varsize, size_t numvars, oid *mibloc, size_t mibloclen)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_subtree_unload\fP (\fBnetsnmp_subtree\fP *sub, \fBnetsnmp_subtree\fP *prev, const char *context)"
-.br
-.ti -1c
-.RI "int \fBunregister_mib_context\fP (oid *name, size_t len, int priority, int range_subid, oid range_ubound, const char *context)"
-.br
-.RI "\fIUnregisters an OID that has an associated context name value. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_unregister_mib_table_row\fP (oid *name, size_t len, int priority, int var_subid, oid range_ubound, const char *context)"
-.br
-.ti -1c
-.RI "int \fBunregister_mib_range\fP (oid *name, size_t len, int priority, int range_subid, oid range_ubound)"
-.br
-.ti -1c
-.RI "int \fBunregister_mib_priority\fP (oid *name, size_t len, int priority)"
-.br
-.ti -1c
-.RI "int \fBunregister_mib\fP (oid *name, size_t len)"
-.br
-.ti -1c
-.RI "void \fBunregister_mibs_by_session\fP (\fBnetsnmp_session\fP *ss)"
-.br
-.ti -1c
-.RI "int \fBin_a_view\fP (oid *name, size_t *namelen, \fBnetsnmp_pdu\fP *pdu, int type)"
-.br
-.ti -1c
-.RI "int \fBcheck_access\fP (\fBnetsnmp_pdu\fP *pdu)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_acm_check_subtree\fP (\fBnetsnmp_pdu\fP *pdu, oid *name, size_t namelen)"
-.br
-.RI "\fIchecks to see if everything within a given subtree is either: in view, not in view, or possibly both. \fP"
-.ti -1c
-.RI "\fBnetsnmp_subtree\fP * \fBnetsnmp_subtree_find_prev\fP (oid *name, size_t len, \fBnetsnmp_subtree\fP *subtree, const char *context_name)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_subtree\fP * \fBnetsnmp_subtree_find_next\fP (oid *name, size_t len, \fBnetsnmp_subtree\fP *subtree, const char *context_name)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_subtree\fP * \fBnetsnmp_subtree_find\fP (oid *name, size_t len, \fBnetsnmp_subtree\fP *subtree, const char *context_name)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_session\fP * \fBget_session_for_oid\fP (oid *name, size_t len, const char *context_name)"
-.br
-.ti -1c
-.RI "void \fBsetup_tree\fP (void)"
-.br
-.ti -1c
-.RI "int \fBremove_tree_entry\fP (oid *name, size_t len)"
-.br
-.ti -1c
-.RI "void \fBshutdown_tree\fP (void)"
-.br
-.ti -1c
-.RI "void \fBclear_subtree\fP (\fBnetsnmp_subtree\fP *sub)"
-.br
-.ti -1c
-.RI "void \fBclear_lookup_cache\fP (void)"
-.br
-.ti -1c
-.RI "void \fBclear_context\fP (void)"
-.br
-.ti -1c
-.RI "void \fBdump_idx_registry\fP (void)"
-.br
-.ti -1c
-.RI "void \fBdump_registry\fP (void)"
-.br
-.ti -1c
-.RI "RETSIGTYPE \fBagent_SIGCHLD_handler\fP (int sig)"
-.br
-.ti -1c
-.RI "int \fBregister_signal\fP (int sig, void(*func)(int))"
-.br
-.ti -1c
-.RI "int \fBunregister_signal\fP (int sig)"
-.br
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "int \fBlookup_cache_size\fP = 0"
-.br
-.ti -1c
-.RI "\fBsubtree_context_cache\fP * \fBcontext_subtrees\fP = NULL"
-.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
-.in -1c
-.SH "Function Documentation"
-.PP 
-.SS "int netsnmp_acm_check_subtree (\fBnetsnmp_pdu\fP * pdu, oid * name, size_t namelen)"
-.PP
-checks to see if everything within a given subtree is either: in view, not in view, or possibly both. If the entire subtree is not-in-view we can use this information to skip calling the sub-handlers entirely. 
-.PP
-\fBReturns:\fP
-.RS 4
-0 if entire subtree is accessible, 5 if not and 7 if portions are both. 1 on error (illegal pdu version). 
-.RE
-.PP
-
-.PP
-Definition at line 1475 of file agent_registry.c.
-.SS "int netsnmp_get_lookup_cache_size (void)"
-.PP
-retrieves the current value of the lookup cache size \fBReturns:\fP
-.RS 4
-the current lookup cache size 
-.RE
-.PP
-
-.PP
-Definition at line 118 of file agent_registry.c.
-.SS "void netsnmp_set_lookup_cache_size (int newsize)"
-.PP
-set the lookup cache size for optimized agent registration performance. \fBParameters:\fP
-.RS 4
-\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
-
-.PP
-Definition at line 105 of file agent_registry.c.
-.SS "int unregister_mib_context (oid * name, size_t len, int priority, int range_subid, oid range_ubound, const char * context)"
-.PP
-Unregisters an OID that has an associated context name value. Typically used when a \fBmodule\fP has multiple contexts defined. The parameters priority, range_subid, and range_ubound should be used in conjunction with agentx, see RFC 2741, otherwise these values should always be 0.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIname\fP the specific OID to unregister if it conatins the associated context.
-.br
-\fIlen\fP the length of the OID, use OID_LENGTH macro.
-.br
-\fIpriority\fP a value between 1 and 255, used to achieve a desired configuration when different sessions register identical or overlapping regions. Subagents with no particular knowledge of priority should register with the default value of 127.
-.br
-\fIrange_subid\fP permits specifying a range in place of one of a subtree sub-identifiers. When this value is zero, no range is being specified.
-.br
-\fIrange_ubound\fP the upper bound of a sub-identifier's range. This field is present only if range_subid is not 0.
-.br
-\fIcontext\fP a context name that has been created
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-.RE
-.PP
-
-.PP
-Definition at line 1121 of file agent_registry.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_agent_trap.3 b/man/netsnmp_agent_trap.3
deleted file mode 100644
index d362617..0000000
--- a/man/netsnmp_agent_trap.3
+++ /dev/null
@@ -1,348 +0,0 @@
-.TH "Trap generation routines for mib modules to use" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Trap generation routines for mib modules to use \- 
-.SS "Data Structures"
-
-.in +1c
-.ti -1c
-.RI "struct \fBtrap_sink\fP"
-.br
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBSNMPV2_TRAPS_PREFIX\fP   SNMP_OID_SNMPMODULES,1,1,5"
-.br
-.ti -1c
-.RI "#define \fBSNMPV2_TRAP_OBJS_PREFIX\fP   SNMP_OID_SNMPMODULES,1,1,4"
-.br
-.ti -1c
-.RI "#define \fBSNMPV2_COMM_OBJS_PREFIX\fP   SNMP_OID_SNMPMODULES,18,1"
-.br
-.ti -1c
-.RI "#define \fBSNMP_AUTHENTICATED_TRAPS_ENABLED\fP   1"
-.br
-.ti -1c
-.RI "#define \fBSNMP_AUTHENTICATED_TRAPS_DISABLED\fP   2"
-.br
-.ti -1c
-.RI "#define \fBMAX_ARGS\fP   128"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBinit_traps\fP (void)"
-.br
-.ti -1c
-.RI "int \fBadd_trap_session\fP (\fBnetsnmp_session\fP *ss, int pdutype, int confirm, int version)"
-.br
-.ti -1c
-.RI "int \fBremove_trap_session\fP (\fBnetsnmp_session\fP *ss)"
-.br
-.ti -1c
-.RI "int \fBcreate_trap_session\fP (char *sink, u_short sinkport, char *com, int version, int pdutype)"
-.br
-.ti -1c
-.RI "void \fBsnmpd_free_trapsinks\fP (void)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_pdu\fP * \fBconvert_v2pdu_to_v1\fP (\fBnetsnmp_pdu\fP *template_v2pdu)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_pdu\fP * \fBconvert_v1pdu_to_v2\fP (\fBnetsnmp_pdu\fP *template_v1pdu)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_send_traps\fP (int trap, int specific, oid *enterprise, int enterprise_length, \fBnetsnmp_variable_list\fP *vars, char *context, int flags)"
-.br
-.RI "\fIThis function allows you to make a distinction between generic traps from different classes of equipment. \fP"
-.ti -1c
-.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
-.RI "void \fBsend_trap_vars\fP (int trap, int specific, \fBnetsnmp_variable_list\fP *vars)"
-.br
-.ti -1c
-.RI "void \fBsend_trap_vars_with_context\fP (int trap, int specific, \fBnetsnmp_variable_list\fP *vars, char *context)"
-.br
-.ti -1c
-.RI "void \fBsend_easy_trap\fP (int trap, int specific)"
-.br
-.RI "\fISends 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. \fP"
-.ti -1c
-.RI "void \fBsend_v2trap\fP (\fBnetsnmp_variable_list\fP *vars)"
-.br
-.RI "\fIUses the supplied list of \fBvariable\fP bindings to form an SNMPv2 trap, which is sent to SNMPv2-capable sinks on the configured list. \fP"
-.ti -1c
-.RI "void \fBsend_v3trap\fP (\fBnetsnmp_variable_list\fP *vars, char *context)"
-.br
-.RI "\fISimilar to \fBsend_v2trap()\fP, with the added ability to specify a context. \fP"
-.ti -1c
-.RI "void \fBsend_trap_pdu\fP (\fBnetsnmp_pdu\fP *pdu)"
-.br
-.ti -1c
-.RI "void \fBsnmpd_parse_config_authtrap\fP (const char *token, char *cptr)"
-.br
-.ti -1c
-.RI "void \fBsnmpd_parse_config_trapsink\fP (const char *token, char *cptr)"
-.br
-.ti -1c
-.RI "void \fBsnmpd_parse_config_trap2sink\fP (const char *word, char *cptr)"
-.br
-.ti -1c
-.RI "void \fBsnmpd_parse_config_informsink\fP (const char *word, char *cptr)"
-.br
-.ti -1c
-.RI "void \fBsnmpd_parse_config_trapsess\fP (const char *word, char *cptr)"
-.br
-.ti -1c
-.RI "void \fBsnmpd_parse_config_trapcommunity\fP (const char *word, char *cptr)"
-.br
-.ti -1c
-.RI "void \fBsnmpd_free_trapcommunity\fP (void)"
-.br
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "struct \fBtrap_sink\fP * \fBsinks\fP = NULL"
-.br
-.ti -1c
-.RI "struct timeval \fBstarttime\fP"
-.br
-.ti -1c
-.RI "oid \fBobjid_enterprisetrap\fP [] = { NETSNMP_NOTIFICATION_MIB }"
-.br
-.ti -1c
-.RI "oid \fBtrap_version_id\fP [] = { NETSNMP_SYSTEM_MIB }"
-.br
-.ti -1c
-.RI "int \fBenterprisetrap_len\fP"
-.br
-.ti -1c
-.RI "int \fBtrap_version_id_len\fP"
-.br
-.ti -1c
-.RI "oid \fBtrap_prefix\fP [] = { SNMPV2_TRAPS_PREFIX }"
-.br
-.ti -1c
-.RI "oid \fBcold_start_oid\fP [] = { SNMPV2_TRAPS_PREFIX, 1 }"
-.br
-.ti -1c
-.RI "oid \fBwarm_start_oid\fP [] = { SNMPV2_TRAPS_PREFIX, 2 }"
-.br
-.ti -1c
-.RI "oid \fBlink_down_oid\fP [] = { SNMPV2_TRAPS_PREFIX, 3 }"
-.br
-.ti -1c
-.RI "oid \fBlink_up_oid\fP [] = { SNMPV2_TRAPS_PREFIX, 4 }"
-.br
-.ti -1c
-.RI "oid \fBauth_fail_oid\fP [] = { SNMPV2_TRAPS_PREFIX, 5 }"
-.br
-.ti -1c
-.RI "oid \fBegp_xxx_oid\fP [] = { SNMPV2_TRAPS_PREFIX, 99 }"
-.br
-.ti -1c
-.RI "oid \fBsnmptrap_oid\fP [] = { SNMPV2_TRAP_OBJS_PREFIX, 1, 0 }"
-.br
-.ti -1c
-.RI "oid \fBsnmptrapenterprise_oid\fP []"
-.br
-.ti -1c
-.RI "oid \fBsysuptime_oid\fP [] = { SNMP_OID_MIB2, 1, 3, 0 }"
-.br
-.ti -1c
-.RI "size_t \fBsnmptrap_oid_len\fP"
-.br
-.ti -1c
-.RI "size_t \fBsnmptrapenterprise_oid_len\fP"
-.br
-.ti -1c
-.RI "size_t \fBsysuptime_oid_len\fP"
-.br
-.ti -1c
-.RI "oid \fBagentaddr_oid\fP [] = { SNMPV2_COMM_OBJS_PREFIX, 3, 0 }"
-.br
-.ti -1c
-.RI "size_t \fBagentaddr_oid_len\fP"
-.br
-.ti -1c
-.RI "oid \fBcommunity_oid\fP [] = { SNMPV2_COMM_OBJS_PREFIX, 4, 0 }"
-.br
-.ti -1c
-.RI "size_t \fBcommunity_oid_len\fP"
-.br
-.ti -1c
-.RI "char * \fBsnmp_trapcommunity\fP = NULL"
-.br
-.ti -1c
-.RI "long \fBsnmp_enableauthentraps\fP = SNMP_AUTHENTICATED_TRAPS_DISABLED"
-.br
-.ti -1c
-.RI "int \fBsnmp_enableauthentrapsset\fP = 0"
-.br
-.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. 
-.PP
-Definition at line 875 of file agent_trap.c.
-.SS "int netsnmp_send_traps (int trap, int specific, oid * enterprise, int enterprise_length, \fBnetsnmp_variable_list\fP * vars, char * context, int flags)"
-.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.
-.PP
-\fBParameters:\fP
-.RS 4
-\fItrap\fP is the generic trap type. The trap types are:
-.IP "\(bu" 2
-SNMP_TRAP_COLDSTART: cold start
-.IP "\(bu" 2
-SNMP_TRAP_WARMSTART: warm start
-.IP "\(bu" 2
-SNMP_TRAP_LINKDOWN: link down
-.IP "\(bu" 2
-SNMP_TRAP_LINKUP: link up
-.IP "\(bu" 2
-SNMP_TRAP_AUTHFAIL: authentication failure
-.IP "\(bu" 2
-SNMP_TRAP_EGPNEIGHBORLOSS: egp neighbor loss
-.IP "\(bu" 2
-SNMP_TRAP_ENTERPRISESPECIFIC: enterprise specific
-.PP
-.br
-\fIspecific\fP is the specific trap value.
-.br
-\fIenterprise\fP is an enterprise oid in which you want to send specific traps from.
-.br
-\fIenterprise_length\fP is the length of the enterprise oid, use macro, OID_LENGTH, to compute length.
-.br
-\fIvars\fP is used to supply list of \fBvariable\fP bindings to form an SNMPv2 trap.
-.br
-\fIcontext\fP currently unused
-.br
-\fIflags\fP currently unused
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-void
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBsend_easy_trap\fP 
-.PP
-\fBsend_v2trap\fP 
-.RE
-.PP
-
-.PP
-Definition at line 632 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 NETSNMP_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 NETSNMP_NOTIFICATION_MIB oid and length respectively.
-.PP
-\fBParameters:\fP
-.RS 4
-\fItrap\fP is the generic trap type.
-.br
-\fIspecific\fP is the specific trap value.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-void
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-send_enterprise_trap_vars 
-.PP
-\fBsend_v2trap\fP 
-.RE
-.PP
-
-.PP
-Definition at line 1018 of file agent_trap.c.
-.SS "void send_v2trap (\fBnetsnmp_variable_list\fP * vars)"
-.PP
-Uses the supplied list of \fBvariable\fP bindings to form an SNMPv2 trap, which is sent to SNMPv2-capable sinks on the configured list. An equivalent INFORM is sent to the configured list of inform sinks. Sinks that can only handle SNMPv1 traps are skipped.
-.PP
-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 NETSNMP_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 NETSNMP_NOTIFICATION_MIB oid and length respectively.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIvars\fP is used to supply list of \fBvariable\fP bindings to form an SNMPv2 trap.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-void
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBsend_easy_trap\fP 
-.PP
-send_enterprise_trap_vars 
-.RE
-.PP
-
-.PP
-\fBExamples: \fP
-.in +1c
-\fBnotification.c\fP.
-.PP
-Definition at line 1047 of file agent_trap.c.
-.SS "void send_v3trap (\fBnetsnmp_variable_list\fP * vars, char * context)"
-.PP
-Similar to \fBsend_v2trap()\fP, with the added ability to specify a context. If the last parameter is NULL, then this call is equivalent to \fBsend_v2trap()\fP.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIvars\fP is used to supply the list of \fBvariable\fP bindings for the trap.
-.br
-\fIcontext\fP is used to specify the context of the trap.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-void
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBsend_v2trap\fP 
-.RE
-.PP
-
-.PP
-Definition at line 1064 of file agent_trap.c.
-.SH "Variable Documentation"
-.PP 
-.SS "oid snmptrapenterprise_oid[]"\fBInitial value:\fP
-.PP
-.nf
-
-    { SNMPV2_TRAP_OBJS_PREFIX, 3, 0 }
-.fi
-.PP
-Definition at line 100 of file agent_trap.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_asn1_packet_parse.3 b/man/netsnmp_asn1_packet_parse.3
deleted file mode 100644
index eb866d5..0000000
--- a/man/netsnmp_asn1_packet_parse.3
+++ /dev/null
@@ -1,263 +0,0 @@
-.TH "asn1 parsing and datatype manipulation routines." 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-asn1 parsing and datatype manipulation routines. \- 
-.PP
-Note on.  
-
-.SS "Defines"
-
-.in +1c
-.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"
-
-.in +1c
-.ti -1c
-.RI "int \fBasn_check_packet\fP (u_char *pkt, size_t len)"
-.br
-.ti -1c
-.RI "u_char * \fBasn_parse_int\fP (u_char *data, size_t *datalength, u_char *type, long *intp, size_t intsize)"
-.br
-.ti -1c
-.RI "u_char * \fBasn_parse_unsigned_int\fP (u_char *data, size_t *datalength, u_char *type, u_long *intp, size_t intsize)"
-.br
-.ti -1c
-.RI "u_char * \fBasn_build_int\fP (u_char *data, size_t *datalength, u_char type, const long *intp, size_t intsize)"
-.br
-.ti -1c
-.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 *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 *str, size_t strlength)"
-.br
-.ti -1c
-.RI "u_char * \fBasn_parse_header\fP (u_char *data, size_t *datalength, u_char *type)"
-.br
-.ti -1c
-.RI "u_char * \fBasn_parse_sequence\fP (u_char *data, size_t *datalength, u_char *type, u_char expected_type, const char *estr)"
-.br
-.ti -1c
-.RI "u_char * \fBasn_build_header\fP (u_char *data, size_t *datalength, u_char type, size_t length)"
-.br
-.ti -1c
-.RI "u_char * \fBasn_build_sequence\fP (u_char *data, size_t *datalength, u_char type, size_t length)"
-.br
-.ti -1c
-.RI "u_char * \fBasn_parse_length\fP (u_char *data, u_long *length)"
-.br
-.ti -1c
-.RI "u_char * \fBasn_build_length\fP (u_char *data, size_t *datalength, size_t length)"
-.br
-.ti -1c
-.RI "u_char * \fBasn_parse_objid\fP (u_char *data, size_t *datalength, u_char *type, oid *objid, size_t *objidlength)"
-.br
-.ti -1c
-.RI "u_char * \fBasn_build_objid\fP (u_char *data, size_t *datalength, u_char type, oid *objid, size_t objidlength)"
-.br
-.ti -1c
-.RI "u_char * \fBasn_parse_null\fP (u_char *data, size_t *datalength, u_char *type)"
-.br
-.ti -1c
-.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 *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 *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 \fBcounter64\fP *cp, size_t countersize)"
-.br
-.ti -1c
-.RI "u_char * \fBasn_build_unsigned_int64\fP (u_char *data, size_t *datalength, u_char type, const struct \fBcounter64\fP *cp, size_t countersize)"
-.br
-.ti -1c
-.RI "int \fBasn_realloc\fP (u_char **pkt, size_t *pkt_len)"
-.br
-.ti -1c
-.RI "int \fBasn_realloc_rbuild_length\fP (u_char **pkt, size_t *pkt_len, size_t *offset, int r, size_t length)"
-.br
-.ti -1c
-.RI "int \fBasn_realloc_rbuild_header\fP (u_char **pkt, size_t *pkt_len, size_t *offset, int r, u_char type, size_t length)"
-.br
-.ti -1c
-.RI "int \fBasn_realloc_rbuild_int\fP (u_char **pkt, size_t *pkt_len, size_t *offset, int r, u_char type, const long *intp, size_t intsize)"
-.br
-.ti -1c
-.RI "int \fBasn_realloc_rbuild_string\fP (u_char **pkt, size_t *pkt_len, size_t *offset, int r, u_char type, const u_char *str, size_t strlength)"
-.br
-.ti -1c
-.RI "int \fBasn_realloc_rbuild_unsigned_int\fP (u_char **pkt, size_t *pkt_len, size_t *offset, int r, u_char type, const u_long *intp, size_t intsize)"
-.br
-.ti -1c
-.RI "int \fBasn_realloc_rbuild_sequence\fP (u_char **pkt, size_t *pkt_len, size_t *offset, int r, u_char type, size_t length)"
-.br
-.ti -1c
-.RI "int \fBasn_realloc_rbuild_objid\fP (u_char **pkt, size_t *pkt_len, size_t *offset, int r, u_char type, const oid *objid, size_t objidlength)"
-.br
-.ti -1c
-.RI "int \fBasn_realloc_rbuild_null\fP (u_char **pkt, size_t *pkt_len, size_t *offset, int r, u_char type)"
-.br
-.ti -1c
-.RI "int \fBasn_realloc_rbuild_bitstring\fP (u_char **pkt, size_t *pkt_len, size_t *offset, int r, u_char type, const u_char *str, size_t strlength)"
-.br
-.ti -1c
-.RI "int \fBasn_realloc_rbuild_unsigned_int64\fP (u_char **pkt, size_t *pkt_len, size_t *offset, int r, u_char type, const struct \fBcounter64\fP *cp, size_t countersize)"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-Note on. 
-
-Re-allocating reverse ASN.1 encoder functions. Synopsis:
-.PP
-.PP
-.nf
- u_char *buf = (u_char*)malloc(100);
- u_char type = (ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER);
- size_t buf_len = 100, offset = 0;
- long data = 12345;
- int allow_realloc = 1;
- 
- if (asn_realloc_rbuild_int(&buf, &buf_len, &offset, allow_realloc,
-                            type, &data, sizeof(long)) == 0) {
-     error;
- }
-.fi
-.PP
-.PP
-NOTE WELL: after calling one of these functions with allow_realloc non-zero, buf might have moved, buf_len might have grown and offset will have increased by the size of the encoded data. You should **NEVER** do something like this:
-.PP
-.PP
-.nf
- u_char *buf = (u_char *)malloc(100), *ptr;
- u_char type = (ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER);
- size_t buf_len = 100, offset = 0;
- long data1 = 1234, data2 = 5678;
- int rc = 0, allow_realloc = 1;
- 
- rc  = asn_realloc_rbuild_int(&buf, &buf_len, &offset, allow_realloc,
-                                type, &data1, sizeof(long));
- ptr = buf[buf_len - offset];   / * points at encoding of data1 * /
- if (rc == 0) {
-      error;
- }
- rc  = asn_realloc_rbuild_int(&buf, &buf_len, &offset, allow_realloc,
-                              type, &data2, sizeof(long));
- make use of ptr here;
-.fi
-.PP
-.PP
-ptr is **INVALID** at this point. In general, you should store the offset value and compute pointers when you need them:
-.PP
-.PP
-.nf
- u_char *buf = (u_char *)malloc(100), *ptr;
- u_char type = (ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER);
- size_t buf_len = 100, offset = 0, ptr_offset;
- long data1 = 1234, data2 = 5678;
- int rc = 0, allow_realloc = 1;
- 
- rc  = asn_realloc_rbuild_int(&buf, &buf_len, &offset, allow_realloc,
-                              type, &data1, sizeof(long));
- ptr_offset = offset;
- if (rc == 0) {
-      error;
- }
- rc  = asn_realloc_rbuild_int(&buf, &buf_len, &offset, allow_realloc,
-                              type, &data2, sizeof(long));
- ptr = buf + buf_len - ptr_offset
- make use of ptr here;
-.fi
-.PP
-.PP
-Here, you can see that ptr will be a valid pointer even if the block of memory has been moved, as it may well have been. Plenty of examples of usage all over \fBasn1.c\fP, \fBsnmp_api.c\fP, \fBsnmpusm.c\fP.
-.PP
-The other thing you should **NEVER** do is to pass a pointer to a buffer on the stack as the first argument when allow_realloc is non-zero, unless you really know what you are doing and your machine/compiler allows you to free non-heap memory. There are rumours that such things exist, but many consider them no more than the wild tales of a fool.
-.PP
-Of course, you can pass allow_realloc as zero, to indicate that you do not wish the packet buffer to be reallocated for some reason; perhaps because it is on the stack. This may be useful to emulate the functionality of the old API:
-.PP
-.PP
-.nf
- u_char my_static_buffer[100], *cp = NULL;
- size_t my_static_buffer_len = 100;
- float my_pi = (float)22/(float)7;
- 
- cp = asn_rbuild_float(my_static_buffer, &my_static_buffer_len,
-                       ASN_OPAQUE_FLOAT, &my_pi, sizeof(float));
- if (cp == NULL) {
- error;
- }
-.fi
-.PP
-.PP
-IS EQUIVALENT TO:
-.PP
-.PP
-.nf
- u_char my_static_buffer[100];
- size_t my_static_buffer_len = 100, my_offset = 0;
- float my_pi = (float)22/(float)7;
- int rc = 0;
- 
- rc = asn_realloc_rbuild_float(&my_static_buffer, &my_static_buffer_len,
-                               &my_offset, 0,
-                               ASN_OPAQUE_FLOAT, &my_pi, sizeof(float));
- if (rc == 0) {
-   error;
- }
-.fi
-.PP
- 
-.SH "Define Documentation"
-.PP 
-.SS "#define CHECK_OVERFLOW_S(x, y)"\fBValue:\fP
-.PP
-.nf
-do {                                    \
-        if (x > INT32_MAX) {                                            \
-            DEBUGMSG(('asn','truncating signed value %ld to 32 bits (%d)\n',(long)(x),y)); \
-            x &= 0xffffffff;                                            \
-        } else if (x < INT32_MIN) {                                     \
-            DEBUGMSG(('asn','truncating signed value %ld to 32 bits (%d)\n',(long)(x),y)); \
-            x = 0 - (x & 0xffffffff);                                   \
-        }                                                               \
-    } while(0)
-.fi
-.PP
-Definition at line 214 of file asn1.c.
-.SS "#define CHECK_OVERFLOW_U(x, y)"\fBValue:\fP
-.PP
-.nf
-do {                                    \
-        if (x > UINT32_MAX) {                                           \
-            x &= 0xffffffff;                                            \
-            DEBUGMSG(('asn','truncating unsigned value to 32 bits (%d)\n',y)); \
-        }                                                               \
-    } while(0)
-.fi
-.PP
-Definition at line 224 of file asn1.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_baby_steps.3 b/man/netsnmp_baby_steps.3
deleted file mode 100644
index 1ee4e60..0000000
--- a/man/netsnmp_baby_steps.3
+++ /dev/null
@@ -1,45 +0,0 @@
-.TH "baby_steps" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-baby_steps \- 
-.PP
-Calls your handler in baby_steps for set processing.  
-
-.SS "Modules"
-
-.in +1c
-.ti -1c
-.RI "\fBbaby_steps_access_multiplexer: calls individual access methods based on baby_step mode.\fP"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_baby_steps_handler_get\fP (u_long modes)"
-.br
-.RI "\fIreturns a baby_steps handler that can be injected into a given handler chain. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_baby_steps_handler_init\fP (void)"
-.br
-.RI "\fIinitializes the baby_steps helper which then registers a baby_steps handler as a run-time injectable handler for configuration file use. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Calls your handler in baby_steps for set processing. 
-.SH "Function Documentation"
-.PP 
-.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. 
-.PP
-Definition at line 58 of file baby_steps.c.
-.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. 
-.PP
-Definition at line 319 of file baby_steps.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_bulk_to_next.3 b/man/netsnmp_bulk_to_next.3
deleted file mode 100644
index 62b47fd..0000000
--- a/man/netsnmp_bulk_to_next.3
+++ /dev/null
@@ -1,52 +0,0 @@
-.TH "bulk_to_next" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-bulk_to_next \- 
-.PP
-Convert GETBULK requests into GETNEXT requests for the handler.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_bulk_to_next_handler\fP (void)"
-.br
-.RI "\fIreturns a bulk_to_next handler that can be injected into a given handler chain. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_bulk_to_next_fix_requests\fP (\fBnetsnmp_request_info\fP *requests)"
-.br
-.RI "\fItakes answered requests and decrements the repeat count and updates the requests to the next to-do varbind in the list \fP"
-.ti -1c
-.RI "int \fBnetsnmp_bulk_to_next_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 "void \fBnetsnmp_init_bulk_to_next_helper\fP (void)"
-.br
-.RI "\fIinitializes the bulk_to_next helper which then registers a bulk_to_next handler as a run-time injectable handler for configuration file use. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Convert GETBULK requests into GETNEXT requests for the handler. 
-
-The only purpose of this handler is to convert a GETBULK request to a GETNEXT request. It is inserted into handler chains where the handler has not set the HANDLER_CAN_GETBULK flag. 
-.SH "Function Documentation"
-.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 
-.PP
-Definition at line 36 of file bulk_to_next.c.
-.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. 
-.PP
-Definition at line 21 of file bulk_to_next.c.
-.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. 
-.PP
-Definition at line 133 of file bulk_to_next.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_cache_handler.3 b/man/netsnmp_cache_handler.3
deleted file mode 100644
index e0a9ad0..0000000
--- a/man/netsnmp_cache_handler.3
+++ /dev/null
@@ -1,234 +0,0 @@
-.TH "cache_handler" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-cache_handler \- 
-.PP
-Maintains a cache of data for use by lower level handlers.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_cache\fP * \fBnetsnmp_cache_get_head\fP (void)"
-.br
-.RI "\fIget cache head \fP"
-.ti -1c
-.RI "\fBnetsnmp_cache\fP * \fBnetsnmp_cache_find_by_oid\fP (const oid *rootoid, int rootoid_len)"
-.br
-.RI "\fIfind existing cache \fP"
-.ti -1c
-.RI "\fBnetsnmp_cache\fP * \fBnetsnmp_cache_create\fP (int timeout, NetsnmpCacheLoad *load_hook, NetsnmpCacheFree *free_hook, const oid *rootoid, int rootoid_len)"
-.br
-.RI "\fIreturns a cache \fP"
-.ti -1c
-.RI "int \fBnetsnmp_cache_free\fP (\fBnetsnmp_cache\fP *cache)"
-.br
-.RI "\fIfrees a cache \fP"
-.ti -1c
-.RI "unsigned int \fBnetsnmp_cache_timer_start\fP (\fBnetsnmp_cache\fP *cache)"
-.br
-.RI "\fIstarts the recurring cache_load callback \fP"
-.ti -1c
-.RI "void \fBnetsnmp_cache_timer_stop\fP (\fBnetsnmp_cache\fP *cache)"
-.br
-.RI "\fIstops the recurring cache_load callback \fP"
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_cache_handler_get\fP (\fBnetsnmp_cache\fP *cache)"
-.br
-.RI "\fIreturns a cache handler that can be injected into a given handler chain. \fP"
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_cache_handler\fP (int timeout, NetsnmpCacheLoad *load_hook, NetsnmpCacheFree *free_hook, const oid *rootoid, int rootoid_len)"
-.br
-.RI "\fIreturns a cache handler that can be injected into a given handler chain. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_cache_handler_register\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_cache\fP *cache)"
-.br
-.RI "\fIfunctionally the same as calling \fBnetsnmp_register_handler()\fP but also injects a cache handler at the same time for you. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_cache_handler\fP (\fBnetsnmp_handler_registration\fP *reginfo, int timeout, NetsnmpCacheLoad *load_hook, NetsnmpCacheFree *free_hook)"
-.br
-.RI "\fIfunctionally the same as calling \fBnetsnmp_register_handler()\fP but also injects a cache handler at the same time for you. \fP"
-.ti -1c
-.RI "NETSNMP_STATIC_INLINE char * \fB_build_cache_name\fP (const char *name)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_cache_reqinfo_insert\fP (\fBnetsnmp_cache\fP *cache, \fBnetsnmp_agent_request_info\fP *reqinfo, const char *name)"
-.br
-.RI "\fIInsert the cache information for a given request (PDU). \fP"
-.ti -1c
-.RI "\fBnetsnmp_cache\fP * \fBnetsnmp_cache_reqinfo_extract\fP (\fBnetsnmp_agent_request_info\fP *reqinfo, const char *name)"
-.br
-.RI "\fIExtract the cache information for a given request (PDU). \fP"
-.ti -1c
-.RI "\fBnetsnmp_cache\fP * \fBnetsnmp_extract_cache_info\fP (\fBnetsnmp_agent_request_info\fP *reqinfo)"
-.br
-.RI "\fIExtract the cache information for a given request (PDU). \fP"
-.ti -1c
-.RI "int \fBnetsnmp_cache_check_expired\fP (\fBnetsnmp_cache\fP *cache)"
-.br
-.RI "\fICheck if the cache timeout has passed. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_cache_check_and_reload\fP (\fBnetsnmp_cache\fP *cache)"
-.br
-.RI "\fIReload the cache if required. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_cache_is_valid\fP (\fBnetsnmp_agent_request_info\fP *reqinfo, const char *name)"
-.br
-.RI "\fIIs the cache valid for a given request? \fP"
-.ti -1c
-.RI "int \fBnetsnmp_is_cache_valid\fP (\fBnetsnmp_agent_request_info\fP *reqinfo)"
-.br
-.RI "\fIIs the cache valid for a given request? for backwards compatability. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_cache_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 cache handler. \fP"
-.ti -1c
-.RI "void \fBrelease_cached_resources\fP (unsigned int regNo, void *clientargs)"
-.br
-.RI "\fIrun regularly to automatically release cached resources. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Maintains a cache of data for use by lower level handlers. 
-
-This helper checks to see whether the data has been loaded 'recently' (according to the timeout for that particular cache) and calls the registered 'load_cache' routine if necessary. The lower handlers can then work with this local cached data.
-.PP
-A timeout value of -1 will cause \fBnetsnmp_cache_check_expired()\fP to always return true, and thus the cache will be reloaded for every request.
-.PP
-To minimze resource use by the agent, a periodic callback checks for expired caches, and will call the free_cache function for any expired cache.
-.PP
-The load_cache routine should return a negative number if the cache was not successfully loaded. 0 or any positive number indicates successs.
-.PP
-Several flags can be set to affect the operations on the cache.
-.PP
-If NETSNMP_CACHE_DONT_INVALIDATE_ON_SET is set, the free_cache method will not be called after a set request has processed. It is assumed that the lower mib handler using the cache has maintained cache consistency.
-.PP
-If NETSNMP_CACHE_DONT_FREE_BEFORE_LOAD is set, the free_cache method will not be called before the load_cache method is called. It is assumed that the load_cache routine will properly deal with being called with a valid cache.
-.PP
-If NETSNMP_CACHE_DONT_FREE_EXPIRED is set, the free_cache method will not be called with the cache expires. The expired flag will be set, but the valid flag will not be cleared. It is assumed that the load_cache routine will properly deal with being called with a valid cache.
-.PP
-If NETSNMP_CACHE_PRELOAD is set when a the cache handler is created, the cache load routine will be called immediately.
-.PP
-If NETSNMP_CACHE_DONT_AUTO_RELEASE is set, the periodic callback that checks for expired caches will skip the cache. The cache will only be checked for expiration when a request triggers the cache handler. This is useful if the cache has it's own periodic callback to keep the cache fresh.
-.PP
-If NETSNMP_CACHE_AUTO_RELOAD is set, a timer will be set up to reload the cache when it expires. This is useful for keeping the cache fresh, even in the absence of incoming snmp requests.
-.PP
-Here are some suggestions for some common situations.
-.PP
-Cached File: If your table is based on a file that may periodically change, you can test the modification date to see if the file has changed since the last cache load. To get the cache helper to call the load function for every request, set the timeout to -1, which will cause the cache to always report that it is expired. This means that you will want to prevent the agent from flushing the cache when it has expired, and you will have to flush it manually if you detect that the file has changed. To accomplish this, set the following flags:
-.PP
-NETSNMP_CACHE_DONT_FREE_EXPIRED NETSNMP_CACHE_DONT_AUTO_RELEASE
-.PP
-Constant (periodic) reload: If you want the cache kept up to date regularly, even if no requests for the table are received, you can have your cache load routine called periodically. This is very useful if you need to monitor the data for changes (eg a \fILastChanged\fP object). You will need to prevent the agent from flushing the cache when it expires. Set the cache timeout to the frequency, in seconds, that you wish to reload your cache, and set the following flags:
-.PP
-NETSNMP_CACHE_DONT_FREE_EXPIRED NETSNMP_CACHE_DONT_AUTO_RELEASE NETSNMP_CACHE_AUTO_RELOAD 
-.SH "Function Documentation"
-.PP 
-.SS "int netsnmp_cache_check_and_reload (\fBnetsnmp_cache\fP * cache)"
-.PP
-Reload the cache if required. 
-.PP
-Definition at line 429 of file cache_handler.c.
-.SS "int netsnmp_cache_check_expired (\fBnetsnmp_cache\fP * cache)"
-.PP
-Check if the cache timeout has passed. Sets and return the expired flag. 
-.PP
-Definition at line 414 of file cache_handler.c.
-.SS "\fBnetsnmp_cache\fP* netsnmp_cache_create (int timeout, NetsnmpCacheLoad * load_hook, NetsnmpCacheFree * free_hook, const oid * rootoid, int rootoid_len)"
-.PP
-returns a cache 
-.PP
-Definition at line 146 of file cache_handler.c.
-.SS "\fBnetsnmp_cache\fP* netsnmp_cache_find_by_oid (const oid * rootoid, int rootoid_len)"
-.PP
-find existing cache 
-.PP
-Definition at line 130 of file cache_handler.c.
-.SS "int netsnmp_cache_free (\fBnetsnmp_cache\fP * cache)"
-.PP
-frees a cache 
-.PP
-Definition at line 189 of file cache_handler.c.
-.SS "\fBnetsnmp_cache\fP* netsnmp_cache_get_head (void)"
-.PP
-get cache head 
-.PP
-Definition at line 122 of file cache_handler.c.
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_cache_handler_get (\fBnetsnmp_cache\fP * cache)"
-.PP
-returns a cache handler that can be injected into a given handler chain. 
-.PP
-Definition at line 291 of file cache_handler.c.
-.SS "int netsnmp_cache_handler_register (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_cache\fP * cache)"
-.PP
-functionally the same as calling \fBnetsnmp_register_handler()\fP but also injects a cache handler at the same time for you. 
-.PP
-Definition at line 339 of file cache_handler.c.
-.SS "int netsnmp_cache_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 cache handler. 
-.PP
-next handler called automatically - 'AUTO_NEXT'
-.PP
-next handler called automatically - 'AUTO_NEXT'
-.PP
-next handler called automatically - 'AUTO_NEXT' 
-.PP
-Definition at line 464 of file cache_handler.c.
-.SS "int netsnmp_cache_is_valid (\fBnetsnmp_agent_request_info\fP * reqinfo, const char * name)"
-.PP
-Is the cache valid for a given request? 
-.PP
-Definition at line 446 of file cache_handler.c.
-.SS "\fBnetsnmp_cache\fP* netsnmp_cache_reqinfo_extract (\fBnetsnmp_agent_request_info\fP * reqinfo, const char * name)"
-.PP
-Extract the cache information for a given request (PDU). 
-.PP
-Definition at line 394 of file cache_handler.c.
-.SS "void netsnmp_cache_reqinfo_insert (\fBnetsnmp_cache\fP * cache, \fBnetsnmp_agent_request_info\fP * reqinfo, const char * name)"
-.PP
-Insert the cache information for a given request (PDU). 
-.PP
-Definition at line 377 of file cache_handler.c.
-.SS "unsigned int netsnmp_cache_timer_start (\fBnetsnmp_cache\fP * cache)"
-.PP
-starts the recurring cache_load callback 
-.PP
-Definition at line 235 of file cache_handler.c.
-.SS "void netsnmp_cache_timer_stop (\fBnetsnmp_cache\fP * cache)"
-.PP
-stops the recurring cache_load callback 
-.PP
-Definition at line 270 of file cache_handler.c.
-.SS "\fBnetsnmp_cache\fP* netsnmp_extract_cache_info (\fBnetsnmp_agent_request_info\fP * reqinfo)"
-.PP
-Extract the cache information for a given request (PDU). 
-.PP
-Definition at line 406 of file cache_handler.c.
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_cache_handler (int timeout, NetsnmpCacheLoad * load_hook, NetsnmpCacheFree * free_hook, const oid * rootoid, int rootoid_len)"
-.PP
-returns a cache handler that can be injected into a given handler chain. 
-.PP
-Definition at line 320 of file cache_handler.c.
-.SS "int netsnmp_is_cache_valid (\fBnetsnmp_agent_request_info\fP * reqinfo)"
-.PP
-Is the cache valid for a given request? for backwards compatability. for backwards compat
-.PP
-\fBnetsnmp_cache_is_valid()\fP is preferred. 
-.PP
-Definition at line 457 of file cache_handler.c.
-.SS "int netsnmp_register_cache_handler (\fBnetsnmp_handler_registration\fP * reginfo, int timeout, NetsnmpCacheLoad * load_hook, NetsnmpCacheFree * free_hook)"
-.PP
-functionally the same as calling \fBnetsnmp_register_handler()\fP but also injects a cache handler at the same time for you. 
-.PP
-Definition at line 352 of file cache_handler.c.
-.SS "void release_cached_resources (unsigned int regNo, void * clientargs)"
-.PP
-run regularly to automatically release cached resources. xxx - method to prevent cache from expiring while a request is being processed (e.g. delegated request). proposal: set a flag, which would be cleared when request finished (which could be acomplished by a dummy data list item in agent req info & custom free function). 
-.PP
-Definition at line 623 of file cache_handler.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_callback.3 b/man/netsnmp_callback.3
deleted file mode 100644
index e691ab8..0000000
--- a/man/netsnmp_callback.3
+++ /dev/null
@@ -1,205 +0,0 @@
-.TH "A generic callback mechanism" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-A generic callback mechanism \- 
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBCALLBACK_NAME_LOGGING\fP   1"
-.br
-.ti -1c
-.RI "#define \fBLOCK_PER_CALLBACK_SUBID\fP   1"
-.br
-.ti -1c
-.RI "#define \fBCALLBACK_LOCK\fP(maj, min)   ++_locks[maj][min]"
-.br
-.ti -1c
-.RI "#define \fBCALLBACK_UNLOCK\fP(maj, min)   --_locks[maj][min]"
-.br
-.ti -1c
-.RI "#define \fBCALLBACK_LOCK_COUNT\fP(maj, min)   _locks[maj][min]"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "NETSNMP_STATIC_INLINE int \fB_callback_lock\fP (int major, int minor, const char *warn, int assert)"
-.br
-.ti -1c
-.RI "NETSNMP_STATIC_INLINE void \fB_callback_unlock\fP (int major, int minor)"
-.br
-.ti -1c
-.RI "void \fBinit_callbacks\fP (void)"
-.br
-.ti -1c
-.RI "int \fBsnmp_register_callback\fP (int major, int minor, SNMPCallback *new_callback, void *arg)"
-.br
-.RI "\fIThis function registers a generic callback function. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_callback\fP (int major, int minor, SNMPCallback *new_callback, void *arg, int priority)"
-.br
-.ti -1c
-.RI "int \fBsnmp_call_callbacks\fP (int major, int minor, void *caller_arg)"
-.br
-.RI "\fIThis function calls the callback function for each registered callback of type major and minor. \fP"
-.ti -1c
-.RI "int \fBsnmp_count_callbacks\fP (int major, int minor)"
-.br
-.ti -1c
-.RI "int \fBsnmp_callback_available\fP (int major, int minor)"
-.br
-.ti -1c
-.RI "int \fBsnmp_unregister_callback\fP (int major, int minor, SNMPCallback *target, void *arg, int matchargs)"
-.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
-.RI "struct \fBsnmp_gen_callback\fP * \fBsnmp_callback_list\fP (int major, int minor)"
-.br
-.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
-
-.PP
-Definition at line 477 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
-.RS 4
-\fImajor\fP is the SNMP callback major type used
-.br
-\fIminor\fP is the SNMP callback minor type used
-.br
-\fIcaller_arg\fP is a void pointer which is sent in as the callback's serverarg parameter, if needed.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-Returns SNMPERR_GENERR if major is >= MAX_CALLBACK_IDS or minor is >= MAX_CALLBACK_SUBIDS, otherwise SNMPERR_SUCCESS is returned.
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBsnmp_register_callback\fP 
-.PP
-\fBsnmp_unregister_callback\fP 
-.RE
-.PP
-
-.PP
-Definition at line 301 of file callback.c.
-.SS "int snmp_register_callback (int major, int minor, SNMPCallback * new_callback, void * arg)"
-.PP
-This function registers a generic callback function. The major and minor values are used to set the new_callback function into a global static multi-dimensional array of type struct \fBsnmp_gen_callback\fP. The function makes sure to append this callback function at the end of the link list, snmp_gen_callback->next.
-.PP
-\fBParameters:\fP
-.RS 4
-\fImajor\fP is the SNMP callback major type used
-.IP "\(bu" 2
-SNMP_CALLBACK_LIBRARY
-.PP
-.RE
-.PP
-.IP "\(bu" 2
-SNMP_CALLBACK_APPLICATION
-.PP
-.PP
-\fBParameters:\fP
-.RS 4
-\fIminor\fP is the SNMP callback minor type used
-.IP "\(bu" 2
-SNMP_CALLBACK_POST_READ_CONFIG
-.IP "\(bu" 2
-SNMP_CALLBACK_STORE_DATA
-.IP "\(bu" 2
-SNMP_CALLBACK_SHUTDOWN
-.IP "\(bu" 2
-SNMP_CALLBACK_POST_PREMIB_READ_CONFIG
-.IP "\(bu" 2
-SNMP_CALLBACK_LOGGING
-.IP "\(bu" 2
-SNMP_CALLBACK_SESSION_INIT
-.PP
-.br
-\fInew_callback\fP is the callback function that is registered.
-.br
-\fIarg\fP when not NULL is a void pointer used whenever new_callback function is exercised.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-Returns SNMPERR_GENERR if major is >= MAX_CALLBACK_IDS or minor is >= MAX_CALLBACK_SUBIDS or a \fBsnmp_gen_callback\fP pointer could not be allocated, otherwise SNMPERR_SUCCESS is returned.
-.IP "\(bu" 2
-#define MAX_CALLBACK_IDS 2
-.IP "\(bu" 2
-#define MAX_CALLBACK_SUBIDS 16
-.PP
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBsnmp_call_callbacks\fP 
-.PP
-\fBsnmp_unregister_callback\fP 
-.RE
-.PP
-
-.PP
-Definition at line 233 of file callback.c.
-.SS "int snmp_unregister_callback (int major, int minor, SNMPCallback * target, void * arg, int matchargs)"
-.PP
-This function unregisters a specified callback function given a major and minor type. Note: no bound checking on major and minor.
-.PP
-\fBParameters:\fP
-.RS 4
-\fImajor\fP is the SNMP callback major type used
-.br
-\fIminor\fP is the SNMP callback minor type used
-.br
-\fItarget\fP is the callback function that will be unregistered.
-.br
-\fIarg\fP is a void pointer used for comparison against the registered callback's sc_client_arg \fBvariable\fP.
-.br
-\fImatchargs\fP is an integer used to bypass the comparison of arg and the callback's sc_client_arg \fBvariable\fP only when matchargs is set to 0.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-Returns the number of callbacks that were unregistered.
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBsnmp_register_callback\fP 
-.PP
-\fBsnmp_call_callbacks\fP 
-.RE
-.PP
-
-.PP
-set cleanup flag? 
-.PP
-Definition at line 421 of file callback.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/config_api.3.def b/man/netsnmp_config_api.3.def
similarity index 83%
rename from man/config_api.3.def
rename to man/netsnmp_config_api.3.def
index b107e6e..d009fc5 100644
--- a/man/config_api.3.def
+++ b/man/netsnmp_config_api.3.def
@@ -1,10 +1,23 @@
-.TH CONFIG_API 3 "21 Apr 2009" "" "Net-SNMP"
+.TH NETSNMP_CONFIG_API 3 "13 Aug 2010" VVERSIONINFO "Net-SNMP"
 .SH NAME
-register_config_handler, register_premib_handler
-unregister_config_handler, register_mib_handlers, read_configs,
-read_premib_configs, config_perror, config_pwarn - config_api functions
+register_config_handler,
+register_const_config_handler,
+register_prenetsnmp_mib_handler,
+unregister_config_handler,
+register_mib_handlers,
+unregister_all_config_handlers,
+register_app_config_handler,
+register_app_prenetsnmp_mib_handler,
+unregister_app_config_handler,
+read_configs,
+read_premib_configs,
+read_config_print_usage,
+config_perror,
+config_pwarn - netsnmp_config_api functions
 .SH SYNOPSIS
 .B #include <net-snmp/config_api.h>
+.br
+.SS Config Handlers
 .PP
 .B struct config_line *
 .br
@@ -20,7 +33,20 @@
 .PP
 .B struct config_line *
 .br
-.BI "  register_premib_handler(const char *" filePrefix ", 
+.BI "  register_const_config_handler(const char *" filePrefix ", 
+.br
+.BI "                     const char *" token ,
+.br
+.BI "                     void (*" parser ")(const char *, const char *),"
+.br
+.BI "                     void (*" releaser ")(void),"
+.br
+.BI "                     const char *" usageLine ");"
+.PP
+.PP
+.B struct config_line *
+.br
+.BI "  register_prenetsnmp_mib_handler(const char *" filePrefix ", 
 .br
 .BI "                     const char *" token ,
 .br
@@ -30,14 +56,14 @@
 .br
 .BI "                     const char *" usageLine ");"
 .PP
-.B "void register_mib_handlers(void);"
-.PP
 .BI "void unregister_config_handler(const char *" filePrefix ","
 .br
 .BI "                     const char *" token ");"
-.br
 .PP
-.BI "void unregister_all_config_handlers(void);"
+.\" Defined in mib.c, rather than read_config.c
+.B  "void register_mib_handlers(void);"
+.br
+.B  "void unregister_all_config_handlers(void);"
 .br
 .SS Application Handlers
 .PP
@@ -53,7 +79,7 @@
 .PP
 .B struct config_line *
 .br
-.BI "  register_app_premib_handler(const char *" token ,
+.BI "  register_app_prenetsnmp_mib_handler(const char *" token ,
 .br
 .BI "                     void (*" parser ")(const char *, char *),"
 .br
@@ -135,7 +161,13 @@
 .B read_configs() 
 (see below).
 .TP
-.B register_premib_handler()
+.B register_const_config_handler()
+Similar to the
+.B register_config_handler()
+function, but the parser routine is explicitly constrained
+to not modify the string being parsed.
+.TP
+.B register_prenetsnmp_mib_handler()
 Similar to the
 .B register_config_handler()
 function, but the registered handler routine will be called
@@ -161,6 +193,12 @@
 .PP
 .RS
 .BI "void handler(const char *" token ", char *" line ");"
+.br
+or
+.br
+.BI "void handler(const char *" token ", const char *" line ");"
+br
+(if registered using \fIregister_const_config_handler\fP)
 .RE
 .PP
 The function will be called with two arguments, the first being the
@@ -194,11 +232,11 @@
 .TP
 .B register_app_config_handler()
 .TP
-.B register_app_premib_handler()
+.B register_app_prenetsnmp_mib_handler()
 .TP
 .B unregister_app_config_handler()
 These functions are analagous to 
-.BR register_config_handler() ", " register_premib_handler() " and "
+.BR register_config_handler() ", " register_prenetsnmp_mib_handler() " and "
 .B unregister_config_handler()
 but do not require the file type argument (which is filled in by the
 application).  It is intended that MIB modules written for the agent
@@ -218,9 +256,9 @@
 .B read_premib_configs()
 is run before the MIB files are read in, and processes those
 configuration tokens registered using
-.B register_premib_handler()
+.B register_prenetsnmp_mib_handler()
 (or
-.B register_app_premib_handler()
+.B register_app_prenetsnmp_mib_handler()
 ).
 All other entries are ignored.
 .PP
@@ -242,8 +280,9 @@
 In each such directory, the library will look for files named
 \fC snmp.conf\fP,
 \fC snmp.local.conf\fP,
-\fIapp\fP.conf\fP,
-\fIapp\fP.local.conf\fP,
+\fI app\fP\fC.conf\fP,
+\fI app\fP\fC.local.conf\fP,
+.br
 (where \fIapp\fP is the appication-specific filePrefix used to
 register configuration handlers).
 It is not necessary for any or all of these files to be present
@@ -254,9 +293,10 @@
 machines and the second file can be used to configure local settings
 for one particular machine.
 .PP
-The default list of directories to search is
-SYSCONFDIR/snmp, followed by DATADIR/snmp, followed by LIBDIR/snmp,
-followed by $HOME/.snmp.
+The default list of directories to search is \fC SYSCONFDIR/snmp\fP,
+followed by \fC DATADIR/snmp\fP,
+followed by \fC LIBDIR/snmp\fP,
+followed by \fC $HOME/.snmp\fP.
 This list can be changed by setting the environmental variable
 .I SNMPCONFPATH
 to be a (colon separated) list of directories to search.
@@ -268,7 +308,7 @@
 .BR init_snmp() "."
 This would call the routines listed above to register the internal library
 configuration handlers, process any configuration tokens registered with
-.B register_premib_handler(),
+.B register_prenetsnmp_mib_handler(),
 read in the textual MIB files using
 .B init_mib(),
 and finally parse the configuration file tokens registered with 
@@ -327,7 +367,7 @@
 files in.
 Default: SYSCONFDIR/snmp:DATADIR/snmp:LIBDIR/snmp:$HOME/.snmp
 .SH "SEE ALSO"
-.BR mib_api "(3), " snmp_api (3)
+netsnmp_mib_api(3), snmp_api(3)
 .\" Local Variables:
 .\"  mode: nroff
 .\" End:
diff --git a/man/netsnmp_container.3 b/man/netsnmp_container.3
deleted file mode 100644
index f75be4c..0000000
--- a/man/netsnmp_container.3
+++ /dev/null
@@ -1,18 +0,0 @@
-.TH "container" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-container \- 
-.SS "Modules"
-
-.in +1c
-.ti -1c
-.RI "\fBnull_container\fP"
-.br
-.PP
-
-.RI "\fIHelps you implement specialized containers. \fP"
-.in -1c
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_container_iterator.3 b/man/netsnmp_container_iterator.3
deleted file mode 100644
index 1bfcf7e..0000000
--- a/man/netsnmp_container_iterator.3
+++ /dev/null
@@ -1,43 +0,0 @@
-.TH "Container_iterator" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Container_iterator \- 
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef int( \fBNetsnmp_Iterator_Loop_Key\fP )(void *iterator_ctx, \fBnetsnmp_ref_void\fP *loop_ctx, \fBnetsnmp_ref_void\fP *key)"
-.br
-.ti -1c
-.RI "typedef int( \fBNetsnmp_Iterator_Loop_Data\fP )(void *iterator_ctx, \fBnetsnmp_ref_void\fP *loop_ctx, \fBnetsnmp_ref_void\fP *data)"
-.br
-.ti -1c
-.RI "typedef int( \fBNetsnmp_Iterator_Ctx\fP )(void *iterator_ctx, \fBnetsnmp_ref_void\fP *loop_ctx)"
-.br
-.ti -1c
-.RI "typedef int( \fBNetsnmp_Iterator_Ctx_Dup\fP )(void *iterator_ctx, \fBnetsnmp_ref_void\fP *loop_ctx, \fBnetsnmp_ref_void\fP *dup_ctx, int reuse)"
-.br
-.ti -1c
-.RI "typedef int( \fBNetsnmp_Iterator_Op\fP )(void *iterator_ctx)"
-.br
-.ti -1c
-.RI "typedef int( \fBNetsnmp_Iterator_Data\fP )(void *iterator_ctx, const void *data)"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBnetsnmp_container_iterator_init\fP (void)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_container\fP * \fBnetsnmp_container_iterator_get\fP (void *iterator_user_ctx, netsnmp_container_compare *compare, Netsnmp_Iterator_Loop_Key *get_first, Netsnmp_Iterator_Loop_Key *get_next, Netsnmp_Iterator_Loop_Data *get_data, Netsnmp_Iterator_Ctx_Dup *save_pos, Netsnmp_Iterator_Ctx *init_loop_ctx, Netsnmp_Iterator_Ctx *cleanup_loop_ctx, Netsnmp_Iterator_Data *free_user_ctx, int sorted)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_container_iterator_set_data_cb\fP (\fBnetsnmp_container\fP *c, Netsnmp_Iterator_Data *insert_data, Netsnmp_Iterator_Data *remove_data, Netsnmp_Iterator_Op *get_size)"
-.br
-.in -1c
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_container_iterator.h.3 b/man/netsnmp_container_iterator.h.3
deleted file mode 100644
index 7fec585..0000000
--- a/man/netsnmp_container_iterator.h.3
+++ /dev/null
@@ -1,54 +0,0 @@
-.TH "container_iterator.h" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-container_iterator.h \- 
-.SH SYNOPSIS
-.br
-.PP
-\fC#include 'container.h'\fP
-.br
-
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef int( \fBNetsnmp_Iterator_Loop_Key\fP )(void *iterator_ctx, \fBnetsnmp_ref_void\fP *loop_ctx, \fBnetsnmp_ref_void\fP *key)"
-.br
-.ti -1c
-.RI "typedef int( \fBNetsnmp_Iterator_Loop_Data\fP )(void *iterator_ctx, \fBnetsnmp_ref_void\fP *loop_ctx, \fBnetsnmp_ref_void\fP *data)"
-.br
-.ti -1c
-.RI "typedef int( \fBNetsnmp_Iterator_Ctx\fP )(void *iterator_ctx, \fBnetsnmp_ref_void\fP *loop_ctx)"
-.br
-.ti -1c
-.RI "typedef int( \fBNetsnmp_Iterator_Ctx_Dup\fP )(void *iterator_ctx, \fBnetsnmp_ref_void\fP *loop_ctx, \fBnetsnmp_ref_void\fP *dup_ctx, int reuse)"
-.br
-.ti -1c
-.RI "typedef int( \fBNetsnmp_Iterator_Op\fP )(void *iterator_ctx)"
-.br
-.ti -1c
-.RI "typedef int( \fBNetsnmp_Iterator_Data\fP )(void *iterator_ctx, const void *data)"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBnetsnmp_container_iterator_init\fP (void)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_container\fP * \fBnetsnmp_container_iterator_get\fP (void *iterator_user_ctx, netsnmp_container_compare *compare, Netsnmp_Iterator_Loop_Key *get_first, Netsnmp_Iterator_Loop_Key *get_next, Netsnmp_Iterator_Loop_Data *get_data, Netsnmp_Iterator_Ctx_Dup *save_pos, Netsnmp_Iterator_Ctx *init_loop_ctx, Netsnmp_Iterator_Ctx *cleanup_loop_ctx, Netsnmp_Iterator_Data *free_user_ctx, int sorted)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_container_iterator_set_data_cb\fP (\fBnetsnmp_container\fP *c, Netsnmp_Iterator_Data *insert_data, Netsnmp_Iterator_Data *remove_data, Netsnmp_Iterator_Op *get_size)"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-
-.PP
-Definition in file \fBcontainer_iterator.h\fP.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_data_list.3 b/man/netsnmp_data_list.3
deleted file mode 100644
index cca108a..0000000
--- a/man/netsnmp_data_list.3
+++ /dev/null
@@ -1,269 +0,0 @@
-.TH "generic linked-list data handling with a string as a key." 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-generic linked-list data handling with a string as a key. \- 
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_free_list_data\fP (\fBnetsnmp_data_list\fP *\fBnode\fP)"
-.br
-.RI "\fIfrees the data and a name at a given data_list \fBnode\fP. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_free_all_list_data\fP (\fBnetsnmp_data_list\fP *head)"
-.br
-.RI "\fIfrees all data and nodes in a list. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE \fBnetsnmp_data_list\fP * \fBnetsnmp_create_data_list\fP (const char *name, void *data, Netsnmp_Free_List_Data *beer)"
-.br
-.RI "\fIadds creates a data_list \fBnode\fP given a name, data and a free function ptr. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_data_list_add_node\fP (\fBnetsnmp_data_list\fP **head, \fBnetsnmp_data_list\fP *\fBnode\fP)"
-.br
-.RI "\fIadds data to a datalist \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_add_list_data\fP (\fBnetsnmp_data_list\fP **head, \fBnetsnmp_data_list\fP *\fBnode\fP)"
-.br
-.RI "\fIadds data to a datalist \fP"
-.ti -1c
-.RI "NETSNMP_INLINE \fBnetsnmp_data_list\fP * \fBnetsnmp_data_list_add_data\fP (\fBnetsnmp_data_list\fP **head, const char *name, void *data, Netsnmp_Free_List_Data *beer)"
-.br
-.RI "\fIadds data to a datalist \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void * \fBnetsnmp_get_list_data\fP (\fBnetsnmp_data_list\fP *head, const char *name)"
-.br
-.RI "\fIreturns a data_list node's data for a given name within a data_list \fP"
-.ti -1c
-.RI "NETSNMP_INLINE \fBnetsnmp_data_list\fP * \fBnetsnmp_get_list_node\fP (\fBnetsnmp_data_list\fP *head, const char *name)"
-.br
-.RI "\fIreturns a data_list \fBnode\fP for a given name within a data_list \fP"
-.ti -1c
-.RI "int \fBnetsnmp_remove_list_node\fP (\fBnetsnmp_data_list\fP **realhead, const char *name)"
-.br
-.RI "\fIRemoves a named \fBnode\fP from a data_list (and frees it). \fP"
-.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 persistent storage time \fP"
-.ti -1c
-.RI "int \fBnetsnmp_save_all_data_callback\fP (int major, int minor, void *serverarg, void *clientarg)"
-.br
-.RI "\fIintended to be registerd as a callback operation. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_save_all_data\fP (\fBnetsnmp_data_list\fP *head, const char *type, const char *token, Netsnmp_Save_List_Data *data_list_save_ptr)"
-.br
-.RI "\fIintended to be called as a callback during persistent save operations. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_read_data_callback\fP (const char *token, char *line)"
-.br
-.RI "\fIintended to be registerd as a .conf parser It should be registered using: \fP"
-.in -1c
-.SH "Function Documentation"
-.PP 
-.SS "NETSNMP_INLINE void netsnmp_add_list_data (\fBnetsnmp_data_list\fP ** head, \fBnetsnmp_data_list\fP * node)"
-.PP
-adds data to a datalist depreciated: use \fBnetsnmp_data_list_add_node()\fP
-.PP
-\fBNote:\fP
-.RS 4
-netsnmp_data_list_add_node is preferred 
-.RE
-.PP
-\fBParameters:\fP
-.RS 4
-\fIhead\fP a pointer to the head \fBnode\fP of a data_list 
-.br
-\fI\fBnode\fP\fP a \fBnode\fP to stash in the data_list 
-.RE
-.PP
-
-.PP
-Definition at line 121 of file data_list.c.
-.SS "NETSNMP_INLINE \fBnetsnmp_data_list\fP* netsnmp_create_data_list (const char * name, void * data, Netsnmp_Free_List_Data * beer)"
-.PP
-adds creates a data_list \fBnode\fP given a name, data and a free function ptr. \fBParameters:\fP
-.RS 4
-\fIname\fP the name of the \fBnode\fP to cache the data. 
-.br
-\fIdata\fP the data to be stored under that name 
-.br
-\fIbeer\fP A function that can free the data pointer (in the future) 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-a newly created data_list \fBnode\fP which can be given to the netsnmp_add_list_data function. 
-.RE
-.PP
-
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdelayed_instance.c\fP.
-.PP
-Definition at line 53 of file data_list.c.
-.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
-.RS 4
-\fIhead\fP a pointer to the head \fBnode\fP of a data_list 
-.br
-\fIname\fP the name of the \fBnode\fP to cache the data. 
-.br
-\fIdata\fP the data to be stored under that name 
-.br
-\fIbeer\fP A function that can free the data pointer (in the future) 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-a newly created data_list \fBnode\fP which was inserted in the list 
-.RE
-.PP
-
-.PP
-Definition at line 134 of file data_list.c.
-.SS "NETSNMP_INLINE void netsnmp_data_list_add_node (\fBnetsnmp_data_list\fP ** head, \fBnetsnmp_data_list\fP * node)"
-.PP
-adds data to a datalist \fBParameters:\fP
-.RS 4
-\fIhead\fP a pointer to the head \fBnode\fP of a data_list 
-.br
-\fI\fBnode\fP\fP a \fBnode\fP to stash in the data_list 
-.RE
-.PP
-
-.PP
-Definition at line 78 of file data_list.c.
-.SS "NETSNMP_INLINE void netsnmp_free_all_list_data (\fBnetsnmp_data_list\fP * head)"
-.PP
-frees all data and nodes in a list. \fBParameters:\fP
-.RS 4
-\fIhead\fP the top \fBnode\fP of the list to be freed. 
-.RE
-.PP
-
-.PP
-Definition at line 35 of file data_list.c.
-.SS "NETSNMP_INLINE void netsnmp_free_list_data (\fBnetsnmp_data_list\fP * node)"
-.PP
-frees the data and a name at a given data_list \fBnode\fP. Note that this doesn't free the \fBnode\fP itself. 
-.PP
-\fBParameters:\fP
-.RS 4
-\fI\fBnode\fP\fP the \fBnode\fP for which the data should be freed 
-.RE
-.PP
-
-.PP
-Definition at line 19 of file data_list.c.
-.SS "NETSNMP_INLINE void* netsnmp_get_list_data (\fBnetsnmp_data_list\fP * head, const char * name)"
-.PP
-returns a data_list node's data for a given name within a data_list \fBParameters:\fP
-.RS 4
-\fIhead\fP the head \fBnode\fP of a data_list 
-.br
-\fIname\fP the name to find 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-a pointer to the data cached at that \fBnode\fP 
-.RE
-.PP
-
-.PP
-Definition at line 159 of file data_list.c.
-.SS "NETSNMP_INLINE \fBnetsnmp_data_list\fP* netsnmp_get_list_node (\fBnetsnmp_data_list\fP * head, const char * name)"
-.PP
-returns a data_list \fBnode\fP for a given name within a data_list \fBParameters:\fP
-.RS 4
-\fIhead\fP the head \fBnode\fP of a data_list 
-.br
-\fIname\fP the name to find 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-a pointer to the data_list \fBnode\fP 
-.RE
-.PP
-
-.PP
-Definition at line 177 of file data_list.c.
-.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 
-.PP
-\fBTodo\fP
-.RS 4
-make netsnmp_read_data_callback deal with a free routine 
-.RE
-.PP
-
-.PP
-Definition at line 335 of file data_list.c.
-.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 persistent storage time \fBParameters:\fP
-.RS 4
-\fIdatalist\fP the data to be saved 
-.br
-\fItype\fP the name of the application to save the data as. If left NULL the default application name that was registered during the init_snmp call will be used (recommended). 
-.br
-\fItoken\fP the unique token identifier string to use as the first word in the persistent file line. 
-.br
-\fIdata_list_save_ptr\fP a function pointer which will be called to save the rest of the data to a buffer. 
-.br
-\fIdata_list_read_ptr\fP a function pointer which can read the remainder of a saved line and return the application specific void * pointer. 
-.br
-\fIdata_list_free_ptr\fP a function pointer which will be passed to the data \fBnode\fP for freeing it in the future when/if the list/node is cleaned up or destroyed. 
-.RE
-.PP
-
-.PP
-\fBTodo\fP
-.RS 4
-netsnmp_register_save_list should handle the same token name being saved from different types? 
-.RE
-.PP
-
-.PP
-Definition at line 228 of file data_list.c.
-.SS "int netsnmp_remove_list_node (\fBnetsnmp_data_list\fP ** realhead, const char * name)"
-.PP
-Removes a named \fBnode\fP from a data_list (and frees it). \fBParameters:\fP
-.RS 4
-\fIrealhead\fP a pointer to the head \fBnode\fP of a data_list 
-.br
-\fIname\fP the name to find and remove 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-0 on successful find-and-delete, 1 otherwise. 
-.RE
-.PP
-
-.PP
-Definition at line 195 of file data_list.c.
-.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. 
-.PP
-Definition at line 299 of file data_list.c.
-.SS "int netsnmp_save_all_data_callback (int major, int minor, void * serverarg, void * clientarg)"
-.PP
-intended to be registerd as a callback operation. It should be registered using:
-.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 
-.PP
-Definition at line 282 of file data_list.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_debug.3 b/man/netsnmp_debug.3
deleted file mode 100644
index 45d7102..0000000
--- a/man/netsnmp_debug.3
+++ /dev/null
@@ -1,54 +0,0 @@
-.TH "debug" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-debug \- 
-.PP
-Print out debugging information about the handler chain being called.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_debug_handler\fP (void)"
-.br
-.RI "\fIreturns a debug handler that can be injected into a given handler chain. \fP"
-.ti -1c
-.RI "void \fBdebug_print_requests\fP (\fBnetsnmp_request_info\fP *requests)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_debug_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 "void \fBnetsnmp_init_debug_helper\fP (void)"
-.br
-.RI "\fIinitializes the debug helper which then registers a debug handler as a run-time injectable handler for configuration file use. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Print out debugging information about the handler chain being called. 
-
-This is a useful \fBmodule\fP for run-time debugging of requests as the pass this handler in a calling chain. All debugging output is done via the standard debugging routines with a token name of 'helper:debug', so use the -Dhelper:debug command line flag to see the output when running the snmpd demon. It's not recommended you compile this into a handler chain during compile time, but instead use the 'injectHandler' token in the snmpd.conf file (or similar) to add it to the chain later:
-.PP
-injectHandler debug my_module_name
-.PP
-to see an example output, try:
-.PP
-injectHandler debug mibII/system
-.PP
-and then run snmpwalk on the 'system' group. 
-.SH "Function Documentation"
-.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. 
-.PP
-Definition at line 44 of file debug_handler.c.
-.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. 
-.PP
-Definition at line 148 of file debug_handler.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_default_store.3 b/man/netsnmp_default_store.3
deleted file mode 100644
index 07cdb53..0000000
--- a/man/netsnmp_default_store.3
+++ /dev/null
@@ -1,250 +0,0 @@
-.TH "storage space for defaults" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-storage space for defaults \- 
-.PP
-The purpose of the default storage is three-fold:.  
-
-.SS "Data Structures"
-
-.in +1c
-.ti -1c
-.RI "struct \fBnetsnmp_ds_read_config_s\fP"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef struct \fBnetsnmp_ds_read_config_s\fP \fBnetsnmp_ds_read_config\fP"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBnetsnmp_ds_handle_config\fP (const char *token, char *line)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_ds_set_boolean\fP (int storeid, int which, int value)"
-.br
-.RI "\fIStores 'true' or 'false' given an int value for value into netsnmp_ds_booleans[store][which] slot. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_ds_toggle_boolean\fP (int storeid, int which)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_ds_get_boolean\fP (int storeid, int which)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_ds_set_int\fP (int storeid, int which, int value)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_ds_get_int\fP (int storeid, int which)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_ds_set_string\fP (int storeid, int which, const char *value)"
-.br
-.ti -1c
-.RI "char * \fBnetsnmp_ds_get_string\fP (int storeid, int which)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_ds_set_void\fP (int storeid, int which, void *value)"
-.br
-.ti -1c
-.RI "void * \fBnetsnmp_ds_get_void\fP (int storeid, int which)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_ds_parse_boolean\fP (char *line)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_ds_register_config\fP (u_char type, const char *ftype, const char *token, int storeid, int which)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_ds_register_premib\fP (u_char type, const char *ftype, const char *token, int storeid, int which)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_ds_shutdown\fP (void)"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-The purpose of the default storage is three-fold:. 
-
-1) To create a global storage space without creating a whole bunch of globally accessible variables or a whole bunch of access functions to work with more privately restricted variables.
-.PP
-2) To provide a single location where the thread lock- ing needs to be implemented. At the time of this writing, however, thread locking is not yet in place.
-.PP
-3) To reduce the number of cross dependencies between code pieces that may or may not be linked together in the long run. This provides for a single loca- tion in which configuration data, for example, can be stored for a separate section of code that may not be linked in to the application in question.
-.PP
-The functions defined here implement these goals.
-.PP
-Currently, three data types are supported: booleans, inte- gers, and strings. Each of these data types have separate storage spaces. In addition, the storage space for each data type is divided further by the application level. Currently, there are two storage spaces. The first is reserved for the SNMP library itself. The second is intended for use in applications and is not modified or checked by the library, and, therefore, this is the space usable by you.
-.PP
-These definitions correspond with the 'storid' argument to the API
-.IP "\(bu" 2
-#define NETSNMP_DS_LIBRARY_ID 0
-.IP "\(bu" 2
-#define NETSNMP_DS_APPLICATION_ID 1
-.IP "\(bu" 2
-#define NETSNMP_DS_TOKEN_ID 2
-.PP
-.PP
-These definitions correspond with the 'which' argument to the API, when the storeid argument is NETSNMP_DS_LIBRARY_ID
-.PP
-library booleans
-.PP
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_MIB_ERRORS 0
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_SAVE_MIB_DESCRS 1
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_MIB_COMMENT_TERM 2
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_MIB_PARSE_LABEL 3
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_DUMP_PACKET 4
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_LOG_TIMESTAMP 5
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_DONT_READ_CONFIGS 6
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_MIB_REPLACE 7 replace objects from latest \fBmodule\fP
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM 8 print only numeric enum values
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_PRINT_NUMERIC_OIDS 9 print only numeric enum values
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_DONT_BREAKDOWN_OIDS 10 dont print oid indexes specially
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_ALARM_DONT_USE_SIG 11 don't use the alarm() signal
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_PRINT_FULL_OID 12 print fully qualified oids
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_QUICK_PRINT 13 print very brief output for parsing
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_RANDOM_ACCESS 14 random access to oid labels
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_REGEX_ACCESS 15 regex matching to oid labels
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_DONT_CHECK_RANGE 16 don't check values for ranges on send
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_NO_TOKEN_WARNINGS 17 no warn about unknown config tokens
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_NUMERIC_TIMETICKS 18 print timeticks as a number
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_ESCAPE_QUOTES 19 shell escape quote marks in oids
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_REVERSE_ENCODE 20 encode packets from back to front
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_PRINT_BARE_VALUE 21 just print value (not OID = value)
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_EXTENDED_INDEX 22 print extended index format [x1][x2]
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_PRINT_HEX_TEXT 23 print ASCII text along with hex strings
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_PRINT_UCD_STYLE_OID 24 print OID's using the UCD-style prefix suppression
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_READ_UCD_STYLE_OID 25 require top-level OIDs to be prefixed with a dot
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_HAVE_READ_PREMIB_CONFIG 26 have the pre-mib parsing config tokens been processed
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_HAVE_READ_CONFIG 27 have the config tokens been processed
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_QUICKE_PRINT 28
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_DONT_PRINT_UNITS 29 don't print UNITS suffix
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_NO_DISPLAY_HINT 30 don't apply DISPLAY-HINTs
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_16BIT_IDS 31 restrict requestIDs, etc to 16-bit values
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_DONT_PERSIST_STATE 32 don't save/load any persistant state
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_2DIGIT_HEX_OUTPUT 33 print a leading 0 on hex values <= 'f'
-.PP
-.PP
-library integers
-.PP
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_MIB_WARNINGS 0
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_SECLEVEL 1
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_SNMPVERSION 2
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_DEFAULT_PORT 3
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_OID_OUTPUT_FORMAT 4
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_STRING_OUTPUT_FORMAT 5
-.PP
-.PP
-library strings
-.PP
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_SECNAME 0
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_CONTEXT 1
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_PASSPHRASE 2
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_AUTHPASSPHRASE 3
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_PRIVPASSPHRASE 4
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_OPTIONALCONFIG 5
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_APPTYPE 6
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_COMMUNITY 7
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_PERSISTENT_DIR 8
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_CONFIGURATION_DIR 9
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_SECMODEL 10
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_MIBDIRS 11
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_OIDSUFFIX 12
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_OIDPREFIX 13
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_CLIENT_ADDR 14
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_TEMP_FILE_PATTERN 15
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_AUTHMASTERKEY 16
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_PRIVMASTERKEY 17
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_AUTHLOCALIZEDKEY 18
-.IP "\(bu" 2
-#define NETSNMP_DS_LIB_PRIVLOCALIZEDKEY 19 
-.PP
-
-.SH "Function Documentation"
-.PP 
-.SS "int netsnmp_ds_set_boolean (int storeid, int which, int value)"
-.PP
-Stores 'true' or 'false' given an int value for value into netsnmp_ds_booleans[store][which] slot. \fBParameters:\fP
-.RS 4
-\fIstoreid\fP an index to the boolean storage container's first index(store)
-.br
-\fIwhich\fP an index to the boolean storage container's second index(which)
-.br
-\fIvalue\fP if > 0, 'true' is set into the slot otherwise 'false'
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-Returns SNMPPERR_GENERR if the storeid and which parameters do not correspond to a valid slot, or SNMPERR_SUCCESS otherwise. 
-.RE
-.PP
-
-.PP
-Definition at line 200 of file default_store.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_example_scalar_int.3 b/man/netsnmp_example_scalar_int.3
deleted file mode 100644
index fe4a23b..0000000
--- a/man/netsnmp_example_scalar_int.3
+++ /dev/null
@@ -1,26 +0,0 @@
-.TH "example_scalar_int: instantiates a few example scalars." 3 "6 Mar 2002" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-example_scalar_int \- This example merely creates some scalar registrations that allows some simple variables to be accessed via SNMP.
-More...
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBinit_scalar_int\fP (void)"
-.br
-.in -1c
-.SH "DETAILED DESCRIPTION"
-.PP 
-This example merely creates some scalar registrations that allows some simple variables to be accessed via SNMP.
-.PP
-In a more realistic example, it is likely that these variables would also be manipulated in other ways outside of SNMP gets/sets.
-.PP
-If this module is compiled into an agent, you should be able to issue snmp commands that look something like (authentication information not shown in these commands):
-.PP
-snmpget localhost netSnmpExampleInteger.0 netSnmpExampleScalars = 42
-.PP
-snmpset localhost netSnmpExampleInteger.0 = 1234 netSnmpExampleScalars = 1234
-.PP
-snmpget localhost netSnmpExampleInteger.0 netSnmpExampleScalars = 1234
diff --git a/man/netsnmp_handler.3 b/man/netsnmp_handler.3
deleted file mode 100644
index 3f33778..0000000
--- a/man/netsnmp_handler.3
+++ /dev/null
@@ -1,515 +0,0 @@
-.TH "Net-SNMP Agent handler and extensibility API" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Net-SNMP Agent handler and extensibility API \- 
-.PP
-The basic theory goes something like this: In the past, with the original mib \fBmodule\fP api (which derived from the original CMU SNMP code) the underlying mib modules were passed very little information (only the truly most basic information about a request).  
-
-.SS "Data Structures"
-
-.in +1c
-.ti -1c
-.RI "struct \fBnetsnmp_mib_handler_s\fP"
-.br
-.RI "\fIthe mib handler structure to be registered \fP"
-.ti -1c
-.RI "struct \fBnetsnmp_handler_registration_s\fP"
-.br
-.RI "\fIRoot registration info. \fP"
-.ti -1c
-.RI "struct \fBnetsnmp_handler_args_s\fP"
-.br
-.ti -1c
-.RI "struct \fBnetsnmp_delegated_cache_s\fP"
-.br
-.in -1c
-.SS "Modules"
-
-.in +1c
-.ti -1c
-.RI "\fButility_handlers\fP"
-.br
-.PP
-
-.RI "\fISimplify request processing A group of handlers intended to simplify certain aspects of processing a request for a MIB object. \fP"
-.ti -1c
-.RI "\fBleaf_handlers\fP"
-.br
-.PP
-
-.RI "\fIProcess individual leaf objects A group of handlers to implement individual leaf objects and instances (both scalar objects, and individual objects and instances within a table). \fP"
-.ti -1c
-.RI "\fBbaby_steps\fP"
-.br
-.PP
-
-.RI "\fICalls your handler in baby_steps for set processing. \fP"
-.ti -1c
-.RI "\fBold_api\fP"
-.br
-.PP
-
-.RI "\fICalls mib \fBmodule\fP code written in the old style of code. \fP"
-.ti -1c
-.RI "\fBstash_cache\fP"
-.br
-.PP
-
-.RI "\fIAutomatically caches data for certain handlers. \fP"
-.ti -1c
-.RI "\fBtable\fP"
-.br
-.PP
-
-.RI "\fIHelps you implement a table. \fP"
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBMIB_HANDLER_AUTO_NEXT\fP   0x00000001"
-.br
-.ti -1c
-.RI "#define \fBMIB_HANDLER_AUTO_NEXT_OVERRIDE_ONCE\fP   0x00000002"
-.br
-.ti -1c
-.RI "#define \fBMIB_HANDLER_INSTANCE\fP   0x00000004"
-.br
-.ti -1c
-.RI "#define \fBMIB_HANDLER_CUSTOM4\fP   0x10000000"
-.br
-.ti -1c
-.RI "#define \fBMIB_HANDLER_CUSTOM3\fP   0x20000000"
-.br
-.ti -1c
-.RI "#define \fBMIB_HANDLER_CUSTOM2\fP   0x40000000"
-.br
-.ti -1c
-.RI "#define \fBMIB_HANDLER_CUSTOM1\fP   0x80000000"
-.br
-.ti -1c
-.RI "#define \fBHANDLER_CAN_GETANDGETNEXT\fP   0x01"
-.br
-.ti -1c
-.RI "#define \fBHANDLER_CAN_SET\fP   0x02"
-.br
-.ti -1c
-.RI "#define \fBHANDLER_CAN_GETBULK\fP   0x04"
-.br
-.ti -1c
-.RI "#define \fBHANDLER_CAN_NOT_CREATE\fP   0x08"
-.br
-.ti -1c
-.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
-.RI "#define \fBHANDLER_CAN_RWRITE\fP   (HANDLER_CAN_GETANDGETNEXT | HANDLER_CAN_SET)"
-.br
-.ti -1c
-.RI "#define \fBHANDLER_CAN_SET_ONLY\fP   (HANDLER_CAN_SET | HANDLER_CAN_NOT_CREATE)"
-.br
-.ti -1c
-.RI "#define \fBHANDLER_CAN_DEFAULT\fP   (HANDLER_CAN_RONLY | HANDLER_CAN_NOT_CREATE)"
-.br
-.ti -1c
-.RI "#define \fBREQUEST_IS_DELEGATED\fP   1"
-.br
-.ti -1c
-.RI "#define \fBREQUEST_IS_NOT_DELEGATED\fP   0"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef struct \fBnetsnmp_mib_handler_s\fP \fBnetsnmp_mib_handler\fP"
-.br
-.RI "\fITypedefs the \fBnetsnmp_mib_handler_s\fP struct into netsnmp_mib_handler. \fP"
-.ti -1c
-.RI "typedef struct \fBnetsnmp_handler_registration_s\fP \fBnetsnmp_handler_registration\fP"
-.br
-.RI "\fITypedefs the \fBnetsnmp_handler_registration_s\fP struct into netsnmp_handler_registration. \fP"
-.ti -1c
-.RI "typedef int( \fBNetsnmp_Node_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 "typedef struct \fBnetsnmp_handler_args_s\fP \fBnetsnmp_handler_args\fP"
-.br
-.ti -1c
-.RI "typedef struct \fBnetsnmp_delegated_cache_s\fP \fBnetsnmp_delegated_cache\fP"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_create_handler\fP (const char *name, Netsnmp_Node_Handler *handler_access_method)"
-.br
-.RI "\fIcreates a netsnmp_mib_handler structure given a name and a access method. \fP"
-.ti -1c
-.RI "\fBnetsnmp_handler_registration\fP * \fBnetsnmp_handler_registration_create\fP (const char *name, \fBnetsnmp_mib_handler\fP *handler, const oid *reg_oid, size_t reg_oid_len, int modes)"
-.br
-.RI "\fIcreates a handler registration structure given a name, a access_method function, a registration location oid and the modes the handler supports. \fP"
-.ti -1c
-.RI "\fBnetsnmp_handler_registration\fP * \fBnetsnmp_create_handler_registration\fP (const char *name, Netsnmp_Node_Handler *handler_access_method, const oid *reg_oid, size_t reg_oid_len, int modes)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_handler\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIregister a handler, as defined by the netsnmp_handler_registration pointer. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_unregister_handler\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIunregister a handler, as defined by the netsnmp_handler_registration pointer. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_handler_nocallback\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIregister a handler, as defined by the netsnmp_handler_registration pointer. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_inject_handler_before\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_mib_handler\fP *handler, const char *before_what)"
-.br
-.RI "\fIinject a new handler into the calling chain of the handlers defined by the netsnmp_handler_registration pointer. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_inject_handler\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_mib_handler\fP *handler)"
-.br
-.RI "\fIinject a new handler into the calling chain of the handlers defined by the netsnmp_handler_registration pointer. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE int \fBnetsnmp_call_handler\fP (\fBnetsnmp_mib_handler\fP *next_handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
-.br
-.RI "\fIcalls a handler with with appropriate NULL checking of arguments, etc. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_call_handlers\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
-.br
-.ti -1c
-.RI "NETSNMP_INLINE int \fBnetsnmp_call_next_handler\fP (\fBnetsnmp_mib_handler\fP *current, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
-.br
-.RI "\fIcalls the next handler in the chain after the current one with with appropriate NULL checking, etc. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE int \fBnetsnmp_call_next_handler_one_request\fP (\fBnetsnmp_mib_handler\fP *current, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests)"
-.br
-.RI "\fIcalls the next handler in the chain after the current one with with appropriate NULL checking, etc. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_handler_free\fP (\fBnetsnmp_mib_handler\fP *handler)"
-.br
-.RI "\fIfrees the resources associated with a given handler \fP"
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_handler_dup\fP (\fBnetsnmp_mib_handler\fP *handler)"
-.br
-.RI "\fIduplicates a handler and all subsequent handlers see also _clone_handler \fP"
-.ti -1c
-.RI "void \fBnetsnmp_handler_registration_free\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIfree the resources associated with a handler registration object \fP"
-.ti -1c
-.RI "\fBnetsnmp_handler_registration\fP * \fBnetsnmp_handler_registration_dup\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIduplicates the handler registration object \fP"
-.ti -1c
-.RI "NETSNMP_INLINE \fBnetsnmp_delegated_cache\fP * \fBnetsnmp_create_delegated_cache\fP (\fBnetsnmp_mib_handler\fP *handler, \fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests, void *localinfo)"
-.br
-.RI "\fIcreates a cache of information which can be saved for future reference. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE \fBnetsnmp_delegated_cache\fP * \fBnetsnmp_handler_check_cache\fP (\fBnetsnmp_delegated_cache\fP *dcache)"
-.br
-.RI "\fIcheck's a given cache and returns it if it is still valid (ie, the agent still considers it to be an outstanding request. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_free_delegated_cache\fP (\fBnetsnmp_delegated_cache\fP *dcache)"
-.br
-.RI "\fIfrees a cache once you're finished using it \fP"
-.ti -1c
-.RI "void \fBnetsnmp_handler_mark_requests_as_delegated\fP (\fBnetsnmp_request_info\fP *requests, int isdelegated)"
-.br
-.RI "\fImarks a list of requests as delegated (or not if isdelegaded = 0) \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_request_add_list_data\fP (\fBnetsnmp_request_info\fP *request, \fBnetsnmp_data_list\fP *\fBnode\fP)"
-.br
-.RI "\fIadd data to a request that can be extracted later by submodules \fP"
-.ti -1c
-.RI "NETSNMP_INLINE int \fBnetsnmp_request_remove_list_data\fP (\fBnetsnmp_request_info\fP *request, const char *name)"
-.br
-.RI "\fIremove data from a request \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_request_get_list_data\fP (\fBnetsnmp_request_info\fP *request, const char *name)"
-.br
-.RI "\fIextract data from a request that was added previously by a parent \fBmodule\fP \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_free_request_data_set\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIFree the extra data stored in a request. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_free_request_data_sets\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIFree the extra data stored in a bunch of requests (all data in the chain). \fP"
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_find_handler_by_name\fP (\fBnetsnmp_handler_registration\fP *reginfo, const char *name)"
-.br
-.RI "\fIReturns a handler from a chain based on the name. \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_find_handler_data_by_name\fP (\fBnetsnmp_handler_registration\fP *reginfo, const char *name)"
-.br
-.RI "\fIReturns a handler's void * pointer from a chain based on the name. \fP"
-.ti -1c
-.RI "void \fBhandler_free_callback\fP (void *handler)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_register_handler_by_name\fP (const char *name, \fBnetsnmp_mib_handler\fP *handler)"
-.br
-.RI "\fIregisters a given handler by name so that it can be found easily later. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_clear_handler_list\fP (void)"
-.br
-.RI "\fIclears the entire handler-registration list \fP"
-.ti -1c
-.RI "void \fBnetsnmp_inject_handler_into_subtree\fP (\fBnetsnmp_subtree\fP *tp, const char *name, \fBnetsnmp_mib_handler\fP *handler, const char *before_what)"
-.br
-.ti -1c
-.RI "void \fBparse_injectHandler_conf\fP (const char *token, char *cptr)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_init_handler_conf\fP (void)"
-.br
-.ti -1c
-.RI "void * \fBnetsnmp_handler_get_parent_data\fP (\fBnetsnmp_request_info\fP *, const char *)"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-The basic theory goes something like this: In the past, with the original mib \fBmodule\fP api (which derived from the original CMU SNMP code) the underlying mib modules were passed very little information (only the truly most basic information about a request). 
-
-This worked well at the time but in todays world of subagents, device instrumentation, low resource consumption, etc, it just isn't flexible enough. 'handlers' are here to fix all that.
-.PP
-With the rewrite of the agent internals for the net-snmp 5.0 release, we introduce a modular calling scheme that allows agent modules to be written in a very flexible manner, and more importantly allows reuse of code in a decent way (and without the memory and speed overheads of OO languages like C++).
-.PP
-Functionally, the notion of what a handler does is the same as the older api: A handler is \fBcreated\fP and then \fBregistered\fP with the main agent at a given OID in the OID \fBtree\fP and gets called any time a request is made that it should respond to. You probably should use one of the convenience helpers instead of doing anything else yourself though:
-.PP
-Most importantly, though, is that the handlers are built on the notion of modularity and reuse. Specifically, rather than do all the really hard work (like parsing table indexes out of an incoming oid request) in each \fBmodule\fP, the API is designed to make it easy to write 'helper' handlers that merely process some aspect of the request before passing it along to the final handler that returns the real answer. Most people will want to make use of the \fBinstance\fP, \fBtable\fP, \fBtable_iterator\fP, \fBtable_data\fP, or \fBtable_dataset\fP helpers to make their life easier. These 'helpers' interpert important aspects of the request and pass them on to you.
-.PP
-For instance, the \fBtable\fP helper is designed to hand you a list of extracted index values from an incoming request. THe \fBtable_iterator\fP helper is built on top of the table helper, and is designed to help you iterate through data stored elsewhere (like in a kernel) that is not in OID lexographical order (ie, don't write your own index/oid sorting routine, use this helper instead). The beauty of the \fBtable_iterator helper\fP, as well as the \fBinstance\fP helper is that they take care of the complex GETNEXT processing entirely for you and hand you everything you need to merely return the data as if it was a GET request. Much less code and hair pulling. I've pulled all my hair out to help you so that only one of us has to be bald. 
-.SH "Typedef Documentation"
-.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. 
-.SS "struct \fBnetsnmp_mib_handler_s\fP \fBnetsnmp_mib_handler\fP"
-.PP
-Typedefs the \fBnetsnmp_mib_handler_s\fP struct into netsnmp_mib_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. 
-.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. 
-.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. 
-.SS "void netsnmp_clear_handler_list (void)"
-.PP
-clears the entire handler-registration list 
-.SS "\fBnetsnmp_delegated_cache\fP * 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)"
-.PP
-creates a cache of information which can be saved for future reference. Use \fBnetsnmp_handler_check_cache()\fP later to make sure it's still valid before referencing it in the future. 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdelayed_instance.c\fP.
-.SS "\fBnetsnmp_mib_handler\fP * netsnmp_create_handler (const char * name, Netsnmp_Node_Handler * handler_access_method)"
-.PP
-creates a netsnmp_mib_handler structure given a name and a access method. The returned handler should then be \fBregistered.\fP
-.PP
-\fBParameters:\fP
-.RS 4
-\fIname\fP is the handler name and is copied then assigned to netsnmp_mib_handler->handler_name
-.br
-\fIhandler_access_method\fP is a function pointer used as the access method for this handler registration instance for whatever required needs.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-a pointer to a populated netsnmp_mib_handler struct to be registered
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-netsnmp_create_handler_registration() 
-.PP
-\fBnetsnmp_register_handler()\fP 
-.RE
-.PP
-
-.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. 
-.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. 
-.SS "void netsnmp_free_delegated_cache (\fBnetsnmp_delegated_cache\fP * dcache)"
-.PP
-frees a cache once you're finished using it 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdelayed_instance.c\fP.
-.SS "void netsnmp_free_request_data_set (\fBnetsnmp_request_info\fP * request)"
-.PP
-Free the extra data stored in a request. 
-.SS "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). 
-.SS "\fBnetsnmp_delegated_cache\fP * netsnmp_handler_check_cache (\fBnetsnmp_delegated_cache\fP * 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. 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdelayed_instance.c\fP.
-.SS "\fBnetsnmp_mib_handler\fP * netsnmp_handler_dup (\fBnetsnmp_mib_handler\fP * handler)"
-.PP
-duplicates a handler and all subsequent handlers see also _clone_handler 
-.SS "void netsnmp_handler_free (\fBnetsnmp_mib_handler\fP * handler)"
-.PP
-frees the resources associated with a given handler 
-.PP
-make sure we aren't pointing to ourselves. 
-.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) 
-.SS "\fBnetsnmp_handler_registration\fP * netsnmp_handler_registration_create (const char * name, \fBnetsnmp_mib_handler\fP * handler, const oid * reg_oid, size_t reg_oid_len, int modes)"
-.PP
-creates a handler registration structure given a name, a access_method function, a registration location oid and the modes the handler supports. If modes == 0, then modes will automatically be set to the default value of only HANDLER_CAN_DEFAULT, which is by default read-only GET and GETNEXT requests. A hander which supports sets but not row creation should set us a mode of HANDLER_CAN_SET_ONLY. 
-.PP
-\fBNote:\fP
-.RS 4
-This ends up calling netsnmp_create_handler(name, handler_access_method) 
-.RE
-.PP
-\fBParameters:\fP
-.RS 4
-\fIname\fP is the handler name and is copied then assigned to netsnmp_handler_registration->handlerName.
-.br
-\fIhandler\fP is a function pointer used as the access method for this handler registration instance for whatever required needs.
-.br
-\fIreg_oid\fP is the registration location oid.
-.br
-\fIreg_oid_len\fP is the length of reg_oid, can use the macro, OID_LENGTH
-.br
-\fImodes\fP is used to configure read/write access. If modes == 0, then modes will automatically be set to the default value of only HANDLER_CAN_DEFAULT, which is by default read-only GET and GETNEXT requests. The other two mode options are read only, HANDLER_CAN_RONLY, and read/write, HANDLER_CAN_RWRITE.
-.RE
-.PP
-.IP "\(bu" 2
-HANDLER_CAN_GETANDGETNEXT
-.IP "\(bu" 2
-HANDLER_CAN_SET
-.IP "\(bu" 2
-HANDLER_CAN_GETBULK
-.PP
-.PP
-.IP "\(bu" 2
-HANDLER_CAN_RONLY (HANDLER_CAN_GETANDGETNEXT)
-.IP "\(bu" 2
-HANDLER_CAN_RWRITE (HANDLER_CAN_GETANDGETNEXT | HANDLER_CAN_SET)
-.IP "\(bu" 2
-HANDLER_CAN_DEFAULT HANDLER_CAN_RONLY
-.PP
-.PP
-\fBReturns:\fP
-.RS 4
-Returns a pointer to a netsnmp_handler_registration struct. NULL is returned only when memory could not be allocated for the netsnmp_handler_registration struct.
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBnetsnmp_create_handler()\fP 
-.PP
-\fBnetsnmp_register_handler()\fP 
-.RE
-.PP
-
-.SS "\fBnetsnmp_handler_registration\fP * netsnmp_handler_registration_dup (\fBnetsnmp_handler_registration\fP * reginfo)"
-.PP
-duplicates the handler registration object 
-.SS "void netsnmp_handler_registration_free (\fBnetsnmp_handler_registration\fP * reginfo)"
-.PP
-free the resources associated with a handler registration object 
-.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 defined 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. 
-.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 defined 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. 
-.SS "int netsnmp_register_handler (\fBnetsnmp_handler_registration\fP * reginfo)"
-.PP
-register a handler, as defined by the netsnmp_handler_registration pointer. 
-.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. 
-.SS "int netsnmp_register_handler_nocallback (\fBnetsnmp_handler_registration\fP * reginfo)"
-.PP
-register a handler, as defined by the netsnmp_handler_registration pointer. 
-.SS "void netsnmp_request_add_list_data (\fBnetsnmp_request_info\fP * request, \fBnetsnmp_data_list\fP * node)"
-.PP
-add data to a request that can be extracted later by submodules \fBParameters:\fP
-.RS 4
-\fIrequest\fP the netsnmp request info structure
-.br
-\fI\fBnode\fP\fP this is the data to be added to the linked list request->parent_data
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-void 
-.RE
-.PP
-
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdelayed_instance.c\fP.
-.SS "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 \fBmodule\fP \fBParameters:\fP
-.RS 4
-\fIrequest\fP the netsnmp request info function
-.br
-\fIname\fP used to compare against the request->parent_data->name value, if a match is found request->parent_data->data is returned
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-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. 
-.RE
-.PP
-
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdelayed_instance.c\fP.
-.SS "int netsnmp_request_remove_list_data (\fBnetsnmp_request_info\fP * request, const char * name)"
-.PP
-remove data from a request \fBParameters:\fP
-.RS 4
-\fIrequest\fP the netsnmp request info structure
-.br
-\fIname\fP this is the name of the previously added data
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-0 on successful find-and-delete, 1 otherwise. 
-.RE
-.PP
-
-.SS "int netsnmp_unregister_handler (\fBnetsnmp_handler_registration\fP * reginfo)"
-.PP
-unregister a handler, as defined by the netsnmp_handler_registration pointer. 
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_instance.3 b/man/netsnmp_instance.3
deleted file mode 100644
index 8ed81dd..0000000
--- a/man/netsnmp_instance.3
+++ /dev/null
@@ -1,227 +0,0 @@
-.TH "instance" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-instance \- 
-.PP
-Process individual MIB instances easily.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_instance_handler\fP (void)"
-.br
-.RI "\fICreates an instance helper handler, calls netsnmp_create_handler, which then could be registered, using \fBnetsnmp_register_handler()\fP. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_instance\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIThis 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. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_read_only_instance\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIThis function injects a 'read only' handler into the handler chain prior to serializing/registering the handler. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_read_only_ulong_instance\fP (const char *name, const oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_ulong_instance\fP (const char *name, const oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_read_only_counter32_instance\fP (const char *name, const oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_read_only_long_instance\fP (const char *name, const oid *reg_oid, size_t reg_oid_len, long *it, Netsnmp_Node_Handler *subhandler)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_long_instance\fP (const char *name, const oid *reg_oid, size_t reg_oid_len, long *it, Netsnmp_Node_Handler *subhandler)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_read_only_uint_instance\fP (const char *name, const oid *reg_oid, size_t reg_oid_len, unsigned int *it, Netsnmp_Node_Handler *subhandler)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_uint_instance\fP (const char *name, const oid *reg_oid, size_t reg_oid_len, unsigned int *it, Netsnmp_Node_Handler *subhandler)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_read_only_int_instance\fP (const char *name, const oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler)"
-.br
-.ti -1c
-.RI "int \fBregister_read_only_int_instance\fP (const char *name, const oid *reg_oid, size_t reg_oid_len, int *it, Netsnmp_Node_Handler *subhandler)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_read_only_ulong_instance_context\fP (const char *name, const oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler, const char *contextName)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_ulong_instance_context\fP (const char *name, const oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler, const char *contextName)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_read_only_counter32_instance_context\fP (const char *name, const oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler, const char *contextName)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_read_only_long_instance_context\fP (const char *name, const oid *reg_oid, size_t reg_oid_len, long *it, Netsnmp_Node_Handler *subhandler, const char *contextName)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_long_instance_context\fP (const char *name, const 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, const 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, const 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, const 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, const oid *reg_oid, size_t reg_oid_len, const 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, const 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"
-.ti -1c
-.RI "int \fBnetsnmp_instance_ulong_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_counter32_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_long_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_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_uint_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
-.SH "Detailed Description"
-.PP 
-Process individual MIB instances easily. 
-.SH "Function Documentation"
-.PP 
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_instance_handler (void)"
-.PP
-Creates an instance helper handler, calls netsnmp_create_handler, which then could be registered, using \fBnetsnmp_register_handler()\fP. \fBReturns:\fP
-.RS 4
-Returns a pointer to a netsnmp_mib_handler struct which contains the handler's name and the access method 
-.RE
-.PP
-
-.PP
-Definition at line 49 of file instance.c.
-.SS "int netsnmp_instance_counter32_handler (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"\fBDeprecated\fP
-.RS 4
-This function is unused and scheduled for removal in Net-SNMP 5.6 
-.RE
-.PP
-
-.PP
-Definition at line 572 of file instance.c.
-.SS "int netsnmp_instance_int_handler (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"\fBDeprecated\fP
-.RS 4
-This function is unused and scheduled for removal in Net-SNMP 5.6 
-.RE
-.PP
-
-.PP
-Definition at line 689 of file instance.c.
-.SS "int netsnmp_instance_long_handler (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"\fBDeprecated\fP
-.RS 4
-This function is unused and scheduled for removal in Net-SNMP 5.6 
-.RE
-.PP
-
-.PP
-Definition at line 611 of file instance.c.
-.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
-fall through 
-.PP
-Definition at line 771 of file instance.c.
-.SS "int netsnmp_instance_uint_handler (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"\fBDeprecated\fP
-.RS 4
-This function is unused and scheduled for removal in Net-SNMP 5.6 
-.RE
-.PP
-
-.PP
-Definition at line 905 of file instance.c.
-.SS "int netsnmp_instance_ulong_handler (\fBnetsnmp_mib_handler\fP * handler, \fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * requests)"\fBDeprecated\fP
-.RS 4
-This function is unused and scheduled for removal in Net-SNMP 5.6 
-.RE
-.PP
-
-.PP
-Definition at line 492 of file instance.c.
-.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.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIreginfo\fP a handler registration structure which could get created using netsnmp_create_handler_registration. Used to register an instance helper handler.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-MIB_REGISTERED_OK is returned if the registration was a success. Failures are MIB_REGISTRATION_FAILED and MIB_DUPLICATE_REGISTRATION. 
-.RE
-.PP
-
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdelayed_instance.c\fP.
-.PP
-Definition at line 74 of file instance.c.
-.SS "int netsnmp_register_int_instance (const char * name, const oid * reg_oid, size_t reg_oid_len, int * it, Netsnmp_Node_Handler * subhandler)"
-.PP
-This function registers an int helper handler to a specified OID. \fBParameters:\fP
-.RS 4
-\fIname\fP the name used for registration pruposes.
-.br
-\fIreg_oid\fP the OID where you want to register your integer at
-.br
-\fIreg_oid_len\fP the length of the OID
-.br
-\fIit\fP the integer value to be registered during initialization
-.br
-\fIsubhandler\fP a handler to do whatever you want to do, otherwise use NULL to use the default int handler.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-MIB_REGISTERED_OK is returned if the registration was a success. Failures are MIB_REGISTRATION_FAILED and MIB_DUPLICATE_REGISTRATION. 
-.RE
-.PP
-
-.PP
-Definition at line 475 of file instance.c.
-.SS "int netsnmp_register_read_only_instance (\fBnetsnmp_handler_registration\fP * reginfo)"
-.PP
-This function injects a 'read only' handler into the handler chain prior to serializing/registering the handler. The only purpose of this 'read only' handler is to return an appropriate error for any requests passed to it in a SET mode. Inserting it into your handler chain will ensure you're never asked to perform a SET request so you can ignore those error conditions.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIreginfo\fP a handler registration structure which could get created using netsnmp_create_handler_registration. Used to register a read only instance helper handler.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-MIB_REGISTERED_OK is returned if the registration was a success. Failures are MIB_REGISTRATION_FAILED and MIB_DUPLICATE_REGISTRATION. 
-.RE
-.PP
-
-.PP
-Definition at line 101 of file instance.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_iterator_info_s.3 b/man/netsnmp_iterator_info_s.3
deleted file mode 100644
index 829660e..0000000
--- a/man/netsnmp_iterator_info_s.3
+++ /dev/null
@@ -1,76 +0,0 @@
-.TH "iterator_info_s" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-iterator_info_s \- 
-.PP
-Holds iterator information containing functions which should be called by the iterator_handler to loop over your data set and sort it in a SNMP specific manner.  
-
-.SH SYNOPSIS
-.br
-.PP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_container\fP \fBc\fP"
-.br
-.ti -1c
-.RI "Netsnmp_Iterator_Loop_Key * \fBget_first\fP"
-.br
-.ti -1c
-.RI "Netsnmp_Iterator_Loop_Key * \fBget_next\fP"
-.br
-.ti -1c
-.RI "Netsnmp_Iterator_Loop_Data * \fBget_data\fP"
-.br
-.ti -1c
-.RI "Netsnmp_Iterator_Data * \fBfree_user_ctx\fP"
-.br
-.ti -1c
-.RI "Netsnmp_Iterator_Ctx * \fBinit_loop_ctx\fP"
-.br
-.ti -1c
-.RI "Netsnmp_Iterator_Ctx * \fBcleanup_loop_ctx\fP"
-.br
-.ti -1c
-.RI "Netsnmp_Iterator_Ctx_Dup * \fBsave_pos\fP"
-.br
-.ti -1c
-.RI "Netsnmp_Iterator_Data * \fBrelease_data\fP"
-.br
-.ti -1c
-.RI "Netsnmp_Iterator_Data * \fBinsert_data\fP"
-.br
-.ti -1c
-.RI "Netsnmp_Iterator_Data * \fBremove_data\fP"
-.br
-.ti -1c
-.RI "Netsnmp_Iterator_Op * \fBget_size\fP"
-.br
-.ti -1c
-.RI "int \fBsorted\fP"
-.br
-.ti -1c
-.RI "void * \fBuser_ctx\fP"
-.br
-.RI "\fIThis can be used by client handlers to store any information they need. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Holds iterator information containing functions which should be called by the iterator_handler to loop over your data set and sort it in a SNMP specific manner. 
-
-The iterator_info typedef can be used instead of directly calling this struct if you would prefer. 
-.PP
-Definition at line 39 of file container_iterator.c.
-.SH "Field Documentation"
-.PP 
-.SS "void* \fBiterator_info_s::user_ctx\fP"
-.PP
-This can be used by client handlers to store any information they need. 
-.PP
-Definition at line 69 of file container_iterator.c.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_leaf.3 b/man/netsnmp_leaf.3
deleted file mode 100644
index 19f2888..0000000
--- a/man/netsnmp_leaf.3
+++ /dev/null
@@ -1,44 +0,0 @@
-.TH "leaf_handlers" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-leaf_handlers \- 
-.PP
-Process individual leaf objects A group of handlers to implement individual leaf objects and instances (both scalar objects, and individual objects and instances within a table).  
-
-.SS "Modules"
-
-.in +1c
-.ti -1c
-.RI "\fBinstance\fP"
-.br
-.PP
-
-.RI "\fIProcess individual MIB instances easily. \fP"
-.ti -1c
-.RI "\fBscalar\fP"
-.br
-.PP
-
-.RI "\fIProcess scalars easily. \fP"
-.ti -1c
-.RI "\fBscalar_group\fP"
-.br
-.PP
-
-.RI "\fIProcess groups of scalars. \fP"
-.ti -1c
-.RI "\fBwatcher\fP"
-.br
-.PP
-
-.RI "\fIWatch a specified \fBvariable\fP and process it as an instance or scalar object. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Process individual leaf objects A group of handlers to implement individual leaf objects and instances (both scalar objects, and individual objects and instances within a table). 
-
-These handlers will typically allow control to be passed down to a lower level, user-provided handler, but this is (usually) optional. 
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_library.3 b/man/netsnmp_library.3
deleted file mode 100644
index 41cc6fc..0000000
--- a/man/netsnmp_library.3
+++ /dev/null
@@ -1,706 +0,0 @@
-.TH "The Net-SNMP library" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-The Net-SNMP library \- 
-.SS "Data Structures"
-
-.in +1c
-.ti -1c
-.RI "struct \fBsnmp_internal_session\fP"
-.br
-.ti -1c
-.RI "struct \fBsession_list\fP"
-.br
-.in -1c
-.SS "Modules"
-
-.in +1c
-.ti -1c
-.RI "\fBasn1 parsing and datatype manipulation routines.\fP"
-.br
-.PP
-
-.RI "\fINote on. \fP"
-.ti -1c
-.RI "\fBA generic callback mechanism\fP"
-.br
-.ti -1c
-.RI "\fBgeneric linked-list data handling with a string as a key.\fP"
-.br
-.ti -1c
-.RI "\fBstorage space for defaults\fP"
-.br
-.PP
-
-.RI "\fIThe purpose of the default storage is three-fold:. \fP"
-.ti -1c
-.RI "\fBmib parsing and datatype manipulation routines.\fP"
-.br
-.ti -1c
-.RI "\fBStore and retrieve data referenced by an OID.\fP"
-.br
-.PP
-
-.RI "\fIThis is essentially a way of storing data associated with a given OID. \fP"
-.ti -1c
-.RI "\fBparsing various configuration files at run time\fP"
-.br
-.PP
-
-.RI "\fIThe read_config related functions are a fairly extensible system of parsing various configuration files at the run time. \fP"
-.ti -1c
-.RI "\fBgeneric library based alarm timers for various parts of an application\fP"
-.br
-.ti -1c
-.RI "\fBvarious PDU processing routines\fP"
-.br
-.ti -1c
-.RI "\fBgeneric logging for net-snmp\fP"
-.br
-.ti -1c
-.RI "\fBMemory Utility Routines\fP"
-.br
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBMIN\fP(a, b)   (((a) < (b)) ? (a) : (b))"
-.br
-.ti -1c
-.RI "#define \fBMIB_CLIENTS_ARE_EVIL\fP   1"
-.br
-.ti -1c
-.RI "#define \fB_init_agent_callback_transport\fP()"
-.br
-.ti -1c
-.RI "#define \fBSNMP_NEED_REQUEST_LIST\fP"
-.br
-.ti -1c
-.RI "#define \fBtimercmp\fP(tvp, uvp, cmp)"
-.br
-.ti -1c
-.RI "#define \fBtimerclear\fP(tvp)   (tvp)->tv_sec = (tvp)->tv_usec = 0"
-.br
-.ti -1c
-.RI "#define \fBMAX_PACKET_LENGTH\fP   (0x7fffffff)"
-.br
-.ti -1c
-.RI "#define \fBNETSNMP_STREAM_QUEUE_LEN\fP   5"
-.br
-.ti -1c
-.RI "#define \fBBSD4_2\fP"
-.br
-.ti -1c
-.RI "#define \fBDEFAULT_COMMUNITY\fP   'public'"
-.br
-.ti -1c
-.RI "#define \fBDEFAULT_RETRIES\fP   5"
-.br
-.ti -1c
-.RI "#define \fBDEFAULT_TIMEOUT\fP   1000000L"
-.br
-.ti -1c
-.RI "#define \fBDEFAULT_REMPORT\fP   SNMP_PORT"
-.br
-.ti -1c
-.RI "#define \fBDEFAULT_ENTERPRISE\fP   default_enterprise"
-.br
-.ti -1c
-.RI "#define \fBDEFAULT_TIME\fP   0"
-.br
-.ti -1c
-.RI "#define \fBMAXIMUM_PACKET_SIZE\fP   0x7fffffff"
-.br
-.ti -1c
-.RI "#define \fBDEBUGPRINTPDUTYPE\fP(token, type)   DEBUGDUMPSECTION(token, snmp_pdu_type(type))"
-.br
-.ti -1c
-.RI "#define \fBERROR_STAT_LENGTH\fP   11"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "int \fBinit_agent\fP (const char *app)"
-.br
-.RI "\fIInitialize the agent. \fP"
-.ti -1c
-.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
-.RI "int \fBsnmp_get_errno\fP (void)"
-.br
-.ti -1c
-.RI "void \fBsnmp_synch_reset\fP (\fBnetsnmp_session\fP *notused)"
-.br
-.ti -1c
-.RI "void \fBsnmp_synch_setup\fP (\fBnetsnmp_session\fP *notused)"
-.br
-.ti -1c
-.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
-.RI "long \fBsnmp_get_next_msgid\fP (void)"
-.br
-.ti -1c
-.RI "long \fBsnmp_get_next_sessid\fP (void)"
-.br
-.ti -1c
-.RI "long \fBsnmp_get_next_transid\fP (void)"
-.br
-.ti -1c
-.RI "void \fBsnmp_perror\fP (const char *prog_string)"
-.br
-.ti -1c
-.RI "void \fBsnmp_set_detail\fP (const char *detail_string)"
-.br
-.ti -1c
-.RI "const char * \fBsnmp_api_errstring\fP (int snmp_errnumber)"
-.br
-.ti -1c
-.RI "void \fBsnmp_error\fP (\fBnetsnmp_session\fP *psess, int *p_errno, int *p_snmp_errno, char **p_str)"
-.br
-.ti -1c
-.RI "void \fBsnmp_sess_error\fP (void *sessp, int *p_errno, int *p_snmp_errno, char **p_str)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_sess_log_error\fP (int priority, const char *prog_string, \fBnetsnmp_session\fP *ss)"
-.br
-.ti -1c
-.RI "void \fBsnmp_sess_perror\fP (const char *prog_string, \fBnetsnmp_session\fP *ss)"
-.br
-.ti -1c
-.RI "void \fBsnmp_sess_init\fP (\fBnetsnmp_session\fP *session)"
-.br
-.RI "\fILibrary API routines concerned with specifying and using SNMP 'sessions' including sending and receiving requests. \fP"
-.ti -1c
-.RI "void \fBinit_snmp\fP (const char *type)"
-.br
-.RI "\fICalls the functions to do config file loading and mib \fBmodule\fP parsing in the correct order. \fP"
-.ti -1c
-.RI "void \fBsnmp_store\fP (const char *type)"
-.br
-.ti -1c
-.RI "void \fBsnmp_shutdown\fP (const char *type)"
-.br
-.RI "\fIShuts down the application, saving any needed persistent storage, and appropriate clean up. \fP"
-.ti -1c
-.RI "\fBnetsnmp_session\fP * \fBsnmp_open\fP (\fBnetsnmp_session\fP *session)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_session\fP * \fBsnmp_open_ex\fP (\fBnetsnmp_session\fP *session, int(*fpre_parse)(\fBnetsnmp_session\fP *, \fBnetsnmp_transport\fP *, void *, int), int(*fparse)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, u_char *, size_t), int(*fpost_parse)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, int), int(*fbuild)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, u_char *, size_t *), int(*frbuild)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, u_char **, size_t *, size_t *), int(*fcheck)(u_char *, size_t))"
-.br
-.ti -1c
-.RI "int \fBsnmpv3_probe_contextEngineID_rfc5343\fP (void *slp, \fBnetsnmp_session\fP *session)"
-.br
-.RI "\fIprobe for engineID using RFC 5343 probing mechanisms \fP"
-.ti -1c
-.RI "int \fBsnmpv3_engineID_probe\fP (struct \fBsession_list\fP *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, \fBnetsnmp_transport\fP *transport, int(*fpre_parse)(\fBnetsnmp_session\fP *, \fBnetsnmp_transport\fP *, void *, int), int(*fpost_parse)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, int))"
-.br
-.ti -1c
-.RI "\fBnetsnmp_session\fP * \fBsnmp_add_full\fP (\fBnetsnmp_session\fP *in_session, \fBnetsnmp_transport\fP *transport, int(*fpre_parse)(\fBnetsnmp_session\fP *, \fBnetsnmp_transport\fP *, void *, int), int(*fparse)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, u_char *, size_t), int(*fpost_parse)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, int), int(*fbuild)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, u_char *, size_t *), int(*frbuild)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, u_char **, size_t *, size_t *), int(*fcheck)(u_char *, size_t), \fBnetsnmp_pdu\fP *(*fcreate_pdu)(\fBnetsnmp_transport\fP *, void *, size_t))"
-.br
-.ti -1c
-.RI "void * \fBsnmp_sess_add_ex\fP (\fBnetsnmp_session\fP *in_session, \fBnetsnmp_transport\fP *transport, int(*fpre_parse)(\fBnetsnmp_session\fP *, \fBnetsnmp_transport\fP *, void *, int), int(*fparse)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, u_char *, size_t), int(*fpost_parse)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, int), int(*fbuild)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, u_char *, size_t *), int(*frbuild)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, u_char **, size_t *, size_t *), int(*fcheck)(u_char *, size_t), \fBnetsnmp_pdu\fP *(*fcreate_pdu)(\fBnetsnmp_transport\fP *, void *, size_t))"
-.br
-.ti -1c
-.RI "void * \fBsnmp_sess_add\fP (\fBnetsnmp_session\fP *in_session, \fBnetsnmp_transport\fP *transport, int(*fpre_parse)(\fBnetsnmp_session\fP *, \fBnetsnmp_transport\fP *, void *, int), int(*fpost_parse)(\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, int))"
-.br
-.ti -1c
-.RI "void * \fBsnmp_sess_open\fP (\fBnetsnmp_session\fP *pss)"
-.br
-.ti -1c
-.RI "int \fBcreate_user_from_session\fP (\fBnetsnmp_session\fP *session)"
-.br
-.ti -1c
-.RI "int \fBsnmp_sess_close\fP (void *sessp)"
-.br
-.ti -1c
-.RI "int \fBsnmp_close\fP (\fBnetsnmp_session\fP *session)"
-.br
-.ti -1c
-.RI "int \fBsnmp_close_sessions\fP (void)"
-.br
-.ti -1c
-.RI "int \fBsnmpv3_header_realloc_rbuild\fP (u_char **pkt, size_t *pkt_len, size_t *offset, \fBnetsnmp_session\fP *session, \fBnetsnmp_pdu\fP *pdu)"
-.br
-.ti -1c
-.RI "int \fBsnmpv3_scopedPDU_header_realloc_rbuild\fP (u_char **pkt, size_t *pkt_len, size_t *offset, \fBnetsnmp_pdu\fP *pdu, size_t body_len)"
-.br
-.ti -1c
-.RI "int \fBsnmpv3_packet_realloc_rbuild\fP (u_char **pkt, size_t *pkt_len, size_t *offset, \fBnetsnmp_session\fP *session, \fBnetsnmp_pdu\fP *pdu, u_char *pdu_data, size_t pdu_data_len)"
-.br
-.ti -1c
-.RI "int \fBsnmpv3_packet_build\fP (\fBnetsnmp_session\fP *session, \fBnetsnmp_pdu\fP *pdu, u_char *packet, size_t *out_length, u_char *pdu_data, size_t pdu_data_len)"
-.br
-.ti -1c
-.RI "u_char * \fBsnmp_pdu_build\fP (\fBnetsnmp_pdu\fP *pdu, u_char *cp, size_t *out_length)"
-.br
-.ti -1c
-.RI "int \fBsnmp_pdu_realloc_rbuild\fP (u_char **pkt, size_t *pkt_len, size_t *offset, \fBnetsnmp_pdu\fP *pdu)"
-.br
-.ti -1c
-.RI "int \fBsnmpv3_parse\fP (\fBnetsnmp_pdu\fP *pdu, u_char *data, size_t *length, u_char **after_header, \fBnetsnmp_session\fP *sess)"
-.br
-.ti -1c
-.RI "int \fBsnmpv3_make_report\fP (\fBnetsnmp_pdu\fP *pdu, int error)"
-.br
-.ti -1c
-.RI "int \fBsnmpv3_get_report_type\fP (\fBnetsnmp_pdu\fP *pdu)"
-.br
-.ti -1c
-.RI "int \fBsnmp_pdu_parse\fP (\fBnetsnmp_pdu\fP *pdu, u_char *data, size_t *length)"
-.br
-.ti -1c
-.RI "u_char * \fBsnmpv3_scopedPDU_parse\fP (\fBnetsnmp_pdu\fP *pdu, u_char *cp, size_t *length)"
-.br
-.ti -1c
-.RI "int \fBsnmp_send\fP (\fBnetsnmp_session\fP *session, \fBnetsnmp_pdu\fP *pdu)"
-.br
-.ti -1c
-.RI "int \fBsnmp_sess_send\fP (void *sessp, \fBnetsnmp_pdu\fP *pdu)"
-.br
-.ti -1c
-.RI "int \fBsnmp_async_send\fP (\fBnetsnmp_session\fP *session, \fBnetsnmp_pdu\fP *pdu, snmp_callback callback, void *cb_data)"
-.br
-.ti -1c
-.RI "int \fBsnmp_sess_async_send\fP (void *sessp, \fBnetsnmp_pdu\fP *pdu, snmp_callback callback, void *cb_data)"
-.br
-.ti -1c
-.RI "void \fBsnmp_free_var_internals\fP (\fBnetsnmp_variable_list\fP *var)"
-.br
-.ti -1c
-.RI "void \fBsnmp_free_var\fP (\fBnetsnmp_variable_list\fP *var)"
-.br
-.ti -1c
-.RI "void \fBsnmp_free_varbind\fP (\fBnetsnmp_variable_list\fP *var)"
-.br
-.ti -1c
-.RI "void \fBsnmp_free_pdu\fP (\fBnetsnmp_pdu\fP *pdu)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_pdu\fP * \fBsnmp_create_sess_pdu\fP (\fBnetsnmp_transport\fP *transport, void *opaque, size_t olength)"
-.br
-.ti -1c
-.RI "void \fBsnmp_read\fP (fd_set *fdset)"
-.br
-.ti -1c
-.RI "void \fBsnmp_read2\fP (\fBnetsnmp_large_fd_set\fP *fdset)"
-.br
-.ti -1c
-.RI "int \fB_sess_read\fP (void *sessp, \fBnetsnmp_large_fd_set\fP *fdset)"
-.br
-.ti -1c
-.RI "int \fBsnmp_sess_read\fP (void *sessp, fd_set *fdset)"
-.br
-.ti -1c
-.RI "int \fBsnmp_sess_read2\fP (void *sessp, \fBnetsnmp_large_fd_set\fP *fdset)"
-.br
-.ti -1c
-.RI "int \fBsnmp_select_info\fP (int *numfds, fd_set *fdset, struct timeval *timeout, int *block)"
-.br
-.ti -1c
-.RI "int \fBsnmp_select_info2\fP (int *numfds, \fBnetsnmp_large_fd_set\fP *fdset, struct timeval *timeout, int *block)"
-.br
-.ti -1c
-.RI "int \fBsnmp_sess_select_info\fP (void *sessp, int *numfds, fd_set *fdset, struct timeval *timeout, int *block)"
-.br
-.ti -1c
-.RI "int \fBsnmp_sess_select_info2\fP (void *sessp, int *numfds, \fBnetsnmp_large_fd_set\fP *fdset, struct timeval *timeout, int *block)"
-.br
-.ti -1c
-.RI "void \fBsnmp_timeout\fP (void)"
-.br
-.ti -1c
-.RI "void \fBsnmp_sess_timeout\fP (void *sessp)"
-.br
-.ti -1c
-.RI "int \fBsnmp_oid_ncompare\fP (const oid *in_name1, size_t len1, const oid *in_name2, size_t len2, size_t max_len)"
-.br
-.ti -1c
-.RI "int \fBsnmp_oid_compare\fP (const oid *in_name1, size_t len1, const oid *in_name2, size_t len2)"
-.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"
-.ti -1c
-.RI "int \fBsnmp_oidsubtree_compare\fP (const oid *in_name1, size_t len1, const oid *in_name2, size_t len2)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_oid_equals\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 exactly equal. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_oid_is_subtree\fP (const oid *in_name1, size_t len1, const oid *in_name2, size_t len2)"
-.br
-.RI "\fIIdentical to netsnmp_oid_equals, except only the length up to len1 is compared. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_oid_find_prefix\fP (const oid *in_name1, size_t len1, const oid *in_name2, size_t len2)"
-.br
-.RI "\fIGiven two OIDs, determine the common prefix to them both. \fP"
-.ti -1c
-.RI "\fBnetsnmp_variable_list\fP * \fBsnmp_pdu_add_variable\fP (\fBnetsnmp_pdu\fP *pdu, const oid *name, size_t name_length, u_char type, const void *value, size_t len)"
-.br
-.RI "\fILibrary API routines concerned with \fBvariable\fP bindings and values. \fP"
-.ti -1c
-.RI "\fBnetsnmp_variable_list\fP * \fBsnmp_varlist_add_variable\fP (\fBnetsnmp_variable_list\fP **varlist, const oid *name, size_t name_length, u_char type, const void *value, size_t len)"
-.br
-.ti -1c
-.RI "int \fBsnmp_add_var\fP (\fBnetsnmp_pdu\fP *pdu, const oid *name, size_t name_length, char type, const char *value)"
-.br
-.ti -1c
-.RI "void * \fBsnmp_sess_pointer\fP (\fBnetsnmp_session\fP *session)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_session\fP * \fBsnmp_sess_session\fP (void *sessp)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_session\fP * \fBsnmp_sess_session_lookup\fP (void *sessp)"
-.br
-.RI "\fILook up a session that already may have been closed. \fP"
-.ti -1c
-.RI "\fBnetsnmp_transport\fP * \fBsnmp_sess_transport\fP (void *sessp)"
-.br
-.ti -1c
-.RI "void \fBsnmp_sess_transport_set\fP (void *sp, \fBnetsnmp_transport\fP *t)"
-.br
-.ti -1c
-.RI "oid * \fBsnmp_duplicate_objid\fP (const oid *objToCopy, size_t objToCopyLen)"
-.br
-.ti -1c
-.RI "u_int \fBsnmp_increment_statistic\fP (int which)"
-.br
-.ti -1c
-.RI "u_int \fBsnmp_increment_statistic_by\fP (int which, int count)"
-.br
-.ti -1c
-.RI "u_int \fBsnmp_get_statistic\fP (int which)"
-.br
-.ti -1c
-.RI "void \fBsnmp_init_statistics\fP (void)"
-.br
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "struct \fBmodule_init_list\fP * \fBinitlist\fP = NULL"
-.br
-.ti -1c
-.RI "struct \fBmodule_init_list\fP * \fBnoinitlist\fP = NULL"
-.br
-.ti -1c
-.RI "\fBnetsnmp_subtree\fP * \fBsubtrees\fP"
-.br
-.ti -1c
-.RI "long \fBlong_return\fP"
-.br
-.ti -1c
-.RI "u_char \fBreturn_buf\fP [258]"
-.br
-.ti -1c
-.RI "struct timeval \fBstarttime\fP"
-.br
-.ti -1c
-.RI "int \fBcallback_master_num\fP = -1"
-.br
-.ti -1c
-.RI "oid \fBnullOid\fP [] = { 0, 0 }"
-.br
-.ti -1c
-.RI "int \fBnullOidLen\fP = sizeof(nullOid)"
-.br
-.ti -1c
-.RI "struct \fBsession_list\fP * \fBSessions\fP = NULL"
-.br
-.ti -1c
-.RI "int \fBsnmp_errno\fP = 0"
-.br
-.in -1c
-.SH "Define Documentation"
-.PP 
-.SS "#define timercmp(tvp, uvp, cmp)"\fBValue:\fP
-.PP
-.nf
-/* CSTYLED */ \
-        ((tvp)->tv_sec cmp (uvp)->tv_sec || \
-        ((tvp)->tv_sec == (uvp)->tv_sec && \
-        /* CSTYLED */ \
-        (tvp)->tv_usec cmp (uvp)->tv_usec))
-.fi
-.PP
-Definition at line 149 of file snmp_api.c.
-.SH "Function Documentation"
-.PP 
-.SS "int _sess_read (void * sessp, \fBnetsnmp_large_fd_set\fP * fdset)"
-.PP
-XXX-rks: why no SNMP_FREE(isp->packet); ??
-.PP
-XXX-rks: why no SNMP_FREE(isp->packet); ?? 
-.PP
-Definition at line 5715 of file snmp_api.c.
-.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.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIapp\fP the configuration file to be read in, gets stored in default storage
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-Returns non-zero on failure and zero on success.
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBinit_snmp\fP 
-.RE
-.PP
-
-.PP
-Definition at line 277 of file snmp_vars.c.
-.SS "void init_snmp (const char * type)"
-.PP
-Calls the functions to do config file loading and mib \fBmodule\fP parsing in the correct order. \fBParameters:\fP
-.RS 4
-\fItype\fP label for the config file 'type'
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-void
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBinit_agent\fP 
-.RE
-.PP
-
-.PP
-Definition at line 796 of file snmp_api.c.
-.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
-
-.PP
-Definition at line 6716 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 ==. 
-.PP
-\fBParameters:\fP
-.RS 4
-\fIin_name1\fP A pointer to the first oid. 
-.br
-\fIlen1\fP length of the first OID (in segments, not bytes) 
-.br
-\fIin_name2\fP A pointer to the second oid. 
-.br
-\fIlen2\fP length of the second OID (in segments, not bytes) 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-0 if they are equal, 1 if they are not. 
-.RE
-.PP
-
-.PP
-Definition at line 6797 of file snmp_api.c.
-.SS "int netsnmp_oid_find_prefix (const oid * in_name1, size_t len1, const oid * in_name2, size_t len2)"
-.PP
-Given two OIDs, determine the common prefix to them both. \fBParameters:\fP
-.RS 4
-\fIin_name1\fP A pointer to the first oid. 
-.br
-\fIlen1\fP Length of the first oid. 
-.br
-\fIin_name2\fP A pointer to the second oid. 
-.br
-\fIlen2\fP Length of the second oid. 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-length of common prefix 0 if no common prefix, -1 on error. 
-.RE
-.PP
-
-.PP
-Definition at line 6861 of file snmp_api.c.
-.SS "int netsnmp_oid_is_subtree (const oid * in_name1, size_t len1, const oid * in_name2, size_t len2)"
-.PP
-Identical to netsnmp_oid_equals, except only the length up to len1 is compared. Functionally, this determines if in_name2 is equal or a subtree of in_name1 
-.PP
-\fBParameters:\fP
-.RS 4
-\fIin_name1\fP A pointer to the first oid. 
-.br
-\fIlen1\fP length of the first OID (in segments, not bytes) 
-.br
-\fIin_name2\fP A pointer to the second oid. 
-.br
-\fIlen2\fP length of the second OID (in segments, not bytes) 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-0 if one is a common prefix of the other. 
-.RE
-.PP
-
-.PP
-Definition at line 6840 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).
-.PP
-\fBReturns:\fP
-.RS 4
--1 if name1 < name2, 0 if name1 = name2, 1 if name1 > name2 
-.RE
-.PP
-
-.PP
-Definition at line 6667 of file snmp_api.c.
-.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
-.RS 4
-\fIin_name1\fP A pointer to the first oid. 
-.br
-\fIlen1\fP length of the first OID (in segments, not bytes) 
-.br
-\fIin_name2\fP A pointer to the second oid. 
-.br
-\fIlen2\fP length of the second OID (in segments, not bytes) 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-0 if they are equal, 1 if in_name1 is > in_name2, or -1 if <. 
-.RE
-.PP
-
-.PP
-Definition at line 6769 of file snmp_api.c.
-.SS "\fBnetsnmp_variable_list\fP* snmp_pdu_add_variable (\fBnetsnmp_pdu\fP * pdu, const oid * name, size_t name_length, u_char type, const void * value, size_t len)"
-.PP
-Library API routines concerned with \fBvariable\fP bindings and values. 
-.PP
-Definition at line 6932 of file snmp_api.c.
-.SS "void snmp_sess_init (\fBnetsnmp_session\fP * session)"
-.PP
-Library API routines concerned with specifying and using SNMP 'sessions' including sending and receiving requests. 
-.PP
-Definition at line 718 of file snmp_api.c.
-.SS "\fBnetsnmp_session\fP* snmp_sess_session_lookup (void * sessp)"
-.PP
-Look up a session that already may have been closed. \fBParameters:\fP
-.RS 4
-\fIsessp\fP Opaque pointer, returned by snmp_sess_open.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-Pointer to session upon success or NULL upon failure.
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-snmp_sess_session() 
-.RE
-.PP
-
-.PP
-Definition at line 7525 of file snmp_api.c.
-.SS "void snmp_shutdown (const char * type)"
-.PP
-Shuts down the application, saving any needed persistent storage, and appropriate clean up. \fBParameters:\fP
-.RS 4
-\fItype\fP Label for the config file 'type' used
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-void 
-.RE
-.PP
-
-.PP
-Definition at line 862 of file snmp_api.c.
-.SS "int snmpv3_engineID_probe (struct \fBsession_list\fP * 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
-
-.PP
-Definition at line 1377 of file snmp_api.c.
-.SS "int snmpv3_probe_contextEngineID_rfc5343 (void * slp, \fBnetsnmp_session\fP * session)"
-.PP
-probe for engineID using RFC 5343 probing mechanisms Designed to be a callback for within a security model's probe_engineid hook. Since it's likely multiple security models won't have engineIDs to probe for then this function is a callback likely to be used by multiple future security models. E.G. both SSH and DTLS. 
-.PP
-Definition at line 1279 of file snmp_api.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/mib_api.3.def b/man/netsnmp_mib_api.3.def
similarity index 85%
rename from man/mib_api.3.def
rename to man/netsnmp_mib_api.3.def
index b05ed94..cc0d0cb 100644
--- a/man/mib_api.3.def
+++ b/man/netsnmp_mib_api.3.def
@@ -1,28 +1,43 @@
-.TH MIB_API 3 "22 Apr 2009" VVERSIONINFO "Net-SNMP"
+.TH NETSNMP_MIB_API 3 "13 Aug 2010" VVERSIONINFO "Net-SNMP"
 .SH NAME
-init_mib, add_mibdir, init_mib_internals,
+add_mibdir,
+netsnmp_init_mib,
 shutdown_mib,
-netsnmp_read_module, read_mib, read_all_mibs,
+netsnmp_read_module,
+read_mib,
+read_all_mibs,
 add_module_replacement,
-read_objid, snmp_parse_oid, get_module_node,
-snmp_set_mib_errors, snmp_set_mib_warnings, snmp_set_save_descriptions,
+snmp_set_mib_errors,
+snmp_set_mib_warnings,
+snmp_set_save_descriptions,
+read_objid,
+snmp_parse_oid,
+get_module_node,
 print_mib,
-print_objid, fprint_objid, snprint_objid,
-print_description, fprint_description, snprint_description - mib_api functions
+print_objid,
+fprint_objid,
+snprint_objid,
+print_description,
+fprint_description,
+snprint_description - netsnmp_mib_api functions
 .SH SYNOPSIS
 .B #include <net-snmp/mib_api.h>
 .PP
-.B "void init_mib(void);
-.PP
+.SS Initialisation and Shutdown
 .BI "int add_mibdir(const char *" "dirname" );
-.br
-.B "void init_mib_internals(void);
 .PP
+.B "void netsnmp_init_mib(void);
+.\".br
+.\".BI "void init_mib(void);"  "                (deprecated)"
+.\".br
+.\".BI "void init_mib_internals(void);"  "        (deprecated)"
+.br
 .B "void shutdown_mib(void);
 .SS Reading and Parsing MIBs
-.PP
 .BI "struct tree *netsnmp_read_module(const char *" "name" );
 .br
+.\".BI "struct tree *read_module(const char *" "name" ");"  "        (deprecated)"
+.\".PP
 .BI "struct tree *read_mib(const char *" "filename" );
 .br
 .B "struct tree *read_all_mibs(void);
@@ -35,7 +50,7 @@
 .PP
 .BI "void snmp_set_mib_warnings(int " level );
 .br
-.BI "void snmp_set_mib_errors(  int " level );
+.BI "void snmp_set_mib_errors(int " level );
 .br
 .BI "void snmp_set_save_descriptions(int " save ");"
 .SS Searching the MIB Tree
@@ -91,25 +106,28 @@
 .BR netsnmp_read_module .
 This function returns a count of files found in the directory, or a -1
 if there is an error.  
+It should be called \fIbefore\fP invoking \fBnetsnmp_init_mib\fP.
 .PP
-.B init_mib_internals
-sets up the internal structures, preparatory to reading in MIB
-modules.  It should be called \fIafter\fP all calls to
-.BR add_mibdir ,
-and before any calls to
-.BR netsnmp_read_module .
-.PP
-.B init_mib
-is a convenience function that configures the MIB directory search path (using
+.\".B init_mib_internals
+.\"sets up the internal structures, preparatory to reading in MIB
+.\"modules.  It should be called \fIafter\fP all calls to
+.\".BR add_mibdir ,
+.\"and before any calls to
+.\".BR netsnmp_read_module .
+.\".PP
+.B netsnmp_init_mib
+configures the MIB directory search path (using
 .B add_mibdir
-), set up the internal MIB framework (using
-.B init_mib_internals
-), and then loads the appropriate MIB modules (using
+), sets up the internal MIB framework,
+and then loads the appropriate MIB modules (using
 .BR netsnmp_read_module " and " read_mib ")."
 See the ENVIRONMENTAL VARIABLES section for details.
 .br
 It should be called before any other
-routine that manipulates or accesses the MIB tree.
+routine that manipulates or accesses the MIB tree
+(but after any additional
+.B add_mibdir
+calls).
 .PP
 .B shutdown_mib
 will clear the information that was gathered by 
@@ -288,5 +306,4 @@
 .B init_mib
 only.
 .SH "SEE ALSO"
-.BR snmp_api "(3),"
-.BR output_api "(3)"
+netsnmp_session_api(3), netsnmp_pdu_api(3), netsnmp_varbind_api(3)
diff --git a/man/netsnmp_mib_handler_methods.3 b/man/netsnmp_mib_handler_methods.3
deleted file mode 100644
index 24d7dcc..0000000
--- a/man/netsnmp_mib_handler_methods.3
+++ /dev/null
@@ -1,19 +0,0 @@
-.TH "mib_handler_methods" 3 "23 Dec 2001" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-mib_handler_methods \- Defines the subhandlers to be called by the multiplexer helper. 
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <multiplexer.h>\fP
-.PP
-.SH "DETAILED DESCRIPTION"
-.PP 
-Defines the subhandlers to be called by the multiplexer helper.
-.PP
-
-
-.SH "AUTHOR"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
\ No newline at end of file
diff --git a/man/netsnmp_mib_maintenance.3 b/man/netsnmp_mib_maintenance.3
deleted file mode 100644
index f408806..0000000
--- a/man/netsnmp_mib_maintenance.3
+++ /dev/null
@@ -1,85 +0,0 @@
-.TH "mib_maintenance" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-mib_maintenance \- 
-.PP
-Routines for maintaining a MIB table.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_generic_get_handler\fP (void)"
-.br
-.RI "\fICreate a MIB handler structure. \fP"
-.ti -1c
-.RI "\fBnetsnmp_generic_free_handler\fP (\fBnetsnmp_mib_handler\fP *handler)"
-.br
-.RI "\fIFree a MIB handler structure, releasing any related resources. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_generic_register\fP (\fBnetsnmp_handler_registration\fP *reginfo, void *table, \fBnetsnmp_table_registration_info\fP *table_info)"
-.br
-.RI "\fIRegister a MIB table with the SNMP agent. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_generic_unregister\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIUnregister a MIB table from the SNMP agent. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_generic_extract_table\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIExtract the table relating to a requested varbind. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_generic_extract_row\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIExtract the row relating to a requested varbind. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_generic_insert_row\fP (\fBnetsnmp_request_info\fP *request, void *row)"
-.br
-.RI "\fIAssociate a (new) row with the requested varbind. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Routines for maintaining a MIB table. 
-.SH "Function Documentation"
-.PP 
-.SS "void netsnmp_generic_extract_row (\fBnetsnmp_request_info\fP * request)"
-.PP
-Extract the row relating to a requested varbind. 
-.PP
-Definition at line 195 of file table_generic.c.
-.SS "void netsnmp_generic_extract_table (\fBnetsnmp_request_info\fP * request)"
-.PP
-Extract the table relating to a requested varbind. 
-.PP
-Definition at line 189 of file table_generic.c.
-.SS "netsnmp_generic_free_handler (\fBnetsnmp_mib_handler\fP * handler)"
-.PP
-Free a MIB handler structure, releasing any related resources. Possibly called automatically by 'netsnmp_unregister_handler' ? 
-.PP
-Definition at line 165 of file table_generic.c.
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_generic_get_handler (void)"
-.PP
-Create a MIB handler structure. This will typically be invoked within the corresponding 'netsnmp_generic_register' routine (or the registration code of a sub-helper based on this helper).
-.PP
-Alternatively, it might be called from the initialisation code of a particular MIB table implementation. 
-.PP
-Definition at line 158 of file table_generic.c.
-.SS "void netsnmp_generic_insert_row (\fBnetsnmp_request_info\fP * request, void * row)"
-.PP
-Associate a (new) row with the requested varbind. The row should also be associated with any other varbinds that refer to the same index values. 
-.PP
-Definition at line 203 of file table_generic.c.
-.SS "int netsnmp_generic_register (\fBnetsnmp_handler_registration\fP * reginfo, void * table, \fBnetsnmp_table_registration_info\fP * table_info)"
-.PP
-Register a MIB table with the SNMP agent. 
-.PP
-Definition at line 172 of file table_generic.c.
-.SS "int netsnmp_generic_unregister (\fBnetsnmp_handler_registration\fP * reginfo)"
-.PP
-Unregister a MIB table from the SNMP agent. This should also release the internal representation of the table. ?? Is a table-specific version of this needed, or would 'netsnmp_unregister_handler' + 'netsnmp_generic_free_handler' do? 
-.PP
-Definition at line 183 of file table_generic.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_mib_utilities.3 b/man/netsnmp_mib_utilities.3
deleted file mode 100644
index 542d381..0000000
--- a/man/netsnmp_mib_utilities.3
+++ /dev/null
@@ -1,1300 +0,0 @@
-.TH "mib parsing and datatype manipulation routines." 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-mib parsing and datatype manipulation routines. \- 
-.SS "Data Structures"
-
-.in +1c
-.ti -1c
-.RI "struct \fB_PrefixList\fP"
-.br
-.ti -1c
-.RI "struct \fBparse_hints\fP"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef struct \fB_PrefixList\fP * \fBPrefixListPtr\fP"
-.br
-.ti -1c
-.RI "typedef struct \fB_PrefixList\fP \fBPrefixList\fP"
-.br
-.in -1c
-.SS "Enumerations"
-
-.in +1c
-.ti -1c
-.RI "enum \fBinet_address_type\fP { \fBIPV4\fP =  1, \fBIPV6\fP =  2, \fBIPV4Z\fP =  3, \fBIPV6Z\fP =  4, \fBDNS\fP =  16 }"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "int \fB_sprint_hexstring_line\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const u_char *cp, size_t line_len)"
-.br
-.RI "\fIPrints a hexadecimal string into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_hexstring\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const u_char *cp, size_t len)"
-.br
-.ti -1c
-.RI "int \fBsprint_realloc_asciistring\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const u_char *cp, size_t len)"
-.br
-.RI "\fIPrints an ascii string into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_octet_string\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIPrints an octet string into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_counter64\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIPrints a counter into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_opaque\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIPrints an object identifier into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_object_identifier\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIPrints an object identifier into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_timeticks\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIPrints a timetick \fBvariable\fP into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_hinted_integer\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, long val, const char decimaltype, const char *hint, const char *units)"
-.br
-.RI "\fIPrints an integer according to the hint into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_integer\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIPrints an integer into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_uinteger\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIPrints an unsigned integer into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_gauge\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIPrints a gauge value into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_counter\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIPrints a counter value into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_networkaddress\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIPrints a network address into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_ipaddress\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIPrints an ip-address into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_null\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIPrints a null value into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_bitstring\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIPrints a bit string into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_nsapaddress\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsprint_realloc_badtype\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIFallback routine for a bad type, prints 'Variable has bad type' into a buffer. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_by_type\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.RI "\fIUniversal print routine, prints a \fBvariable\fP into a buffer according to the \fBvariable\fP type. \fP"
-.ti -1c
-.RI "struct \fBtree\fP * \fBget_tree_head\fP (void)"
-.br
-.RI "\fIRetrieves the \fBtree\fP head. \fP"
-.ti -1c
-.RI "char * \fBsnmp_out_toggle_options\fP (char *options)"
-.br
-.ti -1c
-.RI "void \fBsnmp_out_toggle_options_usage\fP (const char *lead, FILE *outf)"
-.br
-.ti -1c
-.RI "char * \fBsnmp_in_options\fP (char *optarg, int argc, char *const *argv)"
-.br
-.ti -1c
-.RI "char * \fBsnmp_in_toggle_options\fP (char *options)"
-.br
-.ti -1c
-.RI "void \fBsnmp_in_toggle_options_usage\fP (const char *lead, FILE *outf)"
-.br
-.RI "\fIPrints out a help usage for the in* toggle options. \fP"
-.ti -1c
-.RI "void \fBregister_mib_handlers\fP (void)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_set_mib_directory\fP (const char *dir)"
-.br
-.ti -1c
-.RI "char * \fBnetsnmp_get_mib_directory\fP (void)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_fixup_mib_directory\fP (void)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_init_mib\fP (void)"
-.br
-.RI "\fIInitialises the mib reader. \fP"
-.ti -1c
-.RI "void \fBinit_mib\fP (void)"
-.br
-.ti -1c
-.RI "int \fB_mibindex_add\fP (const char *dirname, int i)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_mibindex_load\fP (void)"
-.br
-.ti -1c
-.RI "char * \fBnetsnmp_mibindex_lookup\fP (const char *dirname)"
-.br
-.ti -1c
-.RI "FILE * \fBnetsnmp_mibindex_new\fP (const char *dirname)"
-.br
-.ti -1c
-.RI "void \fBshutdown_mib\fP (void)"
-.br
-.RI "\fIUnloads all mibs. \fP"
-.ti -1c
-.RI "void \fBprint_mib\fP (FILE *fp)"
-.br
-.RI "\fIPrints the MIBs to the file fp. \fP"
-.ti -1c
-.RI "void \fBprint_ascii_dump\fP (FILE *fp)"
-.br
-.ti -1c
-.RI "void \fBset_function\fP (struct \fBtree\fP *subtree)"
-.br
-.RI "\fISet's the printing function printomat in a subtree according it's type. \fP"
-.ti -1c
-.RI "int \fBread_objid\fP (const char *input, oid *output, size_t *out_len)"
-.br
-.RI "\fIReads an object identifier from an input string into internal OID form. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_sprint_realloc_objid\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, int *buf_overflow, const oid *objid, size_t objidlen)"
-.br
-.ti -1c
-.RI "struct \fBtree\fP * \fBnetsnmp_sprint_realloc_objid_tree\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, int *buf_overflow, const oid *objid, size_t objidlen)"
-.br
-.ti -1c
-.RI "int \fBsprint_realloc_objid\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const oid *objid, size_t objidlen)"
-.br
-.ti -1c
-.RI "int \fBsnprint_objid\fP (char *buf, size_t buf_len, const oid *objid, size_t objidlen)"
-.br
-.ti -1c
-.RI "void \fBprint_objid\fP (const oid *objid, size_t objidlen)"
-.br
-.RI "\fIPrints an oid to stdout. \fP"
-.ti -1c
-.RI "void \fBfprint_objid\fP (FILE *f, const oid *objid, size_t objidlen)"
-.br
-.RI "\fIPrints an oid to a file descriptor. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_variable\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const oid *objid, size_t objidlen, const \fBnetsnmp_variable_list\fP *\fBvariable\fP)"
-.br
-.ti -1c
-.RI "int \fBsnprint_variable\fP (char *buf, size_t buf_len, const oid *objid, size_t objidlen, const \fBnetsnmp_variable_list\fP *\fBvariable\fP)"
-.br
-.ti -1c
-.RI "void \fBprint_variable\fP (const oid *objid, size_t objidlen, const \fBnetsnmp_variable_list\fP *\fBvariable\fP)"
-.br
-.RI "\fIPrints a \fBvariable\fP to stdout. \fP"
-.ti -1c
-.RI "void \fBfprint_variable\fP (FILE *f, const oid *objid, size_t objidlen, const \fBnetsnmp_variable_list\fP *\fBvariable\fP)"
-.br
-.RI "\fIPrints a \fBvariable\fP to a file descriptor. \fP"
-.ti -1c
-.RI "int \fBsprint_realloc_value\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const oid *objid, size_t objidlen, const \fBnetsnmp_variable_list\fP *\fBvariable\fP)"
-.br
-.ti -1c
-.RI "int \fBsnprint_value\fP (char *buf, size_t buf_len, const oid *objid, size_t objidlen, const \fBnetsnmp_variable_list\fP *\fBvariable\fP)"
-.br
-.ti -1c
-.RI "void \fBprint_value\fP (const oid *objid, size_t objidlen, const \fBnetsnmp_variable_list\fP *\fBvariable\fP)"
-.br
-.ti -1c
-.RI "void \fBfprint_value\fP (FILE *f, const oid *objid, size_t objidlen, const \fBnetsnmp_variable_list\fP *\fBvariable\fP)"
-.br
-.ti -1c
-.RI "int \fBbuild_oid_segment\fP (\fBnetsnmp_variable_list\fP *var)"
-.br
-.RI "\fITakes the value in VAR and turns it into an OID segment in var->name. \fP"
-.ti -1c
-.RI "int \fBbuild_oid_noalloc\fP (oid *in, size_t in_len, size_t *out_len, oid *prefix, size_t prefix_len, \fBnetsnmp_variable_list\fP *indexes)"
-.br
-.ti -1c
-.RI "int \fBbuild_oid\fP (oid **out, size_t *out_len, oid *prefix, size_t prefix_len, \fBnetsnmp_variable_list\fP *indexes)"
-.br
-.ti -1c
-.RI "int \fBparse_oid_indexes\fP (oid *oidIndex, size_t oidLen, \fBnetsnmp_variable_list\fP *data)"
-.br
-.ti -1c
-.RI "int \fBparse_one_oid_index\fP (oid **oidStart, size_t *oidLen, \fBnetsnmp_variable_list\fP *data, int complete)"
-.br
-.ti -1c
-.RI "int \fBdump_realloc_oid_to_inetaddress\fP (const int addr_type, const oid *objid, size_t objidlen, u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, char quotechar)"
-.br
-.ti -1c
-.RI "int \fBdump_realloc_oid_to_string\fP (const oid *objid, size_t objidlen, u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, char quotechar)"
-.br
-.ti -1c
-.RI "struct \fBtree\fP * \fBget_tree\fP (const oid *objid, size_t objidlen, struct \fBtree\fP *subtree)"
-.br
-.ti -1c
-.RI "void \fBprint_description\fP (oid *objid, size_t objidlen, int width)"
-.br
-.RI "\fIPrints on oid description on stdout. \fP"
-.ti -1c
-.RI "void \fBfprint_description\fP (FILE *f, oid *objid, size_t objidlen, int width)"
-.br
-.RI "\fIPrints on oid description into a file descriptor. \fP"
-.ti -1c
-.RI "int \fBsnprint_description\fP (char *buf, size_t buf_len, oid *objid, size_t objidlen, int width)"
-.br
-.ti -1c
-.RI "int \fBsprint_realloc_description\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, oid *objid, size_t objidlen, int width)"
-.br
-.ti -1c
-.RI "int \fBget_module_node\fP (const char *fname, const char *\fBmodule\fP, oid *objid, size_t *objidlen)"
-.br
-.ti -1c
-.RI "int \fBget_wild_node\fP (const char *name, oid *objid, size_t *objidlen)"
-.br
-.ti -1c
-.RI "int \fBget_node\fP (const char *name, oid *objid, size_t *objidlen)"
-.br
-.ti -1c
-.RI "void \fBclear_tree_flags\fP (register struct \fBtree\fP *tp)"
-.br
-.ti -1c
-.RI "void \fBprint_oid_report\fP (FILE *fp)"
-.br
-.ti -1c
-.RI "void \fBprint_oid_report_enable_labeledoid\fP (void)"
-.br
-.ti -1c
-.RI "void \fBprint_oid_report_enable_oid\fP (void)"
-.br
-.ti -1c
-.RI "void \fBprint_oid_report_enable_suffix\fP (void)"
-.br
-.ti -1c
-.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"
-.ti -1c
-.RI "const char * \fBparse_octet_hint\fP (const char *hint, const char *value, unsigned char **new_val, int *new_val_len)"
-.br
-.ti -1c
-.RI "u_char \fBmib_to_asn_type\fP (int mib_type)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_str2oid\fP (const char *S, oid *O, int L)"
-.br
-.RI "\fIConverts a string to its OID form. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_oid2chars\fP (char *C, int L, const oid *O)"
-.br
-.RI "\fIConverts an OID to its character form. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_oid2str\fP (char *S, int L, oid *O)"
-.br
-.RI "\fIConverts an OID to its string form. \fP"
-.ti -1c
-.RI "int \fBsnprint_by_type\fP (char *buf, size_t buf_len, \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_hexstring\fP (char *buf, size_t buf_len, const u_char *cp, size_t len)"
-.br
-.ti -1c
-.RI "int \fBsnprint_asciistring\fP (char *buf, size_t buf_len, const u_char *cp, size_t len)"
-.br
-.ti -1c
-.RI "int \fBsnprint_octet_string\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_opaque\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_object_identifier\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_timeticks\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_hinted_integer\fP (char *buf, size_t buf_len, long val, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_integer\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_uinteger\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_gauge\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_counter\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_networkaddress\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_ipaddress\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_null\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_bitstring\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_nsapaddress\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_counter64\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.ti -1c
-.RI "int \fBsnprint_badtype\fP (char *buf, size_t buf_len, const \fBnetsnmp_variable_list\fP *var, const struct \fBenum_list\fP *enums, const char *hint, const char *units)"
-.br
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "struct \fBtree\fP * \fBtree_head\fP"
-.br
-.ti -1c
-.RI "struct \fBtree\fP * \fBMib\fP"
-.br
-.ti -1c
-.RI "oid \fBRFC1213_MIB\fP [] = { 1, 3, 6, 1, 2, 1 }"
-.br
-.ti -1c
-.RI "\fBPrefixList\fP \fBmib_prefixes\fP []"
-.br
-.ti -1c
-.RI "char ** \fB_mibindexes\fP = NULL"
-.br
-.in -1c
-.SH "Function Documentation"
-.PP 
-.SS "int _sprint_hexstring_line (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const u_char * cp, size_t line_len)"
-.PP
-Prints a hexadecimal string into a buffer. The characters pointed by *cp are encoded as hexadecimal string.
-.PP
-If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP address of the buffer to print to. 
-.br
-\fIbuf_len\fP address to an integer containing the size of buf. 
-.br
-\fIout_len\fP incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIcp\fP the array of characters to encode. 
-.br
-\fIline_len\fP the array length of cp.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 292 of file mib.c.
-.SS "int build_oid (oid ** out, size_t * out_len, oid * prefix, size_t prefix_len, \fBnetsnmp_variable_list\fP * indexes)"
-.PP
-xxx-rks: should free previous value? 
-.PP
-Definition at line 3731 of file mib.c.
-.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
-.RS 4
-\fIvar\fP The \fBvariable\fP.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-SNMPERR_SUCCESS or SNMPERR_GENERR 
-.RE
-.PP
-
-.PP
-Definition at line 3597 of file mib.c.
-.SS "void fprint_description (FILE * f, oid * objid, size_t objidlen, int width)"
-.PP
-Prints on oid description into a file descriptor. \fBParameters:\fP
-.RS 4
-\fIf\fP The file descriptor to print to. 
-.br
-\fIobjid\fP The object identifier. 
-.br
-\fIobjidlen\fP The object id length. 
-.br
-\fIwidth\fP Number of subidentifiers. 
-.RE
-.PP
-
-.PP
-Definition at line 4601 of file mib.c.
-.SS "void fprint_objid (FILE * f, const oid * objid, size_t objidlen)"
-.PP
-Prints an oid to a file descriptor. \fBParameters:\fP
-.RS 4
-\fIf\fP The file descriptor to print to. 
-.br
-\fIobjid\fP The oid to print 
-.br
-\fIobjidlen\fP The length of oidid. 
-.RE
-.PP
-
-.PP
-Definition at line 3320 of file mib.c.
-.SS "void fprint_variable (FILE * f, const oid * objid, size_t objidlen, const \fBnetsnmp_variable_list\fP * variable)"
-.PP
-Prints a \fBvariable\fP to a file descriptor. \fBParameters:\fP
-.RS 4
-\fIf\fP The file descriptor to print to. 
-.br
-\fIobjid\fP The object id. 
-.br
-\fIobjidlen\fP The length of teh object id. 
-.br
-\fI\fBvariable\fP\fP The \fBvariable\fP to print. 
-.RE
-.PP
-
-.PP
-Definition at line 3474 of file mib.c.
-.SS "struct \fBtree\fP* get_tree_head (void)\fC [read]\fP"
-.PP
-Retrieves the \fBtree\fP head. \fBReturns:\fP
-.RS 4
-the \fBtree\fP head. 
-.RE
-.PP
-
-.PP
-Definition at line 2031 of file mib.c.
-.SS "int get_wild_node (const char * name, oid * objid, size_t * objidlen)"\fBSee also:\fP
-.RS 4
-comments on find_best_tree_node for usage after first time. 
-.RE
-.PP
-
-.PP
-Definition at line 5639 of file mib.c.
-.SS "void netsnmp_fixup_mib_directory (void)"
-.PP
-swap in the new value and repeat 
-.PP
-Definition at line 2496 of file mib.c.
-.SS "char* netsnmp_get_mib_directory (void)"
-.PP
-Check if the environment \fBvariable\fP is set
-.PP
-Not set use hard coded path 
-.PP
-Definition at line 2449 of file mib.c.
-.SS "void netsnmp_init_mib (void)"
-.PP
-Initialises the mib reader. Library API routines concerned with MIB files and objects, and OIDs.
-.PP
-Reads in all settings from the environment. 
-.PP
-Definition at line 2543 of file mib.c.
-.SS "int netsnmp_oid2chars (char * C, int L, const oid * O)"
-.PP
-Converts an OID to its character form. in example 5 . 1 . 2 . 3 . 4 . 5 = 12345
-.PP
-\fBParameters:\fP
-.RS 4
-\fIC\fP The character buffer. 
-.br
-\fIL\fP The length of the buffer. 
-.br
-\fIO\fP The oid.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-0 on Sucess, 1 on failure. 
-.RE
-.PP
-
-.PP
-length 
-.PP
-Definition at line 6425 of file mib.c.
-.SS "int netsnmp_oid2str (char * S, int L, oid * O)"
-.PP
-Converts an OID to its string form. in example 5 . 'h' . 'e' . 'l' . 'l' . 'o' = 'hello\\0' (null terminated)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIS\fP The character string buffer. 
-.br
-\fIL\fP The length of the string buffer. 
-.br
-\fIO\fP The oid.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-0 on Sucess, 1 on failure. 
-.RE
-.PP
-
-.PP
-Definition at line 6453 of file mib.c.
-.SS "void netsnmp_set_mib_directory (const char * dir)"
-.PP
-New dir starts with '+', thus we add it.
-.PP
-If dir starts with '+' skip '+' it.
-.PP
-set_string calls strdup, so if we allocated memory, free it 
-.PP
-Definition at line 2394 of file mib.c.
-.SS "int netsnmp_str2oid (const char * S, oid * O, int L)"
-.PP
-Converts a string to its OID form. in example 'hello' = 5 . 'h' . 'e' . 'l' . 'l' . 'o'
-.PP
-\fBParameters:\fP
-.RS 4
-\fIS\fP The string. 
-.br
-\fIO\fP The oid. 
-.br
-\fIL\fP The length of the oid.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-0 on Sucess, 1 on failure. 
-.RE
-.PP
-
-.PP
-Definition at line 6390 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
-.RS 4
-\fBfprint_description\fP 
-.RE
-.PP
-
-.PP
-Definition at line 4585 of file mib.c.
-.SS "void print_mib (FILE * fp)"
-.PP
-Prints the MIBs to the file fp. \fBParameters:\fP
-.RS 4
-\fIfp\fP The file descriptor to print to. 
-.RE
-.PP
-
-.PP
-Definition at line 2901 of file mib.c.
-.SS "void print_objid (const oid * objid, size_t objidlen)"
-.PP
-Prints an oid to stdout. \fBParameters:\fP
-.RS 4
-\fIobjid\fP The oid to print 
-.br
-\fIobjidlen\fP The length of oidid. 
-.RE
-.PP
-
-.PP
-Definition at line 3306 of file mib.c.
-.SS "void print_variable (const oid * objid, size_t objidlen, const \fBnetsnmp_variable_list\fP * variable)"
-.PP
-Prints a \fBvariable\fP to stdout. \fBParameters:\fP
-.RS 4
-\fIobjid\fP The object id. 
-.br
-\fIobjidlen\fP The length of teh object id. 
-.br
-\fI\fBvariable\fP\fP The \fBvariable\fP to print. 
-.RE
-.PP
-
-.PP
-Definition at line 3458 of file mib.c.
-.SS "int read_objid (const char * input, oid * output, size_t * out_len)"
-.PP
-Reads an object identifier from an input string into internal OID form. When called, out_len must hold the maximum length of the output array.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIinput\fP the input string. 
-.br
-\fIoutput\fP the oid wirte. 
-.br
-\fIout_len\fP number of subid's in output.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-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. 
-.PP
-Definition at line 2999 of file mib.c.
-.SS "void set_function (struct \fBtree\fP * subtree)"
-.PP
-Set's the printing function printomat in a subtree according it's type. \fBParameters:\fP
-.RS 4
-\fIsubtree\fP The subtree to set. 
-.RE
-.PP
-
-.PP
-Definition at line 2922 of file mib.c.
-.SS "void shutdown_mib (void)"
-.PP
-Unloads all mibs. 
-.PP
-Definition at line 2867 of file mib.c.
-.SS "void snmp_in_toggle_options_usage (const char * lead, FILE * outf)"
-.PP
-Prints out a help usage for the in* toggle options. \fBParameters:\fP
-.RS 4
-\fIlead\fP The lead to print for every line. 
-.br
-\fIoutf\fP The file descriptor to write to. 
-.RE
-.PP
-
-.PP
-Definition at line 2304 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.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIargv\fP The OID to string parse 
-.br
-\fIroot\fP An OID array where the results are stored. 
-.br
-\fIrootlen\fP The max length of the array going in and the data length coming out.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-The root oid pointer if successful, or NULL otherwise. 
-.RE
-.PP
-
-.PP
-Definition at line 5996 of file mib.c.
-.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)"
-.PP
-Prints an ascii string into a buffer. The characters pointed by *cp are encoded as an ascii string.
-.PP
-If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP address of the buffer to print to. 
-.br
-\fIbuf_len\fP address to an integer containing the size of buf. 
-.br
-\fIout_len\fP incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIcp\fP the array of characters to encode. 
-.br
-\fIlen\fP the array length of cp.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 388 of file mib.c.
-.SS "int sprint_realloc_badtype (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Fallback routine for a bad type, prints 'Variable has bad type' into a buffer. If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 1916 of file mib.c.
-.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 \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Prints a bit string into a buffer. If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 1777 of file mib.c.
-.SS "int sprint_realloc_by_type (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Universal print routine, prints a \fBvariable\fP into a buffer according to the \fBvariable\fP type. If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 1951 of file mib.c.
-.SS "int sprint_realloc_counter (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Prints a counter value into a buffer. If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 1544 of file mib.c.
-.SS "int sprint_realloc_counter64 (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Prints a counter into a buffer. The \fBvariable\fP var is encoded as a counter value.
-.PP
-If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 860 of file mib.c.
-.SS "int sprint_realloc_gauge (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Prints a gauge value into a buffer. If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 1471 of file mib.c.
-.SS "int sprint_realloc_hinted_integer (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, long val, const char decimaltype, const char * hint, const char * units)"
-.PP
-Prints an integer according to the hint into a buffer. If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIval\fP The \fBvariable\fP to encode. 
-.br
-\fIdecimaltype\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may _NOT_ be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 1197 of file mib.c.
-.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 \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Prints an integer into a buffer. If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 1271 of file mib.c.
-.SS "int sprint_realloc_ipaddress (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Prints an ip-address into a buffer. If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 1673 of file mib.c.
-.SS "int sprint_realloc_networkaddress (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Prints a network address into a buffer. If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 1607 of file mib.c.
-.SS "int sprint_realloc_null (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Prints a null value into a buffer. If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 1733 of file mib.c.
-.SS "int sprint_realloc_object_identifier (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Prints an object identifier into a buffer. If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 1053 of file mib.c.
-.SS "int sprint_realloc_octet_string (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Prints an octet string into a buffer. The \fBvariable\fP var is encoded as octet string.
-.PP
-If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 448 of file mib.c.
-.SS "int sprint_realloc_opaque (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Prints an object identifier into a buffer. If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 963 of file mib.c.
-.SS "int sprint_realloc_timeticks (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Prints a timetick \fBvariable\fP into a buffer. If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 1123 of file mib.c.
-.SS "int sprint_realloc_uinteger (u_char ** buf, size_t * buf_len, size_t * out_len, int allow_realloc, const \fBnetsnmp_variable_list\fP * var, const struct \fBenum_list\fP * enums, const char * hint, const char * units)"
-.PP
-Prints an unsigned integer into a buffer. If allow_realloc is true the buffer will be (re)allocated to fit in the needed size. (Note: *buf may change due to this.)
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP Address of the buffer to print to. 
-.br
-\fIbuf_len\fP Address to an integer containing the size of buf. 
-.br
-\fIout_len\fP Incremented by the number of characters printed. 
-.br
-\fIallow_realloc\fP if not zero reallocate the buffer to fit the needed size. 
-.br
-\fIvar\fP The \fBvariable\fP to encode. 
-.br
-\fIenums\fP The enumeration ff this \fBvariable\fP is enumerated. may be NULL. 
-.br
-\fIhint\fP Contents of the DISPLAY-HINT clause of the MIB. See RFC 1903 Section 3.1 for details. may be NULL. 
-.br
-\fIunits\fP Contents of the UNITS clause of the MIB. may be NULL.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-1 on success, or 0 on failure (out of memory, or buffer to small when not allowed to realloc.) 
-.RE
-.PP
-
-.PP
-Definition at line 1374 of file mib.c.
-.SS "char* uptime_string (u_long timeticks, char * buf)"
-.PP
-Converts timeticks to hours, minutes, seconds string. CMU compatible does not show centiseconds.
-.PP
-\fBParameters:\fP
-.RS 4
-\fItimeticks\fP The timeticks to convert. 
-.br
-\fIbuf\fP Buffer to write to, has to be at least 40 Bytes large.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-The buffer
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-uptimeString 
-.RE
-.PP
-
-.PP
-Definition at line 5961 of file mib.c.
-.SH "Variable Documentation"
-.PP 
-.SS "\fBPrefixList\fP mib_prefixes[]"\fBInitial value:\fP
-.PP
-.nf
- {
-    {&Standard_Prefix[0]},      
-    {'.iso.org.dod.internet.mgmt.mib-2'},
-    {'.iso.org.dod.internet.experimental'},
-    {'.iso.org.dod.internet.private'},
-    {'.iso.org.dod.internet.snmpParties'},
-    {'.iso.org.dod.internet.snmpSecrets'},
-    {NULL, 0}                   
-}
-.fi
-.PP
-Definition at line 181 of file mib.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_mode_end_call.3 b/man/netsnmp_mode_end_call.3
deleted file mode 100644
index d366921..0000000
--- a/man/netsnmp_mode_end_call.3
+++ /dev/null
@@ -1,69 +0,0 @@
-.TH "mode_end_call" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-mode_end_call \- 
-.PP
-At the end of a series of requests, call another handler hook.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_mode_end_call_handler\fP (\fBnetsnmp_mode_handler_list\fP *endlist)"
-.br
-.RI "\fIreturns a mode_end_call handler that can be injected into a given handler chain. \fP"
-.ti -1c
-.RI "\fBnetsnmp_mode_handler_list\fP * \fBnetsnmp_mode_end_call_add_mode_callback\fP (\fBnetsnmp_mode_handler_list\fP *endlist, int mode, \fBnetsnmp_mib_handler\fP *callbackh)"
-.br
-.RI "\fIadds a mode specific callback to the callback list. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_mode_end_call_helper\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
-.SH "Detailed Description"
-.PP 
-At the end of a series of requests, call another handler hook. 
-
-Handlers that want to loop through a series of requests and then receive a callback at the end of a particular MODE can use this helper to make this possible. For most modules, this is not needed as the handler itself could perform a for() loop around the request list and then perform its actions afterwards. However, if something like the serialize helper is in use this isn't possible because not all the requests for a given handler are being passed downward in a single group. Thus, this helper *must* be added above other helpers like the serialize helper to be useful.
-.PP
-Multiple mode specific handlers can be registered and will be called in the order they were regestered in. Callbacks regesterd with a mode of NETSNMP_MODE_END_ALL_MODES will be called for all modes. 
-.SH "Function Documentation"
-.PP 
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_mode_end_call_handler (\fBnetsnmp_mode_handler_list\fP * endlist)"
-.PP
-returns a mode_end_call handler that can be injected into a given handler chain. \fBParameters:\fP
-.RS 4
-\fIendlist\fP The callback list for the handler to make use of. 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-An injectable Net-SNMP handler. 
-.RE
-.PP
-
-.PP
-Definition at line 45 of file mode_end_call.c.
-.SS "\fBnetsnmp_mode_handler_list\fP* netsnmp_mode_end_call_add_mode_callback (\fBnetsnmp_mode_handler_list\fP * endlist, int mode, \fBnetsnmp_mib_handler\fP * callbackh)"
-.PP
-adds a mode specific callback to the callback list. \fBParameters:\fP
-.RS 4
-\fIendlist\fP the information structure for the mode_end_call helper. Can be NULL to create a new list. 
-.br
-\fImode\fP the mode to be called upon. A mode of NETSNMP_MODE_END_ALL_MODES = all modes. 
-.br
-\fIcallbackh\fP the netsnmp_mib_handler callback to call. 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-the new registration information list upon success. 
-.RE
-.PP
-
-.PP
-Definition at line 65 of file mode_end_call.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_multiplexer.3 b/man/netsnmp_multiplexer.3
deleted file mode 100644
index e374365..0000000
--- a/man/netsnmp_multiplexer.3
+++ /dev/null
@@ -1,53 +0,0 @@
-.TH "multiplexer" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-multiplexer \- 
-.PP
-Splits mode requests into calls to different handlers.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_multiplexer_handler\fP (\fBnetsnmp_mib_handler_methods\fP *req)"
-.br
-.RI "\fIreturns a multiplixer handler given a \fBnetsnmp_mib_handler_methods\fP structure of subhandlers. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_multiplexer_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 multiplexer helper \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Splits mode requests into calls to different handlers. 
-
-The multiplexer helper lets you split the calling chain depending on the calling mode (get vs getnext vs set). Useful if you want different routines to handle different aspects of SNMP requests, which is very common for GET vs SET type actions.
-.PP
-Functionally:
-.PP
-.IP "1." 4
-GET requests call the get_method
-.IP "2." 4
-GETNEXT requests call the getnext_method, or if not present, the get_method.
-.IP "3." 4
-GETBULK requests call the getbulk_method, or if not present, the getnext_method, or if even that isn't present the get_method.
-.IP "4." 4
-SET requests call the set_method, or if not present return a SNMP_ERR_NOTWRITABLE error. 
-.PP
-
-.SH "Function Documentation"
-.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. 
-.PP
-Definition at line 33 of file multiplexer.c.
-.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 
-.PP
-Definition at line 54 of file multiplexer.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_netsnmp_agent_request_info_s.3 b/man/netsnmp_netsnmp_agent_request_info_s.3
deleted file mode 100644
index d370961..0000000
--- a/man/netsnmp_netsnmp_agent_request_info_s.3
+++ /dev/null
@@ -1,48 +0,0 @@
-.TH "netsnmp_agent_request_info_s" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-netsnmp_agent_request_info_s \- 
-.PP
-The agent transaction request structure.  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <snmp_agent.h>\fP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "int \fBmode\fP"
-.br
-.ti -1c
-.RI "struct \fBnetsnmp_agent_session_s\fP * \fBasp\fP"
-.br
-.RI "\fIpdu contains authinfo, eg \fP"
-.ti -1c
-.RI "\fBnetsnmp_data_list\fP * \fBagent_data\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-The agent transaction request structure. 
-.PP
-\fBExamples: \fP
-.in +1c
-.PP
-\fBdelayed_instance.c\fP.
-.PP
-Definition at line 158 of file snmp_agent.h.
-.SH "Field Documentation"
-.PP 
-.SS "struct \fBnetsnmp_agent_session_s\fP* \fBnetsnmp_agent_request_info_s::asp\fP\fC [read]\fP"
-.PP
-pdu contains authinfo, eg 
-.PP
-Definition at line 162 of file snmp_agent.h.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_netsnmp_column_info_t.3 b/man/netsnmp_netsnmp_column_info_t.3
deleted file mode 100644
index e8a291c..0000000
--- a/man/netsnmp_netsnmp_column_info_t.3
+++ /dev/null
@@ -1,57 +0,0 @@
-.TH "netsnmp_column_info_t" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-netsnmp_column_info_t \- 
-.PP
-column info struct.  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <table.h>\fP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "char \fBisRange\fP"
-.br
-.ti -1c
-.RI "char \fBlist_count\fP"
-.br
-.RI "\fIonly useful if isRange == 0 \fP"
-.ti -1c
-.RI "union {"
-.br
-.ti -1c
-.RI "   unsigned int \fBrange\fP [2]"
-.br
-.ti -1c
-.RI "   unsigned int * \fBlist\fP"
-.br
-.ti -1c
-.RI "} \fBdetails\fP"
-.br
-.ti -1c
-.RI "struct \fBnetsnmp_column_info_t\fP * \fBnext\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-column info struct. 
-
-OVERLAPPING RANGES ARE NOT SUPPORTED. 
-.PP
-Definition at line 58 of file table.h.
-.SH "Field Documentation"
-.PP 
-.SS "char \fBnetsnmp_column_info_t::list_count\fP"
-.PP
-only useful if isRange == 0 
-.PP
-Definition at line 61 of file table.h.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_netsnmp_data_list_s.3 b/man/netsnmp_netsnmp_data_list_s.3
deleted file mode 100644
index 1cfd69d..0000000
--- a/man/netsnmp_netsnmp_data_list_s.3
+++ /dev/null
@@ -1,52 +0,0 @@
-.TH "netsnmp_data_list_s" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-netsnmp_data_list_s \- 
-.PP
-used to iterate through lists of data  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <data_list.h>\fP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "struct \fBnetsnmp_data_list_s\fP * \fBnext\fP"
-.br
-.ti -1c
-.RI "char * \fBname\fP"
-.br
-.ti -1c
-.RI "void * \fBdata\fP"
-.br
-.RI "\fIThe pointer to the data passed on. \fP"
-.ti -1c
-.RI "Netsnmp_Free_List_Data * \fBfree_func\fP"
-.br
-.RI "\fImust know how to free netsnmp_data_list->data \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-used to iterate through lists of data 
-.PP
-Definition at line 41 of file data_list.h.
-.SH "Field Documentation"
-.PP 
-.SS "void* \fBnetsnmp_data_list_s::data\fP"
-.PP
-The pointer to the data passed on. 
-.PP
-Definition at line 45 of file data_list.h.
-.SS "Netsnmp_Free_List_Data* \fBnetsnmp_data_list_s::free_func\fP"
-.PP
-must know how to free netsnmp_data_list->data 
-.PP
-Definition at line 47 of file data_list.h.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_netsnmp_handler_registration_s.3 b/man/netsnmp_netsnmp_handler_registration_s.3
deleted file mode 100644
index 85dd3e1..0000000
--- a/man/netsnmp_netsnmp_handler_registration_s.3
+++ /dev/null
@@ -1,107 +0,0 @@
-.TH "netsnmp_handler_registration_s" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-netsnmp_handler_registration_s \- 
-.PP
-Root registration info.  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <agent_handler.h>\fP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "char * \fBhandlerName\fP"
-.br
-.RI "\fIfor mrTable listings, and other uses \fP"
-.ti -1c
-.RI "char * \fBcontextName\fP"
-.br
-.RI "\fINULL = default context. \fP"
-.ti -1c
-.RI "oid * \fBrootoid\fP"
-.br
-.RI "\fIwhere are we registered at? \fP"
-.ti -1c
-.RI "size_t \fBrootoid_len\fP"
-.br
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBhandler\fP"
-.br
-.RI "\fIhandler details \fP"
-.ti -1c
-.RI "int \fBmodes\fP"
-.br
-.ti -1c
-.RI "int \fBpriority\fP"
-.br
-.RI "\fImore optional stuff \fP"
-.ti -1c
-.RI "int \fBrange_subid\fP"
-.br
-.ti -1c
-.RI "oid \fBrange_ubound\fP"
-.br
-.ti -1c
-.RI "int \fBtimeout\fP"
-.br
-.ti -1c
-.RI "int \fBglobal_cacheid\fP"
-.br
-.ti -1c
-.RI "void * \fBmy_reg_void\fP"
-.br
-.RI "\fIvoid ptr for registeree \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Root registration info. 
-
-The variables handlerName, contextName, and rootoid need to be allocated on the heap, when the registration structure is unregistered using \fBunregister_mib_context()\fP the code attempts to free them. 
-.PP
-\fBExamples: \fP
-.in +1c
-.PP
-\fBdelayed_instance.c\fP, and \fBwatched.c\fP.
-.PP
-Definition at line 95 of file agent_handler.h.
-.SH "Field Documentation"
-.PP 
-.SS "char* \fBnetsnmp_handler_registration_s::contextName\fP"
-.PP
-NULL = default context. 
-.PP
-Definition at line 100 of file agent_handler.h.
-.SS "\fBnetsnmp_mib_handler\fP* \fBnetsnmp_handler_registration_s::handler\fP"
-.PP
-handler details 
-.PP
-Definition at line 111 of file agent_handler.h.
-.SS "char* \fBnetsnmp_handler_registration_s::handlerName\fP"
-.PP
-for mrTable listings, and other uses 
-.PP
-Definition at line 98 of file agent_handler.h.
-.SS "void* \fBnetsnmp_handler_registration_s::my_reg_void\fP"
-.PP
-void ptr for registeree 
-.PP
-Definition at line 126 of file agent_handler.h.
-.SS "int \fBnetsnmp_handler_registration_s::priority\fP"
-.PP
-more optional stuff 
-.PP
-Definition at line 117 of file agent_handler.h.
-.SS "oid* \fBnetsnmp_handler_registration_s::rootoid\fP"
-.PP
-where are we registered at? 
-.PP
-Definition at line 105 of file agent_handler.h.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_netsnmp_iterator_info_s.3 b/man/netsnmp_netsnmp_iterator_info_s.3
deleted file mode 100644
index 4266e02..0000000
--- a/man/netsnmp_netsnmp_iterator_info_s.3
+++ /dev/null
@@ -1,111 +0,0 @@
-.TH "netsnmp_iterator_info_s" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-netsnmp_iterator_info_s \- 
-.PP
-Holds iterator information containing functions which should be called by the iterator_handler to loop over your data set and sort it in a SNMP specific manner.  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <table_iterator.h>\fP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "Netsnmp_First_Data_Point * \fBget_first_data_point\fP"
-.br
-.RI "\fIResponsible for: returning the first set of 'index' data, a loop-context pointer, and optionally a data context pointer. \fP"
-.ti -1c
-.RI "Netsnmp_Next_Data_Point * \fBget_next_data_point\fP"
-.br
-.RI "\fIGiven the previous loop context, this should return the next loop context, associated index set and optionally a data context. \fP"
-.ti -1c
-.RI "Netsnmp_Make_Data_Context * \fBmake_data_context\fP"
-.br
-.RI "\fIIf 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. \fP"
-.ti -1c
-.RI "Netsnmp_Free_Loop_Context * \fBfree_loop_context\fP"
-.br
-.RI "\fIA function which should free the loop context. \fP"
-.ti -1c
-.RI "Netsnmp_Free_Data_Context * \fBfree_data_context\fP"
-.br
-.RI "\fIFrees a data context. \fP"
-.ti -1c
-.RI "Netsnmp_Free_Loop_Context * \fBfree_loop_context_at_end\fP"
-.br
-.RI "\fIFrees a loop context at the end of the entire iteration sequence. \fP"
-.ti -1c
-.RI "void * \fBmyvoid\fP"
-.br
-.RI "\fIThis can be used by client handlers to store any information they need. \fP"
-.ti -1c
-.RI "int \fBflags\fP"
-.br
-.ti -1c
-.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 
-Holds iterator information containing functions which should be called by the iterator_handler to loop over your data set and sort it in a SNMP specific manner. 
-
-The netsnmp_iterator_info typedef can be used instead of directly calling this struct if you would prefer. 
-.PP
-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. 
-.PP
-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. 
-.PP
-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 
-.PP
-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. 
-.PP
-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, associated index set and optionally a data context. 
-.PP
-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. 
-.PP
-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. 
-.PP
-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. 
-.PP
-Definition at line 100 of file table_iterator.h.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_netsnmp_mib_handler_access_methods.3 b/man/netsnmp_netsnmp_mib_handler_access_methods.3
deleted file mode 100644
index 6ab57a0..0000000
--- a/man/netsnmp_netsnmp_mib_handler_access_methods.3
+++ /dev/null
@@ -1,20 +0,0 @@
-.TH "netsnmp_mib_handler_access_methods" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-netsnmp_mib_handler_access_methods \- 
-.PP
-Defines the access methods to be called by the access_multiplexer helper.  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <baby_steps.h>\fP
-.SH "Detailed Description"
-.PP 
-Defines the access methods to be called by the access_multiplexer helper. 
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_netsnmp_mib_handler_methods.3 b/man/netsnmp_netsnmp_mib_handler_methods.3
deleted file mode 100644
index 74941f9..0000000
--- a/man/netsnmp_netsnmp_mib_handler_methods.3
+++ /dev/null
@@ -1,20 +0,0 @@
-.TH "netsnmp_mib_handler_methods" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-netsnmp_mib_handler_methods \- 
-.PP
-Defines the subhandlers to be called by the multiplexer helper.  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <multiplexer.h>\fP
-.SH "Detailed Description"
-.PP 
-Defines the subhandlers to be called by the multiplexer helper. 
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_netsnmp_mib_handler_s.3 b/man/netsnmp_netsnmp_mib_handler_s.3
deleted file mode 100644
index 5556261..0000000
--- a/man/netsnmp_netsnmp_mib_handler_s.3
+++ /dev/null
@@ -1,74 +0,0 @@
-.TH "netsnmp_mib_handler_s" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-netsnmp_mib_handler_s \- 
-.PP
-the mib handler structure to be registered  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <agent_handler.h>\fP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "char * \fBhandler_name\fP"
-.br
-.ti -1c
-.RI "void * \fBmyvoid\fP"
-.br
-.RI "\fIfor handler's internal use \fP"
-.ti -1c
-.RI "int \fBflags\fP"
-.br
-.RI "\fIfor agent_handler's internal use \fP"
-.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 "\fIif you add more members, you probably also want to update \fP"
-.ti -1c
-.RI "void(* \fBdata_free\fP )(void *\fBmyvoid\fP)"
-.br
-.RI "\fIdata free hook for myvoid \fP"
-.ti -1c
-.RI "struct \fBnetsnmp_mib_handler_s\fP * \fBnext\fP"
-.br
-.ti -1c
-.RI "struct \fBnetsnmp_mib_handler_s\fP * \fBprev\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-the mib handler structure to be registered 
-.PP
-\fBExamples: \fP
-.in +1c
-.PP
-\fBdelayed_instance.c\fP.
-.PP
-Definition at line 48 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
-if you add more members, you probably also want to update _clone_handler in \fBagent_handler.c\fP. 
-.SS "void(* \fBnetsnmp_mib_handler_s::data_free\fP)(void *\fBmyvoid\fP)"
-.PP
-data free hook for myvoid 
-.SS "int \fBnetsnmp_mib_handler_s::flags\fP"
-.PP
-for agent_handler's internal use 
-.PP
-Definition at line 53 of file agent_handler.h.
-.SS "void* \fBnetsnmp_mib_handler_s::myvoid\fP"
-.PP
-for handler's internal use 
-.PP
-Definition at line 51 of file agent_handler.h.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_netsnmp_monitor_callback_header_s.3 b/man/netsnmp_netsnmp_monitor_callback_header_s.3
deleted file mode 100644
index 1a4c5a6..0000000
--- a/man/netsnmp_netsnmp_monitor_callback_header_s.3
+++ /dev/null
@@ -1,85 +0,0 @@
-.TH "netsnmp_monitor_callback_header_s" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-netsnmp_monitor_callback_header_s \- 
-.PP
-callback header  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <object_monitor.h>\fP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "unsigned int \fBevent\fP"
-.br
-.RI "\fIcallback type \fP"
-.ti -1c
-.RI "\fBnetsnmp_index\fP \fBmonitored_object\fP"
-.br
-.RI "\fIregistered oid \fP"
-.ti -1c
-.RI "int \fBpriority\fP"
-.br
-.RI "\fIpriority \fP"
-.ti -1c
-.RI "void * \fBwatcher_data\fP"
-.br
-.RI "\fIpointer given by watcher at registration \fP"
-.ti -1c
-.RI "void * \fBobject_info\fP"
-.br
-.RI "\fIpointer passed from the monitored object \fP"
-.ti -1c
-.RI "struct \fBnetsnmp_monitor_callback_header_s\fP * \fBprivate\fP"
-.br
-.RI "\fIDO NOT USE, INTERNAL USE ONLY. \fP"
-.ti -1c
-.RI "int \fBrefs\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-callback header 
-.PP
-Definition at line 64 of file object_monitor.h.
-.SH "Field Documentation"
-.PP 
-.SS "unsigned int \fBnetsnmp_monitor_callback_header_s::event\fP"
-.PP
-callback type 
-.PP
-Definition at line 67 of file object_monitor.h.
-.SS "\fBnetsnmp_index\fP \fBnetsnmp_monitor_callback_header_s::monitored_object\fP"
-.PP
-registered oid 
-.PP
-Definition at line 70 of file object_monitor.h.
-.SS "void* \fBnetsnmp_monitor_callback_header_s::object_info\fP"
-.PP
-pointer passed from the monitored object 
-.PP
-Definition at line 79 of file object_monitor.h.
-.SS "int \fBnetsnmp_monitor_callback_header_s::priority\fP"
-.PP
-priority 
-.PP
-Definition at line 73 of file object_monitor.h.
-.SS "struct \fBnetsnmp_monitor_callback_header_s\fP* \fBnetsnmp_monitor_callback_header_s::private\fP\fC [read]\fP"
-.PP
-DO NOT USE, INTERNAL USE ONLY. 
-.PP
-Definition at line 82 of file object_monitor.h.
-.SS "void* \fBnetsnmp_monitor_callback_header_s::watcher_data\fP"
-.PP
-pointer given by watcher at registration 
-.PP
-Definition at line 76 of file object_monitor.h.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_netsnmp_request_info_s.3 b/man/netsnmp_netsnmp_request_info_s.3
deleted file mode 100644
index 6f4af18..0000000
--- a/man/netsnmp_netsnmp_request_info_s.3
+++ /dev/null
@@ -1,115 +0,0 @@
-.TH "netsnmp_request_info_s" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-netsnmp_request_info_s \- 
-.PP
-The netsnmp request info structure.  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <snmp_agent.h>\fP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_variable_list\fP * \fBrequestvb\fP"
-.br
-.RI "\fI\fBvariable\fP bindings \fP"
-.ti -1c
-.RI "\fBnetsnmp_data_list\fP * \fBparent_data\fP"
-.br
-.RI "\fIcan be used to pass information on a per-request basis from a helper to the later handlers \fP"
-.ti -1c
-.RI "struct \fBnetsnmp_agent_request_info_s\fP * \fBagent_req_info\fP"
-.br
-.ti -1c
-.RI "oid * \fBrange_end\fP"
-.br
-.RI "\fIdon't free, reference to (struct \fBtree\fP)->end \fP"
-.ti -1c
-.RI "size_t \fBrange_end_len\fP"
-.br
-.ti -1c
-.RI "int \fBdelegated\fP"
-.br
-.ti -1c
-.RI "int \fBprocessed\fP"
-.br
-.ti -1c
-.RI "int \fBinclusive\fP"
-.br
-.ti -1c
-.RI "int \fBstatus\fP"
-.br
-.ti -1c
-.RI "int \fBindex\fP"
-.br
-.RI "\fIindex in original pdu \fP"
-.ti -1c
-.RI "int \fBrepeat\fP"
-.br
-.RI "\fIget-bulk \fP"
-.ti -1c
-.RI "int \fBorig_repeat\fP"
-.br
-.ti -1c
-.RI "\fBnetsnmp_variable_list\fP * \fBrequestvb_start\fP"
-.br
-.ti -1c
-.RI "struct \fBnetsnmp_request_info_s\fP * \fBnext\fP"
-.br
-.ti -1c
-.RI "struct \fBnetsnmp_request_info_s\fP * \fBprev\fP"
-.br
-.ti -1c
-.RI "struct \fBnetsnmp_subtree_s\fP * \fBsubtree\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-The netsnmp request info structure. 
-.PP
-\fBExamples: \fP
-.in +1c
-.PP
-\fBdelayed_instance.c\fP.
-.PP
-Definition at line 54 of file snmp_agent.h.
-.SH "Field Documentation"
-.PP 
-.SS "int \fBnetsnmp_request_info_s::index\fP"
-.PP
-index in original pdu 
-.PP
-Definition at line 84 of file snmp_agent.h.
-.SS "\fBnetsnmp_data_list\fP* \fBnetsnmp_request_info_s::parent_data\fP"
-.PP
-can be used to pass information on a per-request basis from a helper to the later handlers 
-.PP
-Definition at line 64 of file snmp_agent.h.
-.SS "oid* \fBnetsnmp_request_info_s::range_end\fP"
-.PP
-don't free, reference to (struct \fBtree\fP)->end 
-.PP
-Definition at line 72 of file snmp_agent.h.
-.SS "int \fBnetsnmp_request_info_s::repeat\fP"
-.PP
-get-bulk 
-.PP
-Definition at line 87 of file snmp_agent.h.
-.SS "\fBnetsnmp_variable_list\fP* \fBnetsnmp_request_info_s::requestvb\fP"
-.PP
-\fBvariable\fP bindings 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdelayed_instance.c\fP.
-.PP
-Definition at line 58 of file snmp_agent.h.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_netsnmp_table_registration_info_s.3 b/man/netsnmp_netsnmp_table_registration_info_s.3
deleted file mode 100644
index e8b0c33..0000000
--- a/man/netsnmp_netsnmp_table_registration_info_s.3
+++ /dev/null
@@ -1,73 +0,0 @@
-.TH "netsnmp_table_registration_info_s" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-netsnmp_table_registration_info_s \- 
-.PP
-Table registration structure.  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <table.h>\fP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_variable_list\fP * \fBindexes\fP"
-.br
-.RI "\fIlist of varbinds with only 'type' set \fP"
-.ti -1c
-.RI "unsigned int \fBnumber_indexes\fP"
-.br
-.RI "\fIcalculated automatically \fP"
-.ti -1c
-.RI "unsigned int \fBmin_column\fP"
-.br
-.RI "\fIthe minimum columns number. \fP"
-.ti -1c
-.RI "unsigned int \fBmax_column\fP"
-.br
-.RI "\fIthe maximum columns number \fP"
-.ti -1c
-.RI "\fBnetsnmp_column_info\fP * \fBvalid_columns\fP"
-.br
-.RI "\fImore details on columns \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Table registration structure. 
-.PP
-Definition at line 80 of file table.h.
-.SH "Field Documentation"
-.PP 
-.SS "\fBnetsnmp_variable_list\fP* \fBnetsnmp_table_registration_info_s::indexes\fP"
-.PP
-list of varbinds with only 'type' set 
-.PP
-Definition at line 82 of file table.h.
-.SS "unsigned int \fBnetsnmp_table_registration_info_s::max_column\fP"
-.PP
-the maximum columns number 
-.PP
-Definition at line 93 of file table.h.
-.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. 
-.PP
-Definition at line 91 of file table.h.
-.SS "unsigned int \fBnetsnmp_table_registration_info_s::number_indexes\fP"
-.PP
-calculated automatically 
-.PP
-Definition at line 84 of file table.h.
-.SS "\fBnetsnmp_column_info\fP* \fBnetsnmp_table_registration_info_s::valid_columns\fP"
-.PP
-more details on columns 
-.PP
-Definition at line 96 of file table.h.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_netsnmp_table_request_info_s.3 b/man/netsnmp_netsnmp_table_request_info_s.3
deleted file mode 100644
index 3b94397..0000000
--- a/man/netsnmp_netsnmp_table_request_info_s.3
+++ /dev/null
@@ -1,64 +0,0 @@
-.TH "netsnmp_table_request_info_s" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-netsnmp_table_request_info_s \- 
-.PP
-The table request info structure.  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <table.h>\fP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "unsigned int \fBcolnum\fP"
-.br
-.RI "\fI0 if OID not long enough \fP"
-.ti -1c
-.RI "unsigned int \fBnumber_indexes\fP"
-.br
-.RI "\fI0 if failure to parse any \fP"
-.ti -1c
-.RI "\fBnetsnmp_variable_list\fP * \fBindexes\fP"
-.br
-.RI "\fIcontents freed by helper upon exit \fP"
-.ti -1c
-.RI "oid \fBindex_oid\fP [MAX_OID_LEN]"
-.br
-.ti -1c
-.RI "size_t \fBindex_oid_len\fP"
-.br
-.ti -1c
-.RI "\fBnetsnmp_table_registration_info\fP * \fBreg_info\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-The table request info structure. 
-.PP
-Definition at line 108 of file table.h.
-.SH "Field Documentation"
-.PP 
-.SS "unsigned int \fBnetsnmp_table_request_info_s::colnum\fP"
-.PP
-0 if OID not long enough 
-.PP
-Definition at line 110 of file table.h.
-.SS "\fBnetsnmp_variable_list\fP* \fBnetsnmp_table_request_info_s::indexes\fP"
-.PP
-contents freed by helper upon exit 
-.PP
-Definition at line 114 of file table.h.
-.SS "unsigned int \fBnetsnmp_table_request_info_s::number_indexes\fP"
-.PP
-0 if failure to parse any 
-.PP
-Definition at line 112 of file table.h.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_null_container.3 b/man/netsnmp_null_container.3
deleted file mode 100644
index d3c2fb4..0000000
--- a/man/netsnmp_null_container.3
+++ /dev/null
@@ -1,33 +0,0 @@
-.TH "null_container" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-null_container \- 
-.PP
-Helps you implement specialized containers.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_container\fP * \fBnetsnmp_container_get_null\fP (void)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_factory\fP * \fBnetsnmp_container_get_null_factory\fP (void)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_container_null_init\fP (void)"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-Helps you implement specialized containers. 
-
-This is a simple container that doesn't actually contain anything. All the methods simply log a debug message and return.
-.PP
-The original intent for this container is as a wrapper for a specialized container. Implement the functions you need, create a null_container, and override the default functions with your specialized versions.
-.PP
-You can use the 'container:null' debug token to see what functions are being called, to help determine if you need to implement them. 
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_oid_stash.3 b/man/netsnmp_oid_stash.3
deleted file mode 100644
index fad28e9..0000000
--- a/man/netsnmp_oid_stash.3
+++ /dev/null
@@ -1,210 +0,0 @@
-.TH "Store and retrieve data referenced by an OID." 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Store and retrieve data referenced by an OID. \- 
-.PP
-This is essentially a way of storing data associated with a given OID.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_oid_stash_node\fP * \fBnetsnmp_oid_stash_create_sized_node\fP (size_t mysize)"
-.br
-.RI "\fICreate an netsnmp_oid_stash \fBnode\fP. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE \fBnetsnmp_oid_stash_node\fP * \fBnetsnmp_oid_stash_create_node\fP (void)"
-.br
-.RI "\fICreates a netsnmp_oid_stash_node. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_oid_stash_add_data\fP (\fBnetsnmp_oid_stash_node\fP **root, const oid *lookup, size_t lookup_len, void *mydata)"
-.br
-.RI "\fIadds data to the stash at a given oid. \fP"
-.ti -1c
-.RI "\fBnetsnmp_oid_stash_node\fP * \fBnetsnmp_oid_stash_get_node\fP (\fBnetsnmp_oid_stash_node\fP *root, const oid *lookup, size_t lookup_len)"
-.br
-.RI "\fIreturns a \fBnode\fP associated with a given OID. \fP"
-.ti -1c
-.RI "\fBnetsnmp_oid_stash_node\fP * \fBnetsnmp_oid_stash_getnext_node\fP (\fBnetsnmp_oid_stash_node\fP *root, oid *lookup, size_t lookup_len)"
-.br
-.RI "\fIreturns the next \fBnode\fP associated with a given OID. \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_oid_stash_get_data\fP (\fBnetsnmp_oid_stash_node\fP *root, const oid *lookup, size_t lookup_len)"
-.br
-.RI "\fIreturns a data pointer associated with a given OID. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_oid_stash_store_all\fP (int majorID, int minorID, void *serverarg, void *clientarg)"
-.br
-.RI "\fIa wrapper around netsnmp_oid_stash_store for use with a \fBsnmp_alarm\fP. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_oid_stash_store\fP (\fBnetsnmp_oid_stash_node\fP *root, const char *tokenname, NetSNMPStashDump *dumpfn, oid *curoid, size_t curoid_len)"
-.br
-.RI "\fIstores data in a starsh \fBtree\fP to peristent storage. \fP"
-.ti -1c
-.RI "void \fBoid_stash_dump\fP (\fBnetsnmp_oid_stash_node\fP *root, char *prefix)"
-.br
-.RI "\fIFor debugging: dump the netsnmp_oid_stash \fBtree\fP to stdout. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_oid_stash_free\fP (\fBnetsnmp_oid_stash_node\fP **root, NetSNMPStashFreeNode *freefn)"
-.br
-.RI "\fIFrees the contents of a netsnmp_oid_stash \fBtree\fP. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_oid_stash_no_free\fP (void *bogus)"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-This is essentially a way of storing data associated with a given OID. 
-
-It stores a bunch of data pointers within a memory \fBtree\fP that allows fairly efficient lookups with a heavily populated \fBtree\fP. 
-.SH "Function Documentation"
-.PP 
-.SS "int netsnmp_oid_stash_add_data (\fBnetsnmp_oid_stash_node\fP ** root, const oid * lookup, size_t lookup_len, void * mydata)"
-.PP
-adds data to the stash at a given oid. \fBParameters:\fP
-.RS 4
-\fIroot\fP the top of the stash \fBtree\fP 
-.br
-\fIlookup\fP the oid index to store the data at. 
-.br
-\fIlookup_len\fP the length of the lookup oid. 
-.br
-\fImydata\fP the data to store
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-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
-
-.PP
-Definition at line 83 of file oid_stash.c.
-.SS "NETSNMP_INLINE \fBnetsnmp_oid_stash_node\fP* 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 \fBnode\fP. 
-.PP
-\fBReturns:\fP
-.RS 4
-NULL on error, otherwise the newly allocated \fBnode\fP 
-.RE
-.PP
-
-.PP
-Definition at line 66 of file oid_stash.c.
-.SS "\fBnetsnmp_oid_stash_node\fP* netsnmp_oid_stash_create_sized_node (size_t mysize)"
-.PP
-Create an netsnmp_oid_stash \fBnode\fP. \fBParameters:\fP
-.RS 4
-\fImysize\fP the size of the child pointer array
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-NULL on error, otherwise the newly allocated \fBnode\fP 
-.RE
-.PP
-
-.PP
-Definition at line 46 of file oid_stash.c.
-.SS "void netsnmp_oid_stash_free (\fBnetsnmp_oid_stash_node\fP ** root, NetSNMPStashFreeNode * freefn)"
-.PP
-Frees the contents of a netsnmp_oid_stash \fBtree\fP. \fBParameters:\fP
-.RS 4
-\fIroot\fP the top of the \fBtree\fP (or branch to be freed) 
-.br
-\fIfreefn\fP The function to be called on each data (void *) pointer. If left NULL the system free() function will be called 
-.RE
-.PP
-
-.PP
-Definition at line 401 of file oid_stash.c.
-.SS "void* netsnmp_oid_stash_get_data (\fBnetsnmp_oid_stash_node\fP * root, const 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 \fBnode\fP.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIroot\fP the top of the stash 
-.br
-\fIlookup\fP the oid to search for 
-.br
-\fIlookup_len\fP the length of the search oid. 
-.RE
-.PP
-
-.PP
-Definition at line 282 of file oid_stash.c.
-.SS "\fBnetsnmp_oid_stash_node\fP* netsnmp_oid_stash_get_node (\fBnetsnmp_oid_stash_node\fP * root, const oid * lookup, size_t lookup_len)"
-.PP
-returns a \fBnode\fP associated with a given OID. \fBParameters:\fP
-.RS 4
-\fIroot\fP the top of the stash \fBtree\fP 
-.br
-\fIlookup\fP the oid to look up a \fBnode\fP for. 
-.br
-\fIlookup_len\fP the length of the lookup oid 
-.RE
-.PP
-
-.PP
-Definition at line 154 of file oid_stash.c.
-.SS "\fBnetsnmp_oid_stash_node\fP* netsnmp_oid_stash_getnext_node (\fBnetsnmp_oid_stash_node\fP * root, oid * lookup, size_t lookup_len)"
-.PP
-returns the next \fBnode\fP associated with a given OID. INCOMPLETE. This is equivelent to a GETNEXT operation. 
-.PP
-Definition at line 191 of file oid_stash.c.
-.SS "void netsnmp_oid_stash_store (\fBnetsnmp_oid_stash_node\fP * root, const char * tokenname, NetSNMPStashDump * dumpfn, oid * curoid, size_t curoid_len)"
-.PP
-stores data in a starsh \fBtree\fP to peristent storage. This function can be called to save all data in a stash \fBtree\fP 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.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIroot\fP the top of the stash to store. 
-.br
-\fItokenname\fP the file token name to save in (passing 'snmpd' will save things into snmpd.conf). 
-.br
-\fIdumpfn\fP A function which can dump the data stored at a particular \fBnode\fP into a char buffer. 
-.br
-\fIcuroid\fP must be a pointer to a OID array of length MAX_OID_LEN. 
-.br
-\fIcuroid_len\fP must be 0 for the top level call. 
-.RE
-.PP
-
-.PP
-Definition at line 334 of file oid_stash.c.
-.SS "int netsnmp_oid_stash_store_all (int majorID, int minorID, void * serverarg, void * clientarg)"
-.PP
-a wrapper around netsnmp_oid_stash_store for use with a \fBsnmp_alarm\fP. when calling \fBsnmp_alarm\fP, you can list this as a callback. The clientarg should be a pointer to a netsnmp_oid_stash_save_info pointer. It can also be called directly, of course. The last argument (clientarg) is the only one that is used. The rest are ignored by the function. 
-.PP
-\fBParameters:\fP
-.RS 4
-\fImajorID\fP 
-.br
-\fIminorID\fP 
-.br
-\fIserverarg\fP 
-.br
-\fIclientarg\fP A pointer to a netsnmp_oid_stash_save_info structure. 
-.RE
-.PP
-
-.PP
-Definition at line 304 of file oid_stash.c.
-.SS "void oid_stash_dump (\fBnetsnmp_oid_stash_node\fP * root, char * prefix)"
-.PP
-For debugging: dump the netsnmp_oid_stash \fBtree\fP to stdout. \fBParameters:\fP
-.RS 4
-\fIroot\fP The top of the \fBtree\fP 
-.br
-\fIprefix\fP a character string prefix printed to the beginning of each line. 
-.RE
-.PP
-
-.PP
-Definition at line 374 of file oid_stash.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_old_api.3 b/man/netsnmp_old_api.3
deleted file mode 100644
index a1328de..0000000
--- a/man/netsnmp_old_api.3
+++ /dev/null
@@ -1,60 +0,0 @@
-.TH "old_api" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-old_api \- 
-.PP
-Calls mib \fBmodule\fP code written in the old style of code.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBget_old_api_handler\fP (void)"
-.br
-.RI "\fIreturns a old_api handler that should be the final calling handler. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_old_api\fP (const char *moduleName, struct \fBvariable\fP *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)"
-.br
-.RI "\fIRegisters an old API set into the mib \fBtree\fP. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_mib_table_row\fP (const char *moduleName, struct \fBvariable\fP *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)"
-.br
-.RI "\fIregisters a row within a mib table \fP"
-.ti -1c
-.RI "int \fBnetsnmp_old_api_helper\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 old_api handler \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Calls mib \fBmodule\fP code written in the old style of code. 
-
-This is a backwards compatilibity \fBmodule\fP that allows code written in the old API to be run under the new handler based architecture. Use it by calling \fBnetsnmp_register_old_api()\fP. 
-.SH "Function Documentation"
-.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. 
-.PP
-Definition at line 38 of file old_api.c.
-.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 
-.PP
-Definition at line 235 of file old_api.c.
-.SS "int netsnmp_register_mib_table_row (const char * moduleName, struct \fBvariable\fP * 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 
-.PP
-Definition at line 116 of file old_api.c.
-.SS "int netsnmp_register_old_api (const char * moduleName, struct \fBvariable\fP * 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 \fBtree\fP. 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). 
-.PP
-netsnmp_handler_registration_free(reginfo); already freed 
-.PP
-Definition at line 49 of file old_api.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/pdu_api.3.def b/man/netsnmp_pdu_api.3.def
similarity index 71%
rename from man/pdu_api.3.def
rename to man/netsnmp_pdu_api.3.def
index 578b4a7..a0f1aa1 100644
--- a/man/pdu_api.3.def
+++ b/man/netsnmp_pdu_api.3.def
@@ -1,7 +1,9 @@
-.TH PDU_API 3 "20 Apr 2009" VVERSIONINFO "Net-SNMP"
+.TH NETSNMP_PDU_API 3 "13 Aug 2010" VVERSIONINFO "Net-SNMP"
 .SH NAME
-snmp_pdu_create, snmp_clone_pdu, snmp_fix_pdu,
-snmp_free_pdu - pdu_api functions
+snmp_pdu_create,
+snmp_clone_pdu,
+snmp_fix_pdu,
+snmp_free_pdu - netsnmp_pdu_api functions
 .SH SYNOPSIS
 .B #include <net-snmp/pdu_api.h>
 .PP
@@ -24,5 +26,4 @@
 .PP
 .B snmp_free_pdu
 .SH "SEE ALSO"
-.BR varbind_api "(3)"
-.BR session_api "(3)"
+netsnmp_varbind_api(3), netsnmp_session_api(3)
diff --git a/man/netsnmp_read_config.3 b/man/netsnmp_read_config.3
deleted file mode 100644
index 53c137a..0000000
--- a/man/netsnmp_read_config.3
+++ /dev/null
@@ -1,364 +0,0 @@
-.TH "parsing various configuration files at run time" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-parsing various configuration files at run time \- 
-.PP
-The read_config related functions are a fairly extensible system of parsing various configuration files at the run time.  
-
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBSNMP_CONFIG_DELIMETERS\fP   ' \\t='"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "struct \fBconfig_line\fP * \fBregister_prenetsnmp_mib_handler\fP (const char *type, const char *token, void(*parser)(const char *, char *), void(*releaser)(void), const char *help)"
-.br
-.ti -1c
-.RI "struct \fBconfig_line\fP * \fBregister_app_prenetsnmp_mib_handler\fP (const char *token, void(*parser)(const char *, char *), void(*releaser)(void), const char *help)"
-.br
-.ti -1c
-.RI "struct \fBconfig_line\fP * \fBregister_config_handler\fP (const char *type, const char *token, void(*parser)(const char *, char *), void(*releaser)(void), const char *help)"
-.br
-.RI "\fIregister_config_handler registers handlers for certain tokens specified in certain types of files. \fP"
-.ti -1c
-.RI "struct \fBconfig_line\fP * \fBregister_app_config_handler\fP (const char *token, void(*parser)(const char *, char *), void(*releaser)(void), const char *help)"
-.br
-.ti -1c
-.RI "void \fBunregister_config_handler\fP (const char *type_param, const char *token)"
-.br
-.RI "\fIuregister_config_handler un-registers handlers given a specific type_param and token. \fP"
-.ti -1c
-.RI "void \fBunregister_app_config_handler\fP (const char *token)"
-.br
-.ti -1c
-.RI "void \fBunregister_all_config_handlers\fP (void)"
-.br
-.ti -1c
-.RI "struct \fBconfig_line\fP * \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
-.RI "struct \fBconfig_line\fP * \fBread_config_find_handler\fP (struct \fBconfig_line\fP *line_handlers, const char *token)"
-.br
-.ti -1c
-.RI "int \fBrun_config_handler\fP (struct \fBconfig_line\fP *lptr, const char *token, char *cptr, int when)"
-.br
-.ti -1c
-.RI "int \fBsnmp_config_when\fP (char *line, int when)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_config\fP (char *line)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_config_remember_in_list\fP (char *line, struct \fBread_config_memory\fP **mem)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_config_remember_free_list\fP (struct \fBread_config_memory\fP **mem)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_config_process_memory_list\fP (struct \fBread_config_memory\fP **memp, int when, int clear)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_config_remember\fP (char *line)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_config_process_memories\fP (void)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_config_process_memories_when\fP (int when, int clear)"
-.br
-.ti -1c
-.RI "void \fBread_config\fP (const char *filename, struct \fBconfig_line\fP *line_handler, int when)"
-.br
-.ti -1c
-.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
-.RI "void \fBread_premib_configs\fP (void)"
-.br
-.ti -1c
-.RI "void \fBset_configuration_directory\fP (const char *dir)"
-.br
-.ti -1c
-.RI "const char * \fBget_configuration_directory\fP (void)"
-.br
-.ti -1c
-.RI "void \fBset_persistent_directory\fP (const char *dir)"
-.br
-.ti -1c
-.RI "const char * \fBget_persistent_directory\fP (void)"
-.br
-.ti -1c
-.RI "void \fBset_temp_file_pattern\fP (const char *pattern)"
-.br
-.ti -1c
-.RI "const char * \fBget_temp_file_pattern\fP (void)"
-.br
-.ti -1c
-.RI "void \fBread_config_files\fP (int when)"
-.br
-.ti -1c
-.RI "void \fBread_config_print_usage\fP (const char *lead)"
-.br
-.ti -1c
-.RI "void \fBread_config_store\fP (const char *type, const char *line)"
-.br
-.RI "\fIread_config_store intended for use by applications to store permenant configuration information generated by sets or persistent counters. \fP"
-.ti -1c
-.RI "void \fBread_app_config_store\fP (const char *line)"
-.br
-.ti -1c
-.RI "void \fBsnmp_save_persistent\fP (const char *type)"
-.br
-.ti -1c
-.RI "void \fBsnmp_clean_persistent\fP (const char *type)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_config_error\fP (const char *str,...)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_config_warn\fP (const char *str,...)"
-.br
-.ti -1c
-.RI "void \fBconfig_perror\fP (const char *str)"
-.br
-.ti -1c
-.RI "void \fBconfig_pwarn\fP (const char *str)"
-.br
-.ti -1c
-.RI "char * \fBskip_white\fP (char *ptr)"
-.br
-.ti -1c
-.RI "char * \fBskip_not_white\fP (char *ptr)"
-.br
-.ti -1c
-.RI "char * \fBskip_token\fP (char *ptr)"
-.br
-.ti -1c
-.RI "char * \fBcopy_nword\fP (char *from, char *to, int len)"
-.br
-.ti -1c
-.RI "char * \fBcopy_word\fP (char *from, char *to)"
-.br
-.ti -1c
-.RI "char * \fBread_config_save_octet_string\fP (char *saveto, u_char *str, size_t len)"
-.br
-.ti -1c
-.RI "char * \fBread_config_read_octet_string\fP (char *readfrom, u_char **str, size_t *len)"
-.br
-.ti -1c
-.RI "char * \fBread_config_save_objid\fP (char *saveto, oid *objid, size_t len)"
-.br
-.ti -1c
-.RI "char * \fBread_config_read_objid\fP (char *readfrom, oid **objid, size_t *len)"
-.br
-.ti -1c
-.RI "char * \fBread_config_read_data\fP (int type, char *readfrom, void *dataptr, size_t *len)"
-.br
-.RI "\fIread_config_read_data reads data of a given type from a token(s) on a configuration line. \fP"
-.ti -1c
-.RI "char * \fBread_config_read_memory\fP (int type, char *readfrom, char *dataptr, size_t *len)"
-.br
-.ti -1c
-.RI "char * \fBread_config_store_data\fP (int type, char *storeto, void *dataptr, size_t *len)"
-.br
-.RI "\fIread_config_store_data stores data of a given type to a configuration line into the storeto buffer. \fP"
-.ti -1c
-.RI "char * \fBread_config_store_data_prefix\fP (char prefix, int type, char *storeto, void *dataptr, size_t len)"
-.br
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "struct \fBconfig_files\fP * \fBconfig_files\fP = NULL"
-.br
-.ti -1c
-.RI "int \fBlinecount\fP"
-.br
-.ti -1c
-.RI "const char * \fBcurfilename\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-The read_config related functions are a fairly extensible system of parsing various configuration files at the run time. 
-
-The idea is that the calling application is able to register handlers for certain tokens specified in certain types of files. The read_configs function can then be called to look for all the files that it has registrations for, find the first word on each line, and pass the remainder to the appropriately registered handler.
-.PP
-For persistent configuration storage you will need to use the read_config_read_data, read_config_store, and read_config_store_data APIs in conjunction with first registering a callback so when the agent shutsdown for whatever reason data is written to your configuration files. The following explains in more detail the sequence to make this happen.
-.PP
-This is the callback registration API, you need to call this API with the appropriate parameters in order to configure persistent storage needs.
-.PP
-int snmp_register_callback(int major, int minor, SNMPCallback *new_callback, void *arg);
-.PP
-You will need to set major to SNMP_CALLBACK_LIBRARY, minor to SNMP_CALLBACK_STORE_DATA. arg is whatever you want.
-.PP
-Your callback function's prototype is: int (SNMPCallback) (int majorID, int minorID, void *serverarg, void *clientarg);
-.PP
-The majorID, minorID and clientarg are what you passed in the callback registration above. When the callback is called you have to essentially transfer all your state from memory to disk. You do this by generating configuration lines into a buffer. The lines are of the form token followed by token parameters.
-.PP
-Finally storing is done using read_config_store(type, buffer); type is the application name this can be obtained from:
-.PP
-netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_APPTYPE);
-.PP
-Now, reading back the data: This is done by registering a config handler for your token using the register_config_handler function. Your handler will be invoked and you can parse in the data using the read_config_read APIs. 
-.SH "Function Documentation"
-.PP 
-.SS "char* read_config_read_data (int type, char * readfrom, void * dataptr, size_t * len)"
-.PP
-read_config_read_data reads data of a given type from a token(s) on a configuration line. The supported types are:
-.PP
-.IP "\(bu" 2
-ASN_INTEGER
-.IP "\(bu" 2
-ASN_TIMETICKS
-.IP "\(bu" 2
-ASN_UNSIGNED
-.IP "\(bu" 2
-ASN_OCTET_STR
-.IP "\(bu" 2
-ASN_BIT_STR
-.IP "\(bu" 2
-ASN_OBJECT_ID
-.PP
-.PP
-\fBParameters:\fP
-.RS 4
-\fItype\fP the asn data type to be read in.
-.br
-\fIreadfrom\fP the configuration line data to be read.
-.br
-\fIdataptr\fP an allocated pointer expected to match the type being read (int *, u_int *, char **, oid **)
-.br
-\fIlen\fP is the length of an asn oid or octet/bit string, not required for the asn integer, unsigned integer, and timeticks types
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-the next token in the configuration line. NULL if none left or if an unknown type. 
-.RE
-.PP
-
-.PP
-Definition at line 1859 of file read_config.c.
-.SS "void read_config_store (const char * type, const char * line)"
-.PP
-read_config_store intended for use by applications to store permenant configuration information generated by sets or persistent counters. Appends line to a file named either ENV(SNMP_PERSISTENT_FILE) or '<NETSNMP_PERSISTENT_DIRECTORY>/<type>.conf'. Adds a trailing newline to the stored file if necessary.
-.PP
-\fBParameters:\fP
-.RS 4
-\fItype\fP is the application name 
-.br
-\fIline\fP is the configuration line written to the application name's configuration file
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-void 
-.RE
-.PP
-
-.PP
-Definition at line 1262 of file read_config.c.
-.SS "char* read_config_store_data (int type, char * storeto, void * dataptr, size_t * len)"
-.PP
-read_config_store_data stores data of a given type to a configuration line into the storeto buffer. Calls read_config_store_data_prefix with the prefix parameter set to a char space. The supported types are:
-.PP
-.IP "\(bu" 2
-ASN_INTEGER
-.IP "\(bu" 2
-ASN_TIMETICKS
-.IP "\(bu" 2
-ASN_UNSIGNED
-.IP "\(bu" 2
-ASN_OCTET_STR
-.IP "\(bu" 2
-ASN_BIT_STR
-.IP "\(bu" 2
-ASN_OBJECT_ID
-.PP
-.PP
-\fBParameters:\fP
-.RS 4
-\fItype\fP the asn data type to be stored
-.br
-\fIstoreto\fP a pre-allocated char buffer which will contain the data to be stored
-.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 value to be stored (not required for the asn integer, unsigned integer, and timeticks types)
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-character pointer to the end of the line. NULL if an unknown type. 
-.RE
-.PP
-
-.PP
-Definition at line 2013 of file read_config.c.
-.SS "struct \fBconfig_line\fP* register_config_handler (const char * type, const char * token, void(*)(const char *, char *) parser, void(*)(void) releaser, const char * help)\fC [read]\fP"
-.PP
-register_config_handler registers handlers for certain tokens specified in certain types of files. Library API routines concerned with configuration and control of the behaviour of the library, agent and other applications.
-.PP
-Allows a \fBmodule\fP writer use/register multiple configuration files based off of the type parameter. A \fBmodule\fP 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 \fBmodule\fP or modules get more complex in regard to handling token registrations.
-.PP
-\fBParameters:\fP
-.RS 4
-\fItype\fP the configuration file used, e.g., if snmp.conf is the file where the token is located use 'snmp' here. Multiple colon separated tokens might be used. If NULL or '' then the configuration file used will be <application>.conf.
-.br
-\fItoken\fP the token being parsed from the file. Must be non-NULL.
-.br
-\fIparser\fP the handler function pointer that use the specified token and the rest of the line to do whatever is required Should be non-NULL in order to make use of this API.
-.br
-\fIreleaser\fP if non-NULL, the function specified is called if and when the configuration files are re-read. This function should free any resources allocated by the token handler function.
-.br
-\fIhelp\fP if non-NULL, used to display help information on the expected arguments after the token.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-Pointer to a new config line entry or NULL on error. 
-.RE
-.PP
-
-.PP
-Definition at line 284 of file read_config.c.
-.SS "void unregister_config_handler (const char * type_param, const char * token)"
-.PP
-uregister_config_handler un-registers handlers given a specific type_param and token. \fBParameters:\fP
-.RS 4
-\fItype_param\fP the configuration file used where the token is located. Used to lookup the config file entry
-.br
-\fItoken\fP the token that is being unregistered
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-void 
-.RE
-.PP
-
-.PP
-Definition at line 315 of file read_config.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_read_only.3 b/man/netsnmp_read_only.3
deleted file mode 100644
index 1e5a35b..0000000
--- a/man/netsnmp_read_only.3
+++ /dev/null
@@ -1,43 +0,0 @@
-.TH "read_only" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-read_only \- 
-.PP
-Make your handler read_only automatically The only purpose of this handler is to return an appropriate error for any requests passed to it in a SET mode.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_read_only_handler\fP (void)"
-.br
-.RI "\fIreturns a read_only handler that can be injected into a given handler chain. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_read_only_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 "void \fBnetsnmp_init_read_only_helper\fP (void)"
-.br
-.RI "\fIinitializes the read_only helper which then registers a read_only handler as a run-time injectable handler for configuration file use. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Make your handler read_only automatically The only purpose of this handler is to return an appropriate error for any requests passed to it in a SET mode. 
-
-Inserting it into your handler chain will ensure you're never asked to perform a SET request so you can ignore those error conditions. 
-.SH "Function Documentation"
-.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. 
-.PP
-Definition at line 23 of file read_only.c.
-.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. 
-.PP
-Definition at line 72 of file read_only.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_row_merge.3 b/man/netsnmp_row_merge.3
deleted file mode 100644
index c6daa4e..0000000
--- a/man/netsnmp_row_merge.3
+++ /dev/null
@@ -1,101 +0,0 @@
-.TH "row_merge" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-row_merge \- 
-.PP
-Calls sub handlers with request for one row at a time.  
-
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBROW_MERGE_WAITING\fP   0"
-.br
-.ti -1c
-.RI "#define \fBROW_MERGE_ACTIVE\fP   1"
-.br
-.ti -1c
-.RI "#define \fBROW_MERGE_DONE\fP   2"
-.br
-.ti -1c
-.RI "#define \fBROW_MERGE_HEAD\fP   3"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_row_merge_handler\fP (int prefix_len)"
-.br
-.RI "\fIreturns a row_merge handler that can be injected into a given handler chain. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_row_merge\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.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 "\fBnetsnmp_row_merge_status\fP * \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"
-.ti -1c
-.RI "void \fBnetsnmp_init_row_merge\fP (void)"
-.br
-.RI "\fIinitializes the row_merge helper which then registers a row_merge handler as a run-time injectable handler for configuration file use. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Calls sub handlers with request for one row at a time. 
-
-This helper splits a whole bunch of requests into chunks based on the row index that they refer to, and passes all requests for a given row to the lower handlers. This is useful for handlers that don't want to process multiple rows at the same time, but are happy to iterate through the request list for a single row. 
-.SH "Function Documentation"
-.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. 
-.PP
-Definition at line 28 of file row_merge.c.
-.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. 
-.PP
-Definition at line 360 of file row_merge.c.
-.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. 
-.PP
-Definition at line 42 of file row_merge.c.
-.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. 
-.PP
-Definition at line 154 of file row_merge.c.
-.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. 
-.PP
-Definition at line 110 of file row_merge.c.
-.SS "\fBnetsnmp_row_merge_status\fP* netsnmp_row_merge_status_get (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_agent_request_info\fP * reqinfo, int create_missing)"
-.PP
-retrieve row_merge_status 
-.PP
-Definition at line 67 of file row_merge.c.
-.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. 
-.PP
-Definition at line 130 of file row_merge.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_scalar.3 b/man/netsnmp_scalar.3
deleted file mode 100644
index dcca671..0000000
--- a/man/netsnmp_scalar.3
+++ /dev/null
@@ -1,102 +0,0 @@
-.TH "scalar" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-scalar \- 
-.PP
-Process scalars easily.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_scalar_handler\fP (void)"
-.br
-.RI "\fICreates a scalar handler calling netsnmp_create_handler with a handler name defaulted to 'scalar' and access method, netsnmp_scalar_helper_handler. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_scalar\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIThis function registers a scalar helper handler. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_read_only_scalar\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIThis function registers a read only scalar helper handler. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_scalar_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
-.SH "Detailed Description"
-.PP 
-Process scalars easily. 
-.SH "Function Documentation"
-.PP 
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_scalar_handler (void)"
-.PP
-Creates a scalar handler calling netsnmp_create_handler with a handler name defaulted to 'scalar' and access method, netsnmp_scalar_helper_handler. \fBReturns:\fP
-.RS 4
-Returns a pointer to a netsnmp_mib_handler struct which contains the handler's name and the access method
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBnetsnmp_get_scalar_handler\fP 
-.PP
-\fBnetsnmp_register_scalar\fP 
-.RE
-.PP
-
-.PP
-Definition at line 47 of file scalar.c.
-.SS "int netsnmp_register_read_only_scalar (\fBnetsnmp_handler_registration\fP * reginfo)"
-.PP
-This function registers a read only scalar helper handler. This function is very similar to netsnmp_register_scalar the only addition is that the 'read_only' handler is injected into the handler chain prior to injecting the serialize handler and registering reginfo.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIreginfo\fP a handler registration structure which could get created using netsnmp_create_handler_registration. Used to register a read only scalar helper handler.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-MIB_REGISTERED_OK is returned if the registration was a success. Failures are MIB_REGISTRATION_FAILURE and MIB_DUPLICATE_REGISTRATION.
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBnetsnmp_register_scalar\fP 
-.PP
-\fBnetsnmp_get_scalar_handler\fP 
-.RE
-.PP
-
-.PP
-Definition at line 110 of file scalar.c.
-.SS "int netsnmp_register_scalar (\fBnetsnmp_handler_registration\fP * reginfo)"
-.PP
-This function registers a scalar helper handler. The registered OID, reginfo->rootoid, space is extended for the instance subid using realloc() but the reginfo->rootoid_len length is not extended just yet. .This function subsequently injects the instance, scalar, and serialize helper handlers before actually registering reginfo.
-.PP
-Each handler is injected/pushed to the top of the handler chain list and will be processed last in first out, LIFO.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIreginfo\fP a handler registration structure which could get created using netsnmp_create_handler_registration. Used to register a scalar helper handler.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-MIB_REGISTERED_OK is returned if the registration was a success. Failures are MIB_REGISTRATION_FAILURE and MIB_DUPLICATE_REGISTRATION.
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBnetsnmp_register_read_only_scalar\fP 
-.PP
-\fBnetsnmp_get_scalar_handler\fP 
-.RE
-.PP
-
-.PP
-Definition at line 75 of file scalar.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_scalar_group_group.3 b/man/netsnmp_scalar_group_group.3
deleted file mode 100644
index 5402fbc..0000000
--- a/man/netsnmp_scalar_group_group.3
+++ /dev/null
@@ -1,27 +0,0 @@
-.TH "scalar_group" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-scalar_group \- 
-.PP
-Process groups of scalars.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_scalar_group_handler\fP (oid first, oid last)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_scalar_group\fP (\fBnetsnmp_handler_registration\fP *reginfo, oid first, oid last)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_scalar_group_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
-.SH "Detailed Description"
-.PP 
-Process groups of scalars. 
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_serialize.3 b/man/netsnmp_serialize.3
deleted file mode 100644
index df08e89..0000000
--- a/man/netsnmp_serialize.3
+++ /dev/null
@@ -1,58 +0,0 @@
-.TH "serialize" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-serialize \- 
-.PP
-Calls sub handlers one request at a time.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_serialize_handler\fP (void)"
-.br
-.RI "\fIreturns a serialize handler that can be injected into a given handler chain. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_serialize\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIfunctionally the same as calling \fBnetsnmp_register_handler()\fP but also injects a serialize handler at the same time for you. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_serialize_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 serial handler. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_init_serialize\fP (void)"
-.br
-.RI "\fIinitializes the serialize helper which then registers a serialize handler as a run-time injectable handler for configuration file use. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Calls sub handlers one request at a time. 
-
-This functionally passes in one request at a time into lower handlers rather than a whole bunch of requests at once. This is useful for handlers that don't want to iterate through the request lists themselves. Generally, this is probably less efficient so use with caution. The serialize handler might be useable to dynamically fix handlers with broken looping code, however. 
-.SH "Function Documentation"
-.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. 
-.PP
-Definition at line 25 of file serialize.c.
-.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. 
-.PP
-Definition at line 87 of file serialize.c.
-.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. 
-.PP
-Definition at line 34 of file serialize.c.
-.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. 
-.PP
-Definition at line 42 of file serialize.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/snmp_sess_api.3.def b/man/netsnmp_sess_api.3.def
similarity index 88%
rename from man/snmp_sess_api.3.def
rename to man/netsnmp_sess_api.3.def
index 88414fc..8641538 100644
--- a/man/snmp_sess_api.3.def
+++ b/man/netsnmp_sess_api.3.def
@@ -1,10 +1,15 @@
-.TH SNMP_SESS_API 3 "19 May 2011" VVERSIONINFO "Net-SNMP"
+.TH NETSNMP_SESS_API 3 "19 May 2011" VVERSIONINFO "Net-SNMP"
 .SH NAME
-snmp_sess_init, snmp_sess_open, snmp_sess_session,
-snmp_sess_send, snmp_sess_async_send,
-snmp_sess_select_info, snmp_sess_read,
-snmp_sess_timeout, snmp_sess_synch_response,
-snmp_sess_close, snmp_sess_error - session functions
+snmp_sess_init,
+snmp_sess_open,
+snmp_sess_session,
+snmp_sess_send,
+snmp_sess_async_send,
+snmp_sess_select_info,
+snmp_sess_read,
+snmp_sess_timeout,
+snmp_sess_close,
+snmp_sess_error - session functions
 .SH SYNOPSIS
 .B #include <net-snmp/session_api.h>
 .PP
@@ -36,12 +41,6 @@
 .PP
 .BI "void snmp_sess_timeout(void *" handle ");"
 .PP
-.BI "int snmp_sess_synch_response(void *" handle ","
-.br
-.BI "                         struct snmp_pdu *" pdu ", "
-.br
-.BI "                         struct snmp_pdu **" response ");"
-.PP
 .BI "int snmp_sess_close(void *" handle ");"
 .PP
 .BI "void snmp_sess_error(void *" handle ", int *" pcliberr ", "
@@ -100,12 +99,6 @@
 .PP
 Consult snmp_api.h for the definitions of these structures.
 .PP
-With the
-.I snmp_sess_async_send()
-call,
-.I snmp_sess_read()
-will invoke the specified callback when the response is received.
-.PP
 .BR snmp_sess_select_info() ", " snmp_sess_read() " and " snmp_sess_timeout()
 provide an interface for the use of the
 .BR select (2)
@@ -155,13 +148,6 @@
 .B snmp_sess_timeout()
 should be called to see if a timeout has occurred on the SNMP
 session.
-.PP
-.I snmp_sess_synch_response
-is a convenience routine that will send the request,
-wait for the response and process it before returning.
-See the descriptions of
-.I "snmp_sess_send" ", " "snmp_sess_read"
-etc for details.
 .SH DIAGNOSTICS
 .PP
 Error return status from 
@@ -225,4 +211,5 @@
 .RE
 .PP
 .SH "SEE ALSO"
-.BR select "(2), " snmp_api "(3), " snmp_api.h
+select(2), netsnmp_session_api(3), netsnmp_pdu_api(3),
+netsnmp_varbind_api(3), netsnmp_mib_api(3), snmp_api.h
diff --git a/man/session_api.3.def b/man/netsnmp_session_api.3.def
similarity index 76%
rename from man/session_api.3.def
rename to man/netsnmp_session_api.3.def
index 9ac2d5e..60b68d1 100644
--- a/man/session_api.3.def
+++ b/man/netsnmp_session_api.3.def
@@ -23,71 +23,70 @@
 .\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 .\" SOFTWARE.
 .\" ******************************************************************/
-.TH SESSION_API 3 "19 May 2011" VVERSIONINFO "Net-SNMP"
+.TH NETSNMP_SESSION_API 3 "19 May 2011" VVERSIONINFO "Net-SNMP"
 .SH NAME
-snmp_sess_init, snmp_open, snmp_send, snmp_async_send, snmp_select_info, snmp_read, snmp_timeout, snmp_synch_response, snmp_close, snmp_perror, snmp_sess_perror, snmp_error, snmp_api_errstring \- session_api functions
+snmp_sess_init,
+snmp_open,
+snmp_send,
+snmp_select_info,
+snmp_read,
+snmp_timeout,
+snmp_close,
+snmp_perror,
+snmp_sess_perror,
+snmp_error,
+snmp_api_errstring \- netsnmp_session_api functions
 .SH SYNOPSIS
-#include <net-snmp/session_api.h>
+.B #include <net-snmp/session_api.h>
 .PP
-void snmp_sess_init ( struct snmp_session * );
+.BI "void snmp_sess_init ( netsnmp_session*" "sess" );
 .PP
-struct snmp_session * snmp_open ( struct snmp_session *);
+.BI "netsnmp_session* snmp_open ( netsnmp_session *" "sess");
 .RS
-.B /* Input parameter not used in active sessions */
+.I /* Input parameter not used in active sessions */
 .RE
 .PP
-int snmp_send ( struct snmp_session *session,
+.BI "int snmp_send ( netsnmp_session *" "session,"
 .RS
-struct snmp_pdu *pdu );
+.BI "netsnmp_pdu *" "pdu" );
 .RE
 .PP
-int snmp_async_send ( struct snmp_session *session,
+.BI "int snmp_select_info ( int * " numfds, "fd_set *" fdset,
 .RS
-struct snmp_pdu *pdu,
-snmp_callback callback,
-void *callbackData );
+.BI "struct timeval *" timeout, "int *" block );
 .RE
 .PP
-int snmp_select_info ( int *numfds, fd_set *fdset,
+.BI "void snmp_read ( fd_set *" fdset );
+.PP
+.B  void snmp_timeout ( void );
+.PP
+.BI "int snmp_close ( netsnmp_session *" session );
+.br
+.B  "int snmp_close_sessions ( void );
+.PP
+.SS Error Reporting
+.I (Move to output_api(3))
+.br
+.BI "void snmp_error ( netsnmp_session *session,
 .RS
-struct timeval *timeout, int *block );
+.BI "int *" pcliberr, "int *" psnmperr, "char **" pperrstring );
 .RE
 .PP
-void snmp_read ( fd_set *fdset );
+.BI "char *snmp_api_errstring ( int" snmperr );
 .PP
-void snmp_timeout ( void );
-.PP
-int snmp_synch_response ( struct snmp_session *session,
+.BI "void snmp_perror ( char *" msg );
 .RS
-struct snmp_pdu *pdu,
-struct snmp_pdu **response);
+.I /* for parsing errors only */
 .RE
 .PP
-int snmp_close ( struct snmp_session *session );
-.PP
-void snmp_error (
-struct snmp_session *session,
+.BI "void snmp_sess_perror (char *" msg, "netsnmp_session *" sess );
 .RS
-int *pcliberr,
-int *psnmperr,
-char **pperrstring );
-.RE
-.PP
-char *snmp_api_errstring ( int snmperr );
-.PP
-void snmp_perror ( char * msg );
-.RS
-.B /* for parsing errors only */
-.RE
-.PP
-void snmp_sess_perror (char * msg, struct snmp_session *);
-.RS
-.B /* all other SNMP library errors */
+.I /* all other SNMP library errors */
 .RE
 .PP
 .SH DESCRIPTION
 .I Snmp_sess_init
-prepares a struct snmp_session that sources transport characteristics
+prepares a netsnmp_session that sources transport characteristics
 and common information that will be used for a set of SNMP transactions.
 After this structure is passed to
 .I snmp_open
@@ -95,27 +94,19 @@
 .PP
 .I Snmp_open
 returns a pointer to a newly-formed
-.I struct snmp_session
+.I netsnmp_session
 object, which the application must use to reference the
 active SNMP session.
 .PP
 .I Snmp_send
-and
-.I snmp_async_send
-each take as input a pointer to a
-.I struct snmp_pdu
+takes as input a pointer to a
+.I netsnmp_pdu
 object.
 This structure contains information that describes a transaction
 that will be performed over an open session.
 .PP
 Consult snmp_api.h for the definitions of these structures.
 .PP
-With the
-.I snmp_async_send()
-call,
-.I snmp_read()
-will invoke the specified callback when the response is received.
-.PP
 .I Snmp_read, snmp_select_info,
 and
 .I snmp_timeout
@@ -165,13 +156,6 @@
 times out,
 .I snmp_timeout
 should be called to see if the timeout was intended for SNMP.
-.PP
-.I snmp_synch_response
-is a convenience routine that will send the request,
-wait for the response and process it before returning.
-See the descriptions of
-.I snmp_send, snmp_read
-etc for details.
 .SH DIAGNOSTICS
 .PP
 Previous versions of the library used
@@ -200,13 +184,13 @@
 Note that in all cases except one,
 .IR snmp_sess_perror
 should be handed the
-.I struct snmp_session *
+.I netsnmp_session *
 pointer returned from
 .IR snmp_open.
 If
 .IR snmp_open
 returns a null pointer, pass the INPUT
-.I struct snmp_session *
+.I netsnmp_session *
 pointer used to call
 .IR snmp_open.
 .PP
@@ -261,4 +245,5 @@
 .I perror
 standard routine.
 .SH "SEE ALSO"
-select(2), snmp_api.h
+select(2), netsnmp_sess_api(3), netsnmp_mib_api(3), netsnmp_pdu_api(3),
+netsnmp_varbind_api(3), snmp_api.h
diff --git a/man/netsnmp_set_data.3 b/man/netsnmp_set_data.3
deleted file mode 100644
index 6ab42a4..0000000
--- a/man/netsnmp_set_data.3
+++ /dev/null
@@ -1,61 +0,0 @@
-.TH "set_data: helps storing and retriving of data during set transactions" 3 "17 Oct 2003" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-set_data: helps storing and retriving of data during set transactions \- The set_data helper. 
-More...
-.SS "Data Structures"
-
-.in +1c
-.ti -1c
-.RI "struct \fBnetsnmp_set_data_master_s\fP"
-.br
-.ti -1c
-.RI "struct \fBnetsnmp_set_data_store_s\fP"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBnetsnmp_set_data_cache\fP (netsnmp_request_info *request, unsigned int magic_num, void *new_data, size_t new_data_len, void *old_data, size_t old_data_len)"
-.br
-.RI "\fIstores new and old information based on the magic number.\fP"
-.ti -1c
-.RI "netsnmp_set_data_ netsnmp_mib_handler * \fBnetsnmp_get_multiplexer_handler\fP (\fBnetsnmp_mib_handler_methods\fP *req)"
-.br
-.RI "\fIreturns a multiplixer handler given a \fBnetsnmp_mib_handler_methods\fP structure of subhandlers.\fP"
-.ti -1c
-.RI "int \fBnetsnmp_multiplexer_helper_handler\fP (netsnmp_mib_handler *handler, netsnmp_handler_registration *reginfo, netsnmp_agent_request_info *reqinfo, netsnmp_request_info *requests)"
-.br
-.RI "\fIimplements the multiplexer helper\fP"
-.in -1c
-.SH "DETAILED DESCRIPTION"
-.PP 
-The set_data helper.
-.PP
-.SH "FUNCTION DOCUMENTATION"
-.PP 
-.SS "netsnmp_set_data_ netsnmp_mib_handler* 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.
-.PP
-Definition at line 84 of file set_data.c.
-.PP
-References netsnmp_create_handler(), and netsnmp_multiplexer_helper_handler().
-.SS "int netsnmp_multiplexer_helper_handler (netsnmp_mib_handler * handler, netsnmp_handler_registration * reginfo, netsnmp_agent_request_info * reqinfo, netsnmp_request_info * requests)"
-.PP
-implements the multiplexer helper
-.PP
-Definition at line 105 of file set_data.c.
-.PP
-References netsnmp_call_handler(), and netsnmp_extract_iterator_context().
-.PP
-Referenced by netsnmp_get_multiplexer_handler().
-.SS "void netsnmp_set_data_cache (netsnmp_request_info * request, unsigned int magic_num, void * new_data, size_t new_data_len, void * old_data, size_t old_data_len)"
-.PP
-stores new and old information based on the magic number.
-.PP
-Definition at line 45 of file set_data.c.
-.PP
-References netsnmp_create_data_list(), netsnmp_extract_table_info(), netsnmp_request_add_list_data(), and SNMP_MIN.
diff --git a/man/netsnmp_snmp_agent.3 b/man/netsnmp_snmp_agent.3
deleted file mode 100644
index d6f4784..0000000
--- a/man/netsnmp_snmp_agent.3
+++ /dev/null
@@ -1,500 +0,0 @@
-.TH "net-snmp agent related processing" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-net-snmp agent related processing \- 
-.SS "Data Structures"
-
-.in +1c
-.ti -1c
-.RI "struct \fBaddrCache\fP"
-.br
-.ti -1c
-.RI "struct \fB_agent_nsap\fP"
-.br
-.ti -1c
-.RI "struct \fBagent_set_cache_s\fP"
-.br
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBSNMP_NEED_REQUEST_LIST\fP"
-.br
-.ti -1c
-.RI "#define \fBSNMP_ADDRCACHE_SIZE\fP   10"
-.br
-.ti -1c
-.RI "#define \fBSNMP_ADDRCACHE_MAXAGE\fP   300"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef struct \fB_agent_nsap\fP \fBagent_nsap\fP"
-.br
-.ti -1c
-.RI "typedef struct \fBagent_set_cache_s\fP \fBagent_set_cache\fP"
-.br
-.in -1c
-.SS "Enumerations"
-
-.in +1c
-.ti -1c
-.RI "enum { \fBSNMP_ADDRCACHE_UNUSED\fP =  0, \fBSNMP_ADDRCACHE_USED\fP =  1 }"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_agent_add_list_data\fP (\fBnetsnmp_agent_request_info\fP *ari, \fBnetsnmp_data_list\fP *\fBnode\fP)"
-.br
-.ti -1c
-.RI "NETSNMP_INLINE int \fBnetsnmp_agent_remove_list_data\fP (\fBnetsnmp_agent_request_info\fP *ari, const char *name)"
-.br
-.ti -1c
-.RI "NETSNMP_INLINE void * \fBnetsnmp_agent_get_list_data\fP (\fBnetsnmp_agent_request_info\fP *ari, const char *name)"
-.br
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_free_agent_data_set\fP (\fBnetsnmp_agent_request_info\fP *ari)"
-.br
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_free_agent_data_sets\fP (\fBnetsnmp_agent_request_info\fP *ari)"
-.br
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_free_agent_request_info\fP (\fBnetsnmp_agent_request_info\fP *ari)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_agent_check_packet\fP (\fBnetsnmp_session\fP *, struct \fBnetsnmp_transport_s\fP *, void *, int)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_agent_check_parse\fP (\fBnetsnmp_session\fP *, \fBnetsnmp_pdu\fP *, int)"
-.br
-.ti -1c
-.RI "void \fBdelete_subnetsnmp_tree_cache\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBhandle_pdu\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_handle_request\fP (\fBnetsnmp_agent_session\fP *asp, int status)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_wrap_up_request\fP (\fBnetsnmp_agent_session\fP *asp, int status)"
-.br
-.ti -1c
-.RI "int \fBcheck_delayed_request\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBhandle_getnext_loop\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.RI "\fIrepeatedly calls getnext handlers looking for an answer till all requests are satisified. \fP"
-.ti -1c
-.RI "int \fBhandle_set_loop\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_check_queued_chain_for\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_add_queued\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_remove_from_delegated\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_allocate_globalcacheid\fP (void)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_get_local_cachid\fP (\fBnetsnmp_cachemap\fP *cache_store, int globalid)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_cachemap\fP * \fBnetsnmp_get_or_add_local_cachid\fP (\fBnetsnmp_cachemap\fP **cache_store, int globalid, int localid)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_free_cachemap\fP (\fBnetsnmp_cachemap\fP *cache_store)"
-.br
-.ti -1c
-.RI "\fBagent_set_cache\fP * \fBsave_set_cache\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBget_set_cache\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "NETSNMP_STATIC_INLINE void \fB_reorder_getbulk\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "NETSNMP_STATIC_INLINE void \fB_fix_endofmibview\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBgetNextSessID\fP (void)"
-.br
-.ti -1c
-.RI "int \fBagent_check_and_process\fP (int block)"
-.br
-.RI "\fIThis function checks for packets arriving on the SNMP port and processes them(snmp_read) if some are found, using the select(). \fP"
-.ti -1c
-.RI "void \fBnetsnmp_addrcache_initialise\fP (void)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_addrcache_destroy\fP (void)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_addrcache_add\fP (const char *addr)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_addrcache_age\fP (void)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_agent_nsap\fP (\fBnetsnmp_transport\fP *t)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_deregister_agent_nsap\fP (int handle)"
-.br
-.ti -1c
-.RI "int \fBinit_master_agent\fP (void)"
-.br
-.ti -1c
-.RI "void \fBclear_nsap_list\fP (void)"
-.br
-.ti -1c
-.RI "void \fBshutdown_master_agent\fP (void)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_agent_session\fP * \fBinit_agent_snmp_session\fP (\fBnetsnmp_session\fP *session, \fBnetsnmp_pdu\fP *pdu)"
-.br
-.ti -1c
-.RI "void \fBfree_agent_snmp_session\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_check_for_delegated\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_check_delegated_chain_for\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_check_for_delegated_and_add\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_remove_delegated_requests_for_session\fP (\fBnetsnmp_session\fP *sess)"
-.br
-.ti -1c
-.RI "void \fBdump_sess_list\fP (void)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_remove_and_free_agent_snmp_session\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_free_agent_snmp_session_by_session\fP (\fBnetsnmp_session\fP *sess, void(*free_request)(\fBnetsnmp_request_list\fP *))"
-.br
-.ti -1c
-.RI "int \fBhandle_snmp_packet\fP (int op, \fBnetsnmp_session\fP *session, int reqid, \fBnetsnmp_pdu\fP *pdu, void *magic)"
-.br
-.RI "\fIhandles an incoming SNMP packet into the agent \fP"
-.ti -1c
-.RI "\fBnetsnmp_request_info\fP * \fBnetsnmp_add_varbind_to_cache\fP (\fBnetsnmp_agent_session\fP *asp, int vbcount, \fBnetsnmp_variable_list\fP *varbind_ptr, \fBnetsnmp_subtree\fP *tp)"
-.br
-.ti -1c
-.RI "int \fBcheck_acm\fP (\fBnetsnmp_agent_session\fP *asp, u_char type)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_create_subtree_cache\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_reassign_requests\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_delete_request_infos\fP (\fBnetsnmp_request_info\fP *reqlist)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_delete_subtree_cache\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_check_all_requests_error\fP (\fBnetsnmp_agent_session\fP *asp, int look_for_specific)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_check_requests_error\fP (\fBnetsnmp_request_info\fP *requests)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_check_requests_status\fP (\fBnetsnmp_agent_session\fP *asp, \fBnetsnmp_request_info\fP *requests, int look_for_specific)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_check_all_requests_status\fP (\fBnetsnmp_agent_session\fP *asp, int look_for_specific)"
-.br
-.ti -1c
-.RI "int \fBhandle_var_requests\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_check_outstanding_agent_requests\fP (void)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_check_transaction_id\fP (int transaction_id)"
-.br
-.RI "\fIDecide if the requested transaction_id is still being processed within the agent. \fP"
-.ti -1c
-.RI "int \fBcheck_getnext_results\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.RI "\fIreturns 1 if there are valid GETNEXT requests left. \fP"
-.ti -1c
-.RI "int \fBhandle_set\fP (\fBnetsnmp_agent_session\fP *asp)"
-.br
-.ti -1c
-.RI "NETSNMP_STATIC_INLINE int \fB_request_set_error\fP (\fBnetsnmp_request_info\fP *request, int mode, int error_value)"
-.br
-.RI "\fIset error for a request \fP"
-.ti -1c
-.RI "int \fBnetsnmp_request_set_error\fP (\fBnetsnmp_request_info\fP *request, int error_value)"
-.br
-.RI "\fIset error for a request \fP"
-.ti -1c
-.RI "int \fBnetsnmp_request_set_error_idx\fP (\fBnetsnmp_request_info\fP *request, int error_value, int idx)"
-.br
-.RI "\fIset error for a request within a request list \fP"
-.ti -1c
-.RI "NETSNMP_INLINE int \fBnetsnmp_request_set_error_all\fP (\fBnetsnmp_request_info\fP *requests, int error)"
-.br
-.RI "\fIset error for all requests \fP"
-.ti -1c
-.RI "u_long \fBnetsnmp_marker_uptime\fP (marker_t pm)"
-.br
-.ti -1c
-.RI "u_long \fBnetsnmp_timeval_uptime\fP (struct timeval *tv)"
-.br
-.ti -1c
-.RI "u_long \fBnetsnmp_get_agent_uptime\fP (void)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_set_request_error\fP (\fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *request, int error_value)"
-.br
-.RI "\fIset error for a request \fP"
-.ti -1c
-.RI "int \fBnetsnmp_set_mode_request_error\fP (int mode, \fBnetsnmp_request_info\fP *request, int error_value)"
-.br
-.RI "\fIset error for a request \fP"
-.ti -1c
-.RI "int \fBnetsnmp_set_all_requests_error\fP (\fBnetsnmp_agent_request_info\fP *reqinfo, \fBnetsnmp_request_info\fP *requests, int error_value)"
-.br
-.RI "\fIset error for all request \fP"
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "oid \fBversion_sysoid\fP [] = { NETSNMP_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
-.RI "\fBnetsnmp_agent_session\fP * \fBnetsnmp_processing_set\fP = NULL"
-.br
-.ti -1c
-.RI "\fBnetsnmp_agent_session\fP * \fBagent_delegated_list\fP = NULL"
-.br
-.ti -1c
-.RI "\fBnetsnmp_agent_session\fP * \fBnetsnmp_agent_queued_list\fP = NULL"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_running\fP = 1"
-.br
-.ti -1c
-.RI "\fBnetsnmp_session\fP * \fBmain_session\fP = NULL"
-.br
-.ti -1c
-.RI "struct timeval \fBstarttime\fP"
-.br
-.in -1c
-.SH "Function Documentation"
-.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 
-.PP
-Definition at line 3431 of file snmp_agent.c.
-.SS "int agent_check_and_process (int block)"
-.PP
-This function checks for packets arriving on the SNMP port and processes them(snmp_read) if some are found, using the select(). If block is non zero, the function call blocks until a packet arrives
-.PP
-\fBParameters:\fP
-.RS 4
-\fIblock\fP used to control blocking in the select() function, 1 = block forever, and 0 = don't block
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-Returns a positive integer if packets were processed, and -1 if an error was found. 
-.RE
-.PP
-
-.PP
-Definition at line 626 of file snmp_agent.c.
-.SS "int check_getnext_results (\fBnetsnmp_agent_session\fP * asp)"
-.PP
-returns 1 if there are valid GETNEXT requests left. Returns 0 if not. 
-.PP
-Definition at line 2883 of file snmp_agent.c.
-.SS "int handle_getnext_loop (\fBnetsnmp_agent_session\fP * 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 
-.PP
-Definition at line 3000 of file snmp_agent.c.
-.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 
-.PP
-Definition at line 1835 of file snmp_agent.c.
-.SS "\fBnetsnmp_request_info\fP* netsnmp_add_varbind_to_cache (\fBnetsnmp_agent_session\fP * asp, int vbcount, \fBnetsnmp_variable_list\fP * varbind_ptr, \fBnetsnmp_subtree\fP * tp)"
-.PP
-\fBTodo\fP
-.RS 4
-make this be more intelligent about ranges. Right now we merely take the highest level commonality of a registration range and use that. At times we might be able to be smarter about checking the range itself as opposed to the \fBnode\fP above where the range exists, but I doubt this will come up all that frequently. 
-.RE
-.PP
-
-.PP
-Definition at line 1944 of file snmp_agent.c.
-.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. 
-.PP
-Definition at line 2786 of file snmp_agent.c.
-.SS "int netsnmp_request_set_error (\fBnetsnmp_request_info\fP * request, int error_value)"
-.PP
-set error for a request \fBParameters:\fP
-.RS 4
-\fIrequest\fP request which has error 
-.br
-\fIerror_value\fP error value for request 
-.RE
-.PP
-
-.PP
-Definition at line 3499 of file snmp_agent.c.
-.SS "NETSNMP_INLINE int netsnmp_request_set_error_all (\fBnetsnmp_request_info\fP * requests, int error)"
-.PP
-set error for all requests \fBParameters:\fP
-.RS 4
-\fIrequests\fP request list 
-.br
-\fIerror\fP error value for requests 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-SNMPERR_SUCCESS, or an error code 
-.RE
-.PP
-
-.PP
-paranoid sanity checks 
-.PP
-Definition at line 3542 of file snmp_agent.c.
-.SS "int netsnmp_request_set_error_idx (\fBnetsnmp_request_info\fP * request, int error_value, int idx)"
-.PP
-set error for a request within a request list \fBParameters:\fP
-.RS 4
-\fIrequest\fP head of the request list 
-.br
-\fIerror_value\fP error value for request 
-.br
-\fIidx\fP index of the request which has the error 
-.RE
-.PP
-
-.PP
-Definition at line 3514 of file snmp_agent.c.
-.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
-.RS 4
-use netsnmp_request_set_error_all 
-.RE
-.PP
-\fBParameters:\fP
-.RS 4
-\fIreqinfo\fP agent_request_info pointer for requests 
-.br
-\fIrequests\fP request list 
-.br
-\fIerror_value\fP error value for requests 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-error_value 
-.RE
-.PP
-
-.PP
-Definition at line 3655 of file snmp_agent.c.
-.SS "int netsnmp_set_mode_request_error (int mode, \fBnetsnmp_request_info\fP * request, int error_value)"
-.PP
-set error for a request deprecated, use netsnmp_request_set_error instead
-.PP
-\fBDeprecated\fP
-.RS 4
-, use netsnmp_request_set_error instead 
-.RE
-.PP
-\fBParameters:\fP
-.RS 4
-\fImode\fP Net-SNMP agent processing mode 
-.br
-\fIrequest\fP request_info pointer 
-.br
-\fIerror_value\fP error value for requests 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-error_value 
-.RE
-.PP
-
-.PP
-Definition at line 3639 of file snmp_agent.c.
-.SS "int netsnmp_set_request_error (\fBnetsnmp_agent_request_info\fP * reqinfo, \fBnetsnmp_request_info\fP * request, int error_value)"
-.PP
-set error for a request deprecated, use netsnmp_request_set_error instead
-.PP
-\fBDeprecated\fP
-.RS 4
-, use netsnmp_request_set_error instead 
-.RE
-.PP
-\fBParameters:\fP
-.RS 4
-\fIreqinfo\fP agent_request_info pointer for request 
-.br
-\fIrequest\fP request_info pointer 
-.br
-\fIerror_value\fP error value for requests 
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-error_value 
-.RE
-.PP
-
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdelayed_instance.c\fP.
-.PP
-Definition at line 3620 of file snmp_agent.c.
-.SS "int netsnmp_wrap_up_request (\fBnetsnmp_agent_session\fP * asp, int status)"
-.PP
-if asp->pdu 
-.PP
-Definition at line 1581 of file snmp_agent.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_snmp_alarm.3 b/man/netsnmp_snmp_alarm.3
deleted file mode 100644
index 01bcbad..0000000
--- a/man/netsnmp_snmp_alarm.3
+++ /dev/null
@@ -1,43 +0,0 @@
-.TH "snmp_alarm" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-snmp_alarm \- 
-.SH SYNOPSIS
-.br
-.PP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "struct timeval \fBt\fP"
-.br
-.ti -1c
-.RI "unsigned int \fBflags\fP"
-.br
-.ti -1c
-.RI "unsigned int \fBclientreg\fP"
-.br
-.ti -1c
-.RI "struct timeval \fBt_last\fP"
-.br
-.ti -1c
-.RI "struct timeval \fBt_next\fP"
-.br
-.ti -1c
-.RI "void * \fBclientarg\fP"
-.br
-.ti -1c
-.RI "SNMPAlarmCallback * \fBthecallback\fP"
-.br
-.ti -1c
-.RI "struct \fBsnmp_alarm\fP * \fBnext\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-Definition at line 16 of file snmp_alarm.h.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_snmp_client.3 b/man/netsnmp_snmp_client.3
deleted file mode 100644
index 8c8c1ab..0000000
--- a/man/netsnmp_snmp_client.3
+++ /dev/null
@@ -1,158 +0,0 @@
-.TH "various PDU processing routines" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-various PDU processing routines \- 
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_pdu\fP * \fBsnmp_pdu_create\fP (int command)"
-.br
-.RI "\fILibrary API routines concerned with SNMP PDUs. \fP"
-.ti -1c
-.RI "\fBnetsnmp_variable_list\fP * \fBsnmp_add_null_var\fP (\fBnetsnmp_pdu\fP *pdu, const oid *name, size_t name_length)"
-.br
-.ti -1c
-.RI "int \fBsnmp_clone_var\fP (\fBnetsnmp_variable_list\fP *var, \fBnetsnmp_variable_list\fP *newvar)"
-.br
-.ti -1c
-.RI "int \fBsnmp_clone_mem\fP (void **dstPtr, const void *srcPtr, unsigned len)"
-.br
-.ti -1c
-.RI "void \fBsnmp_reset_var_buffers\fP (\fBnetsnmp_variable_list\fP *var)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_variable_list\fP * \fBsnmp_clone_varbind\fP (\fBnetsnmp_variable_list\fP *varlist)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_pdu\fP * \fBsnmp_clone_pdu\fP (\fBnetsnmp_pdu\fP *pdu)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_pdu\fP * \fBsnmp_split_pdu\fP (\fBnetsnmp_pdu\fP *pdu, int skip_count, int copy_count)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_pdu\fP * \fBsnmp_fix_pdu\fP (\fBnetsnmp_pdu\fP *pdu, int command)"
-.br
-.ti -1c
-.RI "unsigned long \fBsnmp_varbind_len\fP (\fBnetsnmp_pdu\fP *pdu)"
-.br
-.ti -1c
-.RI "int \fBsnmp_set_var_objid\fP (\fBnetsnmp_variable_list\fP *vp, const oid *objid, size_t name_length)"
-.br
-.ti -1c
-.RI "int \fBsnmp_set_var_typed_value\fP (\fBnetsnmp_variable_list\fP *newvar, u_char type, const void *val_str, size_t val_len)"
-.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
-.RI "int \fBcount_varbinds_of_type\fP (\fBnetsnmp_variable_list\fP *var_ptr, u_char type)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_variable_list\fP * \fBfind_varbind_of_type\fP (\fBnetsnmp_variable_list\fP *var_ptr, u_char type)"
-.br
-.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 "int \fBsnmp_set_var_value\fP (\fBnetsnmp_variable_list\fP *vars, const void *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)"
-.br
-.ti -1c
-.RI "void \fBsnmp_reset_var_types\fP (\fBnetsnmp_variable_list\fP *vbl, u_char new_type)"
-.br
-.ti -1c
-.RI "int \fBsnmp_synch_response_cb\fP (\fBnetsnmp_session\fP *ss, \fBnetsnmp_pdu\fP *pdu, \fBnetsnmp_pdu\fP **response, snmp_callback pcb)"
-.br
-.ti -1c
-.RI "int \fBsnmp_synch_response\fP (\fBnetsnmp_session\fP *ss, \fBnetsnmp_pdu\fP *pdu, \fBnetsnmp_pdu\fP **response)"
-.br
-.ti -1c
-.RI "int \fBsnmp_sess_synch_response\fP (void *sessp, \fBnetsnmp_pdu\fP *pdu, \fBnetsnmp_pdu\fP **response)"
-.br
-.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_unchecked\fP (void)"
-.br
-.RI "\fIReturn a pointer to the default internal query session. \fP"
-.ti -1c
-.RI "\fBnetsnmp_session\fP * \fBnetsnmp_query_get_default_session\fP (void)"
-.br
-.RI "\fIReturn a pointer to the default internal query session and log a warning message once if this session does not exist. \fP"
-.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
-.SH "Function Documentation"
-.PP 
-.SS "\fBnetsnmp_session\fP* netsnmp_query_get_default_session (void)"
-.PP
-Return a pointer to the default internal query session and log a warning message once if this session does not exist. 
-.PP
-Definition at line 1242 of file snmp_client.c.
-.SS "\fBnetsnmp_session\fP* netsnmp_query_get_default_session_unchecked (void)"
-.PP
-Return a pointer to the default internal query session. 
-.PP
-Definition at line 1232 of file snmp_client.c.
-.SS "\fBnetsnmp_pdu\fP* snmp_pdu_create (int command)"
-.PP
-Library API routines concerned with SNMP PDUs. 
-.PP
-Definition at line 131 of file snmp_client.c.
-.SS "int snmp_set_var_typed_value (\fBnetsnmp_variable_list\fP * newvar, u_char type, const void * val_str, size_t val_len)"
-.PP
-snmp_set_var_typed_value is used to set data into the netsnmp_variable_list structure. Used to return data to the snmp request via the netsnmp_request_info structure's requestvb pointer.
-.PP
-\fBParameters:\fP
-.RS 4
-\fInewvar\fP the structure gets populated with the given data, type, val_str, and val_len. 
-.br
-\fItype\fP is the asn data type to be copied 
-.br
-\fIval_str\fP is a buffer containing the value to be copied into the newvar structure. 
-.br
-\fIval_len\fP the length of val_str
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-returns 0 on success and 1 on a malloc error 
-.RE
-.PP
-
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdelayed_instance.c\fP.
-.PP
-Definition at line 719 of file snmp_client.c.
-.SS "int snmp_set_var_value (\fBnetsnmp_variable_list\fP * vars, const void * value, size_t len)"
-.PP
-FALL THROUGH 
-.PP
-Definition at line 784 of file snmp_client.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_snmp_logging.3 b/man/netsnmp_snmp_logging.3
deleted file mode 100644
index 3552e5e..0000000
--- a/man/netsnmp_snmp_logging.3
+++ /dev/null
@@ -1,249 +0,0 @@
-.TH "generic logging for net-snmp" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-generic logging for net-snmp \- 
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBLOGLENGTH\fP   1024"
-.br
-.ti -1c
-.RI "#define \fBva_copy\fP(dest, src)   memcpy (&dest, &src, sizeof (va_list))"
-.br
-.ti -1c
-.RI "#define \fBLOG_USER\fP   0"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBnetsnmp_enable_filelog\fP (\fBnetsnmp_log_handler\fP *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
-.RI "void \fBinit_snmp_logging\fP (void)"
-.br
-.ti -1c
-.RI "void \fBshutdown_snmp_logging\fP (void)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_set_line_buffering\fP (FILE *stream)"
-.br
-.ti -1c
-.RI "int \fBdecode_priority\fP (char **optarg, int *pri_max)"
-.br
-.ti -1c
-.RI "int \fBdecode_facility\fP (char *optarg)"
-.br
-.ti -1c
-.RI "int \fBsnmp_log_options\fP (char *optarg, int argc, char *const *argv)"
-.br
-.ti -1c
-.RI "char * \fBsnmp_log_syslogname\fP (const char *pstr)"
-.br
-.ti -1c
-.RI "void \fBsnmp_log_options_usage\fP (const char *lead, FILE *outf)"
-.br
-.ti -1c
-.RI "int \fBsnmp_get_do_logging\fP (void)"
-.br
-.RI "\fIIs logging done? \fP"
-.ti -1c
-.RI "void \fBsnmp_disable_syslog_entry\fP (\fBnetsnmp_log_handler\fP *logh)"
-.br
-.ti -1c
-.RI "void \fBsnmp_disable_syslog\fP (void)"
-.br
-.ti -1c
-.RI "void \fBsnmp_disable_filelog_entry\fP (\fBnetsnmp_log_handler\fP *logh)"
-.br
-.ti -1c
-.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
-.RI "void \fBsnmp_disable_calllog\fP (void)"
-.br
-.ti -1c
-.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 \fBsnmp_enable_filelog\fP (const char *logfilename, int dont_zero_log)"
-.br
-.ti -1c
-.RI "void \fBsnmp_enable_stderrlog\fP (void)"
-.br
-.ti -1c
-.RI "void \fBsnmp_enable_calllog\fP (void)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_log_handler\fP * \fBnetsnmp_find_loghandler\fP (const char *token)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_add_loghandler\fP (\fBnetsnmp_log_handler\fP *logh)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_log_handler\fP * \fBnetsnmp_register_loghandler\fP (int type, int priority)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_enable_loghandler\fP (const char *token)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_disable_loghandler\fP (const char *token)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_remove_loghandler\fP (\fBnetsnmp_log_handler\fP *logh)"
-.br
-.ti -1c
-.RI "int \fBlog_handler_stdouterr\fP (\fBnetsnmp_log_handler\fP *logh, int pri, const char *str)"
-.br
-.ti -1c
-.RI "int \fBlog_handler_syslog\fP (\fBnetsnmp_log_handler\fP *logh, int pri, const char *str)"
-.br
-.ti -1c
-.RI "int \fBlog_handler_file\fP (\fBnetsnmp_log_handler\fP *logh, int pri, const char *str)"
-.br
-.ti -1c
-.RI "int \fBlog_handler_callback\fP (\fBnetsnmp_log_handler\fP *logh, int pri, const char *str)"
-.br
-.ti -1c
-.RI "int \fBlog_handler_null\fP (\fBnetsnmp_log_handler\fP *logh, int pri, const char *str)"
-.br
-.ti -1c
-.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)"
-.br
-.RI "\fIThis snmp logging function allows \fBvariable\fP argument list given the specified priority, format and a populated va_list structure. \fP"
-.ti -1c
-.RI "int \fBsnmp_log\fP (int priority, const char *format,...)"
-.br
-.RI "\fIThis snmp logging function allows \fBvariable\fP argument list given the specified format and priority. \fP"
-.ti -1c
-.RI "void \fBsnmp_log_perror\fP (const char *s)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_log_handler\fP * \fBget_logh_head\fP (void)"
-.br
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_log_handler\fP * \fBlogh_head\fP = NULL"
-.br
-.ti -1c
-.RI "\fBnetsnmp_log_handler\fP * \fBlogh_priorities\fP [LOG_DEBUG+1]"
-.br
-.in -1c
-.SH "Function Documentation"
-.PP 
-.SS "void netsnmp_logging_restart (void)"
-.PP
-hmm, don't zero status isn't saved.. i think it's safer not to overwrite, in case a hup is just to re-read config files...
-.PP
-Definition at line 657 of file snmp_logging.c.
-.SS "int snmp_get_do_logging (void)"
-.PP
-Is logging done? \fBReturns:\fP
-.RS 4
-Returns 0 if logging is off, 1 when it is done. 
-.RE
-.PP
-
-.PP
-Definition at line 514 of file snmp_logging.c.
-.SS "int snmp_log (int priority, const char * format,  ...)"
-.PP
-This snmp logging function allows \fBvariable\fP 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.
-.PP
-\fBSee also:\fP
-.RS 4
-\fBsnmp_vlog\fP 
-.RE
-.PP
-
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdelayed_instance.c\fP.
-.PP
-Definition at line 1286 of file snmp_logging.c.
-.SS "int snmp_vlog (int priority, const char * format, va_list ap)"
-.PP
-This snmp logging function allows \fBvariable\fP 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.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIpriority\fP is an integer representing the type of message to be written to the snmp log file. The types are errors, warning, and information.
-.IP "\(bu" 2
-The error types are:
-.IP "  \(bu" 4
-LOG_EMERG system is unusable
-.IP "  \(bu" 4
-LOG_ALERT action must be taken immediately
-.IP "  \(bu" 4
-LOG_CRIT critical conditions
-.IP "  \(bu" 4
-LOG_ERR error conditions
-.PP
-
-.IP "\(bu" 2
-The warning type is:
-.IP "  \(bu" 4
-LOG_WARNING warning conditions
-.PP
-
-.IP "\(bu" 2
-The information types are:
-.IP "  \(bu" 4
-LOG_NOTICE normal but significant condition
-.IP "  \(bu" 4
-LOG_INFO informational
-.IP "  \(bu" 4
-LOG_DEBUG debug-level messages
-.PP
-
-.PP
-.br
-\fIformat\fP is a pointer to a char representing the \fBvariable\fP argument list format used.
-.br
-\fIap\fP is a va_list type used to traverse the list of arguments.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-Returns 0 on success, -1 when the code could not format the log- string, -2 when dynamic memory could not be allocated if the length of the log buffer is greater then 1024 bytes. For each of these errors a LOG_ERR messgae is written to the logfile.
-.RE
-.PP
-\fBSee also:\fP
-.RS 4
-\fBsnmp_log\fP 
-.RE
-.PP
-
-.PP
-Definition at line 1226 of file snmp_logging.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_snmp_pdu.3 b/man/netsnmp_snmp_pdu.3
deleted file mode 100644
index ad658f4..0000000
--- a/man/netsnmp_snmp_pdu.3
+++ /dev/null
@@ -1,292 +0,0 @@
-.TH "snmp_pdu" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-snmp_pdu \- 
-.PP
-The snmp protocol data unit.  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <types.h>\fP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "long \fBversion\fP"
-.br
-.RI "\fIsnmp version \fP"
-.ti -1c
-.RI "int \fBcommand\fP"
-.br
-.RI "\fIType of this PDU. \fP"
-.ti -1c
-.RI "long \fBreqid\fP"
-.br
-.RI "\fIRequest id - note: not incremented on retries. \fP"
-.ti -1c
-.RI "long \fBmsgid\fP"
-.br
-.RI "\fIMessage id for V3 messages note: incremented for each retry. \fP"
-.ti -1c
-.RI "long \fBtransid\fP"
-.br
-.RI "\fIUnique ID for incoming transactions. \fP"
-.ti -1c
-.RI "long \fBsessid\fP"
-.br
-.RI "\fISession id for AgentX messages. \fP"
-.ti -1c
-.RI "long \fBerrstat\fP"
-.br
-.RI "\fIError status (non_repeaters in GetBulk). \fP"
-.ti -1c
-.RI "long \fBerrindex\fP"
-.br
-.RI "\fIError index (max_repetitions in GetBulk). \fP"
-.ti -1c
-.RI "u_long \fBtime\fP"
-.br
-.RI "\fIUptime. \fP"
-.ti -1c
-.RI "u_long \fBflags\fP"
-.br
-.ti -1c
-.RI "int \fBsecurityModel\fP"
-.br
-.ti -1c
-.RI "int \fBsecurityLevel\fP"
-.br
-.RI "\fInoAuthNoPriv, authNoPriv, authPriv \fP"
-.ti -1c
-.RI "int \fBmsgParseModel\fP"
-.br
-.ti -1c
-.RI "void * \fBtransport_data\fP"
-.br
-.RI "\fITransport-specific opaque data. \fP"
-.ti -1c
-.RI "int \fBtransport_data_length\fP"
-.br
-.ti -1c
-.RI "const oid * \fBtDomain\fP"
-.br
-.RI "\fIThe actual transport domain. \fP"
-.ti -1c
-.RI "size_t \fBtDomainLen\fP"
-.br
-.ti -1c
-.RI "\fBnetsnmp_variable_list\fP * \fBvariables\fP"
-.br
-.ti -1c
-.RI "u_char * \fBcommunity\fP"
-.br
-.RI "\fIcommunity for outgoing requests. \fP"
-.ti -1c
-.RI "size_t \fBcommunity_len\fP"
-.br
-.RI "\fIlength of community name. \fP"
-.ti -1c
-.RI "oid * \fBenterprise\fP"
-.br
-.RI "\fISystem OID. \fP"
-.ti -1c
-.RI "size_t \fBenterprise_length\fP"
-.br
-.ti -1c
-.RI "long \fBtrap_type\fP"
-.br
-.RI "\fItrap type \fP"
-.ti -1c
-.RI "long \fBspecific_type\fP"
-.br
-.RI "\fIspecific type \fP"
-.ti -1c
-.RI "unsigned char \fBagent_addr\fP [4]"
-.br
-.RI "\fIThis is ONLY used for v1 TRAPs. \fP"
-.ti -1c
-.RI "u_char * \fBcontextEngineID\fP"
-.br
-.RI "\fIcontext snmpEngineID \fP"
-.ti -1c
-.RI "size_t \fBcontextEngineIDLen\fP"
-.br
-.RI "\fILength of contextEngineID. \fP"
-.ti -1c
-.RI "char * \fBcontextName\fP"
-.br
-.RI "\fIauthoritative contextName \fP"
-.ti -1c
-.RI "size_t \fBcontextNameLen\fP"
-.br
-.RI "\fILength of contextName. \fP"
-.ti -1c
-.RI "u_char * \fBsecurityEngineID\fP"
-.br
-.RI "\fIauthoritative snmpEngineID for security \fP"
-.ti -1c
-.RI "size_t \fBsecurityEngineIDLen\fP"
-.br
-.RI "\fILength of securityEngineID. \fP"
-.ti -1c
-.RI "char * \fBsecurityName\fP"
-.br
-.RI "\fIon behalf of this principal \fP"
-.ti -1c
-.RI "size_t \fBsecurityNameLen\fP"
-.br
-.RI "\fILength of securityName. \fP"
-.ti -1c
-.RI "int \fBpriority\fP"
-.br
-.ti -1c
-.RI "int \fBrange_subid\fP"
-.br
-.ti -1c
-.RI "void * \fBsecurityStateRef\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-The snmp protocol data unit. 
-.PP
-Definition at line 169 of file types.h.
-.SH "Field Documentation"
-.PP 
-.SS "unsigned char \fBsnmp_pdu::agent_addr\fP[4]"
-.PP
-This is ONLY used for v1 TRAPs. 
-.PP
-Definition at line 239 of file types.h.
-.SS "int \fBsnmp_pdu::command\fP"
-.PP
-Type of this PDU. 
-.PP
-Definition at line 180 of file types.h.
-.SS "u_char* \fBsnmp_pdu::community\fP"
-.PP
-community for outgoing requests. 
-.PP
-Definition at line 224 of file types.h.
-.SS "size_t \fBsnmp_pdu::community_len\fP"
-.PP
-length of community name. 
-.PP
-Definition at line 226 of file types.h.
-.SS "u_char* \fBsnmp_pdu::contextEngineID\fP"
-.PP
-context snmpEngineID 
-.PP
-Definition at line 245 of file types.h.
-.SS "size_t \fBsnmp_pdu::contextEngineIDLen\fP"
-.PP
-Length of contextEngineID. 
-.PP
-Definition at line 247 of file types.h.
-.SS "char* \fBsnmp_pdu::contextName\fP"
-.PP
-authoritative contextName 
-.PP
-Definition at line 249 of file types.h.
-.SS "size_t \fBsnmp_pdu::contextNameLen\fP"
-.PP
-Length of contextName. 
-.PP
-Definition at line 251 of file types.h.
-.SS "oid* \fBsnmp_pdu::enterprise\fP"
-.PP
-System OID. 
-.PP
-Definition at line 232 of file types.h.
-.SS "long \fBsnmp_pdu::errindex\fP"
-.PP
-Error index (max_repetitions in GetBulk). 
-.PP
-Definition at line 192 of file types.h.
-.SS "long \fBsnmp_pdu::errstat\fP"
-.PP
-Error status (non_repeaters in GetBulk). 
-.PP
-Definition at line 190 of file types.h.
-.SS "long \fBsnmp_pdu::msgid\fP"
-.PP
-Message id for V3 messages note: incremented for each retry. 
-.PP
-Definition at line 184 of file types.h.
-.SS "long \fBsnmp_pdu::reqid\fP"
-.PP
-Request id - note: not incremented on retries. 
-.PP
-Definition at line 182 of file types.h.
-.SS "u_char* \fBsnmp_pdu::securityEngineID\fP"
-.PP
-authoritative snmpEngineID for security 
-.PP
-Definition at line 253 of file types.h.
-.SS "size_t \fBsnmp_pdu::securityEngineIDLen\fP"
-.PP
-Length of securityEngineID. 
-.PP
-Definition at line 255 of file types.h.
-.SS "int \fBsnmp_pdu::securityLevel\fP"
-.PP
-noAuthNoPriv, authNoPriv, authPriv 
-.PP
-Definition at line 199 of file types.h.
-.SS "char* \fBsnmp_pdu::securityName\fP"
-.PP
-on behalf of this principal 
-.PP
-Definition at line 257 of file types.h.
-.SS "size_t \fBsnmp_pdu::securityNameLen\fP"
-.PP
-Length of securityName. 
-.PP
-Definition at line 259 of file types.h.
-.SS "long \fBsnmp_pdu::sessid\fP"
-.PP
-Session id for AgentX messages. 
-.PP
-Definition at line 188 of file types.h.
-.SS "long \fBsnmp_pdu::specific_type\fP"
-.PP
-specific type 
-.PP
-Definition at line 237 of file types.h.
-.SS "const oid* \fBsnmp_pdu::tDomain\fP"
-.PP
-The actual transport domain. This SHOULD NOT BE FREE()D. 
-.PP
-Definition at line 214 of file types.h.
-.SS "u_long \fBsnmp_pdu::time\fP"
-.PP
-Uptime. 
-.PP
-Definition at line 194 of file types.h.
-.SS "long \fBsnmp_pdu::transid\fP"
-.PP
-Unique ID for incoming transactions. 
-.PP
-Definition at line 186 of file types.h.
-.SS "void* \fBsnmp_pdu::transport_data\fP"
-.PP
-Transport-specific opaque data. This replaces the IP-centric address field. 
-.PP
-Definition at line 207 of file types.h.
-.SS "long \fBsnmp_pdu::trap_type\fP"
-.PP
-trap type 
-.PP
-Definition at line 235 of file types.h.
-.SS "long \fBsnmp_pdu::version\fP"
-.PP
-snmp version 
-.PP
-Definition at line 178 of file types.h.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_snmp_session.3 b/man/netsnmp_snmp_session.3
deleted file mode 100644
index 04ab944..0000000
--- a/man/netsnmp_snmp_session.3
+++ /dev/null
@@ -1,440 +0,0 @@
-.TH "snmp_session" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-snmp_session \- 
-.PP
-The snmp session structure.  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <types.h>\fP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "long \fBversion\fP"
-.br
-.RI "\fIsnmp version \fP"
-.ti -1c
-.RI "int \fBretries\fP"
-.br
-.RI "\fINumber of retries before timeout. \fP"
-.ti -1c
-.RI "long \fBtimeout\fP"
-.br
-.RI "\fINumber of uS until first timeout, then exponential backoff. \fP"
-.ti -1c
-.RI "u_long \fBflags\fP"
-.br
-.ti -1c
-.RI "struct \fBsnmp_session\fP * \fBsubsession\fP"
-.br
-.ti -1c
-.RI "struct \fBsnmp_session\fP * \fBnext\fP"
-.br
-.ti -1c
-.RI "char * \fBpeername\fP"
-.br
-.RI "\fIname or address of default peer (may include transport specifier and/or port number) \fP"
-.ti -1c
-.RI "u_short \fBremote_port\fP"
-.br
-.RI "\fIUDP port number of peer. \fP"
-.ti -1c
-.RI "char * \fBlocalname\fP"
-.br
-.RI "\fIMy Domain name or dotted IP address, 0 for default. \fP"
-.ti -1c
-.RI "u_short \fBlocal_port\fP"
-.br
-.RI "\fIMy UDP port number, 0 for default, picked randomly. \fP"
-.ti -1c
-.RI "u_char *(* \fBauthenticator\fP )(u_char *, size_t *, u_char *, size_t)"
-.br
-.RI "\fIAuthentication function or NULL if null authentication is used. \fP"
-.ti -1c
-.RI "netsnmp_callback \fBcallback\fP"
-.br
-.RI "\fIFunction to interpret incoming data. \fP"
-.ti -1c
-.RI "void * \fBcallback_magic\fP"
-.br
-.RI "\fIPointer to data that the callback function may consider important. \fP"
-.ti -1c
-.RI "int \fBs_errno\fP"
-.br
-.RI "\fIcopy of system errno \fP"
-.ti -1c
-.RI "int \fBs_snmp_errno\fP"
-.br
-.RI "\fIcopy of library errno \fP"
-.ti -1c
-.RI "long \fBsessid\fP"
-.br
-.RI "\fISession id - AgentX only. \fP"
-.ti -1c
-.RI "u_char * \fBcommunity\fP"
-.br
-.RI "\fIcommunity for outgoing requests. \fP"
-.ti -1c
-.RI "size_t \fBcommunity_len\fP"
-.br
-.RI "\fILength of community name. \fP"
-.ti -1c
-.RI "size_t \fBrcvMsgMaxSize\fP"
-.br
-.RI "\fILargest message to try to receive. \fP"
-.ti -1c
-.RI "size_t \fBsndMsgMaxSize\fP"
-.br
-.RI "\fILargest message to try to send. \fP"
-.ti -1c
-.RI "u_char \fBisAuthoritative\fP"
-.br
-.RI "\fIare we the authoritative engine? \fP"
-.ti -1c
-.RI "u_char * \fBcontextEngineID\fP"
-.br
-.RI "\fIauthoritative snmpEngineID \fP"
-.ti -1c
-.RI "size_t \fBcontextEngineIDLen\fP"
-.br
-.RI "\fILength of contextEngineID. \fP"
-.ti -1c
-.RI "u_int \fBengineBoots\fP"
-.br
-.RI "\fIinitial engineBoots for remote engine \fP"
-.ti -1c
-.RI "u_int \fBengineTime\fP"
-.br
-.RI "\fIinitial engineTime for remote engine \fP"
-.ti -1c
-.RI "char * \fBcontextName\fP"
-.br
-.RI "\fIauthoritative contextName \fP"
-.ti -1c
-.RI "size_t \fBcontextNameLen\fP"
-.br
-.RI "\fILength of contextName. \fP"
-.ti -1c
-.RI "u_char * \fBsecurityEngineID\fP"
-.br
-.RI "\fIauthoritative snmpEngineID \fP"
-.ti -1c
-.RI "size_t \fBsecurityEngineIDLen\fP"
-.br
-.RI "\fILength of contextEngineID. \fP"
-.ti -1c
-.RI "char * \fBsecurityName\fP"
-.br
-.RI "\fIon behalf of this principal \fP"
-.ti -1c
-.RI "size_t \fBsecurityNameLen\fP"
-.br
-.RI "\fILength of securityName. \fP"
-.ti -1c
-.RI "oid * \fBsecurityAuthProto\fP"
-.br
-.RI "\fIauth protocol oid \fP"
-.ti -1c
-.RI "size_t \fBsecurityAuthProtoLen\fP"
-.br
-.RI "\fILength of auth protocol oid. \fP"
-.ti -1c
-.RI "u_char \fBsecurityAuthKey\fP [USM_AUTH_KU_LEN]"
-.br
-.RI "\fIKu for auth protocol XXX. \fP"
-.ti -1c
-.RI "size_t \fBsecurityAuthKeyLen\fP"
-.br
-.RI "\fILength of Ku for auth protocol. \fP"
-.ti -1c
-.RI "u_char * \fBsecurityAuthLocalKey\fP"
-.br
-.RI "\fIKul for auth protocol. \fP"
-.ti -1c
-.RI "size_t \fBsecurityAuthLocalKeyLen\fP"
-.br
-.RI "\fILength of Kul for auth protocol XXX. \fP"
-.ti -1c
-.RI "oid * \fBsecurityPrivProto\fP"
-.br
-.RI "\fIpriv protocol oid \fP"
-.ti -1c
-.RI "size_t \fBsecurityPrivProtoLen\fP"
-.br
-.RI "\fILength of priv protocol oid. \fP"
-.ti -1c
-.RI "u_char \fBsecurityPrivKey\fP [USM_PRIV_KU_LEN]"
-.br
-.RI "\fIKu for privacy protocol XXX. \fP"
-.ti -1c
-.RI "size_t \fBsecurityPrivKeyLen\fP"
-.br
-.RI "\fILength of Ku for priv protocol. \fP"
-.ti -1c
-.RI "u_char * \fBsecurityPrivLocalKey\fP"
-.br
-.RI "\fIKul for priv protocol. \fP"
-.ti -1c
-.RI "size_t \fBsecurityPrivLocalKeyLen\fP"
-.br
-.RI "\fILength of Kul for priv protocol XXX. \fP"
-.ti -1c
-.RI "int \fBsecurityModel\fP"
-.br
-.RI "\fIsnmp security model, v1, v2c, usm \fP"
-.ti -1c
-.RI "int \fBsecurityLevel\fP"
-.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 \fBmodule\fP specific \fP"
-.ti -1c
-.RI "void * \fBmyvoid\fP"
-.br
-.RI "\fIuse as you want data \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-The snmp session structure. 
-.PP
-Definition at line 287 of file types.h.
-.SH "Field Documentation"
-.PP 
-.SS "u_char*(* \fBsnmp_session::authenticator\fP)(u_char *, size_t *, u_char *, size_t)"
-.PP
-Authentication function or NULL if null authentication is used. 
-.SS "netsnmp_callback \fBsnmp_session::callback\fP"
-.PP
-Function to interpret incoming data. 
-.PP
-Definition at line 314 of file types.h.
-.SS "void* \fBsnmp_session::callback_magic\fP"
-.PP
-Pointer to data that the callback function may consider important. 
-.PP
-Definition at line 318 of file types.h.
-.SS "u_char* \fBsnmp_session::community\fP"
-.PP
-community for outgoing requests. 
-.PP
-Definition at line 330 of file types.h.
-.SS "size_t \fBsnmp_session::community_len\fP"
-.PP
-Length of community name. 
-.PP
-Definition at line 332 of file types.h.
-.SS "u_char* \fBsnmp_session::contextEngineID\fP"
-.PP
-authoritative snmpEngineID 
-.PP
-Definition at line 344 of file types.h.
-.SS "size_t \fBsnmp_session::contextEngineIDLen\fP"
-.PP
-Length of contextEngineID. 
-.PP
-Definition at line 346 of file types.h.
-.SS "char* \fBsnmp_session::contextName\fP"
-.PP
-authoritative contextName 
-.PP
-Definition at line 352 of file types.h.
-.SS "size_t \fBsnmp_session::contextNameLen\fP"
-.PP
-Length of contextName. 
-.PP
-Definition at line 354 of file types.h.
-.SS "u_int \fBsnmp_session::engineBoots\fP"
-.PP
-initial engineBoots for remote engine 
-.PP
-Definition at line 348 of file types.h.
-.SS "u_int \fBsnmp_session::engineTime\fP"
-.PP
-initial engineTime for remote engine 
-.PP
-Definition at line 350 of file types.h.
-.SS "u_char \fBsnmp_session::isAuthoritative\fP"
-.PP
-are we the authoritative engine? 
-.PP
-Definition at line 342 of file types.h.
-.SS "u_short \fBsnmp_session::local_port\fP"
-.PP
-My UDP port number, 0 for default, picked randomly. 
-.PP
-Definition at line 308 of file types.h.
-.SS "char* \fBsnmp_session::localname\fP"
-.PP
-My Domain name or dotted IP address, 0 for default. 
-.PP
-Definition at line 306 of file types.h.
-.SS "void* \fBsnmp_session::myvoid\fP"
-.PP
-use as you want data used by 'SNMP_FLAGS_RESP_CALLBACK' handling in the agent XXX: or should we add a new field into this structure? 
-.PP
-Definition at line 408 of file types.h.
-.SS "char* \fBsnmp_session::paramName\fP"
-.PP
-target param name 
-.PP
-Definition at line 395 of file types.h.
-.SS "char* \fBsnmp_session::peername\fP"
-.PP
-name or address of default peer (may include transport specifier and/or port number) 
-.PP
-Definition at line 302 of file types.h.
-.SS "size_t \fBsnmp_session::rcvMsgMaxSize\fP"
-.PP
-Largest message to try to receive. 
-.PP
-Definition at line 334 of file types.h.
-.SS "u_short \fBsnmp_session::remote_port\fP"
-.PP
-UDP port number of peer. (NO LONGER USED - USE peername INSTEAD) 
-.PP
-Definition at line 304 of file types.h.
-.SS "int \fBsnmp_session::retries\fP"
-.PP
-Number of retries before timeout. 
-.PP
-Definition at line 294 of file types.h.
-.SS "int \fBsnmp_session::s_errno\fP"
-.PP
-copy of system errno 
-.PP
-Definition at line 320 of file types.h.
-.SS "int \fBsnmp_session::s_snmp_errno\fP"
-.PP
-copy of library errno 
-.PP
-Definition at line 322 of file types.h.
-.SS "u_char \fBsnmp_session::securityAuthKey\fP[USM_AUTH_KU_LEN]"
-.PP
-Ku for auth protocol XXX. 
-.PP
-Definition at line 369 of file types.h.
-.SS "size_t \fBsnmp_session::securityAuthKeyLen\fP"
-.PP
-Length of Ku for auth protocol. 
-.PP
-Definition at line 371 of file types.h.
-.SS "u_char* \fBsnmp_session::securityAuthLocalKey\fP"
-.PP
-Kul for auth protocol. 
-.PP
-Definition at line 373 of file types.h.
-.SS "size_t \fBsnmp_session::securityAuthLocalKeyLen\fP"
-.PP
-Length of Kul for auth protocol XXX. 
-.PP
-Definition at line 375 of file types.h.
-.SS "oid* \fBsnmp_session::securityAuthProto\fP"
-.PP
-auth protocol oid 
-.PP
-Definition at line 365 of file types.h.
-.SS "size_t \fBsnmp_session::securityAuthProtoLen\fP"
-.PP
-Length of auth protocol oid. 
-.PP
-Definition at line 367 of file types.h.
-.SS "u_char* \fBsnmp_session::securityEngineID\fP"
-.PP
-authoritative snmpEngineID 
-.PP
-Definition at line 356 of file types.h.
-.SS "size_t \fBsnmp_session::securityEngineIDLen\fP"
-.PP
-Length of contextEngineID. 
-.PP
-Definition at line 358 of file types.h.
-.SS "void* \fBsnmp_session::securityInfo\fP"
-.PP
-security \fBmodule\fP specific 
-.PP
-Definition at line 400 of file types.h.
-.SS "int \fBsnmp_session::securityLevel\fP"
-.PP
-noAuthNoPriv, authNoPriv, authPriv 
-.PP
-Definition at line 393 of file types.h.
-.SS "int \fBsnmp_session::securityModel\fP"
-.PP
-snmp security model, v1, v2c, usm 
-.PP
-Definition at line 391 of file types.h.
-.SS "char* \fBsnmp_session::securityName\fP"
-.PP
-on behalf of this principal 
-.PP
-Definition at line 360 of file types.h.
-.SS "size_t \fBsnmp_session::securityNameLen\fP"
-.PP
-Length of securityName. 
-.PP
-Definition at line 362 of file types.h.
-.SS "u_char \fBsnmp_session::securityPrivKey\fP[USM_PRIV_KU_LEN]"
-.PP
-Ku for privacy protocol XXX. 
-.PP
-Definition at line 382 of file types.h.
-.SS "size_t \fBsnmp_session::securityPrivKeyLen\fP"
-.PP
-Length of Ku for priv protocol. 
-.PP
-Definition at line 384 of file types.h.
-.SS "u_char* \fBsnmp_session::securityPrivLocalKey\fP"
-.PP
-Kul for priv protocol. 
-.PP
-Definition at line 386 of file types.h.
-.SS "size_t \fBsnmp_session::securityPrivLocalKeyLen\fP"
-.PP
-Length of Kul for priv protocol XXX. 
-.PP
-Definition at line 388 of file types.h.
-.SS "oid* \fBsnmp_session::securityPrivProto\fP"
-.PP
-priv protocol oid 
-.PP
-Definition at line 378 of file types.h.
-.SS "size_t \fBsnmp_session::securityPrivProtoLen\fP"
-.PP
-Length of priv protocol oid. 
-.PP
-Definition at line 380 of file types.h.
-.SS "long \fBsnmp_session::sessid\fP"
-.PP
-Session id - AgentX only. 
-.PP
-Definition at line 324 of file types.h.
-.SS "size_t \fBsnmp_session::sndMsgMaxSize\fP"
-.PP
-Largest message to try to send. 
-.PP
-Definition at line 336 of file types.h.
-.SS "long \fBsnmp_session::timeout\fP"
-.PP
-Number of uS until first timeout, then exponential backoff. 
-.PP
-Definition at line 296 of file types.h.
-.SS "long \fBsnmp_session::version\fP"
-.PP
-snmp version 
-.PP
-Definition at line 292 of file types.h.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_stash_cache.3 b/man/netsnmp_stash_cache.3
deleted file mode 100644
index 34e237f..0000000
--- a/man/netsnmp_stash_cache.3
+++ /dev/null
@@ -1,94 +0,0 @@
-.TH "stash_cache" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-stash_cache \- 
-.PP
-Automatically caches data for certain handlers.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_stash_cache_info\fP * \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 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 "\fBnetsnmp_oid_stash_node\fP ** \fBnetsnmp_extract_stash_cache\fP (\fBnetsnmp_agent_request_info\fP *reqinfo)"
-.br
-.RI "\fIextracts a pointer to the stash_cache info from the reqinfo structure. \fP"
-.ti -1c
-.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 \fB_netsnmp_stash_cache_load\fP (\fBnetsnmp_cache\fP *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 (\fBnetsnmp_cache\fP *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"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Automatically caches data for certain handlers. 
-
-This handler caches data in an optimized way which may alleviate 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 (\fBnetsnmp_cache\fP * cache, void * magic)"
-.PP
-updates a given cache depending on whether it needs to or not. 
-.PP
-Definition at line 190 of file stash_cache.c.
-.SS "\fBnetsnmp_oid_stash_node\fP** netsnmp_extract_stash_cache (\fBnetsnmp_agent_request_info\fP * reqinfo)"
-.PP
-extracts a pointer to the stash_cache info from the reqinfo structure. 
-.PP
-Definition at line 109 of file stash_cache.c.
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_bare_stash_cache_handler (void)"
-.PP
-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. 
-.PP
-Definition at line 75 of file stash_cache.c.
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_stash_cache_handler (void)"
-.PP
-returns a stash_cache handler sub-chain that can be injected into a given (arbitrary) handler chain, using a fixed cache timeout. 
-.PP
-Definition at line 84 of file stash_cache.c.
-.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. 
-.PP
-Definition at line 40 of file stash_cache.c.
-.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. 
-.PP
-Definition at line 97 of file stash_cache.c.
-.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. 
-.PP
-Definition at line 233 of file stash_cache.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_stash_to_next.3 b/man/netsnmp_stash_to_next.3
deleted file mode 100644
index 240bdea..0000000
--- a/man/netsnmp_stash_to_next.3
+++ /dev/null
@@ -1,34 +0,0 @@
-.TH "stash_to_next" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-stash_to_next \- 
-.PP
-Convert GET_STASH requests into GETNEXT requests for the handler.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_stash_to_next_handler\fP (void)"
-.br
-.RI "\fIreturns a stash_to_next handler that can be injected into a given handler chain. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_stash_to_next_helper\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
-.SH "Detailed Description"
-.PP 
-Convert GET_STASH requests into GETNEXT requests for the handler. 
-
-The purpose of this handler is to convert a GET_STASH auto-cache request to a series of GETNEXT requests. It can be inserted into a handler chain where the lower-level handlers don't process such requests themselves. 
-.SH "Function Documentation"
-.PP 
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_stash_to_next_handler (void)"
-.PP
-returns a stash_to_next handler that can be injected into a given handler chain. 
-.PP
-Definition at line 23 of file stash_to_next.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_table.3 b/man/netsnmp_table.3
deleted file mode 100644
index a070a5a..0000000
--- a/man/netsnmp_table.3
+++ /dev/null
@@ -1,244 +0,0 @@
-.TH "table" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-table \- 
-.PP
-Helps you implement a table.  
-
-.SS "Modules"
-
-.in +1c
-.ti -1c
-.RI "\fBtable_array\fP"
-.br
-.PP
-
-.RI "\fIHelps you implement a table when data can be stored locally. \fP"
-.ti -1c
-.RI "\fBtable_container\fP"
-.br
-.PP
-
-.RI "\fIHelps you implement a table when data can be found via a netsnmp_container. \fP"
-.ti -1c
-.RI "\fBtable_data\fP"
-.br
-.PP
-
-.RI "\fIHelps you implement a table with datamatted storage. \fP"
-.ti -1c
-.RI "\fBgeneric_table_API\fP"
-.br
-.PP
-
-.RI "\fIGeneral requirements for a table helper. \fP"
-.ti -1c
-.RI "\fBtable_iterator\fP"
-.br
-.PP
-
-.RI "\fIThe 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. \fP"
-.ti -1c
-.RI "\fBtable_row\fP"
-.br
-.PP
-
-.RI "\fIHelps you implement a table shared across two or more subagents, or otherwise split into individual row slices. \fP"
-.ti -1c
-.RI "\fBtdata\fP"
-.br
-.PP
-
-.RI "\fIImplement a table with datamatted storage. \fP"
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBSPARSE_TABLE_HANDLER_NAME\fP   'sparse_table'"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_table_handler\fP (\fBnetsnmp_table_registration_info\fP *tabreq)"
-.br
-.RI "\fIGiven a netsnmp_table_registration_info object, creates a table handler. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_table\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_table_registration_info\fP *tabreq)"
-.br
-.RI "\fIcreates 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. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_unregister_table\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.ti -1c
-.RI "NETSNMP_INLINE \fBnetsnmp_table_request_info\fP * \fBnetsnmp_extract_table_info\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIExtracts the processed table information from a given request. \fP"
-.ti -1c
-.RI "\fBnetsnmp_table_registration_info\fP * \fBnetsnmp_find_table_registration_info\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.RI "\fIextracts the registered netsnmp_table_registration_info object from a netsnmp_handler_registration object \fP"
-.ti -1c
-.RI "int \fBtable_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 helper handler \fP"
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_sparse_table_handler_get\fP (void)"
-.br
-.RI "\fIcreate sparse table handler \fP"
-.ti -1c
-.RI "int \fBnetsnmp_sparse_table_register\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_table_registration_info\fP *tabreq)"
-.br
-.RI "\fIcreates 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. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_table_build_result\fP (\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)"
-.br
-.RI "\fIBuilds the result to be returned to the agent given the table information. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_table_build_oid\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_request_info\fP *reqinfo, \fBnetsnmp_table_request_info\fP *table_info)"
-.br
-.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_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 "\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
-.RI "\fIparses an OID into table indexses \fP"
-.ti -1c
-.RI "int \fBnetsnmp_update_indexes_from_variable_list\fP (\fBnetsnmp_table_request_info\fP *tri)"
-.br
-.RI "\fIbuilds an oid given a set of indexes. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_check_getnext_reply\fP (\fBnetsnmp_request_info\fP *request, oid *prefix, size_t prefix_len, \fBnetsnmp_variable_list\fP *newvar, \fBnetsnmp_variable_list\fP **outvar)"
-.br
-.RI "\fIchecks 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. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_table_registration_info_free\fP (\fBnetsnmp_table_registration_info\fP *tri)"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-Helps you implement a table. 
-
-This handler helps you implement a table by doing some of the processing for you.
-.PP
-This handler truly shows the power of the new handler mechanism. By creating a table handler and injecting it into your calling chain, or by using the \fBnetsnmp_register_table()\fP function to register your table, you get access to some pre-parsed information. Specifically, the table handler pulls out the column number and indexes from the request oid so that you don't have to do the complex work to do that parsing within your own code.
-.PP
-To do this, the table handler needs to know up front how your table is structured. To inform it about this, you fill in a table_registeration_info structure that is passed to the table handler. It contains the asn index types for the table as well as the minimum and maximum column that should be used. 
-.SH "Function Documentation"
-.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. 
-.PP
-Definition at line 929 of file table.c.
-.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.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIrequest\fP populated netsnmp request structure
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-populated netsnmp_table_request_info structure 
-.RE
-.PP
-
-.PP
-Definition at line 143 of file table.c.
-.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 
-.PP
-Definition at line 152 of file table.c.
-.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.
-.PP
-The table helper handler pulls out the column number and indexes from the request oid so that you don't have to do the complex work of parsing within your own code.
-.PP
-\fBParameters:\fP
-.RS 4
-\fItabreq\fP is a pointer to a netsnmp_table_registration_info struct. The table handler needs to know up front how your table is structured. A netsnmp_table_registeration_info structure that is passed to the table handler should contain the asn index types for the table as well as the minimum and maximum column that should be used.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-Returns a pointer to a netsnmp_mib_handler struct which contains the handler's name and the access method 
-.RE
-.PP
-
-.PP
-Definition at line 91 of file table.c.
-.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. 
-.PP
-Definition at line 114 of file table.c.
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_sparse_table_handler_get (void)"
-.PP
-create sparse table handler 
-.PP
-Definition at line 745 of file table.c.
-.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. 
-.PP
-handler1 is in reginfo... remove and free??
-.PP
-both handlers now in reginfo, so nothing to do on error 
-.PP
-Definition at line 756 of file table.c.
-.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. Index values are extracted from the table_info varbinds. 
-.PP
-.Entry
-.PP
-.column 
-.PP
-Definition at line 832 of file table.c.
-.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
-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. 
-.PP
-Definition at line 869 of file table.c.
-.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. 
-.PP
-Definition at line 799 of file table.c.
-.SS "int netsnmp_update_indexes_from_variable_list (\fBnetsnmp_table_request_info\fP * tri)"
-.PP
-builds an oid given a set of indexes. 
-.PP
-Definition at line 911 of file table.c.
-.SS "int netsnmp_update_variable_list_from_index (\fBnetsnmp_table_request_info\fP * tri)"
-.PP
-parses an OID into table indexses 
-.PP
-Definition at line 895 of file table.c.
-.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 
-.PP
-XXX-rks: memory leak. add cleanup handler?
-.PP
-none available
-.PP
-got one ok
-.PP
-for loop 
-.PP
-Definition at line 160 of file table.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_table_array.3 b/man/netsnmp_table_array.3
deleted file mode 100644
index 38b1bec..0000000
--- a/man/netsnmp_table_array.3
+++ /dev/null
@@ -1,85 +0,0 @@
-.TH "table_array" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-table_array \- 
-.PP
-Helps you implement a table when data can be stored locally.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "int \fBnetsnmp_table_container_register\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_table_registration_info\fP *tabreg, \fBnetsnmp_table_array_callbacks\fP *cb, \fBnetsnmp_container\fP *container, int group_rows)"
-.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, \fBnetsnmp_table_array_callbacks\fP *cb, \fBnetsnmp_container\fP *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"
-.ti -1c
-.RI "\fBnetsnmp_container\fP * \fBnetsnmp_extract_array_context\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIfind the context data used by the table_array helper \fP"
-.ti -1c
-.RI "int \fBnetsnmp_table_array_check_row_status\fP (\fBnetsnmp_table_array_callbacks\fP *cb, \fBnetsnmp_request_group\fP *ag, long *rs_new, long *rs_old)"
-.br
-.RI "\fIthis function is called to validate RowStatus transitions. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-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.
-.PP
-The table_array handler is used (automatically) in conjuntion with the \fBtable\fP handler. It is primarily intended to be used with the mib2c configuration file mib2c.array-user.conf.
-.PP
-The code generated by mib2c is useful when you have control of the data for each row. If you cannot control when rows are added and deleted (or at least be notified of changes to row data), then this handler is probably not for you.
-.PP
-This handler makes use of callbacks (function pointers) to handle various tasks. Code is generated for each callback, but will need to be reviewed and flushed out by the user.
-.PP
-NOTE NOTE NOTE: Once place where mib2c is somewhat lacking is with regards to tables with external indices. If your table makes use of one or more external indices, please review the generated code very carefully for comments regarding external indices.
-.PP
-NOTE NOTE NOTE: This helper, the API and callbacks are still being tested and may change.
-.PP
-The generated code will define a structure for storage of table related data. This structure must be used, as it contains the index OID for the row, which is used for keeping the array sorted. You can add addition fields or data to the structure for your own use.
-.PP
-The generated code will also have code to handle SNMP-SET processing. If your table does not support any SET operations, simply comment out the #define <PREFIX>_SET_HANDLING (where <PREFIX> is your table name) in the header file.
-.PP
-SET processing modifies the row in-place. The duplicate_row callback will be called to save a copy of the original row. In the event of a failure before the commite phase, the row_copy callback will be called to restore the original row from the copy.
-.PP
-Code will be generated to handle row creation. This code may be disabled by commenting out the #define <PREFIX>_ROW_CREATION in the header file.
-.PP
-If your table contains a RowStatus object, by default the code will not allow object in an active row to be modified. To allow active rows to be modified, remove the comment block around the #define <PREFIX>_CAN_MODIFY_ACTIVE_ROW in the header file.
-.PP
-Code will be generated to maintain a secondary index for all rows, stored in a binary \fBtree\fP. This is very useful for finding rows by a key other than the OID index. By default, the functions for maintaining this \fBtree\fP will be based on a character string. NOTE: this will likely be made into a more generic mechanism, using new callback methods, in the near future.
-.PP
-The generated code contains many TODO comments. Make sure you check each one to see if it applies to your code. Examples include checking indices for syntax (ranges, etc), initializing default values in newly created rows, checking for row activation and deactivation requirements, etc. 
-.SH "Function Documentation"
-.PP 
-.SS "\fBnetsnmp_container\fP* netsnmp_extract_array_context (\fBnetsnmp_request_info\fP * request)"
-.PP
-find the context data used by the table_array helper 
-.PP
-Definition at line 230 of file table_array.c.
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_find_table_array_handler (\fBnetsnmp_handler_registration\fP * reginfo)"
-.PP
-find the handler for the table_array helper. 
-.PP
-Definition at line 213 of file table_array.c.
-.SS "int netsnmp_table_array_check_row_status (\fBnetsnmp_table_array_callbacks\fP * cb, \fBnetsnmp_request_group\fP * ag, long * rs_new, long * rs_old)"
-.PP
-this function is called to validate RowStatus transitions. 
-.PP
-Definition at line 237 of file table_array.c.
-.SS "int netsnmp_table_container_register (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_table_registration_info\fP * tabreg, \fBnetsnmp_table_array_callbacks\fP * cb, \fBnetsnmp_container\fP * 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. 
-.PP
-Definition at line 150 of file table_array.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_table_container.3 b/man/netsnmp_table_container.3
deleted file mode 100644
index e25ec02..0000000
--- a/man/netsnmp_table_container.3
+++ /dev/null
@@ -1,120 +0,0 @@
-.TH "table_container" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-table_container \- 
-.PP
-Helps you implement a table when data can be found via a netsnmp_container.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBcontainer_table_data\fP * \fBnetsnmp_tcontainer_create_table\fP (const char *name, \fBnetsnmp_container\fP *container, long flags)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_tcontainer_delete_table\fP (\fBcontainer_table_data\fP *table)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_tcontainer_add_row\fP (\fBcontainer_table_data\fP *table, \fBnetsnmp_index\fP *row)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_index\fP * \fBnetsnmp_tcontainer_remove_row\fP (\fBcontainer_table_data\fP *table, \fBnetsnmp_index\fP *row)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_tcontainer_replace_row\fP (\fBcontainer_table_data\fP *table, \fBnetsnmp_index\fP *old_row, \fBnetsnmp_index\fP *new_row)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_container_table_handler_get\fP (\fBnetsnmp_table_registration_info\fP *tabreg, \fBnetsnmp_container\fP *container, char key_type)"
-.br
-.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, \fBnetsnmp_container\fP *container, char key_type)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_container_table_unregister\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_container\fP * \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_insert\fP (\fBnetsnmp_request_info\fP *request, \fBnetsnmp_index\fP *row)"
-.br
-.RI "\fIinserts a newly created table_container entry into a request list \fP"
-.ti -1c
-.RI "\fBnetsnmp_index\fP * \fBnetsnmp_table_index_find_next_row\fP (\fBnetsnmp_container\fP *c, \fBnetsnmp_table_request_info\fP *tblreq)"
-.br
-.RI "\fIdeprecated, backwards compatability only \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Helps you implement a table when data can be found via a netsnmp_container. 
-
-The table_container handler is used (automatically) in conjuntion with the \fBtable\fP handler.
-.PP
-This handler will use the index information provided by the \fBtable\fP handler to find the row needed to process the request.
-.PP
-The container must use one of 3 key types. It is the sub-handler's responsibility to ensure that the container and key type match (unless neither is specified, in which case a default will be used.)
-.PP
-The current key types are:
-.PP
-TABLE_CONTAINER_KEY_NETSNMP_INDEX The container should do comparisons based on a key that may be cast to a netsnmp index (netsnmp_index *). This index contains only the index portion of the OID, not the entire OID.
-.PP
-TABLE_CONTAINER_KEY_VARBIND_INDEX The container should do comparisons based on a key that may be cast to a netsnmp \fBvariable\fP list (netsnmp_variable_list *). This \fBvariable\fP list will contain one varbind for each index component.
-.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 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
-The container must, at a minimum, implement find and find_next. If a NULL key is passed to the container, it must return the first item, if any. All containers provided by net-snmp fulfil this requirement.
-.PP
-This handler will only register to process 'data lookup' modes. In traditional net-snmp modes, that is any GET-like mode (GET, GET-NEXT, GET-BULK) or the first phase of a SET (RESERVE1). In the new baby-steps mode, DATA_LOOKUP is it's own mode, and is a pre-cursor to other modes.
-.PP
-When called, the handler will call the appropriate container method with the appropriate key type. If a row was not found, the result depends on the mode.
-.PP
-GET Processing An exact match must be found. If one is not, the error NOSUCHINSTANCE is set.
-.PP
-GET-NEXT / GET-BULK If no row is found, the column number will be increased (using any valid_columns structure that may have been provided), and the first row will be retrieved. If no first row is found, the processed flag will be set, so that the sub-handler can skip any processing related to the request. The agent will notice this unsatisfied request, and attempt to pass it to the next appropriate handler.
-.PP
-SET If the hander did not register with the HANDLER_CAN_NOT_CREATE flag set in the registration modes, it is assumed that this is a row creation request and a NULL row is added to the request's data list. The sub-handler is responsbile for dealing with any row creation contraints and inserting any newly created rows into the container and the request's data list.
-.PP
-If a row is found, it will be inserted into the request's data list. The sub-handler may retrieve it by calling netsnmp_container_table_extract_context(request); * NOTE NOTE NOTE:
-.PP
-This helper and it's API are still being tested and are subject to change. 
-.SH "Function Documentation"
-.PP 
-.SS "\fBnetsnmp_container\fP* netsnmp_container_table_container_extract (\fBnetsnmp_request_info\fP * request)"
-.PP
-retrieve the container used by the table_container helper 
-.PP
-Definition at line 339 of file table_container.c.
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_container_table_handler_get (\fBnetsnmp_table_registration_info\fP * tabreg, \fBnetsnmp_container\fP * container, char key_type)"
-.PP
-returns a netsnmp_mib_handler object for the table_container helper 
-.PP
-Definition at line 255 of file table_container.c.
-.SS "void netsnmp_container_table_row_insert (\fBnetsnmp_request_info\fP * request, \fBnetsnmp_index\fP * row)"
-.PP
-inserts a newly created table_container entry into a request list 
-.PP
-Definition at line 370 of file table_container.c.
-.SS "\fBnetsnmp_index\fP* netsnmp_table_index_find_next_row (\fBnetsnmp_container\fP * 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
-
-.PP
-Definition at line 740 of file table_container.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_table_data.3 b/man/netsnmp_table_data.3
deleted file mode 100644
index c81d874..0000000
--- a/man/netsnmp_table_data.3
+++ /dev/null
@@ -1,286 +0,0 @@
-.TH "table_data" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-table_data \- 
-.PP
-Helps you implement a table with datamatted storage.  
-
-.SS "Modules"
-
-.in +1c
-.ti -1c
-.RI "\fBtable_dataset\fP"
-.br
-.PP
-
-.RI "\fIHelps you implement a table with automatted storage. \fP"
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBnetsnmp_table_data_generate_index_oid\fP (\fBnetsnmp_table_row\fP *row)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_table_data\fP * \fBnetsnmp_create_table_data\fP (const char *name)"
-.br
-.RI "\fIcreates and returns a pointer to table data set \fP"
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_create_table_data_row\fP (void)"
-.br
-.RI "\fIcreates and returns a pointer to table data set \fP"
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_clone_row\fP (\fBnetsnmp_table_row\fP *row)"
-.br
-.RI "\fIclones a data row. \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_table_data_delete_row\fP (\fBnetsnmp_table_row\fP *row)"
-.br
-.RI "\fIdeletes a row's memory. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_table_data_add_row\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_table_row\fP *row)"
-.br
-.RI "\fIAdds a row of data to a given table (stored in proper lexographical order). \fP"
-.ti -1c
-.RI "void \fBnetsnmp_table_data_replace_row\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_table_row\fP *origrow, \fBnetsnmp_table_row\fP *newrow)"
-.br
-.RI "\fIswaps out origrow with newrow. \fP"
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_remove_row\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_table_row\fP *row)"
-.br
-.RI "\fIremoves a row of data to a given table and returns it (no free's called) \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_table_data_remove_and_delete_row\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_table_row\fP *row)"
-.br
-.RI "\fIremoves and frees a row of data to a given table and returns the void * \fP"
-.ti -1c
-.RI "\fBnetsnmp_table_data\fP * \fBnetsnmp_table_data_create_table\fP (const char *name, long flags)"
-.br
-.ti -1c
-.RI "void \fBnetsnmp_table_data_delete_table\fP (\fBnetsnmp_table_data\fP *table)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_create_row\fP (void *entry)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_table_data_copy_row\fP (\fBnetsnmp_table_row\fP *old_row, \fBnetsnmp_table_row\fP *new_row)"
-.br
-.ti -1c
-.RI "void * \fBnetsnmp_table_data_remove_delete_row\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_table_row\fP *row)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_table_data_handler\fP (\fBnetsnmp_table_data\fP *table)"
-.br
-.RI "\fICreates a table_data handler and returns it. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_table_data\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_table_data\fP *table, \fBnetsnmp_table_registration_info\fP *table_info)"
-.br
-.RI "\fIregisters a handler as a data table. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_register_read_only_table_data\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_table_data\fP *table, \fBnetsnmp_table_registration_info\fP *table_info)"
-.br
-.RI "\fIregisters a handler as a read-only data table If table_info != NULL, it registers it as a normal table too. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_unregister_table_data\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.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
-.ti -1c
-.RI "\fBnetsnmp_table_data\fP * \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 "\fBnetsnmp_table_row\fP * \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 "void \fBnetsnmp_insert_table_row\fP (\fBnetsnmp_request_info\fP *request, \fBnetsnmp_table_row\fP *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, \fBnetsnmp_table_row\fP *row, int column, u_char type, u_char *result_data, size_t result_data_len)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_get_first_row\fP (\fBnetsnmp_table_data\fP *table)"
-.br
-.RI "\fIreturns the first row in the table \fP"
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_get_next_row\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_table_row\fP *row)"
-.br
-.RI "\fIreturns the next row in the table \fP"
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_get\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_variable_list\fP *indexes)"
-.br
-.RI "\fIfinds the data in 'datalist' stored at 'indexes' \fP"
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_get_from_oid\fP (\fBnetsnmp_table_data\fP *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 (\fBnetsnmp_table_data\fP *table)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_row_first\fP (\fBnetsnmp_table_data\fP *table)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_row_get\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_table_row\fP *row)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_row_next\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_table_row\fP *row)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_row_get_byoid\fP (\fBnetsnmp_table_data\fP *table, oid *instance, size_t len)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_row_next_byoid\fP (\fBnetsnmp_table_data\fP *table, oid *instance, size_t len)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_row_get_byidx\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_variable_list\fP *indexes)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_row_next_byidx\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_variable_list\fP *indexes)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_table_data_row_count\fP (\fBnetsnmp_table_data\fP *table)"
-.br
-.ti -1c
-.RI "void * \fBnetsnmp_table_data_entry_first\fP (\fBnetsnmp_table_data\fP *table)"
-.br
-.ti -1c
-.RI "void * \fBnetsnmp_table_data_entry_get\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_table_row\fP *row)"
-.br
-.ti -1c
-.RI "void * \fBnetsnmp_table_data_entry_next\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_table_row\fP *row)"
-.br
-.ti -1c
-.RI "void * \fBnetsnmp_table_data_entry_get_byidx\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_variable_list\fP *indexes)"
-.br
-.ti -1c
-.RI "void * \fBnetsnmp_table_data_entry_next_byidx\fP (\fBnetsnmp_table_data\fP *table, \fBnetsnmp_variable_list\fP *indexes)"
-.br
-.ti -1c
-.RI "void * \fBnetsnmp_table_data_entry_get_byoid\fP (\fBnetsnmp_table_data\fP *table, oid *instance, size_t len)"
-.br
-.ti -1c
-.RI "void * \fBnetsnmp_table_data_entry_next_byoid\fP (\fBnetsnmp_table_data\fP *table, oid *instance, size_t len)"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-Helps you implement a table with datamatted storage. 
-
-This helper is obsolete. If you are writing a new \fBmodule\fP, 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 "\fBnetsnmp_table_data\fP* netsnmp_create_table_data (const char * name)"
-.PP
-creates and returns a pointer to table data set 
-.PP
-Definition at line 53 of file table_data.c.
-.SS "\fBnetsnmp_table_row\fP* netsnmp_create_table_data_row (void)"
-.PP
-creates and returns a pointer to table data set 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdata_set.c\fP.
-.PP
-Definition at line 63 of file table_data.c.
-.SS "\fBnetsnmp_table_data\fP* netsnmp_extract_table (\fBnetsnmp_request_info\fP * request)"
-.PP
-extracts the table being accessed passed from the table_data helper 
-.PP
-Definition at line 662 of file table_data.c.
-.SS "\fBnetsnmp_table_row\fP* netsnmp_extract_table_row (\fBnetsnmp_request_info\fP * request)"
-.PP
-extracts the row being accessed passed from the table_data helper 
-.PP
-Definition at line 670 of file table_data.c.
-.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 
-.PP
-Definition at line 679 of file table_data.c.
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_table_data_handler (\fBnetsnmp_table_data\fP * table)"
-.PP
-Creates a table_data handler and returns it. 
-.PP
-Definition at line 377 of file table_data.c.
-.SS "void netsnmp_insert_table_row (\fBnetsnmp_request_info\fP * request, \fBnetsnmp_table_row\fP * row)"
-.PP
-inserts a newly created table_data row into a request 
-.PP
-Definition at line 691 of file table_data.c.
-.SS "int netsnmp_register_read_only_table_data (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_table_data\fP * 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. 
-.PP
-Definition at line 411 of file table_data.c.
-.SS "int netsnmp_register_table_data (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_table_data\fP * 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. 
-.PP
-Definition at line 400 of file table_data.c.
-.SS "int netsnmp_table_data_add_row (\fBnetsnmp_table_data\fP * table, \fBnetsnmp_table_row\fP * 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) 
-.PP
-xxx-rks: remove invalid row? 
-.PP
-Definition at line 134 of file table_data.c.
-.SS "\fBnetsnmp_table_row\fP* netsnmp_table_data_clone_row (\fBnetsnmp_table_row\fP * row)"
-.PP
-clones a data row. DOES NOT CLONE THE CONTAINED DATA. 
-.PP
-Definition at line 71 of file table_data.c.
-.SS "void* netsnmp_table_data_delete_row (\fBnetsnmp_table_row\fP * row)"
-.PP
-deletes a row's memory. returns the void data that it doesn't know how to delete. 
-.PP
-Definition at line 105 of file table_data.c.
-.SS "\fBnetsnmp_table_row\fP* netsnmp_table_data_get (\fBnetsnmp_table_data\fP * table, \fBnetsnmp_variable_list\fP * indexes)"
-.PP
-finds the data in 'datalist' stored at 'indexes' 
-.PP
-Definition at line 817 of file table_data.c.
-.SS "\fBnetsnmp_table_row\fP* netsnmp_table_data_get_first_row (\fBnetsnmp_table_data\fP * table)"
-.PP
-returns the first row in the table 
-.PP
-Definition at line 798 of file table_data.c.
-.SS "\fBnetsnmp_table_row\fP* netsnmp_table_data_get_from_oid (\fBnetsnmp_table_data\fP * table, oid * searchfor, size_t searchfor_len)"
-.PP
-finds the data in 'datalist' stored at the searchfor oid 
-.PP
-Definition at line 831 of file table_data.c.
-.SS "\fBnetsnmp_table_row\fP* netsnmp_table_data_get_next_row (\fBnetsnmp_table_data\fP * table, \fBnetsnmp_table_row\fP * row)"
-.PP
-returns the next row in the table 
-.PP
-Definition at line 807 of file table_data.c.
-.SS "void* netsnmp_table_data_remove_and_delete_row (\fBnetsnmp_table_data\fP * table, \fBnetsnmp_table_row\fP * 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) 
-.PP
-Definition at line 274 of file table_data.c.
-.SS "\fBnetsnmp_table_row\fP* netsnmp_table_data_remove_row (\fBnetsnmp_table_data\fP * table, \fBnetsnmp_table_row\fP * 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) 
-.PP
-Definition at line 248 of file table_data.c.
-.SS "void netsnmp_table_data_replace_row (\fBnetsnmp_table_data\fP * table, \fBnetsnmp_table_row\fP * origrow, \fBnetsnmp_table_row\fP * newrow)"
-.PP
-swaps out origrow with newrow. This does *not* delete/free anything! 
-.PP
-Definition at line 233 of file table_data.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_table_dataset.3 b/man/netsnmp_table_dataset.3
deleted file mode 100644
index 4a0cd4c..0000000
--- a/man/netsnmp_table_dataset.3
+++ /dev/null
@@ -1,302 +0,0 @@
-.TH "table_dataset" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-table_dataset \- 
-.PP
-Helps you implement a table with automatted storage.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fBnetsnmp_init_table_dataset\fP (void)"
-.br
-.ti -1c
-.RI "NETSNMP_INLINE \fBnetsnmp_table_data_set_storage\fP * \fBnetsnmp_table_dataset_delete_data\fP (\fBnetsnmp_table_data_set_storage\fP *data)"
-.br
-.RI "\fIdeletes a single dataset table data. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_delete_all_data\fP (\fBnetsnmp_table_data_set_storage\fP *data)"
-.br
-.RI "\fIdeletes all the data from this \fBnode\fP and beyond in the linked list \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_delete_row\fP (\fBnetsnmp_table_row\fP *row)"
-.br
-.RI "\fIdeletes all the data from this \fBnode\fP and beyond in the linked list \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_add_row\fP (\fBnetsnmp_table_data_set\fP *table, \fBnetsnmp_table_row\fP *row)"
-.br
-.RI "\fIadds a new row to a dataset table \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_replace_row\fP (\fBnetsnmp_table_data_set\fP *table, \fBnetsnmp_table_row\fP *origrow, \fBnetsnmp_table_row\fP *newrow)"
-.br
-.RI "\fIadds a new row to a dataset table \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_remove_row\fP (\fBnetsnmp_table_data_set\fP *table, \fBnetsnmp_table_row\fP *row)"
-.br
-.RI "\fIremoves a row from the table, but doesn't delete/free the column values \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_table_dataset_remove_and_delete_row\fP (\fBnetsnmp_table_data_set\fP *table, \fBnetsnmp_table_row\fP *row)"
-.br
-.RI "\fIremoves a row from the table and then deletes it (and all its data) \fP"
-.ti -1c
-.RI "\fBnetsnmp_table_data_set\fP * \fBnetsnmp_create_table_data_set\fP (const char *table_name)"
-.br
-.RI "\fICreate a netsnmp_table_data_set structure given a table_data definition. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_delete_table_data_set\fP (\fBnetsnmp_table_data_set\fP *table_set)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_set_clone_row\fP (\fBnetsnmp_table_row\fP *row)"
-.br
-.RI "\fIclones a dataset row, including all data. \fP"
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_set_create_row_from_defaults\fP (\fBnetsnmp_table_data_set_storage\fP *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 (\fBnetsnmp_table_data_set\fP *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 (\fBnetsnmp_table_data_set\fP *tset,...)"
-.br
-.RI "\fIadds multiple data column definitions to each row. \fP"
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_table_data_set_handler\fP (\fBnetsnmp_table_data_set\fP *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, \fBnetsnmp_table_data_set\fP *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 "\fBnewrow_stash\fP * \fBnetsnmp_table_data_set_create_newrowstash\fP (\fBnetsnmp_table_data_set\fP *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 \fBnetsnmp_table_data_set\fP * \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 "\fBnetsnmp_table_data_set_storage\fP * \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 (\fBnetsnmp_table_data_set\fP *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 "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_set_get_first_row\fP (\fBnetsnmp_table_data_set\fP *table)"
-.br
-.RI "\fIreturns the first row in the table \fP"
-.ti -1c
-.RI "\fBnetsnmp_table_row\fP * \fBnetsnmp_table_data_set_get_next_row\fP (\fBnetsnmp_table_data_set\fP *table, \fBnetsnmp_table_row\fP *row)"
-.br
-.RI "\fIreturns the next row in the table \fP"
-.ti -1c
-.RI "int \fBnetsnmp_table_set_num_rows\fP (\fBnetsnmp_table_data_set\fP *table)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_table_data_set_storage\fP * \fBnetsnmp_table_data_set_find_column\fP (\fBnetsnmp_table_data_set_storage\fP *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 (\fBnetsnmp_table_row\fP *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 (\fBnetsnmp_table_row\fP *row, unsigned int column, int type, const void *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 "void \fBnetsnmp_table_dataset_add_index\fP (\fBnetsnmp_table_data_set\fP *table, u_char type)"
-.br
-.RI "\fIadds an index to the table. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_table_set_add_indexes\fP (\fBnetsnmp_table_data_set\fP *tset,...)"
-.br
-.RI "\fIadds multiple indexes to a table_dataset helper object. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-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. 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. 
-.SH "Function Documentation"
-.PP 
-.SS "\fBnetsnmp_table_data_set\fP* netsnmp_create_table_data_set (const char * table_name)"
-.PP
-Create a netsnmp_table_data_set structure given a table_data definition. 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdata_set.c\fP.
-.PP
-Definition at line 165 of file table_dataset.c.
-.SS "NETSNMP_INLINE \fBnetsnmp_table_data_set\fP* netsnmp_extract_table_data_set (\fBnetsnmp_request_info\fP * request)"
-.PP
-extracts a netsnmp_table_data_set pointer from a given request 
-.PP
-Definition at line 839 of file table_dataset.c.
-.SS "\fBnetsnmp_table_data_set_storage\fP* 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 
-.PP
-Definition at line 849 of file table_dataset.c.
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_get_table_data_set_handler (\fBnetsnmp_table_data_set\fP * data_set)"
-.PP
-Given a netsnmp_table_data_set definition, create a handler for it. 
-.PP
-Definition at line 363 of file table_dataset.c.
-.SS "int netsnmp_mark_row_column_writable (\fBnetsnmp_table_row\fP * row, int column, int writable)"
-.PP
-marks a given column in a row as writable or not. 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdata_set.c\fP.
-.PP
-Definition at line 1217 of file table_dataset.c.
-.SS "void netsnmp_register_auto_data_table (\fBnetsnmp_table_data_set\fP * table_set, char * registration_name)"
-.PP
-registers a table_dataset so that the 'add_row' snmpd.conf token can be used to add data to this table. If registration_name is NULL then the name used when the table was created will be used instead.
-.PP
-\fBTodo\fP
-.RS 4
-create a properly free'ing registeration pointer for the datalist, and get the datalist freed at shutdown. 
-.RE
-.PP
-
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdata_set.c\fP.
-.PP
-Definition at line 876 of file table_dataset.c.
-.SS "int netsnmp_register_table_data_set (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_table_data_set\fP * data_set, \fBnetsnmp_table_registration_info\fP * table_info)"
-.PP
-register a given data_set at a given oid (specified in the netsnmp_handler_registration pointer). The reginfo->handler->access_method *may* be null if the call doesn't ever want to be called for SNMP operations. 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdata_set.c\fP.
-.PP
-Definition at line 389 of file table_dataset.c.
-.SS "int netsnmp_set_row_column (\fBnetsnmp_table_row\fP * row, unsigned int column, int type, const void * value, size_t value_len)"
-.PP
-sets a given column in a row with data given a type, value, and length. Data is memdup'ed by the function. 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdata_set.c\fP.
-.PP
-Definition at line 1252 of file table_dataset.c.
-.SS "\fBnetsnmp_table_row\fP* netsnmp_table_data_set_clone_row (\fBnetsnmp_table_row\fP * row)"
-.PP
-clones a dataset row, including all data. 
-.PP
-Definition at line 196 of file table_dataset.c.
-.SS "\fBnetsnmp_table_row\fP* netsnmp_table_data_set_create_row_from_defaults (\fBnetsnmp_table_data_set_storage\fP * defrow)"
-.PP
-creates a new row from an existing defined default set 
-.PP
-Definition at line 244 of file table_dataset.c.
-.SS "\fBnetsnmp_table_data_set_storage\fP* netsnmp_table_data_set_find_column (\fBnetsnmp_table_data_set_storage\fP * start, unsigned int column)"
-.PP
-Finds a column within a given storage set, given the pointer to the start of the storage set list. 
-.PP
-Definition at line 1205 of file table_dataset.c.
-.SS "\fBnetsnmp_table_row\fP* netsnmp_table_data_set_get_first_row (\fBnetsnmp_table_data_set\fP * table)"
-.PP
-returns the first row in the table 
-.PP
-Definition at line 1174 of file table_dataset.c.
-.SS "\fBnetsnmp_table_row\fP* netsnmp_table_data_set_get_next_row (\fBnetsnmp_table_data_set\fP * table, \fBnetsnmp_table_row\fP * row)"
-.PP
-returns the next row in the table 
-.PP
-Definition at line 1181 of file table_dataset.c.
-.SS "void netsnmp_table_dataset_add_index (\fBnetsnmp_table_data_set\fP * table, u_char type)"
-.PP
-adds an index to the table. Call this repeatly for each index. 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdata_set.c\fP.
-.PP
-Definition at line 1306 of file table_dataset.c.
-.SS "NETSNMP_INLINE void netsnmp_table_dataset_add_row (\fBnetsnmp_table_data_set\fP * table, \fBnetsnmp_table_row\fP * row)"
-.PP
-adds a new row to a dataset table 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdata_set.c\fP.
-.PP
-Definition at line 117 of file table_dataset.c.
-.SS "NETSNMP_INLINE void netsnmp_table_dataset_delete_all_data (\fBnetsnmp_table_data_set_storage\fP * data)"
-.PP
-deletes all the data from this \fBnode\fP and beyond in the linked list 
-.PP
-Definition at line 94 of file table_dataset.c.
-.SS "NETSNMP_INLINE \fBnetsnmp_table_data_set_storage\fP* netsnmp_table_dataset_delete_data (\fBnetsnmp_table_data_set_storage\fP * data)"
-.PP
-deletes a single dataset table data. returns the (possibly still good) next pointer of the deleted data object. 
-.PP
-Definition at line 81 of file table_dataset.c.
-.SS "NETSNMP_INLINE void netsnmp_table_dataset_delete_row (\fBnetsnmp_table_row\fP * row)"
-.PP
-deletes all the data from this \fBnode\fP and beyond in the linked list 
-.PP
-Definition at line 104 of file table_dataset.c.
-.SS "NETSNMP_INLINE void netsnmp_table_dataset_remove_and_delete_row (\fBnetsnmp_table_data_set\fP * table, \fBnetsnmp_table_row\fP * row)"
-.PP
-removes a row from the table and then deletes it (and all its data) 
-.PP
-Definition at line 149 of file table_dataset.c.
-.SS "NETSNMP_INLINE void netsnmp_table_dataset_remove_row (\fBnetsnmp_table_data_set\fP * table, \fBnetsnmp_table_row\fP * row)"
-.PP
-removes a row from the table, but doesn't delete/free the column values 
-.PP
-Definition at line 138 of file table_dataset.c.
-.SS "NETSNMP_INLINE void netsnmp_table_dataset_replace_row (\fBnetsnmp_table_data_set\fP * table, \fBnetsnmp_table_row\fP * origrow, \fBnetsnmp_table_row\fP * newrow)"
-.PP
-adds a new row to a dataset table 
-.PP
-Definition at line 127 of file table_dataset.c.
-.SS "int netsnmp_table_set_add_default_row (\fBnetsnmp_table_data_set\fP * 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, \fBvariable\fP 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 
-.PP
-Definition at line 270 of file table_dataset.c.
-.SS "void netsnmp_table_set_add_indexes (\fBnetsnmp_table_data_set\fP * tset,  ...)"
-.PP
-adds multiple indexes to a table_dataset helper object. To end the list, use a 0 after the list of ASN index types. 
-.PP
-Definition at line 1316 of file table_dataset.c.
-.SS "void netsnmp_table_set_multi_add_default_row (\fBnetsnmp_table_data_set\fP * tset,  ...)"
-.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. 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdata_set.c\fP.
-.PP
-Definition at line 332 of file table_dataset.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_table_generic.3 b/man/netsnmp_table_generic.3
deleted file mode 100644
index dd4456f..0000000
--- a/man/netsnmp_table_generic.3
+++ /dev/null
@@ -1,44 +0,0 @@
-.TH "generic_table_API" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-generic_table_API \- 
-.PP
-General requirements for a table helper.  
-
-.SS "Modules"
-
-.in +1c
-.ti -1c
-.RI "\fBtable_maintenance\fP"
-.br
-.PP
-
-.RI "\fIRoutines for maintaining the contents of a table. \fP"
-.ti -1c
-.RI "\fBmib_maintenance\fP"
-.br
-.PP
-
-.RI "\fIRoutines for maintaining a MIB table. \fP"
-.ti -1c
-.RI "\fBtable_rows\fP"
-.br
-.PP
-
-.RI "\fIRoutines for working with the rows of a table. \fP"
-.ti -1c
-.RI "\fBtable_indexes\fP"
-.br
-.PP
-
-.RI "\fIRoutines for working with row indexes. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-General requirements for a table helper. 
-
-A given table helper need not implement the whole of this API, and may need to adjust the prototype of certain routines. But this description provides a suitable standard design framework. 
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_table_indexes.3 b/man/netsnmp_table_indexes.3
deleted file mode 100644
index 5d0feb4..0000000
--- a/man/netsnmp_table_indexes.3
+++ /dev/null
@@ -1,83 +0,0 @@
-.TH "table_indexes" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-table_indexes \- 
-.PP
-Routines for working with row indexes.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_variable_list\fP * \fBnetsnmp_generic_idx\fP (void *table)"
-.br
-.RI "\fIRetrieve the indexing structure of the table. \fP"
-.ti -1c
-.RI "\fBnetsnmp_variable_list\fP * \fBnetsnmp_generic_row_idx\fP (void *row)"
-.br
-.RI "\fIReport the index values for a row. \fP"
-.ti -1c
-.RI "size_t \fBnetsnmp_generic_row_oid\fP (void *row, oid *instances)"
-.br
-.RI "\fIReport the instance OIDs for a row. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_generic_compare_idx\fP (void *row, \fBnetsnmp_variable_list\fP *index)"
-.br
-.RI "\fICompare a row against the specified index values. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_generic_compare_oid\fP (void *row, oid *instances, size_t len)"
-.br
-.RI "\fICompare a row against the specified instance OIDs. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_generic_compare_subtree_idx\fP (void *row, \fBnetsnmp_variable_list\fP *index)"
-.br
-.RI "\fICheck if a row lies within a subtree of index values. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_generic_compare_subtree_oid\fP (void *row, oid *instances, size_t len)"
-.br
-.RI "\fICheck if a row lies within a subtree of instance OIDs. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Routines for working with row indexes. 
-.SH "Function Documentation"
-.PP 
-.SS "int netsnmp_generic_compare_idx (void * row, \fBnetsnmp_variable_list\fP * index)"
-.PP
-Compare a row against the specified index values. 
-.PP
-Definition at line 325 of file table_generic.c.
-.SS "int netsnmp_generic_compare_oid (void * row, oid * instances, size_t len)"
-.PP
-Compare a row against the specified instance OIDs. 
-.PP
-Definition at line 331 of file table_generic.c.
-.SS "int netsnmp_generic_compare_subtree_idx (void * row, \fBnetsnmp_variable_list\fP * index)"
-.PP
-Check if a row lies within a subtree of index values. 
-.PP
-Definition at line 337 of file table_generic.c.
-.SS "int netsnmp_generic_compare_subtree_oid (void * row, oid * instances, size_t len)"
-.PP
-Check if a row lies within a subtree of instance OIDs. 
-.PP
-Definition at line 343 of file table_generic.c.
-.SS "\fBnetsnmp_variable_list\fP* netsnmp_generic_idx (void * table)"
-.PP
-Retrieve the indexing structure of the table. 
-.PP
-Definition at line 307 of file table_generic.c.
-.SS "\fBnetsnmp_variable_list\fP* netsnmp_generic_row_idx (void * row)"
-.PP
-Report the index values for a row. 
-.PP
-Definition at line 313 of file table_generic.c.
-.SS "size_t netsnmp_generic_row_oid (void * row, oid * instances)"
-.PP
-Report the instance OIDs for a row. 
-.PP
-Definition at line 319 of file table_generic.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_table_iterator.3 b/man/netsnmp_table_iterator.3
deleted file mode 100644
index 76cc4ac..0000000
--- a/man/netsnmp_table_iterator.3
+++ /dev/null
@@ -1,192 +0,0 @@
-.TH "table_iterator" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-table_iterator \- 
-.PP
-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.  
-
-.SS "Data Structures"
-
-.in +1c
-.ti -1c
-.RI "struct \fBti_cache_info_s\fP"
-.br
-.ti -1c
-.RI "struct \fBnetsnmp_iterator_info_s\fP"
-.br
-.RI "\fIHolds iterator information containing functions which should be called by the iterator_handler to loop over your data set and sort it in a SNMP specific manner. \fP"
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBTI_REQUEST_CACHE\fP   'ti_cache'"
-.br
-.ti -1c
-.RI "#define \fBTABLE_ITERATOR_NOTAGAIN\fP   255"
-.br
-.ti -1c
-.RI "#define \fBTABLE_ITERATOR_NAME\fP   'table_iterator'"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef struct \fBti_cache_info_s\fP \fBti_cache_info\fP"
-.br
-.ti -1c
-.RI "typedef \fBnetsnmp_variable_list\fP *( \fBNetsnmp_First_Data_Point\fP )(void **loop_context, void **data_context, \fBnetsnmp_variable_list\fP *, struct \fBnetsnmp_iterator_info_s\fP *)"
-.br
-.ti -1c
-.RI "typedef \fBnetsnmp_variable_list\fP *( \fBNetsnmp_Next_Data_Point\fP )(void **loop_context, void **data_context, \fBnetsnmp_variable_list\fP *, struct \fBnetsnmp_iterator_info_s\fP *)"
-.br
-.ti -1c
-.RI "typedef void *( \fBNetsnmp_Make_Data_Context\fP )(void *loop_context, struct \fBnetsnmp_iterator_info_s\fP *)"
-.br
-.ti -1c
-.RI "typedef void( \fBNetsnmp_Free_Loop_Context\fP )(void *, struct \fBnetsnmp_iterator_info_s\fP *)"
-.br
-.ti -1c
-.RI "typedef void( \fBNetsnmp_Free_Data_Context\fP )(void *, struct \fBnetsnmp_iterator_info_s\fP *)"
-.br
-.ti -1c
-.RI "typedef struct \fBnetsnmp_iterator_info_s\fP \fBnetsnmp_iterator_info\fP"
-.br
-.RI "\fITypedefs the \fBnetsnmp_iterator_info_s\fP struct into netsnmp_iterator_info. \fP"
-.in -1c
-.SS "Functions"
-
-.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"
-.ti -1c
-.RI "int \fBnetsnmp_register_table_iterator\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_iterator_info\fP *iinfo)"
-.br
-.RI "\fICreates and registers a table iterator helper handler calling netsnmp_create_handler with a handler name set to TABLE_ITERATOR_NAME and access method, netsnmp_table_iterator_helper_handler. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void * \fBnetsnmp_extract_iterator_context\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIextracts the table_iterator specific data from a request. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_insert_iterator_context\fP (\fBnetsnmp_request_info\fP *request, void *data)"
-.br
-.RI "\fIinserts table_iterator specific data for a newly created row into a request \fP"
-.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
-.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"
-
-.in +1c
-.ti -1c
-.RI "Netsnmp_Node_Handler \fBnetsnmp_table_iterator_helper_handler\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-The table iterator helper is designed to simplify the task of writing a table handler for the net-snmp agent when the data being accessed is not in an oid sorted form and must be accessed externally. 
-
-Functionally, it is a specialized version of the more generic table helper but easies the burden of GETNEXT processing by manually looping through all the data indexes retrieved through function calls which should be supplied by the \fBmodule\fP that wishes help. The \fBmodule\fP the table_iterator helps should, afterwards, never be called for the case of 'MODE_GETNEXT' and only for the GET and SET related modes instead.
-.PP
-The fundamental notion between the table iterator is that it allows your code to iterate over each 'row' within your data storage mechanism, without requiring that it be sorted in a SNMP-index-compliant manner. Through the get_first_data_point and get_next_data_point hooks, the table_iterator helper will repeatedly call your hooks to find the 'proper' row of data that needs processing. The following concepts are important:
-.PP
-.IP "\(bu" 2
-A loop context is a pointer which indicates where in the current processing of a set of rows you currently are. Allows the get_*_data_point routines to move from one row to the next, once the iterator handler has identified the appropriate row for this request, the job of the loop context is done. The most simple example would be a pointer to an integer which simply counts rows from 1 to X. More commonly, it might be a pointer to a linked list \fBnode\fP, or someother internal or external reference to a data set (file seek value, array pointer, ...). If allocated during iteration, either the free_loop_context_at_end (preferably) or the free_loop_context pointers should be set.
-.PP
-.PP
-.IP "\(bu" 2
-A data context is something that your handler code can use in order to retrieve the rest of the data for the needed row. This data can be accessed in your handler via netsnmp_extract_iterator_context api with the netsnmp_request_info structure that's passed in. The important difference between a loop context and a data context is that multiple data contexts can be kept by the table_iterator helper, where as only one loop context will ever be held by the table_iterator helper. If allocated during iteration the free_data_context pointer should be set to an appropriate function.
-.PP
-.PP
-The table iterator operates in a series of steps that call your code hooks from your netsnmp_iterator_info registration pointer.
-.PP
-.IP "\(bu" 2
-the get_first_data_point hook is called at the beginning of processing. It should set the \fBvariable\fP list to a list of indexes for the given table. It should also set the loop_context and maybe a data_context which you will get a pointer back to when it needs to call your code to retrieve actual data later. The list of indexes should be returned after being update.
-.PP
-.PP
-.IP "\(bu" 2
-the get_next_data_point hook is then called repeatedly and is passed the loop context and the data context for it to update. The indexes, loop context and data context should all be updated if more data is available, otherwise they should be left alone and a NULL should be returned. Ideally, it should update the loop context without the need to reallocate it. If reallocation is necessary for every iterative step, then the free_loop_context function pointer should be set. If not, then the free_loop_context_at_end pointer should be set, which is more efficient since a malloc/free will only be performed once for every iteration. 
-.PP
-
-.SH "Typedef Documentation"
-.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. 
-.SH "Function Documentation"
-.PP 
-.SS "void * netsnmp_extract_iterator_context (\fBnetsnmp_request_info\fP * request)"
-.PP
-extracts the table_iterator specific data from a request. This function extracts the table iterator specific data from a netsnmp_request_info object. Calls netsnmp_request_get_list_data with request->parent_data set with data from a request that was added previously by a \fBmodule\fP and TABLE_ITERATOR_NAME handler name.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIrequest\fP the netsnmp request info structure
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-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
-
-.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 
-.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 
-.SS "int netsnmp_register_table_iterator (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_iterator_info\fP * iinfo)"
-.PP
-Creates and registers a table iterator helper handler calling netsnmp_create_handler with a handler name set to TABLE_ITERATOR_NAME and access method, netsnmp_table_iterator_helper_handler. If NOT_SERIALIZED is not defined the function injects the serialize handler into the calling chain prior to calling netsnmp_register_table.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIreginfo\fP is a pointer to a netsnmp_handler_registration struct
-.br
-\fIiinfo\fP is a pointer to a netsnmp_iterator_info struct
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-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
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_table_iterator.h.3 b/man/netsnmp_table_iterator.h.3
deleted file mode 100644
index 5fa3af3..0000000
--- a/man/netsnmp_table_iterator.h.3
+++ /dev/null
@@ -1,111 +0,0 @@
-.TH "table_iterator.h" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-table_iterator.h \- 
-.SH SYNOPSIS
-.br
-.PP
-.SS "Data Structures"
-
-.in +1c
-.ti -1c
-.RI "struct \fBnetsnmp_iterator_info_s\fP"
-.br
-.RI "\fIHolds iterator information containing functions which should be called by the iterator_handler to loop over your data set and sort it in a SNMP specific manner. \fP"
-.in -1c
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBNETSNMP_ITERATOR_FLAG_SORTED\fP   0x01"
-.br
-.ti -1c
-.RI "#define \fBTABLE_ITERATOR_NAME\fP   'table_iterator'"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef \fBnetsnmp_variable_list\fP *( \fBNetsnmp_First_Data_Point\fP )(void **loop_context, void **data_context, \fBnetsnmp_variable_list\fP *, struct \fBnetsnmp_iterator_info_s\fP *)"
-.br
-.ti -1c
-.RI "typedef \fBnetsnmp_variable_list\fP *( \fBNetsnmp_Next_Data_Point\fP )(void **loop_context, void **data_context, \fBnetsnmp_variable_list\fP *, struct \fBnetsnmp_iterator_info_s\fP *)"
-.br
-.ti -1c
-.RI "typedef void *( \fBNetsnmp_Make_Data_Context\fP )(void *loop_context, struct \fBnetsnmp_iterator_info_s\fP *)"
-.br
-.ti -1c
-.RI "typedef void( \fBNetsnmp_Free_Loop_Context\fP )(void *, struct \fBnetsnmp_iterator_info_s\fP *)"
-.br
-.ti -1c
-.RI "typedef void( \fBNetsnmp_Free_Data_Context\fP )(void *, struct \fBnetsnmp_iterator_info_s\fP *)"
-.br
-.ti -1c
-.RI "typedef struct \fBnetsnmp_iterator_info_s\fP \fBnetsnmp_iterator_info\fP"
-.br
-.RI "\fITypedefs the \fBnetsnmp_iterator_info_s\fP struct into netsnmp_iterator_info. \fP"
-.in -1c
-.SS "Functions"
-
-.in +1c
-.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"
-.ti -1c
-.RI "int \fBnetsnmp_register_table_iterator\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_iterator_info\fP *iinfo)"
-.br
-.RI "\fICreates and registers a table iterator helper handler calling netsnmp_create_handler with a handler name set to TABLE_ITERATOR_NAME and access method, netsnmp_table_iterator_helper_handler. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_iterator_delete_table\fP (\fBnetsnmp_iterator_info\fP *iinfo)"
-.br
-.ti -1c
-.RI "NETSNMP_INLINE void * \fBnetsnmp_extract_iterator_context\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIextracts the table_iterator specific data from a request. \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_insert_iterator_context\fP (\fBnetsnmp_request_info\fP *request, void *data)"
-.br
-.RI "\fIinserts table_iterator specific data for a newly created row into a request \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"
-
-.in +1c
-.ti -1c
-.RI "Netsnmp_Node_Handler \fBnetsnmp_table_iterator_helper_handler\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-
-.PP
-Definition in file \fBtable_iterator.h\fP.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_table_maintenance.3 b/man/netsnmp_table_maintenance.3
deleted file mode 100644
index c318ecb..0000000
--- a/man/netsnmp_table_maintenance.3
+++ /dev/null
@@ -1,116 +0,0 @@
-.TH "table_maintenance" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-table_maintenance \- 
-.PP
-Routines for maintaining the contents of a table.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void * \fBnetsnmp_generic_create_table\fP (const char *name, int flags)"
-.br
-.RI "\fICreate a structure to represent the table. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_generic_delete_table\fP (void *table)"
-.br
-.RI "\fIRelease the structure representing a table. \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_generic_create_row\fP (void)"
-.br
-.RI "\fICreate a new row structure suitable for this style of table. \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_generic_clone_row\fP (void *row)"
-.br
-.RI "\fICreate a new copy of the specified row. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_generic_copy_row\fP (void *dst_row, void *src_row)"
-.br
-.RI "\fICopy the contents of one row into another. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_generic_delete_row\fP (void *row)"
-.br
-.RI "\fIDelete a row data structure. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_generic_add_row\fP (void *table, void *row)"
-.br
-.RI "\fIAdd a row to the table. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_generic_replace_row\fP (void *table, void *old_row, void *new_row)"
-.br
-.RI "\fIReplace one row with another in the table. \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_generic_remove_row\fP (void *table, void *row)"
-.br
-.RI "\fIRemove a row from the table. \fP"
-.ti -1c
-.RI "void \fBnetsnmp_generic_remove_delete_row\fP (void *table, void *row)"
-.br
-.RI "\fIRemove and delete a row from the table. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Routines for maintaining the contents of a table. 
-
-This would typically be part of implementing an SNMP MIB, but could potentially also be used for a standalone table.
-.PP
-This section of the generic API is primarily relevant to table helpers where the representation of the table is constructed and maintained within the helper itself. 'External' tables will typically look after such aspects directly, although this section of the abstract API framework could also help direct the design of such table-specific implementations. 
-.SH "Function Documentation"
-.PP 
-.SS "int netsnmp_generic_add_row (void * table, void * row)"
-.PP
-Add a row to the table. 
-.PP
-Definition at line 104 of file table_generic.c.
-.SS "void* netsnmp_generic_clone_row (void * row)"
-.PP
-Create a new copy of the specified row. 
-.PP
-Definition at line 82 of file table_generic.c.
-.SS "int netsnmp_generic_copy_row (void * dst_row, void * src_row)"
-.PP
-Copy the contents of one row into another. The destination row structure should be created before this routine is called. 
-.PP
-Definition at line 90 of file table_generic.c.
-.SS "void* netsnmp_generic_create_row (void)"
-.PP
-Create a new row structure suitable for this style of table. Note that this would typically be a 'standalone' row, and would not automatically be inserted into an actual table. 
-.PP
-Definition at line 76 of file table_generic.c.
-.SS "void* netsnmp_generic_create_table (const char * name, int flags)"
-.PP
-Create a structure to represent the table. This could be as simple as the head of a linked list, or a more complex container structure. The 'name' field would typically be used to distinguish between several tables implemented using the same table helper. The 'flags' field would be used to control various (helper-specific) aspects of table behaviour.
-.PP
-The table structure returned should typically be regarded as an opaque, private structure. All operations on the content of the table should ideally use the appropriate routines from this API. 
-.PP
-Definition at line 60 of file table_generic.c.
-.SS "void netsnmp_generic_delete_row (void * row)"
-.PP
-Delete a row data structure. The row should be removed from any relevant table(s) before this routine is called. 
-.PP
-Definition at line 98 of file table_generic.c.
-.SS "void netsnmp_generic_delete_table (void * table)"
-.PP
-Release the structure representing a table. Any rows still contained within the table should also be removed and deleted. 
-.PP
-Definition at line 68 of file table_generic.c.
-.SS "void netsnmp_generic_remove_delete_row (void * table, void * row)"
-.PP
-Remove and delete a row from the table. 
-.PP
-Definition at line 127 of file table_generic.c.
-.SS "void* netsnmp_generic_remove_row (void * table, void * row)"
-.PP
-Remove a row from the table. The data structure for the row should not be released, and would be the return value of this routine. 
-.PP
-Definition at line 121 of file table_generic.c.
-.SS "int netsnmp_generic_replace_row (void * table, void * old_row, void * new_row)"
-.PP
-Replace one row with another in the table. This will typically (but not necessarily) involve two rows sharing the same index information (e.g. to implement update/restore-style SET behaviour). 
-.PP
-Definition at line 113 of file table_generic.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_table_row.3 b/man/netsnmp_table_row.3
deleted file mode 100644
index d659dcf..0000000
--- a/man/netsnmp_table_row.3
+++ /dev/null
@@ -1,41 +0,0 @@
-.TH "table_row" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-table_row \- 
-.PP
-Helps you implement a table shared across two or more subagents, or otherwise split into individual row slices.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_table_row_handler_get\fP (void *row)"
-.br
-.RI "\fIreturns a netsnmp_mib_handler object for the table_container helper \fP"
-.ti -1c
-.RI "int \fBnetsnmp_table_row_register\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_table_registration_info\fP *tabreg, void *row, \fBnetsnmp_variable_list\fP *index)"
-.br
-.ti -1c
-.RI "void * \fBnetsnmp_table_row_extract\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIreturn the row data structure supplied to the table_row helper \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Helps you implement a table shared across two or more subagents, or otherwise split into individual row slices. 
-.SH "Function Documentation"
-.PP 
-.SS "void* netsnmp_table_row_extract (\fBnetsnmp_request_info\fP * request)"
-.PP
-return the row data structure supplied to the table_row helper 
-.PP
-Definition at line 158 of file table_row.c.
-.SS "\fBnetsnmp_mib_handler\fP* netsnmp_table_row_handler_get (void * row)"
-.PP
-returns a netsnmp_mib_handler object for the table_container helper 
-.PP
-Definition at line 75 of file table_row.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_table_rows.3 b/man/netsnmp_table_rows.3
deleted file mode 100644
index 4abf388..0000000
--- a/man/netsnmp_table_rows.3
+++ /dev/null
@@ -1,94 +0,0 @@
-.TH "table_rows" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-table_rows \- 
-.PP
-Routines for working with the rows of a table.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void * \fBnetsnmp_generic_row_first\fP (void *table)"
-.br
-.RI "\fIRetrieve the first row of the table. \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_generic_row_get\fP (void *table, void *row)"
-.br
-.RI "\fIRetrieve the given row from the table. \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_generic_row_next\fP (void *table, void *row)"
-.br
-.RI "\fIRetrieve the following row from the table. \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_generic_row_get_byidx\fP (void *table, \fBnetsnmp_variable_list\fP *indexes)"
-.br
-.RI "\fIRetrieve the row with the specified index values. \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_generic_row_next_byidx\fP (void *table, \fBnetsnmp_variable_list\fP *indexes)"
-.br
-.RI "\fIRetrieve the next row after the specified index values. \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_generic_row_get_byoid\fP (void *table, oid *instance, size_t len)"
-.br
-.RI "\fIRetrieve the row with the specified instance OIDs. \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_generic_row_next_byoid\fP (void *table, oid *instance, size_t len)"
-.br
-.RI "\fIRetrieve the next row after the specified instance OIDs. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_generic_row_count\fP (void *table)"
-.br
-.RI "\fIReport the number of rows in the table. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Routines for working with the rows of a table. 
-.SH "Function Documentation"
-.PP 
-.SS "int netsnmp_generic_row_count (void * table)"
-.PP
-Report the number of rows in the table. 
-.PP
-Definition at line 282 of file table_generic.c.
-.SS "void* netsnmp_generic_row_first (void * table)"
-.PP
-Retrieve the first row of the table. 
-.PP
-Definition at line 228 of file table_generic.c.
-.SS "void* netsnmp_generic_row_get (void * table, void * row)"
-.PP
-Retrieve the given row from the table. This could either be the same data pointer, passed in, or a separate row structure sharing the same index values (or NULL).
-.PP
-This routine also provides a means to tell whether a given row is present in the table. 
-.PP
-Definition at line 240 of file table_generic.c.
-.SS "void* netsnmp_generic_row_get_byidx (void * table, \fBnetsnmp_variable_list\fP * indexes)"
-.PP
-Retrieve the row with the specified index values. 
-.PP
-Definition at line 255 of file table_generic.c.
-.SS "void* netsnmp_generic_row_get_byoid (void * table, oid * instance, size_t len)"
-.PP
-Retrieve the row with the specified instance OIDs. 
-.PP
-Definition at line 270 of file table_generic.c.
-.SS "void* netsnmp_generic_row_next (void * table, void * row)"
-.PP
-Retrieve the following row from the table. If the specified row is not present, this routine should return the entry next after the position this row would have occupied. 
-.PP
-Definition at line 249 of file table_generic.c.
-.SS "void* netsnmp_generic_row_next_byidx (void * table, \fBnetsnmp_variable_list\fP * indexes)"
-.PP
-Retrieve the next row after the specified index values. 
-.PP
-Definition at line 262 of file table_generic.c.
-.SS "void* netsnmp_generic_row_next_byoid (void * table, oid * instance, size_t len)"
-.PP
-Retrieve the next row after the specified instance OIDs. 
-.PP
-Definition at line 276 of file table_generic.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_tdata.3 b/man/netsnmp_tdata.3
deleted file mode 100644
index e15478c..0000000
--- a/man/netsnmp_tdata.3
+++ /dev/null
@@ -1,290 +0,0 @@
-.TH "tdata" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-tdata \- 
-.PP
-Implement a table with datamatted storage.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "void \fB_netsnmp_tdata_generate_index_oid\fP (\fBnetsnmp_tdata_row\fP *row)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_tdata\fP * \fBnetsnmp_tdata_create_table\fP (const char *name, long flags)"
-.br
-.RI "\fIcreates and returns a 'tdata' table data structure \fP"
-.ti -1c
-.RI "void \fBnetsnmp_tdata_delete_table\fP (\fBnetsnmp_tdata\fP *table)"
-.br
-.RI "\fIcreates and returns a 'tdata' table data structure \fP"
-.ti -1c
-.RI "\fBnetsnmp_tdata_row\fP * \fBnetsnmp_tdata_create_row\fP (void)"
-.br
-.RI "\fIcreates and returns a pointer to new row data structure \fP"
-.ti -1c
-.RI "\fBnetsnmp_tdata_row\fP * \fBnetsnmp_tdata_clone_row\fP (\fBnetsnmp_tdata_row\fP *row)"
-.br
-.RI "\fIclones a 'tdata' row. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_tdata_copy_row\fP (\fBnetsnmp_tdata_row\fP *dst_row, \fBnetsnmp_tdata_row\fP *src_row)"
-.br
-.RI "\fIcopy the contents of a 'tdata' row. \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_tdata_delete_row\fP (\fBnetsnmp_tdata_row\fP *row)"
-.br
-.RI "\fIdeletes the memory used by the specified row returns the table-specific entry data (that it doesn't know how to delete) \fP"
-.ti -1c
-.RI "int \fBnetsnmp_tdata_add_row\fP (\fBnetsnmp_tdata\fP *table, \fBnetsnmp_tdata_row\fP *row)"
-.br
-.RI "\fIAdds a row to the given table (stored in proper lexographical order). \fP"
-.ti -1c
-.RI "void \fBnetsnmp_tdata_replace_row\fP (\fBnetsnmp_tdata\fP *table, \fBnetsnmp_tdata_row\fP *origrow, \fBnetsnmp_tdata_row\fP *newrow)"
-.br
-.RI "\fIswaps out origrow with newrow. \fP"
-.ti -1c
-.RI "\fBnetsnmp_tdata_row\fP * \fBnetsnmp_tdata_remove_row\fP (\fBnetsnmp_tdata\fP *table, \fBnetsnmp_tdata_row\fP *row)"
-.br
-.RI "\fIremoves a row from the given table and returns it (no free's called) \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_tdata_remove_and_delete_row\fP (\fBnetsnmp_tdata\fP *table, \fBnetsnmp_tdata_row\fP *row)"
-.br
-.RI "\fIremoves and frees a row of the given table and returns the table-specific entry data \fP"
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_tdata_handler\fP (\fBnetsnmp_tdata\fP *table)"
-.br
-.RI "\fICreates a tdata handler and returns it. \fP"
-.ti -1c
-.RI "int \fB_netsnmp_tdata_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 "int \fBnetsnmp_tdata_register\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_tdata\fP *table, \fBnetsnmp_table_registration_info\fP *table_info)"
-.br
-.RI "\fIregisters a tdata-based MIB table \fP"
-.ti -1c
-.RI "int \fBnetsnmp_tdata_unregister\fP (\fBnetsnmp_handler_registration\fP *reginfo)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_tdata\fP * \fBnetsnmp_tdata_extract_table\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIextracts the tdata table from the request structure \fP"
-.ti -1c
-.RI "\fBnetsnmp_container\fP * \fBnetsnmp_tdata_extract_container\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIextracts the tdata container from the request structure \fP"
-.ti -1c
-.RI "\fBnetsnmp_tdata_row\fP * \fBnetsnmp_tdata_extract_row\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIextracts the tdata row being accessed from the request structure \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_tdata_extract_entry\fP (\fBnetsnmp_request_info\fP *request)"
-.br
-.RI "\fIextracts the (table-specific) entry being accessed from the request structure \fP"
-.ti -1c
-.RI "NETSNMP_INLINE void \fBnetsnmp_insert_tdata_row\fP (\fBnetsnmp_request_info\fP *request, \fBnetsnmp_tdata_row\fP *row)"
-.br
-.RI "\fIinserts a newly created tdata row into a request \fP"
-.ti -1c
-.RI "void * \fBnetsnmp_tdata_row_entry\fP (\fBnetsnmp_tdata_row\fP *row)"
-.br
-.RI "\fIreturns the (table-specific) entry data for a given row \fP"
-.ti -1c
-.RI "\fBnetsnmp_tdata_row\fP * \fBnetsnmp_tdata_row_first\fP (\fBnetsnmp_tdata\fP *table)"
-.br
-.RI "\fIreturns the first row in the table \fP"
-.ti -1c
-.RI "\fBnetsnmp_tdata_row\fP * \fBnetsnmp_tdata_row_get\fP (\fBnetsnmp_tdata\fP *table, \fBnetsnmp_tdata_row\fP *row)"
-.br
-.RI "\fIfinds a row in the 'tdata' table given another row \fP"
-.ti -1c
-.RI "\fBnetsnmp_tdata_row\fP * \fBnetsnmp_tdata_row_next\fP (\fBnetsnmp_tdata\fP *table, \fBnetsnmp_tdata_row\fP *row)"
-.br
-.RI "\fIreturns the next row in the table \fP"
-.ti -1c
-.RI "\fBnetsnmp_tdata_row\fP * \fBnetsnmp_tdata_row_get_byidx\fP (\fBnetsnmp_tdata\fP *table, \fBnetsnmp_variable_list\fP *indexes)"
-.br
-.RI "\fIfinds a row in the 'tdata' table given the index values \fP"
-.ti -1c
-.RI "\fBnetsnmp_tdata_row\fP * \fBnetsnmp_tdata_row_get_byoid\fP (\fBnetsnmp_tdata\fP *table, oid *searchfor, size_t searchfor_len)"
-.br
-.RI "\fIfinds a row in the 'tdata' table given the index OID \fP"
-.ti -1c
-.RI "\fBnetsnmp_tdata_row\fP * \fBnetsnmp_tdata_row_next_byidx\fP (\fBnetsnmp_tdata\fP *table, \fBnetsnmp_variable_list\fP *indexes)"
-.br
-.RI "\fIfinds the lexically next row in the 'tdata' table given the index values \fP"
-.ti -1c
-.RI "\fBnetsnmp_tdata_row\fP * \fBnetsnmp_tdata_row_next_byoid\fP (\fBnetsnmp_tdata\fP *table, oid *searchfor, size_t searchfor_len)"
-.br
-.RI "\fIfinds the lexically next row in the 'tdata' table given the index OID \fP"
-.ti -1c
-.RI "int \fBnetsnmp_tdata_row_count\fP (\fBnetsnmp_tdata\fP *table)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_tdata_compare_idx\fP (\fBnetsnmp_tdata_row\fP *row, \fBnetsnmp_variable_list\fP *indexes)"
-.br
-.RI "\fIcompare a row with the given index values \fP"
-.ti -1c
-.RI "int \fBnetsnmp_tdata_compare_oid\fP (\fBnetsnmp_tdata_row\fP *row, oid *compareto, size_t compareto_len)"
-.br
-.RI "\fIcompare a row with the given index OID \fP"
-.ti -1c
-.RI "int \fBnetsnmp_tdata_compare_subtree_idx\fP (\fBnetsnmp_tdata_row\fP *row, \fBnetsnmp_variable_list\fP *indexes)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_tdata_compare_subtree_oid\fP (\fBnetsnmp_tdata_row\fP *row, oid *compareto, size_t compareto_len)"
-.br
-.in -1c
-.SS "Variables"
-
-.in +1c
-.ti -1c
-.RI "Netsnmp_Node_Handler \fB_netsnmp_tdata_helper_handler\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-Implement a table with datamatted storage. 
-
-This 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. 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 "\fBnetsnmp_mib_handler\fP* netsnmp_get_tdata_handler (\fBnetsnmp_tdata\fP * table)"
-.PP
-Creates a tdata handler and returns it. 
-.PP
-Definition at line 283 of file table_tdata.c.
-.SS "NETSNMP_INLINE void netsnmp_insert_tdata_row (\fBnetsnmp_request_info\fP * request, \fBnetsnmp_tdata_row\fP * row)"
-.PP
-inserts a newly created tdata row into a request 
-.PP
-Definition at line 405 of file table_tdata.c.
-.SS "int netsnmp_tdata_add_row (\fBnetsnmp_tdata\fP * table, \fBnetsnmp_tdata_row\fP * row)"
-.PP
-Adds a row to the given table (stored in proper lexographical order). returns SNMPERR_SUCCESS on successful addition. or SNMPERR_GENERR on failure (E.G., indexes already existed) 
-.PP
-Definition at line 185 of file table_tdata.c.
-.SS "\fBnetsnmp_tdata_row\fP* netsnmp_tdata_clone_row (\fBnetsnmp_tdata_row\fP * row)"
-.PP
-clones a 'tdata' row. DOES NOT CLONE THE TABLE-SPECIFIC ENTRY DATA. 
-.PP
-Definition at line 93 of file table_tdata.c.
-.SS "int netsnmp_tdata_compare_idx (\fBnetsnmp_tdata_row\fP * row, \fBnetsnmp_variable_list\fP * indexes)"
-.PP
-compare a row with the given index values 
-.PP
-Definition at line 524 of file table_tdata.c.
-.SS "int netsnmp_tdata_compare_oid (\fBnetsnmp_tdata_row\fP * row, oid * compareto, size_t compareto_len)"
-.PP
-compare a row with the given index OID 
-.PP
-Definition at line 537 of file table_tdata.c.
-.SS "int netsnmp_tdata_copy_row (\fBnetsnmp_tdata_row\fP * dst_row, \fBnetsnmp_tdata_row\fP * src_row)"
-.PP
-copy the contents of a 'tdata' row. DOES NOT COPY THE TABLE-SPECIFIC ENTRY DATA. 
-.PP
-Definition at line 129 of file table_tdata.c.
-.SS "\fBnetsnmp_tdata_row\fP* netsnmp_tdata_create_row (void)"
-.PP
-creates and returns a pointer to new row data structure 
-.PP
-Definition at line 85 of file table_tdata.c.
-.SS "\fBnetsnmp_tdata\fP* netsnmp_tdata_create_table (const char * name, long flags)"
-.PP
-creates and returns a 'tdata' table data structure 
-.PP
-Definition at line 55 of file table_tdata.c.
-.SS "void* netsnmp_tdata_delete_row (\fBnetsnmp_tdata_row\fP * row)"
-.PP
-deletes the memory used by the specified row returns the table-specific entry data (that it doesn't know how to delete) 
-.PP
-Definition at line 156 of file table_tdata.c.
-.SS "void netsnmp_tdata_delete_table (\fBnetsnmp_tdata\fP * table)"
-.PP
-creates and returns a 'tdata' table data structure 
-.PP
-Definition at line 69 of file table_tdata.c.
-.SS "\fBnetsnmp_container\fP* netsnmp_tdata_extract_container (\fBnetsnmp_request_info\fP * request)"
-.PP
-extracts the tdata container from the request structure 
-.PP
-Definition at line 376 of file table_tdata.c.
-.SS "void* netsnmp_tdata_extract_entry (\fBnetsnmp_request_info\fP * request)"
-.PP
-extracts the (table-specific) entry being accessed from the request structure 
-.PP
-Definition at line 393 of file table_tdata.c.
-.SS "\fBnetsnmp_tdata_row\fP* netsnmp_tdata_extract_row (\fBnetsnmp_request_info\fP * request)"
-.PP
-extracts the tdata row being accessed from the request structure 
-.PP
-Definition at line 385 of file table_tdata.c.
-.SS "\fBnetsnmp_tdata\fP* netsnmp_tdata_extract_table (\fBnetsnmp_request_info\fP * request)"
-.PP
-extracts the tdata table from the request structure 
-.PP
-Definition at line 368 of file table_tdata.c.
-.SS "int netsnmp_tdata_register (\fBnetsnmp_handler_registration\fP * reginfo, \fBnetsnmp_tdata\fP * table, \fBnetsnmp_table_registration_info\fP * table_info)"
-.PP
-registers a tdata-based MIB table 
-.PP
-Definition at line 350 of file table_tdata.c.
-.SS "void* netsnmp_tdata_remove_and_delete_row (\fBnetsnmp_tdata\fP * table, \fBnetsnmp_tdata_row\fP * row)"
-.PP
-removes and frees a row of the given table and returns the table-specific entry data returns the void * pointer on successful deletion. or NULL on failure (bad arguments) 
-.PP
-Definition at line 259 of file table_tdata.c.
-.SS "\fBnetsnmp_tdata_row\fP* netsnmp_tdata_remove_row (\fBnetsnmp_tdata\fP * table, \fBnetsnmp_tdata_row\fP * row)"
-.PP
-removes a row from the given table and returns it (no free's called) returns the row pointer itself on successful removing. or NULL on failure (bad arguments) 
-.PP
-Definition at line 241 of file table_tdata.c.
-.SS "void netsnmp_tdata_replace_row (\fBnetsnmp_tdata\fP * table, \fBnetsnmp_tdata_row\fP * origrow, \fBnetsnmp_tdata_row\fP * newrow)"
-.PP
-swaps out origrow with newrow. This does *not* delete/free anything! 
-.PP
-Definition at line 226 of file table_tdata.c.
-.SS "void* netsnmp_tdata_row_entry (\fBnetsnmp_tdata_row\fP * row)"
-.PP
-returns the (table-specific) entry data for a given row 
-.PP
-Definition at line 420 of file table_tdata.c.
-.SS "\fBnetsnmp_tdata_row\fP* netsnmp_tdata_row_first (\fBnetsnmp_tdata\fP * table)"
-.PP
-returns the first row in the table 
-.PP
-Definition at line 430 of file table_tdata.c.
-.SS "\fBnetsnmp_tdata_row\fP* netsnmp_tdata_row_get (\fBnetsnmp_tdata\fP * table, \fBnetsnmp_tdata_row\fP * row)"
-.PP
-finds a row in the 'tdata' table given another row 
-.PP
-Definition at line 437 of file table_tdata.c.
-.SS "\fBnetsnmp_tdata_row\fP* netsnmp_tdata_row_get_byidx (\fBnetsnmp_tdata\fP * table, \fBnetsnmp_variable_list\fP * indexes)"
-.PP
-finds a row in the 'tdata' table given the index values 
-.PP
-Definition at line 453 of file table_tdata.c.
-.SS "\fBnetsnmp_tdata_row\fP* netsnmp_tdata_row_get_byoid (\fBnetsnmp_tdata\fP * table, oid * searchfor, size_t searchfor_len)"
-.PP
-finds a row in the 'tdata' table given the index OID 
-.PP
-Definition at line 466 of file table_tdata.c.
-.SS "\fBnetsnmp_tdata_row\fP* netsnmp_tdata_row_next (\fBnetsnmp_tdata\fP * table, \fBnetsnmp_tdata_row\fP * row)"
-.PP
-returns the next row in the table 
-.PP
-Definition at line 445 of file table_tdata.c.
-.SS "\fBnetsnmp_tdata_row\fP* netsnmp_tdata_row_next_byidx (\fBnetsnmp_tdata\fP * table, \fBnetsnmp_variable_list\fP * indexes)"
-.PP
-finds the lexically next row in the 'tdata' table given the index values 
-.PP
-Definition at line 481 of file table_tdata.c.
-.SS "\fBnetsnmp_tdata_row\fP* netsnmp_tdata_row_next_byoid (\fBnetsnmp_tdata\fP * table, oid * searchfor, size_t searchfor_len)"
-.PP
-finds the lexically next row in the 'tdata' table given the index OID 
-.PP
-Definition at line 495 of file table_tdata.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_tools.h.3 b/man/netsnmp_tools.h.3
deleted file mode 100644
index cd0eec0..0000000
--- a/man/netsnmp_tools.h.3
+++ /dev/null
@@ -1,239 +0,0 @@
-.TH "tools.h" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-tools.h \- 
-.SH SYNOPSIS
-.br
-.PP
-\fC#include <inttypes.h>\fP
-.br
-
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBSNMP_MAXPATH\fP   PATH_MAX"
-.br
-.ti -1c
-.RI "#define \fBSNMP_MAXBUF\fP   (1024 * 4)"
-.br
-.ti -1c
-.RI "#define \fBSNMP_MAXBUF_MEDIUM\fP   1024"
-.br
-.ti -1c
-.RI "#define \fBSNMP_MAXBUF_SMALL\fP   512"
-.br
-.ti -1c
-.RI "#define \fBSNMP_MAXBUF_MESSAGE\fP   1500"
-.br
-.ti -1c
-.RI "#define \fBSNMP_MAXOID\fP   64"
-.br
-.ti -1c
-.RI "#define \fBSNMP_MAX_CMDLINE_OIDS\fP   128"
-.br
-.ti -1c
-.RI "#define \fBSNMP_FILEMODE_CLOSED\fP   0600"
-.br
-.ti -1c
-.RI "#define \fBSNMP_FILEMODE_OPEN\fP   0644"
-.br
-.ti -1c
-.RI "#define \fBBYTESIZE\fP(bitsize)   ((bitsize + 7) >> 3)"
-.br
-.ti -1c
-.RI "#define \fBROUNDUP8\fP(x)   ( ( (x+7) >> 3 ) * 8 )"
-.br
-.ti -1c
-.RI "#define \fBSNMP_STRORNULL\fP(x)   ( x ? x : '(null)')"
-.br
-.ti -1c
-.RI "#define \fBSNMP_FREE\fP(s)   do { if (s) { free((void *)s); s=NULL; } } while(0)"
-.br
-.RI "\fIFrees a pointer only if it is !NULL and sets its value to NULL. \fP"
-.ti -1c
-.RI "#define \fBSNMP_SWIPE_MEM\fP(n, s)   do { if (n) free((void *)n); n = s; s=NULL; } while(0)"
-.br
-.RI "\fIFrees pointer n only if it is !NULL, sets n to s and sets s to NULL. \fP"
-.ti -1c
-.RI "#define \fBSNMP_MALLOC_STRUCT\fP(s)   (struct s *) calloc(1, sizeof(struct s))"
-.br
-.RI "\fIMallocs memory of sizeof(struct s), zeros it and returns a pointer to it. \fP"
-.ti -1c
-.RI "#define \fBSNMP_MALLOC_TYPEDEF\fP(td)   (td *) calloc(1, sizeof(td))"
-.br
-.RI "\fIMallocs memory of sizeof(t), zeros it and returns a pointer to it. \fP"
-.ti -1c
-.RI "#define \fBSNMP_ZERO\fP(s, l)   do { if (s) memset(s, 0, l); } while(0)"
-.br
-.RI "\fIZeros l bytes of memory starting at s. \fP"
-.ti -1c
-.RI "#define \fBNETSNMP_REMOVE_CONST\fP(t, e)   ((t)(uintptr_t)(e))"
-.br
-.RI "\fICast away constness without that gcc -Wcast-qual prints a compiler warning, similar to const_cast<> in C++. \fP"
-.ti -1c
-.RI "#define \fBTOUPPER\fP(c)   (c >= 'a' && c <= 'z' ? c - ('a' - 'A') : c)"
-.br
-.ti -1c
-.RI "#define \fBTOLOWER\fP(c)   (c >= 'A' && c <= 'Z' ? c + ('a' - 'A') : c)"
-.br
-.ti -1c
-.RI "#define \fBHEX2VAL\fP(s)   ((isalpha(s) ? (TOLOWER(s)-'a'+10) : (TOLOWER(s)-'0')) & 0xf)"
-.br
-.ti -1c
-.RI "#define \fBVAL2HEX\fP(s)   ( (s) + (((s) >= 10) ? ('a'-10) : '0') )"
-.br
-.ti -1c
-.RI "#define \fBSNMP_MAX\fP(a, b)   ((a) > (b) ? (a) : (b))"
-.br
-.RI "\fIComputers the maximum of a and b. \fP"
-.ti -1c
-.RI "#define \fBSNMP_MIN\fP(a, b)   ((a) > (b) ? (b) : (a))"
-.br
-.RI "\fIComputers the minimum of a and b. \fP"
-.ti -1c
-.RI "#define \fBSNMP_MACRO_VAL_TO_STR\fP(s)   SNMP_MACRO_VAL_TO_STR_PRIV(s)"
-.br
-.RI "\fIExpands to string with value of the s. \fP"
-.ti -1c
-.RI "#define \fBSNMP_MACRO_VAL_TO_STR_PRIV\fP(s)   #s"
-.br
-.ti -1c
-.RI "#define \fBQUITFUN\fP(e, l)"
-.br
-.ti -1c
-.RI "#define \fBDIFFTIMEVAL\fP(now, then, diff)"
-.br
-.ti -1c
-.RI "#define \fBUSM_LENGTH_OID_TRANSFORM\fP   10"
-.br
-.ti -1c
-.RI "#define \fBISTRANSFORM\fP(ttype, toid)"
-.br
-.ti -1c
-.RI "#define \fBENGINETIME_MAX\fP   2147483647"
-.br
-.ti -1c
-.RI "#define \fBENGINEBOOT_MAX\fP   2147483647"
-.br
-.ti -1c
-.RI "#define \fBsnmp_cstrcat\fP(b, l, o, a, s)   snmp_strcat(b,l,o,a,(const u_char *)s)"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef void * \fBmarker_t\fP"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "int \fBsnmp_realloc\fP (u_char **buf, size_t *buf_len)"
-.br
-.RI "\fIThis function increase the size of the buffer pointed at by *buf, which is initially of size *buf_len. \fP"
-.ti -1c
-.RI "void \fBfree_zero\fP (void *buf, size_t size)"
-.br
-.RI "\fIzeros memory before freeing it. \fP"
-.ti -1c
-.RI "u_char * \fBmalloc_random\fP (size_t *size)"
-.br
-.RI "\fIReturns pointer to allocaed & set buffer on success, size contains number of random bytes filled. \fP"
-.ti -1c
-.RI "u_char * \fBmalloc_zero\fP (size_t size)"
-.br
-.ti -1c
-.RI "int \fBmemdup\fP (u_char **to, const void *from, size_t size)"
-.br
-.RI "\fIDuplicates a memory block. \fP"
-.ti -1c
-.RI "u_int \fBbinary_to_hex\fP (const u_char *input, size_t len, char **output)"
-.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 *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 *offset, int allow_realloc, const char *hex)"
-.br
-.RI "\fIconvert an ASCII hex string to binary \fP"
-.ti -1c
-.RI "int \fBhex_to_binary2\fP (const u_char *input, size_t len, char **output)"
-.br
-.RI "\fIhex_to_binary2 \fP"
-.ti -1c
-.RI "int \fBsnmp_decimal_to_binary\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const char *decimal)"
-.br
-.ti -1c
-.RI "int \fBsnmp_strcat\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const u_char *s)"
-.br
-.ti -1c
-.RI "char * \fBnetsnmp_strdup_and_null\fP (const u_char *from, size_t from_len)"
-.br
-.RI "\fIcopies 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 \fP"
-.ti -1c
-.RI "void \fBdump_chunk\fP (const char *debugtoken, const char *title, const u_char *buf, int size)"
-.br
-.ti -1c
-.RI "char * \fBdump_snmpEngineID\fP (const u_char *buf, size_t *buflen)"
-.br
-.ti -1c
-.RI "marker_t \fBatime_newMarker\fP (void)"
-.br
-.RI "\fIcreate a new time marker. \fP"
-.ti -1c
-.RI "void \fBatime_setMarker\fP (marker_t pm)"
-.br
-.RI "\fIset a time marker. \fP"
-.ti -1c
-.RI "long \fBatime_diff\fP (marker_t first, marker_t second)"
-.br
-.RI "\fIReturns the difference (in msec) between the two markers. \fP"
-.ti -1c
-.RI "u_long \fBuatime_diff\fP (marker_t first, marker_t second)"
-.br
-.RI "\fIReturns the difference (in u_long msec) between the two markers. \fP"
-.ti -1c
-.RI "u_long \fBuatime_hdiff\fP (marker_t first, marker_t second)"
-.br
-.RI "\fIReturns the difference (in u_long 1/100th secs) between the two markers (functionally this is what sysUpTime needs). \fP"
-.ti -1c
-.RI "int \fBatime_ready\fP (marker_t pm, int deltaT)"
-.br
-.RI "\fITest: Has (marked time plus delta) exceeded current time (in msec) ? Returns 0 if test fails or cannot be tested (no marker). \fP"
-.ti -1c
-.RI "int \fBuatime_ready\fP (marker_t pm, unsigned int deltaT)"
-.br
-.RI "\fITest: Has (marked time plus delta) exceeded current time (in msec) ? Returns 0 if test fails or cannot be tested (no marker). \fP"
-.ti -1c
-.RI "int \fBmarker_tticks\fP (marker_t pm)"
-.br
-.RI "\fIReturn the number of timeTicks since the given marker. \fP"
-.ti -1c
-.RI "int \fBtimeval_tticks\fP (struct timeval *tv)"
-.br
-.ti -1c
-.RI "NETSNMP_IMPORT char * \fBnetsnmp_getenv\fP (const char *name)"
-.br
-.RI "\fINon Windows: Returns a pointer to the desired environment \fBvariable\fP or NULL if the environment \fBvariable\fP does not exist. \fP"
-.ti -1c
-.RI "NETSNMP_IMPORT int \fBnetsnmp_setenv\fP (const char *envname, const char *envval, int overwrite)"
-.br
-.RI "\fISet an environment \fBvariable\fP. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_addrstr_hton\fP (char *ptr, size_t len)"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-
-.PP
-Definition in file \fBtools.h\fP.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/snmp_trap_api.3.def b/man/netsnmp_trap_api.3.def
similarity index 93%
rename from man/snmp_trap_api.3.def
rename to man/netsnmp_trap_api.3.def
index 913d677..424eb6d 100644
--- a/man/snmp_trap_api.3.def
+++ b/man/netsnmp_trap_api.3.def
@@ -1,6 +1,8 @@
-.TH SNMP_TRAP_API 3 "29 Sep 2003" VVERSIONINFO "Net-SNMP"
+.TH NETSNMP_TRAP_API 3 "13 Aug 2010" VVERSIONINFO "Net-SNMP"
 .SH NAME
-send_easy_trap, send_trap_vars, send_v2trap - send TRAPs or INFORMs from a Net-SNMP MIB module
+send_easy_trap,
+send_trap_vars,
+send_v2trap - send TRAPs or INFORMs from a Net-SNMP MIB module
 .SH SYNOPSIS
 .B #include <net-snmp/agent/agent_trap.h>
 .PP
diff --git a/man/netsnmp_util.3 b/man/netsnmp_util.3
deleted file mode 100644
index be317e9..0000000
--- a/man/netsnmp_util.3
+++ /dev/null
@@ -1,528 +0,0 @@
-.TH "Memory Utility Routines" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-Memory Utility Routines \- 
-.SS "Defines"
-
-.in +1c
-.ti -1c
-.RI "#define \fBSNMP_MAXPATH\fP   PATH_MAX"
-.br
-.ti -1c
-.RI "#define \fBSNMP_MAXBUF\fP   (1024 * 4)"
-.br
-.ti -1c
-.RI "#define \fBSNMP_MAXBUF_MEDIUM\fP   1024"
-.br
-.ti -1c
-.RI "#define \fBSNMP_MAXBUF_SMALL\fP   512"
-.br
-.ti -1c
-.RI "#define \fBSNMP_MAXBUF_MESSAGE\fP   1500"
-.br
-.ti -1c
-.RI "#define \fBSNMP_MAXOID\fP   64"
-.br
-.ti -1c
-.RI "#define \fBSNMP_MAX_CMDLINE_OIDS\fP   128"
-.br
-.ti -1c
-.RI "#define \fBSNMP_FILEMODE_CLOSED\fP   0600"
-.br
-.ti -1c
-.RI "#define \fBSNMP_FILEMODE_OPEN\fP   0644"
-.br
-.ti -1c
-.RI "#define \fBBYTESIZE\fP(bitsize)   ((bitsize + 7) >> 3)"
-.br
-.ti -1c
-.RI "#define \fBROUNDUP8\fP(x)   ( ( (x+7) >> 3 ) * 8 )"
-.br
-.ti -1c
-.RI "#define \fBSNMP_STRORNULL\fP(x)   ( x ? x : '(null)')"
-.br
-.ti -1c
-.RI "#define \fBSNMP_FREE\fP(s)   do { if (s) { free((void *)s); s=NULL; } } while(0)"
-.br
-.RI "\fIFrees a pointer only if it is !NULL and sets its value to NULL. \fP"
-.ti -1c
-.RI "#define \fBSNMP_SWIPE_MEM\fP(n, s)   do { if (n) free((void *)n); n = s; s=NULL; } while(0)"
-.br
-.RI "\fIFrees pointer n only if it is !NULL, sets n to s and sets s to NULL. \fP"
-.ti -1c
-.RI "#define \fBSNMP_MALLOC_STRUCT\fP(s)   (struct s *) calloc(1, sizeof(struct s))"
-.br
-.RI "\fIMallocs memory of sizeof(struct s), zeros it and returns a pointer to it. \fP"
-.ti -1c
-.RI "#define \fBSNMP_MALLOC_TYPEDEF\fP(td)   (td *) calloc(1, sizeof(td))"
-.br
-.RI "\fIMallocs memory of sizeof(t), zeros it and returns a pointer to it. \fP"
-.ti -1c
-.RI "#define \fBSNMP_ZERO\fP(s, l)   do { if (s) memset(s, 0, l); } while(0)"
-.br
-.RI "\fIZeros l bytes of memory starting at s. \fP"
-.ti -1c
-.RI "#define \fBNETSNMP_REMOVE_CONST\fP(t, e)   ((t)(uintptr_t)(e))"
-.br
-.RI "\fICast away constness without that gcc -Wcast-qual prints a compiler warning, similar to const_cast<> in C++. \fP"
-.ti -1c
-.RI "#define \fBTOUPPER\fP(c)   (c >= 'a' && c <= 'z' ? c - ('a' - 'A') : c)"
-.br
-.ti -1c
-.RI "#define \fBTOLOWER\fP(c)   (c >= 'A' && c <= 'Z' ? c + ('a' - 'A') : c)"
-.br
-.ti -1c
-.RI "#define \fBHEX2VAL\fP(s)   ((isalpha(s) ? (TOLOWER(s)-'a'+10) : (TOLOWER(s)-'0')) & 0xf)"
-.br
-.ti -1c
-.RI "#define \fBVAL2HEX\fP(s)   ( (s) + (((s) >= 10) ? ('a'-10) : '0') )"
-.br
-.ti -1c
-.RI "#define \fBSNMP_MAX\fP(a, b)   ((a) > (b) ? (a) : (b))"
-.br
-.RI "\fIComputers the maximum of a and b. \fP"
-.ti -1c
-.RI "#define \fBSNMP_MIN\fP(a, b)   ((a) > (b) ? (b) : (a))"
-.br
-.RI "\fIComputers the minimum of a and b. \fP"
-.ti -1c
-.RI "#define \fBSNMP_MACRO_VAL_TO_STR\fP(s)   SNMP_MACRO_VAL_TO_STR_PRIV(s)"
-.br
-.RI "\fIExpands to string with value of the s. \fP"
-.ti -1c
-.RI "#define \fBSNMP_MACRO_VAL_TO_STR_PRIV\fP(s)   #s"
-.br
-.ti -1c
-.RI "#define \fBQUITFUN\fP(e, l)"
-.br
-.ti -1c
-.RI "#define \fBDIFFTIMEVAL\fP(now, then, diff)"
-.br
-.ti -1c
-.RI "#define \fBUSM_LENGTH_OID_TRANSFORM\fP   10"
-.br
-.ti -1c
-.RI "#define \fBISTRANSFORM\fP(ttype, toid)"
-.br
-.ti -1c
-.RI "#define \fBENGINETIME_MAX\fP   2147483647"
-.br
-.ti -1c
-.RI "#define \fBENGINEBOOT_MAX\fP   2147483647"
-.br
-.ti -1c
-.RI "#define \fBsnmp_cstrcat\fP(b, l, o, a, s)   snmp_strcat(b,l,o,a,(const u_char *)s)"
-.br
-.in -1c
-.SS "Typedefs"
-
-.in +1c
-.ti -1c
-.RI "typedef void * \fBmarker_t\fP"
-.br
-.in -1c
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "int \fBsnmp_realloc\fP (u_char **buf, size_t *buf_len)"
-.br
-.RI "\fIThis function increase the size of the buffer pointed at by *buf, which is initially of size *buf_len. \fP"
-.ti -1c
-.RI "void \fBfree_zero\fP (void *buf, size_t size)"
-.br
-.RI "\fIzeros memory before freeing it. \fP"
-.ti -1c
-.RI "u_char * \fBmalloc_random\fP (size_t *size)"
-.br
-.RI "\fIReturns pointer to allocaed & set buffer on success, size contains number of random bytes filled. \fP"
-.ti -1c
-.RI "u_char * \fBmalloc_zero\fP (size_t size)"
-.br
-.ti -1c
-.RI "int \fBmemdup\fP (u_char **to, const void *from, size_t size)"
-.br
-.RI "\fIDuplicates a memory block. \fP"
-.ti -1c
-.RI "u_int \fBbinary_to_hex\fP (const u_char *input, size_t len, char **output)"
-.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 *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 *offset, int allow_realloc, const char *hex)"
-.br
-.RI "\fIconvert an ASCII hex string to binary \fP"
-.ti -1c
-.RI "int \fBhex_to_binary2\fP (const u_char *input, size_t len, char **output)"
-.br
-.RI "\fIhex_to_binary2 \fP"
-.ti -1c
-.RI "int \fBsnmp_decimal_to_binary\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const char *decimal)"
-.br
-.ti -1c
-.RI "int \fBsnmp_strcat\fP (u_char **buf, size_t *buf_len, size_t *out_len, int allow_realloc, const u_char *s)"
-.br
-.ti -1c
-.RI "char * \fBnetsnmp_strdup_and_null\fP (const u_char *from, size_t from_len)"
-.br
-.RI "\fIcopies 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 \fP"
-.ti -1c
-.RI "void \fBdump_chunk\fP (const char *debugtoken, const char *title, const u_char *buf, int size)"
-.br
-.ti -1c
-.RI "char * \fBdump_snmpEngineID\fP (const u_char *buf, size_t *buflen)"
-.br
-.ti -1c
-.RI "marker_t \fBatime_newMarker\fP (void)"
-.br
-.RI "\fIcreate a new time marker. \fP"
-.ti -1c
-.RI "void \fBatime_setMarker\fP (marker_t pm)"
-.br
-.RI "\fIset a time marker. \fP"
-.ti -1c
-.RI "long \fBatime_diff\fP (marker_t first, marker_t second)"
-.br
-.RI "\fIReturns the difference (in msec) between the two markers. \fP"
-.ti -1c
-.RI "u_long \fBuatime_diff\fP (marker_t first, marker_t second)"
-.br
-.RI "\fIReturns the difference (in u_long msec) between the two markers. \fP"
-.ti -1c
-.RI "u_long \fBuatime_hdiff\fP (marker_t first, marker_t second)"
-.br
-.RI "\fIReturns the difference (in u_long 1/100th secs) between the two markers (functionally this is what sysUpTime needs). \fP"
-.ti -1c
-.RI "int \fBatime_ready\fP (marker_t pm, int deltaT)"
-.br
-.RI "\fITest: Has (marked time plus delta) exceeded current time (in msec) ? Returns 0 if test fails or cannot be tested (no marker). \fP"
-.ti -1c
-.RI "int \fBuatime_ready\fP (marker_t pm, unsigned int deltaT)"
-.br
-.RI "\fITest: Has (marked time plus delta) exceeded current time (in msec) ? Returns 0 if test fails or cannot be tested (no marker). \fP"
-.ti -1c
-.RI "int \fBmarker_tticks\fP (marker_t pm)"
-.br
-.RI "\fIReturn the number of timeTicks since the given marker. \fP"
-.ti -1c
-.RI "int \fBtimeval_tticks\fP (struct timeval *tv)"
-.br
-.ti -1c
-.RI "NETSNMP_IMPORT char * \fBnetsnmp_getenv\fP (const char *name)"
-.br
-.RI "\fINon Windows: Returns a pointer to the desired environment \fBvariable\fP or NULL if the environment \fBvariable\fP does not exist. \fP"
-.ti -1c
-.RI "NETSNMP_IMPORT int \fBnetsnmp_setenv\fP (const char *envname, const char *envval, int overwrite)"
-.br
-.RI "\fISet an environment \fBvariable\fP. \fP"
-.ti -1c
-.RI "int \fBnetsnmp_addrstr_hton\fP (char *ptr, size_t len)"
-.br
-.in -1c
-.SH "Define Documentation"
-.PP 
-.SS "#define DIFFTIMEVAL(now, then, diff)"\fBValue:\fP
-.PP
-.nf
-{                                                     \
-        now.tv_sec--;                                   \
-        now.tv_usec += 1000000L;                        \
-        diff.tv_sec  = now.tv_sec  - then.tv_sec;       \
-        diff.tv_usec = now.tv_usec - then.tv_usec;      \
-        if (diff.tv_usec > 1000000L){                   \
-                diff.tv_usec -= 1000000L;               \
-                diff.tv_sec++;                          \
-        }                                               \
-}
-.fi
-.PP
-Definition at line 152 of file tools.h.
-.SS "#define ISTRANSFORM(ttype, toid)"\fBValue:\fP
-.PP
-.nf
-!snmp_oid_compare(ttype, USM_LENGTH_OID_TRANSFORM,            \
-                usm ## toid ## Protocol, USM_LENGTH_OID_TRANSFORM)
-.fi
-.PP
-Definition at line 171 of file tools.h.
-.SS "#define NETSNMP_REMOVE_CONST(t, e)   ((t)(uintptr_t)(e))"
-.PP
-Cast away constness without that gcc -Wcast-qual prints a compiler warning, similar to const_cast<> in C++. \fBParameters:\fP
-.RS 4
-\fIt\fP A pointer type. 
-.br
-\fIe\fP An expression of a type that can be assigned to the type (const t). 
-.RE
-.PP
-
-.PP
-Definition at line 92 of file tools.h.
-.SS "#define QUITFUN(e, l)"\fBValue:\fP
-.PP
-.nf
-if ( (e) != SNMPERR_SUCCESS) {     \
-                rval = SNMPERR_GENERR;  \
-                goto l ;                \
-        }
-.fi
-.PP
-Definition at line 139 of file tools.h.
-.SS "#define SNMP_FREE(s)   do { if (s) { free((void *)s); s=NULL; } } while(0)"
-.PP
-Frees a pointer only if it is !NULL and sets its value to NULL. 
-.PP
-Definition at line 57 of file tools.h.
-.SS "#define SNMP_MACRO_VAL_TO_STR(s)   SNMP_MACRO_VAL_TO_STR_PRIV(s)"
-.PP
-Expands to string with value of the s. If s is macro, the resulting string is value of the macro. Example: #define TEST 1234 \fBSNMP_MACRO_VAL_TO_STR(TEST)\fP expands to '1234' SNMP_MACRO_VAL_TO_STR(TEST+1) expands to '1234+1' 
-.PP
-Definition at line 120 of file tools.h.
-.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. 
-.PP
-Definition at line 68 of file tools.h.
-.SS "#define SNMP_MALLOC_TYPEDEF(td)   (td *) calloc(1, sizeof(td))"
-.PP
-Mallocs memory of sizeof(t), zeros it and returns a pointer to it. 
-.PP
-Definition at line 72 of file tools.h.
-.SS "#define SNMP_MAX(a, b)   ((a) > (b) ? (a) : (b))"
-.PP
-Computers the maximum of a and b. 
-.PP
-Definition at line 106 of file tools.h.
-.SS "#define SNMP_MIN(a, b)   ((a) > (b) ? (b) : (a))"
-.PP
-Computers the minimum of a and b. 
-.PP
-Definition at line 110 of file tools.h.
-.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. 
-.PP
-Definition at line 61 of file tools.h.
-.SS "#define SNMP_ZERO(s, l)   do { if (s) memset(s, 0, l); } while(0)"
-.PP
-Zeros l bytes of memory starting at s. 
-.PP
-Definition at line 76 of file tools.h.
-.SH "Function Documentation"
-.PP 
-.SS "long atime_diff (marker_t first, marker_t second)"
-.PP
-Returns the difference (in msec) between the two markers. 
-.PP
-Definition at line 803 of file tools.c.
-.SS "marker_t atime_newMarker (void)"
-.PP
-create a new time marker. NOTE: Caller must free time marker when no longer needed. 
-.PP
-Definition at line 779 of file tools.c.
-.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). 
-.PP
-Definition at line 858 of file tools.c.
-.SS "void atime_setMarker (marker_t pm)"
-.PP
-set a time marker. 
-.PP
-Definition at line 790 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
-.RS 4
-\fI*input\fP Binary data. 
-.br
-\fIlen\fP Length of binary data. 
-.br
-\fI**output\fP NULL terminated string equivalent in hex.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-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 \fBsnmplib/snmp_api.c\fP. 
-.PP
-Definition at line 299 of file tools.c.
-.SS "void free_zero (void * buf, size_t size)"
-.PP
-zeros memory before freeing it. \fBParameters:\fP
-.RS 4
-\fI*buf\fP Pointer at bytes to free. 
-.br
-\fIsize\fP Number of bytes in buf. 
-.RE
-.PP
-
-.PP
-Definition at line 197 of file tools.c.
-.SS "int hex_to_binary2 (const u_char * input, size_t len, char ** output)"
-.PP
-hex_to_binary2 \fBParameters:\fP
-.RS 4
-\fI*input\fP Printable data in base16. 
-.br
-\fIlen\fP Length in bytes of data. 
-.br
-\fI**output\fP Binary data equivalent to input.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-SNMPERR_GENERR on failure, otherwise length of allocated string.
-.RE
-.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. 
-.PP
-Definition at line 336 of file tools.c.
-.SS "u_char* malloc_random (size_t * size)"
-.PP
-Returns pointer to allocaed & set buffer on success, size contains number of random bytes filled. buf is NULL and *size set to KMT error value upon failure.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIsize\fP Number of bytes to malloc() and fill with random bytes.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-a malloced buffer 
-.RE
-.PP
-
-.PP
-Definition at line 217 of file tools.c.
-.SS "int marker_tticks (marker_t pm)"
-.PP
-Return the number of timeTicks since the given marker. 
-.PP
-Definition at line 906 of file tools.c.
-.SS "int memdup (u_char ** to, const void * from, size_t size)"
-.PP
-Duplicates a memory block. Copies a existing memory location from a pointer to another, newly malloced, pointer.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIto\fP Pointer to allocate and copy memory to. 
-.br
-\fIfrom\fP Pointer to copy memory from. 
-.br
-\fIsize\fP Size of the data to be copied.
-.RE
-.PP
-\fBReturns:\fP
-.RS 4
-SNMPERR_SUCCESS on success, SNMPERR_GENERR on failure. 
-.RE
-.PP
-
-.PP
-Definition at line 248 of file tools.c.
-.SS "NETSNMP_IMPORT char* netsnmp_getenv (const char * name)"
-.PP
-Non Windows: Returns a pointer to the desired environment \fBvariable\fP or NULL if the environment \fBvariable\fP does not exist. Windows: Returns a pointer to the desired environment \fBvariable\fP if it exists. If it does not, the \fBvariable\fP is looked up in the registry in HKCU\\Net-SNMP or HKLM\\Net-SNMP (whichever it finds first) and stores the result in the environment \fBvariable\fP. It then returns a pointer to environment \fBvariable\fP. 
-.PP
-Definition at line 934 of file tools.c.
-.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
-\fIbuf\fP address of a pointer (pointer to pointer) for the output buffer. If allow_realloc is set, the buffer may be grown via snmp_realloc to accomodate the data.
-.br
-\fIbuf_len\fP pointer to a size_t containing the initial size of buf.
-.br
-\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
-\fIhex\fP pointer to hex string to be converted. May be prefixed by '0x' or '0X'.
-.br
-\fIdelim\fP point to a string of allowed delimiters between bytes. If not specified, any non-hex characters will be an error.
-.RE
-.PP
-\fBReturn values:\fP
-.RS 4
-\fI1\fP success 
-.br
-\fI0\fP error 
-.RE
-.PP
-
-.PP
-Definition at line 437 of file tools.c.
-.SS "NETSNMP_IMPORT int netsnmp_setenv (const char * envname, const char * envval, int overwrite)"
-.PP
-Set an environment \fBvariable\fP. This function is only necessary on Windows for the MSVC and MinGW environments. If the process that uses the Net-SNMP DLL (e.g. a Perl interpreter) and the Net-SNMP have been built with a different compiler version then each will have a separate set of environment variables. This function allows to set an environment \fBvariable\fP such that it gets noticed by the Net-SNMP DLL. 
-.PP
-Definition at line 1067 of file tools.c.
-.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 
-.PP
-Definition at line 267 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
-This is a wrapper which calls netsnmp_hex_to_binary with a delimiter string of ' '.
-.RE
-.PP
-See netsnmp_hex_to_binary for parameter descriptions.
-.PP
-\fBReturn values:\fP
-.RS 4
-\fI1\fP success 
-.br
-\fI0\fP error 
-.RE
-.PP
-
-.PP
-Definition at line 497 of file tools.c.
-.SS "int snmp_realloc (u_char ** buf, size_t * buf_len)"
-.PP
-This function increase the size of the buffer pointed at by *buf, which is initially of size *buf_len. Contents are preserved **AT THE BOTTOM END OF THE BUFFER**. If memory can be (re-)allocated then it returns 1, else it returns 0.
-.PP
-\fBParameters:\fP
-.RS 4
-\fIbuf\fP pointer to a buffer pointer 
-.br
-\fIbuf_len\fP pointer to current size of buffer in bytes
-.RE
-.PP
-\fBNote:\fP
-.RS 4
-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
-
-.PP
-Definition at line 133 of file tools.c.
-.SS "u_long uatime_diff (marker_t first, marker_t second)"
-.PP
-Returns the difference (in u_long msec) between the two markers. 
-.PP
-Definition at line 820 of file tools.c.
-.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). 
-.PP
-Definition at line 838 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). 
-.PP
-Definition at line 880 of file tools.c.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_utilities.3 b/man/netsnmp_utilities.3
deleted file mode 100644
index da10696..0000000
--- a/man/netsnmp_utilities.3
+++ /dev/null
@@ -1,74 +0,0 @@
-.TH "utility_handlers" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-utility_handlers \- 
-.PP
-Simplify request processing A group of handlers intended to simplify certain aspects of processing a request for a MIB object.  
-
-.SS "Modules"
-
-.in +1c
-.ti -1c
-.RI "\fBbulk_to_next\fP"
-.br
-.PP
-
-.RI "\fIConvert GETBULK requests into GETNEXT requests for the handler. \fP"
-.ti -1c
-.RI "\fBcache_handler\fP"
-.br
-.PP
-
-.RI "\fIMaintains a cache of data for use by lower level handlers. \fP"
-.ti -1c
-.RI "\fBdebug\fP"
-.br
-.PP
-
-.RI "\fIPrint out debugging information about the handler chain being called. \fP"
-.ti -1c
-.RI "\fBmode_end_call\fP"
-.br
-.PP
-
-.RI "\fIAt the end of a series of requests, call another handler hook. \fP"
-.ti -1c
-.RI "\fBmultiplexer\fP"
-.br
-.PP
-
-.RI "\fISplits mode requests into calls to different handlers. \fP"
-.ti -1c
-.RI "\fBread_only\fP"
-.br
-.PP
-
-.RI "\fIMake your handler read_only automatically The only purpose of this handler is to return an appropriate error for any requests passed to it in a SET mode. \fP"
-.ti -1c
-.RI "\fBrow_merge\fP"
-.br
-.PP
-
-.RI "\fICalls sub handlers with request for one row at a time. \fP"
-.ti -1c
-.RI "\fBserialize\fP"
-.br
-.PP
-
-.RI "\fICalls sub handlers one request at a time. \fP"
-.ti -1c
-.RI "\fBstash_to_next\fP"
-.br
-.PP
-
-.RI "\fIConvert GET_STASH requests into GETNEXT requests for the handler. \fP"
-.in -1c
-.SH "Detailed Description"
-.PP 
-Simplify request processing A group of handlers intended to simplify certain aspects of processing a request for a MIB object. 
-
-These helpers do not implement any MIB objects themselves. Rather they handle specific generic situations, either returning an error, or passing a (possibly simpler) request down to lower level handlers. 
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/varbind_api.3.def b/man/netsnmp_varbind_api.3.def
similarity index 68%
rename from man/varbind_api.3.def
rename to man/netsnmp_varbind_api.3.def
index fd61c75..3941f9f 100644
--- a/man/varbind_api.3.def
+++ b/man/netsnmp_varbind_api.3.def
@@ -1,57 +1,69 @@
-.TH VARBIND_API 3 "20 Apr 2009" VVERSIONINFO "Net-SNMP"
+.TH NETSNMP_VARBIND_API 3 "13 Aug 2010" VVERSIONINFO "Net-SNMP"
 .SH NAME
-snmp_pdu_add_var, snmp_varlist_add_var, snmp_add_null_var,
-snmp_clone_varbind, snmp_free_varbind, snmp_free_var,
-print_variable, fprint_variable, snprint_variable,
-print_value, fprint_value, snprint_value - varbind_api functions
+snmp_pdu_add_variable,
+snmp_varlist_add_variable,
+snmp_add_null_var,
+snmp_clone_varbind,
+snmp_set_var_objid,
+snmp_set_var_value,
+snmp_set_var_typed_value,
+snmp_set_var_typed_integer,
+print_variable,
+fprint_variable,
+snprint_variable,
+print_value,
+fprint_value,
+snprint_value,
+snmp_free_var,
+snmp_free_varbind - netsnmp_varbind_api functions
 .SH SYNOPSIS
 .B #include <net-snmp/varbind_api.h>
 .SS Creation
 .PP
 .B "netsnmp_variable_list *snmp_pdu_add_variable("
 .br
-.BI "        netsnmp_pdu *" pdu ","
+.BI "                     netsnmp_pdu *" pdu ","
 .br
-.BI "        const oid *" objid ", size_t " objidlen ","
+.BI "                     const oid *" objid ", size_t " objidlen ","
 .br
-.BI "        u_char " type ", const void *" value ", size_t " len ");"
+.BI "                     u_char " type ", const void *" value ", size_t " len ");"
 .br
 .B "netsnmp_variable_list *snmp_varlist_add_variable("
 .br
-.BI "        netsnmp_variable_list *" varlist ","
+.BI "                     netsnmp_variable_list *" varlist ","
 .br
-.BI "        const oid *" objid ", size_t " objidlen ","
+.BI "                     const oid *" objid ", size_t " objidlen ","
 .br
-.BI "        u_char " type ", const void *" value ", size_t " len ");"
+.BI "                     u_char " type ", const void *" value ", size_t " len ");"
 .br
 .B "netsnmp_variable_list *snmp_add_null_var("
 .br
-.BI "        netsnmp_pdu *" pdu ","
+.BI "                     netsnmp_pdu *" pdu ","
 .br
-.BI "        const oid *" objid ", size_t " objidlen ");"
+.BI "                     const oid *" objid ", size_t " objidlen ");"
 .PP
 .B "netsnmp_variable_list *snmp_clone_varbind("
 .br
-.BI "        netsnmp_variable_list *" varlist ");"
+.BI "                     netsnmp_variable_list *" varlist ");"
 .SS Setting Values
 .PP
 .BI "int  snmp_set_var_objid( netsnmp_variable_list* " variable ","
 .br
-.BI "                         const oid * " objid ", size_t " objidlen ");"
+.BI "                     const oid * " objid ", size_t " objidlen ");"
 .br
 .BI "int  snmp_set_var_value( netsnmp_variable_list* " variable ","
 .br
-.BI "                         const void * " value ", size_t " vallen ");"
+.BI "                     const void * " value ", size_t " vallen ");"
 .br
 .BI "int  snmp_set_var_typed_value( netsnmp_variable_list* " variable ","
 .br
-.BI "                         u_char " type ","
+.BI "                     u_char " type ","
 .br
-.BI "                         const void * " value ", size_t " vallen ");"
+.BI "                     const void * " value ", size_t " vallen ");"
 .br
 .BI "int  snmp_set_var_typed_integer( netsnmp_variable_list* " variable ","
 .br
-.BI "                         u_char " type ", long " value ");"
+.BI "                     u_char " type ", long " value ");"
 .br
 .SS Output
 .PP
@@ -73,24 +85,24 @@
 .PP
 .BI "void  print_value(const oid *" objid ", size_t " objidlen ","
 .br
-.BI "                  const netsnmp_variable_list *" variable ");"
+.BI "                     const netsnmp_variable_list *" variable ");"
 .br
 .BI "void fprint_value(FILE *" fp ","
 .br
-.BI "                  const oid *" objid ", size_t " objidlen ","
+.BI "                     const oid *" objid ", size_t " objidlen ","
 .br
-.BI "                  const netsnmp_variable_list *" variable ");"
+.BI "                     const netsnmp_variable_list *" variable ");"
 .br
 .BI "int snprint_value(char *" buf ", size_t " "len" ","
 .br
-.BI "                  const oid *" objid ", size_t " objidlen ","
+.BI "                     const oid *" objid ", size_t " objidlen ","
 .br
-.BI "                  const netsnmp_variable_list *" variable ");"
+.BI "                     const netsnmp_variable_list *" variable ");"
 .br
 .br
 .SS Deletion
 .PP
-.BI "void snmp_free_var(     netsnmp_variable_list *" variable ");"
+.BI "void snmp_free_var(       netsnmp_variable_list *" variable ");"
 .br
 .BI "void snmp_free_varbind( netsnmp_variable_list *" variables ");"
 .br
@@ -116,7 +128,13 @@
 When adding the first varbind to an empty list, simply
 pass the address of the head of the list:
 .IP
-"[Insert example code here]"
+  netsnmp_variable_list *vl = NULL;
+  snmp_varlist_add_variable(
+            &vl, name1, name1_len,
+            ASN_\fITYPE\fP, &val1, val1_len);
+  snmp_varlist_add_variable(
+            &vl, name2, name2_len,
+            ASN_\fITYPE\fP, &val2, val2_len);
 .PP
 In both cases, the routine will return a pointer to the new
 varbind structure (or NULL if the varbind creation fails).
@@ -183,6 +201,8 @@
 .B print_variable
 routines, but only displaying the value of the variable, without the
 corresponding object identifier.
+.PP
+For displaying the OID of a varbind, see \fBnetsnmp_mib_api\fP(3).
 .br
 .SS Deletion
 .B snmp_free_var
@@ -192,5 +212,5 @@
 releases all memory used by each varbind structure in the varbind list provided.
 .br
 .SH "SEE ALSO"
-.BR pdu_api "(3)"
-.BR mib_api "(3)"
+.BR netsnmp_pdu_api "(3)"
+.BR netsnmp_mib_api "(3)"
diff --git a/man/netsnmp_variable_list.3 b/man/netsnmp_variable_list.3
deleted file mode 100644
index 1a5841b..0000000
--- a/man/netsnmp_variable_list.3
+++ /dev/null
@@ -1,132 +0,0 @@
-.TH "variable_list" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-variable_list \- 
-.PP
-The netsnmp \fBvariable\fP list binding structure, it's typedef'd to netsnmp_variable_list.  
-
-.SH SYNOPSIS
-.br
-.PP
-.PP
-\fC#include <types.h>\fP
-.SS "Data Fields"
-
-.in +1c
-.ti -1c
-.RI "struct \fBvariable_list\fP * \fBnext_variable\fP"
-.br
-.RI "\fINULL for last \fBvariable\fP. \fP"
-.ti -1c
-.RI "oid * \fBname\fP"
-.br
-.RI "\fIObject identifier of \fBvariable\fP. \fP"
-.ti -1c
-.RI "size_t \fBname_length\fP"
-.br
-.RI "\fInumber of subid's in name \fP"
-.ti -1c
-.RI "u_char \fBtype\fP"
-.br
-.RI "\fIASN type of \fBvariable\fP. \fP"
-.ti -1c
-.RI "\fBnetsnmp_vardata\fP \fBval\fP"
-.br
-.RI "\fIvalue of \fBvariable\fP \fP"
-.ti -1c
-.RI "size_t \fBval_len\fP"
-.br
-.RI "\fIthe length of the value to be copied into buf \fP"
-.ti -1c
-.RI "oid \fBname_loc\fP [MAX_OID_LEN]"
-.br
-.RI "\fIbuffer to hold the OID \fP"
-.ti -1c
-.RI "u_char \fBbuf\fP [40]"
-.br
-.RI "\fI90 percentile < 40. \fP"
-.ti -1c
-.RI "void * \fBdata\fP"
-.br
-.RI "\fI(Opaque) hook for additional data \fP"
-.ti -1c
-.RI "void(* \fBdataFreeHook\fP )(void *)"
-.br
-.RI "\fIcallback to free above \fP"
-.ti -1c
-.RI "int \fBindex\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-The netsnmp \fBvariable\fP list binding structure, it's typedef'd to netsnmp_variable_list. 
-.PP
-\fBExamples: \fP
-.in +1c
-.PP
-\fBnotification.c\fP.
-.PP
-Definition at line 139 of file types.h.
-.SH "Field Documentation"
-.PP 
-.SS "u_char \fBvariable_list::buf\fP[40]"
-.PP
-90 percentile < 40. 
-.PP
-Definition at line 155 of file types.h.
-.SS "void* \fBvariable_list::data\fP"
-.PP
-(Opaque) hook for additional data 
-.PP
-Definition at line 157 of file types.h.
-.SS "void(* \fBvariable_list::dataFreeHook\fP)(void *)"
-.PP
-callback to free above 
-.SS "oid* \fBvariable_list::name\fP"
-.PP
-Object identifier of \fBvariable\fP. 
-.PP
-Definition at line 143 of file types.h.
-.SS "size_t \fBvariable_list::name_length\fP"
-.PP
-number of subid's in name 
-.PP
-Definition at line 145 of file types.h.
-.SS "oid \fBvariable_list::name_loc\fP[MAX_OID_LEN]"
-.PP
-buffer to hold the OID 
-.PP
-Definition at line 153 of file types.h.
-.SS "struct \fBvariable_list\fP* \fBvariable_list::next_variable\fP\fC [read]\fP"
-.PP
-NULL for last \fBvariable\fP. 
-.PP
-Definition at line 141 of file types.h.
-.SS "u_char \fBvariable_list::type\fP"
-.PP
-ASN type of \fBvariable\fP. 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdelayed_instance.c\fP.
-.PP
-Definition at line 147 of file types.h.
-.SS "\fBnetsnmp_vardata\fP \fBvariable_list::val\fP"
-.PP
-value of \fBvariable\fP 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBdelayed_instance.c\fP.
-.PP
-Definition at line 149 of file types.h.
-.SS "size_t \fBvariable_list::val_len\fP"
-.PP
-the length of the value to be copied into buf 
-.PP
-Definition at line 151 of file types.h.
-
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/netsnmp_watcher.3 b/man/netsnmp_watcher.3
deleted file mode 100644
index de5314e..0000000
--- a/man/netsnmp_watcher.3
+++ /dev/null
@@ -1,162 +0,0 @@
-.TH "watcher" 3 "31 May 2012" "Version 5.5.2.rc2" "net-snmp" \" -*- nroff -*-
-.ad l
-.nh
-.SH NAME
-watcher \- 
-.PP
-Watch a specified \fBvariable\fP and process it as an instance or scalar object.  
-
-.SS "Functions"
-
-.in +1c
-.ti -1c
-.RI "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_watcher_handler\fP (void)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_watcher_info\fP * \fBnetsnmp_init_watcher_info6\fP (\fBnetsnmp_watcher_info\fP *winfo, void *data, size_t size, u_char type, int flags, size_t max_size, size_t *size_p)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_watcher_info\fP * \fBnetsnmp_create_watcher_info6\fP (void *data, size_t size, u_char type, int flags, size_t max_size, size_t *size_p)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_watcher_info\fP * \fBnetsnmp_init_watcher_info\fP (\fBnetsnmp_watcher_info\fP *winfo, void *data, size_t size, u_char type, int flags)"
-.br
-.ti -1c
-.RI "\fBnetsnmp_watcher_info\fP * \fBnetsnmp_create_watcher_info\fP (void *data, size_t size, u_char type, int flags)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_watched_instance\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_watcher_info\fP *watchinfo)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_watched_scalar\fP (\fBnetsnmp_handler_registration\fP *reginfo, \fBnetsnmp_watcher_info\fP *watchinfo)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_watcher_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 "\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
-.RI "int \fBnetsnmp_watched_timestamp_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 "\fBnetsnmp_mib_handler\fP * \fBnetsnmp_get_watched_spinlock_handler\fP (void)"
-.br
-.ti -1c
-.RI "int \fBnetsnmp_register_watched_spinlock\fP (\fBnetsnmp_handler_registration\fP *reginfo, int *spinlock)"
-.br
-.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, const 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, const 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, const 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, const 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, const 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, const 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, const oid *reg_oid, size_t reg_oid_len, u_long *it, Netsnmp_Node_Handler *subhandler)"
-.br
-.in -1c 
-.in +1c
-.ti -1c
-.RI "#define \fBNETSNMP_WATCHER_DIRECT\fP   MIB_HANDLER_CUSTOM1"
-.br
-.ti -1c
-.RI "#define \fBWATCHER_FIXED_SIZE\fP"
-.br
-.RI "\fIThe size of the watched object is constant. \fP"
-.ti -1c
-.RI "#define \fBWATCHER_MAX_SIZE\fP"
-.br
-.RI "\fIThe maximum size of the watched object is stored in max_size. \fP"
-.ti -1c
-.RI "#define \fBWATCHER_SIZE_IS_PTR\fP"
-.br
-.RI "\fIIf set then the \fBvariable\fP data_size_p points to is supposed to hold the current size of the watched object and will be updated on writes. \fP"
-.ti -1c
-.RI "#define \fBWATCHER_SIZE_STRLEN\fP"
-.br
-.RI "\fIIf set then data is suppposed to be a zero-terminated character array and both data_size and data_size_p are ignored. \fP"
-.ti -1c
-.RI "#define \fBWATCHER_SIZE_UNIT_OIDS\fP"
-.br
-.RI "\fIIf set then size is in units of object identifiers. \fP"
-.ti -1c
-.RI "typedef struct \fBnetsnmp_watcher_info_s\fP \fBnetsnmp_watcher_info\fP"
-.br
-.in -1c
-.SH "Detailed Description"
-.PP 
-Watch a specified \fBvariable\fP and process it as an instance or scalar object. 
-.SH "Define Documentation"
-.PP 
-.SS "#define WATCHER_FIXED_SIZE"
-.PP
-The size of the watched object is constant. 
-.PP
-Definition at line 26 of file watcher.h.
-.SS "#define WATCHER_MAX_SIZE"
-.PP
-The maximum size of the watched object is stored in max_size. If WATCHER_SIZE_STRLEN is set then it is supposed that max_size + 1 bytes could be stored in the buffer. 
-.PP
-\fBExamples: \fP
-.in +1c
-\fBwatched.c\fP.
-.PP
-Definition at line 32 of file watcher.h.
-.SS "#define WATCHER_SIZE_IS_PTR"
-.PP
-If set then the \fBvariable\fP data_size_p points to is supposed to hold the current size of the watched object and will be updated on writes. \fBSince:\fP
-.RS 4
-Net-SNMP 5.5 
-.RE
-.PP
-
-.PP
-Definition at line 38 of file watcher.h.
-.SS "#define WATCHER_SIZE_STRLEN"
-.PP
-If set then data is suppposed to be a zero-terminated character array and both data_size and data_size_p are ignored. Additionally \\0 is a forbidden character in the data set.
-.PP
-\fBSince:\fP
-.RS 4
-Net-SNMP 5.5 
-.RE
-.PP
-
-.PP
-Definition at line 45 of file watcher.h.
-.SS "#define WATCHER_SIZE_UNIT_OIDS"
-.PP
-If set then size is in units of object identifiers. This is useful if you have an OID and tracks the OID_LENGTH of it as opposed to it's size.
-.PP
-\fBSince:\fP
-.RS 4
-Net-SNMP 5.5.1 
-.RE
-.PP
-
-.PP
-Definition at line 52 of file watcher.h.
-.SH "Author"
-.PP 
-Generated automatically by Doxygen for net-snmp from the source code.
diff --git a/man/print_description.3 b/man/print_description.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/print_description.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/print_mib.3 b/man/print_mib.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/print_mib.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/print_objid.3 b/man/print_objid.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/print_objid.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/print_value.3 b/man/print_value.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/print_value.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/print_variable.3 b/man/print_variable.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/print_variable.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/read_all_mibs.3 b/man/read_all_mibs.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/read_all_mibs.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/read_mib.3 b/man/read_mib.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/read_mib.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/read_module.3 b/man/read_module.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/read_module.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/read_module_node.3 b/man/read_module_node.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/read_module_node.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/read_objid.3 b/man/read_objid.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/read_objid.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/shutdown_mib.3 b/man/shutdown_mib.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/shutdown_mib.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/snmp-bridge-mib.1 b/man/snmp-bridge-mib.1
new file mode 100644
index 0000000..80f2b5e
--- /dev/null
+++ b/man/snmp-bridge-mib.1
@@ -0,0 +1,208 @@
+'\" t
+.\"     Title: snmp-bridge-mib
+.\"    Author: Jens Osterkamp <jens@linux.vnet.ibm.com>
+.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
+.\"      Date: 03/26/2010
+.\"    Manual: Net-SNMP
+.\"    Source: http://www.ibm.com/ v6
+.\"  Language: English
+.\"
+.TH "SNMP\-BRIDGE\-MIB" 1 "26 Mar 2010" "http://www\&.ibm\&.com/ v6" "Net\-SNMP"
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+snmp-bridge-mib \- provide Linux bridge information via SNMP
+.SH "SYNOPSIS"
+.HP \w'\fBsnmp\-bridge\-mib\fR\ 'u
+\fBsnmp\-bridge\-mib\fR {bridge}
+.SH "ARGUMENTS"
+.PP
+The following arguments are required:
+.PP
+\fBbridge\fR
+.RS 4
+The name of the Linux bridge for which you want to provide information via SNMP, e\&.g\&. br0\&.
+.RE
+.SH "DESCRIPTION"
+.PP
+The snmp\-bridge\-mib is an extension to net\-snmp\&. It collects information about a bridge in a Linux system and exports them for query from other (remote) systems for management purposes\&.
+.SH "CONFIGURATION:"
+.PP
+The preferred method of snmp\-bridge\-mib to attach to net\-snmp is agentx\&. For this to work, you will have to add the following line to /etc/snmp/snmpd\&.conf,
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+    master agentx
+    
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+restart snmpd and start snmp\-bridge\-mib\&. snmp\-bridge\-mib will then connect to the running snmpd daemon\&.
+.PP
+Another way of attaching snmp\-bridge\-mib to is to run it as an embedded perl module\&. You have to add
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+    perl do "path to location of snmp\-bridge\-mib"
+    
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+and restart snmpd\&.
+.SH "EXAMPLE:"
+.PP
+Follow the instructions in this manpage and type
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+    perl /usr/bin/snmp\-bridge\-mib br0
+    
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+You\'ll get the following output:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+     registering at \&.1\&.3\&.6\&.1\&.2\&.1\&.17
+     running as a subagent\&.
+     dot1qbridge agent started\&.
+     NET\-SNMP version 5\&.4\&.2\&.1 AgentX subagent connected
+     
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+Now it\'s time for a first test:
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+    $ export MIBS=+BRIDGE\-MIB
+    $ snmpwalk localhost \&.1\&.3\&.6\&.1\&.2\&.1\&.17
+    
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+The output produced should look like
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+    BRIDGE\-MIB::dot1dStpBridgeHelloTime = INTEGER: 199 centi\-seconds
+    BRIDGE\-MIB::dot1dStpBridgeForwardDelay = INTEGER: 1499 centi\-seconds
+    BRIDGE\-MIB::dot1dStpPort\&.1 = INTEGER: 1
+    BRIDGE\-MIB::dot1dStpPort\&.3 = INTEGER: 3
+    BRIDGE\-MIB::dot1dStpPortPriority\&.1 = INTEGER: 32
+    BRIDGE\-MIB::dot1dStpPortPriority\&.3 = INTEGER: 32
+    BRIDGE\-MIB::dot1dStpPortState\&.1 = INTEGER: disabled(1)
+    BRIDGE\-MIB::dot1dStpPortState\&.3 = INTEGER: disabled(1)
+    BRIDGE\-MIB::dot1dStpPortEnable\&.1 = INTEGER: disabled(2)
+    BRIDGE\-MIB::dot1dStpPortEnable\&.3 = INTEGER: disabled(2)
+    BRIDGE\-MIB::dot1dStpPortPathCost\&.1 = INTEGER: 2
+    BRIDGE\-MIB::dot1dStpPortPathCost\&.3 = INTEGER: 4
+    BRIDGE\-MIB::dot1dStpPortDesignatedRoot\&.1 = STRING: "8000\&.001018382c78"
+    BRIDGE\-MIB::dot1dStpPortDesignatedRoot\&.3 = STRING: "8000\&.001018382c78"
+    BRIDGE\-MIB::dot1dStpPortDesignatedCost\&.1 = INTEGER: 0
+    BRIDGE\-MIB::dot1dStpPortDesignatedCost\&.3 = INTEGER: 0
+    BRIDGE\-MIB::dot1dStpPortDesignatedBridge\&.1 = STRING: "8000\&.001018382c78"
+    BRIDGE\-MIB::dot1dStpPortDesignatedBridge\&.3 = STRING: "8000\&.001018382c78"
+    BRIDGE\-MIB::dot1dStpPortDesignatedPort\&.1 = STRING: "32769"
+    BRIDGE\-MIB::dot1dStpPortDesignatedPort\&.3 = STRING: "32770"
+    BRIDGE\-MIB::dot1dStpPortPathCost32\&.1 = INTEGER: 2
+    BRIDGE\-MIB::dot1dStpPortPathCost32\&.3 = INTEGER: 4
+    BRIDGE\-MIB::dot1dTpLearnedEntryDiscards = Counter32: 0
+    BRIDGE\-MIB::dot1dTpAgingTime = INTEGER: 300 seconds
+    BRIDGE\-MIB::dot1dTpFdbAddress\&.\'\&.\&.\&.8,x\' = STRING: 0:10:18:38:2c:78
+    BRIDGE\-MIB::dot1dTpFdbAddress\&.\'\&.!^/B|\' = STRING: 0:21:5e:2f:42:7c
+    BRIDGE\-MIB::dot1dTpFdbPort\&.\'\&.\&.\&.8,x\' = INTEGER: 1
+    BRIDGE\-MIB::dot1dTpFdbPort\&.\'\&.!^/B|\' = INTEGER: 3
+    BRIDGE\-MIB::dot1dTpFdbStatus\&.\'\&.\&.\&.8,x\' = INTEGER: learned(3)
+    BRIDGE\-MIB::dot1dTpFdbStatus\&.\'\&.!^/B|\' = INTEGER: learned(3)
+    BRIDGE\-MIB::dot1dTpPort\&.1 = INTEGER: 1
+    BRIDGE\-MIB::dot1dTpPort\&.3 = INTEGER: 3
+    BRIDGE\-MIB::dot1dTpPortMaxInfo\&.1 = INTEGER: 1500 bytes
+    BRIDGE\-MIB::dot1dTpPortMaxInfo\&.3 = INTEGER: 1500 bytes
+    BRIDGE\-MIB::dot1dTpPortInFrames\&.1 = Counter32: 18082 frames
+    BRIDGE\-MIB::dot1dTpPortInFrames\&.3 = Counter32: 1546072 frames
+    BRIDGE\-MIB::dot1dTpPortOutFrames\&.1 = Counter32: 11601 frames
+    BRIDGE\-MIB::dot1dTpPortOutFrames\&.3 = Counter32: 10988 frames
+    BRIDGE\-MIB::dot1dTpPortInDiscards\&.1 = Counter32: 0 frames
+    BRIDGE\-MIB::dot1dTpPortInDiscards\&.3 = Counter32: 0 frames
+    
+.fi
+.if n \{\
+.RE
+.\}
+.SH "BUGS"
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 1.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP "  1." 4.2
+.\}
+snmp\-bridge\-mib currently only supports one bridge which has to be specified on the commandline\&.
+.RE
+.sp
+.RS 4
+.ie n \{\
+\h'-04' 2.\h'+01'\c
+.\}
+.el \{\
+.sp -1
+.IP "  2." 4.2
+.\}
+Not all elements of RFC 4188 because they are either not available in sysfs or difficult to extract from the existing data\&.
+.RE
+.PP
+.SH "SEE ALSO"
+.PP
+\fBsnmpd.conf\fR(5),
+\fBNet::SNMP\fR(3)
+.SH "AUTHOR"
+.PP
+\fBJens Osterkamp\fR <\&jens@linux\&.vnet\&.ibm\&.com\&>
+.RS 4
+Developer
+.RE
+.SH "COPYRIGHT"
+.br
+Copyright \(co 2009, 2010 IBM Corp., All Rights Reserved
+.br
+.PP
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+.PP
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software\&.
+.PP
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\&. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE\&.
+.sp
diff --git a/man/snmp.conf.5.def b/man/snmp.conf.5.def
index 13c15a9..2fe5810 100644
--- a/man/snmp.conf.5.def
+++ b/man/snmp.conf.5.def
@@ -1,4 +1,4 @@
-.TH SNMP.CONF 5 "01 Apr 2009" VVERSIONINFO "Net-SNMP"
+.TH SNMP.CONF 5 "21 Apr 2010" VVERSIONINFO "Net-SNMP"
 .SH NAME
 snmp.conf - configuration files for the Net-SNMP applications
 .SH DESCRIPTION
@@ -12,6 +12,32 @@
 containing the settings shared by all users of the system.
 \fC~/.snmp/snmp.conf\fR is a personal file, with the settings
 specific to a particular user.
+.SH HOST-SPECIFIC FILES
+Host-specific files may also be loaded and will be searched for if a
+transport name is specified that matches a \fIPATH/hosts/HOST.conf\fR
+file.  For example, if you wanted a particular host to use SNMPv2c by
+default you could create a ~/.snmp/hosts/NAME.conf file and in it put:
+.RS
+.PP
+defVersion 2c
+.RE
+.PP
+Any connections set to connect to the hostname \fINAME\fR will use
+SNMPv2c.  Also see the \fItransport\fR token below for additional
+host-specific examples.
+.PP
+Host-specific configuration files are loaded at the time the
+connection is opened.  Thus they're generally loaded after all other
+configuration files and can be used to override settings from the
+generic files.
+.PP
+To avoid loading any host-specific config files set
+"dontLoadHostConfig true" in your snmp.conf file.
+.SH COMMAND-LINE OPTIONS
+All of the tokens described in this file can be used on the command
+line of Net-SNMP applications as well by prefixing them with "--".
+EG, specifying \fI--dontLoadHostConfig=true\fR on the command line will
+turn of loading of the host specific configuration files.
 .SH IMPORTANT NOTE
 Several of these directives may contain sensitive information
 (such as pass phrases).  Configuration files that include such
@@ -38,6 +64,22 @@
 See the \fIsnmpcmd(1)\fR manual page for more details.
 .IP
 If not specified, the default value for this token is 161.
+.IP "transport HOSTSPECIFIER"
+This special token should go into a hostname-specific configuration
+file in a \fIhosts\fR sub-directory.  For example if the file
+\fIhosts/foo.conf\fR exists in the search path it will be loaded if a
+transport name of \fIfoo\fR was used.  Within the foo.conf file you may
+put both general snmp.conf settings as well as a special
+\fItransport\fR string to specify the destination to connect to.  For
+example, putting:
+.RS
+.IP
+transport tcp:foo.example.com:9876
+.RE
+.IP
+in the \fIhosts/foo.conf\fR file will make applications referencing
+the \fIfoo\fR hostname (e.g. \fIsnmpget\fR) to actually connect via
+TCP to \fIfoo.exmaple.com\fR on port 9876.
 .IP "defVersion (1|2c|3)"
 defines the default version of SNMP to use.
 This can be overridden using the \fB-v\fR option.
@@ -124,6 +166,10 @@
 the encoding is basically the same in either case - but working
 backwards typically produces a slightly more efficient encoding,
 and hence a smaller network datagram.
+.IP "dontLoadHostConfig (1|yes|true|0|no|false)"
+Specifies whether or not the host-specific configuration files are
+loaded.  Set to "true" to turn off the loading of the host specific
+configuration files.
 .\"
 .\" XXX - It is probably about time to remove this choice!
 .\"
@@ -338,12 +384,21 @@
 values to set. Equivalent to
 .BR -Ih .
 .SH FILES
-SYSCONFDIR/snmp/snmp.conf,
-SYSCONFDIR/snmp/snmp.local.conf - common configuration settings
+.IP "System-wide configuration files:"
+SYSCONFDIR/snmp/snmp.conf
 .br
-~/.snmp/snmp.conf - user-specific configuration settings
+SYSCONFDIR/snmp/snmp.local.conf
+.IP "User-specific configuration settings:"
+$HOME/.snmp/snmp.conf
+.br
+$HOME/.snmp/snmp.local.conf
+.IP "Destination host specific files:
+SYSCONFDIR/snmp/hosts/HOSTNAME.conf
+.br
+$HOME/.snmp/hosts/HOSTNAME.conf
+
 .SH "SEE ALSO"
-snmp_config(5), read_config(3), snmpcmd(1).
+snmp_config(5), netsnmp_config_api(3), snmpcmd(1).
 .\" Local Variables:
 .\"  mode: nroff
 .\" End:
diff --git a/man/snmp_alarm.3.def b/man/snmp_alarm.3.def
index 091f220..6c79a20 100644
--- a/man/snmp_alarm.3.def
+++ b/man/snmp_alarm.3.def
@@ -1,6 +1,8 @@
 .TH SNMP_ALARM 3 "01 Aug 2002" VVERSIONINFO "Net-SNMP"
 .SH NAME
-snmp_alarm_register, snmp_alarm_register_hr, snmp_alarm_unregister - alarm functions
+snmp_alarm_register,
+snmp_alarm_register_hr,
+snmp_alarm_unregister - alarm functions
 .SH SYNOPSIS
 .B #include <net-snmp/utilities.h>
 .PP
@@ -161,7 +163,7 @@
 system call, although overall precision is of course still determined
 by the underlying operating system.  Recommended.
 .SH "SEE ALSO"
-.BR snmp_api "(3), " default_store "(3), " snmp_select_info "(3), "
+.BR netsnmp_session_api "(3), " default_store "(3), "
 .BR alarm "(2), " setitimer "(2), " select "(2)"
 .\" Local Variables:
 .\"  mode: nroff
diff --git a/man/snmp_api_errstring.3 b/man/snmp_api_errstring.3
deleted file mode 100644
index fe0a48b..0000000
--- a/man/snmp_api_errstring.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/session_api.3
diff --git a/man/snmp_close.3 b/man/snmp_close.3
deleted file mode 100644
index fe0a48b..0000000
--- a/man/snmp_close.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/session_api.3
diff --git a/man/snmp_config.5.def b/man/snmp_config.5.def
index 8701d93..fd30873 100644
--- a/man/snmp_config.5.def
+++ b/man/snmp_config.5.def
@@ -1,4 +1,4 @@
-.TH SNMP_CONFIG 5 "5 May 2005" VVERSIONINFO "Net-SNMP"
+.TH SNMP_CONFIG 5 "08 Mar 2010" VVERSIONINFO "Net-SNMP"
 .SH NAME
 snmp_config - handling of Net-SNMP configuration files
 .SH DESCRIPTION
@@ -172,15 +172,44 @@
 .PP
 Any lines beginning with the character '#' in the configuration files
 are treated as a comment and are not parsed.
+.SH "INCLUDING OTHER CONFIGURATION FILES"
+It is possible to include other configuration files for processing
+during normal configuration file processing.:
+.PP
+.RS
+.nf
+# include site specific config
+includeFile site.conf
+.RE
+.PP
+This will load the specified configuration file. The
+path to file must be either absolute, starting with '/',
+or relative. The relative path is then relative to the directory
+where the parent file with 'includeFile' directive resides.
+.PP
+The included file name does not need to have '.conf' suffix.
+.PP
+.RS
+.nf
+# include a all *.conf files in a directory
+includeDir /etc/snmp/config.d
+.RE
+.PP
+This will search specified directory for all files with '.conf'
+suffix and process them as if they were included using includeFile
+directive. The configuration files are not processed in any particular
+order.
+.PP
+The specified directory must be absolute directory path.
 .SH "API INTERFACE"
 .PP
 Information about writing C code that makes use of this system in
 either the agent's MIB modules or in applications can be found in the
-.I read_config(3)
+.I netsnmp_config_api(3)
 manual page.
 .SH "SEE ALSO"
 snmpconf(1),
-read_config(3),
+netsnmp_config_api(3),
 snmp.conf(5),
 snmpd.conf(5)
 .\" Local Variables:
diff --git a/man/snmp_error.3 b/man/snmp_error.3
deleted file mode 100644
index fe0a48b..0000000
--- a/man/snmp_error.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/session_api.3
diff --git a/man/snmp_free_pdu.3 b/man/snmp_free_pdu.3
deleted file mode 100644
index 456d66d..0000000
--- a/man/snmp_free_pdu.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/pdu_api.3
diff --git a/man/snmp_open.3 b/man/snmp_open.3
deleted file mode 100644
index fe0a48b..0000000
--- a/man/snmp_open.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/session_api.3
diff --git a/man/snmp_perror.3 b/man/snmp_perror.3
deleted file mode 100644
index fe0a48b..0000000
--- a/man/snmp_perror.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/session_api.3
diff --git a/man/snmp_read.3 b/man/snmp_read.3
deleted file mode 100644
index fe0a48b..0000000
--- a/man/snmp_read.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/session_api.3
diff --git a/man/snmp_select_info.3 b/man/snmp_select_info.3
deleted file mode 100644
index fe0a48b..0000000
--- a/man/snmp_select_info.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/session_api.3
diff --git a/man/snmp_send.3 b/man/snmp_send.3
deleted file mode 100644
index fe0a48b..0000000
--- a/man/snmp_send.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/session_api.3
diff --git a/man/snmp_sess_async_send.3 b/man/snmp_sess_async_send.3
deleted file mode 100644
index d1e6bc0..0000000
--- a/man/snmp_sess_async_send.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_close.3 b/man/snmp_sess_close.3
deleted file mode 100644
index d1e6bc0..0000000
--- a/man/snmp_sess_close.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_error.3 b/man/snmp_sess_error.3
deleted file mode 100644
index d1e6bc0..0000000
--- a/man/snmp_sess_error.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_init.3 b/man/snmp_sess_init.3
deleted file mode 100644
index d1e6bc0..0000000
--- a/man/snmp_sess_init.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_open.3 b/man/snmp_sess_open.3
deleted file mode 100644
index d1e6bc0..0000000
--- a/man/snmp_sess_open.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_perror.3 b/man/snmp_sess_perror.3
deleted file mode 100644
index fe0a48b..0000000
--- a/man/snmp_sess_perror.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/session_api.3
diff --git a/man/snmp_sess_read.3 b/man/snmp_sess_read.3
deleted file mode 100644
index d1e6bc0..0000000
--- a/man/snmp_sess_read.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_select_info.3 b/man/snmp_sess_select_info.3
deleted file mode 100644
index d1e6bc0..0000000
--- a/man/snmp_sess_select_info.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_send.3 b/man/snmp_sess_send.3
deleted file mode 100644
index d1e6bc0..0000000
--- a/man/snmp_sess_send.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_session.3 b/man/snmp_sess_session.3
deleted file mode 100644
index d1e6bc0..0000000
--- a/man/snmp_sess_session.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/snmp_sess_api.3
diff --git a/man/snmp_sess_timeout.3 b/man/snmp_sess_timeout.3
deleted file mode 100644
index d1e6bc0..0000000
--- a/man/snmp_sess_timeout.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/snmp_sess_api.3
diff --git a/man/snmp_set_mib_warnings.3 b/man/snmp_set_mib_warnings.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/snmp_set_mib_warnings.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/snmp_set_save_descriptions.3 b/man/snmp_set_save_descriptions.3
deleted file mode 100644
index 80f348b..0000000
--- a/man/snmp_set_save_descriptions.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/mib_api.3
diff --git a/man/snmp_timeout.3 b/man/snmp_timeout.3
deleted file mode 100644
index fe0a48b..0000000
--- a/man/snmp_timeout.3
+++ /dev/null
@@ -1 +0,0 @@
-.so man3/session_api.3
diff --git a/man/snmpcmd.1.def b/man/snmpcmd.1.def
index f65b3fd..d97cc14 100644
--- a/man/snmpcmd.1.def
+++ b/man/snmpcmd.1.def
@@ -1,3 +1,4 @@
+.\" -*- nroff -*-
 .\" Portions of this file are subject to the following copyright.  See
 .\" the Net-SNMP COPYING file for more details and other copyrights
 .\" that may apply:
@@ -27,7 +28,7 @@
 .\" Use is subject to license terms specified in the COPYING file
 .\" distributed with the Net-SNMP package.
 .\" ******************************************************************/
-.TH SNMPCMD 1 "20 Mar 2009" VVERSIONINFO "Net-SNMP"
+.TH SNMPCMD 1 "20 Jul 2010" VVERSIONINFO "Net-SNMP"
 .SH NAME
 snmpcmd - options and behaviour common to most of the Net-SNMP command-line tools
 .SH SYNOPSIS
@@ -44,44 +45,24 @@
 applications typically (but not necessarily) take additional
 parameters that are given after the agent specification.  These
 parameters are documented in the manual pages for each application.
-
-.SH OPTIONS
-.TP
-.BI "-3[MmKk]  0xHEXKEY"
-Sets the keys to be used for SNMPv3 transactions.  These options allow
-you to set the master authentication and encryption keys (-3m and -3M
-respectively) or set the localized authentication and encryption keys
-(-3k and -3K respectively).  SNMPv3 keys can be either passed in by
-hand using these flags, or by the use of keys generated from passwords
-using the -A and -X flags discussed below.  For further details on
-SNMPv3 and its usage of keying information, see the Net-SNMP tutorial
-web site ( http://www.Net-SNMP.org/tutorial-5/commands/ ). 
-Overrides the defAuthMasterKey (-3m), defPrivMasterKey (-3M), 
-defAuthLocalizedKey (-3k) or defPrivLocalizedKey (-3K) tokens, respectively, 
-in the
-.I snmp.conf
-file, see
-.I snmp.conf(5).
-.TP
-.BI -a " authProtocol"
-Set the authentication protocol (MD5 or SHA) used for authenticated SNMPv3
-messages. Overrides the \fIdefAuthType\fR token in the
-.I snmp.conf
-file.
-.TP
-.BI -A " authPassword"
-Set the authentication pass phrase used for authenticated SNMPv3
-messages.  Overrides the \fIdefAuthPassphrase\fR token in the
-.I snmp.conf
-file. It is insecure to specify pass phrases on the command line,
-see
-.I snmp.conf(5).
-.TP
-.BI -c " community"
-Set the community string for SNMPv1/v2c transactions.
-Overrides the \fIdefCommunity\fR token in the
-.I snmp.conf
-file.
+.SH COMMAND-LINE CONFIG OPTIONS
+In addition to the options described in this manual page, all of the
+tokens described in the \fIsnmp.conf\fR and other .conf manual pages
+can be used on the command line of Net-SNMP applications as well by
+prefixing them with "--".  EG, specifying
+\fI--dontLoadHostConfig=true\fR on the command line will turn of
+loading of the host specific configuration files.
+.PP
+The snmp.conf file settings and the double-dash arguments over-ride
+the single-dash arguments.  So it's important to note that if
+single-dash arguments aren't working because you have settings in the
+\fIsnmp.conf\fR file that conflict with them then you'll need to use
+the longer-form double-dash arguments to successfully trump the
+\fIsnmp.conf\fR file settings.
+.SH Generic Options
+Thes options control how the Net-SNMP commands behave regardless of
+what version of SNMP you are using.  See further below for options
+that control specific versions or sub-modules of the SNMP protocol. 
 .TP
 .B -d
 Dump (in hexadecimal) the raw SNMP packets sent and received.
@@ -93,14 +74,6 @@
 .IR ALL
 for extremely verbose output.
 .TP
-.BI -e " engineID"
-Set the authoritative (security) engineID used for SNMPv3 REQUEST
-messages.  It is typically not necessary to specify this, as it will
-usually be discovered automatically.
-.TP
-.BI -E " engineID"
-Set the context engineID used for SNMPv3 REQUEST messages scopedPdu.
-If not specified, this will default to the authoritative engineID.
 .TP
 .B -h, --help
 Display a brief usage message and then exit.
@@ -114,14 +87,6 @@
 .B INPUT OPTIONS 
 below.
 .TP
-.BI -l " secLevel"
-Set the securityLevel used for SNMPv3 messages
-(noAuthNoPriv|authNoPriv|authPriv).  Appropriate pass phrase(s) must
-provided when using any level higher than noAuthNoPriv.
-Overrides the \fIdefSecurityLevel\fR token in the
-.I snmp.conf
-file.
-.TP
 .BI -L " [eEfFoOsS]"
 Specifies output logging options. See 
 .B LOGGING OPTIONS 
@@ -179,13 +144,12 @@
 The \fImibfile\fR directive takes a full path to the specified MIB
 file, so this does not need to be in the MIB directory search list.
 .TP
-.BI -n " contextName"
-Set the contextName used for SNMPv3 messages.  The default
-contextName is the empty string "".  Overrides the \fIdefContext\fR token
-in the
+.B -v \fI1\fR | \fI2c\fR | \fI3
+Specifies the protocol version to use: 1 (RFCs 1155-1157), 2c (RFCs 1901-1908),
+or 3 (RFCs 2571-2574).  The default is typically version 3.
+Overrides the \fIdefVersion\fR token in the
 .I snmp.conf
-file. 
-.TP
+file.
 .BI -O " [abeEfnqQsStTuUvxX]"
 Specifies output printing options. See 
 .B OUTPUT OPTIONS
@@ -204,22 +168,147 @@
 Specifies the timeout in seconds between retries. The default is 1.
 Floating point numbers can be used to specify fractions of seconds.
 .TP
+.B -V, --version
+Display version information for the application and then exit.
+.TP
+.BI -Y "name"="value"
+.TP
+.BI -- "name"="value"
+Allows to specify any token ("name") supported in the
+.I snmp.conf
+file and sets its value to "value". Overrides the corresponding token in the
+.I snmp.conf
+file. See
+.I snmp.conf(5)
+for the full list of tokens.
+
+
+.SH SNMPv3 Options
+The following options are generic to all forms of SNMPv3, regardless
+of whether it's the original SNMPv3 with USM or the newer SNMPv3 over
+(D)TLS support.
+
+.TP
+.BI -l " secLevel"
+Set the securityLevel used for SNMPv3 messages
+(noAuthNoPriv|authNoPriv|authPriv).  Appropriate pass phrase(s) must
+provided when using any level higher than noAuthNoPriv.
+Overrides the \fIdefSecurityLevel\fR token in the
+.I snmp.conf
+file.
+.TP
+.BI -n " contextName"
+Set the contextName used for SNMPv3 messages.  The default
+contextName is the empty string "".  Overrides the \fIdefContext\fR token
+in the
+.I snmp.conf
+file. 
+
+.SH SNMPv3 over TLS Options
+These options pass transport-specific parameters to the TLS layer.  If
+you're using SNMP over TLS or DTLS you'll need to pass a combination
+of these either through these command line options or through
+snmp.conf configuration tokens.
+.PP
+A note about
+.I "<certificate-specifier>s":
+Net-SNMP looks for X.509 certificates in each of the normal SNMP
+configuration directory search paths under a "tls" subdirectory.  IE,
+it will look in ~/.snmp/tls and in /usr/local/share/snmp/tls for
+certificates.  The certificate components (eg, the public and private
+halves) are stored in sub-directories underneath this root set of
+directories.  See the net-snmp-cert tool for help in importing,
+creating and managing Net-SNMP certificates.
+.I "<certificate-specifier>s"
+can reference either a fingerprint of the certificate to use (the
+net-snmp-cert tool can help you figure out the certificates) or the
+filename's prefix can be used.  For example, if you had a "snmpd.crt"
+certificate file then you could simply refer to the certificate via
+the "snmpd" specifier.
+.TP
+.BI "-T our_identity=<certificate-specifier>"
+Indicates to the transport which key should be used to initiate (D)TLS
+client connections.  This would typically be a certificate found using
+the application name (eg snmpd, snmptrapd, perl, python) or
+genericized name "snmpapp" if using one of the generic applications
+(snmpget, snmpwalk, etc).  This can also be set using the
+clientCert specifier in a snmp.conf configuration file.
+.TP
+.BI "-T their_identity=<certificate-specifier>"
+If you expect a particular certificate to be presented by the other
+side then you can use this specifier to indicate the certificate it
+should present.  If it fails to present the expected certificate the
+client will refuse to open the connection (because doing otherwise
+could lead to man-in-the-middle attacks).  This can also be set using
+the serverCert specifier in a snmp.conf configuration file.
+.TP
+.BI "-T trust_cert=<certificate-specifier>"
+If you have a trusted CA certificate you wish to anchor trust with,
+you can use this flag to load a given certificate as a trust anchor.
+A copy of the certificate must exist within the Net-SNMP certificate
+storage system or this must point to a complete path name.  Also see
+the "trustCert" snmp.conf configuration token.
+.TP
+.BI "-T their_hostname=<name>"
+If the server's presented certificate can be validating using a trust
+anchor then their hostname will be checked to ensure their presented
+hostname matches one that is expected (you don't want to connect to
+goodhost.example.com and accept a certificate presented by
+badhost.example.com do you?).  This token can specify the exact host
+name expected to be presented by the remote side, either in a
+subjectAltName field or in the CommonName field of the server's X.509
+certificate.
+.SH SNMPv3 with USM Options
+These options are specific to using SNMPv3 with the original
+User-based Security Model (USM).
+.TP
+.BI "-3[MmKk]  0xHEXKEY"
+Sets the keys to be used for SNMPv3 transactions.  These options allow
+you to set the master authentication and encryption keys (-3m and -3M
+respectively) or set the localized authentication and encryption keys
+(-3k and -3K respectively).  SNMPv3 keys can be either passed in by
+hand using these flags, or by the use of keys generated from passwords
+using the -A and -X flags discussed below.  For further details on
+SNMPv3 and its usage of keying information, see the Net-SNMP tutorial
+web site ( http://www.Net-SNMP.org/tutorial-5/commands/ ). 
+Overrides the defAuthMasterKey (-3m), defPrivMasterKey (-3M), 
+defAuthLocalizedKey (-3k) or defPrivLocalizedKey (-3K) tokens, respectively, 
+in the
+.I snmp.conf
+file, see
+.I snmp.conf(5).
+.TP
+.BI -a " authProtocol"
+Set the authentication protocol (MD5 or SHA) used for authenticated SNMPv3
+messages. Overrides the \fIdefAuthType\fR token in the
+.I snmp.conf
+file.
+.TP
+.BI -A " authPassword"
+Set the authentication pass phrase used for authenticated SNMPv3
+messages.  Overrides the \fIdefAuthPassphrase\fR token in the
+.I snmp.conf
+file. It is insecure to specify pass phrases on the command line,
+see
+.I snmp.conf(5).
+.TP
+.BI -e " engineID"
+Set the authoritative (security) engineID used for SNMPv3 REQUEST
+messages, given as a hexadecimal string (optionally prefixed by "0x").
+It is typically not necessary to specify this engine ID, as it will
+usually be discovered automatically.
+.TP
+.BI -E " engineID"
+Set the context engineID used for SNMPv3 REQUEST messages scopedPdu,
+given as a hexadecimal string.
+If not specified, this will default to the authoritative engineID.
+.TP
 .BI -u " secName"
 Set the securityName used for authenticated SNMPv3 messages.
 Overrides the \fIdefSecurityName\fR token in the
 .I snmp.conf
 file.
 .TP
-.B -v \fI1\fR | \fI2c\fR | \fI3
-Specifies the protocol version to use: 1 (RFCs 1155-1157), 2c (RFCs 1901-1908),
-or 3 (RFCs 2571-2574).  The default is typically version 3.
-Overrides the \fIdefVersion\fR token in the
-.I snmp.conf
-file.
-.TP
-.B -V, --version
-Display version information for the application and then exit.
-.TP
 .BI -x " privProtocol"
 Set the privacy protocol (DES or AES) used for encrypted SNMPv3 messages. 
 Overrides the \fIdefPrivType\fR token in the
@@ -241,17 +330,15 @@
 boots/time with an authenticated value stored in the LCD.
 It is typically not necessary to specify this option, as these values
 will usually be discovered automatically.
+
+
+.SH SNMPv1 and SNMPv2c Options 
 .TP
-.BI -Y "name"="value"
-.TP
-.BI -- "name"="value"
-Allows to specify any token ("name") supported in the
+.BI -c " community"
+Set the community string for SNMPv1/v2c transactions.
+Overrides the \fIdefCommunity\fR token in the
 .I snmp.conf
-file and sets its value to "value". Overrides the corresponding token in the
-.I snmp.conf
-file. See
-.I snmp.conf(5)
-for the full list of tokens.
+file.
 
 .SH AGENT SPECIFICATION
 .PP
@@ -326,6 +413,35 @@
 on port
 .I 1161
 using TCP/IPv4 and perform query over that connection.
+.IR "udp6:hostname:10161"
+perform the query using UDP/IPv6 datagrams to port
+.I 10161
+on
+.I hostname
+(which will be looked up as an AAAA record).
+.TP 24
+.IR "UDP6:[fe80::2d0:b7ff:fe21:c6c0]"
+perform the query using UDP/IPv6 datagrams to port 161 at address
+.IR fe80::2d0:b7ff:fe21:c6c0 .
+.TP 24
+.IR "tcpipv6:[::1]:1611"
+connect to port 1611 on the local host
+.IR "" ( ::1 
+in IPv6 parlance) using TCP/IPv6 and perform query over that connection.
+.TP 24
+.IR "tls:hostname:10161"
+.TP 24
+.IR "dtls:hostname:10161"
+Connects using SNMP over DTLS or TLS as documented by the ISMS working
+group (RFCs not yet published as of this date).  This will require
+(and automatically ensures) that the TSM security model is in use.
+You'll also need to set up trust paths for the certificates presented
+by the server (see above for descriptions of this).
+.TP 24
+.IR "ssh:hostname:22"
+Connects using SNMP over SSH as documented by the ISMS working group
+(RFCs not yet published as of this date).  This will require that the
+TSM security model is in use (--defSecurityModel=tsm).
 .TP 24
 .IR "ipx::00D0B7AAE308"
 perform query using IPX datagrams to node number 
@@ -370,37 +486,6 @@
 perform the query using AAL5 PDUs sent on the permanent virtual
 circuit with VPI=10 (decimal) and VCI=32 (decimal) on the second ATM
 adapter in the machine.  Note that "PVC" is a synonym for "AAL5PVC".
-.TP 24
-.IR "udp6:hostname:10161"
-perform the query using UDP/IPv6 datagrams to port
-.I 10161
-on
-.I hostname
-(which will be looked up as an AAAA record).
-.TP 24
-.IR "UDP6:[fe80::2d0:b7ff:fe21:c6c0]"
-perform the query using UDP/IPv6 datagrams to port 161 at address
-.IR fe80::2d0:b7ff:fe21:c6c0 .
-.TP 24
-.IR "tcpipv6:[::1]:1611"
-connect to port 1611 on the local host
-.IR "" ( ::1 
-in IPv6 parlance) using TCP/IPv6 and perform query over that connection.
-.TP 24
-.IR "dtlsudp:hostname:9161"
-Connects using SNMP over DTLS/UDP as documented by the ISMS working group
-(RFCs not yet published as of this date).  This will require that the
-TSM security model is in use (--defSecurityModel=tsm) and that the
-.IR defX509ServerCerts,
-.IR defX509ClientPriv,
-and
-.IR defX509ClientPub
-configuration tokens have been set.
-.TP 24
-.IR "ssh:hostname:22"
-Connects using SNMP over SSH as documented by the ISMS working group
-(RFCs not yet published as of this date).  This will require that the
-TSM security model is in use (--defSecurityModel=tsm).
 .PP
 Note that not all the transport domains listed above will always be
 available; for instance, hosts with no IPv6 support will not be able
diff --git a/man/snmpd.8.def b/man/snmpd.8.def
index b884700..2c92fa2 100644
--- a/man/snmpd.8.def
+++ b/man/snmpd.8.def
@@ -1,4 +1,4 @@
-.TH SNMPD 8 "01 Apr 2009" VVERSIONINFO "Net-SNMP"
+.TH SNMPD 8 "30 Jun 2010" VVERSIONINFO "Net-SNMP"
 .SH NAME
 snmpd - daemon to respond to SNMP request packets.
 .SH SYNOPSIS
@@ -239,10 +239,7 @@
 .IR "dtlsudp:127.0.0.1:9161"
 Listen for connections over DTLS on UDP port 9161.  The snmp.conf file
 must have the
-.IR defX509ServerPub,
-.IR defX509ServerPriv,
-and
-.IR defX509ClientCerts
+.IR serverCert,
 configuration tokens defined.
 .PP
 Note that not all the transport domains listed above will always be
@@ -307,16 +304,10 @@
 sides.  In order to do this, the client will need to configure the
 snmp.conf file
 with the
-.IR defX509ServerCerts,
-.IR defX509ClientPriv,
-and
-.IR defX509ClientPub
+.IR clientCert
 configuration tokens.  The server will need to configure the snmp.conf
 file with the
-.IR defX509ServerPub,
-.IR defX509ServerPriv,
-and
-.IR defX509ClientCerts
+.IR serverCert
 configuration tokens defined.
 .IP
 Access control setup is similar to the ssh transport as the TSM
diff --git a/man/snmpd.conf.5.def b/man/snmpd.conf.5.def
index c7e4b6a..49d81b6 100644
--- a/man/snmpd.conf.5.def
+++ b/man/snmpd.conf.5.def
@@ -1,4 +1,4 @@
-.TH SNMPD.CONF 5 "01 Jun 2009" VVERSIONINFO "Net-SNMP"
+.TH SNMPD.CONF 5 "30 Jun 2010" VVERSIONINFO "Net-SNMP"
 .SH NAME
 snmpd.conf - configuration file for the Net-SNMP SNMP agent
 .SH DESCRIPTION
@@ -92,13 +92,42 @@
 the calculated number of repeats allow to fit below this number.
 .IP
 Also not that processing of maxGetbulkRepeats is handled first.
-.SS SNMPv3 Configuration
-SNMPv3 requires an SNMP agent to define a unique "engine ID"
-in order to respond to SNMPv3 requests.
-This ID will normally be determined automatically, using two reasonably
-non-predictable values - a (pseudo-)random number and the current
-time in seconds. This is the recommended approach. However the
-capacity exists to define the engineID in other ways:
+.SS SNMPv3 Configuration - Real Security
+SNMPv3 is added flexible security models to the SNMP packet structure
+so that multiple security solutions could be used.  SNMPv3 was
+original defined with a "User-based Security Model" (USM) [RFC3414]
+that required maintaining a SNMP-specific user database.  This was
+later determined to be troublesome to maintain and had some minor
+security issues.  The IETF has since added additional security models
+to tunnel SNMP over SSH [RFC5592] and DTLS/TLS [RFC-to-be].  Net-SNMP
+contains robust support for SNMPv3/USM, SNMPv3/TLS, and SNMPv3/DTLS.
+It contains partial support for SNMPv3/SSH as well but has not been as
+extensively tested.  It also contains code for support for an
+experimental Kerberos based SNMPv3 that never got standardized.
+.PP
+Hopeful more SNMP software and devices will eventually support SNMP
+over (D)TLS or SSH, but it is likely that devices with original
+support for SNMP will only contain support for SNMP over USM.  If your
+network manager supports SNMP over (D)TLS or SNMP over SSH we suggest
+you use one of these mechanisms instead of using USM, but as always
+with Net-SNMP we give you the options to pick from so you can make the
+choice that is best for you.
+.SS SNMPv3 generic parameters
+These parameters are generic to all the forms of SNMPv3.  The SNMPv3
+protocol defines "engineIDs" that uniquely identify an agent.  The
+string must be consistent through time and should not change or
+conflict with another agent's engineID.  Ever.  Internally, Net-SNMP
+by default creates a unique engineID that is based off of the current system
+time and a random number.  This should be sufficient for most users
+unless you're embedding our agent in a device where these numbers
+won't vary between boxes on the devices initial boot.
+.IP
+EngineIDs are used both as a "context" for selecting information from
+the device and SNMPv3 with USM uses it to create unique entries for
+users in its user table.
+.IP
+The Net-SNMP agent offers the following mechanisms for setting the
+engineID, but again you should only use them if you know what you're doing:
 .IP "engineID STRING"
 specifies that the engineID should be built from the given text STRING.
 .IP "engineIDType 1|2|3"
@@ -114,7 +143,117 @@
 .\"
 .\" What if this doesn't exist ?
 .\"
-.SH SNMPv3 AUTHENTICATION
+.SS SNMPv3 over TLS
+SNMPv3 may be tunneled over TLS and DTLS.  TLS runs over TCP and DTLS
+is the UDP equivalent.  Wes Hardaker (the founder of Net-SNMP)
+performed a study and presented it at an IETF meeting that showed that
+TCP based protocols are sufficient for stable networks but quickly
+becomes a problem in unstable networks with even moderate levels of
+packet loss (~ 20-30%).  If you are going to use TLS or DTLS, you
+should use the one appropriate for your networking environment.  You
+should potentially turn them both on so your management system can
+access either the UDP or the TCP port as needed.
+.PP
+Many of the configuration tokens described below are prefixed with
+a '[snmp]' tag.  If you place these tokens in your snmpd.conf file,
+this take is required.  See the snmp_config(5) manual page for the
+meaning of this context switch.
+.IP "[snmp] serverCert <specifier>"
+This token defines the default X.509 public key to use as the server's
+identity.  It should either be a fingerprint or a filename.  To create
+a public key for use, please run the "net-snmp-cert" utility which
+will help you create the required certificate.
+.IP
+The default value for this is the certificate in the "snmpd" named
+certificate file.
+.IP "[snmp] clientCert <specifier>"
+If outgoing TLS connections are to be opened, for example because
+notifications are to be sent over TLS, then this will select the
+client-side public key to use for those outgoing connections.  It can
+either be specified as a fingerprint or a filename.  See the
+"net-snmp-cert" utility for creating certificates.
+.IP "[snmp] tlsAlgorithms <algorithms>"
+This string will select the algorithms to use when negotiating
+security during (D)TLS session establishment.  See the openssl manual
+page ciphers(1) for details on the format.  Examples strings include:
+.RS
+.nf
+
+DEFAULT
+ALL
+HIGH
+HIGH:!AES128-SHA
+.fi
+.RE
+.IP
+The default value is whatever openssl itself was configured with.
+.IP "[snmp] x059CRLFile"
+If you are using a Certificate Authority (CA) that publishes a
+Certificate Revocation List (CRL) then this token can be used to
+specify the location in the filesystem of a copy of the CRL file.
+Note that Net-SNMP will not pull a CRL over http and this must be a
+file, not a URL.  Additionally, OpenSSL does not reload a CRL file
+when it has changed so modifications or updates to the file will only
+be noticed upon a restart of the snmpd agent.
+
+.IP "certSecName PRIORITY FINGERPRINT OPTIONS"
+OPTIONS can be one of <--sn SECNAME | --rfc822 | --dns | --ip | --cn | --any>.
+.IP
+The certSecName token will specify how to map a certificate field from
+the client's X.509 certificate to a SNMPv3 username.  Use the --sn
+SECNAME flag to directly specify a securityName for a given
+certificate.  The other flags extract a particular component of the
+certificate for use as a snmpv3 securityName.  These fields are one
+of: A SubjectAltName containing an rfc822 value (eg hardaker@net-snmp.org),
+A SubjectAltName containing a dns name value (eg foo.net-snmp.org),
+an IP address (eg 192.0.2.1) or a common name "Wes Hardaker".  The
+--any flag specifies that any of the subjecAltName fields may be
+used.  Make sure once a securityName has been selected that it is
+given authorization via the VACM controls discussed later in this
+manual page.
+.IP
+See the http://www.net-snmp.org/wiki/index.php/Using_DTLS web page for
+more detailed instructions for setting up (D)TLS.
+.IP "trustCert <specifier>"
+For X509 to properly verify a certificate, it should be verifiable up
+until a trust anchor for it.  This trust anchor is typically a CA
+certificate but it could also be a self-signed certificate.  The
+"trustCert" token should be used to load specific trust anchors into the
+verification engine.
+.PP
+SNMP over (D)TLS requires the use of the Transport Security Model
+(TSM), so read the section on the usage of the Transport Security
+Model as well.  Make sure when you configure the VACM to accept
+connections from (D)TLS that you use the "tsm" security model.  E.G.:
+.fi
+
+rwuser -s tsm hardaker@net-snmp.org
+.fi
+.SS SNMPv3 over SSH Support
+To use SSH, you'll need to configure sshd to invoke the sshtosnmp
+program as well as configure the access control settings to allow
+access through the tsm security model using the user name provided to
+snmpd by the ssh transport.
+.SS SNMPv3 with the Transport Security Model (TSM)
+The Transport Security Model [RFC5591] defines a SNMPv3 security
+system for use with "tunneled" security protocols like TLS, DTLS and
+SSH.  It is a very simple security model that simply lets properly
+protected packets to pass through into the snmp application.  The
+transport is required to pass a securityName to use to the TSM and the
+TSM may optionally prefix this with a transport string (see below).
+.IP "tsmUseTransportPrefix (1|yes|true|0|no|false)"
+If set to true, the TSM module will take every securityName passed to
+it from the transports underneath and prefix it with a string that
+specifically identities the transport it came from.  This is useful to
+avoid securityName clashes with transports that generate identical
+security names.  For example, if the ssh security transport delivered
+the security name of "hardaker" for a SSH connection and the TLS
+security transport also delivered the security name of "hardaker" for
+a TLS connection then it would be impossible to separate out these two
+users to provide separate access control rights.  With the
+tsmUseTransportPrefix set to true, however, the securityNames would be
+prefixed appropriately with one of: "tls:", "dtls:" or "ssh:".
+.SS SNMPv3 with the User-based Security Model (USM)
 SNMPv3 was originally defined using the User-Based Security Model
 (USM), which contains a private list of users and keys specific to the
 SNMPv3 protocol.  The operational community, however, declared it a
@@ -185,32 +324,6 @@
 supported algorithms).  Master encryption keys, though, need to be the
 length required by the authentication algorithm not the length
 required by the encrypting algorithm (MD5: 16 bytes, SHA: 20 bytes).
-.SS SSH Support
-To use SSH, you'll need to configure sshd to invoke sshtosnmp as well
-as configure the access control settings to allow access through the
-tsm security model using the user name provided to snmpd by the ssh
-transport.
-.SS DTLS Support
-For DTLS,
-.B snmpd
-will need to be configured with it's own X.509 certificate as well as
-the certificates of the client users to be allowed to connect to the
-agent.  The access control will need to be set up as well to allow
-access through the
-.I tsm
-security model.  The CommonName of the Subject from the X.509
-certificate will be passed to snmpd as the SNMPv3 username to use.
-See the http://www.net-snmp.org/wiki/index.php/Using_DTLS web page for
-more detailed instructions for setting up DTLS.
-.IP "defX509ServerPub FILE"
-.IP "defX509ServerPriv FILE"
-These two directives specify the public and private key files for the
-certificate that
-.B snmpd
-should present to incoming connections.
-.IP "defX509ClientCerts FILE"
-This directive specifies a file containing all of the public keys (or
-CAs of public keys) for clients to connect the server with.
 .SH ACCESS CONTROL
 .B snmpd
 supports the View-Based Access Control Model (VACM) as defined in RFC
@@ -238,7 +351,7 @@
 for that user (note that identical user names may come in over
 different security models and will be appropriately separated via the
 access control settings).  The default security model is "usm" and the
-other common security models are likely "tsm" when using SSH or DTLS
+other common security models are likely "tsm" when using (D)TLS or SSH
 support and "ksm" if the Kerberos support has been compiled in.
 .IP "rocommunity COMMUNITY [SOURCE [OID | -V VIEW [CONTEXT]]]"
 .IP "rwcommunity COMMUNITY [SOURCE [OID | -V VIEW [CONTEXT]]]"
@@ -499,9 +612,12 @@
 the problem - see the DisMan Event MIB section later.
 .RE
 .IP
-If neither MAX nor MIN are specified (or are both 0), they will
+If neither MAX nor MIN are specified, they will
 default to \fBinfinity\fR and 1 respectively ("at least one").
 If only MAX is specified, MIN will default to 0 ("no more than MAX").
+If MAX is 0 (and MIN is not), this indicates infinity ("at least MIN").
+If both MAX and MIN are 0, this indicates a process that should \fBnot\fP
+be running.
 .IP "procfix NAME PROG ARGS"
 registers a command that can be run to fix errors with the given
 process NAME.  This will be invoked when the corresponding
@@ -563,6 +679,28 @@
 .PP
 If neither any \fIdisk\fR directives or \fIincludeAllDisks\fR are defined,
 then walking the \fCdskTable\fR will fail (\fInoSuchObject\fI).
+.SS Disk I/O Monitoring
+This requires that the agent was built with support for the
+\fIucd-snmp/diskio\fR module (which is not included as part of the
+default build configuration).
+.PP
+By default, all block devices known to the operating system are
+included in the diskIOTable. On platforms other than Linux, this module
+has no configuration directives.
+.PP
+On Linux systems, it is possible to exclude several classes of block
+devices from the diskIOTable in order to avoid cluttering the table with
+useless zero statistics for pseudo-devices that often are not in use but
+are configured by default to exist in most recent Linux distributions.
+.IP "diskio_exclude_fd yes"
+Excludes all Linux floppy disk block devices, whose names start with "fd",
+e.g. "fd0"
+.IP "diskio_exclude_loop yes"
+Excludes all Linux loopback block devices, whose names start with "loop",
+e.g. "loop0"
+.IP "diskio_exclude_ram yes"
+Excludes all LInux ramdisk block devices, whose names start with "ram", e.g.
+"ram0"
 .SS System Load Monitoring
 This requires that the agent was built with support for either the
 \fIucd-snmp/loadave\fR module or the \fIucd-snmp/memory\fR module
@@ -1542,7 +1680,7 @@
 .SH "FILES"
 SYSCONFDIR/snmp/snmpd.conf
 .SH "SEE ALSO"
-snmpconf(1), snmpusm(1), snmp.conf(5), snmp_config(5), snmpd(8), EXAMPLE.conf, read_config(3).
+snmpconf(1), snmpusm(1), snmp.conf(5), snmp_config(5), snmpd(8), EXAMPLE.conf, netsnmp_config_api(3).
 .\" Local Variables:
 .\"  mode: nroff
 .\" End:
diff --git a/man/snmpd.examples.5.def b/man/snmpd.examples.5.def
index 6890b20..97f9d9c 100644
--- a/man/snmpd.examples.5.def
+++ b/man/snmpd.examples.5.def
@@ -649,7 +649,7 @@
 .SH "FILES"
 SYSCONFDIR/snmp/snmpd.conf
 .SH "SEE ALSO"
-snmpconf(1), snmpd.conf(5), snmp.conf(5), snmp_config(5), snmpd(8), EXAMPLE.conf, read_config(3).
+snmpconf(1), snmpd.conf(5), snmp.conf(5), snmp_config(5), snmpd(8), EXAMPLE.conf, netsnmp_config_api(3).
 .\" Local Variables:
 .\"  mode: nroff
 .\" End:
diff --git a/man/snmpd.internal.5.def b/man/snmpd.internal.5.def
index d1da8b3..81147c7 100644
--- a/man/snmpd.internal.5.def
+++ b/man/snmpd.internal.5.def
@@ -1,4 +1,4 @@
-.TH SNMPD.INTERNAL 5 "05 Dec 2005" VVERSIONINFO "Net-SNMP"
+.TH SNMPD.INTERNAL 5 "06 Dec 2005" VVERSIONINFO "Net-SNMP"
 .SH NAME
 snmpd.internal - internal configuration of the Net-SNMP agent
 .SH DESCRIPTION
@@ -86,7 +86,7 @@
 .SH "FILES"
 SYSCONFDIR/snmp/snmpd.conf
 .SH "SEE ALSO"
-snmpconf(1), snmpd.conf(5), snmp.conf(5), snmp_config(5), snmpd(8), EXAMPLE.conf, read_config(3).
+snmpconf(1), snmpd.conf(5), snmp.conf(5), snmp_config(5), snmpd(8), EXAMPLE.conf, netsnmp_config_api(3).
 .\" Local Variables:
 .\"  mode: nroff
 .\" End:
diff --git a/man/snmpdelta.1.def b/man/snmpdelta.1.def
index 6fb0326..330151c 100644
--- a/man/snmpdelta.1.def
+++ b/man/snmpdelta.1.def
@@ -155,6 +155,6 @@
 .nf
 $ snmpdelta -c public -v 1 -Ct -Cs -CS -Cm -Cl -Cp 60 -CP 60
   interlink.sw.net.cmu.edu .1.3.6.1.2.1.2.2.1.16.3 .1.3.6.1.2.1.2.2.1.16.4
-fi
+.fi
 .SH "SEE ALSO"
 snmpcmd(1), variables(5).
diff --git a/man/snmpget.1.def b/man/snmpget.1.def
index eabe902..6bc1b5a 100644
--- a/man/snmpget.1.def
+++ b/man/snmpget.1.def
@@ -55,10 +55,10 @@
 takes the common options described in the
 .I snmpcmd(1)
 manual page.  
-Note that
+Note that 
 .B snmpget
-REQUIRES  an argument specifying the agent to query
-and at least one OID argument, as described there.
+REQUIRES an argument specifying the agent to query
+and at least one OID argument, as described there. 
 .SH "EXAMPLES"
 The command:
 .PP
diff --git a/man/snmpgetnext.1.def b/man/snmpgetnext.1.def
index 3b13d4d..77c7835 100644
--- a/man/snmpgetnext.1.def
+++ b/man/snmpgetnext.1.def
@@ -50,7 +50,7 @@
 If the network entity has an error processing the request packet, an
 error message will be shown, helping to pinpoint in what way the
 request was malformed.
-.SH OPTIONS
+.SH "OPTIONS"
 .TP 8
 .B -Cf
 If
@@ -69,7 +69,7 @@
 takes the common options described in the
 .I snmpcmd(1)
 manual page.
-Note that
+Note that 
 .B snmpgetnext
 REQUIRES an argument specifying the agent to query
 and at least one OID argument, as described there.
diff --git a/man/snmpset.1.def b/man/snmpset.1.def
index 346ae3a..5c7df46 100644
--- a/man/snmpset.1.def
+++ b/man/snmpset.1.def
@@ -1,5 +1,5 @@
 .\" -*- nroff -*-
-.\" Portions of this file are subject to the following copyright. 
+.\" Portions of this file are subject to the following copyright.
 .\" See the Net-SNMP COPYING file for more details and other
 .\" copyrights that may apply:
 .\" /***********************************************************
diff --git a/man/snmptrapd.conf.5.def b/man/snmptrapd.conf.5.def
index dcc017d..e2394cb 100644
--- a/man/snmptrapd.conf.5.def
+++ b/man/snmptrapd.conf.5.def
@@ -262,5 +262,5 @@
 .SH FILES
 SYSCONFDIR/snmp/snmptrapd.conf
 .SH "SEE ALSO"
-snmp_config(5), snmptrapd(8), syslog(8), variables(5), snmpd.conf(5), read_config(3).
+snmp_config(5), snmptrapd(8), syslog(8), variables(5), snmpd.conf(5), netsnmp_config_api(3).
 
diff --git a/man/snmpusm.1.def b/man/snmpusm.1.def
index 635273f..2177592 100644
--- a/man/snmpusm.1.def
+++ b/man/snmpusm.1.def
@@ -1,9 +1,9 @@
-.TH SNMPUSM 1 "20 Jan 2006" VVERSIONINFO "Net-SNMP"
+.TH SNMPUSM 1 "11 Dec 2009" VVERSIONINFO "Net-SNMP"
 .SH NAME
 snmpusm - creates and maintains SNMPv3 users on a network entity
 .SH SYNOPSIS
 .B snmpusm
-[COMMON OPTIONS] AGENT
+[COMMON OPTIONS] [-Cw] AGENT
 .B create
 USER [CLONEFROM-USER]
 .br
@@ -82,7 +82,10 @@
 with no authentication or privacy settings.
 In principle, this user should be useable for 'noAuthNoPriv' requests,
 but in practise the Net-SNMP agent will not allow such an entry
-to be made active.
+to be made active.  The user can be created via the createAndWait
+operation instead by using the -Ca flag.  This will prevent the user
+from being marked as active in any agent until explicitly activated
+later via the activate command.
 
 .PP
 In order to activate this entry, it is necessary to "clone" an existing
diff --git a/mibs/BRIDGE-MIB.txt b/mibs/BRIDGE-MIB.txt
new file mode 100644
index 0000000..1e77a19
--- /dev/null
+++ b/mibs/BRIDGE-MIB.txt
@@ -0,0 +1,1472 @@
+BRIDGE-MIB DEFINITIONS ::= BEGIN
+
+-- ---------------------------------------------------------- --
+-- MIB for IEEE 802.1D devices
+-- ---------------------------------------------------------- --
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
+    Counter32, Integer32, TimeTicks, mib-2
+        FROM SNMPv2-SMI
+    TEXTUAL-CONVENTION, MacAddress
+        FROM SNMPv2-TC
+    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
+        FROM SNMPv2-CONF
+    InterfaceIndex FROM IF-MIB
+    ;
+
+dot1dBridge MODULE-IDENTITY
+    LAST-UPDATED "200509190000Z"
+    ORGANIZATION "IETF Bridge MIB Working Group"
+    CONTACT-INFO
+        "Email: bridge-mib@ietf.org
+
+                 K.C. Norseth (Editor)
+                 L-3 Communications
+            Tel: +1 801-594-2809
+          Email: kenyon.c.norseth@L-3com.com
+         Postal: 640 N. 2200 West.
+                 Salt Lake City, Utah 84116-0850
+
+                 Les Bell (Editor)
+                 3Com Europe Limited
+          Phone: +44 1442 438025
+          Email: elbell@ntlworld.com
+         Postal: 3Com Centre, Boundary Way
+                 Hemel Hempstead
+                 Herts.  HP2 7YU
+                 UK
+
+         Send comments to <bridge-mib@ietf.org>"
+    DESCRIPTION
+        "The Bridge MIB module for managing devices that support
+        IEEE 802.1D.
+
+        Copyright (C) The Internet Society (2005).  This version of
+        this MIB module is part of RFC 4188; see the RFC itself for
+        full legal notices."
+    REVISION     "200509190000Z"
+    DESCRIPTION
+         "Third revision, published as part of RFC 4188.
+
+         The MIB module has been converted to SMIv2 format.
+         Conformance statements have been added and some
+         description and reference clauses have been updated.
+
+         The object dot1dStpPortPathCost32 was added to
+         support IEEE 802.1t and the permissible values of
+         dot1dStpPriority and dot1dStpPortPriority have been
+         clarified for bridges supporting IEEE 802.1t or
+         IEEE 802.1w.
+
+         The interpretation of dot1dStpTimeSinceTopologyChange
+         has been clarified for bridges supporting the Rapid
+         Spanning Tree Protocol (RSTP)."
+    REVISION     "199307310000Z"
+    DESCRIPTION
+         "Second revision, published as part of RFC 1493."
+    REVISION     "199112310000Z"
+    DESCRIPTION
+         "Initial revision, published as part of RFC 1286."
+    ::= { mib-2 17 }
+
+-- ---------------------------------------------------------- --
+-- Textual Conventions
+-- ---------------------------------------------------------- --
+
+BridgeId ::= TEXTUAL-CONVENTION
+    STATUS      current
+    DESCRIPTION
+        "The Bridge-Identifier, as used in the Spanning Tree
+        Protocol, to uniquely identify a bridge.  Its first two
+        octets (in network byte order) contain a priority value,
+        and its last 6 octets contain the MAC address used to
+        refer to a bridge in a unique fashion (typically, the
+        numerically smallest MAC address of all ports on the
+        bridge)."
+    SYNTAX      OCTET STRING (SIZE (8))
+
+Timeout ::= TEXTUAL-CONVENTION
+    DISPLAY-HINT "d"
+    STATUS      current
+    DESCRIPTION
+        "A Spanning Tree Protocol (STP) timer in units of 1/100
+        seconds.  Several objects in this MIB module represent
+        values of timers used by the Spanning Tree Protocol.
+        In this MIB, these timers have values in units of
+        hundredths of a second (i.e., 1/100 secs).
+
+        These timers, when stored in a Spanning Tree Protocol's
+        BPDU, are in units of 1/256 seconds.  Note, however, that
+        802.1D-1998 specifies a settable granularity of no more
+        than one second for these timers.  To avoid ambiguity,
+        a conversion algorithm is defined below for converting
+        between the different units, which ensures a timer's
+        value is not distorted by multiple conversions.
+
+        To convert a Timeout value into a value in units of
+        1/256 seconds, the following algorithm should be used:
+
+            b = floor( (n * 256) / 100)
+
+        where:
+            floor   =  quotient [ignore remainder]
+            n is the value in 1/100 second units
+            b is the value in 1/256 second units
+
+        To convert the value from 1/256 second units back to
+        1/100 seconds, the following algorithm should be used:
+
+            n = ceiling( (b * 100) / 256)
+
+        where:
+            ceiling = quotient [if remainder is 0], or
+                      quotient + 1 [if remainder is nonzero]
+            n is the value in 1/100 second units
+
+            b is the value in 1/256 second units
+
+        Note: it is important that the arithmetic operations are
+        done in the order specified (i.e., multiply first,
+        divide second)."
+    SYNTAX      Integer32
+
+-- ---------------------------------------------------------- --
+-- subtrees in the Bridge MIB
+-- ---------------------------------------------------------- --
+
+dot1dNotifications  OBJECT IDENTIFIER ::= { dot1dBridge 0 }
+
+dot1dBase           OBJECT IDENTIFIER ::= { dot1dBridge 1 }
+dot1dStp            OBJECT IDENTIFIER ::= { dot1dBridge 2 }
+
+dot1dSr             OBJECT IDENTIFIER ::= { dot1dBridge 3 }
+-- documented in RFC 1525
+
+dot1dTp             OBJECT IDENTIFIER ::= { dot1dBridge 4 }
+dot1dStatic         OBJECT IDENTIFIER ::= { dot1dBridge 5 }
+
+-- Subtrees used by Bridge MIB Extensions:
+--      pBridgeMIB  MODULE-IDENTITY   ::= { dot1dBridge 6 }
+--      qBridgeMIB  MODULE-IDENTITY   ::= { dot1dBridge 7 }
+-- Note that the practice of registering related MIB modules
+-- below dot1dBridge has been discouraged since there is no
+-- robust mechanism to track such registrations.
+
+dot1dConformance    OBJECT IDENTIFIER ::= { dot1dBridge 8 }
+
+-- ---------------------------------------------------------- --
+-- the dot1dBase subtree
+-- ---------------------------------------------------------- --
+-- Implementation of the dot1dBase subtree is mandatory for all
+-- bridges.
+-- ---------------------------------------------------------- --
+
+dot1dBaseBridgeAddress OBJECT-TYPE
+    SYNTAX      MacAddress
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The MAC address used by this bridge when it must be
+        referred to in a unique fashion.  It is recommended
+        that this be the numerically smallest MAC address of
+        all ports that belong to this bridge.  However, it is only
+
+        required to be unique.  When concatenated with
+        dot1dStpPriority, a unique BridgeIdentifier is formed,
+        which is used in the Spanning Tree Protocol."
+    REFERENCE
+        "IEEE 802.1D-1998: clauses 14.4.1.1.3 and 7.12.5"
+    ::= { dot1dBase 1 }
+
+dot1dBaseNumPorts OBJECT-TYPE
+    SYNTAX      Integer32
+    UNITS       "ports"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The number of ports controlled by this bridging
+        entity."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 14.4.1.1.3"
+    ::= { dot1dBase 2 }
+
+dot1dBaseType OBJECT-TYPE
+    SYNTAX      INTEGER {
+                    unknown(1),
+                    transparent-only(2),
+                    sourceroute-only(3),
+                    srt(4)
+                }
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Indicates what type of bridging this bridge can
+        perform.  If a bridge is actually performing a
+        certain type of bridging, this will be indicated by
+        entries in the port table for the given type."
+    ::= { dot1dBase 3 }
+
+-- ---------------------------------------------------------- --
+-- The Generic Bridge Port Table
+-- ---------------------------------------------------------- --
+dot1dBasePortTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF Dot1dBasePortEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "A table that contains generic information about every
+        port that is associated with this bridge.  Transparent,
+        source-route, and srt ports are included."
+    ::= { dot1dBase 4 }
+
+dot1dBasePortEntry OBJECT-TYPE
+    SYNTAX      Dot1dBasePortEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "A list of information for each port of the bridge."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 14.4.2, 14.6.1"
+    INDEX  { dot1dBasePort }
+    ::= { dot1dBasePortTable 1 }
+
+Dot1dBasePortEntry ::=
+    SEQUENCE {
+        dot1dBasePort
+            Integer32,
+        dot1dBasePortIfIndex
+            InterfaceIndex,
+        dot1dBasePortCircuit
+            OBJECT IDENTIFIER,
+        dot1dBasePortDelayExceededDiscards
+            Counter32,
+        dot1dBasePortMtuExceededDiscards
+            Counter32
+    }
+
+dot1dBasePort OBJECT-TYPE
+    SYNTAX      Integer32 (1..65535)
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The port number of the port for which this entry
+        contains bridge management information."
+    ::= { dot1dBasePortEntry 1 }
+
+dot1dBasePortIfIndex OBJECT-TYPE
+    SYNTAX      InterfaceIndex
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The value of the instance of the ifIndex object,
+        defined in IF-MIB, for the interface corresponding
+        to this port."
+    ::= { dot1dBasePortEntry 2 }
+
+dot1dBasePortCircuit OBJECT-TYPE
+    SYNTAX      OBJECT IDENTIFIER
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "For a port that (potentially) has the same value of
+        dot1dBasePortIfIndex as another port on the same bridge.
+        This object contains the name of an object instance
+        unique to this port.  For example, in the case where
+        multiple ports correspond one-to-one with multiple X.25
+        virtual circuits, this value might identify an (e.g.,
+        the first) object instance associated with the X.25
+        virtual circuit corresponding to this port.
+
+        For a port which has a unique value of
+        dot1dBasePortIfIndex, this object can have the value
+        { 0 0 }."
+    ::= { dot1dBasePortEntry 3 }
+
+dot1dBasePortDelayExceededDiscards OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The number of frames discarded by this port due
+        to excessive transit delay through the bridge.  It
+        is incremented by both transparent and source
+        route bridges."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 14.6.1.1.3"
+    ::= { dot1dBasePortEntry 4 }
+
+dot1dBasePortMtuExceededDiscards OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The number of frames discarded by this port due
+        to an excessive size.  It is incremented by both
+        transparent and source route bridges."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 14.6.1.1.3"
+    ::= { dot1dBasePortEntry 5 }
+
+-- ---------------------------------------------------------- --
+-- the dot1dStp subtree
+-- ---------------------------------------------------------- --
+-- Implementation of the dot1dStp subtree is optional.  It is
+-- implemented by those bridges that support the Spanning Tree
+-- Protocol.
+-- ---------------------------------------------------------- --
+
+dot1dStpProtocolSpecification OBJECT-TYPE
+    SYNTAX      INTEGER {
+                    unknown(1),
+                    decLb100(2),
+                    ieee8021d(3)
+                }
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "An indication of what version of the Spanning Tree
+        Protocol is being run.  The value 'decLb100(2)'
+        indicates the DEC LANbridge 100 Spanning Tree protocol.
+        IEEE 802.1D implementations will return 'ieee8021d(3)'.
+        If future versions of the IEEE Spanning Tree Protocol
+        that are incompatible with the current version
+        are released a new value will be defined."
+    ::= { dot1dStp 1 }
+
+dot1dStpPriority OBJECT-TYPE
+    SYNTAX      Integer32 (0..65535)
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+        "The value of the write-able portion of the Bridge ID
+        (i.e., the first two octets of the (8 octet long) Bridge
+        ID).  The other (last) 6 octets of the Bridge ID are
+        given by the value of dot1dBaseBridgeAddress.
+        On bridges supporting IEEE 802.1t or IEEE 802.1w,
+        permissible values are 0-61440, in steps of 4096."
+    REFERENCE
+        "IEEE 802.1D-1998 clause 8.10.2, Table 8-4,
+        IEEE 802.1t clause 8.10.2, Table 8-4, clause 14.3."
+    ::= { dot1dStp 2 }
+
+dot1dStpTimeSinceTopologyChange OBJECT-TYPE
+    SYNTAX      TimeTicks
+    UNITS       "centi-seconds"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The time (in hundredths of a second) since the
+        last time a topology change was detected by the
+        bridge entity.
+        For RSTP, this reports the time since the tcWhile
+        timer for any port on this Bridge was nonzero."
+    REFERENCE
+        "IEEE 802.1D-1998 clause 14.8.1.1.,
+        IEEE 802.1w clause 14.8.1.1."
+    ::= { dot1dStp 3 }
+
+dot1dStpTopChanges OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The total number of topology changes detected by
+        this bridge since the management entity was last
+        reset or initialized."
+    REFERENCE
+        "IEEE 802.1D-1998 clause 14.8.1.1."
+    ::= { dot1dStp 4 }
+
+dot1dStpDesignatedRoot OBJECT-TYPE
+    SYNTAX      BridgeId
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The bridge identifier of the root of the spanning
+        tree, as determined by the Spanning Tree Protocol,
+        as executed by this node.  This value is used as
+        the Root Identifier parameter in all Configuration
+        Bridge PDUs originated by this node."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.3.1"
+    ::= { dot1dStp 5 }
+
+dot1dStpRootCost OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The cost of the path to the root as seen from
+        this bridge."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.3.2"
+    ::= { dot1dStp 6 }
+
+dot1dStpRootPort OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The port number of the port that offers the lowest
+        cost path from this bridge to the root bridge."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.3.3"
+    ::= { dot1dStp 7 }
+
+dot1dStpMaxAge OBJECT-TYPE
+    SYNTAX      Timeout
+    UNITS       "centi-seconds"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The maximum age of Spanning Tree Protocol information
+        learned from the network on any port before it is
+        discarded, in units of hundredths of a second.  This is
+        the actual value that this bridge is currently using."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.3.4"
+    ::= { dot1dStp 8 }
+
+dot1dStpHelloTime OBJECT-TYPE
+    SYNTAX      Timeout
+    UNITS       "centi-seconds"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The amount of time between the transmission of
+        Configuration bridge PDUs by this node on any port when
+        it is the root of the spanning tree, or trying to become
+        so, in units of hundredths of a second.  This is the
+        actual value that this bridge is currently using."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.3.5"
+    ::= { dot1dStp 9 }
+
+dot1dStpHoldTime OBJECT-TYPE
+    SYNTAX      Integer32
+    UNITS       "centi-seconds"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "This time value determines the interval length
+        during which no more than two Configuration bridge
+        PDUs shall be transmitted by this node, in units
+        of hundredths of a second."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.3.14"
+    ::= { dot1dStp 10 }
+
+dot1dStpForwardDelay OBJECT-TYPE
+    SYNTAX      Timeout
+    UNITS       "centi-seconds"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "This time value, measured in units of hundredths of a
+        second, controls how fast a port changes its spanning
+        state when moving towards the Forwarding state.  The
+        value determines how long the port stays in each of the
+        Listening and Learning states, which precede the
+        Forwarding state.  This value is also used when a
+        topology change has been detected and is underway, to
+        age all dynamic entries in the Forwarding Database.
+        [Note that this value is the one that this bridge is
+        currently using, in contrast to
+        dot1dStpBridgeForwardDelay, which is the value that this
+        bridge and all others would start using if/when this
+        bridge were to become the root.]"
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.3.6"
+    ::= { dot1dStp 11 }
+
+dot1dStpBridgeMaxAge OBJECT-TYPE
+    SYNTAX      Timeout (600..4000)
+    UNITS       "centi-seconds"
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+        "The value that all bridges use for MaxAge when this
+        bridge is acting as the root.  Note that 802.1D-1998
+        specifies that the range for this parameter is related
+        to the value of dot1dStpBridgeHelloTime.  The
+        granularity of this timer is specified by 802.1D-1998 to
+        be 1 second.  An agent may return a badValue error if a
+        set is attempted to a value that is not a whole number
+        of seconds."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.3.8"
+    ::= { dot1dStp 12 }
+
+dot1dStpBridgeHelloTime OBJECT-TYPE
+    SYNTAX      Timeout (100..1000)
+    UNITS       "centi-seconds"
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+        "The value that all bridges use for HelloTime when this
+        bridge is acting as the root.  The granularity of this
+        timer is specified by 802.1D-1998 to be 1 second.  An
+        agent may return a badValue error if a set is attempted
+
+        to a value that is not a whole number of seconds."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.3.9"
+    ::= { dot1dStp 13 }
+
+dot1dStpBridgeForwardDelay OBJECT-TYPE
+    SYNTAX      Timeout (400..3000)
+    UNITS       "centi-seconds"
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+        "The value that all bridges use for ForwardDelay when
+        this bridge is acting as the root.  Note that
+        802.1D-1998 specifies that the range for this parameter
+        is related to the value of dot1dStpBridgeMaxAge.  The
+        granularity of this timer is specified by 802.1D-1998 to
+        be 1 second.  An agent may return a badValue error if a
+        set is attempted to a value that is not a whole number
+        of seconds."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.3.10"
+    ::= { dot1dStp 14 }
+
+-- ---------------------------------------------------------- --
+-- The Spanning Tree Port Table
+-- ---------------------------------------------------------- --
+
+dot1dStpPortTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF Dot1dStpPortEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "A table that contains port-specific information
+        for the Spanning Tree Protocol."
+    ::= { dot1dStp 15 }
+
+dot1dStpPortEntry OBJECT-TYPE
+    SYNTAX      Dot1dStpPortEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "A list of information maintained by every port about
+        the Spanning Tree Protocol state for that port."
+    INDEX   { dot1dStpPort }
+    ::= { dot1dStpPortTable 1 }
+
+Dot1dStpPortEntry ::=
+    SEQUENCE {
+
+        dot1dStpPort
+            Integer32,
+        dot1dStpPortPriority
+            Integer32,
+        dot1dStpPortState
+            INTEGER,
+        dot1dStpPortEnable
+            INTEGER,
+        dot1dStpPortPathCost
+            Integer32,
+        dot1dStpPortDesignatedRoot
+            BridgeId,
+        dot1dStpPortDesignatedCost
+            Integer32,
+        dot1dStpPortDesignatedBridge
+            BridgeId,
+        dot1dStpPortDesignatedPort
+            OCTET STRING,
+        dot1dStpPortForwardTransitions
+            Counter32,
+        dot1dStpPortPathCost32
+            Integer32
+    }
+
+dot1dStpPort OBJECT-TYPE
+    SYNTAX      Integer32 (1..65535)
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The port number of the port for which this entry
+        contains Spanning Tree Protocol management information."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 14.8.2.1.2"
+    ::= { dot1dStpPortEntry 1 }
+
+dot1dStpPortPriority OBJECT-TYPE
+    SYNTAX      Integer32 (0..255)
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+        "The value of the priority field that is contained in
+        the first (in network byte order) octet of the (2 octet
+        long) Port ID.  The other octet of the Port ID is given
+        by the value of dot1dStpPort.
+        On bridges supporting IEEE 802.1t or IEEE 802.1w,
+        permissible values are 0-240, in steps of 16."
+    REFERENCE
+        "IEEE 802.1D-1998 clause 8.10.2, Table 8-4,
+        IEEE 802.1t clause 8.10.2, Table 8-4, clause 14.3."
+    ::= { dot1dStpPortEntry 2 }
+
+dot1dStpPortState OBJECT-TYPE
+    SYNTAX      INTEGER {
+                    disabled(1),
+                    blocking(2),
+                    listening(3),
+                    learning(4),
+                    forwarding(5),
+                    broken(6)
+                }
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The port's current state, as defined by application of
+        the Spanning Tree Protocol.  This state controls what
+        action a port takes on reception of a frame.  If the
+        bridge has detected a port that is malfunctioning, it
+        will place that port into the broken(6) state.  For
+        ports that are disabled (see dot1dStpPortEnable), this
+        object will have a value of disabled(1)."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.5.2"
+    ::= { dot1dStpPortEntry 3 }
+
+dot1dStpPortEnable OBJECT-TYPE
+    SYNTAX      INTEGER {
+                    enabled(1),
+                    disabled(2)
+                }
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+        "The enabled/disabled status of the port."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.5.2"
+    ::= { dot1dStpPortEntry 4 }
+
+dot1dStpPortPathCost OBJECT-TYPE
+    SYNTAX      Integer32 (1..65535)
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+        "The contribution of this port to the path cost of
+        paths towards the spanning tree root which include
+        this port.  802.1D-1998 recommends that the default
+        value of this parameter be in inverse proportion to
+
+        the speed of the attached LAN.
+
+        New implementations should support dot1dStpPortPathCost32.
+        If the port path costs exceeds the maximum value of this
+        object then this object should report the maximum value,
+        namely 65535.  Applications should try to read the
+        dot1dStpPortPathCost32 object if this object reports
+        the maximum value."
+    REFERENCE "IEEE 802.1D-1998: clause 8.5.5.3"
+        ::= { dot1dStpPortEntry 5 }
+
+dot1dStpPortDesignatedRoot OBJECT-TYPE
+    SYNTAX      BridgeId
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The unique Bridge Identifier of the Bridge
+        recorded as the Root in the Configuration BPDUs
+        transmitted by the Designated Bridge for the
+        segment to which the port is attached."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.5.4"
+    ::= { dot1dStpPortEntry 6 }
+
+dot1dStpPortDesignatedCost OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The path cost of the Designated Port of the segment
+        connected to this port.  This value is compared to the
+        Root Path Cost field in received bridge PDUs."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.5.5"
+    ::= { dot1dStpPortEntry 7 }
+
+dot1dStpPortDesignatedBridge OBJECT-TYPE
+    SYNTAX      BridgeId
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The Bridge Identifier of the bridge that this
+        port considers to be the Designated Bridge for
+        this port's segment."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.5.6"
+    ::= { dot1dStpPortEntry 8 }
+
+dot1dStpPortDesignatedPort OBJECT-TYPE
+    SYNTAX      OCTET STRING (SIZE (2))
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The Port Identifier of the port on the Designated
+        Bridge for this port's segment."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 8.5.5.7"
+    ::= { dot1dStpPortEntry 9 }
+
+dot1dStpPortForwardTransitions OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The number of times this port has transitioned
+        from the Learning state to the Forwarding state."
+    ::= { dot1dStpPortEntry 10 }
+
+dot1dStpPortPathCost32 OBJECT-TYPE
+    SYNTAX      Integer32 (1..200000000)
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+        "The contribution of this port to the path cost of
+        paths towards the spanning tree root which include
+        this port.  802.1D-1998 recommends that the default
+        value of this parameter be in inverse proportion to
+        the speed of the attached LAN.
+
+        This object replaces dot1dStpPortPathCost to support
+        IEEE 802.1t."
+    REFERENCE
+        "IEEE 802.1t clause 8.10.2, Table 8-5."
+    ::= { dot1dStpPortEntry 11 }
+
+-- ---------------------------------------------------------- --
+-- the dot1dTp subtree
+-- ---------------------------------------------------------- --
+-- Implementation of the dot1dTp subtree is optional.  It is
+-- implemented by those bridges that support the transparent
+-- bridging mode.  A transparent or SRT bridge will implement
+-- this subtree.
+-- ---------------------------------------------------------- --
+
+dot1dTpLearnedEntryDiscards OBJECT-TYPE
+    SYNTAX      Counter32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The total number of Forwarding Database entries that
+        have been or would have been learned, but have been
+        discarded due to a lack of storage space in the
+        Forwarding Database.  If this counter is increasing, it
+        indicates that the Forwarding Database is regularly
+        becoming full (a condition that has unpleasant
+        performance effects on the subnetwork).  If this counter
+        has a significant value but is not presently increasing,
+        it indicates that the problem has been occurring but is
+        not persistent."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 14.7.1.1.3"
+    ::= { dot1dTp 1 }
+
+dot1dTpAgingTime OBJECT-TYPE
+    SYNTAX      Integer32 (10..1000000)
+    UNITS       "seconds"
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION
+        "The timeout period in seconds for aging out
+        dynamically-learned forwarding information.
+        802.1D-1998 recommends a default of 300 seconds."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 14.7.1.1.3"
+    ::= { dot1dTp 2 }
+
+-- ---------------------------------------------------------- --
+--  The Forwarding Database for Transparent Bridges
+-- ---------------------------------------------------------- --
+
+dot1dTpFdbTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF Dot1dTpFdbEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "A table that contains information about unicast
+        entries for which the bridge has forwarding and/or
+        filtering information.  This information is used
+        by the transparent bridging function in
+        determining how to propagate a received frame."
+    ::= { dot1dTp 3 }
+
+dot1dTpFdbEntry OBJECT-TYPE
+    SYNTAX      Dot1dTpFdbEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "Information about a specific unicast MAC address
+        for which the bridge has some forwarding and/or
+        filtering information."
+    INDEX   { dot1dTpFdbAddress }
+    ::= { dot1dTpFdbTable 1 }
+
+Dot1dTpFdbEntry ::=
+    SEQUENCE {
+        dot1dTpFdbAddress
+            MacAddress,
+        dot1dTpFdbPort
+            Integer32,
+        dot1dTpFdbStatus
+            INTEGER
+    }
+
+dot1dTpFdbAddress OBJECT-TYPE
+    SYNTAX      MacAddress
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "A unicast MAC address for which the bridge has
+        forwarding and/or filtering information."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 7.9.1, 7.9.2"
+    ::= { dot1dTpFdbEntry 1 }
+
+dot1dTpFdbPort OBJECT-TYPE
+    SYNTAX      Integer32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Either the value '0', or the port number of the port on
+        which a frame having a source address equal to the value
+        of the corresponding instance of dot1dTpFdbAddress has
+        been seen.  A value of '0' indicates that the port
+        number has not been learned, but that the bridge does
+        have some forwarding/filtering information about this
+        address (e.g., in the dot1dStaticTable).  Implementors
+        are encouraged to assign the port value to this object
+        whenever it is learned, even for addresses for which the
+        corresponding value of dot1dTpFdbStatus is not
+        learned(3)."
+    ::= { dot1dTpFdbEntry 2 }
+
+dot1dTpFdbStatus OBJECT-TYPE
+    SYNTAX      INTEGER {
+                    other(1),
+                    invalid(2),
+                    learned(3),
+                    self(4),
+                    mgmt(5)
+                }
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The status of this entry.  The meanings of the
+        values are:
+            other(1) - none of the following.  This would
+                include the case where some other MIB object
+                (not the corresponding instance of
+                dot1dTpFdbPort, nor an entry in the
+                dot1dStaticTable) is being used to determine if
+                and how frames addressed to the value of the
+                corresponding instance of dot1dTpFdbAddress are
+                being forwarded.
+            invalid(2) - this entry is no longer valid (e.g.,
+                it was learned but has since aged out), but has
+                not yet been flushed from the table.
+            learned(3) - the value of the corresponding instance
+                of dot1dTpFdbPort was learned, and is being
+                used.
+            self(4) - the value of the corresponding instance of
+                dot1dTpFdbAddress represents one of the bridge's
+                addresses.  The corresponding instance of
+                dot1dTpFdbPort indicates which of the bridge's
+                ports has this address.
+            mgmt(5) - the value of the corresponding instance of
+                dot1dTpFdbAddress is also the value of an
+                existing instance of dot1dStaticAddress."
+    ::= { dot1dTpFdbEntry 3 }
+
+-- ---------------------------------------------------------- --
+--  Port Table for Transparent Bridges
+-- ---------------------------------------------------------- --
+
+dot1dTpPortTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF Dot1dTpPortEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "A table that contains information about every port that
+        is associated with this transparent bridge."
+    ::= { dot1dTp 4 }
+
+dot1dTpPortEntry OBJECT-TYPE
+    SYNTAX      Dot1dTpPortEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "A list of information for each port of a transparent
+        bridge."
+    INDEX   { dot1dTpPort }
+    ::= { dot1dTpPortTable 1 }
+
+Dot1dTpPortEntry ::=
+    SEQUENCE {
+        dot1dTpPort
+            Integer32,
+        dot1dTpPortMaxInfo
+            Integer32,
+        dot1dTpPortInFrames
+            Counter32,
+        dot1dTpPortOutFrames
+            Counter32,
+        dot1dTpPortInDiscards
+            Counter32
+    }
+
+dot1dTpPort OBJECT-TYPE
+    SYNTAX      Integer32 (1..65535)
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The port number of the port for which this entry
+        contains Transparent bridging management information."
+    ::= { dot1dTpPortEntry 1 }
+
+-- It would be nice if we could use ifMtu as the size of the
+-- largest INFO field, but we can't because ifMtu is defined
+-- to be the size that the (inter-)network layer can use, which
+-- can differ from the MAC layer (especially if several layers
+-- of encapsulation are used).
+
+dot1dTpPortMaxInfo OBJECT-TYPE
+    SYNTAX      Integer32
+    UNITS       "bytes"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The maximum size of the INFO (non-MAC) field that
+
+        this port will receive or transmit."
+    ::= { dot1dTpPortEntry 2 }
+
+dot1dTpPortInFrames OBJECT-TYPE
+    SYNTAX      Counter32
+    UNITS       "frames"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The number of frames that have been received by this
+        port from its segment.  Note that a frame received on the
+        interface corresponding to this port is only counted by
+        this object if and only if it is for a protocol being
+        processed by the local bridging function, including
+        bridge management frames."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 14.6.1.1.3"
+    ::= { dot1dTpPortEntry 3 }
+
+dot1dTpPortOutFrames OBJECT-TYPE
+    SYNTAX      Counter32
+    UNITS       "frames"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The number of frames that have been transmitted by this
+        port to its segment.  Note that a frame transmitted on
+        the interface corresponding to this port is only counted
+        by this object if and only if it is for a protocol being
+        processed by the local bridging function, including
+        bridge management frames."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 14.6.1.1.3"
+    ::= { dot1dTpPortEntry 4 }
+
+dot1dTpPortInDiscards OBJECT-TYPE
+    SYNTAX      Counter32
+    UNITS       "frames"
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "Count of received valid frames that were discarded
+        (i.e., filtered) by the Forwarding Process."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 14.6.1.1.3"
+    ::= { dot1dTpPortEntry 5 }
+
+-- ---------------------------------------------------------- --
+
+-- The Static (Destination-Address Filtering) Database
+-- ---------------------------------------------------------- --
+-- Implementation of this subtree is optional.
+-- ---------------------------------------------------------- --
+
+dot1dStaticTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF Dot1dStaticEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "A table containing filtering information configured
+        into the bridge by (local or network) management
+        specifying the set of ports to which frames received
+        from specific ports and containing specific destination
+        addresses are allowed to be forwarded.  The value of
+        zero in this table, as the port number from which frames
+        with a specific destination address are received, is
+        used to specify all ports for which there is no specific
+        entry in this table for that particular destination
+        address.  Entries are valid for unicast and for
+        group/broadcast addresses."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 14.7.2"
+    ::= { dot1dStatic 1 }
+
+dot1dStaticEntry OBJECT-TYPE
+    SYNTAX      Dot1dStaticEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "Filtering information configured into the bridge by
+        (local or network) management specifying the set of
+        ports to which frames received from a specific port and
+        containing a specific destination address are allowed to
+        be forwarded."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 14.7.2"
+    INDEX   { dot1dStaticAddress, dot1dStaticReceivePort }
+    ::= { dot1dStaticTable 1 }
+
+Dot1dStaticEntry ::=
+    SEQUENCE {
+        dot1dStaticAddress       MacAddress,
+        dot1dStaticReceivePort   Integer32,
+        dot1dStaticAllowedToGoTo OCTET STRING,
+        dot1dStaticStatus        INTEGER
+    }
+
+dot1dStaticAddress OBJECT-TYPE
+    SYNTAX      MacAddress
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The destination MAC address in a frame to which this
+        entry's filtering information applies.  This object can
+        take the value of a unicast address, a group address, or
+        the broadcast address."
+    REFERENCE
+        "IEEE 802.1D-1998: clause 7.9.1, 7.9.2"
+    ::= { dot1dStaticEntry 1 }
+
+dot1dStaticReceivePort OBJECT-TYPE
+    SYNTAX      Integer32 (0..65535)
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "Either the value '0', or the port number of the port
+        from which a frame must be received in order for this
+        entry's filtering information to apply.  A value of zero
+        indicates that this entry applies on all ports of the
+        bridge for which there is no other applicable entry."
+    ::= { dot1dStaticEntry 2 }
+
+dot1dStaticAllowedToGoTo OBJECT-TYPE
+    SYNTAX      OCTET STRING (SIZE (0..512))
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The set of ports to which frames received from a
+        specific port and destined for a specific MAC address,
+        are allowed to be forwarded.  Each octet within the
+        value of this object specifies a set of eight ports,
+        with the first octet specifying ports 1 through 8, the
+        second octet specifying ports 9 through 16, etc.  Within
+        each octet, the most significant bit represents the
+        lowest numbered port, and the least significant bit
+        represents the highest numbered port.  Thus, each port
+        of the bridge is represented by a single bit within the
+        value of this object.  If that bit has a value of '1',
+        then that port is included in the set of ports; the port
+        is not included if its bit has a value of '0'.  (Note
+        that the setting of the bit corresponding to the port
+        from which a frame is received is irrelevant.)  The
+        default value of this object is a string of ones of
+        appropriate length.
+
+        The value of this object may exceed the required minimum
+        maximum message size of some SNMP transport (484 bytes,
+        in the case of SNMP over UDP, see RFC 3417, section 3.2).
+        SNMP engines on bridges supporting a large number of
+        ports must support appropriate maximum message sizes."
+    ::= { dot1dStaticEntry 3 }
+
+dot1dStaticStatus OBJECT-TYPE
+    SYNTAX      INTEGER {
+                    other(1),
+                    invalid(2),
+                    permanent(3),
+                    deleteOnReset(4),
+                    deleteOnTimeout(5)
+                }
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "This object indicates the status of this entry.
+        The default value is permanent(3).
+            other(1) - this entry is currently in use but the
+                conditions under which it will remain so are
+                different from each of the following values.
+            invalid(2) - writing this value to the object
+                removes the corresponding entry.
+            permanent(3) - this entry is currently in use and
+                will remain so after the next reset of the
+                bridge.
+            deleteOnReset(4) - this entry is currently in use
+                and will remain so until the next reset of the
+                bridge.
+            deleteOnTimeout(5) - this entry is currently in use
+                and will remain so until it is aged out."
+    ::= { dot1dStaticEntry 4 }
+
+-- ---------------------------------------------------------- --
+-- Notifications for use by Bridges
+-- ---------------------------------------------------------- --
+-- Notifications for the Spanning Tree Protocol
+-- ---------------------------------------------------------- --
+
+newRoot NOTIFICATION-TYPE
+    -- OBJECTS     { }
+    STATUS      current
+    DESCRIPTION
+        "The newRoot trap indicates that the sending agent has
+        become the new root of the Spanning Tree; the trap is
+        sent by a bridge soon after its election as the new
+
+        root, e.g., upon expiration of the Topology Change Timer,
+        immediately subsequent to its election.  Implementation
+        of this trap is optional."
+    ::= { dot1dNotifications 1 }
+
+topologyChange NOTIFICATION-TYPE
+    -- OBJECTS     { }
+    STATUS      current
+    DESCRIPTION
+        "A topologyChange trap is sent by a bridge when any of
+        its configured ports transitions from the Learning state
+        to the Forwarding state, or from the Forwarding state to
+        the Blocking state.  The trap is not sent if a newRoot
+        trap is sent for the same transition.  Implementation of
+        this trap is optional."
+    ::= { dot1dNotifications 2 }
+
+-- ---------------------------------------------------------- --
+-- IEEE 802.1D MIB - Conformance Information
+-- ---------------------------------------------------------- --
+
+dot1dGroups         OBJECT IDENTIFIER ::= { dot1dConformance 1 }
+dot1dCompliances    OBJECT IDENTIFIER ::= { dot1dConformance 2 }
+
+-- ---------------------------------------------------------- --
+-- units of conformance
+-- ---------------------------------------------------------- --
+
+-- ---------------------------------------------------------- --
+-- the dot1dBase group
+-- ---------------------------------------------------------- --
+
+dot1dBaseBridgeGroup OBJECT-GROUP
+    OBJECTS {
+        dot1dBaseBridgeAddress,
+        dot1dBaseNumPorts,
+        dot1dBaseType
+    }
+    STATUS      current
+    DESCRIPTION
+        "Bridge level information for this device."
+    ::= { dot1dGroups 1 }
+
+dot1dBasePortGroup OBJECT-GROUP
+    OBJECTS {
+        dot1dBasePort,
+        dot1dBasePortIfIndex,
+        dot1dBasePortCircuit,
+        dot1dBasePortDelayExceededDiscards,
+        dot1dBasePortMtuExceededDiscards
+    }
+    STATUS      current
+    DESCRIPTION
+        "Information for each port on this device."
+    ::= { dot1dGroups 2 }
+
+-- ---------------------------------------------------------- --
+-- the dot1dStp group
+-- ---------------------------------------------------------- --
+
+dot1dStpBridgeGroup OBJECT-GROUP
+    OBJECTS {
+        dot1dStpProtocolSpecification,
+        dot1dStpPriority,
+        dot1dStpTimeSinceTopologyChange,
+        dot1dStpTopChanges,
+        dot1dStpDesignatedRoot,
+        dot1dStpRootCost,
+        dot1dStpRootPort,
+        dot1dStpMaxAge,
+        dot1dStpHelloTime,
+        dot1dStpHoldTime,
+        dot1dStpForwardDelay,
+        dot1dStpBridgeMaxAge,
+        dot1dStpBridgeHelloTime,
+        dot1dStpBridgeForwardDelay
+    }
+    STATUS      current
+    DESCRIPTION
+        "Bridge level Spanning Tree data for this device."
+    ::= { dot1dGroups 3 }
+
+dot1dStpPortGroup OBJECT-GROUP
+    OBJECTS {
+        dot1dStpPort,
+        dot1dStpPortPriority,
+        dot1dStpPortState,
+        dot1dStpPortEnable,
+        dot1dStpPortPathCost,
+        dot1dStpPortDesignatedRoot,
+        dot1dStpPortDesignatedCost,
+        dot1dStpPortDesignatedBridge,
+        dot1dStpPortDesignatedPort,
+        dot1dStpPortForwardTransitions
+    }
+    STATUS      current
+    DESCRIPTION
+        "Spanning Tree data for each port on this device."
+    ::= { dot1dGroups 4 }
+
+dot1dStpPortGroup2 OBJECT-GROUP
+    OBJECTS {
+        dot1dStpPort,
+        dot1dStpPortPriority,
+        dot1dStpPortState,
+        dot1dStpPortEnable,
+        dot1dStpPortDesignatedRoot,
+        dot1dStpPortDesignatedCost,
+        dot1dStpPortDesignatedBridge,
+        dot1dStpPortDesignatedPort,
+        dot1dStpPortForwardTransitions,
+        dot1dStpPortPathCost32
+    }
+    STATUS      current
+    DESCRIPTION
+        "Spanning Tree data for each port on this device."
+    ::= { dot1dGroups 5 }
+
+dot1dStpPortGroup3 OBJECT-GROUP
+    OBJECTS {
+        dot1dStpPortPathCost32
+    }
+    STATUS      current
+    DESCRIPTION
+        "Spanning Tree data for devices supporting 32-bit
+         path costs."
+    ::= { dot1dGroups 6 }
+
+-- ---------------------------------------------------------- --
+-- the dot1dTp group
+-- ---------------------------------------------------------- --
+
+dot1dTpBridgeGroup OBJECT-GROUP
+    OBJECTS {
+        dot1dTpLearnedEntryDiscards,
+        dot1dTpAgingTime
+    }
+    STATUS      current
+    DESCRIPTION
+        "Bridge level Transparent Bridging data."
+    ::= { dot1dGroups 7 }
+
+dot1dTpFdbGroup OBJECT-GROUP
+    OBJECTS {
+
+        dot1dTpFdbAddress,
+        dot1dTpFdbPort,
+        dot1dTpFdbStatus
+    }
+    STATUS      current
+    DESCRIPTION
+        "Filtering Database information for the Bridge."
+    ::= { dot1dGroups 8 }
+
+dot1dTpGroup OBJECT-GROUP
+    OBJECTS {
+        dot1dTpPort,
+        dot1dTpPortMaxInfo,
+        dot1dTpPortInFrames,
+        dot1dTpPortOutFrames,
+        dot1dTpPortInDiscards
+    }
+    STATUS      current
+    DESCRIPTION
+        "Dynamic Filtering Database information for each port of
+        the Bridge."
+    ::= { dot1dGroups 9 }
+
+-- ---------------------------------------------------------- --
+-- The Static (Destination-Address Filtering) Database
+-- ---------------------------------------------------------- --
+
+dot1dStaticGroup OBJECT-GROUP
+    OBJECTS {
+        dot1dStaticAddress,
+        dot1dStaticReceivePort,
+        dot1dStaticAllowedToGoTo,
+        dot1dStaticStatus
+    }
+    STATUS      current
+    DESCRIPTION
+        "Static Filtering Database information for each port of
+        the Bridge."
+    ::= { dot1dGroups 10 }
+
+-- ---------------------------------------------------------- --
+-- The Trap Notification Group
+-- ---------------------------------------------------------- --
+
+dot1dNotificationGroup NOTIFICATION-GROUP
+    NOTIFICATIONS {
+        newRoot,
+        topologyChange
+    }
+    STATUS      current
+    DESCRIPTION
+        "Group of objects describing notifications (traps)."
+    ::= { dot1dGroups 11 }
+
+-- ---------------------------------------------------------- --
+-- compliance statements
+-- ---------------------------------------------------------- --
+
+bridgeCompliance1493 MODULE-COMPLIANCE
+    STATUS      current
+    DESCRIPTION
+        "The compliance statement for device support of bridging
+        services, as per RFC1493."
+
+    MODULE
+        MANDATORY-GROUPS {
+            dot1dBaseBridgeGroup,
+            dot1dBasePortGroup
+        }
+
+    GROUP   dot1dStpBridgeGroup
+    DESCRIPTION
+        "Implementation of this group is mandatory for bridges
+        that support the Spanning Tree Protocol."
+
+    GROUP   dot1dStpPortGroup
+    DESCRIPTION
+        "Implementation of this group is mandatory for bridges
+        that support the Spanning Tree Protocol."
+
+    GROUP   dot1dTpBridgeGroup
+    DESCRIPTION
+        "Implementation of this group is mandatory for bridges
+        that support the transparent bridging mode.  A
+        transparent or SRT bridge will implement this group."
+
+    GROUP   dot1dTpFdbGroup
+    DESCRIPTION
+        "Implementation of this group is mandatory for bridges
+        that support the transparent bridging mode.  A
+        transparent or SRT bridge will implement this group."
+
+    GROUP   dot1dTpGroup
+    DESCRIPTION
+        "Implementation of this group is mandatory for bridges
+
+        that support the transparent bridging mode.  A
+        transparent or SRT bridge will implement this group."
+
+    GROUP   dot1dStaticGroup
+    DESCRIPTION
+        "Implementation of this group is optional."
+
+    GROUP dot1dNotificationGroup
+    DESCRIPTION
+        "Implementation of this group is optional."
+    ::= { dot1dCompliances 1 }
+
+bridgeCompliance4188 MODULE-COMPLIANCE
+    STATUS      current
+    DESCRIPTION
+        "The compliance statement for device support of bridging
+        services.  This supports 32-bit Path Cost values and the
+        more restricted bridge and port priorities, as per IEEE
+        802.1t.
+
+        Full support for the 802.1D management objects requires that
+        the SNMPv2-MIB [RFC3418] objects sysDescr, and sysUpTime, as
+        well as the IF-MIB [RFC2863] objects ifIndex, ifType,
+        ifDescr, ifPhysAddress, and ifLastChange are implemented."
+
+    MODULE
+        MANDATORY-GROUPS {
+            dot1dBaseBridgeGroup,
+            dot1dBasePortGroup
+        }
+
+    GROUP   dot1dStpBridgeGroup
+    DESCRIPTION
+        "Implementation of this group is mandatory for
+        bridges that support the Spanning Tree Protocol."
+
+    OBJECT dot1dStpPriority
+    SYNTAX Integer32 (0|4096|8192|12288|16384|20480|24576
+                     |28672|32768|36864|40960|45056|49152
+                     |53248|57344|61440)
+    DESCRIPTION
+        "The possible values defined by IEEE 802.1t."
+
+    GROUP   dot1dStpPortGroup2
+    DESCRIPTION
+        "Implementation of this group is mandatory for
+        bridges that support the Spanning Tree Protocol."
+
+    GROUP   dot1dStpPortGroup3
+    DESCRIPTION
+        "Implementation of this group is mandatory for bridges
+         that support the Spanning Tree Protocol and 32-bit path
+         costs.  In particular, this includes devices supporting
+         IEEE 802.1t and IEEE 802.1w."
+
+    OBJECT dot1dStpPortPriority
+    SYNTAX Integer32 (0|16|32|48|64|80|96|112|128
+                     |144|160|176|192|208|224|240)
+    DESCRIPTION
+        "The possible values defined by IEEE 802.1t."
+
+    GROUP   dot1dTpBridgeGroup
+    DESCRIPTION
+        "Implementation of this group is mandatory for
+        bridges that support the transparent bridging
+        mode.  A transparent or SRT bridge will implement
+        this group."
+
+    GROUP   dot1dTpFdbGroup
+    DESCRIPTION
+        "Implementation of this group is mandatory for
+        bridges that support the transparent bridging
+        mode.  A transparent or SRT bridge will implement
+        this group."
+
+    GROUP   dot1dTpGroup
+    DESCRIPTION
+        "Implementation of this group is mandatory for
+        bridges that support the transparent bridging
+        mode.  A transparent or SRT bridge will implement
+        this group."
+
+    GROUP   dot1dStaticGroup
+    DESCRIPTION
+        "Implementation of this group is optional."
+
+    GROUP dot1dNotificationGroup
+    DESCRIPTION
+        "Implementation of this group is optional."
+    ::= { dot1dCompliances 2 }
+
+END
diff --git a/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt b/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt
index 3d88a0f..73322dd 100644
--- a/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt
+++ b/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt
@@ -17,7 +17,7 @@
                       USA
 
           Tel:    +1  310-823-9358
-          E-Mail: iana&iana.org"
+          E-Mail: iana@iana.org"
       DESCRIPTION
           "The MIB module defines the AddressFamilyNumbers
           textual convention."
@@ -90,7 +90,7 @@
           reserved(65535)
 
           Requests for new values should be made to IANA via
-          email (iana&iana.org)."
+          email (iana@iana.org)."
       SYNTAX  INTEGER {
                   other(0),
                   ipV4(1),
diff --git a/mibs/IANA-LANGUAGE-MIB.txt b/mibs/IANA-LANGUAGE-MIB.txt
index 773c101..b0ad3ed 100644
--- a/mibs/IANA-LANGUAGE-MIB.txt
+++ b/mibs/IANA-LANGUAGE-MIB.txt
@@ -15,7 +15,7 @@
                  Marina del Rey, CA 90292
 
          Tel:    +1 310 823 9358 x20
-         E-Mail: iana&iana.org"
+         E-Mail: iana@iana.org"
     DESCRIPTION
         "The MIB module registers object identifier values for
          well-known programming and scripting languages. Every
diff --git a/mibs/IANA-RTPROTO-MIB.txt b/mibs/IANA-RTPROTO-MIB.txt
index 6f04143..f7bc1eb 100644
--- a/mibs/IANA-RTPROTO-MIB.txt
+++ b/mibs/IANA-RTPROTO-MIB.txt
@@ -5,15 +5,15 @@
     TEXTUAL-CONVENTION               FROM SNMPv2-TC;
 
 ianaRtProtoMIB  MODULE-IDENTITY
-    LAST-UPDATED "200009260000Z" -- September 26, 2000
+    LAST-UPDATED "201208300000Z" -- August 30, 2012
     ORGANIZATION "IANA"
     CONTACT-INFO
             " Internet Assigned Numbers Authority
               Internet Corporation for Assigned Names and Numbers
-              4676 Admiralty Way, Suite 330
-              Marina del Rey, CA 90292-6601
+              12025 Waterfront Drive, Suite 300
+              Los Angeles, CA 90094-2536
 
-              Phone: +1 310 823 9358
+              Phone: +1 310 301 5800
               EMail: iana&iana.org"
     DESCRIPTION
             "This MIB module defines the IANAipRouteProtocol and
@@ -28,6 +28,12 @@
             will be selected by the IESG Area Director(s) of the Routing
             Area."
 
+    REVISION     "201208300000Z"  -- August 30, 2012 
+    DESCRIPTION  "Added dhcp(19)."
+
+    REVISION     "201107220000Z"  -- July 22, 2011 
+    DESCRIPTION  "Added rpl(18) ."
+
     REVISION     "200009260000Z"  -- September 26, 2000 
     DESCRIPTION  "Original version, published in coordination
                  with RFC 2932."
@@ -60,7 +66,9 @@
                 bgp        (14), -- Border Gateway Protocol
                 idpr       (15), -- InterDomain Policy Routing
                 ciscoEigrp (16), -- Cisco EIGRP
-                dvmrp      (17)  -- DVMRP
+                dvmrp      (17), -- DVMRP
+                rpl        (18), -- RPL [RFC-ietf-roll-rpl-19]
+                dhcp       (19)  -- DHCP [RFC2132]
                }
 
 IANAipMRouteProtocol ::= TEXTUAL-CONVENTION
diff --git a/mibs/IANAifType-MIB.txt b/mibs/IANAifType-MIB.txt
index 9594650..df59fa9 100644
--- a/mibs/IANAifType-MIB.txt
+++ b/mibs/IANAifType-MIB.txt
@@ -5,7 +5,7 @@
        TEXTUAL-CONVENTION          FROM SNMPv2-TC;
 
    ianaifType MODULE-IDENTITY
-       LAST-UPDATED "200905060000Z"  -- May 06, 2009
+       LAST-UPDATED "201205170000Z"  -- May 17, 2012
        ORGANIZATION "IANA"
        CONTACT-INFO "        Internet Assigned Numbers Authority
 
@@ -19,6 +19,39 @@
                      Convention, and thus the enumerated values of
                      the ifType object defined in MIB-II's ifTable."
 
+       REVISION     "201205170000Z"  -- May 17, 2012
+       DESCRIPTION  "Registration of new IANAifType 272."
+
+       REVISION     "201201110000Z"  -- January 11, 2012
+       DESCRIPTION  "Registration of new IANAifTypes 266-271."
+
+       REVISION     "201112180000Z"  -- December 18, 2011
+       DESCRIPTION  "Registration of new IANAifTypes 263-265."
+
+       REVISION     "201110260000Z"  -- October 26, 2011
+       DESCRIPTION  "Registration of new IANAifType 262."
+
+       REVISION     "201109070000Z"  -- September 7, 2011
+       DESCRIPTION  "Registration of new IANAifTypes 260 and 261."
+
+       REVISION     "201107220000Z"  -- July 22, 2011
+       DESCRIPTION  "Registration of new IANAifType 259."
+
+       REVISION     "201106030000Z"  -- June 03, 2011
+       DESCRIPTION  "Registration of new IANAifType 258."
+
+       REVISION     "201009210000Z"  -- September 21, 2010
+       DESCRIPTION  "Registration of new IANAifTypes 256 and 257."
+
+       REVISION     "201007210000Z"  -- July 21, 2010
+       DESCRIPTION  "Registration of new IANAifType 255."
+
+       REVISION     "201002110000Z"  -- February 11, 2010
+       DESCRIPTION  "Registration of new IANAifType 254."
+
+       REVISION     "201002080000Z"  -- February 08, 2010
+       DESCRIPTION  "Registration of new IANAifTypes 252 and 253."
+
        REVISION     "200905060000Z"  -- May 06, 2009
        DESCRIPTION  "Registration of new IANAifType 251."
 
@@ -328,7 +361,7 @@
                    ieee80212(55),      -- 100BaseVG
                    fibreChannel(56),   -- Fibre Channel
                    hippiInterface(57), -- HIPPI interfaces     
-                   frameRelayInterconnect(58), -- Obsolete use either
+                   frameRelayInterconnect(58), -- Obsolete, use either
                                        -- frameRelay(32) or 
                                        -- frameRelayService(44).
                    aflane8023(59),     -- ATM Emulated LAN for 802.3
@@ -488,7 +521,7 @@
                    pon155 (207), -- FSAN 155Mb Symetrical PON interface
                    pon622 (208), -- FSAN622Mb Symetrical PON interface
                    bridge (209), -- Transparent bridge interface
-                   linegroup (210), -- Interface common to multiple lines		   
+                   linegroup (210), -- Interface common to multiple lines   
                    voiceEMFGD (211), -- voice E&M Feature Group D
                    voiceFGDEANA (212), -- voice FGD Exchange Access North American
                    voiceDID (213), -- voice Direct Inward Dialing
@@ -498,7 +531,7 @@
                    pdnEtherLoop1 (217), -- Paradyne EtherLoop 1
                    pdnEtherLoop2 (218), -- Paradyne EtherLoop 2
                    opticalChannelGroup (219), -- Optical Channel Group
-                   homepna (220), -- HomePNA ITU-T G.989				   
+                   homepna (220), -- HomePNA ITU-T G.989
                    gfp (221), -- Generic Framing Procedure (GFP)
                    ciscoISLvlan (222), -- Layer 2 Virtual LAN using Cisco ISL
                    actelisMetaLOOP (223), -- Acteleis proprietary MetaLOOP High Speed Link 
@@ -532,7 +565,28 @@
                    pip (248), -- Provider Instance Port on a bridge per IEEE 802.1ah PBB
                    aluELP (249), -- Alcatel-Lucent Ethernet Link Protection
                    gpon (250), -- Gigabit-capable passive optical networks (G-PON) as per ITU-T G.948
-                   vdsl2 (251) -- Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)
+                   vdsl2 (251), -- Very high speed digital subscriber line Version 2 (as per ITU-T Recommendation G.993.2)
+                   capwapDot11Profile (252), -- WLAN Profile Interface
+                   capwapDot11Bss (253), -- WLAN BSS Interface
+                   capwapWtpVirtualRadio (254), -- WTP Virtual Radio Interface
+                   bits (255), -- bitsport
+                   docsCableUpstreamRfPort (256), -- DOCSIS CATV Upstream RF Port
+                   cableDownstreamRfPort (257), -- CATV downstream RF port
+                   vmwareVirtualNic (258), -- VMware Virtual Network Interface
+                   ieee802154 (259), -- IEEE 802.15.4 WPAN interface
+                   otnOdu (260), -- OTN Optical Data Unit
+                   otnOtu (261), -- OTN Optical channel Transport Unit
+                   ifVfiType (262), -- VPLS Forwarding Instance Interface Type
+                   g9981 (263), -- G.998.1 bonded interface
+                   g9982 (264), -- G.998.2 bonded interface
+                   g9983 (265), -- G.998.3 bonded interface
+                   aluEpon (266), -- Ethernet Passive Optical Networks (E-PON)
+                   aluEponOnu (267), -- EPON Optical Network Unit
+                   aluEponPhysicalUni (268), -- EPON physical User to Network interface
+                   aluEponLogicalLink (269), -- The emulation of a point-to-point link over the EPON layer
+                   aluGponOnu (270), -- GPON Optical Network Unit
+                   aluGponPhysicalUni (271), -- GPON physical User to Network interface
+                   vmwareNicTeam (272) -- VMware NIC Team
                    }
 
 IANAtunnelType ::= TEXTUAL-CONVENTION
diff --git a/mibs/Makefile.in b/mibs/Makefile.in
index ea97e67..0d8e71f 100644
--- a/mibs/Makefile.in
+++ b/mibs/Makefile.in
@@ -36,11 +36,11 @@
 	HOST-RESOURCES-MIB.txt HOST-RESOURCES-TYPES.txt \
 	RMON-MIB.txt \
 	IPV6-TC.txt IPV6-MIB.txt IPV6-ICMP-MIB.txt IPV6-TCP-MIB.txt \
-	IPV6-UDP-MIB.txt \
+	IPV6-UDP-MIB.txt IPV6-FLOW-LABEL-MIB.txt TUNNEL-MIB.txt \
 	DISMAN-EVENT-MIB.txt DISMAN-SCRIPT-MIB.txt DISMAN-SCHEDULE-MIB.txt \
 	NOTIFICATION-LOG-MIB.txt SNMP-USM-AES-MIB.txt \
 	SNMP-USM-DH-OBJECTS-MIB.txt \
-	SCTP-MIB.txt
+	SCTP-MIB.txt BRIDGE-MIB.txt
 
 NETSNMPMIBS = NET-SNMP-TC.txt NET-SNMP-MIB.txt NET-SNMP-AGENT-MIB.txt \
 	NET-SNMP-EXAMPLES-MIB.txt NET-SNMP-EXTEND-MIB.txt NET-SNMP-PASS-MIB.txt
diff --git a/mibs/Makefile.mib b/mibs/Makefile.mib
index e5871f1..6d31242 100644
--- a/mibs/Makefile.mib
+++ b/mibs/Makefile.mib
@@ -15,6 +15,7 @@
 	SNMP-VIEW-BASED-ACM-MIB.txt SNMP-COMMUNITY-MIB.txt \
 	SNMP-TARGET-MIB.txt SNMP-NOTIFICATION-MIB.txt SNMP-PROXY-MIB.txt \
 	SNMP-USM-DH-OBJECTS-MIB.txt SNMP-USM-AES-MIB.txt \
+	SNMP-TLS-TM-MIB.txt \
 	AGENTX-MIB.txt SMUX-MIB.txt \
 	DISMAN-SCRIPT-MIB.txt DISMAN-SCHEDULE-MIB.txt \
 	DISMAN-PING-MIB.txt DISMAN-TRACEROUTE-MIB.txt \
@@ -32,7 +33,7 @@
 	TUNNEL-MIB.txt \
 	TRANSPORT-ADDRESS-MIB.txt \
 	RFC1155-SMI.txt RFC1213-MIB.txt\
-	SCTP-MIB.txt
+	SCTP-MIB.txt BRIDGE-MIB.txt
 
 MIBDEPS = Makefile.mib mibfetch smistrip
 
@@ -74,6 +75,9 @@
 SNMP-USM-AES-MIB.txt:	$(MIBDEPS)
 	./mibfetch $(RFCHOST) $(RFCDIR) 3826
 
+SNMP-TLS-TM-MIB.txt:	$(MIBDEPS)
+	./mibfetch $(RFCHOST) $(RFCDIR) 6353
+
 SNMP-USM-DH-OBJECTS-MIB.txt:	$(MIBDEPS)
 	./mibfetch $(RFCHOST) $(RFCDIR) 2786
 
@@ -197,6 +201,9 @@
 SCTP-MIB.txt:	$(MIBDEPS)
 	./mibfetch $(RFCHOST) $(RFCDIR) 3873
 
+BRIDGE-MIB.txt:	$(MIBDEPS)
+	./mibfetch $(RFCHOST) $(RFCDIR) 4188
+
 ianamibs:	ianalist
 	[ -d $(ALLDIR) ] || mkdir $(ALLDIR)
 	cat ianalist | while read file mibs; \
diff --git a/mibs/NET-SNMP-TC.txt b/mibs/NET-SNMP-TC.txt
index b3d76a9..46f7302 100644
--- a/mibs/NET-SNMP-TC.txt
+++ b/mibs/NET-SNMP-TC.txt
@@ -123,5 +123,6 @@
 netSnmpAliasDomain	OBJECT IDENTIFIER ::= { netSnmpDomains 7 }
 netSnmpDTLSUDPDomain	OBJECT IDENTIFIER ::= { netSnmpDomains 8 }
 netSnmpDTLSSCTPDomain	OBJECT IDENTIFIER ::= { netSnmpDomains 9 }
+netSnmpTLSTCPDomain	OBJECT IDENTIFIER ::= { netSnmpDomains 10 }
 
 END
diff --git a/mibs/SNMP-TLS-TM-MIB.txt b/mibs/SNMP-TLS-TM-MIB.txt
new file mode 100644
index 0000000..848dff1
--- /dev/null
+++ b/mibs/SNMP-TLS-TM-MIB.txt
@@ -0,0 +1,1065 @@
+SNMP-TLS-TM-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE,
+    OBJECT-IDENTITY, mib-2, snmpDomains,
+    Counter32, Unsigned32, Gauge32, NOTIFICATION-TYPE
+      FROM SNMPv2-SMI                 -- RFC 2578 or any update thereof
+    TEXTUAL-CONVENTION, TimeStamp, RowStatus, StorageType,
+    AutonomousType
+      FROM SNMPv2-TC                  -- RFC 2579 or any update thereof
+    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
+      FROM SNMPv2-CONF                -- RFC 2580 or any update thereof
+    SnmpAdminString
+      FROM SNMP-FRAMEWORK-MIB         -- RFC 3411 or any update thereof
+    snmpTargetParamsName, snmpTargetAddrName
+      FROM SNMP-TARGET-MIB            -- RFC 3413 or any update thereof
+    ;
+
+snmpTlstmMIB MODULE-IDENTITY
+    LAST-UPDATED "201107190000Z"
+
+    ORGANIZATION "ISMS Working Group"
+    CONTACT-INFO "WG-EMail:   isms@lists.ietf.org
+                  Subscribe:  isms-request@lists.ietf.org
+
+                  Chairs:
+                     Juergen Schoenwaelder
+                     Jacobs University Bremen
+                     Campus Ring 1
+                     28725 Bremen
+                     Germany
+                     +49 421 200-3587
+                     j.schoenwaelder@jacobs-university.de
+
+                     Russ Mundy
+                     SPARTA, Inc.
+                     7110 Samuel Morse Drive
+                     Columbia, MD  21046
+                     USA
+
+                  Editor:
+                     Wes Hardaker
+                     SPARTA, Inc.
+                     P.O. Box 382
+                     Davis, CA  95617
+                     USA
+                     ietf@hardakers.net
+                  "
+    DESCRIPTION  "
+        The TLS Transport Model MIB
+
+        Copyright (c) 2010-2011 IETF Trust and the persons identified
+        as authors of the code.  All rights reserved.
+
+        Redistribution and use in source and binary forms, with or
+        without modification, is permitted pursuant to, and subject
+        to the license terms contained in, the Simplified BSD License
+        set forth in Section 4.c of the IETF Trust's Legal Provisions
+        Relating to IETF Documents
+        (http://trustee.ietf.org/license-info)."
+
+       REVISION     "201107190000Z"
+       DESCRIPTION  "This version of this MIB module is part of
+                     RFC 6353; see the RFC itself for full legal
+                     notices.  The only change was to introduce
+                     new wording to reflect require changes for
+                     IDNA addresses in the SnmpTLSAddress TC."
+
+       REVISION     "201005070000Z"
+       DESCRIPTION  "This version of this MIB module is part of
+                     RFC 5953; see the RFC itself for full legal
+                     notices."
+    ::= { mib-2 198 }
+
+-- ************************************************
+-- subtrees of the SNMP-TLS-TM-MIB
+-- ************************************************
+
+snmpTlstmNotifications OBJECT IDENTIFIER ::= { snmpTlstmMIB 0 }
+snmpTlstmIdentities    OBJECT IDENTIFIER ::= { snmpTlstmMIB 1 }
+snmpTlstmObjects       OBJECT IDENTIFIER ::= { snmpTlstmMIB 2 }
+snmpTlstmConformance   OBJECT IDENTIFIER ::= { snmpTlstmMIB 3 }
+
+-- ************************************************
+-- snmpTlstmObjects - Objects
+-- ************************************************
+
+snmpTLSTCPDomain OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The SNMP over TLS via TCP transport domain.  The
+        corresponding transport address is of type SnmpTLSAddress.
+
+        The securityName prefix to be associated with the
+        snmpTLSTCPDomain is 'tls'.  This prefix may be used by
+        security models or other components to identify which secure
+        transport infrastructure authenticated a securityName."
+    REFERENCE
+      "RFC 2579: Textual Conventions for SMIv2"
+    ::= { snmpDomains 8 }
+
+snmpDTLSUDPDomain OBJECT-IDENTITY
+    STATUS      current
+    DESCRIPTION
+        "The SNMP over DTLS via UDP transport domain.  The
+        corresponding transport address is of type SnmpTLSAddress.
+
+        The securityName prefix to be associated with the
+        snmpDTLSUDPDomain is 'dtls'.  This prefix may be used by
+        security models or other components to identify which secure
+        transport infrastructure authenticated a securityName."
+    REFERENCE
+      "RFC 2579: Textual Conventions for SMIv2"
+    ::= { snmpDomains 9 }
+
+SnmpTLSAddress ::= TEXTUAL-CONVENTION
+    DISPLAY-HINT "1a"
+    STATUS       current
+    DESCRIPTION
+        "Represents an IPv4 address, an IPv6 address, or a
+         US-ASCII-encoded hostname and port number.
+
+        An IPv4 address must be in dotted decimal format followed by a
+        colon ':' (US-ASCII character 0x3A) and a decimal port number
+        in US-ASCII.
+
+        An IPv6 address must be a colon-separated format (as described
+        in RFC 5952), surrounded by square brackets ('[', US-ASCII
+        character 0x5B, and ']', US-ASCII character 0x5D), followed by
+        a colon ':' (US-ASCII character 0x3A) and a decimal port number
+        in US-ASCII.
+
+        A hostname is always in US-ASCII (as per RFC 1123);
+        internationalized hostnames are encoded as A-labels as specified
+        in  RFC 5890.  The hostname is followed by a
+        colon ':' (US-ASCII character 0x3A) and a decimal port number
+        in US-ASCII.  The name SHOULD be fully qualified whenever
+        possible.
+
+        Values of this textual convention may not be directly usable
+        as transport-layer addressing information, and may require
+        run-time resolution.  As such, applications that write them
+        must be prepared for handling errors if such values are not
+        supported, or cannot be resolved (if resolution occurs at the
+        time of the management operation).
+
+        The DESCRIPTION clause of TransportAddress objects that may
+        have SnmpTLSAddress values must fully describe how (and
+        when) such names are to be resolved to IP addresses and vice
+        versa.
+
+        This textual convention SHOULD NOT be used directly in object
+        definitions since it restricts addresses to a specific
+        format.  However, if it is used, it MAY be used either on its
+        own or in conjunction with TransportAddressType or
+        TransportDomain as a pair.
+
+        When this textual convention is used as a syntax of an index
+        object, there may be issues with the limit of 128
+        sub-identifiers specified in SMIv2 (STD 58).  It is RECOMMENDED
+        that all MIB documents using this textual convention make
+        explicit any limitations on index component lengths that
+        management software must observe.  This may be done either by
+
+        including SIZE constraints on the index components or by
+        specifying applicable constraints in the conceptual row
+        DESCRIPTION clause or in the surrounding documentation."
+    REFERENCE
+      "RFC 1123: Requirements for Internet Hosts - Application and
+                 Support
+       RFC 5890: Internationalized Domain Names for Applications (IDNA):
+                 Definitions and Document Framework
+       RFC 5952: A Recommendation for IPv6 Address Text Representation
+      "
+    SYNTAX       OCTET STRING (SIZE (1..255))
+
+SnmpTLSFingerprint ::= TEXTUAL-CONVENTION
+    DISPLAY-HINT "1x:1x"
+    STATUS       current
+    DESCRIPTION
+       "A fingerprint value that can be used to uniquely reference
+       other data of potentially arbitrary length.
+
+       An SnmpTLSFingerprint value is composed of a 1-octet hashing
+       algorithm identifier followed by the fingerprint value.  The
+       octet value encoded is taken from the IANA TLS HashAlgorithm
+       Registry (RFC 5246).  The remaining octets are filled using the
+       results of the hashing algorithm.
+
+       This TEXTUAL-CONVENTION allows for a zero-length (blank)
+       SnmpTLSFingerprint value for use in tables where the
+       fingerprint value may be optional.  MIB definitions or
+       implementations may refuse to accept a zero-length value as
+       appropriate."
+       REFERENCE "RFC 5246: The Transport Layer
+                  Security (TLS) Protocol Version 1.2
+                  http://www.iana.org/assignments/tls-parameters/
+       "
+    SYNTAX OCTET STRING (SIZE (0..255))
+
+-- Identities for use in the snmpTlstmCertToTSNTable
+
+snmpTlstmCertToTSNMIdentities OBJECT IDENTIFIER
+    ::= { snmpTlstmIdentities 1 }
+
+snmpTlstmCertSpecified OBJECT-IDENTITY
+    STATUS        current
+    DESCRIPTION  "Directly specifies the tmSecurityName to be used for
+                  this certificate.  The value of the tmSecurityName
+                  to use is specified in the snmpTlstmCertToTSNData
+                  column.  The snmpTlstmCertToTSNData column must
+                  contain a non-zero length SnmpAdminString compliant
+
+                  value or the mapping described in this row must be
+                  considered a failure."
+    ::= { snmpTlstmCertToTSNMIdentities 1 }
+
+snmpTlstmCertSANRFC822Name OBJECT-IDENTITY
+    STATUS        current
+    DESCRIPTION  "Maps a subjectAltName's rfc822Name to a
+                  tmSecurityName.  The local part of the rfc822Name is
+                  passed unaltered but the host-part of the name must
+                  be passed in lowercase.  This mapping results in a
+                  1:1 correspondence between equivalent subjectAltName
+                  rfc822Name values and tmSecurityName values except
+                  that the host-part of the name MUST be passed in
+                  lowercase.
+
+                  Example rfc822Name Field:  FooBar@Example.COM
+                  is mapped to tmSecurityName: FooBar@example.com."
+    ::= { snmpTlstmCertToTSNMIdentities 2 }
+
+snmpTlstmCertSANDNSName OBJECT-IDENTITY
+    STATUS        current
+    DESCRIPTION  "Maps a subjectAltName's dNSName to a
+                  tmSecurityName after first converting it to all
+                  lowercase (RFC 5280 does not specify converting to
+                  lowercase so this involves an extra step).  This
+                  mapping results in a 1:1 correspondence between
+                  subjectAltName dNSName values and the tmSecurityName
+                  values."
+    REFERENCE "RFC 5280 - Internet X.509 Public Key Infrastructure
+                         Certificate and Certificate Revocation
+                         List (CRL) Profile."
+    ::= { snmpTlstmCertToTSNMIdentities 3 }
+
+snmpTlstmCertSANIpAddress OBJECT-IDENTITY
+    STATUS        current
+    DESCRIPTION  "Maps a subjectAltName's iPAddress to a
+                  tmSecurityName by transforming the binary encoded
+                  address as follows:
+
+                  1) for IPv4, the value is converted into a
+                     decimal-dotted quad address (e.g., '192.0.2.1').
+
+                  2) for IPv6 addresses, the value is converted into a
+                     32-character all lowercase hexadecimal string
+                     without any colon separators.
+
+                  This mapping results in a 1:1 correspondence between
+                  subjectAltName iPAddress values and the
+                  tmSecurityName values.
+
+                  The resulting length of an encoded IPv6 address is
+                  the maximum length supported by the View-Based
+                  Access Control Model (VACM).  Using both the
+                  Transport Security Model's support for transport
+                  prefixes (see the SNMP-TSM-MIB's
+                  snmpTsmConfigurationUsePrefix object for details)
+                  will result in securityName lengths that exceed what
+                  VACM can handle."
+    ::= { snmpTlstmCertToTSNMIdentities 4 }
+
+snmpTlstmCertSANAny OBJECT-IDENTITY
+    STATUS        current
+    DESCRIPTION  "Maps any of the following fields using the
+                  corresponding mapping algorithms:
+
+                  |------------+----------------------------|
+                  | Type       | Algorithm                  |
+                  |------------+----------------------------|
+                  | rfc822Name | snmpTlstmCertSANRFC822Name |
+                  | dNSName    | snmpTlstmCertSANDNSName    |
+                  | iPAddress  | snmpTlstmCertSANIpAddress  |
+                  |------------+----------------------------|
+
+                  The first matching subjectAltName value found in the
+                  certificate of the above types MUST be used when
+                  deriving the tmSecurityName.  The mapping algorithm
+                  specified in the 'Algorithm' column MUST be used to
+                  derive the tmSecurityName.
+
+                  This mapping results in a 1:1 correspondence between
+                  subjectAltName values and tmSecurityName values.  The
+                  three sub-mapping algorithms produced by this
+                  combined algorithm cannot produce conflicting
+                  results between themselves."
+    ::= { snmpTlstmCertToTSNMIdentities 5 }
+
+snmpTlstmCertCommonName OBJECT-IDENTITY
+    STATUS        current
+    DESCRIPTION  "Maps a certificate's CommonName to a tmSecurityName
+                  after converting it to a UTF-8 encoding.  The usage
+                  of CommonNames is deprecated and users are
+                  encouraged to use subjectAltName mapping methods
+                  instead.  This mapping results in a 1:1
+
+                  correspondence between certificate CommonName values
+                  and tmSecurityName values."
+    ::= { snmpTlstmCertToTSNMIdentities 6 }
+
+-- The snmpTlstmSession Group
+
+snmpTlstmSession           OBJECT IDENTIFIER ::= { snmpTlstmObjects 1 }
+
+snmpTlstmSessionOpens  OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION
+       "The number of times an openSession() request has been executed
+       as a (D)TLS client, regardless of whether it succeeded or
+       failed."
+    ::= { snmpTlstmSession 1 }
+
+snmpTlstmSessionClientCloses  OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION
+        "The number of times a closeSession() request has been
+        executed as a (D)TLS client, regardless of whether it
+        succeeded or failed."
+    ::= { snmpTlstmSession 2 }
+
+snmpTlstmSessionOpenErrors  OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION
+        "The number of times an openSession() request failed to open a
+        session as a (D)TLS client, for any reason."
+    ::= { snmpTlstmSession 3 }
+
+snmpTlstmSessionAccepts  OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION
+       "The number of times a (D)TLS server has accepted a new
+       connection from a client and has received at least one SNMP
+       message through it."
+    ::= { snmpTlstmSession 4 }
+
+snmpTlstmSessionServerCloses  OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION
+        "The number of times a closeSession() request has been
+        executed as a (D)TLS server, regardless of whether it
+        succeeded or failed."
+    ::= { snmpTlstmSession 5 }
+
+snmpTlstmSessionNoSessions  OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION
+        "The number of times an outgoing message was dropped because
+        the session associated with the passed tmStateReference was no
+        longer (or was never) available."
+    ::= { snmpTlstmSession 6 }
+
+snmpTlstmSessionInvalidClientCertificates OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION
+        "The number of times an incoming session was not established
+        on a (D)TLS server because the presented client certificate
+        was invalid.  Reasons for invalidation include, but are not
+        limited to, cryptographic validation failures or lack of a
+        suitable mapping row in the snmpTlstmCertToTSNTable."
+    ::= { snmpTlstmSession 7 }
+
+snmpTlstmSessionUnknownServerCertificate OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION
+        "The number of times an outgoing session was not established
+         on a (D)TLS client because the server certificate presented
+         by an SNMP over (D)TLS server was invalid because no
+         configured fingerprint or Certification Authority (CA) was
+         acceptable to validate it.
+         This may result because there was no entry in the
+         snmpTlstmAddrTable or because no path could be found to a
+         known CA."
+    ::= { snmpTlstmSession 8 }
+
+snmpTlstmSessionInvalidServerCertificates OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION
+        "The number of times an outgoing session was not established
+         on a (D)TLS client because the server certificate presented
+         by an SNMP over (D)TLS server could not be validated even if
+         the fingerprint or expected validation path was known.  That
+         is, a cryptographic validation error occurred during
+         certificate validation processing.
+
+        Reasons for invalidation include, but are not
+        limited to, cryptographic validation failures."
+    ::= { snmpTlstmSession 9 }
+
+snmpTlstmSessionInvalidCaches OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION
+        "The number of outgoing messages dropped because the
+        tmStateReference referred to an invalid cache."
+    ::= { snmpTlstmSession 10 }
+
+-- Configuration Objects
+
+snmpTlstmConfig             OBJECT IDENTIFIER ::= { snmpTlstmObjects 2 }
+
+-- Certificate mapping
+
+snmpTlstmCertificateMapping OBJECT IDENTIFIER ::= { snmpTlstmConfig 1 }
+
+snmpTlstmCertToTSNCount OBJECT-TYPE
+    SYNTAX      Gauge32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "A count of the number of entries in the
+        snmpTlstmCertToTSNTable."
+    ::= { snmpTlstmCertificateMapping 1 }
+
+snmpTlstmCertToTSNTableLastChanged OBJECT-TYPE
+    SYNTAX      TimeStamp
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The value of sysUpTime.0 when the snmpTlstmCertToTSNTable was
+        last modified through any means, or 0 if it has not been
+        modified since the command responder was started."
+    ::= { snmpTlstmCertificateMapping 2 }
+
+snmpTlstmCertToTSNTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF SnmpTlstmCertToTSNEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "This table is used by a (D)TLS server to map the (D)TLS
+        client's presented X.509 certificate to a tmSecurityName.
+
+        On an incoming (D)TLS/SNMP connection, the client's presented
+        certificate must either be validated based on an established
+        trust anchor, or it must directly match a fingerprint in this
+        table.  This table does not provide any mechanisms for
+        configuring the trust anchors; the transfer of any needed
+        trusted certificates for path validation is expected to occur
+        through an out-of-band transfer.
+
+        Once the certificate has been found acceptable (either by path
+        validation or directly matching a fingerprint in this table),
+        this table is consulted to determine the appropriate
+        tmSecurityName to identify with the remote connection.  This
+        is done by considering each active row from this table in
+        prioritized order according to its snmpTlstmCertToTSNID value.
+        Each row's snmpTlstmCertToTSNFingerprint value determines
+        whether the row is a match for the incoming connection:
+
+            1) If the row's snmpTlstmCertToTSNFingerprint value
+               identifies the presented certificate, then consider the
+               row as a successful match.
+
+            2) If the row's snmpTlstmCertToTSNFingerprint value
+               identifies a locally held copy of a trusted CA
+               certificate and that CA certificate was used to
+               validate the path to the presented certificate, then
+               consider the row as a successful match.
+
+        Once a matching row has been found, the
+        snmpTlstmCertToTSNMapType value can be used to determine how
+        the tmSecurityName to associate with the session should be
+        determined.  See the snmpTlstmCertToTSNMapType column's
+        DESCRIPTION for details on determining the tmSecurityName
+        value.  If it is impossible to determine a tmSecurityName from
+        the row's data combined with the data presented in the
+
+        certificate, then additional rows MUST be searched looking for
+        another potential match.  If a resulting tmSecurityName mapped
+        from a given row is not compatible with the needed
+        requirements of a tmSecurityName (e.g., VACM imposes a
+        32-octet-maximum length and the certificate derived
+        securityName could be longer), then it must be considered an
+        invalid match and additional rows MUST be searched looking for
+        another potential match.
+
+        If no matching and valid row can be found, the connection MUST
+        be closed and SNMP messages MUST NOT be accepted over it.
+
+        Missing values of snmpTlstmCertToTSNID are acceptable and
+        implementations should continue to the next highest numbered
+        row.  It is recommended that administrators skip index values
+        to leave room for the insertion of future rows (for example,
+        use values of 10 and 20 when creating initial rows).
+
+        Users are encouraged to make use of certificates with
+        subjectAltName fields that can be used as tmSecurityNames so
+        that a single root CA certificate can allow all child
+        certificate's subjectAltName to map directly to a
+        tmSecurityName via a 1:1 transformation.  However, this table
+        is flexible to allow for situations where existing deployed
+        certificate infrastructures do not provide adequate
+        subjectAltName values for use as tmSecurityNames.
+        Certificates may also be mapped to tmSecurityNames using the
+        CommonName portion of the Subject field.  However, the usage
+        of the CommonName field is deprecated and thus this usage is
+        NOT RECOMMENDED.  Direct mapping from each individual
+        certificate fingerprint to a tmSecurityName is also possible
+        but requires one entry in the table per tmSecurityName and
+        requires more management operations to completely configure a
+        device."
+    ::= { snmpTlstmCertificateMapping 3 }
+
+snmpTlstmCertToTSNEntry OBJECT-TYPE
+    SYNTAX      SnmpTlstmCertToTSNEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "A row in the snmpTlstmCertToTSNTable that specifies a mapping
+        for an incoming (D)TLS certificate to a tmSecurityName to use
+        for a connection."
+    INDEX   { snmpTlstmCertToTSNID }
+    ::= { snmpTlstmCertToTSNTable 1 }
+
+SnmpTlstmCertToTSNEntry ::= SEQUENCE {
+    snmpTlstmCertToTSNID           Unsigned32,
+    snmpTlstmCertToTSNFingerprint  SnmpTLSFingerprint,
+    snmpTlstmCertToTSNMapType      AutonomousType,
+    snmpTlstmCertToTSNData         OCTET STRING,
+    snmpTlstmCertToTSNStorageType  StorageType,
+    snmpTlstmCertToTSNRowStatus    RowStatus
+}
+
+snmpTlstmCertToTSNID OBJECT-TYPE
+    SYNTAX      Unsigned32 (1..4294967295)
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "A unique, prioritized index for the given entry.  Lower
+        numbers indicate a higher priority."
+    ::= { snmpTlstmCertToTSNEntry 1 }
+
+snmpTlstmCertToTSNFingerprint OBJECT-TYPE
+    SYNTAX      SnmpTLSFingerprint (SIZE(1..255))
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "A cryptographic hash of an X.509 certificate.  The results of
+        a successful matching fingerprint to either the trusted CA in
+        the certificate validation path or to the certificate itself
+        is dictated by the snmpTlstmCertToTSNMapType column."
+    ::= { snmpTlstmCertToTSNEntry 2 }
+
+snmpTlstmCertToTSNMapType OBJECT-TYPE
+    SYNTAX      AutonomousType
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "Specifies the mapping type for deriving a tmSecurityName from
+        a certificate.  Details for mapping of a particular type SHALL
+        be specified in the DESCRIPTION clause of the OBJECT-IDENTITY
+        that describes the mapping.  If a mapping succeeds it will
+        return a tmSecurityName for use by the TLSTM model and
+        processing stops.
+
+        If the resulting mapped value is not compatible with the
+        needed requirements of a tmSecurityName (e.g., VACM imposes a
+        32-octet-maximum length and the certificate derived
+        securityName could be longer), then future rows MUST be
+        searched for additional snmpTlstmCertToTSNFingerprint matches
+        to look for a mapping that succeeds.
+
+        Suitable values for assigning to this object that are defined
+        within the SNMP-TLS-TM-MIB can be found in the
+        snmpTlstmCertToTSNMIdentities portion of the MIB tree."
+    DEFVAL { snmpTlstmCertSpecified }
+    ::= { snmpTlstmCertToTSNEntry 3 }
+
+snmpTlstmCertToTSNData OBJECT-TYPE
+    SYNTAX      OCTET STRING (SIZE(0..1024))
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "Auxiliary data used as optional configuration information for
+        a given mapping specified by the snmpTlstmCertToTSNMapType
+        column.  Only some mapping systems will make use of this
+        column.  The value in this column MUST be ignored for any
+        mapping type that does not require data present in this
+        column."
+    DEFVAL { "" }
+    ::= { snmpTlstmCertToTSNEntry 4 }
+
+snmpTlstmCertToTSNStorageType OBJECT-TYPE
+    SYNTAX       StorageType
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION
+        "The storage type for this conceptual row.  Conceptual rows
+        having the value 'permanent' need not allow write-access to
+        any columnar objects in the row."
+    DEFVAL      { nonVolatile }
+    ::= { snmpTlstmCertToTSNEntry 5 }
+
+snmpTlstmCertToTSNRowStatus OBJECT-TYPE
+    SYNTAX      RowStatus
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The status of this conceptual row.  This object may be used
+        to create or remove rows from this table.
+
+        To create a row in this table, an administrator must set this
+        object to either createAndGo(4) or createAndWait(5).
+
+        Until instances of all corresponding columns are appropriately
+        configured, the value of the corresponding instance of the
+        snmpTlstmParamsRowStatus column is notReady(3).
+
+        In particular, a newly created row cannot be made active until
+        the corresponding snmpTlstmCertToTSNFingerprint,
+        snmpTlstmCertToTSNMapType, and snmpTlstmCertToTSNData columns
+        have been set.
+
+        The following objects may not be modified while the
+        value of this object is active(1):
+            - snmpTlstmCertToTSNFingerprint
+            - snmpTlstmCertToTSNMapType
+            - snmpTlstmCertToTSNData
+        An attempt to set these objects while the value of
+        snmpTlstmParamsRowStatus is active(1) will result in
+        an inconsistentValue error."
+    ::= { snmpTlstmCertToTSNEntry 6 }
+
+-- Maps tmSecurityNames to certificates for use by the SNMP-TARGET-MIB
+
+snmpTlstmParamsCount OBJECT-TYPE
+    SYNTAX      Gauge32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "A count of the number of entries in the snmpTlstmParamsTable."
+    ::= { snmpTlstmCertificateMapping 4 }
+
+snmpTlstmParamsTableLastChanged OBJECT-TYPE
+    SYNTAX      TimeStamp
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The value of sysUpTime.0 when the snmpTlstmParamsTable
+        was last modified through any means, or 0 if it has not been
+        modified since the command responder was started."
+    ::= { snmpTlstmCertificateMapping 5 }
+
+snmpTlstmParamsTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF SnmpTlstmParamsEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "This table is used by a (D)TLS client when a (D)TLS
+        connection is being set up using an entry in the
+        SNMP-TARGET-MIB.  It extends the SNMP-TARGET-MIB's
+        snmpTargetParamsTable with a fingerprint of a certificate to
+        use when establishing such a (D)TLS connection."
+    ::= { snmpTlstmCertificateMapping 6 }
+
+snmpTlstmParamsEntry OBJECT-TYPE
+    SYNTAX      SnmpTlstmParamsEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "A conceptual row containing a fingerprint hash of a locally
+        held certificate for a given snmpTargetParamsEntry.  The
+        values in this row should be ignored if the connection that
+        needs to be established, as indicated by the SNMP-TARGET-MIB
+        infrastructure, is not a certificate and (D)TLS based
+        connection.  The connection SHOULD NOT be established if the
+        certificate fingerprint stored in this entry does not point to
+        a valid locally held certificate or if it points to an
+        unusable certificate (such as might happen when the
+        certificate's expiration date has been reached)."
+    INDEX    { IMPLIED snmpTargetParamsName }
+    ::= { snmpTlstmParamsTable 1 }
+
+SnmpTlstmParamsEntry ::= SEQUENCE {
+    snmpTlstmParamsClientFingerprint SnmpTLSFingerprint,
+    snmpTlstmParamsStorageType       StorageType,
+    snmpTlstmParamsRowStatus         RowStatus
+}
+
+snmpTlstmParamsClientFingerprint OBJECT-TYPE
+    SYNTAX      SnmpTLSFingerprint
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "This object stores the hash of the public portion of a
+        locally held X.509 certificate.  The X.509 certificate, its
+        public key, and the corresponding private key will be used
+        when initiating a (D)TLS connection as a (D)TLS client."
+    ::= { snmpTlstmParamsEntry 1 }
+
+snmpTlstmParamsStorageType OBJECT-TYPE
+    SYNTAX       StorageType
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION
+        "The storage type for this conceptual row.  Conceptual rows
+        having the value 'permanent' need not allow write-access to
+        any columnar objects in the row."
+    DEFVAL      { nonVolatile }
+    ::= { snmpTlstmParamsEntry 2 }
+
+snmpTlstmParamsRowStatus OBJECT-TYPE
+    SYNTAX      RowStatus
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The status of this conceptual row.  This object may be used
+        to create or remove rows from this table.
+
+        To create a row in this table, an administrator must set this
+        object to either createAndGo(4) or createAndWait(5).
+
+        Until instances of all corresponding columns are appropriately
+        configured, the value of the corresponding instance of the
+        snmpTlstmParamsRowStatus column is notReady(3).
+
+        In particular, a newly created row cannot be made active until
+        the corresponding snmpTlstmParamsClientFingerprint column has
+        been set.
+
+        The snmpTlstmParamsClientFingerprint object may not be modified
+        while the value of this object is active(1).
+
+        An attempt to set these objects while the value of
+        snmpTlstmParamsRowStatus is active(1) will result in
+        an inconsistentValue error."
+    ::= { snmpTlstmParamsEntry 3 }
+
+snmpTlstmAddrCount OBJECT-TYPE
+    SYNTAX      Gauge32
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "A count of the number of entries in the snmpTlstmAddrTable."
+    ::= { snmpTlstmCertificateMapping 7 }
+
+snmpTlstmAddrTableLastChanged OBJECT-TYPE
+    SYNTAX      TimeStamp
+    MAX-ACCESS  read-only
+    STATUS      current
+    DESCRIPTION
+        "The value of sysUpTime.0 when the snmpTlstmAddrTable
+        was last modified through any means, or 0 if it has not been
+        modified since the command responder was started."
+    ::= { snmpTlstmCertificateMapping 8 }
+
+snmpTlstmAddrTable OBJECT-TYPE
+    SYNTAX      SEQUENCE OF SnmpTlstmAddrEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "This table is used by a (D)TLS client when a (D)TLS
+        connection is being set up using an entry in the
+        SNMP-TARGET-MIB.  It extends the SNMP-TARGET-MIB's
+
+        snmpTargetAddrTable so that the client can verify that the
+        correct server has been reached.  This verification can use
+        either a certificate fingerprint, or an identity
+        authenticated via certification path validation.
+
+        If there is an active row in this table corresponding to the
+        entry in the SNMP-TARGET-MIB that was used to establish the
+        connection, and the row's snmpTlstmAddrServerFingerprint
+        column has non-empty value, then the server's presented
+        certificate is compared with the
+        snmpTlstmAddrServerFingerprint value (and the
+        snmpTlstmAddrServerIdentity column is ignored).  If the
+        fingerprint matches, the verification has succeeded.  If the
+        fingerprint does not match, then the connection MUST be
+        closed.
+
+        If the server's presented certificate has passed
+        certification path validation [RFC5280] to a configured
+        trust anchor, and an active row exists with a zero-length
+        snmpTlstmAddrServerFingerprint value, then the
+        snmpTlstmAddrServerIdentity column contains the expected
+        host name.  This expected host name is then compared against
+        the server's certificate as follows:
+
+          - Implementations MUST support matching the expected host
+          name against a dNSName in the subjectAltName extension
+          field and MAY support checking the name against the
+          CommonName portion of the subject distinguished name.
+
+          - The '*' (ASCII 0x2a) wildcard character is allowed in the
+          dNSName of the subjectAltName extension (and in common
+          name, if used to store the host name), but only as the
+          left-most (least significant) DNS label in that value.
+          This wildcard matches any left-most DNS label in the
+          server name.  That is, the subject *.example.com matches
+          the server names a.example.com and b.example.com, but does
+          not match example.com or a.b.example.com.  Implementations
+          MUST support wildcards in certificates as specified above,
+          but MAY provide a configuration option to disable them.
+
+          - If the locally configured name is an internationalized
+          domain name, conforming implementations MUST convert it to
+          the ASCII Compatible Encoding (ACE) format for performing
+          comparisons, as specified in Section 7 of [RFC5280].
+
+        If the expected host name fails these conditions then the
+        connection MUST be closed.
+
+        If there is no row in this table corresponding to the entry
+        in the SNMP-TARGET-MIB and the server can be authorized by
+        another, implementation-dependent means, then the connection
+        MAY still proceed."
+    ::= { snmpTlstmCertificateMapping 9 }
+
+snmpTlstmAddrEntry OBJECT-TYPE
+    SYNTAX      SnmpTlstmAddrEntry
+    MAX-ACCESS  not-accessible
+    STATUS      current
+    DESCRIPTION
+        "A conceptual row containing a copy of a certificate's
+        fingerprint for a given snmpTargetAddrEntry.  The values in
+        this row should be ignored if the connection that needs to be
+        established, as indicated by the SNMP-TARGET-MIB
+        infrastructure, is not a (D)TLS based connection.  If an
+        snmpTlstmAddrEntry exists for a given snmpTargetAddrEntry, then
+        the presented server certificate MUST match or the connection
+        MUST NOT be established.  If a row in this table does not
+        exist to match an snmpTargetAddrEntry row, then the connection
+        SHOULD still proceed if some other certificate validation path
+        algorithm (e.g., RFC 5280) can be used."
+    INDEX    { IMPLIED snmpTargetAddrName }
+    ::= { snmpTlstmAddrTable 1 }
+
+SnmpTlstmAddrEntry ::= SEQUENCE {
+    snmpTlstmAddrServerFingerprint    SnmpTLSFingerprint,
+    snmpTlstmAddrServerIdentity       SnmpAdminString,
+    snmpTlstmAddrStorageType          StorageType,
+    snmpTlstmAddrRowStatus            RowStatus
+}
+
+snmpTlstmAddrServerFingerprint OBJECT-TYPE
+    SYNTAX      SnmpTLSFingerprint
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "A cryptographic hash of a public X.509 certificate.  This
+        object should store the hash of the public X.509 certificate
+        that the remote server should present during the (D)TLS
+        connection setup.  The fingerprint of the presented
+        certificate and this hash value MUST match exactly or the
+        connection MUST NOT be established."
+    DEFVAL { "" }
+    ::= { snmpTlstmAddrEntry 1 }
+
+snmpTlstmAddrServerIdentity OBJECT-TYPE
+    SYNTAX      SnmpAdminString
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The reference identity to check against the identity
+        presented by the remote system."
+    DEFVAL { "" }
+    ::= { snmpTlstmAddrEntry 2 }
+
+snmpTlstmAddrStorageType OBJECT-TYPE
+    SYNTAX       StorageType
+    MAX-ACCESS   read-create
+    STATUS       current
+    DESCRIPTION
+        "The storage type for this conceptual row.  Conceptual rows
+        having the value 'permanent' need not allow write-access to
+        any columnar objects in the row."
+    DEFVAL      { nonVolatile }
+    ::= { snmpTlstmAddrEntry 3 }
+
+snmpTlstmAddrRowStatus OBJECT-TYPE
+    SYNTAX      RowStatus
+    MAX-ACCESS  read-create
+    STATUS      current
+    DESCRIPTION
+        "The status of this conceptual row.  This object may be used
+        to create or remove rows from this table.
+
+        To create a row in this table, an administrator must set this
+        object to either createAndGo(4) or createAndWait(5).
+
+        Until instances of all corresponding columns are
+        appropriately configured, the value of the
+        corresponding instance of the snmpTlstmAddrRowStatus
+        column is notReady(3).
+
+        In particular, a newly created row cannot be made active until
+        the corresponding snmpTlstmAddrServerFingerprint column has been
+        set.
+
+        Rows MUST NOT be active if the snmpTlstmAddrServerFingerprint
+        column is blank and the snmpTlstmAddrServerIdentity is set to
+        '*' since this would insecurely accept any presented
+        certificate.
+
+        The snmpTlstmAddrServerFingerprint object may not be modified
+        while the value of this object is active(1).
+
+        An attempt to set these objects while the value of
+        snmpTlstmAddrRowStatus is active(1) will result in
+        an inconsistentValue error."
+    ::= { snmpTlstmAddrEntry 4 }
+
+-- ************************************************
+--  snmpTlstmNotifications - Notifications Information
+-- ************************************************
+
+snmpTlstmServerCertificateUnknown NOTIFICATION-TYPE
+    OBJECTS { snmpTlstmSessionUnknownServerCertificate }
+    STATUS  current
+    DESCRIPTION
+        "Notification that the server certificate presented by an SNMP
+         over (D)TLS server was invalid because no configured
+         fingerprint or CA was acceptable to validate it.  This may be
+         because there was no entry in the snmpTlstmAddrTable or
+         because no path could be found to known Certification
+         Authority.
+
+         To avoid notification loops, this notification MUST NOT be
+         sent to servers that themselves have triggered the
+         notification."
+    ::= { snmpTlstmNotifications 1 }
+
+snmpTlstmServerInvalidCertificate NOTIFICATION-TYPE
+    OBJECTS { snmpTlstmAddrServerFingerprint,
+              snmpTlstmSessionInvalidServerCertificates}
+    STATUS  current
+    DESCRIPTION
+        "Notification that the server certificate presented by an SNMP
+         over (D)TLS server could not be validated even if the
+         fingerprint or expected validation path was known.  That is, a
+         cryptographic validation error occurred during certificate
+         validation processing.
+
+         To avoid notification loops, this notification MUST NOT be
+         sent to servers that themselves have triggered the
+         notification."
+    ::= { snmpTlstmNotifications 2 }
+
+-- ************************************************
+-- snmpTlstmCompliances - Conformance Information
+-- ************************************************
+
+snmpTlstmCompliances OBJECT IDENTIFIER ::= { snmpTlstmConformance 1 }
+
+snmpTlstmGroups OBJECT IDENTIFIER ::= { snmpTlstmConformance 2 }
+
+-- ************************************************
+-- Compliance statements
+-- ************************************************
+
+snmpTlstmCompliance MODULE-COMPLIANCE
+    STATUS      current
+    DESCRIPTION
+        "The compliance statement for SNMP engines that support the
+        SNMP-TLS-TM-MIB"
+    MODULE
+        MANDATORY-GROUPS { snmpTlstmStatsGroup,
+                           snmpTlstmIncomingGroup,
+                           snmpTlstmOutgoingGroup,
+                           snmpTlstmNotificationGroup }
+    ::= { snmpTlstmCompliances 1 }
+
+-- ************************************************
+-- Units of conformance
+-- ************************************************
+snmpTlstmStatsGroup OBJECT-GROUP
+    OBJECTS {
+        snmpTlstmSessionOpens,
+        snmpTlstmSessionClientCloses,
+        snmpTlstmSessionOpenErrors,
+        snmpTlstmSessionAccepts,
+        snmpTlstmSessionServerCloses,
+        snmpTlstmSessionNoSessions,
+        snmpTlstmSessionInvalidClientCertificates,
+        snmpTlstmSessionUnknownServerCertificate,
+        snmpTlstmSessionInvalidServerCertificates,
+        snmpTlstmSessionInvalidCaches
+    }
+    STATUS      current
+    DESCRIPTION
+        "A collection of objects for maintaining
+        statistical information of an SNMP engine that
+        implements the SNMP TLS Transport Model."
+    ::= { snmpTlstmGroups 1 }
+
+snmpTlstmIncomingGroup OBJECT-GROUP
+    OBJECTS {
+        snmpTlstmCertToTSNCount,
+        snmpTlstmCertToTSNTableLastChanged,
+        snmpTlstmCertToTSNFingerprint,
+        snmpTlstmCertToTSNMapType,
+        snmpTlstmCertToTSNData,
+        snmpTlstmCertToTSNStorageType,
+        snmpTlstmCertToTSNRowStatus
+    }
+    STATUS      current
+    DESCRIPTION
+        "A collection of objects for maintaining
+        incoming connection certificate mappings to
+        tmSecurityNames of an SNMP engine that implements the
+        SNMP TLS Transport Model."
+    ::= { snmpTlstmGroups 2 }
+
+snmpTlstmOutgoingGroup OBJECT-GROUP
+    OBJECTS {
+        snmpTlstmParamsCount,
+        snmpTlstmParamsTableLastChanged,
+        snmpTlstmParamsClientFingerprint,
+        snmpTlstmParamsStorageType,
+        snmpTlstmParamsRowStatus,
+        snmpTlstmAddrCount,
+        snmpTlstmAddrTableLastChanged,
+        snmpTlstmAddrServerFingerprint,
+        snmpTlstmAddrServerIdentity,
+        snmpTlstmAddrStorageType,
+        snmpTlstmAddrRowStatus
+    }
+    STATUS      current
+    DESCRIPTION
+        "A collection of objects for maintaining
+        outgoing connection certificates to use when opening
+        connections as a result of SNMP-TARGET-MIB settings."
+    ::= { snmpTlstmGroups 3 }
+
+snmpTlstmNotificationGroup NOTIFICATION-GROUP
+    NOTIFICATIONS {
+        snmpTlstmServerCertificateUnknown,
+        snmpTlstmServerInvalidCertificate
+    }
+    STATUS current
+    DESCRIPTION
+        "Notifications"
+    ::= { snmpTlstmGroups 4 }
+
+END
diff --git a/mibs/SNMP-TSM-MIB.txt b/mibs/SNMP-TSM-MIB.txt
new file mode 100644
index 0000000..4ccf09b
--- /dev/null
+++ b/mibs/SNMP-TSM-MIB.txt
@@ -0,0 +1,234 @@
+SNMP-TSM-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+    MODULE-IDENTITY, OBJECT-TYPE,
+    mib-2, Counter32
+      FROM SNMPv2-SMI -- RFC2578
+    MODULE-COMPLIANCE, OBJECT-GROUP
+      FROM SNMPv2-CONF -- RFC2580
+    TruthValue
+       FROM SNMPv2-TC -- RFC2579
+    ;
+
+snmpTsmMIB MODULE-IDENTITY
+    LAST-UPDATED "200906090000Z"
+    ORGANIZATION "ISMS Working Group"
+    CONTACT-INFO "WG-EMail:   isms@lists.ietf.org
+                  Subscribe:  isms-request@lists.ietf.org
+
+                  Chairs:
+                    Juergen Quittek
+                    NEC Europe Ltd.
+                    Network Laboratories
+                    Kurfuersten-Anlage 36
+                    69115 Heidelberg
+                    Germany
+                    +49 6221 90511-15
+                    quittek@netlab.nec.de
+
+                    Juergen Schoenwaelder
+                    Jacobs University Bremen
+                    Campus Ring 1
+                    28725 Bremen
+                    Germany
+                    +49 421 200-3587
+                    j.schoenwaelder@jacobs-university.de
+
+                  Editor:
+                    David Harrington
+                    Huawei Technologies USA
+                    1700 Alma Dr.
+                    Plano TX 75075
+                    USA
+                    +1 603-436-8634
+                    ietfdbh@comcast.net
+
+                    Wes Hardaker
+                    Cobham Analytic Solutions
+                    P.O. Box 382
+                    Davis, CA  95617
+                    USA
+                    +1 530 792 1913
+                    ietf@hardakers.net
+                 "
+    DESCRIPTION
+       "The Transport Security Model MIB.
+
+        In keeping with the RFC 3411 design decisions to use
+        self-contained documents, the RFC that contains the definition
+        of this MIB module also includes the elements of procedure
+        that are needed for processing the Transport Security Model
+        for SNMP.  These MIB objects SHOULD NOT be modified via other
+        subsystems or models defined in other documents.  This allows
+        the Transport Security Model for SNMP to be designed and
+        documented as independent and self-contained, having no direct
+        impact on other modules, and this allows this module to be
+        upgraded and supplemented as the need arises, and to move
+        along the standards track on different time-lines from other
+        modules.
+
+        Copyright (c) 2009 IETF Trust and the persons
+        identified as authors of the code.  All rights reserved.
+
+        Redistribution and use in source and binary forms, with or
+        without modification, are permitted provided that the
+        following conditions are met:
+
+        - Redistributions of source code must retain the above copyright
+          notice, this list of conditions and the following disclaimer.
+
+        - Redistributions in binary form must reproduce the above
+          copyright notice, this list of conditions and the following
+          disclaimer in the documentation and/or other materials
+          provided with the distribution.
+
+        - Neither the name of Internet Society, IETF or IETF Trust,
+          nor the names of specific contributors, may be used to endorse
+          or promote products derived from this software without
+          specific prior written permission.
+
+        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+        CONTRIBUTORS 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+        INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+        MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+        DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+        CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+        SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+        NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+        LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+        HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+        CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+        OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+        EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+        This version of this MIB module is part of RFC 5591;
+        see the RFC itself for full legal notices."
+
+    REVISION    "200906090000Z"
+    DESCRIPTION "The initial version, published in RFC 5591."
+    ::= { mib-2 190 }
+
+-- ---------------------------------------------------------- --
+-- subtrees in the SNMP-TSM-MIB
+-- ---------------------------------------------------------- --
+
+snmpTsmNotifications OBJECT IDENTIFIER ::= { snmpTsmMIB 0 }
+snmpTsmMIBObjects    OBJECT IDENTIFIER ::= { snmpTsmMIB 1 }
+snmpTsmConformance   OBJECT IDENTIFIER ::= { snmpTsmMIB 2 }
+
+-- -------------------------------------------------------------
+-- Objects
+-- -------------------------------------------------------------
+
+-- Statistics for the Transport Security Model
+
+snmpTsmStats         OBJECT IDENTIFIER ::= { snmpTsmMIBObjects 1 }
+
+snmpTsmInvalidCaches OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "The number of incoming messages dropped because the
+
+                 tmStateReference referred to an invalid cache.
+                "
+    ::= { snmpTsmStats 1 }
+
+snmpTsmInadequateSecurityLevels OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "The number of incoming messages dropped because
+                 the securityLevel asserted by the Transport Model was
+                 less than the securityLevel requested by the
+                 application.
+                "
+    ::= { snmpTsmStats 2 }
+
+snmpTsmUnknownPrefixes OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "The number of messages dropped because
+                 snmpTsmConfigurationUsePrefix was set to true and
+                 there is no known prefix for the specified transport
+                 domain.
+                "
+    ::= { snmpTsmStats 3 }
+
+snmpTsmInvalidPrefixes OBJECT-TYPE
+    SYNTAX       Counter32
+    MAX-ACCESS   read-only
+    STATUS       current
+    DESCRIPTION "The number of messages dropped because
+                 the securityName associated with an outgoing message
+                 did not contain a valid transport domain prefix.
+                "
+    ::= { snmpTsmStats 4 }
+
+-- -------------------------------------------------------------
+-- Configuration
+-- -------------------------------------------------------------
+
+-- Configuration for the Transport Security Model
+
+snmpTsmConfiguration   OBJECT IDENTIFIER ::= { snmpTsmMIBObjects 2 }
+
+snmpTsmConfigurationUsePrefix OBJECT-TYPE
+    SYNTAX      TruthValue
+    MAX-ACCESS  read-write
+    STATUS      current
+    DESCRIPTION "If this object is set to true, then securityNames
+                 passing to and from the application are expected to
+                 contain a transport-domain-specific prefix.  If this
+                 object is set to true, then a domain-specific prefix
+                 will be added by the TSM to the securityName for
+                 incoming messages and removed from the securityName
+                 when processing outgoing messages.  Transport domains
+                 and prefixes are maintained in a registry by IANA.
+                 This object SHOULD persist across system reboots.
+                "
+    DEFVAL { false }
+    ::= { snmpTsmConfiguration 1 }
+
+-- -------------------------------------------------------------
+-- snmpTsmMIB - Conformance Information
+-- -------------------------------------------------------------
+
+snmpTsmCompliances OBJECT IDENTIFIER ::= { snmpTsmConformance 1 }
+
+snmpTsmGroups      OBJECT IDENTIFIER ::= { snmpTsmConformance 2 }
+
+-- -------------------------------------------------------------
+-- Compliance statements
+-- -------------------------------------------------------------
+
+snmpTsmCompliance MODULE-COMPLIANCE
+    STATUS      current
+    DESCRIPTION "The compliance statement for SNMP engines that support
+                 the SNMP-TSM-MIB.
+                "
+    MODULE
+        MANDATORY-GROUPS { snmpTsmGroup }
+    ::= { snmpTsmCompliances 1 }
+
+-- -------------------------------------------------------------
+-- Units of conformance
+-- -------------------------------------------------------------
+snmpTsmGroup OBJECT-GROUP
+    OBJECTS {
+        snmpTsmInvalidCaches,
+        snmpTsmInadequateSecurityLevels,
+        snmpTsmUnknownPrefixes,
+        snmpTsmInvalidPrefixes,
+        snmpTsmConfigurationUsePrefix
+    }
+    STATUS      current
+    DESCRIPTION "A collection of objects for maintaining
+                 information of an SNMP engine that implements
+
+                 the SNMP Transport Security Model.
+                "
+    ::= { snmpTsmGroups 2 }
+
+END
diff --git a/mibs/UCD-SNMP-MIB.txt b/mibs/UCD-SNMP-MIB.txt
index 0697124..69f9ac5 100644
--- a/mibs/UCD-SNMP-MIB.txt
+++ b/mibs/UCD-SNMP-MIB.txt
@@ -901,7 +901,7 @@
 
 laConfig OBJECT-TYPE
     SYNTAX	DisplayString
-    MAX-ACCESS	read-only
+    MAX-ACCESS	read-write
     STATUS	current
     DESCRIPTION
 	"The watch point for load-averages to signal an
diff --git a/mibs/ianalist b/mibs/ianalist
index f2345f1..0edb3a0 100644
--- a/mibs/ianalist
+++ b/mibs/ianalist
@@ -1,13 +1,15 @@
-# updated 2007-05-03
-ianaiftype-mib			IANAifType-MIB
-ianalanguage-mib		IANA-LANGUAGE-MIB
+# updated 2010-04-21
 ianaaddressfamilynumbers-mib	IANA-ADDRESS-FAMILY-NUMBERS-MIB
-ianaiprouteprotocol-mib		IANA-RTPROTO-MIB
-ianatn3270etc-mib		IANATn3270eTC-MIB
-ianamalloc-mib			IANA-MALLOC-MIB
 ianacharset-mib			IANA-CHARSET-MIB
-ianaprinter-mib			IANA-PRINTER-MIB
 ianafinisher-mib		IANA-FINISHER-MIB
-ianaitualarmtc-mib		IANA-ITU-ALARM-TC-MIB
-ianamau-mib			IANA-MAU-MIB
 ianagmplstc-mib			IANA-GMPLS-TC-MIB
+ianaiftype-mib			IANAifType-MIB
+ianaiprouteprotocol-mib		IANA-RTPROTO-MIB
+# ianaipfixselector-mib		IPFIX-SELECTOR-MIB
+ianaippmmetricsregistry-mib	IANA-IPPM-METRICS-REGISTRY-MIB
+ianaitualarmtc-mib		IANA-ITU-ALARM-TC-MIB
+ianalanguage-mib		IANA-LANGUAGE-MIB
+ianamalloc-mib			IANA-MALLOC-MIB
+ianamau-mib			IANA-MAU-MIB
+ianaprinter-mib			IANA-PRINTER-MIB
+ianatn3270etc-mib		IANATn3270eTC-MIB
diff --git a/mibs/rfclist b/mibs/rfclist
index a4659c2..fffb3d5 100644
--- a/mibs/rfclist
+++ b/mibs/rfclist
@@ -1,4 +1,4 @@
-# updated 2009-07-27
+# updated 2013-05-27
 1155	RFC1155-SMI
 1213	RFC1213-MIB
 1227	SMUX-MIB
@@ -168,7 +168,6 @@
 4087	TUNNEL-MIB
 4113	UDP-MIB
 4131	DOCS-IETF-BPI2-MIB
-4133	ENTITY-MIB
 4149	SSPM-MIB
 4188	BRIDGE-MIB
 4220	TE-LINK-STD-MIB
@@ -183,7 +182,6 @@
 4323	DOCS-IETF-QOS-MIB
 4363	P-BRIDGE-MIB:Q-BRIDGE-MIB
 4368	MPLS-LC-ATM-STD-MIB:MPLS-LC-FR-STD-MIB
-4369	IFCP-MGMT-MIB
 4382	MPLS-L3VPN-STD-MIB
 4404	FCIP-MGMT-MIB
 4438	T11-FC-NAME-SERVER-MIB
@@ -215,6 +213,7 @@
 4801	GMPLS-TC-STD-MIB
 4802	GMPLS-TE-STD-MIB
 4803	GMPLS-LSR-STD-MIB:GMPLS-LABEL-STD-MIB
+4807	IPSEC-SPD-MIB
 4836	MAU-MIB
 4837	DOT3-EPON-MIB
 4878	DOT3-OAM-MIB
@@ -239,7 +238,37 @@
 5519	MGMD-STD-MIB
 5525	RSERPOOL-MIB
 5542	PW-TC-STD-MIB
+5591    SNMP-TSM-MIB
 5601	PW-STD-MIB:IANA-PWE3-MIB
 5602	PW-MPLS-STD-MIB
 5603	PW-ENET-STD-MIB
+5604	PW-TDM-MIB
 5605	PW-ATM-MIB
+5643	OSPFV3-MIB
+5650	VDSL2-LINE-TC-MIB:VDSL2-LINE-MIB
+5676	SYSLOG-MSG-MIB
+5728	DVB-RCS-MIB
+5813	FORCES-MIB
+5815	IPFIX-MIB:IPFIX-SELECTOR-MIB
+5833	CAPWAP-BASE-MIB
+5834	CAPWAP-DOT11-MIB
+5907	NTPv4-MIB
+6065	SNMP-VACM-AAA-MIB
+6173	IFCP-MGMT-MIB
+6240	PW-CEP-STD-MIB
+6340	FLOAT-TC-MIB
+6353	SNMP-TLS-TM-MIB
+6445	MPLS-FRR-GENERAL-STD-MIB:MPLS-FRR-ONE2ONE-STD-MIB:MPLS-FRR-FACILITY-STD-MIB
+6475	PMIPV6-TC-MIB:PMIPV6-MIB
+6527	VRRPV3-MIB
+6615	IPFIX-MIB:IPFIX-SELECTOR-MIB
+6727	PSAMP-MIB
+6765	GBOND-MIB:IANA-GBOND-TC-MIB
+6766	G9983-MIB
+6767	G9982-MIB
+6768	G9981-MIB
+6779	NHDP-MIB
+6825	TED-MIB
+6850	RBRIDGE-MIB
+6933	ENTITY-MIB
+6945	RPKI-ROUTER-MIB
diff --git a/net-snmp-config.in b/net-snmp-config.in
index 652832d..d55872c 100644
--- a/net-snmp-config.in
+++ b/net-snmp-config.in
@@ -57,7 +57,7 @@
 NSC_LIBDIR=-L${libdir}
 
 NSC_SNMPLIBS="-lnetsnmp ${NSC_LNETSNMPLIBS}"
-NSC_SUBAGENTLIBS="-lnetsnmpagent -lnetsnmphelpers ${NSC_LAGENTLIBS} ${NSC_SNMPLIBS}"
+NSC_SUBAGENTLIBS="-lnetsnmpagent ${NSC_LAGENTLIBS} ${NSC_SNMPLIBS}"
 NSC_AGENTLIBS="-lnetsnmpmibs ${NSC_LMIBLIBS} ${NSC_SUBAGENTLIBS}"
 
 NSC_PREFIX=$prefix
@@ -66,11 +66,11 @@
 NSC_INCDIR=${NSC_PREFIX}/include
 
 NSC_BASE_SNMP_LIBS="-lnetsnmp"
-NSC_BASE_SUBAGENT_LIBS="-lnetsnmpagent -lnetsnmphelpers ${NSC_BASE_SNMP_LIBS}"
+NSC_BASE_SUBAGENT_LIBS="-lnetsnmpagent ${NSC_BASE_SNMP_LIBS}"
 NSC_BASE_AGENT_LIBS="-lnetsnmpmibs ${NSC_BASE_SUBAGENT_LIBS}"
 
-NSC_SRC_LIBDIRS="agent/.libs snmplib/.libs agent/helpers/.libs"
-NSC_SRC_LIBDEPS="agent/.libs/libnetsnmpmibs.a agent/.libs/libnetsnmpagent.a agent/helpers/.libs/libnetsnmphelpers.a snmplib/.libs/libnetsnmp.a"
+NSC_SRC_LIBDIRS="agent/.libs snmplib/.libs"
+NSC_SRC_LIBDEPS="agent/.libs/libnetsnmpmibs.a agent/.libs/libnetsnmpagent.a snmplib/.libs/libnetsnmp.a"
 
 if test "x$NSC_SRCDIR" = "x." ; then
    NSC_SRCDIR="NET-SNMP-SOURCE-DIR"
@@ -124,6 +124,9 @@
     --env-separator)
       echo "@ENV_SEPARATOR@"
       ;;
+    --exeext)
+      echo "@EXEEXT@"
+      ;;
     --snmpconfpath|--SNMPCONFPATH)
       echo "@SNMPCONFPATH@@ENV_SEPARATOR@@SNMPSHAREPATH@@ENV_SEPARATOR@@SNMPLIBPATH@@ENV_SEPARATOR@$HOME/.snmp@ENV_SEPARATOR@@PERSISTENT_DIRECTORY@"
       ;;
@@ -179,6 +182,9 @@
       fi
       echo $result
       ;;
+    --build-command)
+      echo "@CC@ @CFLAGS@ @DEVFLAGS@"
+      ;;
     #################################################### client lib
     --libs)
       # use this one == --netsnmp-libs + --external-libs
@@ -188,7 +194,7 @@
       echo $NSC_LIBDIR $NSC_BASE_SNMP_LIBS
       ;;
     --external-libs)
-      echo $NSC_LDFLAGS $NSC_LNETSNMPLIBS $NSC_LIBS
+      echo $NSC_LDFLAGS $NSC_LNETSNMPLIBS $NSC_LIBS @PERLLDOPTS_FOR_APPS@
       ;;
     #################################################### agent lib
     --base-agent-libs)
@@ -667,6 +673,7 @@
   echo "    --build-includes      include path to build/source includes"
   echo "    --build-lib-dirs      link path to libraries"
   echo "    --build-lib-deps      path to libraries for dependency target"
+  echo "    --build-command       command to compile \$3... to \$2"
   echo ""
   echo "  Automated subagent building (produces an OUTPUTNAME binary file):"
   echo "  [this feature has not been tested very well yet.  use at your risk.]"
diff --git a/net-snmp-create-v3-user.in b/net-snmp-create-v3-user.in
index e435009..5288f3b 100644
--- a/net-snmp-create-v3-user.in
+++ b/net-snmp-create-v3-user.in
@@ -19,10 +19,10 @@
 NSC_EXEC_PREFIX=$exec_prefix
 NSC_SRCDIR=@srcdir@
 NSC_INCDIR=${NSC_PREFIX}/include
-NSC_BASE_SUBAGENT_LIBS="-lnetsnmpagent -lnetsnmphelpers -lnetsnmp"
-NSC_BASE_AGENT_LIBS="-lnetsnmpagent -lnetsnmphelpers -lnetsnmpmibs -lnetsnmp"
-NSC_SRC_LIBDIRS="agent/.libs snmplib/.libs agent/helpers/.libs"
-NSC_SRC_LIBDEPS="agent/.libs/libnetsnmpmibs.a agent/.libs/libnetsnmpagent.a agent/helpers/.libs/libnetsnmphelpers.a snmplib/.libs/libnetsnmp.a"
+NSC_BASE_SUBAGENT_LIBS="-lnetsnmpagent -lnetsnmp"
+NSC_BASE_AGENT_LIBS="-lnetsnmpagent -lnetsnmpmibs -lnetsnmp"
+NSC_SRC_LIBDIRS="agent/.libs snmplib/.libs"
+NSC_SRC_LIBDEPS="agent/.libs/libnetsnmpmibs.a agent/.libs/libnetsnmpagent.a snmplib/.libs/libnetsnmp.a"
 
 if test "x$NSC_SRCDIR" = "x." ; then
    NSC_SRCDIR="NET-SNMP-SOURCE-DIR"
diff --git a/perl/ASN/ASN.pm b/perl/ASN/ASN.pm
index 07858ae..6f0603f 100644
--- a/perl/ASN/ASN.pm
+++ b/perl/ASN/ASN.pm
@@ -66,7 +66,7 @@
 	ASN_UNSIGNED
 	ASN_UNSIGNED64
 );
-$VERSION = '5.0502';
+$VERSION = '5.0602';
 
 sub AUTOLOAD {
     # This AUTOLOAD is used to 'autoload' constants from the constant()
diff --git a/perl/AnyData_SNMP/Storage.pm b/perl/AnyData_SNMP/Storage.pm
index df3c4af..44b85ae 100644
--- a/perl/AnyData_SNMP/Storage.pm
+++ b/perl/AnyData_SNMP/Storage.pm
@@ -6,7 +6,7 @@
 ##   scalar sets?
 ##   multi-hosts
 
-$AnyData::Storage::VERSION = '5.0502';
+$AnyData::Storage::VERSION = '5.0602';
 use strict;
 use warnings;
 
diff --git a/perl/OID/OID.pm b/perl/OID/OID.pm
index b943872..dc3a427 100644
--- a/perl/OID/OID.pm
+++ b/perl/OID/OID.pm
@@ -92,7 +92,7 @@
 	snmp_oid_compare
         compare
 );
-$VERSION = '5.0502';
+$VERSION = '5.0602';
 
 sub new {
     my $type = shift;
diff --git a/perl/OID/OID.xs b/perl/OID/OID.xs
index e9c838f..10485f9 100644
--- a/perl/OID/OID.xs
+++ b/perl/OID/OID.xs
@@ -146,7 +146,7 @@
    int i;
    buf[0] = '\0';
    for (i=0; i < len; i++) {
-	sprintf(buf, ".%lu", *objid++);
+	sprintf(buf,".%" NETSNMP_PRIo "u",*objid++);
 	buf += strlen(buf);
    }
    return SNMPERR_SUCCESS;
diff --git a/perl/SNMP/SNMP.pm b/perl/SNMP/SNMP.pm
index a79cb91..ca62339 100644
--- a/perl/SNMP/SNMP.pm
+++ b/perl/SNMP/SNMP.pm
@@ -7,7 +7,7 @@
 #     modify it under the same terms as Perl itself.
 
 package SNMP;
-$VERSION = '5.0502';   # current release version number
+$VERSION = '5.0602';   # current release version number
 
 use strict;
 use warnings;
@@ -504,6 +504,11 @@
        $this->{DestHost} = $this->{DestHost} . ":" . $this->{RemotePort};
    }
 
+   if ($this->{DestHost} =~ /^(dtls|tls|ssh)/) {
+       # only works with version 3
+       $this->{Version} = 3;
+   }
+
    if ($this->{Version} eq '1' or $this->{Version} eq '2'
        or $this->{Version} eq '2c') {
        $this->{SessPtr} = SNMP::_new_session($this->{Version},
@@ -531,51 +536,84 @@
        $this->{Context} ||= 
 	   NetSNMP::default_store::netsnmp_ds_get_string(NetSNMP::default_store::NETSNMP_DS_LIBRARY_ID(), 
 		         NetSNMP::default_store::NETSNMP_DS_LIB_CONTEXT()) || '';
-       $this->{AuthProto} ||= 'DEFAULT'; # use the library's default
-       $this->{AuthPass} ||=
-       NetSNMP::default_store::netsnmp_ds_get_string(NetSNMP::default_store::NETSNMP_DS_LIBRARY_ID(), 
-		     NetSNMP::default_store::NETSNMP_DS_LIB_AUTHPASSPHRASE()) ||
-       NetSNMP::default_store::netsnmp_ds_get_string(NetSNMP::default_store::NETSNMP_DS_LIBRARY_ID(), 
-		     NetSNMP::default_store::NETSNMP_DS_LIB_PASSPHRASE()) || '';
 
-       $this->{AuthMasterKey} ||= '';
-       $this->{PrivMasterKey} ||= '';
-       $this->{AuthLocalizedKey} ||= '';
-       $this->{PrivLocalizedKey} ||= '';
+       if ($this->{DestHost} =~ /^(dtls|tls|ssh)/) {
+	   # this is a tunneled protocol
 
-       $this->{PrivProto} ||= 'DEFAULT';  # use the library's default
-       $this->{PrivPass} ||=
-       NetSNMP::default_store::netsnmp_ds_get_string(NetSNMP::default_store::NETSNMP_DS_LIBRARY_ID(), 
-		     NetSNMP::default_store::NETSNMP_DS_LIB_PRIVPASSPHRASE()) ||
-       NetSNMP::default_store::netsnmp_ds_get_string(NetSNMP::default_store::NETSNMP_DS_LIBRARY_ID(), 
-		     NetSNMP::default_store::NETSNMP_DS_LIB_PASSPHRASE()) || '';
-       $this->{EngineBoots} = 0 if not defined $this->{EngineBoots};
-       $this->{EngineTime} = 0 if not defined $this->{EngineTime};
+	   $this->{'OurIdentity'} ||= '';
+	   $this->{'TheirIdentity'} ||= '';
+	   $this->{'TheirHostname'} ||= '';
+	   $this->{'TrustCert'} ||= '';
 
-       $this->{SessPtr} = SNMP::_new_v3_session($this->{Version},
-						$this->{DestHost},
-						$this->{Retries},
-						$this->{Timeout},
-						$this->{SecName},
-						$this->{SecLevel},
-						$this->{SecEngineId},
-						$this->{ContextEngineId},
-						$this->{Context},
-						$this->{AuthProto},
-						$this->{AuthPass},
-						$this->{PrivProto},
-						$this->{PrivPass},
-						$this->{EngineBoots},
-						$this->{EngineTime},
-						$this->{AuthMasterKey},
-						length($this->{AuthMasterKey}),
-						$this->{PrivMasterKey},
-						length($this->{PrivMasterKey}),
-						$this->{AuthLocalizedKey},
-						length($this->{AuthLocalizedKey}),
-						$this->{PrivLocalizedKey},
-						length($this->{PrivLocalizedKey}),
-					       );
+	   $this->{'SecLevel'} = $SNMP::V3_SEC_LEVEL_MAP{'authPriv'};
+
+	   $this->{SessPtr} =
+	     SNMP::_new_tunneled_session($this->{Version},
+					 $this->{DestHost},
+					 $this->{Retries},
+					 $this->{Timeout},
+					 $this->{SecName},
+					 $this->{SecLevel},
+					 $this->{ContextEngineId},
+					 $this->{Context},
+					 $this->{'OurIdentity'},
+					 $this->{'TheirIdentity'},
+					 $this->{'TheirHostname'},
+					 $this->{'TrustCert'},
+					);
+
+
+       } else {
+	   # USM or some other internal security protocol
+
+	   # USM specific parameters:
+	   $this->{AuthProto} ||= 'DEFAULT'; # use the library's default
+	   $this->{AuthPass} ||=
+	     NetSNMP::default_store::netsnmp_ds_get_string(NetSNMP::default_store::NETSNMP_DS_LIBRARY_ID(), 
+							   NetSNMP::default_store::NETSNMP_DS_LIB_AUTHPASSPHRASE()) ||
+							       NetSNMP::default_store::netsnmp_ds_get_string(NetSNMP::default_store::NETSNMP_DS_LIBRARY_ID(), 
+													     NetSNMP::default_store::NETSNMP_DS_LIB_PASSPHRASE()) || '';
+
+	   $this->{AuthMasterKey} ||= '';
+	   $this->{PrivMasterKey} ||= '';
+	   $this->{AuthLocalizedKey} ||= '';
+	   $this->{PrivLocalizedKey} ||= '';
+
+	   $this->{PrivProto} ||= 'DEFAULT'; # use the library's default
+	   $this->{PrivPass} ||=
+	     NetSNMP::default_store::netsnmp_ds_get_string(NetSNMP::default_store::NETSNMP_DS_LIBRARY_ID(), 
+							   NetSNMP::default_store::NETSNMP_DS_LIB_PRIVPASSPHRASE()) ||
+							       NetSNMP::default_store::netsnmp_ds_get_string(NetSNMP::default_store::NETSNMP_DS_LIBRARY_ID(), 
+													     NetSNMP::default_store::NETSNMP_DS_LIB_PASSPHRASE()) || '';
+	   $this->{EngineBoots} = 0 if not defined $this->{EngineBoots};
+	   $this->{EngineTime} = 0 if not defined $this->{EngineTime};
+
+	   $this->{SessPtr} =
+	     SNMP::_new_v3_session($this->{Version},
+				   $this->{DestHost},
+				   $this->{Retries},
+				   $this->{Timeout},
+				   $this->{SecName},
+				   $this->{SecLevel},
+				   $this->{SecEngineId},
+				   $this->{ContextEngineId},
+				   $this->{Context},
+				   $this->{AuthProto},
+				   $this->{AuthPass},
+				   $this->{PrivProto},
+				   $this->{PrivPass},
+				   $this->{EngineBoots},
+				   $this->{EngineTime},
+				   $this->{AuthMasterKey},
+				   length($this->{AuthMasterKey}),
+				   $this->{PrivMasterKey},
+				   length($this->{PrivMasterKey}),
+				   $this->{AuthLocalizedKey},
+				   length($this->{AuthLocalizedKey}),
+				   $this->{PrivLocalizedKey},
+				   length($this->{PrivLocalizedKey}),
+				  );
+       }
    }
    unless ($this->{SessPtr}) {
        warn("unable to create session") if $SNMP::verbose;
@@ -1522,77 +1560,148 @@
 
 The following arguments may be passed to new as a hash.
 
+=head2 Basic Options
+
 =over 4
 
 =item DestHost
 
-default 'localhost', hostname or ip addr of SNMP agent
+Hostname or IP address of the SNMP agent you want to talk to.
+Specified in Net-SNMP formatted agent addresses.  These addresses
+typically look like one of the following:
 
-=item Community
+  localhost
+  tcp:localhost
+  tls:localhost
+  tls:localhost:9876
+  udp6:[::1]:9876
+  unix:/some/path/to/file/socket
 
-default 'public', SNMP community string (used for both R/W)
+Defaults to 'localhost'.
 
 =item Version
 
-default taken from library configuration - probably 3 [1, 2 (same as 2c), 2c, 3]
+SNMP version to use.
 
-=item RemotePort
-
-default '161', allow remote UDP port to be overriden
+The default is taken from library configuration - probably 3 [1, 2
+(same as 2c), 2c, 3].
 
 =item Timeout
 
-default '1000000', micro-seconds before retry
+The number of micro-seconds to wait before resending a request.
+
+The default is '1000000'
 
 =item Retries
 
-default '5', retries before failure
+The number of times to retry a request.
+
+The default is '5'
 
 =item RetryNoSuch
 
-default '0', if enabled NOSUCH errors in 'get' pdus will
+If enabled NOSUCH errors in 'get' pdus will
 be repaired, removing the varbind in error, and resent -
 undef will be returned for all NOSUCH varbinds, when set
 to '0' this feature is disabled and the entire get request
 will fail on any NOSUCH error (applies to v1 only)
 
+The default is '0'.
+
+=back
+
+=head2 SNMPv3/TLS Options
+
+=over
+
+=item OurIdentity
+
+Our X.509 identity to use, which should either be a fingerprint or the
+filename that holds the certificate.
+
+=item TheirIdentity
+
+The remote server's identity to connect to, specified as eihter a
+fingerprint or a file name.  Either this must be specified, or the
+hostname below along with a trust anchor.
+
+=item TheirHostname
+
+The remote server's hostname that is expected.  If their certificate
+was signed by a CA then their hostname presented in the certificate
+must match this value or the connection fails to be established (to
+avoid man-in-the-middle attacks).
+
+=item TrustCert
+
+A trusted certificate to use a trust anchor (like a CA certificate)
+for verifying a remote server's certificate.  If a CA certificate is
+used to validate a certificate then the TheirHostname parameter must
+also be specified to ensure their presente hostname in the certificate
+matches.
+
+=back
+
+=head2 SNMPv3/USM Options
+
+=over
+
 =item SecName
 
-default 'initial', security name (v3)
+The SNMPv3 security name to use (most for SNMPv3 with USM).
+
+The default is 'initial'.
 
 =item SecLevel
 
-default 'noAuthNoPriv', security level [noAuthNoPriv,
-authNoPriv, authPriv] (v3)
+The SNMPv3 security level to use [noAuthNoPriv, authNoPriv, authPriv] (v3)
+
+The default is 'noAuthNoPriv'.
 
 =item SecEngineId
 
-default <none>, security engineID, will be probed if not
+The SNMPv3 security engineID to use (if the snmpv3 security model
+needs it; for example USM).
+
+The default is <none>, security engineID and it will be probed if not
 supplied (v3)
 
 =item ContextEngineId
 
-default <SecEngineId>, context engineID, will be
-probed if not supplied (v3)
+The SNMPv3 context engineID to use.
+
+The default is the <none> and will be set either to the SecEngineId
+value if set or discovered or will be discovered in other ways if
+using TLS (RFC5343 based discovery).
 
 =item Context
 
-default '', context name (v3)
+The SNMPv3 context name to use.
+
+The default is '' (an empty string)
 
 =item AuthProto
 
-default 'MD5', authentication protocol [MD5, SHA] (v3)
+The SNMPv3/USM authentication protocol to use [MD5, SHA].
+
+The default is 'MD5'.
 
 =item AuthPass
 
+The SNMPv3/USM authentication passphrase to use.
+
 default <none>, authentication passphrase
 
 =item PrivProto
 
-default 'DES', privacy protocol [DES, AES] (v3)
+The SNMPv3/USM privacy protocol to use [DES, AES].
+
+The default is 'DES'.
 
 =item PrivPass
 
+The SNMPv3/USM privacy passphrase to use.
+
 default <none>, privacy passphrase (v3)
 
 =item AuthMasterKey
@@ -1606,6 +1715,20 @@
 Directly specified SNMPv3 USM user keys (used if you want to specify
 the keys instead of deriving them from a password as above).
 
+=back
+
+=head2 SNMPv1 and SNMPv2c Options
+
+=item Community
+
+For SNMPv1 and SNMPv2c, the clear-text community name to use.
+
+The default is 'public'.
+
+=head2 Other Configuration Options
+
+=over
+
 =item VarFormats
 
 default 'undef', used by 'fget[next]', holds an hash
@@ -1699,6 +1822,11 @@
 
 internal field used to cache a created session structure
 
+=item RemotePort
+
+Obsolete.  Please use the DestHost specifier to indicate the hostname
+and port combination instead of this paramet.
+
 =back
 
 =head2 SNMP::Session methods
diff --git a/perl/SNMP/SNMP.xs b/perl/SNMP/SNMP.xs
index 4a1f502..2417bc7 100644
--- a/perl/SNMP/SNMP.xs
+++ b/perl/SNMP/SNMP.xs
@@ -563,7 +563,7 @@
    int i;
    buf[0] = '\0';
    for (i=0; i < len; i++) {
-	sprintf(buf, ".%lu", *objid++);
+	sprintf(buf,".%" NETSNMP_PRIo "u",*objid++);
 	buf += strlen(buf);
    }
    return SUCCESS;
@@ -596,7 +596,7 @@
    cp = buf;
    while (*buf) {
       if (*buf++ == '.') {
-         sscanf(cp, "%lu", objid++);
+         sscanf(cp, "%" NETSNMP_PRIo "u", objid++);
          /* *objid++ = atoi(cp); */
          (*len)++;
          cp = buf;
@@ -606,7 +606,7 @@
          }
       }
    }
-   sscanf(cp, "%lu", objid++);
+   sscanf(cp, "%" NETSNMP_PRIo "u", objid++);
    /* *objid++ = atoi(cp); */
    (*len)++;
    return SUCCESS;
@@ -946,7 +946,7 @@
        return FAILURE;
    cp = strtok_r(soid_buf,".",&st);
    while (cp) {
-     sscanf(cp, "%lu", &(doid_arr[(*doid_arr_len)++]));
+     sscanf(cp, "%" NETSNMP_PRIo "u", &(doid_arr[(*doid_arr_len)++]));
      /* doid_arr[(*doid_arr_len)++] =  atoi(cp); */
      cp = strtok_r(NULL,".",&st);
    }
@@ -2784,6 +2784,96 @@
         OUTPUT:
         RETVAL
 
+SnmpSession *
+snmp_new_tunneled_session(version, peer, retries, timeout, sec_name, sec_level, context_eng_id, context, our_identity, their_identity, their_hostname, trust_cert)
+        int	version
+        char *	peer
+        int	retries
+        int	timeout
+        char *  sec_name
+        int     sec_level
+        char *  context_eng_id
+        char *  context
+        char *  our_identity
+        char *  their_identity
+        char *  their_hostname
+        char *  trust_cert
+	CODE:
+	{
+	   SnmpSession session = {0};
+	   SnmpSession *ss = NULL;
+           int verbose = SvIV(perl_get_sv("SNMP::verbose", 0x01 | 0x04));
+
+           __libraries_init("perl");
+
+           session.version = version;
+
+	   session.peername = peer;
+           session.retries = retries; /* 5 */
+           session.timeout = timeout; /* 1000000L */
+           session.contextNameLen = strlen(context);
+           session.contextName = context;
+           session.securityNameLen = strlen(sec_name);
+           session.securityName = sec_name;
+           session.securityLevel = sec_level;
+           session.securityModel = NETSNMP_TSM_SECURITY_MODEL;
+           session.contextEngineIDLen =
+              hex_to_binary2((u_char*)context_eng_id, strlen(context_eng_id),
+                             (char **) &session.contextEngineID);
+
+           /* create the transport configuration store */
+           if (!session.transport_configuration) {
+               netsnmp_container_init_list();
+               session.transport_configuration =
+                   netsnmp_container_find("transport_configuration:fifo");
+               if (!session.transport_configuration) {
+                   fprintf(stderr, "failed to initialize the transport configuration container\n");
+                   RETVAL = NULL;
+                   return;
+               }
+
+               session.transport_configuration->compare =
+                   (netsnmp_container_compare*)
+                   netsnmp_transport_config_compare;
+           }
+
+           if (our_identity && our_identity[0] != '\0')
+               CONTAINER_INSERT(session.transport_configuration,
+                                netsnmp_transport_create_config("our_identity",
+                                                                our_identity));
+
+           if (their_identity && their_identity[0] != '\0')
+               CONTAINER_INSERT(session.transport_configuration,
+                                netsnmp_transport_create_config("their_identity",
+                                                                their_identity));
+
+           if (their_hostname && their_hostname[0] != '\0')
+               CONTAINER_INSERT(session.transport_configuration,
+                                netsnmp_transport_create_config("their_hostname",
+                                                                their_hostname));
+
+           if (trust_cert && trust_cert[0] != '\0')
+               CONTAINER_INSERT(session.transport_configuration,
+                                netsnmp_transport_create_config("trust_cert",
+                                                                trust_cert));
+           
+
+           ss = snmp_open(&session);
+
+           if (ss == NULL) {
+	      if (verbose) warn("error:snmp_new_v3_session:Couldn't open SNMP session");
+           }
+
+           RETVAL = ss;
+	   netsnmp_free(session.securityPrivLocalKey);
+	   netsnmp_free(session.securityPrivProto);
+	   netsnmp_free(session.securityAuthLocalKey);
+	   netsnmp_free(session.securityAuthProto);
+	   netsnmp_free(session.contextEngineID);
+	   netsnmp_free(session.securityEngineID);
+	}
+        OUTPUT:
+        RETVAL
 
 SnmpSession *
 snmp_update_session(sess_ref, version, community, peer, lport, retries, timeout)
diff --git a/perl/TrapReceiver/Makefile.PL b/perl/TrapReceiver/Makefile.PL
index 4bcf2a4..874ee21 100644
--- a/perl/TrapReceiver/Makefile.PL
+++ b/perl/TrapReceiver/Makefile.PL
@@ -64,7 +64,6 @@
       $snmp_lib_file = 'netsnmp.lib';
       $snmp_link_lib = 'netsnmp';
       $agent_link_lib = 'netsnmpagent';
-      $helpers_link_lib = 'netsnmphelpers';
       $mibs_link_lib = 'netsnmpmibs';
       $trapd_link_lib = 'netsnmptrapd';
 
@@ -76,7 +75,7 @@
       }
     
       if (lc($opts->{'insource'}) eq "true") {
-	$Params{'LIBS'} = "-L$basedir\\win32\\$lib_dir\\ -l$snmp_link_lib -l$agent_link_lib -l$helpers_link_lib " .
+	$Params{'LIBS'} = "-L$basedir\\win32\\$lib_dir\\ -l$snmp_link_lib -l$agent_link_lib " .
                 "-l$mibs_link_lib -l$trapd_link_lib ";
       }
       else {
@@ -100,7 +99,7 @@
 	    $LibDirs[0] =~ s/\\$//;
 	  }
 	}
-	$Params{LIBS} = "-L$LibDir -l$snmp_link_lib -l$agent_link_lib -l$helpers_link_lib -l$mibs_link_lib -l$trapd_link_lib ";
+	$Params{LIBS} = "-L$LibDir -l$snmp_link_lib -l$agent_link_lib -l$mibs_link_lib -l$trapd_link_lib ";
       }
 
       $Params{'INC'} = "-I$basedir\\include\\ -I$basedir\\include\\net-snmp\\ -I$basedir\\win32\\ ";
@@ -119,7 +118,7 @@
 	}
 
 	if (lc($opts->{'insource'}) eq "true") {
-            $Params{'LIBS'} = "-L../../apps/.libs -L../../apps -L../../agent/.libs -L../../agent -L../../agent/helpers/.libs -L../../agent/helpers -L../../snmplib/.libs -L../../snmplib " . $Params{'LIBS'};
+            $Params{'LIBS'} = "-L../../apps/.libs -L../../apps -L../../agent/.libs -L../../agent -L../../snmplib/.libs -L../../snmplib " . $Params{'LIBS'};
 	    $Params{'CCFLAGS'} = "-I../../include " . $Params{'CCFLAGS'};
 	} else {
             $Params{'LIBS'} = `$opts->{'nsconfig'} --libdir` . " $Params{'LIBS'}";
diff --git a/perl/TrapReceiver/TrapReceiver.pm b/perl/TrapReceiver/TrapReceiver.pm
index f012da5..bd90e3c 100644
--- a/perl/TrapReceiver/TrapReceiver.pm
+++ b/perl/TrapReceiver/TrapReceiver.pm
@@ -47,7 +47,7 @@
 	NETSNMPTRAPD_PRE_HANDLER
 );
 
-$VERSION = '5.0502';
+$VERSION = '5.0602';
 
 # sub new {
 #     my $type = shift;
diff --git a/perl/agent/Makefile.PL b/perl/agent/Makefile.PL
index b2e3bd8..4f7bee3 100644
--- a/perl/agent/Makefile.PL
+++ b/perl/agent/Makefile.PL
@@ -37,7 +37,6 @@
       $snmp_lib_file = 'netsnmp.lib';
       $snmp_link_lib = 'netsnmp';
       $agent_link_lib = 'netsnmpagent';
-      $helpers_link_lib = 'netsnmphelpers';
       $mibs_link_lib = 'netsnmpmibs';
 
       if (lc($opts->{'debug'}) eq "true") {
@@ -48,7 +47,7 @@
       }
     
       if (lc($opts->{'insource'}) eq "true") {
-	$Params{'LIBS'} = "-L$basedir\\win32\\$lib_dir\\ -l$snmp_link_lib -l$agent_link_lib -l$helpers_link_lib " .
+	$Params{'LIBS'} = "-L$basedir\\win32\\$lib_dir\\ -l$snmp_link_lib -l$agent_link_lib " .
                 "-l$mibs_link_lib";
       }
       else {
@@ -72,7 +71,7 @@
 	    $LibDirs[0] =~ s/\\$//;
 	  }
 	}
-	$Params{LIBS} = "-L$LibDir -l$snmp_link_lib -l$agent_link_lib -l$helpers_link_lib -l$mibs_link_lib";
+	$Params{LIBS} = "-L$LibDir -l$snmp_link_lib -l$agent_link_lib -l$mibs_link_lib";
       }
 
       $Params{'INC'} = "-I$basedir\\include\\ -I$basedir\\include\\net-snmp\\ -I$basedir\\win32\\ ";
@@ -87,7 +86,7 @@
 	$Params{'CCFLAGS'} .= " " . $Config{'ccflags'};
         $lib_version = `$opts->{'nsconfig'} --version`;
 	if (lc($opts->{'insource'}) eq "true") {
-	    $Params{'LIBS'} = "-L../../snmplib/.libs -L../../snmplib/ -L../../agent/.libs -L../../agent/ -L../../agent/helpers/.libs -L../../agent/helpers/ " . $Params{'LIBS'};
+	    $Params{'LIBS'} = "-L../../snmplib/.libs -L../../snmplib/ -L../../agent/.libs -L../../agent/ " . $Params{'LIBS'};
 	    $Params{'CCFLAGS'} = "-I../../include " . $Params{'CCFLAGS'};
 #	} else {
 	    $Params{'LIBS'} = `$opts->{'nsconfig'} --libdir` . $Params{'LIBS'};
diff --git a/perl/agent/Support/Support.pm b/perl/agent/Support/Support.pm
index 88beeed..06541cd 100644
--- a/perl/agent/Support/Support.pm
+++ b/perl/agent/Support/Support.pm
@@ -26,7 +26,7 @@
 @ISA       = qw(Exporter getLeaf);
 @EXPORT    = qw(registerAgent getOidElement setOidElement);
 @EXPORT_OK = qw();
-$VERSION = '5.0502';
+$VERSION = '5.0602';
 
 use strict;
 use warnings;
diff --git a/perl/agent/agent.pm b/perl/agent/agent.pm
index 530772e..1e2dad5 100644
--- a/perl/agent/agent.pm
+++ b/perl/agent/agent.pm
@@ -87,7 +87,7 @@
 	SNMP_ERR_AUTHORIZATIONERROR
 	SNMP_ERR_NOTWRITABLE
 );
-$VERSION = '5.0502';
+$VERSION = '5.0602';
 
 sub AUTOLOAD {
     # This AUTOLOAD is used to 'autoload' constants from the constant()
diff --git a/perl/agent/agent.xs b/perl/agent/agent.xs
index ab77c75..99e8ecb 100644
--- a/perl/agent/agent.xs
+++ b/perl/agent/agent.xs
@@ -19,11 +19,11 @@
 
 typedef netsnmp_handler_registration *NetSNMP__agent__netsnmp_handler_registration;
 
-/* Copied from snmpUDPDomain.c */
-typedef struct netsnmp_udp_addr_pair_s {
-	struct sockaddr_in remote_addr;
-	struct in_addr local_addr;
-} netsnmp_udp_addr_pair;
+/*
+ * needs to be in sync with the definitions in snmplib/snmpUDPDomain.c
+ * and snmplib/snmpTCPDomain.c
+ */
+typedef netsnmp_indexed_addr_pair netsnmp_udp_addr_pair;
 
 typedef struct handler_cb_data_s {
    SV *perl_cb;
@@ -868,7 +868,7 @@
         SV *me;
     PREINIT:
         netsnmp_agent_request_info *reqinfo;
-	struct netsnmp_udp_addr_pair_s *addr_pair;
+	netsnmp_udp_addr_pair *addr_pair;
 	struct sockaddr_in *from;
         SV *rarg;
 
@@ -876,7 +876,7 @@
         reqinfo = (netsnmp_agent_request_info *) SvIV(SvRV(me));
 
         /* XXX: transport-specific: UDP/IPv4 only! */
-	addr_pair = (struct netsnmp_udp_addr_pair_s *) (reqinfo->asp->pdu->transport_data);
+	addr_pair = (netsnmp_udp_addr_pair *) (reqinfo->asp->pdu->transport_data);
 	from = (struct sockaddr_in *) &(addr_pair->remote_addr);
         rarg = newSVpv((const char *)(&from->sin_addr.s_addr), sizeof(from->sin_addr.s_addr));
         RETVAL = rarg;
@@ -889,7 +889,7 @@
         SV *me;
     PREINIT:
         netsnmp_agent_request_info *reqinfo;
-	struct netsnmp_udp_addr_pair_s *addr_pair;
+	netsnmp_udp_addr_pair *addr_pair;
 	struct in_addr *to;
         SV *rarg;
 
@@ -897,7 +897,7 @@
         reqinfo = (netsnmp_agent_request_info *) SvIV(SvRV(me));
 
         /* XXX: transport-specific: UDP/IPv4 only! */
-	addr_pair = (struct netsnmp_udp_addr_pair_s *) (reqinfo->asp->pdu->transport_data);
+	addr_pair = (netsnmp_udp_addr_pair *) (reqinfo->asp->pdu->transport_data);
 	to = (struct in_addr *) &(addr_pair->local_addr);
         rarg = newSVpv((const char *)(&to->s_addr), sizeof(to->s_addr));
         RETVAL = rarg;
diff --git a/perl/agent/default_store/default_store.pm b/perl/agent/default_store/default_store.pm
index 9b568ec..39b8a14 100644
--- a/perl/agent/default_store/default_store.pm
+++ b/perl/agent/default_store/default_store.pm
@@ -96,7 +96,7 @@
 				   NETSNMP_DS_AGENT_MAX_GETBULKREPEATS
 				   NETSNMP_DS_AGENT_MAX_GETBULKRESPONSES
 );
-$VERSION = '5.0502';
+$VERSION = '5.0602';
 
 sub AUTOLOAD {
     # This AUTOLOAD is used to 'autoload' constants from the constant()
diff --git a/perl/default_store/default_store.pm b/perl/default_store/default_store.pm
index 1af7f0c..ccae606 100644
--- a/perl/default_store/default_store.pm
+++ b/perl/default_store/default_store.pm
@@ -200,7 +200,7 @@
 				   NETSNMP_DS_LIB_KSM_SERVICE_NAME
 				   NETSNMP_DS_LIB_SBSM_LOCAL_PWD
 );
-$VERSION = '5.0502';
+$VERSION = '5.0602';
 
 sub AUTOLOAD {
     # This AUTOLOAD is used to 'autoload' constants from the constant()
diff --git a/python/LICENSE b/python/LICENSE
index ebebf4a..4c7638f 100644
--- a/python/LICENSE
+++ b/python/LICENSE
@@ -1,3 +1,39 @@
+Various copyrights apply to this package, listed in various separate
+parts below.  Please make sure that you read all the parts.
+
+---- Part 1: Sparta, Inc (BSD) -----
+
+Copyright (c) 2003-2010, Sparta, Inc
+All rights reserved.
+ 
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ 
+*  Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+ 
+*  Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+ 
+*  Neither the name of Sparta, Inc nor the names of its contributors may
+   be used to endorse or promote products derived from this software
+   without specific prior written permission.
+ 
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+---- Part 2: ScienceLogic, LLC (BSD) ----
+
 Copyright (c) 2006, ScienceLogic, LLC
 All rights reserved.
  
diff --git a/python/README b/python/README
index ef5b477..f998f8b 100644
--- a/python/README
+++ b/python/README
@@ -89,7 +89,6 @@
    netsnmp.Session(<tag>=<value>, ... )
 
     DestHost    - default 'localhost', hostname or ip addr of SNMP agent
-    Community   - default 'public', SNMP community string (used for both R/W)
     Version     - default '3', [1, 2 (equiv to 2c), 3]
     RemotePort  - default '161', allow remote UDP port to be overridden
     Timeout     - default '500000', micro-seconds before retry
@@ -99,18 +98,6 @@
                   undef will be returned for all NOSUCH varbinds, when set
                   to '0' this feature is disabled and the entire get request
                   will fail on any NOSUCH error (applies to v1 only)
-    SecName     - default 'initial', security name (v3)
-    SecLevel    - default 'noAuthNoPriv', security level [noAuthNoPriv,
-                  authNoPriv, authPriv] (v3)
-    SecEngineId - default <none>, security engineID, will be probed if not
-                  supplied (v3)
-    ContextEngineId - default <SecEngineId>, context engineID, will be
-                      probed if not supplied (v3)
-    Context     - default '', context name (v3)
-    AuthProto   - default 'MD5', authentication protocol [MD5, SHA] (v3)
-    AuthPass    - default <none>, authentication passphrase
-    PrivProto   - default 'DES', privacy protocol [DES] (v3)
-    PrivPass    - default <none>, privacy passphrase (v3)
     UseLongNames - set to non-zero to have <tags> for 'getnext' methods 
                   generated preferring longer Mib name convention (e.g., 
 		  system.sysDescr vs just sysDescr)
@@ -136,8 +123,40 @@
     ErrorNum    - read-only, holds the snmp_err or status of last request
     ErrorInd    - read-only, holds the snmp_err_index when appropriate
 
+   SNMPv1/SNMPv2c options:
+    Community   - default 'public', SNMP community string (used for both R/W)
+
+   SNMPv3 Options:
+    SecName     - default 'initial', security name (v3)
+    SecLevel    - default 'noAuthNoPriv', security level [noAuthNoPriv,
+                  authNoPriv, authPriv] (v3)
+    ContextEngineId - default <SecEngineId>, context engineID, will be
+                      probed if not supplied (v3)
+    Context     - default '', context name (v3)
+
+   SNMPv3 over TLS or DTLS options:
+    OurIdentity   - The fingerprint or file name for the local X.509
+                    certificate to use for our identity.  Run
+                    net-snmp-cert to create and manage certificates.
+    TheirIdentity - The fingerprint or file name for the local X.509
+                    certificate to use for their identity.  
+    TrustCert     - A trusted certificate to use for validating
+                    certificates.  Typically this would be a CA
+                    certificate.
+    TheirHostname - Their hostname to expect.  Either "TheirIdentity"
+    		    or a trusted certificate plus a hostname is needed
+    		    to validate the server is the proper server.
+    
+   SNMPv3 with USM security Options:
+    SecEngineId - default <none>, security engineID, will be probed if not
+                  supplied (v3)
+    AuthProto   - default 'MD5', authentication protocol [MD5, SHA] (v3)
+    AuthPass    - default <none>, authentication passphrase
+    PrivProto   - default 'DES', privacy protocol [DES] (v3)
+    PrivPass    - default <none>, privacy passphrase (v3)
+
    private:
-    sess_ptr   - internal field used to cache a created session structure
+    sess_ptr    - internal field used to cache a created session structure
 
    methods:
 
diff --git a/python/netsnmp/client.py b/python/netsnmp/client.py
index aa0472d..6fc4b2e 100644
--- a/python/netsnmp/client.py
+++ b/python/netsnmp/client.py
@@ -30,6 +30,10 @@
         'Engineboots':0,
         'Enginetime':0,
         'UseNumeric':0,
+        'OurIdentity':'',
+        'TheirIdentity':'',
+        'TheirHostname':'',
+        'TrustCert':''
         }
     keys = kargs.keys()
     for key in keys:
@@ -126,7 +130,28 @@
         for k,v in sess_args.items():
             self.__dict__[k] = v
 
-        if sess_args['Version'] == 3:
+            
+        # check for transports that may be tunneled
+        transportCheck = re.compile('^(tls|dtls|ssh)');
+        match = transportCheck.match(sess_args['DestHost'])
+
+        if match:
+            self.sess_ptr = client_intf.session_tunneled(
+                sess_args['Version'],
+                sess_args['DestHost'],
+                sess_args['LocalPort'],
+                sess_args['Retries'],
+                sess_args['Timeout'],
+                sess_args['SecName'],
+                secLevelMap[sess_args['SecLevel']],
+                sess_args['ContextEngineId'],
+                sess_args['Context'],
+                sess_args['OurIdentity'],
+                sess_args['TheirIdentity'],
+                sess_args['TheirHostname'],
+                sess_args['TrustCert'],
+                );
+        elif sess_args['Version'] == 3:
             self.sess_ptr = client_intf.session_v3(
                 sess_args['Version'],
                 sess_args['DestHost'],
diff --git a/python/netsnmp/client_intf.c b/python/netsnmp/client_intf.c
index 0d49d08..7bbd7bb 100644
--- a/python/netsnmp/client_intf.c
+++ b/python/netsnmp/client_intf.c
@@ -881,6 +881,7 @@
    if (ss == NULL) {
        *err_num = 0;
        *err_ind = SNMPERR_BAD_SESSION;
+       status = SNMPERR_BAD_SESSION;
        strlcpy(err_str, snmp_api_errstring(*err_ind), STR_BUF_SIZE);
        goto done;
    }
@@ -1296,6 +1297,99 @@
 }
 
 static PyObject *
+netsnmp_create_session_tunneled(PyObject *self, PyObject *args)
+{
+  int version;
+  char *peer;
+  int  lport;
+  int  retries;
+  int  timeout;
+  char *  sec_name;
+  int     sec_level;
+  char *  context_eng_id;
+  char *  context;
+  char *  our_identity;
+  char *  their_identity;
+  char *  their_hostname;
+  char *  trust_cert;
+  SnmpSession session = {0};
+  SnmpSession *ss = NULL;
+  int verbose = py_netsnmp_verbose();
+
+  if (!PyArg_ParseTuple(args, "isiiisissssss", &version,
+			&peer, &lport, &retries, &timeout,
+			&sec_name, &sec_level,
+			&context_eng_id, &context, 
+			&our_identity, &their_identity, 
+			&their_hostname, &trust_cert))
+    return NULL;
+
+  __libraries_init("python");
+  snmp_sess_init(&session);
+
+  if (version != 3) {
+    session.version = SNMP_VERSION_3;
+    if (verbose)
+        printf("Using version 3 as it's the only version that supports tunneling\n");
+  }
+
+  session.peername = peer;
+  session.retries = retries; /* 5 */
+  session.timeout = timeout; /* 1000000L */
+  session.contextNameLen = STRLEN(context);
+  session.contextName = context;
+  session.securityNameLen = STRLEN(sec_name);
+  session.securityName = sec_name;
+  session.securityLevel = sec_level;
+  session.securityModel = NETSNMP_TSM_SECURITY_MODEL;
+
+  /* create the transport configuration store */
+  if (!session.transport_configuration) {
+      netsnmp_container_init_list();
+      session.transport_configuration =
+          netsnmp_container_find("transport_configuration:fifo");
+      if (!session.transport_configuration) {
+          fprintf(stderr, "failed to initialize the transport configuration container\n");
+          return NULL;
+      }
+
+      session.transport_configuration->compare =
+          (netsnmp_container_compare*)
+          netsnmp_transport_config_compare;
+  }
+
+  if (our_identity && our_identity[0] != '\0')
+      CONTAINER_INSERT(session.transport_configuration,
+                       netsnmp_transport_create_config("our_identity",
+                                                       our_identity));
+
+  if (their_identity && their_identity[0] != '\0')
+      CONTAINER_INSERT(session.transport_configuration,
+                       netsnmp_transport_create_config("their_identity",
+                                                       their_identity));
+
+  if (their_hostname && their_hostname[0] != '\0')
+      CONTAINER_INSERT(session.transport_configuration,
+                       netsnmp_transport_create_config("their_hostname",
+                                                       their_hostname));
+
+  if (trust_cert && trust_cert[0] != '\0')
+      CONTAINER_INSERT(session.transport_configuration,
+                       netsnmp_transport_create_config("trust_cert",
+                                                       trust_cert));
+  
+  ss = snmp_sess_open(&session);
+
+  if (!ss)
+      return NULL;
+  /*
+   * Note: on a 64-bit system the statement below discards the upper 32 bits of
+   * "ss", which is most likely a bug.
+   */
+  return Py_BuildValue("i", (int)(uintptr_t)ss);
+}
+
+static PyObject *
 netsnmp_delete_session(PyObject *self, PyObject *args)
 {
   PyObject *session;
@@ -1760,11 +1854,14 @@
   int varlist_ind;
   netsnmp_session *ss;
   netsnmp_pdu *pdu, *response;
-  netsnmp_variable_list *vars;
+  netsnmp_pdu *newpdu;
+  netsnmp_variable_list *vars, *oldvars;
   struct tree *tp;
   int len;
-  oid *oid_arr;
-  int oid_arr_len;
+  oid **oid_arr = NULL;
+  int *oid_arr_len = NULL;
+  oid **oid_arr_broken_check = NULL;
+  int *oid_arr_broken_check_len = NULL;
   int type;
   char type_str[MAX_TYPE_NAME_LEN];
   int status;
@@ -1788,9 +1885,7 @@
   char *tmpstr;
   Py_ssize_t tmplen;
 	   
-  oid_arr = calloc(MAX_OID_LEN, sizeof(oid));
-
-  if (oid_arr && args) {
+  if (args) {
 
     if (!PyArg_ParseTuple(args, "OO", &session, &varlist)) {
       goto done;
@@ -1823,27 +1918,52 @@
     best_guess = py_netsnmp_attr_long(session, "BestGuess");
     retry_nosuch = py_netsnmp_attr_long(session, "RetryNoSuch");
         
-    varlist_iter = PyObject_GetIter(varlist);
-
     pdu = snmp_pdu_create(SNMP_MSG_GETNEXT);
     
-    /* get the initial starting oids*/
+    /* we need an initial count for memory allocation */
+    varlist_iter = PyObject_GetIter(varlist);
+    varlist_len = 0;
     while (varlist_iter && (varbind = PyIter_Next(varlist_iter))) {
+        varlist_len++;
+    }
+    Py_DECREF(varlist_iter);
+
+    oid_arr_len              = calloc(varlist_len, sizeof(int));
+    oid_arr_broken_check_len = calloc(varlist_len, sizeof(int));
+
+    oid_arr                  = calloc(varlist_len, sizeof(oid *));
+    oid_arr_broken_check     = calloc(varlist_len, sizeof(oid *));
+
+    for(varlist_ind = 0; varlist_ind < varlist_len; varlist_ind++) {
+
+        oid_arr[varlist_ind] = calloc(MAX_OID_LEN, sizeof(oid));
+        oid_arr_broken_check[varlist_ind] = calloc(MAX_OID_LEN, sizeof(oid));
+
+        oid_arr_len[varlist_ind]              = MAX_OID_LEN;
+        oid_arr_broken_check_len[varlist_ind] = MAX_OID_LEN;
+    }
+
+    /* get the initial starting oids*/
+    varlist_iter = PyObject_GetIter(varlist);
+    varlist_ind = 0;
+    while (varlist_iter && (varbind = PyIter_Next(varlist_iter))) {
+
       if (py_netsnmp_attr_string(varbind, "tag", &tag, NULL) < 0 ||
          py_netsnmp_attr_string(varbind, "iid", &iid, NULL) < 0)
       {
-        oid_arr_len = 0;
+        oid_arr_len[varlist_ind] = 0;
       } else {
-        tp = __tag2oid(tag, iid, oid_arr, &oid_arr_len, NULL, best_guess);
+        tp = __tag2oid(tag, iid,
+                       oid_arr[varlist_ind], &oid_arr_len[varlist_ind],
+                       NULL, best_guess);
       }
 
       if (_debug_level) 
 	printf("netsnmp_walk: filling request: %s:%s:%d:%d\n", 
-	       tag, iid, oid_arr_len,best_guess);
+	       tag, iid, oid_arr_len[varlist_ind],best_guess);
 
-      if (oid_arr_len) {
-        snmp_add_null_var(pdu, oid_arr, oid_arr_len);
-        varlist_len++;
+      if (oid_arr_len[varlist_ind]) {
+        snmp_add_null_var(pdu, oid_arr[varlist_ind], oid_arr_len[varlist_ind]);
       } else {
         if (verbose)
           printf("error: walk: unknown object ID (%s)",
@@ -1854,6 +1974,7 @@
       }
       /* release reference when done */
       Py_DECREF(varbind);
+      varlist_ind++;
     }
 
     if (varlist_iter)
@@ -1918,6 +2039,19 @@
       goto done;
     }
 
+    /* save the starting OID */
+
+    for(vars = pdu->variables, varlist_ind = 0;
+        vars != NULL;
+        vars = vars->next_variable, varlist_ind++) {
+
+        oid_arr_broken_check[varlist_ind] = calloc(MAX_OID_LEN, sizeof(oid));
+
+        oid_arr_broken_check_len[varlist_ind] = vars->name_length;
+        memcpy(oid_arr_broken_check[varlist_ind],
+               vars->name, vars->name_length * sizeof(oid));
+    }
+
     while(notdone) {
 
       status = __send_sync_pdu(ss, pdu, &response, retry_nosuch, 
@@ -1925,81 +2059,112 @@
       __py_netsnmp_update_session_errors(session, err_str, err_num, err_ind);
 
       if (!response || !response->variables ||
-          (response->variables->name_length < oid_arr_len) ||
-          (memcmp(oid_arr, response->variables->name,
-                  oid_arr_len * sizeof(oid))) ||
           status != STAT_SUCCESS ||
           response->errstat != SNMP_ERR_NOERROR) {
           notdone = 0;
       } else {
-        for(vars = (response ? response->variables : NULL), varlist_ind = 0;
-    	vars && (varlist_ind < varlist_len);
-    	vars = vars->next_variable, varlist_ind++) {
+          newpdu = snmp_pdu_create(SNMP_MSG_GETNEXT);
 
-          if ((vars->type == SNMP_ENDOFMIBVIEW) ||
-              (vars->type == SNMP_NOSUCHOBJECT) ||
-              (vars->type == SNMP_NOSUCHINSTANCE)) {
-              notdone = 0;
-              break;
-          }
+          for(vars = (response ? response->variables : NULL),
+                  varlist_ind = 0,
+                  oldvars = (pdu ? pdu->variables : NULL);
+              vars && (varlist_ind < varlist_len);
+              vars = vars->next_variable, varlist_ind++,
+                  oldvars = (oldvars ? oldvars->next_variable : NULL)) {
 
-          varbind = py_netsnmp_construct_varbind();
+              if ((vars->name_length < oid_arr_len[varlist_ind]) ||
+                  (memcmp(oid_arr[varlist_ind], vars->name,
+                          oid_arr_len[varlist_ind] * sizeof(oid)) != 0)) {
+                  notdone = 0;
+                  break;
+              }
 
-          if (PyObject_HasAttrString(varbind, "tag")) {
-    	  str_buf[0] = '.';
-    	  str_buf[1] = '\0';
-    	  out_len = 0;
-    	  tp = netsnmp_sprint_realloc_objid_tree(&str_bufp, &str_buf_len,
-                                                   &out_len, 0, &buf_over,
-                                                   vars->name,vars->name_length);
-    	  str_buf[sizeof(str_buf)-1] = '\0';
+              if ((vars->type == SNMP_ENDOFMIBVIEW) ||
+                  (vars->type == SNMP_NOSUCHOBJECT) ||
+                  (vars->type == SNMP_NOSUCHINSTANCE)) {
+                  notdone = 0;
+                  break;
+              }
 
-    	  if (__is_leaf(tp)) {
-	    type = (tp->type ? tp->type : tp->parent->type);
-    	    getlabel_flag &= ~NON_LEAF_NAME;
-    	  } else {
-    	    getlabel_flag |= NON_LEAF_NAME;
-    	    type = __translate_asn_type(vars->type);
-    	  }
+              if (snmp_oid_compare(vars->name, vars->name_length,
+                                   oid_arr_broken_check[varlist_ind],
+                                   oid_arr_broken_check_len[varlist_ind]) <= 0) {
+                  /* The agent responded with an illegal response
+                     as the returning OID was lexogragically less
+                     then or equal to the requested OID...
+                     We need to give up here because an infite
+                     loop will result otherwise.
 
-          __get_label_iid((char *) str_buf, &tag, &iid, getlabel_flag);
+                     XXX: this really should be an option to
+                     continue like the -Cc option to the snmpwalk
+                     application.
+                  */
+                  notdone = 0;
+                  break;
+              }
 
-    	  if (_debug_level) printf("netsnmp_walk: filling response: %s:%s\n", tag, iid);
+              varbind = py_netsnmp_construct_varbind();
 
-	  py_netsnmp_attr_set_string(varbind, "tag", tag, STRLEN(tag));
-	  py_netsnmp_attr_set_string(varbind, "iid", iid, STRLEN(iid));
+              if (PyObject_HasAttrString(varbind, "tag")) {
+                  str_buf[0] = '.';
+                  str_buf[1] = '\0';
+                  out_len = 0;
+                  tp = netsnmp_sprint_realloc_objid_tree(&str_bufp, &str_buf_len,
+                                                         &out_len, 0, &buf_over,
+                                                         vars->name,vars->name_length);
+                  str_buf[sizeof(str_buf)-1] = '\0';
 
-    	  __get_type_str(type, type_str);
+                  if (__is_leaf(tp)) {
+                      type = (tp->type ? tp->type : tp->parent->type);
+                      getlabel_flag &= ~NON_LEAF_NAME;
+                  } else {
+                      getlabel_flag |= NON_LEAF_NAME;
+                      type = __translate_asn_type(vars->type);
+                  }
 
-	  py_netsnmp_attr_set_string(varbind, "type", type_str, 
-				     strlen(type_str));
+                  __get_label_iid((char *) str_buf, &tag, &iid, getlabel_flag);
 
-    	  len = __snprint_value((char *) str_buf,sizeof(str_buf),
-				vars,tp,type,sprintval_flag);
-    	  str_buf[len] = '\0';
+                  if (_debug_level) printf("netsnmp_walk: filling response: %s:%s\n", tag, iid);
 
-	  py_netsnmp_attr_set_string(varbind, "val", (char *) str_buf, len);
+                  py_netsnmp_attr_set_string(varbind, "tag", tag, STRLEN(tag));
+                  py_netsnmp_attr_set_string(varbind, "iid", iid, STRLEN(iid));
+
+                  __get_type_str(type, type_str);
+
+                  py_netsnmp_attr_set_string(varbind, "type", type_str,
+                                             strlen(type_str));
+
+                  len = __snprint_value((char *) str_buf,sizeof(str_buf),
+                                        vars,tp,type,sprintval_flag);
+                  str_buf[len] = '\0';
+
+                  py_netsnmp_attr_set_string(varbind, "val", (char *) str_buf,
+                                             len);
             
-	  /* push the varbind onto the return varbinds */
-	  PyList_Append(varbinds, varbind);
+                  /* push the varbind onto the return varbinds */
+                  PyList_Append(varbinds, varbind);
 
-    	  /* save in return tuple as well */
-	  /* save in return tuple as well - steals ref */
-	  _PyTuple_Resize(&val_tuple, result_count+1);
-	  PyTuple_SetItem(val_tuple, result_count++,
-			Py_BuildValue("s#", str_buf, len));
-          } else {
-	    /* Return None for this variable. */
-            _PyTuple_Resize(&val_tuple, result_count+1);
-	    PyTuple_SetItem(val_tuple, result_count++, Py_BuildValue(""));
-	    printf("netsnmp_walk: bad varbind (%d)\n", varlist_ind);
-          }	
-          Py_XDECREF(varbind);
-        }
-        /* reuse the response as the next pdu to send */
-        pdu = snmp_pdu_create(SNMP_MSG_GETNEXT);
-        snmp_add_null_var(pdu, response->variables->name,
-                          response->variables->name_length);
+                  /* save in return tuple as well */
+                  /* save in return tuple as well - steals ref */
+                  _PyTuple_Resize(&val_tuple, result_count+1);
+                  PyTuple_SetItem(val_tuple, result_count++, 
+                                  Py_BuildValue("s#", str_buf, len));
+              } else {
+                  /* Return None for this variable. */
+                  _PyTuple_Resize(&val_tuple, result_count+1);
+                  PyTuple_SetItem(val_tuple, result_count++, Py_BuildValue(""));
+                  printf("netsnmp_walk: bad varbind (%d)\n", varlist_ind);
+              }
+              Py_XDECREF(varbind);
+
+              memcpy(oid_arr_broken_check[varlist_ind], vars->name,
+                     sizeof(oid) * vars->name_length);
+              oid_arr_broken_check_len[varlist_ind] = vars->name_length;
+
+              snmp_add_null_var(newpdu, vars->name,
+                                vars->name_length);
+          }
+          pdu = newpdu;
       }
       if (response)
 	snmp_free_pdu(response);
@@ -2021,7 +2186,14 @@
 
  done:
   Py_XDECREF(varbinds);
+  SAFE_FREE(oid_arr_len);
+  SAFE_FREE(oid_arr_broken_check_len);
+  for(varlist_ind = 0; varlist_ind < varlist_len; varlist_ind ++) {
+      SAFE_FREE(oid_arr[varlist_ind]);
+      SAFE_FREE(oid_arr_broken_check[varlist_ind]);
+  }
   SAFE_FREE(oid_arr);
+  SAFE_FREE(oid_arr_broken_check);
   return (val_tuple ? val_tuple : Py_BuildValue(""));
 }
 
@@ -2418,6 +2590,8 @@
    "create a netsnmp session."},
   {"session_v3",  netsnmp_create_session_v3, METH_VARARGS,
    "create a netsnmp session."},
+  {"session_tunneled",  netsnmp_create_session_tunneled, METH_VARARGS,
+   "create a tunneled netsnmp session over tls, dtls or ssh."},
   {"delete_session",  netsnmp_delete_session, METH_VARARGS,
    "create a netsnmp session."},
   {"get",  netsnmp_get, METH_VARARGS,
diff --git a/python/netsnmp/tests/snmpd.conf b/python/netsnmp/tests/snmpd.conf
index 16a0bf2..b62e4c7 100644
--- a/python/netsnmp/tests/snmpd.conf
+++ b/python/netsnmp/tests/snmpd.conf
@@ -418,3 +418,8 @@
 #  See the snmpd.conf manual page, and the output of "snmpd -H".
 #  MUCH more can be done with the snmpd.conf than is shown as an
 #  example here.
+
+certSecName 10 D020A78EAF99FCE276AA9F43063A69698E4F75D1 --rfc822
+rwuser -s tsm hardaker@wjh.hardakers.net
+
+trustCert D020A78EAF99FCE276AA9F43063A69698E4F75D1
diff --git a/python/netsnmp/tests/test.py b/python/netsnmp/tests/test.py
index a3230b2..e3982f4 100644
--- a/python/netsnmp/tests/test.py
+++ b/python/netsnmp/tests/test.py
@@ -19,7 +19,7 @@
 
         var = netsnmp.Varbind('.1.3.6.1.2.1.1.1','0')
 
-        print "----------------------------------------\n"
+        print "---v1 GET tests -------------------------------------\n"
         res = netsnmp.snmpget(var,
                               Version = 1,
                               DestHost='localhost',
@@ -29,7 +29,7 @@
 
         print "v1 get var: ",  var.tag, var.iid, "=", var.val, '(',var.type,')'
         
-        print "----------------------------------------\n"
+        print "---v1 GETNEXT tests-------------------------------------\n"
         res = netsnmp.snmpgetnext(var,
                                   Version = 1,
                                   DestHost='localhost',
@@ -39,7 +39,7 @@
                 
         print "v1 getnext var: ",  var.tag, var.iid, "=", var.val, '(',var.type,')'
         
-        print "----------------------------------------\n"
+        print "---v1 SET tests-------------------------------------\n"
         var = netsnmp.Varbind('sysLocation','0', 'my new location')
         res = netsnmp.snmpset(var,
                         Version = 1,
@@ -50,7 +50,7 @@
 
         print "v1 set var: ",  var.tag, var.iid, "=", var.val, '(',var.type,')'
         
-        print "----------------------------------------\n"
+        print "---v1 walk tests-------------------------------------\n"
         vars = netsnmp.VarList(netsnmp.Varbind('system'))
 
         print "v1 varlist walk in: "
@@ -67,7 +67,7 @@
             print var.tag, var.iid, "=", var.val, '(',var.type,')'
        
         
-        print "----------------------------------------\n"
+        print "---v1 walk 2-------------------------------------\n"
 
         print "v1 varbind walk in: "
         var = netsnmp.Varbind('system')
@@ -79,7 +79,7 @@
 
         print var.tag, var.iid, "=", var.val, '(',var.type,')'
         
-        print "----------------------------------------\n"
+        print "---v1 multi-varbind test-------------------------------------\n"
         sess = netsnmp.Session(Version=1,
                                DestHost='localhost',
                                Community='public')
@@ -111,14 +111,14 @@
         for var in vars:
             print var.tag, var.iid, "=", var.val, '(',var.type,')'
 
-        print "----------------------------------------\n"
+        print "---v1 set2-------------------------------------\n"
 
         vars = netsnmp.VarList(
             netsnmp.Varbind('sysLocation', '0', 'my newer location'))
         res = sess.set(vars)
         print "v1 sess.set result: ", res, "\n"
 
-        print "----------------------------------------\n"
+        print "---v1 walk3-------------------------------------\n"
         vars = netsnmp.VarList(netsnmp.Varbind('system'))
                 
         vals = sess.walk(vars)
@@ -127,7 +127,7 @@
         for var in vars:
             print "  ",var.tag, var.iid, "=", var.val, '(',var.type,')'
             
-        print "----------------------------------------\n"
+        print "---v2c get-------------------------------------\n"
 
         sess = netsnmp.Session(Version=2,
                                DestHost='localhost',
@@ -142,7 +142,7 @@
         vals = sess.get(vars)
         print "v2 sess.get result: ", vals, "\n"
 
-        print "----------------------------------------\n"
+        print "---v2c getnext-------------------------------------\n"
 
         for var in vars:
             print var.tag, var.iid, "=", var.val, '(',var.type,')'
@@ -155,7 +155,7 @@
             print var.tag, var.iid, "=", var.val, '(',var.type,')'
         print "\n"
        
-        print "----------------------------------------\n"
+        print "---v2c getbulk-------------------------------------\n"
 
         vars = netsnmp.VarList(netsnmp.Varbind('sysUpTime'),
                                netsnmp.Varbind('sysORLastChange'),
@@ -170,7 +170,7 @@
             print var.tag, var.iid, "=", var.val, '(',var.type,')'
         print "\n"
 
-        print "----------------------------------------\n"
+        print "---v2c set-------------------------------------\n"
 
         vars = netsnmp.VarList(
             netsnmp.Varbind('sysLocation','0','my even newer location'))
@@ -178,7 +178,7 @@
         res = sess.set(vars)
         print "v2 sess.set result: ", res, "\n"
 
-        print "----------------------------------------\n"
+        print "---v2c walk-------------------------------------\n"
         vars = netsnmp.VarList(netsnmp.Varbind('system'))
                 
         vals = sess.walk(vars)
@@ -187,7 +187,7 @@
         for var in vars:
             print "  ",var.tag, var.iid, "=", var.val, '(',var.type,')'
             
-        print "----------------------------------------\n"
+        print "---v3 setup-------------------------------------\n"
         sess = netsnmp.Session(Version=3,
                                DestHost='localhost',
                                SecLevel='authPriv',
@@ -200,7 +200,7 @@
         vars = netsnmp.VarList(netsnmp.Varbind('sysUpTime', 0),
                                netsnmp.Varbind('sysContact', 0),
                                netsnmp.Varbind('sysLocation', 0))
-        print "----------------------------------------\n"
+        print "---v3 get-------------------------------------\n"
         vals = sess.get(vars)
         print "v3 sess.get result: ", vals, "\n"
         
@@ -208,7 +208,7 @@
             print var.tag, var.iid, "=", var.val, '(',var.type,')'
         print "\n"
 
-        print "----------------------------------------\n"
+        print "---v3 getnext-------------------------------------\n"
        
         vals = sess.getnext(vars)
         print "v3 sess.getnext result: ", vals, "\n"
@@ -230,14 +230,14 @@
             print var.tag, var.iid, "=", var.val, '(',var.type,')'
         print "\n"
 
-        print "----------------------------------------\n"
+        print "---v3 set-------------------------------------\n"
 
         vars = netsnmp.VarList(
             netsnmp.Varbind('sysLocation','0', 'my final destination'))
         res = sess.set(vars)
         print "v3 sess.set result: ", res, "\n"
         
-        print "----------------------------------------\n"
+        print "---v3 walk-------------------------------------\n"
         vars = netsnmp.VarList(netsnmp.Varbind('system'))
                 
         vals = sess.walk(vars)
@@ -245,7 +245,7 @@
         
         for var in vars:
             print "  ",var.tag, var.iid, "=", var.val, '(',var.type,')'
-            
+
 
 class SetTests(unittest.TestCase):
     def testFuncs(self):        
diff --git a/snmplib/Makefile.depend b/snmplib/Makefile.depend
index 7b903f2..aa0534b 100644
--- a/snmplib/Makefile.depend
+++ b/snmplib/Makefile.depend
@@ -7,7 +7,8 @@
 ./asn1.lo: ../include/net-snmp/machine/generic.h 
 ./asn1.lo:  ../include/net-snmp/output_api.h
 ./asn1.lo: ../include/net-snmp/types.h 
-./asn1.lo:  ../include/net-snmp/library/types.h
+./asn1.lo:  ../include/net-snmp/library/oid.h
+./asn1.lo: ../include/net-snmp/library/types.h
 ./asn1.lo: ../include/net-snmp/definitions.h
 ./asn1.lo: ../include/net-snmp/library/snmp_api.h
 ./asn1.lo: ../include/net-snmp/varbind_api.h
@@ -20,8 +21,12 @@
 ./asn1.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./asn1.lo: ../include/net-snmp/library/snmpUnixDomain.h 
 ./asn1.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./asn1.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./asn1.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./asn1.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./asn1.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./asn1.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./asn1.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./asn1.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./asn1.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./asn1.lo:  ../include/net-snmp/library/ucd_compat.h
@@ -55,6 +60,7 @@
 ./callback.lo: ../include/net-snmp/system/generic.h
 ./callback.lo: ../include/net-snmp/machine/generic.h 
 ./callback.lo: ../include/net-snmp/types.h 
+./callback.lo: ../include/net-snmp/library/oid.h
 ./callback.lo: ../include/net-snmp/library/types.h
 ./callback.lo: ../include/net-snmp/definitions.h
 ./callback.lo: ../include/net-snmp/library/snmp_api.h
@@ -62,6 +68,9 @@
 ./callback.lo: ../include/net-snmp/library/snmp_client.h
 ./callback.lo: ../include/net-snmp/pdu_api.h
 ./callback.lo: ../include/net-snmp/library/asn1.h
+./callback.lo: ../include/net-snmp/output_api.h
+./callback.lo: ../include/net-snmp/library/snmp_debug.h
+./callback.lo: ../include/net-snmp/library/snmp_logging.h
 ./callback.lo: ../include/net-snmp/session_api.h
 ./callback.lo: ../include/net-snmp/library/callback.h
 ./callback.lo: ../include/net-snmp/library/snmp_transport.h
@@ -69,8 +78,12 @@
 ./callback.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./callback.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./callback.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./callback.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./callback.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./callback.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./callback.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./callback.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./callback.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./callback.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./callback.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./callback.lo: ../include/net-snmp/library/ucd_compat.h
@@ -81,9 +94,6 @@
 ./callback.lo: ../include/net-snmp/library/snmp_impl.h
 ./callback.lo: ../include/net-snmp/library/snmp.h
 ./callback.lo: ../include/net-snmp/library/snmp-tc.h
-./callback.lo: ../include/net-snmp/output_api.h
-./callback.lo: ../include/net-snmp/library/snmp_debug.h
-./callback.lo: ../include/net-snmp/library/snmp_logging.h
 ./callback.lo: ../include/net-snmp/utilities.h
 ./callback.lo: ../include/net-snmp/library/system.h
 ./callback.lo: ../include/net-snmp/library/tools.h
@@ -100,20 +110,77 @@
 ./callback.lo: ../include/net-snmp/library/container.h
 ./callback.lo: ../include/net-snmp/library/snmp_assert.h
 ./callback.lo: ../include/net-snmp/version.h
+./cert_util.lo: ../include/net-snmp/net-snmp-config.h
+./cert_util.lo: ../include/net-snmp/system/linux.h
+./cert_util.lo: ../include/net-snmp/system/sysv.h
+./cert_util.lo: ../include/net-snmp/system/generic.h
+./cert_util.lo: ../include/net-snmp/machine/generic.h 
+./cert_util.lo:  ../include/net-snmp/types.h
+./cert_util.lo:  ../include/net-snmp/library/oid.h
+./cert_util.lo: ../include/net-snmp/library/types.h
+./cert_util.lo: ../include/net-snmp/definitions.h
+./cert_util.lo: ../include/net-snmp/library/snmp_api.h
+./cert_util.lo: ../include/net-snmp/varbind_api.h
+./cert_util.lo: ../include/net-snmp/library/snmp_client.h
+./cert_util.lo: ../include/net-snmp/pdu_api.h
+./cert_util.lo: ../include/net-snmp/library/asn1.h
+./cert_util.lo: ../include/net-snmp/output_api.h
+./cert_util.lo: ../include/net-snmp/library/snmp_debug.h
+./cert_util.lo: ../include/net-snmp/library/snmp_logging.h
+./cert_util.lo: ../include/net-snmp/session_api.h
+./cert_util.lo: ../include/net-snmp/library/callback.h
+./cert_util.lo: ../include/net-snmp/library/snmp_transport.h
+./cert_util.lo: ../include/net-snmp/library/snmp_service.h
+./cert_util.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./cert_util.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./cert_util.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./cert_util.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./cert_util.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./cert_util.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./cert_util.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./cert_util.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./cert_util.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./cert_util.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./cert_util.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./cert_util.lo: ../include/net-snmp/library/ucd_compat.h
+./cert_util.lo: ../include/net-snmp/library/mib.h
+./cert_util.lo: ../include/net-snmp/mib_api.h
+./cert_util.lo: ../include/net-snmp/library/parse.h
+./cert_util.lo: ../include/net-snmp/library/oid_stash.h
+./cert_util.lo: ../include/net-snmp/library/snmp_impl.h
+./cert_util.lo: ../include/net-snmp/library/snmp.h
+./cert_util.lo: ../include/net-snmp/library/snmp-tc.h
+./cert_util.lo: ../include/net-snmp/config_api.h
+./cert_util.lo: ../include/net-snmp/library/read_config.h
+./cert_util.lo: ../include/net-snmp/library/default_store.h
+./cert_util.lo: ../include/net-snmp/net-snmp-config.h
+./cert_util.lo: ../include/net-snmp/library/snmp_parse_args.h
+./cert_util.lo: ../include/net-snmp/library/snmp_enum.h
+./cert_util.lo: ../include/net-snmp/library/vacm.h
+./cert_util.lo: ../include/net-snmp/library/snmp_assert.h
+./cert_util.lo: ../include/net-snmp/library/system.h
+./cert_util.lo: ../include/net-snmp/library/tools.h
+./cert_util.lo: ../include/net-snmp/library/container.h
+./cert_util.lo: ../include/net-snmp/library/factory.h
+./cert_util.lo: ../include/net-snmp/library/data_list.h
+./cert_util.lo: ../include/net-snmp/library/file_utils.h
+./cert_util.lo: ../include/net-snmp/library/dir_utils.h
+./cert_util.lo: ../include/net-snmp/library/cert_util.h
+./cert_util.lo: ../include/net-snmp/library/snmp_openssl.h
 ./check_varbind.lo: ../include/net-snmp/net-snmp-config.h
-./check_varbind.lo: ../include/net-snmp/system/linux.h
-./check_varbind.lo: ../include/net-snmp/system/sysv.h
-./check_varbind.lo: ../include/net-snmp/system/generic.h
-./check_varbind.lo: ../include/net-snmp/machine/generic.h
 ./check_varbind.lo: ../include/net-snmp/net-snmp-includes.h
 ./check_varbind.lo:  ../include/net-snmp/definitions.h
 ./check_varbind.lo: ../include/net-snmp/types.h 
+./check_varbind.lo: ../include/net-snmp/library/oid.h
 ./check_varbind.lo: ../include/net-snmp/library/types.h
 ./check_varbind.lo: ../include/net-snmp/library/snmp_api.h
 ./check_varbind.lo: ../include/net-snmp/varbind_api.h
 ./check_varbind.lo: ../include/net-snmp/library/snmp_client.h
 ./check_varbind.lo: ../include/net-snmp/pdu_api.h
 ./check_varbind.lo: ../include/net-snmp/library/asn1.h
+./check_varbind.lo: ../include/net-snmp/output_api.h
+./check_varbind.lo: ../include/net-snmp/library/snmp_debug.h
+./check_varbind.lo: ../include/net-snmp/library/snmp_logging.h
 ./check_varbind.lo: ../include/net-snmp/session_api.h
 ./check_varbind.lo: ../include/net-snmp/library/callback.h
 ./check_varbind.lo: ../include/net-snmp/library/snmp_transport.h
@@ -121,8 +188,12 @@
 ./check_varbind.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./check_varbind.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./check_varbind.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./check_varbind.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./check_varbind.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./check_varbind.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./check_varbind.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./check_varbind.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./check_varbind.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./check_varbind.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./check_varbind.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./check_varbind.lo: ../include/net-snmp/library/ucd_compat.h
@@ -134,7 +205,7 @@
 ./check_varbind.lo: ../include/net-snmp/library/snmp.h
 ./check_varbind.lo: ../include/net-snmp/library/snmp-tc.h
 ./check_varbind.lo: ../include/net-snmp/library/getopt.h
-./check_varbind.lo: ../include/net-snmp/utilities.h
+./check_varbind.lo: ../include/net-snmp/utilities.h 
 ./check_varbind.lo: ../include/net-snmp/library/system.h
 ./check_varbind.lo: ../include/net-snmp/library/tools.h
 ./check_varbind.lo: ../include/net-snmp/library/int64.h
@@ -144,7 +215,6 @@
 ./check_varbind.lo: ../include/net-snmp/library/check_varbind.h
 ./check_varbind.lo: ../include/net-snmp/library/container.h
 ./check_varbind.lo: ../include/net-snmp/library/factory.h
-./check_varbind.lo: ../include/net-snmp/library/snmp_logging.h
 ./check_varbind.lo: ../include/net-snmp/library/container_binary_array.h
 ./check_varbind.lo: ../include/net-snmp/library/container_list_ssll.h
 ./check_varbind.lo: ../include/net-snmp/library/container_iterator.h
@@ -157,8 +227,6 @@
 ./check_varbind.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./check_varbind.lo: ../include/net-snmp/library/snmp_enum.h
 ./check_varbind.lo: ../include/net-snmp/library/vacm.h
-./check_varbind.lo: ../include/net-snmp/output_api.h
-./check_varbind.lo: ../include/net-snmp/library/snmp_debug.h
 ./check_varbind.lo: ../include/net-snmp/snmpv3_api.h
 ./check_varbind.lo: ../include/net-snmp/library/snmpv3.h
 ./check_varbind.lo: ../include/net-snmp/library/transform_oids.h
@@ -167,26 +235,60 @@
 ./check_varbind.lo: ../include/net-snmp/library/lcd_time.h
 ./check_varbind.lo: ../include/net-snmp/library/snmp_secmod.h
 ./check_varbind.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./check_varbind.lo: ../include/net-snmp/library/snmptsm.h
 ./check_varbind.lo: ../include/net-snmp/library/snmpusm.h
+./closedir.lo: ../include/net-snmp/net-snmp-config.h
+./closedir.lo: ../include/net-snmp/types.h 
+./closedir.lo: ../include/net-snmp/library/oid.h
+./closedir.lo: ../include/net-snmp/library/types.h
+./closedir.lo: ../include/net-snmp/definitions.h
+./closedir.lo: ../include/net-snmp/library/snmp_api.h
+./closedir.lo: ../include/net-snmp/varbind_api.h
+./closedir.lo: ../include/net-snmp/library/snmp_client.h
+./closedir.lo: ../include/net-snmp/pdu_api.h
+./closedir.lo: ../include/net-snmp/library/asn1.h
+./closedir.lo: ../include/net-snmp/output_api.h
+./closedir.lo: ../include/net-snmp/library/snmp_debug.h
+./closedir.lo: ../include/net-snmp/library/snmp_logging.h
+./closedir.lo: ../include/net-snmp/session_api.h
+./closedir.lo: ../include/net-snmp/library/callback.h
+./closedir.lo: ../include/net-snmp/library/snmp_transport.h
+./closedir.lo: ../include/net-snmp/library/snmp_service.h
+./closedir.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./closedir.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./closedir.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./closedir.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./closedir.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./closedir.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./closedir.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./closedir.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./closedir.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./closedir.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./closedir.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./closedir.lo: ../include/net-snmp/library/ucd_compat.h
+./closedir.lo: ../include/net-snmp/library/mib.h
+./closedir.lo: ../include/net-snmp/mib_api.h
+./closedir.lo: ../include/net-snmp/library/parse.h
+./closedir.lo: ../include/net-snmp/library/oid_stash.h
+./closedir.lo: ../include/net-snmp/library/snmp_impl.h
+./closedir.lo: ../include/net-snmp/library/snmp.h
+./closedir.lo: ../include/net-snmp/library/snmp-tc.h
+./closedir.lo: ../include/net-snmp/library/system.h
 ./cmu_compat.lo: ../include/net-snmp/net-snmp-config.h
-./cmu_compat.lo: ../include/net-snmp/system/linux.h
-./cmu_compat.lo: ../include/net-snmp/system/sysv.h
-./cmu_compat.lo: ../include/net-snmp/system/generic.h
-./cmu_compat.lo: ../include/net-snmp/machine/generic.h
 ./container_binary_array.lo: ../include/net-snmp/net-snmp-config.h
-./container_binary_array.lo: ../include/net-snmp/system/linux.h
-./container_binary_array.lo: ../include/net-snmp/system/sysv.h
-./container_binary_array.lo: ../include/net-snmp/system/generic.h
-./container_binary_array.lo: ../include/net-snmp/machine/generic.h
 ./container_binary_array.lo: ../include/net-snmp/net-snmp-includes.h
 ./container_binary_array.lo: ../include/net-snmp/definitions.h
 ./container_binary_array.lo: ../include/net-snmp/types.h
+./container_binary_array.lo: ../include/net-snmp/library/oid.h
 ./container_binary_array.lo: ../include/net-snmp/library/types.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmp_api.h
 ./container_binary_array.lo: ../include/net-snmp/varbind_api.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmp_client.h
 ./container_binary_array.lo: ../include/net-snmp/pdu_api.h
 ./container_binary_array.lo: ../include/net-snmp/library/asn1.h
+./container_binary_array.lo: ../include/net-snmp/output_api.h
+./container_binary_array.lo: ../include/net-snmp/library/snmp_debug.h
+./container_binary_array.lo: ../include/net-snmp/library/snmp_logging.h
 ./container_binary_array.lo: ../include/net-snmp/session_api.h
 ./container_binary_array.lo: ../include/net-snmp/library/callback.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmp_transport.h
@@ -194,8 +296,12 @@
 ./container_binary_array.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./container_binary_array.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./container_binary_array.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./container_binary_array.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./container_binary_array.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./container_binary_array.lo: ../include/net-snmp/library/ucd_compat.h
@@ -217,7 +323,6 @@
 ./container_binary_array.lo: ../include/net-snmp/library/check_varbind.h
 ./container_binary_array.lo: ../include/net-snmp/library/container.h
 ./container_binary_array.lo: ../include/net-snmp/library/factory.h
-./container_binary_array.lo: ../include/net-snmp/library/snmp_logging.h
 ./container_binary_array.lo: ../include/net-snmp/library/container_binary_array.h
 ./container_binary_array.lo: ../include/net-snmp/library/container_list_ssll.h
 ./container_binary_array.lo: ../include/net-snmp/library/container_iterator.h
@@ -230,8 +335,6 @@
 ./container_binary_array.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmp_enum.h
 ./container_binary_array.lo: ../include/net-snmp/library/vacm.h
-./container_binary_array.lo: ../include/net-snmp/output_api.h
-./container_binary_array.lo: ../include/net-snmp/library/snmp_debug.h
 ./container_binary_array.lo: ../include/net-snmp/snmpv3_api.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmpv3.h
 ./container_binary_array.lo: ../include/net-snmp/library/transform_oids.h
@@ -240,21 +343,22 @@
 ./container_binary_array.lo: ../include/net-snmp/library/lcd_time.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmp_secmod.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./container_binary_array.lo: ../include/net-snmp/library/snmptsm.h
 ./container_binary_array.lo: ../include/net-snmp/library/snmpusm.h
 ./container.lo: ../include/net-snmp/net-snmp-config.h
-./container.lo: ../include/net-snmp/system/linux.h
-./container.lo: ../include/net-snmp/system/sysv.h
-./container.lo: ../include/net-snmp/system/generic.h
-./container.lo: ../include/net-snmp/machine/generic.h
 ./container.lo: ../include/net-snmp/net-snmp-includes.h 
 ./container.lo:  ../include/net-snmp/definitions.h
 ./container.lo: ../include/net-snmp/types.h 
+./container.lo: ../include/net-snmp/library/oid.h
 ./container.lo: ../include/net-snmp/library/types.h
 ./container.lo: ../include/net-snmp/library/snmp_api.h
 ./container.lo: ../include/net-snmp/varbind_api.h
 ./container.lo: ../include/net-snmp/library/snmp_client.h
 ./container.lo: ../include/net-snmp/pdu_api.h
 ./container.lo: ../include/net-snmp/library/asn1.h
+./container.lo: ../include/net-snmp/output_api.h
+./container.lo: ../include/net-snmp/library/snmp_debug.h
+./container.lo: ../include/net-snmp/library/snmp_logging.h
 ./container.lo: ../include/net-snmp/session_api.h
 ./container.lo: ../include/net-snmp/library/callback.h
 ./container.lo: ../include/net-snmp/library/snmp_transport.h
@@ -262,8 +366,12 @@
 ./container.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./container.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./container.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./container.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./container.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./container.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./container.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./container.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./container.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./container.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./container.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./container.lo: ../include/net-snmp/library/ucd_compat.h
@@ -275,7 +383,7 @@
 ./container.lo: ../include/net-snmp/library/snmp.h
 ./container.lo: ../include/net-snmp/library/snmp-tc.h
 ./container.lo: ../include/net-snmp/library/getopt.h
-./container.lo: ../include/net-snmp/utilities.h
+./container.lo: ../include/net-snmp/utilities.h 
 ./container.lo: ../include/net-snmp/library/system.h
 ./container.lo: ../include/net-snmp/library/tools.h
 ./container.lo: ../include/net-snmp/library/int64.h
@@ -283,9 +391,8 @@
 ./container.lo: ../include/net-snmp/library/snmp_alarm.h
 ./container.lo: ../include/net-snmp/library/data_list.h
 ./container.lo: ../include/net-snmp/library/check_varbind.h
-./container.lo: ../include/net-snmp/library/container.h
-./container.lo: ../include/net-snmp/library/factory.h
-./container.lo: ../include/net-snmp/library/snmp_logging.h
+./container.lo: ../include/net-snmp/library/container.h 
+./container.lo:  ../include/net-snmp/library/factory.h
 ./container.lo: ../include/net-snmp/library/container_binary_array.h
 ./container.lo: ../include/net-snmp/library/container_list_ssll.h
 ./container.lo: ../include/net-snmp/library/container_iterator.h
@@ -298,8 +405,6 @@
 ./container.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./container.lo: ../include/net-snmp/library/snmp_enum.h
 ./container.lo: ../include/net-snmp/library/vacm.h
-./container.lo: ../include/net-snmp/output_api.h
-./container.lo: ../include/net-snmp/library/snmp_debug.h
 ./container.lo: ../include/net-snmp/snmpv3_api.h
 ./container.lo: ../include/net-snmp/library/snmpv3.h
 ./container.lo: ../include/net-snmp/library/transform_oids.h
@@ -308,22 +413,23 @@
 ./container.lo: ../include/net-snmp/library/lcd_time.h
 ./container.lo: ../include/net-snmp/library/snmp_secmod.h
 ./container.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./container.lo: ../include/net-snmp/library/snmptsm.h
 ./container.lo: ../include/net-snmp/library/snmpusm.h
 ./container.lo: ../include/net-snmp/library/container_null.h
 ./container_iterator.lo: ../include/net-snmp/net-snmp-config.h
-./container_iterator.lo: ../include/net-snmp/system/linux.h
-./container_iterator.lo: ../include/net-snmp/system/sysv.h
-./container_iterator.lo: ../include/net-snmp/system/generic.h
-./container_iterator.lo: ../include/net-snmp/machine/generic.h
 ./container_iterator.lo: ../include/net-snmp/net-snmp-includes.h
 ./container_iterator.lo: ../include/net-snmp/definitions.h
 ./container_iterator.lo: ../include/net-snmp/types.h 
+./container_iterator.lo: ../include/net-snmp/library/oid.h
 ./container_iterator.lo: ../include/net-snmp/library/types.h
 ./container_iterator.lo: ../include/net-snmp/library/snmp_api.h
 ./container_iterator.lo: ../include/net-snmp/varbind_api.h
 ./container_iterator.lo: ../include/net-snmp/library/snmp_client.h
 ./container_iterator.lo: ../include/net-snmp/pdu_api.h
 ./container_iterator.lo: ../include/net-snmp/library/asn1.h
+./container_iterator.lo: ../include/net-snmp/output_api.h
+./container_iterator.lo: ../include/net-snmp/library/snmp_debug.h
+./container_iterator.lo: ../include/net-snmp/library/snmp_logging.h
 ./container_iterator.lo: ../include/net-snmp/session_api.h
 ./container_iterator.lo: ../include/net-snmp/library/callback.h
 ./container_iterator.lo: ../include/net-snmp/library/snmp_transport.h
@@ -331,8 +437,12 @@
 ./container_iterator.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./container_iterator.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./container_iterator.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./container_iterator.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./container_iterator.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./container_iterator.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./container_iterator.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./container_iterator.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./container_iterator.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./container_iterator.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./container_iterator.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./container_iterator.lo: ../include/net-snmp/library/ucd_compat.h
@@ -354,7 +464,6 @@
 ./container_iterator.lo: ../include/net-snmp/library/check_varbind.h
 ./container_iterator.lo: ../include/net-snmp/library/container.h
 ./container_iterator.lo: ../include/net-snmp/library/factory.h
-./container_iterator.lo: ../include/net-snmp/library/snmp_logging.h
 ./container_iterator.lo: ../include/net-snmp/library/container_binary_array.h
 ./container_iterator.lo: ../include/net-snmp/library/container_list_ssll.h
 ./container_iterator.lo: ../include/net-snmp/library/container_iterator.h
@@ -367,8 +476,6 @@
 ./container_iterator.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./container_iterator.lo: ../include/net-snmp/library/snmp_enum.h
 ./container_iterator.lo: ../include/net-snmp/library/vacm.h
-./container_iterator.lo: ../include/net-snmp/output_api.h
-./container_iterator.lo: ../include/net-snmp/library/snmp_debug.h
 ./container_iterator.lo: ../include/net-snmp/snmpv3_api.h
 ./container_iterator.lo: ../include/net-snmp/library/snmpv3.h
 ./container_iterator.lo: ../include/net-snmp/library/transform_oids.h
@@ -377,21 +484,22 @@
 ./container_iterator.lo: ../include/net-snmp/library/lcd_time.h
 ./container_iterator.lo: ../include/net-snmp/library/snmp_secmod.h
 ./container_iterator.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./container_iterator.lo: ../include/net-snmp/library/snmptsm.h
 ./container_iterator.lo: ../include/net-snmp/library/snmpusm.h
 ./container_list_ssll.lo: ../include/net-snmp/net-snmp-config.h
-./container_list_ssll.lo: ../include/net-snmp/system/linux.h
-./container_list_ssll.lo: ../include/net-snmp/system/sysv.h
-./container_list_ssll.lo: ../include/net-snmp/system/generic.h
-./container_list_ssll.lo: ../include/net-snmp/machine/generic.h
 ./container_list_ssll.lo: ../include/net-snmp/net-snmp-includes.h
 ./container_list_ssll.lo: ../include/net-snmp/definitions.h
 ./container_list_ssll.lo: ../include/net-snmp/types.h 
+./container_list_ssll.lo: ../include/net-snmp/library/oid.h
 ./container_list_ssll.lo: ../include/net-snmp/library/types.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmp_api.h
 ./container_list_ssll.lo: ../include/net-snmp/varbind_api.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmp_client.h
 ./container_list_ssll.lo: ../include/net-snmp/pdu_api.h
 ./container_list_ssll.lo: ../include/net-snmp/library/asn1.h
+./container_list_ssll.lo: ../include/net-snmp/output_api.h
+./container_list_ssll.lo: ../include/net-snmp/library/snmp_debug.h
+./container_list_ssll.lo: ../include/net-snmp/library/snmp_logging.h
 ./container_list_ssll.lo: ../include/net-snmp/session_api.h
 ./container_list_ssll.lo: ../include/net-snmp/library/callback.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmp_transport.h
@@ -399,8 +507,12 @@
 ./container_list_ssll.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./container_list_ssll.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./container_list_ssll.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./container_list_ssll.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./container_list_ssll.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./container_list_ssll.lo: ../include/net-snmp/library/ucd_compat.h
@@ -422,7 +534,6 @@
 ./container_list_ssll.lo: ../include/net-snmp/library/check_varbind.h
 ./container_list_ssll.lo: ../include/net-snmp/library/container.h
 ./container_list_ssll.lo: ../include/net-snmp/library/factory.h
-./container_list_ssll.lo: ../include/net-snmp/library/snmp_logging.h
 ./container_list_ssll.lo: ../include/net-snmp/library/container_binary_array.h
 ./container_list_ssll.lo: ../include/net-snmp/library/container_list_ssll.h
 ./container_list_ssll.lo: ../include/net-snmp/library/container_iterator.h
@@ -435,8 +546,6 @@
 ./container_list_ssll.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmp_enum.h
 ./container_list_ssll.lo: ../include/net-snmp/library/vacm.h
-./container_list_ssll.lo: ../include/net-snmp/output_api.h
-./container_list_ssll.lo: ../include/net-snmp/library/snmp_debug.h
 ./container_list_ssll.lo: ../include/net-snmp/snmpv3_api.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmpv3.h
 ./container_list_ssll.lo: ../include/net-snmp/library/transform_oids.h
@@ -445,21 +554,22 @@
 ./container_list_ssll.lo: ../include/net-snmp/library/lcd_time.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmp_secmod.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./container_list_ssll.lo: ../include/net-snmp/library/snmptsm.h
 ./container_list_ssll.lo: ../include/net-snmp/library/snmpusm.h
 ./container_null.lo: ../include/net-snmp/net-snmp-config.h
-./container_null.lo: ../include/net-snmp/system/linux.h
-./container_null.lo: ../include/net-snmp/system/sysv.h
-./container_null.lo: ../include/net-snmp/system/generic.h
-./container_null.lo: ../include/net-snmp/machine/generic.h
 ./container_null.lo: ../include/net-snmp/net-snmp-includes.h
 ./container_null.lo: ../include/net-snmp/definitions.h
 ./container_null.lo: ../include/net-snmp/types.h 
+./container_null.lo:  ../include/net-snmp/library/oid.h
 ./container_null.lo: ../include/net-snmp/library/types.h
 ./container_null.lo: ../include/net-snmp/library/snmp_api.h
 ./container_null.lo: ../include/net-snmp/varbind_api.h
 ./container_null.lo: ../include/net-snmp/library/snmp_client.h
 ./container_null.lo: ../include/net-snmp/pdu_api.h
 ./container_null.lo: ../include/net-snmp/library/asn1.h
+./container_null.lo: ../include/net-snmp/output_api.h
+./container_null.lo: ../include/net-snmp/library/snmp_debug.h
+./container_null.lo: ../include/net-snmp/library/snmp_logging.h
 ./container_null.lo: ../include/net-snmp/session_api.h
 ./container_null.lo: ../include/net-snmp/library/callback.h
 ./container_null.lo: ../include/net-snmp/library/snmp_transport.h
@@ -467,8 +577,12 @@
 ./container_null.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./container_null.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./container_null.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./container_null.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./container_null.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./container_null.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./container_null.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./container_null.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./container_null.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./container_null.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./container_null.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./container_null.lo: ../include/net-snmp/library/ucd_compat.h
@@ -480,7 +594,7 @@
 ./container_null.lo: ../include/net-snmp/library/snmp.h
 ./container_null.lo: ../include/net-snmp/library/snmp-tc.h
 ./container_null.lo: ../include/net-snmp/library/getopt.h
-./container_null.lo: ../include/net-snmp/utilities.h
+./container_null.lo: ../include/net-snmp/utilities.h 
 ./container_null.lo: ../include/net-snmp/library/system.h
 ./container_null.lo: ../include/net-snmp/library/tools.h
 ./container_null.lo: ../include/net-snmp/library/int64.h
@@ -490,7 +604,6 @@
 ./container_null.lo: ../include/net-snmp/library/check_varbind.h
 ./container_null.lo: ../include/net-snmp/library/container.h
 ./container_null.lo: ../include/net-snmp/library/factory.h
-./container_null.lo: ../include/net-snmp/library/snmp_logging.h
 ./container_null.lo: ../include/net-snmp/library/container_binary_array.h
 ./container_null.lo: ../include/net-snmp/library/container_list_ssll.h
 ./container_null.lo: ../include/net-snmp/library/container_iterator.h
@@ -503,8 +616,6 @@
 ./container_null.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./container_null.lo: ../include/net-snmp/library/snmp_enum.h
 ./container_null.lo: ../include/net-snmp/library/vacm.h
-./container_null.lo: ../include/net-snmp/output_api.h
-./container_null.lo: ../include/net-snmp/library/snmp_debug.h
 ./container_null.lo: ../include/net-snmp/snmpv3_api.h
 ./container_null.lo: ../include/net-snmp/library/snmpv3.h
 ./container_null.lo: ../include/net-snmp/library/transform_oids.h
@@ -513,22 +624,23 @@
 ./container_null.lo: ../include/net-snmp/library/lcd_time.h
 ./container_null.lo: ../include/net-snmp/library/snmp_secmod.h
 ./container_null.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./container_null.lo: ../include/net-snmp/library/snmptsm.h
 ./container_null.lo: ../include/net-snmp/library/snmpusm.h
 ./container_null.lo: ../include/net-snmp/library/container_null.h
 ./data_list.lo: ../include/net-snmp/net-snmp-config.h
-./data_list.lo: ../include/net-snmp/system/linux.h
-./data_list.lo: ../include/net-snmp/system/sysv.h
-./data_list.lo: ../include/net-snmp/system/generic.h
-./data_list.lo: ../include/net-snmp/machine/generic.h
 ./data_list.lo: ../include/net-snmp/net-snmp-includes.h 
 ./data_list.lo:  ../include/net-snmp/definitions.h
 ./data_list.lo: ../include/net-snmp/types.h 
+./data_list.lo: ../include/net-snmp/library/oid.h
 ./data_list.lo: ../include/net-snmp/library/types.h
 ./data_list.lo: ../include/net-snmp/library/snmp_api.h
 ./data_list.lo: ../include/net-snmp/varbind_api.h
 ./data_list.lo: ../include/net-snmp/library/snmp_client.h
 ./data_list.lo: ../include/net-snmp/pdu_api.h
 ./data_list.lo: ../include/net-snmp/library/asn1.h
+./data_list.lo: ../include/net-snmp/output_api.h
+./data_list.lo: ../include/net-snmp/library/snmp_debug.h
+./data_list.lo: ../include/net-snmp/library/snmp_logging.h
 ./data_list.lo: ../include/net-snmp/session_api.h
 ./data_list.lo: ../include/net-snmp/library/callback.h
 ./data_list.lo: ../include/net-snmp/library/snmp_transport.h
@@ -536,8 +648,12 @@
 ./data_list.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./data_list.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./data_list.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./data_list.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./data_list.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./data_list.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./data_list.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./data_list.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./data_list.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./data_list.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./data_list.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./data_list.lo: ../include/net-snmp/library/ucd_compat.h
@@ -549,7 +665,7 @@
 ./data_list.lo: ../include/net-snmp/library/snmp.h
 ./data_list.lo: ../include/net-snmp/library/snmp-tc.h
 ./data_list.lo: ../include/net-snmp/library/getopt.h
-./data_list.lo: ../include/net-snmp/utilities.h
+./data_list.lo: ../include/net-snmp/utilities.h 
 ./data_list.lo: ../include/net-snmp/library/system.h
 ./data_list.lo: ../include/net-snmp/library/tools.h
 ./data_list.lo: ../include/net-snmp/library/int64.h
@@ -557,9 +673,8 @@
 ./data_list.lo: ../include/net-snmp/library/snmp_alarm.h
 ./data_list.lo: ../include/net-snmp/library/data_list.h
 ./data_list.lo: ../include/net-snmp/library/check_varbind.h
-./data_list.lo: ../include/net-snmp/library/container.h
-./data_list.lo: ../include/net-snmp/library/factory.h
-./data_list.lo: ../include/net-snmp/library/snmp_logging.h
+./data_list.lo: ../include/net-snmp/library/container.h 
+./data_list.lo:  ../include/net-snmp/library/factory.h
 ./data_list.lo: ../include/net-snmp/library/container_binary_array.h
 ./data_list.lo: ../include/net-snmp/library/container_list_ssll.h
 ./data_list.lo: ../include/net-snmp/library/container_iterator.h
@@ -572,8 +687,6 @@
 ./data_list.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./data_list.lo: ../include/net-snmp/library/snmp_enum.h
 ./data_list.lo: ../include/net-snmp/library/vacm.h
-./data_list.lo: ../include/net-snmp/output_api.h
-./data_list.lo: ../include/net-snmp/library/snmp_debug.h
 ./data_list.lo: ../include/net-snmp/snmpv3_api.h
 ./data_list.lo: ../include/net-snmp/library/snmpv3.h
 ./data_list.lo: ../include/net-snmp/library/transform_oids.h
@@ -582,13 +695,11 @@
 ./data_list.lo: ../include/net-snmp/library/lcd_time.h
 ./data_list.lo: ../include/net-snmp/library/snmp_secmod.h
 ./data_list.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./data_list.lo: ../include/net-snmp/library/snmptsm.h
 ./data_list.lo: ../include/net-snmp/library/snmpusm.h
 ./default_store.lo: ../include/net-snmp/net-snmp-config.h
-./default_store.lo: ../include/net-snmp/system/linux.h
-./default_store.lo: ../include/net-snmp/system/sysv.h
-./default_store.lo: ../include/net-snmp/system/generic.h
-./default_store.lo: ../include/net-snmp/machine/generic.h
-./default_store.lo: ../include/net-snmp/types.h 
+./default_store.lo:  ../include/net-snmp/types.h
+./default_store.lo: ../include/net-snmp/library/oid.h
 ./default_store.lo: ../include/net-snmp/library/types.h
 ./default_store.lo: ../include/net-snmp/definitions.h
 ./default_store.lo: ../include/net-snmp/library/snmp_api.h
@@ -596,6 +707,9 @@
 ./default_store.lo: ../include/net-snmp/library/snmp_client.h
 ./default_store.lo: ../include/net-snmp/pdu_api.h
 ./default_store.lo: ../include/net-snmp/library/asn1.h
+./default_store.lo: ../include/net-snmp/output_api.h
+./default_store.lo: ../include/net-snmp/library/snmp_debug.h
+./default_store.lo: ../include/net-snmp/library/snmp_logging.h
 ./default_store.lo: ../include/net-snmp/session_api.h
 ./default_store.lo: ../include/net-snmp/library/callback.h
 ./default_store.lo: ../include/net-snmp/library/snmp_transport.h
@@ -603,8 +717,12 @@
 ./default_store.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./default_store.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./default_store.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./default_store.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./default_store.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./default_store.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./default_store.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./default_store.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./default_store.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./default_store.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./default_store.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./default_store.lo: ../include/net-snmp/library/ucd_compat.h
@@ -615,16 +733,13 @@
 ./default_store.lo: ../include/net-snmp/library/snmp_impl.h
 ./default_store.lo: ../include/net-snmp/library/snmp.h
 ./default_store.lo: ../include/net-snmp/library/snmp-tc.h
-./default_store.lo: ../include/net-snmp/output_api.h
-./default_store.lo: ../include/net-snmp/library/snmp_debug.h
-./default_store.lo: ../include/net-snmp/library/snmp_logging.h
 ./default_store.lo: ../include/net-snmp/config_api.h
 ./default_store.lo: ../include/net-snmp/library/read_config.h
 ./default_store.lo: ../include/net-snmp/library/default_store.h
 ./default_store.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./default_store.lo: ../include/net-snmp/library/snmp_enum.h
 ./default_store.lo: ../include/net-snmp/library/vacm.h
-./default_store.lo: ../include/net-snmp/utilities.h
+./default_store.lo: ../include/net-snmp/utilities.h 
 ./default_store.lo: ../include/net-snmp/library/system.h
 ./default_store.lo: ../include/net-snmp/library/tools.h
 ./default_store.lo: ../include/net-snmp/library/int64.h
@@ -641,19 +756,19 @@
 ./default_store.lo: ../include/net-snmp/library/snmp_assert.h
 ./default_store.lo: ../include/net-snmp/version.h
 ./dir_utils.lo: ../include/net-snmp/net-snmp-config.h
-./dir_utils.lo: ../include/net-snmp/system/linux.h
-./dir_utils.lo: ../include/net-snmp/system/sysv.h
-./dir_utils.lo: ../include/net-snmp/system/generic.h
-./dir_utils.lo: ../include/net-snmp/machine/generic.h
 ./dir_utils.lo: ../include/net-snmp/net-snmp-includes.h 
 ./dir_utils.lo:  ../include/net-snmp/definitions.h
 ./dir_utils.lo: ../include/net-snmp/types.h 
+./dir_utils.lo: ../include/net-snmp/library/oid.h
 ./dir_utils.lo: ../include/net-snmp/library/types.h
 ./dir_utils.lo: ../include/net-snmp/library/snmp_api.h
 ./dir_utils.lo: ../include/net-snmp/varbind_api.h
 ./dir_utils.lo: ../include/net-snmp/library/snmp_client.h
 ./dir_utils.lo: ../include/net-snmp/pdu_api.h
 ./dir_utils.lo: ../include/net-snmp/library/asn1.h
+./dir_utils.lo: ../include/net-snmp/output_api.h
+./dir_utils.lo: ../include/net-snmp/library/snmp_debug.h
+./dir_utils.lo: ../include/net-snmp/library/snmp_logging.h
 ./dir_utils.lo: ../include/net-snmp/session_api.h
 ./dir_utils.lo: ../include/net-snmp/library/callback.h
 ./dir_utils.lo: ../include/net-snmp/library/snmp_transport.h
@@ -661,8 +776,12 @@
 ./dir_utils.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./dir_utils.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./dir_utils.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./dir_utils.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./dir_utils.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./dir_utils.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./dir_utils.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./dir_utils.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./dir_utils.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./dir_utils.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./dir_utils.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./dir_utils.lo: ../include/net-snmp/library/ucd_compat.h
@@ -674,7 +793,7 @@
 ./dir_utils.lo: ../include/net-snmp/library/snmp.h
 ./dir_utils.lo: ../include/net-snmp/library/snmp-tc.h
 ./dir_utils.lo: ../include/net-snmp/library/getopt.h
-./dir_utils.lo: ../include/net-snmp/utilities.h
+./dir_utils.lo: ../include/net-snmp/utilities.h 
 ./dir_utils.lo: ../include/net-snmp/library/system.h
 ./dir_utils.lo: ../include/net-snmp/library/tools.h
 ./dir_utils.lo: ../include/net-snmp/library/int64.h
@@ -682,9 +801,8 @@
 ./dir_utils.lo: ../include/net-snmp/library/snmp_alarm.h
 ./dir_utils.lo: ../include/net-snmp/library/data_list.h
 ./dir_utils.lo: ../include/net-snmp/library/check_varbind.h
-./dir_utils.lo: ../include/net-snmp/library/container.h
-./dir_utils.lo: ../include/net-snmp/library/factory.h
-./dir_utils.lo: ../include/net-snmp/library/snmp_logging.h
+./dir_utils.lo: ../include/net-snmp/library/container.h 
+./dir_utils.lo:  ../include/net-snmp/library/factory.h
 ./dir_utils.lo: ../include/net-snmp/library/container_binary_array.h
 ./dir_utils.lo: ../include/net-snmp/library/container_list_ssll.h
 ./dir_utils.lo: ../include/net-snmp/library/container_iterator.h
@@ -697,8 +815,6 @@
 ./dir_utils.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./dir_utils.lo: ../include/net-snmp/library/snmp_enum.h
 ./dir_utils.lo: ../include/net-snmp/library/vacm.h
-./dir_utils.lo: ../include/net-snmp/output_api.h
-./dir_utils.lo: ../include/net-snmp/library/snmp_debug.h
 ./dir_utils.lo: ../include/net-snmp/snmpv3_api.h
 ./dir_utils.lo: ../include/net-snmp/library/snmpv3.h
 ./dir_utils.lo: ../include/net-snmp/library/transform_oids.h
@@ -707,22 +823,24 @@
 ./dir_utils.lo: ../include/net-snmp/library/lcd_time.h
 ./dir_utils.lo: ../include/net-snmp/library/snmp_secmod.h
 ./dir_utils.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./dir_utils.lo: ../include/net-snmp/library/snmptsm.h
 ./dir_utils.lo: ../include/net-snmp/library/snmpusm.h 
+./dir_utils.lo: ../include/net-snmp/library/file_utils.h
 ./dir_utils.lo: ../include/net-snmp/library/dir_utils.h
 ./fd_event_manager.lo: ../include/net-snmp/net-snmp-config.h
-./fd_event_manager.lo: ../include/net-snmp/system/linux.h
-./fd_event_manager.lo: ../include/net-snmp/system/sysv.h
-./fd_event_manager.lo: ../include/net-snmp/system/generic.h
-./fd_event_manager.lo: ../include/net-snmp/machine/generic.h
 ./fd_event_manager.lo: ../include/net-snmp/net-snmp-includes.h
 ./fd_event_manager.lo: ../include/net-snmp/definitions.h
 ./fd_event_manager.lo: ../include/net-snmp/types.h 
+./fd_event_manager.lo: ../include/net-snmp/library/oid.h
 ./fd_event_manager.lo: ../include/net-snmp/library/types.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmp_api.h
 ./fd_event_manager.lo: ../include/net-snmp/varbind_api.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmp_client.h
 ./fd_event_manager.lo: ../include/net-snmp/pdu_api.h
 ./fd_event_manager.lo: ../include/net-snmp/library/asn1.h
+./fd_event_manager.lo: ../include/net-snmp/output_api.h
+./fd_event_manager.lo: ../include/net-snmp/library/snmp_debug.h
+./fd_event_manager.lo: ../include/net-snmp/library/snmp_logging.h
 ./fd_event_manager.lo: ../include/net-snmp/session_api.h
 ./fd_event_manager.lo: ../include/net-snmp/library/callback.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmp_transport.h
@@ -730,8 +848,12 @@
 ./fd_event_manager.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./fd_event_manager.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./fd_event_manager.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./fd_event_manager.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./fd_event_manager.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./fd_event_manager.lo: ../include/net-snmp/library/ucd_compat.h
@@ -743,7 +865,7 @@
 ./fd_event_manager.lo: ../include/net-snmp/library/snmp.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmp-tc.h
 ./fd_event_manager.lo: ../include/net-snmp/library/getopt.h
-./fd_event_manager.lo: ../include/net-snmp/utilities.h
+./fd_event_manager.lo: ../include/net-snmp/utilities.h 
 ./fd_event_manager.lo: ../include/net-snmp/library/system.h
 ./fd_event_manager.lo: ../include/net-snmp/library/tools.h
 ./fd_event_manager.lo: ../include/net-snmp/library/int64.h
@@ -753,7 +875,6 @@
 ./fd_event_manager.lo: ../include/net-snmp/library/check_varbind.h
 ./fd_event_manager.lo: ../include/net-snmp/library/container.h
 ./fd_event_manager.lo: ../include/net-snmp/library/factory.h
-./fd_event_manager.lo: ../include/net-snmp/library/snmp_logging.h
 ./fd_event_manager.lo: ../include/net-snmp/library/container_binary_array.h
 ./fd_event_manager.lo: ../include/net-snmp/library/container_list_ssll.h
 ./fd_event_manager.lo: ../include/net-snmp/library/container_iterator.h
@@ -766,8 +887,6 @@
 ./fd_event_manager.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmp_enum.h
 ./fd_event_manager.lo: ../include/net-snmp/library/vacm.h
-./fd_event_manager.lo: ../include/net-snmp/output_api.h
-./fd_event_manager.lo: ../include/net-snmp/library/snmp_debug.h
 ./fd_event_manager.lo: ../include/net-snmp/snmpv3_api.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmpv3.h
 ./fd_event_manager.lo: ../include/net-snmp/library/transform_oids.h
@@ -776,20 +895,24 @@
 ./fd_event_manager.lo: ../include/net-snmp/library/lcd_time.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmp_secmod.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./fd_event_manager.lo: ../include/net-snmp/library/snmptsm.h
 ./fd_event_manager.lo: ../include/net-snmp/library/snmpusm.h
 ./fd_event_manager.lo: ../include/net-snmp/library/fd_event_manager.h
 ./fd_event_manager.lo: ../include/net-snmp/library/large_fd_set.h
-./fd_event_manager.lo: ../include/net-snmp/net-snmp-config.h
 ./file_utils.lo: ../include/net-snmp/net-snmp-config.h
 ./file_utils.lo: ../include/net-snmp/net-snmp-includes.h 
 ./file_utils.lo:  ../include/net-snmp/definitions.h
 ./file_utils.lo: ../include/net-snmp/types.h 
+./file_utils.lo: ../include/net-snmp/library/oid.h
 ./file_utils.lo: ../include/net-snmp/library/types.h
 ./file_utils.lo: ../include/net-snmp/library/snmp_api.h
 ./file_utils.lo: ../include/net-snmp/varbind_api.h
 ./file_utils.lo: ../include/net-snmp/library/snmp_client.h
 ./file_utils.lo: ../include/net-snmp/pdu_api.h
 ./file_utils.lo: ../include/net-snmp/library/asn1.h
+./file_utils.lo: ../include/net-snmp/output_api.h
+./file_utils.lo: ../include/net-snmp/library/snmp_debug.h
+./file_utils.lo: ../include/net-snmp/library/snmp_logging.h
 ./file_utils.lo: ../include/net-snmp/session_api.h
 ./file_utils.lo: ../include/net-snmp/library/callback.h
 ./file_utils.lo: ../include/net-snmp/library/snmp_transport.h
@@ -797,8 +920,12 @@
 ./file_utils.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./file_utils.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./file_utils.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./file_utils.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./file_utils.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./file_utils.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./file_utils.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./file_utils.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./file_utils.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./file_utils.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./file_utils.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./file_utils.lo: ../include/net-snmp/library/ucd_compat.h
@@ -810,7 +937,7 @@
 ./file_utils.lo: ../include/net-snmp/library/snmp.h
 ./file_utils.lo: ../include/net-snmp/library/snmp-tc.h
 ./file_utils.lo: ../include/net-snmp/library/getopt.h
-./file_utils.lo: ../include/net-snmp/utilities.h
+./file_utils.lo: ../include/net-snmp/utilities.h 
 ./file_utils.lo: ../include/net-snmp/library/system.h
 ./file_utils.lo: ../include/net-snmp/library/tools.h
 ./file_utils.lo: ../include/net-snmp/library/int64.h
@@ -820,7 +947,6 @@
 ./file_utils.lo: ../include/net-snmp/library/check_varbind.h
 ./file_utils.lo: ../include/net-snmp/library/container.h
 ./file_utils.lo: ../include/net-snmp/library/factory.h
-./file_utils.lo: ../include/net-snmp/library/snmp_logging.h
 ./file_utils.lo: ../include/net-snmp/library/container_binary_array.h
 ./file_utils.lo: ../include/net-snmp/library/container_list_ssll.h
 ./file_utils.lo: ../include/net-snmp/library/container_iterator.h
@@ -833,8 +959,6 @@
 ./file_utils.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./file_utils.lo: ../include/net-snmp/library/snmp_enum.h
 ./file_utils.lo: ../include/net-snmp/library/vacm.h
-./file_utils.lo: ../include/net-snmp/output_api.h
-./file_utils.lo: ../include/net-snmp/library/snmp_debug.h
 ./file_utils.lo: ../include/net-snmp/snmpv3_api.h
 ./file_utils.lo: ../include/net-snmp/library/snmpv3.h
 ./file_utils.lo: ../include/net-snmp/library/transform_oids.h
@@ -843,17 +967,61 @@
 ./file_utils.lo: ../include/net-snmp/library/lcd_time.h
 ./file_utils.lo: ../include/net-snmp/library/snmp_secmod.h
 ./file_utils.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./file_utils.lo: ../include/net-snmp/library/snmptsm.h
 ./file_utils.lo: ../include/net-snmp/library/snmpusm.h 
 ./file_utils.lo: ../include/net-snmp/library/file_utils.h
+./getopt.lo: ../include/net-snmp/net-snmp-config.h 
+./getopt.lo:  ../include/net-snmp/library/getopt.h
+./gettimeofday.lo: ../include/net-snmp/net-snmp-config.h
+./gettimeofday.lo: ../include/net-snmp/types.h 
+./gettimeofday.lo: ../include/net-snmp/library/oid.h
+./gettimeofday.lo: ../include/net-snmp/library/types.h
+./gettimeofday.lo: ../include/net-snmp/definitions.h
+./gettimeofday.lo: ../include/net-snmp/library/snmp_api.h
+./gettimeofday.lo: ../include/net-snmp/varbind_api.h
+./gettimeofday.lo: ../include/net-snmp/library/snmp_client.h
+./gettimeofday.lo: ../include/net-snmp/pdu_api.h
+./gettimeofday.lo: ../include/net-snmp/library/asn1.h
+./gettimeofday.lo: ../include/net-snmp/output_api.h
+./gettimeofday.lo: ../include/net-snmp/library/snmp_debug.h
+./gettimeofday.lo: ../include/net-snmp/library/snmp_logging.h
+./gettimeofday.lo: ../include/net-snmp/session_api.h
+./gettimeofday.lo: ../include/net-snmp/library/callback.h
+./gettimeofday.lo: ../include/net-snmp/library/snmp_transport.h
+./gettimeofday.lo: ../include/net-snmp/library/snmp_service.h
+./gettimeofday.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./gettimeofday.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./gettimeofday.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./gettimeofday.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./gettimeofday.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./gettimeofday.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./gettimeofday.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./gettimeofday.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./gettimeofday.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./gettimeofday.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./gettimeofday.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./gettimeofday.lo: ../include/net-snmp/library/ucd_compat.h
+./gettimeofday.lo: ../include/net-snmp/library/mib.h
+./gettimeofday.lo: ../include/net-snmp/mib_api.h
+./gettimeofday.lo: ../include/net-snmp/library/parse.h
+./gettimeofday.lo: ../include/net-snmp/library/oid_stash.h
+./gettimeofday.lo: ../include/net-snmp/library/snmp_impl.h
+./gettimeofday.lo: ../include/net-snmp/library/snmp.h
+./gettimeofday.lo: ../include/net-snmp/library/snmp-tc.h
+./gettimeofday.lo: ../include/net-snmp/library/system.h
 ./inet_ntop.lo: ../include/net-snmp/net-snmp-config.h 
-./inet_ntop.lo: ../include/net-snmp/types.h 
-./inet_ntop.lo:  ../include/net-snmp/library/types.h
+./inet_ntop.lo:  ../include/net-snmp/types.h
+./inet_ntop.lo: ../include/net-snmp/library/oid.h
+./inet_ntop.lo: ../include/net-snmp/library/types.h
 ./inet_ntop.lo: ../include/net-snmp/definitions.h
 ./inet_ntop.lo: ../include/net-snmp/library/snmp_api.h
 ./inet_ntop.lo: ../include/net-snmp/varbind_api.h
 ./inet_ntop.lo: ../include/net-snmp/library/snmp_client.h
 ./inet_ntop.lo: ../include/net-snmp/pdu_api.h
 ./inet_ntop.lo: ../include/net-snmp/library/asn1.h
+./inet_ntop.lo: ../include/net-snmp/output_api.h
+./inet_ntop.lo: ../include/net-snmp/library/snmp_debug.h
+./inet_ntop.lo: ../include/net-snmp/library/snmp_logging.h
 ./inet_ntop.lo: ../include/net-snmp/session_api.h
 ./inet_ntop.lo: ../include/net-snmp/library/callback.h
 ./inet_ntop.lo: ../include/net-snmp/library/snmp_transport.h
@@ -861,8 +1029,12 @@
 ./inet_ntop.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./inet_ntop.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./inet_ntop.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./inet_ntop.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./inet_ntop.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./inet_ntop.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./inet_ntop.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./inet_ntop.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./inet_ntop.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./inet_ntop.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./inet_ntop.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./inet_ntop.lo: ../include/net-snmp/library/ucd_compat.h
@@ -872,9 +1044,10 @@
 ./inet_ntop.lo: ../include/net-snmp/library/oid_stash.h
 ./inet_ntop.lo: ../include/net-snmp/library/snmp_impl.h
 ./inet_ntop.lo: ../include/net-snmp/library/snmp.h
-./inet_ntop.lo: ../include/net-snmp/library/snmp-tc.h
+./inet_ntop.lo: ../include/net-snmp/library/snmp-tc.h inet_ntop.h
 ./inet_pton.lo: ../include/net-snmp/net-snmp-config.h 
 ./inet_pton.lo: ../include/net-snmp/types.h 
+./inet_pton.lo: ../include/net-snmp/library/oid.h
 ./inet_pton.lo: ../include/net-snmp/library/types.h
 ./inet_pton.lo: ../include/net-snmp/definitions.h
 ./inet_pton.lo: ../include/net-snmp/library/snmp_api.h
@@ -882,6 +1055,9 @@
 ./inet_pton.lo: ../include/net-snmp/library/snmp_client.h
 ./inet_pton.lo: ../include/net-snmp/pdu_api.h
 ./inet_pton.lo: ../include/net-snmp/library/asn1.h
+./inet_pton.lo: ../include/net-snmp/output_api.h
+./inet_pton.lo: ../include/net-snmp/library/snmp_debug.h
+./inet_pton.lo: ../include/net-snmp/library/snmp_logging.h
 ./inet_pton.lo: ../include/net-snmp/session_api.h
 ./inet_pton.lo: ../include/net-snmp/library/callback.h
 ./inet_pton.lo: ../include/net-snmp/library/snmp_transport.h
@@ -889,8 +1065,12 @@
 ./inet_pton.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./inet_pton.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./inet_pton.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./inet_pton.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./inet_pton.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./inet_pton.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./inet_pton.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./inet_pton.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./inet_pton.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./inet_pton.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./inet_pton.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./inet_pton.lo: ../include/net-snmp/library/ucd_compat.h
@@ -900,15 +1080,19 @@
 ./inet_pton.lo: ../include/net-snmp/library/oid_stash.h
 ./inet_pton.lo: ../include/net-snmp/library/snmp_impl.h
 ./inet_pton.lo: ../include/net-snmp/library/snmp.h
-./inet_pton.lo: ../include/net-snmp/library/snmp-tc.h
+./inet_pton.lo: ../include/net-snmp/library/snmp-tc.h inet_pton.h
 ./int64.lo: ../include/net-snmp/net-snmp-config.h 
 ./int64.lo:  ../include/net-snmp/types.h
-./int64.lo:  ../include/net-snmp/library/types.h
+./int64.lo:  ../include/net-snmp/library/oid.h
+./int64.lo: ../include/net-snmp/library/types.h
 ./int64.lo: ../include/net-snmp/definitions.h
 ./int64.lo: ../include/net-snmp/library/snmp_api.h
 ./int64.lo: ../include/net-snmp/varbind_api.h
 ./int64.lo: ../include/net-snmp/library/snmp_client.h
 ./int64.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/library/asn1.h
+./int64.lo: ../include/net-snmp/output_api.h
+./int64.lo: ../include/net-snmp/library/snmp_debug.h
+./int64.lo: ../include/net-snmp/library/snmp_logging.h 
 ./int64.lo: ../include/net-snmp/session_api.h
 ./int64.lo: ../include/net-snmp/library/callback.h
 ./int64.lo: ../include/net-snmp/library/snmp_transport.h
@@ -916,8 +1100,12 @@
 ./int64.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./int64.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./int64.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./int64.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./int64.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./int64.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./int64.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./int64.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./int64.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./int64.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./int64.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./int64.lo: ../include/net-snmp/library/ucd_compat.h
@@ -929,10 +1117,9 @@
 ./int64.lo: ../include/net-snmp/library/snmp-tc.h
 ./int64.lo: ../include/net-snmp/library/int64.h
 ./int64.lo: ../include/net-snmp/library/snmp_assert.h
-./int64.lo: ../include/net-snmp/library/snmp_logging.h 
-./int64.lo: ../include/net-snmp/library/snmp_debug.h
 ./keytools.lo: ../include/net-snmp/net-snmp-config.h 
-./keytools.lo: ../include/net-snmp/types.h 
+./keytools.lo:  ../include/net-snmp/types.h
+./keytools.lo:  ../include/net-snmp/library/oid.h
 ./keytools.lo: ../include/net-snmp/library/types.h
 ./keytools.lo: ../include/net-snmp/definitions.h
 ./keytools.lo: ../include/net-snmp/library/snmp_api.h
@@ -940,6 +1127,9 @@
 ./keytools.lo: ../include/net-snmp/library/snmp_client.h
 ./keytools.lo: ../include/net-snmp/pdu_api.h
 ./keytools.lo: ../include/net-snmp/library/asn1.h
+./keytools.lo: ../include/net-snmp/output_api.h
+./keytools.lo: ../include/net-snmp/library/snmp_debug.h
+./keytools.lo: ../include/net-snmp/library/snmp_logging.h
 ./keytools.lo: ../include/net-snmp/session_api.h
 ./keytools.lo: ../include/net-snmp/library/callback.h
 ./keytools.lo: ../include/net-snmp/library/snmp_transport.h
@@ -947,8 +1137,12 @@
 ./keytools.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./keytools.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./keytools.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./keytools.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./keytools.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./keytools.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./keytools.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./keytools.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./keytools.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./keytools.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./keytools.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./keytools.lo: ../include/net-snmp/library/ucd_compat.h
@@ -959,9 +1153,6 @@
 ./keytools.lo: ../include/net-snmp/library/snmp_impl.h
 ./keytools.lo: ../include/net-snmp/library/snmp.h
 ./keytools.lo: ../include/net-snmp/library/snmp-tc.h
-./keytools.lo: ../include/net-snmp/output_api.h
-./keytools.lo: ../include/net-snmp/library/snmp_debug.h
-./keytools.lo: ../include/net-snmp/library/snmp_logging.h
 ./keytools.lo: ../include/net-snmp/utilities.h 
 ./keytools.lo: ../include/net-snmp/library/system.h
 ./keytools.lo: ../include/net-snmp/library/tools.h
@@ -970,8 +1161,8 @@
 ./keytools.lo: ../include/net-snmp/library/snmp_alarm.h
 ./keytools.lo: ../include/net-snmp/library/data_list.h
 ./keytools.lo: ../include/net-snmp/library/check_varbind.h
-./keytools.lo: ../include/net-snmp/library/container.h
-./keytools.lo: ../include/net-snmp/library/factory.h
+./keytools.lo: ../include/net-snmp/library/container.h 
+./keytools.lo:  ../include/net-snmp/library/factory.h
 ./keytools.lo: ../include/net-snmp/library/container_binary_array.h
 ./keytools.lo: ../include/net-snmp/library/container_list_ssll.h
 ./keytools.lo: ../include/net-snmp/library/container_iterator.h
@@ -982,17 +1173,19 @@
 ./keytools.lo: ../include/net-snmp/library/keytools.h
 ./keytools.lo: ../include/net-snmp/library/transform_oids.h
 ./large_fd_set.lo: ../include/net-snmp/net-snmp-config.h 
-./large_fd_set.lo: ../include/net-snmp/library/snmp_assert.h
-./large_fd_set.lo: ../include/net-snmp/library/snmp_logging.h
-./large_fd_set.lo: ../include/net-snmp/library/large_fd_set.h
-./large_fd_set.lo: ../include/net-snmp/types.h 
-./large_fd_set.lo: ../include/net-snmp/library/types.h
+./large_fd_set.lo: ../include/net-snmp/net-snmp-includes.h
 ./large_fd_set.lo: ../include/net-snmp/definitions.h
+./large_fd_set.lo: ../include/net-snmp/types.h 
+./large_fd_set.lo: ../include/net-snmp/library/oid.h
+./large_fd_set.lo: ../include/net-snmp/library/types.h
 ./large_fd_set.lo: ../include/net-snmp/library/snmp_api.h
 ./large_fd_set.lo: ../include/net-snmp/varbind_api.h
 ./large_fd_set.lo: ../include/net-snmp/library/snmp_client.h
 ./large_fd_set.lo: ../include/net-snmp/pdu_api.h
 ./large_fd_set.lo: ../include/net-snmp/library/asn1.h
+./large_fd_set.lo: ../include/net-snmp/output_api.h
+./large_fd_set.lo: ../include/net-snmp/library/snmp_debug.h
+./large_fd_set.lo: ../include/net-snmp/library/snmp_logging.h
 ./large_fd_set.lo: ../include/net-snmp/session_api.h
 ./large_fd_set.lo: ../include/net-snmp/library/callback.h
 ./large_fd_set.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1000,8 +1193,12 @@
 ./large_fd_set.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./large_fd_set.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./large_fd_set.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./large_fd_set.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./large_fd_set.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./large_fd_set.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./large_fd_set.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./large_fd_set.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./large_fd_set.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./large_fd_set.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./large_fd_set.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./large_fd_set.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1012,8 +1209,43 @@
 ./large_fd_set.lo: ../include/net-snmp/library/snmp_impl.h
 ./large_fd_set.lo: ../include/net-snmp/library/snmp.h
 ./large_fd_set.lo: ../include/net-snmp/library/snmp-tc.h
+./large_fd_set.lo: ../include/net-snmp/library/getopt.h
+./large_fd_set.lo: ../include/net-snmp/utilities.h 
+./large_fd_set.lo: ../include/net-snmp/library/system.h
+./large_fd_set.lo: ../include/net-snmp/library/tools.h
+./large_fd_set.lo: ../include/net-snmp/library/int64.h
+./large_fd_set.lo: ../include/net-snmp/library/mt_support.h
+./large_fd_set.lo: ../include/net-snmp/library/snmp_alarm.h
+./large_fd_set.lo: ../include/net-snmp/library/data_list.h
+./large_fd_set.lo: ../include/net-snmp/library/check_varbind.h
+./large_fd_set.lo: ../include/net-snmp/library/container.h
+./large_fd_set.lo: ../include/net-snmp/library/factory.h
+./large_fd_set.lo: ../include/net-snmp/library/container_binary_array.h
+./large_fd_set.lo: ../include/net-snmp/library/container_list_ssll.h
+./large_fd_set.lo: ../include/net-snmp/library/container_iterator.h
+./large_fd_set.lo: ../include/net-snmp/library/container.h
+./large_fd_set.lo: ../include/net-snmp/library/snmp_assert.h
+./large_fd_set.lo: ../include/net-snmp/version.h
+./large_fd_set.lo: ../include/net-snmp/config_api.h
+./large_fd_set.lo: ../include/net-snmp/library/read_config.h
+./large_fd_set.lo: ../include/net-snmp/library/default_store.h
+./large_fd_set.lo: ../include/net-snmp/library/snmp_parse_args.h
+./large_fd_set.lo: ../include/net-snmp/library/snmp_enum.h
+./large_fd_set.lo: ../include/net-snmp/library/vacm.h
+./large_fd_set.lo: ../include/net-snmp/snmpv3_api.h
+./large_fd_set.lo: ../include/net-snmp/library/snmpv3.h
+./large_fd_set.lo: ../include/net-snmp/library/transform_oids.h
+./large_fd_set.lo: ../include/net-snmp/library/keytools.h
+./large_fd_set.lo: ../include/net-snmp/library/scapi.h
+./large_fd_set.lo: ../include/net-snmp/library/lcd_time.h
+./large_fd_set.lo: ../include/net-snmp/library/snmp_secmod.h
+./large_fd_set.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./large_fd_set.lo: ../include/net-snmp/library/snmptsm.h
+./large_fd_set.lo: ../include/net-snmp/library/snmpusm.h
+./large_fd_set.lo: ../include/net-snmp/library/large_fd_set.h
 ./lcd_time.lo: ../include/net-snmp/net-snmp-config.h 
-./lcd_time.lo: ../include/net-snmp/types.h 
+./lcd_time.lo:  ../include/net-snmp/types.h
+./lcd_time.lo:  ../include/net-snmp/library/oid.h
 ./lcd_time.lo: ../include/net-snmp/library/types.h
 ./lcd_time.lo: ../include/net-snmp/definitions.h
 ./lcd_time.lo: ../include/net-snmp/library/snmp_api.h
@@ -1021,6 +1253,9 @@
 ./lcd_time.lo: ../include/net-snmp/library/snmp_client.h
 ./lcd_time.lo: ../include/net-snmp/pdu_api.h
 ./lcd_time.lo: ../include/net-snmp/library/asn1.h
+./lcd_time.lo: ../include/net-snmp/output_api.h
+./lcd_time.lo: ../include/net-snmp/library/snmp_debug.h
+./lcd_time.lo: ../include/net-snmp/library/snmp_logging.h
 ./lcd_time.lo: ../include/net-snmp/session_api.h
 ./lcd_time.lo: ../include/net-snmp/library/callback.h
 ./lcd_time.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1028,8 +1263,12 @@
 ./lcd_time.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./lcd_time.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./lcd_time.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./lcd_time.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./lcd_time.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./lcd_time.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./lcd_time.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./lcd_time.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./lcd_time.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./lcd_time.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./lcd_time.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./lcd_time.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1040,9 +1279,6 @@
 ./lcd_time.lo: ../include/net-snmp/library/snmp_impl.h
 ./lcd_time.lo: ../include/net-snmp/library/snmp.h
 ./lcd_time.lo: ../include/net-snmp/library/snmp-tc.h
-./lcd_time.lo: ../include/net-snmp/output_api.h
-./lcd_time.lo: ../include/net-snmp/library/snmp_debug.h
-./lcd_time.lo: ../include/net-snmp/library/snmp_logging.h
 ./lcd_time.lo: ../include/net-snmp/utilities.h 
 ./lcd_time.lo: ../include/net-snmp/library/system.h
 ./lcd_time.lo: ../include/net-snmp/library/tools.h
@@ -1051,8 +1287,8 @@
 ./lcd_time.lo: ../include/net-snmp/library/snmp_alarm.h
 ./lcd_time.lo: ../include/net-snmp/library/data_list.h
 ./lcd_time.lo: ../include/net-snmp/library/check_varbind.h
-./lcd_time.lo: ../include/net-snmp/library/container.h
-./lcd_time.lo: ../include/net-snmp/library/factory.h
+./lcd_time.lo: ../include/net-snmp/library/container.h 
+./lcd_time.lo:  ../include/net-snmp/library/factory.h
 ./lcd_time.lo: ../include/net-snmp/library/container_binary_array.h
 ./lcd_time.lo: ../include/net-snmp/library/container_list_ssll.h
 ./lcd_time.lo: ../include/net-snmp/library/container_iterator.h
@@ -1066,23 +1302,30 @@
 ./lcd_time.lo: ../include/net-snmp/library/snmpv3.h
 ./lcd_time.lo: ../include/net-snmp/library/transform_oids.h
 ./md5.lo: ../include/net-snmp/net-snmp-config.h 
-./md5.lo:  ../include/net-snmp/utilities.h
-./md5.lo: ../include/net-snmp/types.h 
+./md5.lo: ../include/net-snmp/net-snmp-includes.h
+./md5.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
+./md5.lo:  ../include/net-snmp/library/oid.h
 ./md5.lo: ../include/net-snmp/library/types.h
-./md5.lo: ../include/net-snmp/definitions.h
 ./md5.lo: ../include/net-snmp/library/snmp_api.h
 ./md5.lo: ../include/net-snmp/varbind_api.h
 ./md5.lo: ../include/net-snmp/library/snmp_client.h
 ./md5.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/library/asn1.h
+./md5.lo: ../include/net-snmp/output_api.h
+./md5.lo: ../include/net-snmp/library/snmp_debug.h
+./md5.lo: ../include/net-snmp/library/snmp_logging.h 
 ./md5.lo: ../include/net-snmp/session_api.h
 ./md5.lo: ../include/net-snmp/library/callback.h
 ./md5.lo: ../include/net-snmp/library/snmp_transport.h
 ./md5.lo: ../include/net-snmp/library/snmp_service.h
 ./md5.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./md5.lo: ../include/net-snmp/library/snmpUnixDomain.h 
-./md5.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./md5.lo:  ../include/net-snmp/library/snmpUDPDomain.h
+./md5.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./md5.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./md5.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./md5.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./md5.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./md5.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./md5.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./md5.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./md5.lo:  ../include/net-snmp/library/ucd_compat.h
@@ -1091,7 +1334,9 @@
 ./md5.lo: ../include/net-snmp/library/oid_stash.h
 ./md5.lo: ../include/net-snmp/library/snmp_impl.h
 ./md5.lo: ../include/net-snmp/library/snmp.h
-./md5.lo: ../include/net-snmp/library/snmp-tc.h 
+./md5.lo: ../include/net-snmp/library/snmp-tc.h
+./md5.lo: ../include/net-snmp/library/getopt.h
+./md5.lo: ../include/net-snmp/utilities.h 
 ./md5.lo: ../include/net-snmp/library/system.h
 ./md5.lo: ../include/net-snmp/library/tools.h
 ./md5.lo: ../include/net-snmp/library/int64.h
@@ -1099,23 +1344,41 @@
 ./md5.lo: ../include/net-snmp/library/snmp_alarm.h
 ./md5.lo: ../include/net-snmp/library/data_list.h
 ./md5.lo: ../include/net-snmp/library/check_varbind.h
-./md5.lo: ../include/net-snmp/library/container.h
-./md5.lo: ../include/net-snmp/library/factory.h
-./md5.lo: ../include/net-snmp/library/snmp_logging.h 
+./md5.lo: ../include/net-snmp/library/container.h 
+./md5.lo:  ../include/net-snmp/library/factory.h
 ./md5.lo: ../include/net-snmp/library/container_binary_array.h
 ./md5.lo: ../include/net-snmp/library/container_list_ssll.h
 ./md5.lo: ../include/net-snmp/library/container_iterator.h
 ./md5.lo: ../include/net-snmp/library/container.h
 ./md5.lo: ../include/net-snmp/library/snmp_assert.h
-./md5.lo: ../include/net-snmp/version.h ../include/net-snmp/library/md5.h
+./md5.lo: ../include/net-snmp/version.h ../include/net-snmp/config_api.h
+./md5.lo: ../include/net-snmp/library/read_config.h
+./md5.lo: ../include/net-snmp/library/default_store.h
+./md5.lo: ../include/net-snmp/library/snmp_parse_args.h
+./md5.lo: ../include/net-snmp/library/snmp_enum.h
+./md5.lo: ../include/net-snmp/library/vacm.h ../include/net-snmp/snmpv3_api.h
+./md5.lo: ../include/net-snmp/library/snmpv3.h
+./md5.lo: ../include/net-snmp/library/transform_oids.h
+./md5.lo: ../include/net-snmp/library/keytools.h
+./md5.lo: ../include/net-snmp/library/scapi.h
+./md5.lo: ../include/net-snmp/library/lcd_time.h
+./md5.lo: ../include/net-snmp/library/snmp_secmod.h
+./md5.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./md5.lo: ../include/net-snmp/library/snmptsm.h
+./md5.lo: ../include/net-snmp/library/snmpusm.h
+./md5.lo: ../include/net-snmp/library/md5.h
 ./mib.lo: ../include/net-snmp/net-snmp-config.h 
 ./mib.lo:  ../include/net-snmp/types.h
-./mib.lo:  ../include/net-snmp/library/types.h
+./mib.lo:  ../include/net-snmp/library/oid.h
+./mib.lo: ../include/net-snmp/library/types.h
 ./mib.lo: ../include/net-snmp/definitions.h
 ./mib.lo: ../include/net-snmp/library/snmp_api.h
 ./mib.lo: ../include/net-snmp/varbind_api.h
 ./mib.lo: ../include/net-snmp/library/snmp_client.h
 ./mib.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/library/asn1.h
+./mib.lo: ../include/net-snmp/output_api.h
+./mib.lo: ../include/net-snmp/library/snmp_debug.h
+./mib.lo: ../include/net-snmp/library/snmp_logging.h 
 ./mib.lo: ../include/net-snmp/session_api.h
 ./mib.lo: ../include/net-snmp/library/callback.h
 ./mib.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1123,8 +1386,12 @@
 ./mib.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./mib.lo: ../include/net-snmp/library/snmpUnixDomain.h 
 ./mib.lo:  ../include/net-snmp/library/snmpUDPDomain.h
+./mib.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./mib.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./mib.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./mib.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./mib.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./mib.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./mib.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./mib.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./mib.lo:  ../include/net-snmp/library/ucd_compat.h
@@ -1134,9 +1401,6 @@
 ./mib.lo: ../include/net-snmp/library/snmp_impl.h
 ./mib.lo: ../include/net-snmp/library/snmp.h
 ./mib.lo: ../include/net-snmp/library/snmp-tc.h
-./mib.lo: ../include/net-snmp/output_api.h
-./mib.lo: ../include/net-snmp/library/snmp_debug.h
-./mib.lo: ../include/net-snmp/library/snmp_logging.h 
 ./mib.lo: ../include/net-snmp/config_api.h
 ./mib.lo: ../include/net-snmp/library/read_config.h
 ./mib.lo: ../include/net-snmp/library/default_store.h
@@ -1150,8 +1414,8 @@
 ./mib.lo: ../include/net-snmp/library/snmp_alarm.h
 ./mib.lo: ../include/net-snmp/library/data_list.h
 ./mib.lo: ../include/net-snmp/library/check_varbind.h
-./mib.lo: ../include/net-snmp/library/container.h
-./mib.lo: ../include/net-snmp/library/factory.h
+./mib.lo: ../include/net-snmp/library/container.h 
+./mib.lo:  ../include/net-snmp/library/factory.h
 ./mib.lo: ../include/net-snmp/library/container_binary_array.h
 ./mib.lo: ../include/net-snmp/library/container_list_ssll.h
 ./mib.lo: ../include/net-snmp/library/container_iterator.h
@@ -1164,12 +1428,16 @@
 ./oid_stash.lo:  ../include/net-snmp/net-snmp-includes.h
 ./oid_stash.lo:  ../include/net-snmp/definitions.h
 ./oid_stash.lo: ../include/net-snmp/types.h 
+./oid_stash.lo: ../include/net-snmp/library/oid.h
 ./oid_stash.lo: ../include/net-snmp/library/types.h
 ./oid_stash.lo: ../include/net-snmp/library/snmp_api.h
 ./oid_stash.lo: ../include/net-snmp/varbind_api.h
 ./oid_stash.lo: ../include/net-snmp/library/snmp_client.h
 ./oid_stash.lo: ../include/net-snmp/pdu_api.h
 ./oid_stash.lo: ../include/net-snmp/library/asn1.h
+./oid_stash.lo: ../include/net-snmp/output_api.h
+./oid_stash.lo: ../include/net-snmp/library/snmp_debug.h
+./oid_stash.lo: ../include/net-snmp/library/snmp_logging.h
 ./oid_stash.lo: ../include/net-snmp/session_api.h
 ./oid_stash.lo: ../include/net-snmp/library/callback.h
 ./oid_stash.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1177,8 +1445,12 @@
 ./oid_stash.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./oid_stash.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./oid_stash.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./oid_stash.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./oid_stash.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./oid_stash.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./oid_stash.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./oid_stash.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./oid_stash.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./oid_stash.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./oid_stash.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./oid_stash.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1190,7 +1462,7 @@
 ./oid_stash.lo: ../include/net-snmp/library/snmp.h
 ./oid_stash.lo: ../include/net-snmp/library/snmp-tc.h
 ./oid_stash.lo: ../include/net-snmp/library/getopt.h
-./oid_stash.lo: ../include/net-snmp/utilities.h
+./oid_stash.lo: ../include/net-snmp/utilities.h 
 ./oid_stash.lo: ../include/net-snmp/library/system.h
 ./oid_stash.lo: ../include/net-snmp/library/tools.h
 ./oid_stash.lo: ../include/net-snmp/library/int64.h
@@ -1200,7 +1472,6 @@
 ./oid_stash.lo: ../include/net-snmp/library/check_varbind.h
 ./oid_stash.lo: ../include/net-snmp/library/container.h
 ./oid_stash.lo: ../include/net-snmp/library/factory.h
-./oid_stash.lo: ../include/net-snmp/library/snmp_logging.h
 ./oid_stash.lo: ../include/net-snmp/library/container_binary_array.h
 ./oid_stash.lo: ../include/net-snmp/library/container_list_ssll.h
 ./oid_stash.lo: ../include/net-snmp/library/container_iterator.h
@@ -1213,8 +1484,6 @@
 ./oid_stash.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./oid_stash.lo: ../include/net-snmp/library/snmp_enum.h
 ./oid_stash.lo: ../include/net-snmp/library/vacm.h
-./oid_stash.lo: ../include/net-snmp/output_api.h
-./oid_stash.lo: ../include/net-snmp/library/snmp_debug.h
 ./oid_stash.lo: ../include/net-snmp/snmpv3_api.h
 ./oid_stash.lo: ../include/net-snmp/library/snmpv3.h
 ./oid_stash.lo: ../include/net-snmp/library/transform_oids.h
@@ -1223,15 +1492,56 @@
 ./oid_stash.lo: ../include/net-snmp/library/lcd_time.h
 ./oid_stash.lo: ../include/net-snmp/library/snmp_secmod.h
 ./oid_stash.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./oid_stash.lo: ../include/net-snmp/library/snmptsm.h
 ./oid_stash.lo: ../include/net-snmp/library/snmpusm.h
+./opendir.lo: ../include/net-snmp/net-snmp-config.h
+./opendir.lo: ../include/net-snmp/types.h 
+./opendir.lo: ../include/net-snmp/library/oid.h
+./opendir.lo: ../include/net-snmp/library/types.h
+./opendir.lo: ../include/net-snmp/definitions.h
+./opendir.lo: ../include/net-snmp/library/snmp_api.h
+./opendir.lo: ../include/net-snmp/varbind_api.h
+./opendir.lo: ../include/net-snmp/library/snmp_client.h
+./opendir.lo: ../include/net-snmp/pdu_api.h
+./opendir.lo: ../include/net-snmp/library/asn1.h
+./opendir.lo: ../include/net-snmp/output_api.h
+./opendir.lo: ../include/net-snmp/library/snmp_debug.h
+./opendir.lo: ../include/net-snmp/library/snmp_logging.h
+./opendir.lo: ../include/net-snmp/session_api.h
+./opendir.lo: ../include/net-snmp/library/callback.h
+./opendir.lo: ../include/net-snmp/library/snmp_transport.h
+./opendir.lo: ../include/net-snmp/library/snmp_service.h
+./opendir.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./opendir.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./opendir.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./opendir.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./opendir.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./opendir.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./opendir.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./opendir.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./opendir.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./opendir.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./opendir.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./opendir.lo: ../include/net-snmp/library/ucd_compat.h
+./opendir.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
+./opendir.lo: ../include/net-snmp/library/parse.h
+./opendir.lo: ../include/net-snmp/library/oid_stash.h
+./opendir.lo: ../include/net-snmp/library/snmp_impl.h
+./opendir.lo: ../include/net-snmp/library/snmp.h
+./opendir.lo: ../include/net-snmp/library/snmp-tc.h
+./opendir.lo: ../include/net-snmp/library/system.h
 ./parse.lo: ../include/net-snmp/net-snmp-config.h 
 ./parse.lo:  ../include/net-snmp/types.h
-./parse.lo:  ../include/net-snmp/library/types.h
+./parse.lo:  ../include/net-snmp/library/oid.h
+./parse.lo: ../include/net-snmp/library/types.h
 ./parse.lo: ../include/net-snmp/definitions.h
 ./parse.lo: ../include/net-snmp/library/snmp_api.h
 ./parse.lo: ../include/net-snmp/varbind_api.h
 ./parse.lo: ../include/net-snmp/library/snmp_client.h
 ./parse.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/library/asn1.h
+./parse.lo: ../include/net-snmp/output_api.h
+./parse.lo: ../include/net-snmp/library/snmp_debug.h
+./parse.lo: ../include/net-snmp/library/snmp_logging.h 
 ./parse.lo: ../include/net-snmp/session_api.h
 ./parse.lo: ../include/net-snmp/library/callback.h
 ./parse.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1239,8 +1549,12 @@
 ./parse.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./parse.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./parse.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./parse.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./parse.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./parse.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./parse.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./parse.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./parse.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./parse.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./parse.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./parse.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1250,9 +1564,6 @@
 ./parse.lo: ../include/net-snmp/library/snmp_impl.h
 ./parse.lo: ../include/net-snmp/library/snmp.h
 ./parse.lo: ../include/net-snmp/library/snmp-tc.h
-./parse.lo: ../include/net-snmp/output_api.h
-./parse.lo: ../include/net-snmp/library/snmp_debug.h
-./parse.lo: ../include/net-snmp/library/snmp_logging.h 
 ./parse.lo: ../include/net-snmp/config_api.h
 ./parse.lo: ../include/net-snmp/library/read_config.h
 ./parse.lo: ../include/net-snmp/library/default_store.h
@@ -1267,8 +1578,8 @@
 ./parse.lo: ../include/net-snmp/library/snmp_alarm.h
 ./parse.lo: ../include/net-snmp/library/data_list.h
 ./parse.lo: ../include/net-snmp/library/check_varbind.h
-./parse.lo: ../include/net-snmp/library/container.h
-./parse.lo: ../include/net-snmp/library/factory.h
+./parse.lo: ../include/net-snmp/library/container.h 
+./parse.lo:  ../include/net-snmp/library/factory.h
 ./parse.lo: ../include/net-snmp/library/container_binary_array.h
 ./parse.lo: ../include/net-snmp/library/container_list_ssll.h
 ./parse.lo: ../include/net-snmp/library/container_iterator.h
@@ -1278,6 +1589,7 @@
 ./pkcs.lo: ../include/net-snmp/net-snmp-config.h
 ./read_config.lo: ../include/net-snmp/net-snmp-config.h 
 ./read_config.lo: ../include/net-snmp/types.h 
+./read_config.lo: ../include/net-snmp/library/oid.h
 ./read_config.lo: ../include/net-snmp/library/types.h
 ./read_config.lo: ../include/net-snmp/definitions.h
 ./read_config.lo: ../include/net-snmp/library/snmp_api.h
@@ -1285,6 +1597,9 @@
 ./read_config.lo: ../include/net-snmp/library/snmp_client.h
 ./read_config.lo: ../include/net-snmp/pdu_api.h
 ./read_config.lo: ../include/net-snmp/library/asn1.h
+./read_config.lo: ../include/net-snmp/output_api.h
+./read_config.lo: ../include/net-snmp/library/snmp_debug.h
+./read_config.lo: ../include/net-snmp/library/snmp_logging.h
 ./read_config.lo: ../include/net-snmp/session_api.h
 ./read_config.lo: ../include/net-snmp/library/callback.h
 ./read_config.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1292,8 +1607,12 @@
 ./read_config.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./read_config.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./read_config.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./read_config.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./read_config.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./read_config.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./read_config.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./read_config.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./read_config.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./read_config.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./read_config.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./read_config.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1304,9 +1623,6 @@
 ./read_config.lo: ../include/net-snmp/library/snmp_impl.h
 ./read_config.lo: ../include/net-snmp/library/snmp.h
 ./read_config.lo: ../include/net-snmp/library/snmp-tc.h
-./read_config.lo: ../include/net-snmp/output_api.h
-./read_config.lo: ../include/net-snmp/library/snmp_debug.h
-./read_config.lo: ../include/net-snmp/library/snmp_logging.h
 ./read_config.lo: ../include/net-snmp/config_api.h
 ./read_config.lo: ../include/net-snmp/library/read_config.h
 ./read_config.lo: ../include/net-snmp/library/default_store.h
@@ -1329,14 +1645,54 @@
 ./read_config.lo: ../include/net-snmp/library/container.h
 ./read_config.lo: ../include/net-snmp/library/snmp_assert.h
 ./read_config.lo: ../include/net-snmp/version.h
+./readdir.lo: ../include/net-snmp/net-snmp-config.h
+./readdir.lo: ../include/net-snmp/types.h 
+./readdir.lo: ../include/net-snmp/library/oid.h
+./readdir.lo: ../include/net-snmp/library/types.h
+./readdir.lo: ../include/net-snmp/definitions.h
+./readdir.lo: ../include/net-snmp/library/snmp_api.h
+./readdir.lo: ../include/net-snmp/varbind_api.h
+./readdir.lo: ../include/net-snmp/library/snmp_client.h
+./readdir.lo: ../include/net-snmp/pdu_api.h
+./readdir.lo: ../include/net-snmp/library/asn1.h
+./readdir.lo: ../include/net-snmp/output_api.h
+./readdir.lo: ../include/net-snmp/library/snmp_debug.h
+./readdir.lo: ../include/net-snmp/library/snmp_logging.h
+./readdir.lo: ../include/net-snmp/session_api.h
+./readdir.lo: ../include/net-snmp/library/callback.h
+./readdir.lo: ../include/net-snmp/library/snmp_transport.h
+./readdir.lo: ../include/net-snmp/library/snmp_service.h
+./readdir.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./readdir.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./readdir.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./readdir.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./readdir.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./readdir.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./readdir.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./readdir.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./readdir.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./readdir.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./readdir.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./readdir.lo: ../include/net-snmp/library/ucd_compat.h
+./readdir.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
+./readdir.lo: ../include/net-snmp/library/parse.h
+./readdir.lo: ../include/net-snmp/library/oid_stash.h
+./readdir.lo: ../include/net-snmp/library/snmp_impl.h
+./readdir.lo: ../include/net-snmp/library/snmp.h
+./readdir.lo: ../include/net-snmp/library/snmp-tc.h
+./readdir.lo: ../include/net-snmp/library/system.h
 ./scapi.lo: ../include/net-snmp/net-snmp-config.h 
-./scapi.lo: ../include/net-snmp/types.h 
+./scapi.lo:  ../include/net-snmp/types.h
+./scapi.lo:  ../include/net-snmp/library/oid.h
 ./scapi.lo: ../include/net-snmp/library/types.h
 ./scapi.lo: ../include/net-snmp/definitions.h
 ./scapi.lo: ../include/net-snmp/library/snmp_api.h
 ./scapi.lo: ../include/net-snmp/varbind_api.h
 ./scapi.lo: ../include/net-snmp/library/snmp_client.h
 ./scapi.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/library/asn1.h
+./scapi.lo: ../include/net-snmp/output_api.h
+./scapi.lo: ../include/net-snmp/library/snmp_debug.h
+./scapi.lo: ../include/net-snmp/library/snmp_logging.h 
 ./scapi.lo: ../include/net-snmp/session_api.h
 ./scapi.lo: ../include/net-snmp/library/callback.h
 ./scapi.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1344,8 +1700,12 @@
 ./scapi.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./scapi.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./scapi.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./scapi.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./scapi.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./scapi.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./scapi.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./scapi.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./scapi.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./scapi.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./scapi.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./scapi.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1355,9 +1715,6 @@
 ./scapi.lo: ../include/net-snmp/library/snmp_impl.h
 ./scapi.lo: ../include/net-snmp/library/snmp.h
 ./scapi.lo: ../include/net-snmp/library/snmp-tc.h
-./scapi.lo: ../include/net-snmp/output_api.h
-./scapi.lo: ../include/net-snmp/library/snmp_debug.h
-./scapi.lo: ../include/net-snmp/library/snmp_logging.h 
 ./scapi.lo: ../include/net-snmp/utilities.h 
 ./scapi.lo: ../include/net-snmp/library/system.h
 ./scapi.lo: ../include/net-snmp/library/tools.h
@@ -1366,8 +1723,8 @@
 ./scapi.lo: ../include/net-snmp/library/snmp_alarm.h
 ./scapi.lo: ../include/net-snmp/library/data_list.h
 ./scapi.lo: ../include/net-snmp/library/check_varbind.h
-./scapi.lo: ../include/net-snmp/library/container.h
-./scapi.lo: ../include/net-snmp/library/factory.h
+./scapi.lo: ../include/net-snmp/library/container.h 
+./scapi.lo:  ../include/net-snmp/library/factory.h
 ./scapi.lo: ../include/net-snmp/library/container_binary_array.h
 ./scapi.lo: ../include/net-snmp/library/container_list_ssll.h
 ./scapi.lo: ../include/net-snmp/library/container_iterator.h
@@ -1379,46 +1736,9 @@
 ./scapi.lo: ../include/net-snmp/library/keytools.h
 ./scapi.lo: ../include/net-snmp/library/scapi.h
 ./scapi.lo: ../include/net-snmp/library/transform_oids.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/net-snmp-config.h
-./snmpAAL5PVCDomain.lo:  ../include/net-snmp/types.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/types.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/definitions.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_api.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/varbind_api.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_client.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/pdu_api.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/asn1.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/session_api.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/callback.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_transport.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_service.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/mib.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/mib_api.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/parse.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/oid_stash.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_impl.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/output_api.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_debug.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_logging.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/config_api.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/read_config.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/default_store.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_enum.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/vacm.h
-./snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpAAL5PVCDomain.h
 ./snmp_alarm.lo: ../include/net-snmp/net-snmp-config.h 
 ./snmp_alarm.lo:  ../include/net-snmp/types.h
+./snmp_alarm.lo: ../include/net-snmp/library/oid.h
 ./snmp_alarm.lo: ../include/net-snmp/library/types.h
 ./snmp_alarm.lo: ../include/net-snmp/definitions.h
 ./snmp_alarm.lo: ../include/net-snmp/library/snmp_api.h
@@ -1426,6 +1746,9 @@
 ./snmp_alarm.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_alarm.lo: ../include/net-snmp/pdu_api.h
 ./snmp_alarm.lo: ../include/net-snmp/library/asn1.h
+./snmp_alarm.lo: ../include/net-snmp/output_api.h
+./snmp_alarm.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_alarm.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_alarm.lo: ../include/net-snmp/session_api.h
 ./snmp_alarm.lo: ../include/net-snmp/library/callback.h
 ./snmp_alarm.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1433,8 +1756,12 @@
 ./snmp_alarm.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_alarm.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_alarm.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_alarm.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_alarm.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_alarm.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_alarm.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_alarm.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_alarm.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_alarm.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_alarm.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_alarm.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1445,9 +1772,6 @@
 ./snmp_alarm.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp_alarm.lo: ../include/net-snmp/library/snmp.h
 ./snmp_alarm.lo: ../include/net-snmp/library/snmp-tc.h
-./snmp_alarm.lo: ../include/net-snmp/output_api.h
-./snmp_alarm.lo: ../include/net-snmp/library/snmp_debug.h
-./snmp_alarm.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_alarm.lo: ../include/net-snmp/config_api.h
 ./snmp_alarm.lo: ../include/net-snmp/library/read_config.h
 ./snmp_alarm.lo: ../include/net-snmp/library/default_store.h
@@ -1470,61 +1794,9 @@
 ./snmp_alarm.lo: ../include/net-snmp/library/container.h
 ./snmp_alarm.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmp_alarm.lo: ../include/net-snmp/version.h
-./snmpAliasDomain.lo: ../include/net-snmp/net-snmp-config.h
-./snmpAliasDomain.lo:  ../include/net-snmp/types.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/types.h
-./snmpAliasDomain.lo: ../include/net-snmp/definitions.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmp_api.h
-./snmpAliasDomain.lo: ../include/net-snmp/varbind_api.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmp_client.h
-./snmpAliasDomain.lo: ../include/net-snmp/pdu_api.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/asn1.h
-./snmpAliasDomain.lo: ../include/net-snmp/session_api.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/callback.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmp_transport.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmp_service.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/mib.h
-./snmpAliasDomain.lo: ../include/net-snmp/mib_api.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/parse.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/oid_stash.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmp_impl.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmp.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpAliasDomain.lo: ../include/net-snmp/output_api.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmp_debug.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmp_logging.h
-./snmpAliasDomain.lo: ../include/net-snmp/utilities.h 
-./snmpAliasDomain.lo: ../include/net-snmp/library/system.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/tools.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/int64.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/mt_support.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmp_alarm.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/data_list.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/check_varbind.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/container.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/factory.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/container_binary_array.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/container_list_ssll.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/container_iterator.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/container.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmp_assert.h
-./snmpAliasDomain.lo: ../include/net-snmp/version.h
-./snmpAliasDomain.lo: ../include/net-snmp/config_api.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/read_config.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/default_store.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/snmp_enum.h
-./snmpAliasDomain.lo: ../include/net-snmp/library/vacm.h
 ./snmp_api.lo: ../include/net-snmp/net-snmp-config.h 
 ./snmp_api.lo: ../include/net-snmp/types.h 
+./snmp_api.lo: ../include/net-snmp/library/oid.h
 ./snmp_api.lo: ../include/net-snmp/library/types.h
 ./snmp_api.lo: ../include/net-snmp/definitions.h
 ./snmp_api.lo: ../include/net-snmp/library/snmp_api.h
@@ -1532,6 +1804,9 @@
 ./snmp_api.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_api.lo: ../include/net-snmp/pdu_api.h
 ./snmp_api.lo: ../include/net-snmp/library/asn1.h
+./snmp_api.lo: ../include/net-snmp/output_api.h
+./snmp_api.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_api.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_api.lo: ../include/net-snmp/session_api.h
 ./snmp_api.lo: ../include/net-snmp/library/callback.h
 ./snmp_api.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1539,8 +1814,12 @@
 ./snmp_api.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_api.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_api.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_api.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_api.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_api.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_api.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_api.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_api.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_api.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_api.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_api.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1551,9 +1830,6 @@
 ./snmp_api.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp_api.lo: ../include/net-snmp/library/snmp.h
 ./snmp_api.lo: ../include/net-snmp/library/snmp-tc.h
-./snmp_api.lo: ../include/net-snmp/output_api.h
-./snmp_api.lo: ../include/net-snmp/library/snmp_debug.h
-./snmp_api.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_api.lo: ../include/net-snmp/config_api.h
 ./snmp_api.lo: ../include/net-snmp/library/read_config.h
 ./snmp_api.lo: ../include/net-snmp/library/default_store.h
@@ -1568,8 +1844,8 @@
 ./snmp_api.lo: ../include/net-snmp/library/snmp_alarm.h
 ./snmp_api.lo: ../include/net-snmp/library/data_list.h
 ./snmp_api.lo: ../include/net-snmp/library/check_varbind.h
-./snmp_api.lo: ../include/net-snmp/library/container.h
-./snmp_api.lo: ../include/net-snmp/library/factory.h
+./snmp_api.lo: ../include/net-snmp/library/container.h 
+./snmp_api.lo:  ../include/net-snmp/library/factory.h
 ./snmp_api.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmp_api.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmp_api.lo: ../include/net-snmp/library/container_iterator.h
@@ -1584,7 +1860,8 @@
 ./snmp_api.lo: ../agent/mibgroup/agentx/protocol.h
 ./snmp_api.lo: ../include/net-snmp/library/transform_oids.h
 ./snmp_auth.lo: ../include/net-snmp/net-snmp-config.h 
-./snmp_auth.lo: ../include/net-snmp/types.h 
+./snmp_auth.lo:  ../include/net-snmp/types.h
+./snmp_auth.lo:  ../include/net-snmp/library/oid.h
 ./snmp_auth.lo: ../include/net-snmp/library/types.h
 ./snmp_auth.lo: ../include/net-snmp/definitions.h
 ./snmp_auth.lo: ../include/net-snmp/library/snmp_api.h
@@ -1592,6 +1869,9 @@
 ./snmp_auth.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_auth.lo: ../include/net-snmp/pdu_api.h
 ./snmp_auth.lo: ../include/net-snmp/library/asn1.h
+./snmp_auth.lo: ../include/net-snmp/output_api.h
+./snmp_auth.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_auth.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_auth.lo: ../include/net-snmp/session_api.h
 ./snmp_auth.lo: ../include/net-snmp/library/callback.h
 ./snmp_auth.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1599,8 +1879,12 @@
 ./snmp_auth.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_auth.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_auth.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_auth.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_auth.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_auth.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_auth.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_auth.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_auth.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_auth.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_auth.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_auth.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1611,9 +1895,6 @@
 ./snmp_auth.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp_auth.lo: ../include/net-snmp/library/snmp.h
 ./snmp_auth.lo: ../include/net-snmp/library/snmp-tc.h
-./snmp_auth.lo: ../include/net-snmp/output_api.h
-./snmp_auth.lo: ../include/net-snmp/library/snmp_debug.h
-./snmp_auth.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_auth.lo: ../include/net-snmp/utilities.h 
 ./snmp_auth.lo: ../include/net-snmp/library/system.h
 ./snmp_auth.lo: ../include/net-snmp/library/tools.h
@@ -1622,8 +1903,8 @@
 ./snmp_auth.lo: ../include/net-snmp/library/snmp_alarm.h
 ./snmp_auth.lo: ../include/net-snmp/library/data_list.h
 ./snmp_auth.lo: ../include/net-snmp/library/check_varbind.h
-./snmp_auth.lo: ../include/net-snmp/library/container.h
-./snmp_auth.lo: ../include/net-snmp/library/factory.h
+./snmp_auth.lo: ../include/net-snmp/library/container.h 
+./snmp_auth.lo:  ../include/net-snmp/library/factory.h
 ./snmp_auth.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmp_auth.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmp_auth.lo: ../include/net-snmp/library/container_iterator.h
@@ -1634,12 +1915,16 @@
 ./snmp_auth.lo: ../include/net-snmp/library/scapi.h
 ./snmp.lo: ../include/net-snmp/net-snmp-config.h 
 ./snmp.lo:  ../include/net-snmp/types.h
-./snmp.lo:  ../include/net-snmp/library/types.h
+./snmp.lo:  ../include/net-snmp/library/oid.h
+./snmp.lo: ../include/net-snmp/library/types.h
 ./snmp.lo: ../include/net-snmp/definitions.h
 ./snmp.lo: ../include/net-snmp/library/snmp_api.h
 ./snmp.lo: ../include/net-snmp/varbind_api.h
 ./snmp.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/library/asn1.h
+./snmp.lo: ../include/net-snmp/output_api.h
+./snmp.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp.lo: ../include/net-snmp/library/snmp_logging.h 
 ./snmp.lo: ../include/net-snmp/session_api.h
 ./snmp.lo: ../include/net-snmp/library/callback.h
 ./snmp.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1647,8 +1932,12 @@
 ./snmp.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp.lo: ../include/net-snmp/library/snmpUnixDomain.h 
 ./snmp.lo:  ../include/net-snmp/library/snmpUDPDomain.h
+./snmp.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp.lo:  ../include/net-snmp/library/ucd_compat.h
@@ -1658,64 +1947,9 @@
 ./snmp.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp.lo: ../include/net-snmp/library/snmp.h
 ./snmp.lo: ../include/net-snmp/library/snmp-tc.h
-./snmp.lo: ../include/net-snmp/output_api.h
-./snmp.lo: ../include/net-snmp/library/snmp_debug.h
-./snmp.lo: ../include/net-snmp/library/snmp_logging.h 
-./snmpCallbackDomain.lo: ../include/net-snmp/net-snmp-config.h
-./snmpCallbackDomain.lo:  ../include/net-snmp/types.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/types.h
-./snmpCallbackDomain.lo: ../include/net-snmp/definitions.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_api.h
-./snmpCallbackDomain.lo: ../include/net-snmp/varbind_api.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_client.h
-./snmpCallbackDomain.lo: ../include/net-snmp/pdu_api.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/asn1.h
-./snmpCallbackDomain.lo: ../include/net-snmp/session_api.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/callback.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_transport.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_service.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/mib.h
-./snmpCallbackDomain.lo: ../include/net-snmp/mib_api.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/parse.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/oid_stash.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_impl.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpCallbackDomain.lo: ../include/net-snmp/output_api.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_debug.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_logging.h
-./snmpCallbackDomain.lo: ../include/net-snmp/config_api.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/read_config.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/default_store.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_enum.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/vacm.h
-./snmpCallbackDomain.lo: ../include/net-snmp/utilities.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/system.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/tools.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/int64.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/mt_support.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_alarm.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/data_list.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/check_varbind.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/container.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/factory.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/container_binary_array.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/container_list_ssll.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/container_iterator.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/container.h
-./snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_assert.h
-./snmpCallbackDomain.lo: ../include/net-snmp/version.h
 ./snmp_client.lo: ../include/net-snmp/net-snmp-config.h 
 ./snmp_client.lo: ../include/net-snmp/types.h 
+./snmp_client.lo: ../include/net-snmp/library/oid.h
 ./snmp_client.lo: ../include/net-snmp/library/types.h
 ./snmp_client.lo: ../include/net-snmp/definitions.h
 ./snmp_client.lo: ../include/net-snmp/library/snmp_api.h
@@ -1723,6 +1957,9 @@
 ./snmp_client.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_client.lo: ../include/net-snmp/pdu_api.h
 ./snmp_client.lo: ../include/net-snmp/library/asn1.h
+./snmp_client.lo: ../include/net-snmp/output_api.h
+./snmp_client.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_client.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_client.lo: ../include/net-snmp/session_api.h
 ./snmp_client.lo: ../include/net-snmp/library/callback.h
 ./snmp_client.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1730,8 +1967,12 @@
 ./snmp_client.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_client.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_client.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_client.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_client.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_client.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_client.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_client.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_client.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_client.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_client.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_client.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1746,11 +1987,10 @@
 ./snmp_client.lo: ../include/net-snmp/library/default_store.h
 ./snmp_client.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmp_client.lo: ../include/net-snmp/library/snmpusm.h
-./snmp_client.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_client.lo: ../include/net-snmp/library/snmp_assert.h
-./snmp_client.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmp_debug.lo: ../include/net-snmp/net-snmp-config.h 
 ./snmp_debug.lo:  ../include/net-snmp/types.h
+./snmp_debug.lo: ../include/net-snmp/library/oid.h
 ./snmp_debug.lo: ../include/net-snmp/library/types.h
 ./snmp_debug.lo: ../include/net-snmp/definitions.h
 ./snmp_debug.lo: ../include/net-snmp/library/snmp_api.h
@@ -1758,6 +1998,9 @@
 ./snmp_debug.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_debug.lo: ../include/net-snmp/pdu_api.h
 ./snmp_debug.lo: ../include/net-snmp/library/asn1.h
+./snmp_debug.lo: ../include/net-snmp/output_api.h
+./snmp_debug.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_debug.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_debug.lo: ../include/net-snmp/session_api.h
 ./snmp_debug.lo: ../include/net-snmp/library/callback.h
 ./snmp_debug.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1765,8 +2008,12 @@
 ./snmp_debug.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_debug.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_debug.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_debug.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_debug.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_debug.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_debug.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_debug.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_debug.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_debug.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_debug.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_debug.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1777,9 +2024,6 @@
 ./snmp_debug.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp_debug.lo: ../include/net-snmp/library/snmp.h
 ./snmp_debug.lo: ../include/net-snmp/library/snmp-tc.h
-./snmp_debug.lo: ../include/net-snmp/output_api.h
-./snmp_debug.lo: ../include/net-snmp/library/snmp_debug.h
-./snmp_debug.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_debug.lo: ../include/net-snmp/config_api.h
 ./snmp_debug.lo: ../include/net-snmp/library/read_config.h
 ./snmp_debug.lo: ../include/net-snmp/library/default_store.h
@@ -1802,49 +2046,9 @@
 ./snmp_debug.lo: ../include/net-snmp/library/container.h
 ./snmp_debug.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmp_debug.lo: ../include/net-snmp/version.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/net-snmp-config.h
-./snmpDTLSUDPDomain.lo:  ../include/net-snmp/types.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/types.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/definitions.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmp_api.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/varbind_api.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmp_client.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/pdu_api.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/asn1.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/session_api.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/callback.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmp_transport.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmp_service.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/mib.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/mib_api.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/parse.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/oid_stash.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmp_impl.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmp.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/output_api.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmp_debug.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmp_logging.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/config_api.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/read_config.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/default_store.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmp_enum.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/vacm.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmpDTLSUDPDomain.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/system.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/tools.h
-./snmpDTLSUDPDomain.lo: ../include/net-snmp/library/snmp_openssl.h
 ./snmp_enum.lo: ../include/net-snmp/net-snmp-config.h 
-./snmp_enum.lo: ../include/net-snmp/types.h 
+./snmp_enum.lo:  ../include/net-snmp/types.h
+./snmp_enum.lo:  ../include/net-snmp/library/oid.h
 ./snmp_enum.lo: ../include/net-snmp/library/types.h
 ./snmp_enum.lo: ../include/net-snmp/definitions.h
 ./snmp_enum.lo: ../include/net-snmp/library/snmp_api.h
@@ -1852,6 +2056,9 @@
 ./snmp_enum.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_enum.lo: ../include/net-snmp/pdu_api.h
 ./snmp_enum.lo: ../include/net-snmp/library/asn1.h
+./snmp_enum.lo: ../include/net-snmp/output_api.h
+./snmp_enum.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_enum.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_enum.lo: ../include/net-snmp/session_api.h
 ./snmp_enum.lo: ../include/net-snmp/library/callback.h
 ./snmp_enum.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1859,8 +2066,12 @@
 ./snmp_enum.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_enum.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_enum.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_enum.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_enum.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_enum.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_enum.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_enum.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_enum.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_enum.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_enum.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_enum.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1878,46 +2089,10 @@
 ./snmp_enum.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmp_enum.lo: ../include/net-snmp/library/vacm.h
 ./snmp_enum.lo: ../include/net-snmp/library/tools.h
-./snmpIPXDomain.lo: ../include/net-snmp/net-snmp-config.h
-./snmpIPXDomain.lo:  ../include/net-snmp/types.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/types.h
-./snmpIPXDomain.lo: ../include/net-snmp/definitions.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmp_api.h
-./snmpIPXDomain.lo: ../include/net-snmp/varbind_api.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmp_client.h
-./snmpIPXDomain.lo: ../include/net-snmp/pdu_api.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/asn1.h
-./snmpIPXDomain.lo: ../include/net-snmp/session_api.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/callback.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmp_transport.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmp_service.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/mib.h
-./snmpIPXDomain.lo: ../include/net-snmp/mib_api.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/parse.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/oid_stash.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmp_impl.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmp.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpIPXDomain.lo: ../include/net-snmp/output_api.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmp_debug.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmp_logging.h
-./snmpIPXDomain.lo: ../include/net-snmp/config_api.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/read_config.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/default_store.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/snmp_enum.h
-./snmpIPXDomain.lo: ../include/net-snmp/library/vacm.h
+./snmp_enum.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmpksm.lo: ../include/net-snmp/net-snmp-config.h 
-./snmpksm.lo:  ../include/net-snmp/output_api.h
-./snmpksm.lo: ../include/net-snmp/types.h 
+./snmpksm.lo: ../include/net-snmp/output_api.h ../include/net-snmp/types.h
+./snmpksm.lo:  ../include/net-snmp/library/oid.h
 ./snmpksm.lo: ../include/net-snmp/library/types.h
 ./snmpksm.lo: ../include/net-snmp/definitions.h
 ./snmpksm.lo: ../include/net-snmp/library/snmp_api.h
@@ -1932,8 +2107,12 @@
 ./snmpksm.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpksm.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpksm.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpksm.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpksm.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpksm.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpksm.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpksm.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpksm.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpksm.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpksm.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpksm.lo: ../include/net-snmp/library/ucd_compat.h
@@ -1975,6 +2154,7 @@
 ./snmpksm.lo: ../include/net-snmp/library/snmpksm.h
 ./snmp_logging.lo: ../include/net-snmp/net-snmp-config.h 
 ./snmp_logging.lo: ../include/net-snmp/types.h 
+./snmp_logging.lo: ../include/net-snmp/library/oid.h
 ./snmp_logging.lo: ../include/net-snmp/library/types.h
 ./snmp_logging.lo: ../include/net-snmp/definitions.h
 ./snmp_logging.lo: ../include/net-snmp/library/snmp_api.h
@@ -1982,6 +2162,9 @@
 ./snmp_logging.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_logging.lo: ../include/net-snmp/pdu_api.h
 ./snmp_logging.lo: ../include/net-snmp/library/asn1.h
+./snmp_logging.lo: ../include/net-snmp/output_api.h
+./snmp_logging.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_logging.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_logging.lo: ../include/net-snmp/session_api.h
 ./snmp_logging.lo: ../include/net-snmp/library/callback.h
 ./snmp_logging.lo: ../include/net-snmp/library/snmp_transport.h
@@ -1989,8 +2172,12 @@
 ./snmp_logging.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_logging.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_logging.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_logging.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_logging.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_logging.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_logging.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_logging.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_logging.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_logging.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_logging.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_logging.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2001,9 +2188,6 @@
 ./snmp_logging.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp_logging.lo: ../include/net-snmp/library/snmp.h
 ./snmp_logging.lo: ../include/net-snmp/library/snmp-tc.h
-./snmp_logging.lo: ../include/net-snmp/output_api.h
-./snmp_logging.lo: ../include/net-snmp/library/snmp_debug.h
-./snmp_logging.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_logging.lo: ../include/net-snmp/config_api.h
 ./snmp_logging.lo: ../include/net-snmp/library/read_config.h
 ./snmp_logging.lo: ../include/net-snmp/library/default_store.h
@@ -2030,12 +2214,16 @@
 ./snmp_openssl.lo: ../include/net-snmp/net-snmp-includes.h
 ./snmp_openssl.lo:  ../include/net-snmp/definitions.h
 ./snmp_openssl.lo: ../include/net-snmp/types.h 
+./snmp_openssl.lo: ../include/net-snmp/library/oid.h
 ./snmp_openssl.lo: ../include/net-snmp/library/types.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmp_api.h
 ./snmp_openssl.lo: ../include/net-snmp/varbind_api.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_openssl.lo: ../include/net-snmp/pdu_api.h
 ./snmp_openssl.lo: ../include/net-snmp/library/asn1.h
+./snmp_openssl.lo: ../include/net-snmp/output_api.h
+./snmp_openssl.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_openssl.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_openssl.lo: ../include/net-snmp/session_api.h
 ./snmp_openssl.lo: ../include/net-snmp/library/callback.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2043,8 +2231,12 @@
 ./snmp_openssl.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_openssl.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_openssl.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_openssl.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_openssl.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_openssl.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2056,7 +2248,7 @@
 ./snmp_openssl.lo: ../include/net-snmp/library/snmp.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmp-tc.h
 ./snmp_openssl.lo: ../include/net-snmp/library/getopt.h
-./snmp_openssl.lo: ../include/net-snmp/utilities.h
+./snmp_openssl.lo: ../include/net-snmp/utilities.h 
 ./snmp_openssl.lo: ../include/net-snmp/library/system.h
 ./snmp_openssl.lo: ../include/net-snmp/library/tools.h
 ./snmp_openssl.lo: ../include/net-snmp/library/int64.h
@@ -2066,7 +2258,6 @@
 ./snmp_openssl.lo: ../include/net-snmp/library/check_varbind.h
 ./snmp_openssl.lo: ../include/net-snmp/library/container.h
 ./snmp_openssl.lo: ../include/net-snmp/library/factory.h
-./snmp_openssl.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_openssl.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmp_openssl.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmp_openssl.lo: ../include/net-snmp/library/container_iterator.h
@@ -2079,8 +2270,6 @@
 ./snmp_openssl.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmp_openssl.lo: ../include/net-snmp/library/vacm.h
-./snmp_openssl.lo: ../include/net-snmp/output_api.h
-./snmp_openssl.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmp_openssl.lo: ../include/net-snmp/snmpv3_api.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmpv3.h
 ./snmp_openssl.lo: ../include/net-snmp/library/transform_oids.h
@@ -2089,17 +2278,22 @@
 ./snmp_openssl.lo: ../include/net-snmp/library/lcd_time.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmp_openssl.lo: ../include/net-snmp/library/snmptsm.h
 ./snmp_openssl.lo: ../include/net-snmp/library/snmpusm.h
-./snmp_openssl.lo: ../include/net-snmp/library/snmp_openssl.h
 ./snmp_parse_args.lo: ../include/net-snmp/net-snmp-config.h
-./snmp_parse_args.lo:  ../include/net-snmp/types.h
-./snmp_parse_args.lo: ../include/net-snmp/library/types.h
+./snmp_parse_args.lo: ../include/net-snmp/net-snmp-includes.h
 ./snmp_parse_args.lo: ../include/net-snmp/definitions.h
+./snmp_parse_args.lo: ../include/net-snmp/types.h 
+./snmp_parse_args.lo: ../include/net-snmp/library/oid.h
+./snmp_parse_args.lo: ../include/net-snmp/library/types.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmp_api.h
 ./snmp_parse_args.lo: ../include/net-snmp/varbind_api.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_parse_args.lo: ../include/net-snmp/pdu_api.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/asn1.h
+./snmp_parse_args.lo: ../include/net-snmp/output_api.h
+./snmp_parse_args.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_parse_args.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_parse_args.lo: ../include/net-snmp/session_api.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/callback.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2107,8 +2301,12 @@
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_parse_args.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_parse_args.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_parse_args.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_parse_args.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2119,15 +2317,7 @@
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmp.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmp-tc.h
-./snmp_parse_args.lo: ../include/net-snmp/output_api.h
-./snmp_parse_args.lo: ../include/net-snmp/library/snmp_debug.h
-./snmp_parse_args.lo: ../include/net-snmp/library/snmp_logging.h
-./snmp_parse_args.lo: ../include/net-snmp/config_api.h
-./snmp_parse_args.lo: ../include/net-snmp/library/read_config.h
-./snmp_parse_args.lo: ../include/net-snmp/library/default_store.h
-./snmp_parse_args.lo: ../include/net-snmp/library/snmp_parse_args.h
-./snmp_parse_args.lo: ../include/net-snmp/library/snmp_enum.h
-./snmp_parse_args.lo: ../include/net-snmp/library/vacm.h
+./snmp_parse_args.lo: ../include/net-snmp/library/getopt.h
 ./snmp_parse_args.lo: ../include/net-snmp/utilities.h 
 ./snmp_parse_args.lo: ../include/net-snmp/library/system.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/tools.h
@@ -2144,12 +2334,25 @@
 ./snmp_parse_args.lo: ../include/net-snmp/library/container.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmp_parse_args.lo: ../include/net-snmp/version.h
-./snmp_parse_args.lo: ../include/net-snmp/library/scapi.h
-./snmp_parse_args.lo: ../include/net-snmp/library/keytools.h
+./snmp_parse_args.lo: ../include/net-snmp/config_api.h
+./snmp_parse_args.lo: ../include/net-snmp/library/read_config.h
+./snmp_parse_args.lo: ../include/net-snmp/library/default_store.h
+./snmp_parse_args.lo: ../include/net-snmp/library/snmp_parse_args.h
+./snmp_parse_args.lo: ../include/net-snmp/library/snmp_enum.h
+./snmp_parse_args.lo: ../include/net-snmp/library/vacm.h
+./snmp_parse_args.lo: ../include/net-snmp/snmpv3_api.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/snmpv3.h
 ./snmp_parse_args.lo: ../include/net-snmp/library/transform_oids.h
+./snmp_parse_args.lo: ../include/net-snmp/library/keytools.h
+./snmp_parse_args.lo: ../include/net-snmp/library/scapi.h
+./snmp_parse_args.lo: ../include/net-snmp/library/lcd_time.h
+./snmp_parse_args.lo: ../include/net-snmp/library/snmp_secmod.h
+./snmp_parse_args.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmp_parse_args.lo: ../include/net-snmp/library/snmptsm.h
+./snmp_parse_args.lo: ../include/net-snmp/library/snmpusm.h
 ./snmp_secmod.lo: ../include/net-snmp/net-snmp-config.h 
 ./snmp_secmod.lo:  ../include/net-snmp/types.h
+./snmp_secmod.lo: ../include/net-snmp/library/oid.h
 ./snmp_secmod.lo: ../include/net-snmp/library/types.h
 ./snmp_secmod.lo: ../include/net-snmp/definitions.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmp_api.h
@@ -2157,6 +2360,9 @@
 ./snmp_secmod.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_secmod.lo: ../include/net-snmp/pdu_api.h
 ./snmp_secmod.lo: ../include/net-snmp/library/asn1.h
+./snmp_secmod.lo: ../include/net-snmp/output_api.h
+./snmp_secmod.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_secmod.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_secmod.lo: ../include/net-snmp/session_api.h
 ./snmp_secmod.lo: ../include/net-snmp/library/callback.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2164,8 +2370,12 @@
 ./snmp_secmod.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_secmod.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_secmod.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_secmod.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_secmod.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_secmod.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2176,9 +2386,6 @@
 ./snmp_secmod.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmp.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmp-tc.h
-./snmp_secmod.lo: ../include/net-snmp/output_api.h
-./snmp_secmod.lo: ../include/net-snmp/library/snmp_debug.h
-./snmp_secmod.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_secmod.lo: ../include/net-snmp/config_api.h
 ./snmp_secmod.lo: ../include/net-snmp/library/read_config.h
 ./snmp_secmod.lo: ../include/net-snmp/library/default_store.h
@@ -2202,17 +2409,23 @@
 ./snmp_secmod.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmp_secmod.lo: ../include/net-snmp/version.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmp_secmod.h
+./snmp_secmod.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmp_secmod.lo: ../include/net-snmp/library/snmptsm.h
 ./snmp_secmod.lo: ../include/net-snmp/library/snmpusm.h snmpsm_init.h
 ./snmp_service.lo: ../include/net-snmp/net-snmp-config.h
 ./snmp_service.lo: ../include/net-snmp/net-snmp-includes.h
-./snmp_service.lo:  ../include/net-snmp/definitions.h
+./snmp_service.lo: ../include/net-snmp/definitions.h
 ./snmp_service.lo: ../include/net-snmp/types.h 
+./snmp_service.lo: ../include/net-snmp/library/oid.h
 ./snmp_service.lo: ../include/net-snmp/library/types.h
 ./snmp_service.lo: ../include/net-snmp/library/snmp_api.h
 ./snmp_service.lo: ../include/net-snmp/varbind_api.h
 ./snmp_service.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_service.lo: ../include/net-snmp/pdu_api.h
 ./snmp_service.lo: ../include/net-snmp/library/asn1.h
+./snmp_service.lo: ../include/net-snmp/output_api.h
+./snmp_service.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_service.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_service.lo: ../include/net-snmp/session_api.h
 ./snmp_service.lo: ../include/net-snmp/library/callback.h
 ./snmp_service.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2220,8 +2433,12 @@
 ./snmp_service.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_service.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_service.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_service.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_service.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_service.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_service.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_service.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_service.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_service.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_service.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_service.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2233,7 +2450,7 @@
 ./snmp_service.lo: ../include/net-snmp/library/snmp.h
 ./snmp_service.lo: ../include/net-snmp/library/snmp-tc.h
 ./snmp_service.lo: ../include/net-snmp/library/getopt.h
-./snmp_service.lo: ../include/net-snmp/utilities.h
+./snmp_service.lo: ../include/net-snmp/utilities.h 
 ./snmp_service.lo: ../include/net-snmp/library/system.h
 ./snmp_service.lo: ../include/net-snmp/library/tools.h
 ./snmp_service.lo: ../include/net-snmp/library/int64.h
@@ -2243,7 +2460,6 @@
 ./snmp_service.lo: ../include/net-snmp/library/check_varbind.h
 ./snmp_service.lo: ../include/net-snmp/library/container.h
 ./snmp_service.lo: ../include/net-snmp/library/factory.h
-./snmp_service.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_service.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmp_service.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmp_service.lo: ../include/net-snmp/library/container_iterator.h
@@ -2256,8 +2472,6 @@
 ./snmp_service.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmp_service.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmp_service.lo: ../include/net-snmp/library/vacm.h
-./snmp_service.lo: ../include/net-snmp/output_api.h
-./snmp_service.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmp_service.lo: ../include/net-snmp/snmpv3_api.h
 ./snmp_service.lo: ../include/net-snmp/library/snmpv3.h
 ./snmp_service.lo: ../include/net-snmp/library/transform_oids.h
@@ -2266,89 +2480,21 @@
 ./snmp_service.lo: ../include/net-snmp/library/lcd_time.h
 ./snmp_service.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmp_service.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./snmp_service.lo: ../include/net-snmp/library/snmptsm.h
 ./snmp_service.lo: ../include/net-snmp/library/snmpusm.h
-./snmpSSHDomain.lo: ../include/net-snmp/net-snmp-config.h
-./snmpSSHDomain.lo: ../include/net-snmp/types.h 
-./snmpSSHDomain.lo: ../include/net-snmp/library/types.h
-./snmpSSHDomain.lo: ../include/net-snmp/definitions.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmp_api.h
-./snmpSSHDomain.lo: ../include/net-snmp/varbind_api.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmp_client.h
-./snmpSSHDomain.lo: ../include/net-snmp/pdu_api.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/asn1.h
-./snmpSSHDomain.lo: ../include/net-snmp/session_api.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/callback.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmp_transport.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmp_service.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/mib.h
-./snmpSSHDomain.lo: ../include/net-snmp/mib_api.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/parse.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/oid_stash.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmp_impl.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmp.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpSSHDomain.lo: ../include/net-snmp/output_api.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmp_debug.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmp_logging.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/tools.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/system.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/default_store.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmpSSHDomain.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/read_config.h
-./snmpSSHDomain.lo: ../include/net-snmp/config_api.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/snmp_enum.h
-./snmpSSHDomain.lo: ../include/net-snmp/library/vacm.h
-./snmpSTDDomain.lo: ../include/net-snmp/net-snmp-config.h
-./snmpSTDDomain.lo:  ../include/net-snmp/types.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/types.h
-./snmpSTDDomain.lo: ../include/net-snmp/definitions.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmp_api.h
-./snmpSTDDomain.lo: ../include/net-snmp/varbind_api.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmp_client.h
-./snmpSTDDomain.lo: ../include/net-snmp/pdu_api.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/asn1.h
-./snmpSTDDomain.lo: ../include/net-snmp/session_api.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/callback.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmp_transport.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmp_service.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/mib.h
-./snmpSTDDomain.lo: ../include/net-snmp/mib_api.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/parse.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/oid_stash.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmp_impl.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmp.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpSTDDomain.lo: ../include/net-snmp/output_api.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmp_debug.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmp_logging.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/snmpSTDDomain.h
-./snmpSTDDomain.lo: ../include/net-snmp/library/tools.h
 ./snmp-tc.lo: ../include/net-snmp/net-snmp-config.h 
 ./snmp-tc.lo:  ../include/net-snmp/types.h
-./snmp-tc.lo:  ../include/net-snmp/library/types.h
+./snmp-tc.lo:  ../include/net-snmp/library/oid.h
+./snmp-tc.lo: ../include/net-snmp/library/types.h
 ./snmp-tc.lo: ../include/net-snmp/definitions.h
 ./snmp-tc.lo: ../include/net-snmp/library/snmp_api.h
 ./snmp-tc.lo: ../include/net-snmp/varbind_api.h
 ./snmp-tc.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp-tc.lo: ../include/net-snmp/pdu_api.h
 ./snmp-tc.lo: ../include/net-snmp/library/asn1.h
+./snmp-tc.lo: ../include/net-snmp/output_api.h
+./snmp-tc.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp-tc.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp-tc.lo: ../include/net-snmp/session_api.h
 ./snmp-tc.lo: ../include/net-snmp/library/callback.h
 ./snmp-tc.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2356,8 +2502,12 @@
 ./snmp-tc.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp-tc.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp-tc.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp-tc.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp-tc.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp-tc.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp-tc.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp-tc.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp-tc.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp-tc.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp-tc.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp-tc.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2367,41 +2517,9 @@
 ./snmp-tc.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp-tc.lo: ../include/net-snmp/library/snmp.h
 ./snmp-tc.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpTCPDomain.lo: ../include/net-snmp/net-snmp-config.h
-./snmpTCPDomain.lo:  ../include/net-snmp/types.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/types.h
-./snmpTCPDomain.lo: ../include/net-snmp/definitions.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmp_api.h
-./snmpTCPDomain.lo: ../include/net-snmp/varbind_api.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmp_client.h
-./snmpTCPDomain.lo: ../include/net-snmp/pdu_api.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/asn1.h
-./snmpTCPDomain.lo: ../include/net-snmp/session_api.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/callback.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmp_transport.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmp_service.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/mib.h
-./snmpTCPDomain.lo: ../include/net-snmp/mib_api.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/parse.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/oid_stash.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmp_impl.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmp.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpTCPDomain.lo: ../include/net-snmp/output_api.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmp_debug.h
-./snmpTCPDomain.lo: ../include/net-snmp/library/snmp_logging.h
-./snmpTCPIPv6Domain.lo: ../include/net-snmp/net-snmp-config.h
 ./snmp_transport.lo: ../include/net-snmp/net-snmp-config.h
-./snmp_transport.lo: ../include/net-snmp/output_api.h
 ./snmp_transport.lo: ../include/net-snmp/types.h 
+./snmp_transport.lo:  ../include/net-snmp/library/oid.h
 ./snmp_transport.lo: ../include/net-snmp/library/types.h
 ./snmp_transport.lo: ../include/net-snmp/definitions.h
 ./snmp_transport.lo: ../include/net-snmp/library/snmp_api.h
@@ -2409,6 +2527,9 @@
 ./snmp_transport.lo: ../include/net-snmp/library/snmp_client.h
 ./snmp_transport.lo: ../include/net-snmp/pdu_api.h
 ./snmp_transport.lo: ../include/net-snmp/library/asn1.h
+./snmp_transport.lo: ../include/net-snmp/output_api.h
+./snmp_transport.lo: ../include/net-snmp/library/snmp_debug.h
+./snmp_transport.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_transport.lo: ../include/net-snmp/session_api.h
 ./snmp_transport.lo: ../include/net-snmp/library/callback.h
 ./snmp_transport.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2416,8 +2537,12 @@
 ./snmp_transport.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmp_transport.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmp_transport.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmp_transport.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmp_transport.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmp_transport.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmp_transport.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmp_transport.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmp_transport.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmp_transport.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmp_transport.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmp_transport.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2428,8 +2553,6 @@
 ./snmp_transport.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmp_transport.lo: ../include/net-snmp/library/snmp.h
 ./snmp_transport.lo: ../include/net-snmp/library/snmp-tc.h
-./snmp_transport.lo: ../include/net-snmp/library/snmp_debug.h
-./snmp_transport.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmp_transport.lo: ../include/net-snmp/utilities.h 
 ./snmp_transport.lo: ../include/net-snmp/library/system.h
 ./snmp_transport.lo: ../include/net-snmp/library/tools.h
@@ -2446,15 +2569,27 @@
 ./snmp_transport.lo: ../include/net-snmp/library/container.h
 ./snmp_transport.lo: ../include/net-snmp/library/snmp_assert.h
 ./snmp_transport.lo: ../include/net-snmp/version.h
+./snmp_transport.lo: ../include/net-snmp/library/default_store.h
+./snmp_transport.lo: ../include/net-snmp/library/read_config.h
+./snmp_transport.lo: ../include/net-snmp/config_api.h
+./snmp_transport.lo: ../include/net-snmp/library/snmp_parse_args.h
+./snmp_transport.lo: ../include/net-snmp/library/snmp_enum.h
+./snmp_transport.lo: ../include/net-snmp/library/vacm.h
+./snmp_transport.lo: transports/snmp_transport_inits.h
 ./snmptsm.lo: ../include/net-snmp/net-snmp-config.h
 ./snmptsm.lo: ../include/net-snmp/net-snmp-includes.h 
-./snmptsm.lo: ../include/net-snmp/definitions.h ../include/net-snmp/types.h
-./snmptsm.lo:  ../include/net-snmp/library/types.h
+./snmptsm.lo:  ../include/net-snmp/definitions.h
+./snmptsm.lo: ../include/net-snmp/types.h 
+./snmptsm.lo: ../include/net-snmp/library/oid.h
+./snmptsm.lo: ../include/net-snmp/library/types.h
 ./snmptsm.lo: ../include/net-snmp/library/snmp_api.h
 ./snmptsm.lo: ../include/net-snmp/varbind_api.h
 ./snmptsm.lo: ../include/net-snmp/library/snmp_client.h
 ./snmptsm.lo: ../include/net-snmp/pdu_api.h
 ./snmptsm.lo: ../include/net-snmp/library/asn1.h
+./snmptsm.lo: ../include/net-snmp/output_api.h
+./snmptsm.lo: ../include/net-snmp/library/snmp_debug.h
+./snmptsm.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmptsm.lo: ../include/net-snmp/session_api.h
 ./snmptsm.lo: ../include/net-snmp/library/callback.h
 ./snmptsm.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2462,8 +2597,12 @@
 ./snmptsm.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmptsm.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmptsm.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmptsm.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmptsm.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmptsm.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmptsm.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmptsm.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmptsm.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmptsm.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmptsm.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmptsm.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2474,7 +2613,7 @@
 ./snmptsm.lo: ../include/net-snmp/library/snmp.h
 ./snmptsm.lo: ../include/net-snmp/library/snmp-tc.h
 ./snmptsm.lo: ../include/net-snmp/library/getopt.h
-./snmptsm.lo: ../include/net-snmp/utilities.h
+./snmptsm.lo: ../include/net-snmp/utilities.h 
 ./snmptsm.lo: ../include/net-snmp/library/system.h
 ./snmptsm.lo: ../include/net-snmp/library/tools.h
 ./snmptsm.lo: ../include/net-snmp/library/int64.h
@@ -2482,9 +2621,8 @@
 ./snmptsm.lo: ../include/net-snmp/library/snmp_alarm.h
 ./snmptsm.lo: ../include/net-snmp/library/data_list.h
 ./snmptsm.lo: ../include/net-snmp/library/check_varbind.h
-./snmptsm.lo: ../include/net-snmp/library/container.h
-./snmptsm.lo: ../include/net-snmp/library/factory.h
-./snmptsm.lo: ../include/net-snmp/library/snmp_logging.h
+./snmptsm.lo: ../include/net-snmp/library/container.h 
+./snmptsm.lo:  ../include/net-snmp/library/factory.h
 ./snmptsm.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmptsm.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmptsm.lo: ../include/net-snmp/library/container_iterator.h
@@ -2496,8 +2634,6 @@
 ./snmptsm.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./snmptsm.lo: ../include/net-snmp/library/snmp_enum.h
 ./snmptsm.lo: ../include/net-snmp/library/vacm.h
-./snmptsm.lo: ../include/net-snmp/output_api.h
-./snmptsm.lo: ../include/net-snmp/library/snmp_debug.h
 ./snmptsm.lo: ../include/net-snmp/snmpv3_api.h
 ./snmptsm.lo: ../include/net-snmp/library/snmpv3.h
 ./snmptsm.lo: ../include/net-snmp/library/transform_oids.h
@@ -2506,88 +2642,11 @@
 ./snmptsm.lo: ../include/net-snmp/library/lcd_time.h
 ./snmptsm.lo: ../include/net-snmp/library/snmp_secmod.h
 ./snmptsm.lo: ../include/net-snmp/library/snmpv3-security-includes.h
-./snmptsm.lo: ../include/net-snmp/library/snmpusm.h
 ./snmptsm.lo: ../include/net-snmp/library/snmptsm.h
-./snmpUDPDomain.lo: ../include/net-snmp/net-snmp-config.h
-./snmpUDPDomain.lo:  ../include/net-snmp/types.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/types.h
-./snmpUDPDomain.lo: ../include/net-snmp/definitions.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmp_api.h
-./snmpUDPDomain.lo: ../include/net-snmp/varbind_api.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmp_client.h
-./snmpUDPDomain.lo: ../include/net-snmp/pdu_api.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/asn1.h
-./snmpUDPDomain.lo: ../include/net-snmp/session_api.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/callback.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmp_transport.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmp_service.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/mib.h
-./snmpUDPDomain.lo: ../include/net-snmp/mib_api.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/parse.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/oid_stash.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmp_impl.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmp.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpUDPDomain.lo: ../include/net-snmp/output_api.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmp_debug.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmp_logging.h
-./snmpUDPDomain.lo: ../include/net-snmp/config_api.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/read_config.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/default_store.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/snmp_enum.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/vacm.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/system.h
-./snmpUDPDomain.lo: ../include/net-snmp/library/tools.h
-./snmpUDPIPv6Domain.lo: ../include/net-snmp/net-snmp-config.h
-./snmpUnixDomain.lo: ../include/net-snmp/net-snmp-config.h
-./snmpUnixDomain.lo:  ../include/net-snmp/types.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/types.h
-./snmpUnixDomain.lo: ../include/net-snmp/definitions.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmp_api.h
-./snmpUnixDomain.lo: ../include/net-snmp/varbind_api.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmp_client.h
-./snmpUnixDomain.lo: ../include/net-snmp/pdu_api.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/asn1.h
-./snmpUnixDomain.lo: ../include/net-snmp/session_api.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/callback.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmp_transport.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmp_service.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/ucd_compat.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/mib.h
-./snmpUnixDomain.lo: ../include/net-snmp/mib_api.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/parse.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/oid_stash.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmp_impl.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmp.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpUnixDomain.lo: ../include/net-snmp/output_api.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmp_debug.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmp_logging.h
-./snmpUnixDomain.lo: ../include/net-snmp/config_api.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/read_config.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/default_store.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/snmp_enum.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/vacm.h
-./snmpUnixDomain.lo: ../include/net-snmp/library/system.h
+./snmptsm.lo: ../include/net-snmp/library/snmpusm.h 
 ./snmpusm.lo: ../include/net-snmp/net-snmp-config.h 
-./snmpusm.lo: ../include/net-snmp/types.h 
+./snmpusm.lo:  ../include/net-snmp/types.h
+./snmpusm.lo:  ../include/net-snmp/library/oid.h
 ./snmpusm.lo: ../include/net-snmp/library/types.h
 ./snmpusm.lo: ../include/net-snmp/definitions.h
 ./snmpusm.lo: ../include/net-snmp/library/snmp_api.h
@@ -2595,6 +2654,9 @@
 ./snmpusm.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpusm.lo: ../include/net-snmp/pdu_api.h
 ./snmpusm.lo: ../include/net-snmp/library/asn1.h
+./snmpusm.lo: ../include/net-snmp/output_api.h
+./snmpusm.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpusm.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpusm.lo: ../include/net-snmp/session_api.h
 ./snmpusm.lo: ../include/net-snmp/library/callback.h
 ./snmpusm.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2602,8 +2664,12 @@
 ./snmpusm.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpusm.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpusm.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpusm.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpusm.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpusm.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpusm.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2613,9 +2679,6 @@
 ./snmpusm.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpusm.lo: ../include/net-snmp/library/snmp.h
 ./snmpusm.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpusm.lo: ../include/net-snmp/output_api.h
-./snmpusm.lo: ../include/net-snmp/library/snmp_debug.h
-./snmpusm.lo: ../include/net-snmp/library/snmp_logging.h
 ./snmpusm.lo: ../include/net-snmp/config_api.h
 ./snmpusm.lo: ../include/net-snmp/library/read_config.h
 ./snmpusm.lo: ../include/net-snmp/library/default_store.h
@@ -2630,8 +2693,8 @@
 ./snmpusm.lo: ../include/net-snmp/library/snmp_alarm.h
 ./snmpusm.lo: ../include/net-snmp/library/data_list.h
 ./snmpusm.lo: ../include/net-snmp/library/check_varbind.h
-./snmpusm.lo: ../include/net-snmp/library/container.h
-./snmpusm.lo: ../include/net-snmp/library/factory.h
+./snmpusm.lo: ../include/net-snmp/library/container.h 
+./snmpusm.lo:  ../include/net-snmp/library/factory.h
 ./snmpusm.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpusm.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpusm.lo: ../include/net-snmp/library/container_iterator.h
@@ -2646,12 +2709,16 @@
 ./snmpusm.lo: ../include/net-snmp/library/snmpusm.h
 ./snmpv3.lo: ../include/net-snmp/net-snmp-config.h 
 ./snmpv3.lo:  ../include/net-snmp/types.h
-./snmpv3.lo:  ../include/net-snmp/library/types.h
+./snmpv3.lo:  ../include/net-snmp/library/oid.h
+./snmpv3.lo: ../include/net-snmp/library/types.h
 ./snmpv3.lo: ../include/net-snmp/definitions.h
 ./snmpv3.lo: ../include/net-snmp/library/snmp_api.h
 ./snmpv3.lo: ../include/net-snmp/varbind_api.h
 ./snmpv3.lo: ../include/net-snmp/library/snmp_client.h
 ./snmpv3.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/library/asn1.h
+./snmpv3.lo: ../include/net-snmp/output_api.h
+./snmpv3.lo: ../include/net-snmp/library/snmp_debug.h
+./snmpv3.lo: ../include/net-snmp/library/snmp_logging.h 
 ./snmpv3.lo: ../include/net-snmp/session_api.h
 ./snmpv3.lo: ../include/net-snmp/library/callback.h
 ./snmpv3.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2659,8 +2726,12 @@
 ./snmpv3.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./snmpv3.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./snmpv3.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./snmpv3.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./snmpv3.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./snmpv3.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./snmpv3.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./snmpv3.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./snmpv3.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./snmpv3.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./snmpv3.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./snmpv3.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2670,9 +2741,6 @@
 ./snmpv3.lo: ../include/net-snmp/library/snmp_impl.h
 ./snmpv3.lo: ../include/net-snmp/library/snmp.h
 ./snmpv3.lo: ../include/net-snmp/library/snmp-tc.h
-./snmpv3.lo: ../include/net-snmp/output_api.h
-./snmpv3.lo: ../include/net-snmp/library/snmp_debug.h
-./snmpv3.lo: ../include/net-snmp/library/snmp_logging.h 
 ./snmpv3.lo: ../include/net-snmp/config_api.h
 ./snmpv3.lo: ../include/net-snmp/library/read_config.h
 ./snmpv3.lo: ../include/net-snmp/library/default_store.h
@@ -2687,8 +2755,8 @@
 ./snmpv3.lo: ../include/net-snmp/library/snmp_alarm.h
 ./snmpv3.lo: ../include/net-snmp/library/data_list.h
 ./snmpv3.lo: ../include/net-snmp/library/check_varbind.h
-./snmpv3.lo: ../include/net-snmp/library/container.h
-./snmpv3.lo: ../include/net-snmp/library/factory.h
+./snmpv3.lo: ../include/net-snmp/library/container.h 
+./snmpv3.lo:  ../include/net-snmp/library/factory.h
 ./snmpv3.lo: ../include/net-snmp/library/container_binary_array.h
 ./snmpv3.lo: ../include/net-snmp/library/container_list_ssll.h
 ./snmpv3.lo: ../include/net-snmp/library/container_iterator.h
@@ -2708,6 +2776,7 @@
 ./strlcat.lo: ../include/net-snmp/net-snmp-config.h 
 ./strlcat.lo: ../include/net-snmp/library/system.h
 ./strlcat.lo: ../include/net-snmp/types.h 
+./strlcat.lo: ../include/net-snmp/library/oid.h
 ./strlcat.lo: ../include/net-snmp/library/types.h
 ./strlcat.lo: ../include/net-snmp/definitions.h
 ./strlcat.lo: ../include/net-snmp/library/snmp_api.h
@@ -2715,6 +2784,9 @@
 ./strlcat.lo: ../include/net-snmp/library/snmp_client.h
 ./strlcat.lo: ../include/net-snmp/pdu_api.h
 ./strlcat.lo: ../include/net-snmp/library/asn1.h
+./strlcat.lo: ../include/net-snmp/output_api.h
+./strlcat.lo: ../include/net-snmp/library/snmp_debug.h
+./strlcat.lo: ../include/net-snmp/library/snmp_logging.h
 ./strlcat.lo: ../include/net-snmp/session_api.h
 ./strlcat.lo: ../include/net-snmp/library/callback.h
 ./strlcat.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2722,8 +2794,12 @@
 ./strlcat.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./strlcat.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./strlcat.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./strlcat.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./strlcat.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./strlcat.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./strlcat.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./strlcat.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./strlcat.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./strlcat.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./strlcat.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./strlcat.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2734,18 +2810,129 @@
 ./strlcat.lo: ../include/net-snmp/library/snmp.h
 ./strlcat.lo: ../include/net-snmp/library/snmp-tc.h
 ./strlcpy.lo: ../include/net-snmp/net-snmp-config.h 
+./strlcpy.lo: ../include/net-snmp/library/system.h
+./strlcpy.lo: ../include/net-snmp/types.h 
+./strlcpy.lo: ../include/net-snmp/library/oid.h
+./strlcpy.lo: ../include/net-snmp/library/types.h
+./strlcpy.lo: ../include/net-snmp/definitions.h
+./strlcpy.lo: ../include/net-snmp/library/snmp_api.h
+./strlcpy.lo: ../include/net-snmp/varbind_api.h
+./strlcpy.lo: ../include/net-snmp/library/snmp_client.h
+./strlcpy.lo: ../include/net-snmp/pdu_api.h
+./strlcpy.lo: ../include/net-snmp/library/asn1.h
+./strlcpy.lo: ../include/net-snmp/output_api.h
+./strlcpy.lo: ../include/net-snmp/library/snmp_debug.h
+./strlcpy.lo: ../include/net-snmp/library/snmp_logging.h
+./strlcpy.lo: ../include/net-snmp/session_api.h
+./strlcpy.lo: ../include/net-snmp/library/callback.h
+./strlcpy.lo: ../include/net-snmp/library/snmp_transport.h
+./strlcpy.lo: ../include/net-snmp/library/snmp_service.h
+./strlcpy.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./strlcpy.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./strlcpy.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./strlcpy.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./strlcpy.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./strlcpy.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./strlcpy.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./strlcpy.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./strlcpy.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./strlcpy.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./strlcpy.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./strlcpy.lo: ../include/net-snmp/library/ucd_compat.h
+./strlcpy.lo: ../include/net-snmp/library/mib.h ../include/net-snmp/mib_api.h
+./strlcpy.lo: ../include/net-snmp/library/parse.h
+./strlcpy.lo: ../include/net-snmp/library/oid_stash.h
+./strlcpy.lo: ../include/net-snmp/library/snmp_impl.h
+./strlcpy.lo: ../include/net-snmp/library/snmp.h
+./strlcpy.lo: ../include/net-snmp/library/snmp-tc.h
 ./strtok_r.lo: ../include/net-snmp/net-snmp-config.h 
+./strtok_r.lo: ../include/net-snmp/library/system.h
+./strtok_r.lo: ../include/net-snmp/types.h 
+./strtok_r.lo:  ../include/net-snmp/library/oid.h
+./strtok_r.lo: ../include/net-snmp/library/types.h
+./strtok_r.lo: ../include/net-snmp/definitions.h
+./strtok_r.lo: ../include/net-snmp/library/snmp_api.h
+./strtok_r.lo: ../include/net-snmp/varbind_api.h
+./strtok_r.lo: ../include/net-snmp/library/snmp_client.h
+./strtok_r.lo: ../include/net-snmp/pdu_api.h
+./strtok_r.lo: ../include/net-snmp/library/asn1.h
+./strtok_r.lo: ../include/net-snmp/output_api.h
+./strtok_r.lo: ../include/net-snmp/library/snmp_debug.h
+./strtok_r.lo: ../include/net-snmp/library/snmp_logging.h
+./strtok_r.lo: ../include/net-snmp/session_api.h
+./strtok_r.lo: ../include/net-snmp/library/callback.h
+./strtok_r.lo: ../include/net-snmp/library/snmp_transport.h
+./strtok_r.lo: ../include/net-snmp/library/snmp_service.h
+./strtok_r.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./strtok_r.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./strtok_r.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./strtok_r.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./strtok_r.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./strtok_r.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./strtok_r.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./strtok_r.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./strtok_r.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./strtok_r.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./strtok_r.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./strtok_r.lo: ../include/net-snmp/library/ucd_compat.h
+./strtok_r.lo: ../include/net-snmp/library/mib.h
+./strtok_r.lo: ../include/net-snmp/mib_api.h
+./strtok_r.lo: ../include/net-snmp/library/parse.h
+./strtok_r.lo: ../include/net-snmp/library/oid_stash.h
+./strtok_r.lo: ../include/net-snmp/library/snmp_impl.h
+./strtok_r.lo: ../include/net-snmp/library/snmp.h
+./strtok_r.lo: ../include/net-snmp/library/snmp-tc.h
 ./strtol.lo: ../include/net-snmp/net-snmp-config.h 
 ./strtoul.lo: ../include/net-snmp/net-snmp-config.h 
 ./strtoull.lo: ../include/net-snmp/net-snmp-config.h 
+./strtoull.lo:  ../include/net-snmp/types.h
+./strtoull.lo: ../include/net-snmp/library/oid.h
+./strtoull.lo: ../include/net-snmp/library/types.h
+./strtoull.lo: ../include/net-snmp/definitions.h
+./strtoull.lo: ../include/net-snmp/library/snmp_api.h
+./strtoull.lo: ../include/net-snmp/varbind_api.h
+./strtoull.lo: ../include/net-snmp/library/snmp_client.h
+./strtoull.lo: ../include/net-snmp/pdu_api.h
+./strtoull.lo: ../include/net-snmp/library/asn1.h
+./strtoull.lo: ../include/net-snmp/output_api.h
+./strtoull.lo: ../include/net-snmp/library/snmp_debug.h
+./strtoull.lo: ../include/net-snmp/library/snmp_logging.h
+./strtoull.lo: ../include/net-snmp/session_api.h
+./strtoull.lo: ../include/net-snmp/library/callback.h
+./strtoull.lo: ../include/net-snmp/library/snmp_transport.h
+./strtoull.lo: ../include/net-snmp/library/snmp_service.h
+./strtoull.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./strtoull.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./strtoull.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./strtoull.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./strtoull.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./strtoull.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./strtoull.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./strtoull.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./strtoull.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./strtoull.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./strtoull.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./strtoull.lo: ../include/net-snmp/library/ucd_compat.h
+./strtoull.lo: ../include/net-snmp/library/mib.h
+./strtoull.lo: ../include/net-snmp/mib_api.h
+./strtoull.lo: ../include/net-snmp/library/parse.h
+./strtoull.lo: ../include/net-snmp/library/oid_stash.h
+./strtoull.lo: ../include/net-snmp/library/snmp_impl.h
+./strtoull.lo: ../include/net-snmp/library/snmp.h
+./strtoull.lo: ../include/net-snmp/library/snmp-tc.h
+./strtoull.lo: ../include/net-snmp/library/system.h
 ./system.lo: ../include/net-snmp/net-snmp-config.h 
 ./system.lo: ../include/net-snmp/types.h 
+./system.lo: ../include/net-snmp/library/oid.h
 ./system.lo: ../include/net-snmp/library/types.h
 ./system.lo: ../include/net-snmp/definitions.h
 ./system.lo: ../include/net-snmp/library/snmp_api.h
 ./system.lo: ../include/net-snmp/varbind_api.h
 ./system.lo: ../include/net-snmp/library/snmp_client.h
 ./system.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/library/asn1.h
+./system.lo: ../include/net-snmp/output_api.h
+./system.lo: ../include/net-snmp/library/snmp_debug.h
+./system.lo: ../include/net-snmp/library/snmp_logging.h 
 ./system.lo: ../include/net-snmp/session_api.h
 ./system.lo: ../include/net-snmp/library/callback.h
 ./system.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2753,8 +2940,12 @@
 ./system.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./system.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./system.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./system.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./system.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./system.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./system.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./system.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./system.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./system.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./system.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./system.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2764,9 +2955,6 @@
 ./system.lo: ../include/net-snmp/library/snmp_impl.h
 ./system.lo: ../include/net-snmp/library/snmp.h
 ./system.lo: ../include/net-snmp/library/snmp-tc.h
-./system.lo: ../include/net-snmp/output_api.h
-./system.lo: ../include/net-snmp/library/snmp_debug.h
-./system.lo: ../include/net-snmp/library/snmp_logging.h 
 ./system.lo: ../include/net-snmp/utilities.h 
 ./system.lo: ../include/net-snmp/library/system.h
 ./system.lo: ../include/net-snmp/library/tools.h
@@ -2775,8 +2963,8 @@
 ./system.lo: ../include/net-snmp/library/snmp_alarm.h
 ./system.lo: ../include/net-snmp/library/data_list.h
 ./system.lo: ../include/net-snmp/library/check_varbind.h
-./system.lo: ../include/net-snmp/library/container.h
-./system.lo: ../include/net-snmp/library/factory.h
+./system.lo: ../include/net-snmp/library/container.h 
+./system.lo:  ../include/net-snmp/library/factory.h
 ./system.lo: ../include/net-snmp/library/container_binary_array.h
 ./system.lo: ../include/net-snmp/library/container_list_ssll.h
 ./system.lo: ../include/net-snmp/library/container_iterator.h
@@ -2793,12 +2981,16 @@
 ./test_binary_array.lo: ../include/net-snmp/net-snmp-includes.h
 ./test_binary_array.lo: ../include/net-snmp/definitions.h
 ./test_binary_array.lo: ../include/net-snmp/types.h 
+./test_binary_array.lo: ../include/net-snmp/library/oid.h
 ./test_binary_array.lo: ../include/net-snmp/library/types.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmp_api.h
 ./test_binary_array.lo: ../include/net-snmp/varbind_api.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmp_client.h
 ./test_binary_array.lo: ../include/net-snmp/pdu_api.h
 ./test_binary_array.lo: ../include/net-snmp/library/asn1.h
+./test_binary_array.lo: ../include/net-snmp/output_api.h
+./test_binary_array.lo: ../include/net-snmp/library/snmp_debug.h
+./test_binary_array.lo: ../include/net-snmp/library/snmp_logging.h
 ./test_binary_array.lo: ../include/net-snmp/session_api.h
 ./test_binary_array.lo: ../include/net-snmp/library/callback.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2806,8 +2998,12 @@
 ./test_binary_array.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./test_binary_array.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./test_binary_array.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./test_binary_array.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./test_binary_array.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./test_binary_array.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2819,7 +3015,7 @@
 ./test_binary_array.lo: ../include/net-snmp/library/snmp.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmp-tc.h
 ./test_binary_array.lo: ../include/net-snmp/library/getopt.h
-./test_binary_array.lo: ../include/net-snmp/utilities.h
+./test_binary_array.lo: ../include/net-snmp/utilities.h 
 ./test_binary_array.lo: ../include/net-snmp/library/system.h
 ./test_binary_array.lo: ../include/net-snmp/library/tools.h
 ./test_binary_array.lo: ../include/net-snmp/library/int64.h
@@ -2829,7 +3025,6 @@
 ./test_binary_array.lo: ../include/net-snmp/library/check_varbind.h
 ./test_binary_array.lo: ../include/net-snmp/library/container.h
 ./test_binary_array.lo: ../include/net-snmp/library/factory.h
-./test_binary_array.lo: ../include/net-snmp/library/snmp_logging.h
 ./test_binary_array.lo: ../include/net-snmp/library/container_binary_array.h
 ./test_binary_array.lo: ../include/net-snmp/library/container_list_ssll.h
 ./test_binary_array.lo: ../include/net-snmp/library/container_iterator.h
@@ -2842,8 +3037,6 @@
 ./test_binary_array.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmp_enum.h
 ./test_binary_array.lo: ../include/net-snmp/library/vacm.h
-./test_binary_array.lo: ../include/net-snmp/output_api.h
-./test_binary_array.lo: ../include/net-snmp/library/snmp_debug.h
 ./test_binary_array.lo: ../include/net-snmp/snmpv3_api.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmpv3.h
 ./test_binary_array.lo: ../include/net-snmp/library/transform_oids.h
@@ -2852,17 +3045,22 @@
 ./test_binary_array.lo: ../include/net-snmp/library/lcd_time.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmp_secmod.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./test_binary_array.lo: ../include/net-snmp/library/snmptsm.h
 ./test_binary_array.lo: ../include/net-snmp/library/snmpusm.h
 ./text_utils.lo: ../include/net-snmp/net-snmp-config.h
 ./text_utils.lo: ../include/net-snmp/net-snmp-includes.h 
 ./text_utils.lo:  ../include/net-snmp/definitions.h
 ./text_utils.lo: ../include/net-snmp/types.h 
+./text_utils.lo: ../include/net-snmp/library/oid.h
 ./text_utils.lo: ../include/net-snmp/library/types.h
 ./text_utils.lo: ../include/net-snmp/library/snmp_api.h
 ./text_utils.lo: ../include/net-snmp/varbind_api.h
 ./text_utils.lo: ../include/net-snmp/library/snmp_client.h
 ./text_utils.lo: ../include/net-snmp/pdu_api.h
 ./text_utils.lo: ../include/net-snmp/library/asn1.h
+./text_utils.lo: ../include/net-snmp/output_api.h
+./text_utils.lo: ../include/net-snmp/library/snmp_debug.h
+./text_utils.lo: ../include/net-snmp/library/snmp_logging.h
 ./text_utils.lo: ../include/net-snmp/session_api.h
 ./text_utils.lo: ../include/net-snmp/library/callback.h
 ./text_utils.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2870,8 +3068,12 @@
 ./text_utils.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./text_utils.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./text_utils.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./text_utils.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./text_utils.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./text_utils.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./text_utils.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./text_utils.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./text_utils.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./text_utils.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./text_utils.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./text_utils.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2883,7 +3085,7 @@
 ./text_utils.lo: ../include/net-snmp/library/snmp.h
 ./text_utils.lo: ../include/net-snmp/library/snmp-tc.h
 ./text_utils.lo: ../include/net-snmp/library/getopt.h
-./text_utils.lo: ../include/net-snmp/utilities.h
+./text_utils.lo: ../include/net-snmp/utilities.h 
 ./text_utils.lo: ../include/net-snmp/library/system.h
 ./text_utils.lo: ../include/net-snmp/library/tools.h
 ./text_utils.lo: ../include/net-snmp/library/int64.h
@@ -2893,7 +3095,6 @@
 ./text_utils.lo: ../include/net-snmp/library/check_varbind.h
 ./text_utils.lo: ../include/net-snmp/library/container.h
 ./text_utils.lo: ../include/net-snmp/library/factory.h
-./text_utils.lo: ../include/net-snmp/library/snmp_logging.h
 ./text_utils.lo: ../include/net-snmp/library/container_binary_array.h
 ./text_utils.lo: ../include/net-snmp/library/container_list_ssll.h
 ./text_utils.lo: ../include/net-snmp/library/container_iterator.h
@@ -2906,8 +3107,6 @@
 ./text_utils.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./text_utils.lo: ../include/net-snmp/library/snmp_enum.h
 ./text_utils.lo: ../include/net-snmp/library/vacm.h
-./text_utils.lo: ../include/net-snmp/output_api.h
-./text_utils.lo: ../include/net-snmp/library/snmp_debug.h
 ./text_utils.lo: ../include/net-snmp/snmpv3_api.h
 ./text_utils.lo: ../include/net-snmp/library/snmpv3.h
 ./text_utils.lo: ../include/net-snmp/library/transform_oids.h
@@ -2916,17 +3115,22 @@
 ./text_utils.lo: ../include/net-snmp/library/lcd_time.h
 ./text_utils.lo: ../include/net-snmp/library/snmp_secmod.h
 ./text_utils.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./text_utils.lo: ../include/net-snmp/library/snmptsm.h
 ./text_utils.lo: ../include/net-snmp/library/snmpusm.h 
 ./text_utils.lo: ../include/net-snmp/library/file_utils.h
 ./text_utils.lo: ../include/net-snmp/library/text_utils.h
 ./tools.lo: ../include/net-snmp/net-snmp-config.h 
 ./tools.lo:  ../include/net-snmp/types.h
-./tools.lo:  ../include/net-snmp/library/types.h
+./tools.lo:  ../include/net-snmp/library/oid.h
+./tools.lo: ../include/net-snmp/library/types.h
 ./tools.lo: ../include/net-snmp/definitions.h
 ./tools.lo: ../include/net-snmp/library/snmp_api.h
 ./tools.lo: ../include/net-snmp/varbind_api.h
 ./tools.lo: ../include/net-snmp/library/snmp_client.h
 ./tools.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/library/asn1.h
+./tools.lo: ../include/net-snmp/output_api.h
+./tools.lo: ../include/net-snmp/library/snmp_debug.h
+./tools.lo: ../include/net-snmp/library/snmp_logging.h 
 ./tools.lo: ../include/net-snmp/session_api.h
 ./tools.lo: ../include/net-snmp/library/callback.h
 ./tools.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2934,8 +3138,12 @@
 ./tools.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./tools.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./tools.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./tools.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./tools.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./tools.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./tools.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./tools.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./tools.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./tools.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./tools.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./tools.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2945,9 +3153,6 @@
 ./tools.lo: ../include/net-snmp/library/snmp_impl.h
 ./tools.lo: ../include/net-snmp/library/snmp.h
 ./tools.lo: ../include/net-snmp/library/snmp-tc.h
-./tools.lo: ../include/net-snmp/output_api.h
-./tools.lo: ../include/net-snmp/library/snmp_debug.h
-./tools.lo: ../include/net-snmp/library/snmp_logging.h 
 ./tools.lo: ../include/net-snmp/utilities.h 
 ./tools.lo: ../include/net-snmp/library/system.h
 ./tools.lo: ../include/net-snmp/library/tools.h
@@ -2956,8 +3161,8 @@
 ./tools.lo: ../include/net-snmp/library/snmp_alarm.h
 ./tools.lo: ../include/net-snmp/library/data_list.h
 ./tools.lo: ../include/net-snmp/library/check_varbind.h
-./tools.lo: ../include/net-snmp/library/container.h
-./tools.lo: ../include/net-snmp/library/factory.h
+./tools.lo: ../include/net-snmp/library/container.h 
+./tools.lo:  ../include/net-snmp/library/factory.h
 ./tools.lo: ../include/net-snmp/library/container_binary_array.h
 ./tools.lo: ../include/net-snmp/library/container_list_ssll.h
 ./tools.lo: ../include/net-snmp/library/container_iterator.h
@@ -2966,6 +3171,7 @@
 ./tools.lo: ../include/net-snmp/version.h ../include/net-snmp/library/scapi.h
 ./ucd_compat.lo: ../include/net-snmp/net-snmp-config.h
 ./ucd_compat.lo: ../include/net-snmp/types.h 
+./ucd_compat.lo: ../include/net-snmp/library/oid.h
 ./ucd_compat.lo: ../include/net-snmp/library/types.h
 ./ucd_compat.lo: ../include/net-snmp/definitions.h
 ./ucd_compat.lo: ../include/net-snmp/library/snmp_api.h
@@ -2973,6 +3179,9 @@
 ./ucd_compat.lo: ../include/net-snmp/library/snmp_client.h
 ./ucd_compat.lo: ../include/net-snmp/pdu_api.h
 ./ucd_compat.lo: ../include/net-snmp/library/asn1.h
+./ucd_compat.lo: ../include/net-snmp/output_api.h
+./ucd_compat.lo: ../include/net-snmp/library/snmp_debug.h
+./ucd_compat.lo: ../include/net-snmp/library/snmp_logging.h
 ./ucd_compat.lo: ../include/net-snmp/session_api.h
 ./ucd_compat.lo: ../include/net-snmp/library/callback.h
 ./ucd_compat.lo: ../include/net-snmp/library/snmp_transport.h
@@ -2980,8 +3189,12 @@
 ./ucd_compat.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./ucd_compat.lo: ../include/net-snmp/library/snmpUnixDomain.h
 ./ucd_compat.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./ucd_compat.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./ucd_compat.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./ucd_compat.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./ucd_compat.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./ucd_compat.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./ucd_compat.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./ucd_compat.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./ucd_compat.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./ucd_compat.lo: ../include/net-snmp/library/ucd_compat.h
@@ -2999,22 +3212,30 @@
 ./ucd_compat.lo: ../include/net-snmp/library/snmp_enum.h
 ./ucd_compat.lo: ../include/net-snmp/library/vacm.h
 ./vacm.lo: ../include/net-snmp/net-snmp-config.h 
-./vacm.lo:  ../include/net-snmp/types.h
-./vacm.lo:  ../include/net-snmp/library/types.h
+./vacm.lo: ../include/net-snmp/types.h 
+./vacm.lo: ../include/net-snmp/library/oid.h
+./vacm.lo: ../include/net-snmp/library/types.h
 ./vacm.lo: ../include/net-snmp/definitions.h
 ./vacm.lo: ../include/net-snmp/library/snmp_api.h
 ./vacm.lo: ../include/net-snmp/varbind_api.h
 ./vacm.lo: ../include/net-snmp/library/snmp_client.h
 ./vacm.lo: ../include/net-snmp/pdu_api.h ../include/net-snmp/library/asn1.h
+./vacm.lo: ../include/net-snmp/output_api.h
+./vacm.lo: ../include/net-snmp/library/snmp_debug.h
+./vacm.lo: ../include/net-snmp/library/snmp_logging.h 
 ./vacm.lo: ../include/net-snmp/session_api.h
 ./vacm.lo: ../include/net-snmp/library/callback.h
 ./vacm.lo: ../include/net-snmp/library/snmp_transport.h
 ./vacm.lo: ../include/net-snmp/library/snmp_service.h
 ./vacm.lo: ../include/net-snmp/library/snmpCallbackDomain.h
 ./vacm.lo: ../include/net-snmp/library/snmpUnixDomain.h 
-./vacm.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./vacm.lo:  ../include/net-snmp/library/snmpUDPDomain.h
+./vacm.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./vacm.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./vacm.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
 ./vacm.lo: ../include/net-snmp/library/snmpTCPDomain.h
 ./vacm.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./vacm.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
 ./vacm.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
 ./vacm.lo: ../include/net-snmp/library/snmpIPXDomain.h
 ./vacm.lo:  ../include/net-snmp/library/ucd_compat.h
@@ -3024,12 +3245,829 @@
 ./vacm.lo: ../include/net-snmp/library/snmp_impl.h
 ./vacm.lo: ../include/net-snmp/library/snmp.h
 ./vacm.lo: ../include/net-snmp/library/snmp-tc.h
-./vacm.lo: ../include/net-snmp/output_api.h
-./vacm.lo: ../include/net-snmp/library/snmp_debug.h
-./vacm.lo: ../include/net-snmp/library/snmp_logging.h 
 ./vacm.lo: ../include/net-snmp/config_api.h
 ./vacm.lo: ../include/net-snmp/library/read_config.h
 ./vacm.lo: ../include/net-snmp/library/default_store.h
 ./vacm.lo: ../include/net-snmp/library/snmp_parse_args.h
 ./vacm.lo: ../include/net-snmp/library/snmp_enum.h
 ./vacm.lo: ../include/net-snmp/library/vacm.h
+./vacm.lo: ../include/net-snmp/library/tools.h
+./openssl/openssl_aes_cfb.lo: ../include/net-snmp/library/openssl_aes.h
+./openssl/openssl_aes_cfb.lo: openssl/openssl_modes.h
+./openssl/openssl_aes_core.lo: ../include/net-snmp/library/openssl_aes.h
+./openssl/openssl_aes_core.lo: ./openssl/openssl_aes_local.h
+./openssl/openssl_cbc_enc.lo: ./openssl/openssl_ncbc_enc.c
+./openssl/openssl_cbc_enc.lo: ./openssl/openssl_des_local.h
+./openssl/openssl_cbc_enc.lo: ../include/net-snmp/library/openssl_des.h
+./openssl/openssl_cfb128.lo: ./openssl/openssl_modes.h 
+./openssl/openssl_des_enc.lo: ./openssl/openssl_des_local.h
+./openssl/openssl_des_enc.lo: ../include/net-snmp/library/openssl_des.h
+./openssl/openssl_des_enc.lo:  ./openssl/openssl_spr.h
+./openssl/openssl_des_enc.lo: ./openssl/openssl_ncbc_enc.c
+./openssl/openssl_md5.lo: ./openssl/openssl_md5_local.h 
+./openssl/openssl_md5.lo: ../include/net-snmp/openssl_md5.h
+./openssl/openssl_md5.lo: ./openssl/openssl_md32_common.h
+./openssl/openssl_ncbc_enc.lo: ./openssl/openssl_des_local.h
+./openssl/openssl_ncbc_enc.lo: ../include/net-snmp/library/openssl_des.h
+./openssl/openssl_set_key.lo: ./openssl/openssl_des_local.h
+./openssl/openssl_set_key.lo: ../include/net-snmp/library/openssl_des.h
+./openssl/openssl_sha1.lo: openssl/openssl_sha_local.h 
+./openssl/openssl_sha1.lo: openssl/openssl_sha.h
+./openssl/openssl_sha1.lo: ./openssl/openssl_md32_common.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpAAL5PVCDomain.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/types.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/config_api.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/read_config.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/default_store.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/snmp_enum.h
+./transports/snmpAAL5PVCDomain.lo: ../include/net-snmp/library/vacm.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/types.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpAliasDomain.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/net-snmp-includes.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/getopt.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/utilities.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/system.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/tools.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/int64.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/mt_support.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmp_alarm.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/data_list.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/check_varbind.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/container.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/factory.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/container_binary_array.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/container_list_ssll.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/container_iterator.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/container.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmp_assert.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/version.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/config_api.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/read_config.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/default_store.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmp_enum.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/vacm.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/snmpv3_api.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpv3.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/transform_oids.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/keytools.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/scapi.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/lcd_time.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmp_secmod.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpv3-security-includes.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmptsm.h
+./transports/snmpAliasDomain.lo: ../include/net-snmp/library/snmpusm.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/types.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/config_api.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/read_config.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/default_store.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_enum.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/vacm.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/utilities.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/system.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/tools.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/int64.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/mt_support.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_alarm.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/data_list.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/check_varbind.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/container.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/factory.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/container_binary_array.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/container_list_ssll.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/container_iterator.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/container.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/library/snmp_assert.h
+./transports/snmpCallbackDomain.lo: ../include/net-snmp/version.h
+./transports/snmpDTLSUDPDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/types.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/default_store.h
+./transports/snmpIPv4BaseDomain.lo: ../include/net-snmp/library/system.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/types.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpIPv6BaseDomain.lo: ../include/net-snmp/library/default_store.h
+./transports/snmpIPv6BaseDomain.lo: inet_ntop.h inet_pton.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/types.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/config_api.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/read_config.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/default_store.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/snmp_enum.h
+./transports/snmpIPXDomain.lo: ../include/net-snmp/library/vacm.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/types.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmpSocketBaseDomain.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/tools.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/default_store.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/system.h
+./transports/snmpSocketBaseDomain.lo: ../include/net-snmp/library/snmp_assert.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmpSSHDomain.h
+./transports/snmpSSHDomain.lo:  ../include/net-snmp/types.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/tools.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/system.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/default_store.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmpSocketBaseDomain.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/read_config.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/config_api.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/snmp_enum.h
+./transports/snmpSSHDomain.lo: ../include/net-snmp/library/vacm.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmpSTDDomain.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/types.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpSTDDomain.lo: ../include/net-snmp/library/tools.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/types.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpTCPBaseDomain.lo: ../include/net-snmp/library/snmpTCPBaseDomain.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/types.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmpSocketBaseDomain.h
+./transports/snmpTCPDomain.lo: ../include/net-snmp/library/snmpTCPBaseDomain.h
+./transports/snmpTCPIPv6Domain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmpTLSBaseDomain.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/container.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/types.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/factory.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/tools.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/cert_util.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmp_openssl.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/default_store.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmp_assert.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/snmp_secmod.h
+./transports/snmpTLSBaseDomain.lo: ../include/net-snmp/library/system.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmpTLSTCPDomain.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/types.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/config_api.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/read_config.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/default_store.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmp_enum.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/vacm.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmp_assert.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmpSocketBaseDomain.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmpTLSBaseDomain.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/container.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/factory.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/tools.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/system.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/cert_util.h
+./transports/snmpTLSTCPDomain.lo: ../include/net-snmp/library/snmp_openssl.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/types.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmpSocketBaseDomain.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/tools.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/default_store.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/system.h
+./transports/snmpUDPBaseDomain.lo: ../include/net-snmp/library/snmp_assert.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/types.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/config_api.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/read_config.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/default_store.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmp_enum.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/vacm.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/snmpSocketBaseDomain.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/system.h
+./transports/snmpUDPDomain.lo: ../include/net-snmp/library/tools.h
+./transports/snmpUDPDomain.lo: inet_ntop.h inet_pton.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/types.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/tools.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmp_assert.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/default_store.h
+./transports/snmpUDPIPv4BaseDomain.lo: ../include/net-snmp/library/snmpSocketBaseDomain.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/types.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/types.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/definitions.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/output_api.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/session_api.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpUDPIPv6Domain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/net-snmp-config.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmpUnixDomain.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmp_transport.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/asn1.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/oid.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/types.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/types.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/definitions.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmp_api.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/varbind_api.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmp_client.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/pdu_api.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/output_api.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmp_debug.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmp_logging.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/session_api.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/callback.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmp_service.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmpCallbackDomain.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmpUDPDomain.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmpUDPIPv4BaseDomain.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmpIPv4BaseDomain.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmpUDPBaseDomain.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmpTCPDomain.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmpUDPIPv6Domain.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmpIPv6BaseDomain.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmpTCPIPv6Domain.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmpIPXDomain.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/ucd_compat.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/mib.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/mib_api.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/parse.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/oid_stash.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmp_impl.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmp.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmp-tc.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/config_api.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/read_config.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/default_store.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmp_parse_args.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmp_enum.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/vacm.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/snmpSocketBaseDomain.h
+./transports/snmpUnixDomain.lo: ../include/net-snmp/library/system.h
diff --git a/snmplib/Makefile.in b/snmplib/Makefile.in
index afd5624..c1a086d 100644
--- a/snmplib/Makefile.in
+++ b/snmplib/Makefile.in
@@ -47,6 +47,7 @@
 INCLUDESUBDIRHEADERS=README \
 	asn1.h \
 	callback.h \
+	cert_util.h \
 	container.h \
 	container_binary_array.h \
 	container_list_ssll.h \
@@ -87,6 +88,7 @@
         getopt.h \
         lcd_time.h \
         mt_support.h \
+        oid.h \
         oid_stash.h \
         snmp_enum.h \
         snmp_secmod.h \
@@ -138,7 +140,7 @@
 # Things to build
 #
 CSRCS=	snmp_client.c mib.c parse.c snmp_api.c snmp.c 		\
-	large_fd_set.c						\
+	large_fd_set.c cert_util.c				\
 	snmp_auth.c asn1.c md5.c snmp_parse_args.c		\
 	system.c vacm.c int64.c read_config.c pkcs.c		\
 	snmp_debug.c tools.c  snmp_logging.c text_utils.c	\
@@ -146,15 +148,16 @@
 	scapi.c callback.c default_store.c snmp_alarm.c		\
 	data_list.c oid_stash.c fd_event_manager.c 		\
 	mt_support.c snmp_enum.c snmp-tc.c snmp_service.c	\
-	snprintf.c strlcat.c strlcpy.c strtol.c strtoul.c	\
-	strtok_r.c snmp_transport.c @transport_src_list@	\
+	snprintf.c						\
+	snmp_transport.c @transport_src_list@			\
 	snmp_secmod.c @security_src_list@ snmp_version.c        \
 	check_varbind.c container.c container_binary_array.c	\
 	container_null.c container_list_ssll.c container_iterator.c \
-	cmu_compat.c ucd_compat.c snmp_openssl.c @other_src_list@
+	cmu_compat.c ucd_compat.c                               \
+	snmp_openssl.c @other_src_list@ @crypto_files_c@
 
 OBJS=	snmp_client.o mib.o parse.o snmp_api.o snmp.o 		\
-	large_fd_set.o						\
+	large_fd_set.o cert_util.o				\
 	snmp_auth.o asn1.o md5.o snmp_parse_args.o		\
 	system.o vacm.o int64.o read_config.o pkcs.o 		\
 	snmp_debug.o tools.o  snmp_logging.o text_utils.o	\
@@ -162,15 +165,16 @@
 	scapi.o callback.o default_store.o snmp_alarm.o		\
 	data_list.o oid_stash.o fd_event_manager.o		\
 	mt_support.o snmp_enum.o snmp-tc.o snmp_service.o	\
-	snprintf.o strlcat.o strlcpy.o strtol.o strtoul.o	\
-	strtok_r.o snmp_transport.o @transport_obj_list@	\
+	snprintf.o						\
+	snmp_transport.o @transport_obj_list@                   \
 	snmp_secmod.o @security_obj_list@ snmp_version.o        \
 	check_varbind.o container.o container_binary_array.o	\
 	container_null.o container_list_ssll.o container_iterator.o \
-	cmu_compat.o ucd_compat.o snmp_openssl.o @other_objs_list@
+	cmu_compat.o ucd_compat.o                               \
+        snmp_openssl.o @crypto_files_o@ @other_objs_list@ @LIBOBJS@
 
 LOBJS=	snmp_client.lo mib.lo parse.lo snmp_api.lo snmp.lo 	\
-	large_fd_set.lo						\
+	large_fd_set.lo cert_util.lo				\
 	snmp_auth.lo asn1.lo md5.lo snmp_parse_args.lo		\
 	system.lo vacm.lo int64.lo read_config.lo pkcs.lo	\
 	snmp_debug.lo tools.lo  snmp_logging.lo	 text_utils.lo	\
@@ -178,12 +182,13 @@
 	scapi.lo callback.lo default_store.lo snmp_alarm.lo		\
 	data_list.lo oid_stash.lo fd_event_manager.lo		\
 	mt_support.lo snmp_enum.lo snmp-tc.lo snmp_service.lo	\
-	snprintf.lo strlcat.lo strlcpy.lo strtol.lo strtoul.lo	\
-	strtok_r.lo snmp_transport.lo @transport_lobj_list@	\
-	snmp_secmod.lo @security_lobj_list@ snmp_version.lo       \
+	snprintf.lo						\
+	snmp_transport.lo @transport_lobj_list@                 \
+	snmp_secmod.lo @security_lobj_list@ snmp_version.lo     \
 	check_varbind.lo container.lo container_binary_array.lo	\
 	container_null.lo container_list_ssll.lo container_iterator.lo \
-	cmu_compat.lo ucd_compat.lo snmp_openssl.lo @other_lobjs_list@
+	cmu_compat.lo ucd_compat.lo                             \
+        snmp_openssl.lo @crypto_files_lo@ @other_lobjs_list@ @LTLIBOBJS@
 
 # just in case someone wants to remove libtool, change this to OBJS.
 TOBJS=$(LOBJS)
@@ -195,11 +200,11 @@
 
 # how to build the libraries.
 libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION):    $(TOBJS)
-	$(LIB_LD_CMD) $@ @LD_NO_UNDEFINED@ $(TOBJS) $(LDFLAGS) @LNETSNMPLIBS@
+	$(LIB_LD_CMD) $@ $(TOBJS) @LD_NO_UNDEFINED@ $(LDFLAGS) @LNETSNMPLIBS@
 	$(RANLIB) $@
 
 libsnmp.$(LIB_EXTENSION)$(LIB_VERSION):    $(TOBJS)
-	$(LIB_LD_CMD) $@ @LD_NO_UNDEFINED@ $(TOBJS) $(LDFLAGS) @LNETSNMPLIBS@
+	$(LIB_LD_CMD) $@ $(TOBJS) @LD_NO_UNDEFINED@ $(LDFLAGS) @LNETSNMPLIBS@
 	$(RANLIB) $@
 
 #
diff --git a/snmplib/asn1.c b/snmplib/asn1.c
index 5de6b75..08efa4f 100644
--- a/snmplib/asn1.c
+++ b/snmplib/asn1.c
@@ -170,9 +170,6 @@
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
@@ -582,8 +579,8 @@
         (errpre, bufp, data, asn_length, *datalength))
         return NULL;
 
-    if (((int) asn_length > (intsize + 1)) || ((int) asn_length == 0) ||
-        (((int) asn_length == intsize + 1) && *bufp != 0x00)) {
+    if ((asn_length > (intsize + 1)) || ((int) asn_length == 0) ||
+        ((asn_length == intsize + 1) && *bufp != 0x00)) {
         _asn_length_err(errpre, (size_t) asn_length, intsize);
         return NULL;
     }
@@ -828,7 +825,7 @@
         return NULL;
     }
 
-    if ((int) asn_length > *strlength) {
+    if (asn_length > *strlength) {
         _asn_length_err(errpre, (size_t) asn_length, *strlength);
         return NULL;
     }
@@ -836,10 +833,10 @@
     DEBUGDUMPSETUP("recv", data, bufp - data + asn_length);
 
     memmove(str, bufp, asn_length);
-    if (*strlength > (int) asn_length)
+    if (*strlength > asn_length)
         str[asn_length] = 0;
-    *strlength = (int) asn_length;
-    *datalength -= (int) asn_length + (bufp - data);
+    *strlength = asn_length;
+    *datalength -= asn_length + (bufp - data);
 
     DEBUGIF("dumpv_recv") {
         u_char         *buf = (u_char *) malloc(1 + asn_length);
diff --git a/snmplib/callback.c b/snmplib/callback.c
index e434042..fea0f25 100644
--- a/snmplib/callback.c
+++ b/snmplib/callback.c
@@ -22,9 +22,6 @@
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
@@ -115,7 +112,7 @@
 #endif
 
 NETSNMP_STATIC_INLINE int
-_callback_lock(int major, int minor, const char* warn, int assert)
+_callback_lock(int major, int minor, const char* warn, int do_assert)
 {
     int lock_holded=0;
     struct timeval lock_time = { 0, 1000 };
@@ -139,7 +136,7 @@
         if (NULL != warn)
             snmp_log(LOG_WARNING,
                      "lock in _callback_lock sleeps more than 100 milliseconds in %s\n", warn);
-        if (assert)
+        if (do_assert)
             netsnmp_assert(lock_holded < 100);
         
         return 1;
diff --git a/snmplib/cert_util.c b/snmplib/cert_util.c
new file mode 100644
index 0000000..6b2cb30
--- /dev/null
+++ b/snmplib/cert_util.c
@@ -0,0 +1,3299 @@
+#include <net-snmp/net-snmp-config.h>
+
+#if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_LIBSSL)
+
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#include <ctype.h>
+
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+
+#if HAVE_SYS_STAT_H
+#   include <sys/stat.h>
+#endif
+#if HAVE_DIRENT_H
+# include <dirent.h>
+# define NAMLEN(dirent) strlen((dirent)->d_name)
+#else
+# define dirent direct
+# define NAMLEN(dirent) (dirent)->d_namlen
+# if HAVE_SYS_NDIR_H
+#  include <sys/ndir.h>
+# endif
+# if HAVE_SYS_DIR_H
+#  include <sys/dir.h>
+# endif
+# if HAVE_NDIR_H
+#  include <ndir.h>
+# endif
+#endif
+
+#if HAVE_DMALLOC_H
+#include <dmalloc.h>
+#endif
+
+#include <net-snmp/types.h>
+#include <net-snmp/output_api.h>
+#include <net-snmp/config_api.h>
+
+#include <net-snmp/library/snmp_assert.h>
+#include <net-snmp/library/snmp_transport.h>
+#include <net-snmp/library/system.h>
+#include <net-snmp/library/tools.h>
+#include <net-snmp/library/container.h>
+#include <net-snmp/library/data_list.h>
+#include <net-snmp/library/file_utils.h>
+#include <net-snmp/library/dir_utils.h>
+#include <net-snmp/library/read_config.h>
+
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#include <openssl/x509v3.h>
+#include <net-snmp/library/cert_util.h>
+#include <net-snmp/library/snmp_openssl.h>
+
+#ifndef NAME_MAX
+#define NAME_MAX 255
+#endif
+
+/*
+ * bump this value whenever cert index format changes, so indexes
+ * will be regenerated with new format.
+ */
+#define CERT_INDEX_FORMAT  1
+
+static netsnmp_container *_certs = NULL;
+static netsnmp_container *_keys = NULL;
+static netsnmp_container *_maps = NULL;
+static netsnmp_container *_tlstmParams = NULL;
+static netsnmp_container *_tlstmAddr = NULL;
+static struct snmp_enum_list *_certindexes = NULL;
+
+static netsnmp_container *_trusted_certs = NULL;
+
+static void _setup_containers(void);
+
+static void _cert_indexes_load(void);
+static void _cert_free(netsnmp_cert *cert, void *context);
+static void _key_free(netsnmp_key *key, void *context);
+static int  _cert_compare(netsnmp_cert *lhs, netsnmp_cert *rhs);
+static int  _cert_sn_compare(netsnmp_cert *lhs, netsnmp_cert *rhs);
+static int  _cert_sn_ncompare(netsnmp_cert *lhs, netsnmp_cert *rhs);
+static int  _cert_cn_compare(netsnmp_cert *lhs, netsnmp_cert *rhs);
+static int  _cert_fn_compare(netsnmp_cert_common *lhs,
+                             netsnmp_cert_common *rhs);
+static int  _cert_fn_ncompare(netsnmp_cert_common *lhs,
+                              netsnmp_cert_common *rhs);
+static void _find_partner(netsnmp_cert *cert, netsnmp_key *key);
+static netsnmp_cert *_find_issuer(netsnmp_cert *cert);
+static netsnmp_void_array *_cert_find_subset_fn(const char *filename,
+                                                const char *directory);
+static netsnmp_void_array *_cert_find_subset_sn(const char *subject);
+static netsnmp_void_array *_key_find_subset(const char *filename);
+static netsnmp_cert *_cert_find_fp(const char *fingerprint);
+static char *_find_tlstmParams_fingerprint(const char *param);
+static char *_find_tlstmAddr_fingerprint(const char *name);
+static const char *_mode_str(u_char mode);
+static const char *_where_str(u_int what);
+void netsnmp_cert_dump_all(void);
+
+int netsnmp_cert_load_x509(netsnmp_cert *cert);
+
+void netsnmp_cert_free(netsnmp_cert *cert);
+void netsnmp_key_free(netsnmp_key *key);
+
+static int _certindex_add( const char *dirname, int i );
+
+static int _time_filter(netsnmp_file *f, struct stat *idx);
+
+static void _init_tlstmCertToTSN(void);
+#define TRUSTCERT_CONFIG_TOKEN "trustCert"
+static void _parse_trustcert(const char *token, char *line);
+
+static void _init_tlstmParams(void);
+static void _init_tlstmAddr(void);
+
+/** mode descriptions should match up with header */
+static const char _modes[][256] =
+        {
+            "none",
+            "identity",
+            "remote_peer",
+            "identity+remote_peer",
+            "reserved1",
+            "reserved1+identity",
+            "reserved1+remote_peer",
+            "reserved1+identity+remote_peer",
+            "CA",
+            "CA+identity",
+            "CA+remote_peer",
+            "CA+identity+remote_peer",
+            "CA+reserved1",
+            "CA+reserved1+identity",
+            "CA+reserved1+remote_peer",
+            "CA+reserved1+identity+remote_peer",
+        };
+
+/* #####################################################################
+ *
+ * init and shutdown functions
+ *
+ */
+
+void
+_netsnmp_release_trustcerts(void)
+{
+    if (NULL != _trusted_certs) {
+        CONTAINER_FREE_ALL(_trusted_certs, NULL);
+        CONTAINER_FREE(_trusted_certs);
+        _trusted_certs = NULL;
+    }
+}
+
+void
+_setup_trusted_certs(void)
+{
+    _trusted_certs = netsnmp_container_find("trusted_certs:fifo");
+    if (NULL == _trusted_certs) {
+        snmp_log(LOG_ERR, "could not create container for trusted certs\n");
+        netsnmp_certs_shutdown();
+        return;
+    }
+    _trusted_certs->container_name = strdup("trusted certificates");
+    _trusted_certs->free_item = (netsnmp_container_obj_func*) free;
+    _trusted_certs->compare = (netsnmp_container_compare*) strcmp;
+}
+
+/*
+ * secname mapping for servers.
+ */
+void
+netsnmp_certs_agent_init(void)
+{
+    _init_tlstmCertToTSN();
+    _init_tlstmParams();
+    _init_tlstmAddr();
+}
+
+void
+netsnmp_certs_init(void)
+{
+    const char *trustCert_help = TRUSTCERT_CONFIG_TOKEN
+        " FINGERPRINT|FILENAME";
+
+    register_config_handler("snmp", TRUSTCERT_CONFIG_TOKEN,
+                            _parse_trustcert, _netsnmp_release_trustcerts,
+                            trustCert_help);
+    _setup_containers();
+
+    /** add certificate type mapping */
+    se_add_pair_to_slist("cert_types", strdup("pem"), NS_CERT_TYPE_PEM);
+    se_add_pair_to_slist("cert_types", strdup("crt"), NS_CERT_TYPE_DER);
+    se_add_pair_to_slist("cert_types", strdup("cer"), NS_CERT_TYPE_DER);
+    se_add_pair_to_slist("cert_types", strdup("cert"), NS_CERT_TYPE_DER);
+    se_add_pair_to_slist("cert_types", strdup("der"), NS_CERT_TYPE_DER);
+    se_add_pair_to_slist("cert_types", strdup("key"), NS_CERT_TYPE_KEY);
+    se_add_pair_to_slist("cert_types", strdup("private"), NS_CERT_TYPE_KEY);
+
+    /** hash algs */
+    se_add_pair_to_slist("cert_hash_alg", strdup("sha1"), NS_HASH_SHA1);
+    se_add_pair_to_slist("cert_hash_alg", strdup("md5"), NS_HASH_MD5);
+    se_add_pair_to_slist("cert_hash_alg", strdup("sha224"), NS_HASH_SHA224);
+    se_add_pair_to_slist("cert_hash_alg", strdup("sha256"), NS_HASH_SHA256);
+    se_add_pair_to_slist("cert_hash_alg", strdup("sha384"), NS_HASH_SHA384);
+    se_add_pair_to_slist("cert_hash_alg", strdup("sha512"), NS_HASH_SHA512);
+
+    /** map types */
+    se_add_pair_to_slist("cert_map_type", strdup("cn"),
+                         TSNM_tlstmCertCommonName);
+    se_add_pair_to_slist("cert_map_type", strdup("ip"),
+                         TSNM_tlstmCertSANIpAddress);
+    se_add_pair_to_slist("cert_map_type", strdup("rfc822"),
+                         TSNM_tlstmCertSANRFC822Name);
+    se_add_pair_to_slist("cert_map_type", strdup("dns"),
+                         TSNM_tlstmCertSANDNSName);
+    se_add_pair_to_slist("cert_map_type", strdup("any"), TSNM_tlstmCertSANAny);
+    se_add_pair_to_slist("cert_map_type", strdup("sn"),
+                         TSNM_tlstmCertSpecified);
+
+}
+
+void
+netsnmp_certs_shutdown(void)
+{
+    DEBUGMSGT(("cert:util:shutdown","shutdown\n"));
+    if (NULL != _certs) {
+        CONTAINER_FREE_ALL(_certs, NULL);
+        CONTAINER_FREE(_certs);
+        _certs = NULL;
+    }
+    if (NULL != _keys) {
+        CONTAINER_FREE_ALL(_keys, NULL);
+        CONTAINER_FREE(_keys);
+        _keys = NULL;
+    }
+    _netsnmp_release_trustcerts();
+}
+
+void
+netsnmp_certs_load(void)
+{
+    netsnmp_iterator  *itr;
+    netsnmp_key        *key;
+    netsnmp_cert       *cert;
+
+    DEBUGMSGT(("cert:util:init","init\n"));
+
+    if (NULL == _certs) {
+        snmp_log(LOG_ERR, "cant load certs without container\n");
+        return;
+    }
+
+    if (CONTAINER_SIZE(_certs) != 0) {
+        DEBUGMSGT(("cert:util:init", "ignoring duplicate init\n"));
+        return;
+    }
+
+    netsnmp_init_openssl();
+
+    /** scan config dirs for certs */
+    _cert_indexes_load();
+
+    /** match up keys w/certs */
+    itr = CONTAINER_ITERATOR(_keys);
+    if (NULL == itr) {
+        snmp_log(LOG_ERR, "could not get iterator for keys\n");
+        netsnmp_certs_shutdown();
+        return;
+    }
+    key = ITERATOR_FIRST(itr);
+    for( ; key; key = ITERATOR_NEXT(itr))
+        _find_partner(NULL, key);
+    ITERATOR_RELEASE(itr);
+
+    DEBUGIF("cert:dump") {
+        itr = CONTAINER_ITERATOR(_certs);
+        if (NULL == itr) {
+            snmp_log(LOG_ERR, "could not get iterator for certs\n");
+            netsnmp_certs_shutdown();
+            return;
+        }
+        cert = ITERATOR_FIRST(itr);
+        for( ; cert; cert = ITERATOR_NEXT(itr)) {
+            netsnmp_cert_load_x509(cert);
+        }
+        ITERATOR_RELEASE(itr);
+        DEBUGMSGT(("cert:dump",
+                   "-------------------- Certificates -----------------\n"));
+        netsnmp_cert_dump_all();
+        DEBUGMSGT(("cert:dump",
+                   "------------------------ End ----------------------\n"));
+    }
+}
+
+/* #####################################################################
+ *
+ * cert container functions
+ */
+
+static netsnmp_container *
+_get_cert_container(const char *use)
+{
+    netsnmp_container *c;
+
+    c = netsnmp_container_find("certs:binary_array");
+    if (NULL == c) {
+        snmp_log(LOG_ERR, "could not create container for %s\n", use);
+        return NULL;
+    }
+    c->container_name = strdup(use);
+    c->free_item = (netsnmp_container_obj_func*)_cert_free;
+    c->compare = (netsnmp_container_compare*)_cert_compare;
+
+    return c;
+}
+
+static void
+_setup_containers(void)
+{
+    netsnmp_container *additional_keys;
+
+    _certs = _get_cert_container("netsnmp certificates");
+    if (NULL == _certs)
+        return;
+
+    /** additional keys: common name */
+    additional_keys = netsnmp_container_find("certs_cn:binary_array");
+    if (NULL == additional_keys) {
+        snmp_log(LOG_ERR, "could not create CN container for certificates\n");
+        netsnmp_certs_shutdown();
+        return;
+    }
+    additional_keys->container_name = strdup("certs_cn");
+    additional_keys->free_item = NULL;
+    additional_keys->compare = (netsnmp_container_compare*)_cert_cn_compare;
+    netsnmp_container_add_index(_certs, additional_keys);
+
+    /** additional keys: subject name */
+    additional_keys = netsnmp_container_find("certs_sn:binary_array");
+    if (NULL == additional_keys) {
+        snmp_log(LOG_ERR, "could not create SN container for certificates\n");
+        netsnmp_certs_shutdown();
+        return;
+    }
+    additional_keys->container_name = strdup("certs_sn");
+    additional_keys->free_item = NULL;
+    additional_keys->compare = (netsnmp_container_compare*)_cert_sn_compare;
+    additional_keys->ncompare = (netsnmp_container_compare*)_cert_sn_ncompare;
+    netsnmp_container_add_index(_certs, additional_keys);
+
+    /** additional keys: file name */
+    additional_keys = netsnmp_container_find("certs_fn:binary_array");
+    if (NULL == additional_keys) {
+        snmp_log(LOG_ERR, "could not create FN container for certificates\n");
+        netsnmp_certs_shutdown();
+        return;
+    }
+    additional_keys->container_name = strdup("certs_fn");
+    additional_keys->free_item = NULL;
+    additional_keys->compare = (netsnmp_container_compare*)_cert_fn_compare;
+    additional_keys->ncompare = (netsnmp_container_compare*)_cert_fn_ncompare;
+    netsnmp_container_add_index(_certs, additional_keys);
+
+    _keys = netsnmp_container_find("cert_keys:binary_array");
+    if (NULL == _keys) {
+        snmp_log(LOG_ERR, "could not create container for certificate keys\n");
+        netsnmp_certs_shutdown();
+        return;
+    }
+    _keys->container_name = strdup("netsnmp certificate keys");
+    _keys->free_item = (netsnmp_container_obj_func*)_key_free;
+    _keys->compare = (netsnmp_container_compare*)_cert_fn_compare;
+
+    _setup_trusted_certs();
+}
+
+netsnmp_container *
+netsnmp_cert_map_container(void)
+{
+    return _maps;
+}
+
+static netsnmp_cert *
+_new_cert(const char *dirname, const char *filename, int certType,
+          int hashType, const char *fingerprint, const char *common_name,
+          const char *subject)
+{
+    netsnmp_cert    *cert;
+
+    if ((NULL == dirname) || (NULL == filename)) {
+        snmp_log(LOG_ERR, "bad parameters to _new_cert\n");
+        return NULL;
+    }
+
+    cert = SNMP_MALLOC_TYPEDEF(netsnmp_cert);
+    if (NULL == cert) {
+        snmp_log(LOG_ERR,"could not allocate memory for certificate at %s/%s\n",
+                 dirname, filename);
+        return NULL;
+    }
+
+    DEBUGMSGT(("9:cert:struct:new","new cert 0x%#lx for %s\n", (u_long)cert,
+                  filename));
+
+    cert->info.dir = strdup(dirname);
+    cert->info.filename = strdup(filename);
+    cert->info.allowed_uses = NS_CERT_REMOTE_PEER;
+    cert->info.type = certType;
+    if (fingerprint) {
+        cert->hash_type = hashType;
+        cert->fingerprint = strdup(fingerprint);
+    }
+    if (common_name)
+        cert->common_name = strdup(common_name);
+    if (subject)
+        cert->subject = strdup(subject);
+
+    return cert;
+}
+
+static netsnmp_key *
+_new_key(const char *dirname, const char *filename)
+{
+    netsnmp_key    *key;
+    struct stat     fstat;
+    char            fn[SNMP_MAXPATH];
+
+    if ((NULL == dirname) || (NULL == filename)) {
+        snmp_log(LOG_ERR, "bad parameters to _new_key\n");
+        return NULL;
+    }
+
+    /** check file permissions */
+    snprintf(fn, sizeof(fn), "%s/%s", dirname, filename);
+    if (stat(fn, &fstat) != 0) {
+        snmp_log(LOG_ERR, "could  not stat %s\n", fn);
+        return NULL;
+    }
+
+    if ((fstat.st_mode & S_IROTH) || (fstat.st_mode & S_IROTH)) {
+        snmp_log(LOG_ERR,
+                 "refusing to read world readable or writable key %s\n", fn);
+        return NULL;
+    }
+
+    key = SNMP_MALLOC_TYPEDEF(netsnmp_key);
+    if (NULL == key) {
+        snmp_log(LOG_ERR, "could not allocate memory for key at %s/%s\n",
+                 dirname, filename);
+        return NULL;
+    }
+
+    DEBUGMSGT(("cert:key:struct:new","new key 0x%#lx for %s\n", (u_long)key,
+               filename));
+
+    key->info.type = NS_CERT_TYPE_KEY;
+    key->info.dir = strdup(dirname);
+    key->info.filename = strdup(filename);
+    key->info.allowed_uses = NS_CERT_IDENTITY;
+
+    return key;
+}
+
+void
+netsnmp_cert_free(netsnmp_cert *cert)
+{
+    if (NULL == cert)
+        return;
+
+    DEBUGMSGT(("9:cert:struct:free","freeing cert 0x%#lx, %s (fp %s; CN %s)\n",
+               (u_long)cert, cert->info.filename ? cert->info.filename : "UNK",
+               cert->fingerprint ? cert->fingerprint : "UNK",
+               cert->common_name ? cert->common_name : "UNK"));
+
+    SNMP_FREE(cert->info.dir);
+    SNMP_FREE(cert->info.filename);
+    SNMP_FREE(cert->subject);
+    SNMP_FREE(cert->issuer);
+    SNMP_FREE(cert->fingerprint);
+    SNMP_FREE(cert->common_name);
+    if (cert->ocert)
+        X509_free(cert->ocert);
+    if (cert->key && cert->key->cert == cert)
+        cert->key->cert = NULL;
+
+    free(cert); /* SNMP_FREE not needed on parameters */
+}
+
+void
+netsnmp_key_free(netsnmp_key *key)
+{
+    if (NULL == key)
+        return;
+
+    DEBUGMSGT(("cert:key:struct:free","freeing key 0x%#lx, %s\n",
+               (u_long)key, key->info.filename ? key->info.filename : "UNK"));
+
+    SNMP_FREE(key->info.dir);
+    SNMP_FREE(key->info.filename);
+    EVP_PKEY_free(key->okey);
+    if (key->cert && key->cert->key == key)
+        key->cert->key = NULL;
+
+    free(key); /* SNMP_FREE not needed on parameters */
+}
+
+static void
+_cert_free(netsnmp_cert *cert, void *context)
+{
+    netsnmp_cert_free(cert);
+}
+
+static void
+_key_free(netsnmp_key *key, void *context)
+{
+    netsnmp_key_free(key);
+}
+
+static int
+_cert_compare(netsnmp_cert *lhs, netsnmp_cert *rhs)
+{
+    netsnmp_assert((lhs != NULL) && (rhs != NULL));
+    netsnmp_assert((lhs->fingerprint != NULL) &&
+                   (rhs->fingerprint != NULL));
+
+    /** ignore hash type? */
+    return strcmp(lhs->fingerprint, rhs->fingerprint);
+}
+
+static int
+_cert_path_compare(netsnmp_cert_common *lhs, netsnmp_cert_common *rhs)
+{
+    int rc;
+
+    netsnmp_assert((lhs != NULL) && (rhs != NULL));
+    
+    /** dir name first */
+    rc = strcmp(lhs->dir, rhs->dir);
+    if (rc)
+        return rc;
+
+    /** filename */
+    return strcmp(lhs->filename, rhs->filename);
+}
+
+static int
+_cert_cn_compare(netsnmp_cert *lhs, netsnmp_cert *rhs)
+{
+    int rc;
+    const char *lhcn, *rhcn;
+
+    netsnmp_assert((lhs != NULL) && (rhs != NULL));
+
+    if (NULL == lhs->common_name)
+        lhcn = "";
+    else
+        lhcn = lhs->common_name;
+    if (NULL == rhs->common_name)
+        rhcn = "";
+    else
+        rhcn = rhs->common_name;
+
+    rc = strcmp(lhcn, rhcn);
+    if (rc)
+        return rc;
+
+    /** in case of equal common names, sub-sort by path */
+    return _cert_path_compare((netsnmp_cert_common*)lhs,
+                              (netsnmp_cert_common*)rhs);
+}
+
+static int
+_cert_sn_compare(netsnmp_cert *lhs, netsnmp_cert *rhs)
+{
+    int rc;
+    const char *lhsn, *rhsn;
+
+    netsnmp_assert((lhs != NULL) && (rhs != NULL));
+
+    if (NULL == lhs->subject)
+        lhsn = "";
+    else
+        lhsn = lhs->subject;
+    if (NULL == rhs->subject)
+        rhsn = "";
+    else
+        rhsn = rhs->subject;
+
+    rc = strcmp(lhsn, rhsn);
+    if (rc)
+        return rc;
+
+    /** in case of equal common names, sub-sort by path */
+    return _cert_path_compare((netsnmp_cert_common*)lhs,
+                              (netsnmp_cert_common*)rhs);
+}
+
+static int
+_cert_fn_compare(netsnmp_cert_common *lhs, netsnmp_cert_common *rhs)
+{
+    int rc;
+
+    netsnmp_assert((lhs != NULL) && (rhs != NULL));
+
+    rc = strcmp(lhs->filename, rhs->filename);
+    if (rc)
+        return rc;
+
+    /** in case of equal common names, sub-sort by dir */
+    return strcmp(lhs->dir, rhs->dir);
+}
+
+static int
+_cert_fn_ncompare(netsnmp_cert_common *lhs, netsnmp_cert_common *rhs)
+{
+    netsnmp_assert((lhs != NULL) && (rhs != NULL));
+    netsnmp_assert((lhs->filename != NULL) && (rhs->filename != NULL));
+
+    return strncmp(lhs->filename, rhs->filename, strlen(rhs->filename));
+}
+
+static int
+_cert_sn_ncompare(netsnmp_cert *lhs, netsnmp_cert *rhs)
+{
+    netsnmp_assert((lhs != NULL) && (rhs != NULL));
+    netsnmp_assert((lhs->subject != NULL) && (rhs->subject != NULL));
+
+    return strncmp(lhs->subject, rhs->subject, strlen(rhs->subject));
+}
+
+static int
+_cert_ext_type(const char *ext)
+{
+    int rc = se_find_value_in_slist("cert_types", ext);
+    if (SE_DNE == rc)
+        return NS_CERT_TYPE_UNKNOWN;
+    return rc;
+}
+
+static int
+_type_from_filename(const char *filename)
+{
+    char     *pos;
+    int       type;
+
+    if (NULL == filename)
+        return NS_CERT_TYPE_UNKNOWN;
+
+    pos = strrchr(filename, '.');
+    if (NULL == pos)
+        return NS_CERT_TYPE_UNKNOWN;
+
+    type = _cert_ext_type(++pos);
+    return type;
+}
+
+/*
+ * filter functions; return 1 to include file, 0 to exclude
+ */
+static int
+_cert_cert_filter(const char *filename)
+{
+    int  len = strlen(filename);
+    const char *pos;
+
+    if (len < 5) /* shortest name: x.YYY */
+        return 0;
+
+    pos = strrchr(filename, '.');
+    if (NULL == pos)
+        return 0;
+
+    if (_cert_ext_type(++pos) != NS_CERT_TYPE_UNKNOWN)
+        return 1;
+
+    return 0;
+}
+
+/* #####################################################################
+ *
+ * cert index functions
+ *
+ * This code mimics what the mib index code does. The persistent
+ * directory will have a subdirectory named 'cert_indexes'. Inside
+ * this directory will be some number of files with ascii numeric
+ * names (0, 1, 2, etc). Each of these files will start with a line
+ * with the text "DIR ", followed by a directory name. The rest of the
+ * file will be certificate fields and the certificate file name, one
+ * certificate per line. The numeric file name is the integer 'directory
+ * index'.
+ */
+
+/**
+ * _certindex_add
+ *
+ * add a directory name to the indexes
+ */
+static int
+_certindex_add( const char *dirname, int i )
+{
+    int rc;
+    char *dirname_copy = strdup(dirname);
+
+    if ( i == -1 ) {
+        int max = se_find_free_value_in_list(_certindexes);
+        if (SE_DNE == max)
+            i = 0;
+        else
+            i = max;
+    }
+
+    DEBUGMSGT(("cert:index:add","dir %s at index %d\n", dirname, i ));
+    rc = se_add_pair_to_list(&_certindexes, dirname_copy, i);
+    if (SE_OK != rc) {
+        snmp_log(LOG_ERR, "adding certindex dirname failed; "
+                 "%d (%s) not added\n", i, dirname);
+        return -1;
+    }
+
+    return i;
+}
+
+/**
+ * _certindex_load
+ *
+ * read in the existing indexes
+ */
+static void
+_certindexes_load( void )
+{
+    DIR *dir;
+    struct dirent *file;
+    FILE *fp;
+    char filename[SNMP_MAXPATH], line[300];
+    int  i;
+    char *cp, *pos;
+
+    /*
+     * Open the CERT index directory, or create it (empty)
+     */
+    snprintf( filename, sizeof(filename), "%s/cert_indexes",
+              get_persistent_directory());
+    filename[sizeof(filename)-1] = 0;
+    dir = opendir( filename );
+    if ( dir == NULL ) {
+        DEBUGMSGT(("cert:index:load",
+                   "creating new cert_indexes directory\n"));
+        mkdirhier( filename, NETSNMP_AGENT_DIRECTORY_MODE, 0);
+        return;
+    }
+
+    /*
+     * Create a list of which directory each file refers to
+     */
+    while ((file = readdir( dir ))) {
+        if ( !isdigit(0xFF & file->d_name[0]))
+            continue;
+        i = atoi( file->d_name );
+
+        snprintf( filename, sizeof(filename), "%s/cert_indexes/%d",
+              get_persistent_directory(), i );
+        filename[sizeof(filename)-1] = 0;
+        fp = fopen( filename, "r" );
+        if ( !fp ) {
+            DEBUGMSGT(("cert:index:load", "error opening index (%d)\n", i));
+            continue;
+        }
+        cp = fgets( line, sizeof(line), fp );
+        if ( cp ) {
+            line[strlen(line)-1] = 0;
+            pos = strrchr(line, ' ');
+            if (pos)
+                *pos = '\0';
+            DEBUGMSGT(("9:cert:index:load","adding (%d) %s\n", i, line));
+            (void)_certindex_add( line+4, i );  /* Skip 'DIR ' */
+        } else {
+            DEBUGMSGT(("cert:index:load", "Empty index (%d)\n", i));
+        }
+        fclose( fp );
+    }
+    closedir( dir );
+}
+
+/**
+ * _certindex_lookup
+ *
+ * find index for a directory
+ */
+static char *
+_certindex_lookup( const char *dirname )
+{
+    int i;
+    char filename[SNMP_MAXPATH];
+
+
+    i = se_find_value_in_list(_certindexes, dirname);
+    if (SE_DNE == i) {
+        DEBUGMSGT(("9:cert:index:lookup","%s : (none)\n", dirname));
+        return NULL;
+    }
+
+    snprintf(filename, sizeof(filename), "%s/cert_indexes/%d",
+             get_persistent_directory(), i);
+    filename[sizeof(filename)-1] = 0;
+    DEBUGMSGT(("cert:index:lookup", "%s (%d) %s\n", dirname, i, filename ));
+    return strdup(filename);
+}
+
+static FILE *
+_certindex_new( const char *dirname )
+{
+    FILE *fp;
+    char  filename[SNMP_MAXPATH], *cp;
+    int   i;
+
+    cp = _certindex_lookup( dirname );
+    if (!cp) {
+        i  = _certindex_add( dirname, -1 );
+        if (-1 == i)
+            return NULL; /* msg already logged */
+        snprintf( filename, sizeof(filename), "%s/cert_indexes/%d",
+                  get_persistent_directory(), i );
+        filename[sizeof(filename)-1] = 0;
+        cp = filename;
+    }
+    DEBUGMSGT(("9:cert:index:new", "%s (%s)\n", dirname, cp ));
+    fp = fopen( cp, "w" );
+    if (fp)
+        fprintf( fp, "DIR %s %d\n", dirname, CERT_INDEX_FORMAT );
+    else
+        DEBUGMSGTL(("cert:index", "error opening new index file %s\n", dirname));
+
+    if (cp != filename)
+        free(cp);
+
+    return fp;
+}
+
+/* #####################################################################
+ *
+ * certificate utility functions
+ *
+ */
+static X509 *
+netsnmp_ocert_get(netsnmp_cert *cert)
+{
+    BIO            *certbio;
+    X509           *ocert = NULL;
+    EVP_PKEY       *okey = NULL;
+    char            file[SNMP_MAXPATH];
+    int             is_ca;
+
+    if (NULL == cert)
+        return NULL;
+
+    if (cert->ocert)
+        return cert->ocert;
+
+    if (NS_CERT_TYPE_UNKNOWN == cert->info.type) {
+        cert->info.type = _type_from_filename(cert->info.filename);
+        if (NS_CERT_TYPE_UNKNOWN == cert->info.type) {
+            snmp_log(LOG_ERR, "unknown certificate type %d for %s\n",
+                     cert->info.type, cert->info.filename);
+            return NULL;
+        }
+    }
+
+    DEBUGMSGT(("9:cert:read", "Checking file %s\n", cert->info.filename));
+
+    certbio = BIO_new(BIO_s_file());
+    if (NULL == certbio) {
+        snmp_log(LOG_ERR, "error creating BIO\n");
+        return NULL;
+    }
+
+    snprintf(file, sizeof(file),"%s/%s", cert->info.dir, cert->info.filename);
+    if (BIO_read_filename(certbio, file) <=0) {
+        snmp_log(LOG_ERR, "error reading certificate %s into BIO\n", file);
+        BIO_vfree(certbio);
+        return NULL;
+    }
+
+    if (NS_CERT_TYPE_UNKNOWN == cert->info.type) {
+        char *pos = strrchr(cert->info.filename, '.');
+        if (NULL == pos)
+            return NULL;
+        cert->info.type = _cert_ext_type(++pos);
+        netsnmp_assert(cert->info.type != NS_CERT_TYPE_UNKNOWN);
+    }
+
+    switch (cert->info.type) {
+
+        case NS_CERT_TYPE_DER:
+            ocert = d2i_X509_bio(certbio,NULL); /* DER/ASN1 */
+            if (NULL != ocert)
+                break;
+            (void)BIO_reset(certbio);
+            /** FALLTHROUGH: check for PEM if DER didn't work */
+
+        case NS_CERT_TYPE_PEM:
+            ocert = PEM_read_bio_X509_AUX(certbio, NULL, NULL, NULL);
+            if (NULL == ocert)
+                break;
+            if (NS_CERT_TYPE_DER == cert->info.type) {
+                DEBUGMSGT(("9:cert:read", "Changing type from DER to PEM\n"));
+                cert->info.type = NS_CERT_TYPE_PEM;
+            }
+            /** check for private key too */
+            if (NULL == cert->key) {
+                (void)BIO_reset(certbio);
+                okey =  PEM_read_bio_PrivateKey(certbio, NULL, NULL, NULL);
+                if (NULL != okey) {
+                    netsnmp_key  *key;
+                    DEBUGMSGT(("cert:read:key", "found key with cert in %s\n",
+                               cert->info.filename));
+                    key = _new_key(cert->info.dir, cert->info.filename);
+                    if (NULL != key) {
+                        key->okey = okey;
+                        if (-1 == CONTAINER_INSERT(_keys, key)) {
+                            DEBUGMSGT(("cert:read:key:add",
+                                       "error inserting key into container\n"));
+                            netsnmp_key_free(key);
+                            key = NULL;
+                        }
+                        else {
+                            DEBUGMSGT(("cert:read:partner", "%s match found!\n",
+                                       cert->info.filename));
+                            key->cert = cert;
+                            cert->key = key;
+                            cert->info.allowed_uses |= NS_CERT_IDENTITY;
+                        }
+                    }
+                } /* null return from read */
+            } /* null key */
+            break;
+#ifdef CERT_PKCS12_SUPPORT_MAYBE_LATER
+        case NS_CERT_TYPE_PKCS12:
+            (void)BIO_reset(certbio);
+            PKCS12 *p12 = d2i_PKCS12_bio(certbio, NULL);
+            if ( (NULL != p12) && (PKCS12_verify_mac(p12, "", 0) ||
+                                   PKCS12_verify_mac(p12, NULL, 0)))
+                PKCS12_parse(p12, "", NULL, &cert, NULL);
+            break;
+#endif
+        default:
+            snmp_log(LOG_ERR, "unknown certificate type %d for %s\n",
+                     cert->info.type, cert->info.filename);
+    }
+
+    BIO_vfree(certbio);
+
+    if (NULL == ocert) {
+        snmp_log(LOG_ERR, "error parsing certificate file %s\n",
+                 cert->info.filename);
+        return NULL;
+    }
+
+    cert->ocert = ocert;
+    /*
+     * X509_check_ca return codes:
+     * 0 not a CA
+     * 1 is a CA
+     * 2 basicConstraints absent so "maybe" a CA
+     * 3 basicConstraints absent but self signed V1.
+     * 4 basicConstraints absent but keyUsage present and keyCertSign asserted.
+     * 5 outdated Netscape Certificate Type CA extension.
+     */
+    is_ca = X509_check_ca(ocert);
+    if (1 == is_ca)
+        cert->info.allowed_uses |= NS_CERT_CA;
+
+    if (NULL == cert->subject) {
+        cert->subject = X509_NAME_oneline(X509_get_subject_name(ocert), NULL,
+                                          0);
+        DEBUGMSGT(("9:cert:add:subject", "subject name: %s\n", cert->subject));
+    }
+
+    if (NULL == cert->issuer) {
+        cert->issuer = X509_NAME_oneline(X509_get_issuer_name(ocert), NULL, 0);
+        if (strcmp(cert->subject, cert->issuer) == 0) {
+            free(cert->issuer);
+            cert->issuer = strdup("self-signed");
+        }
+        DEBUGMSGT(("9:cert:add:issuer", "CA issuer: %s\n", cert->issuer));
+    }
+    
+    if (NULL == cert->fingerprint) {
+        cert->hash_type = netsnmp_openssl_cert_get_hash_type(ocert);
+        cert->fingerprint =
+            netsnmp_openssl_cert_get_fingerprint(ocert, cert->hash_type);
+    }
+    
+    if (NULL == cert->common_name) {
+        cert->common_name =netsnmp_openssl_cert_get_commonName(ocert, NULL,
+                                                               NULL);
+        DEBUGMSGT(("9:cert:add:name","%s\n", cert->common_name));
+    }
+
+    return ocert;
+}
+
+EVP_PKEY *
+netsnmp_okey_get(netsnmp_key  *key)
+{
+    BIO            *keybio;
+    EVP_PKEY       *okey;
+    char            file[SNMP_MAXPATH];
+
+    if (NULL == key)
+        return NULL;
+
+    if (key->okey)
+        return key->okey;
+
+    snprintf(file, sizeof(file),"%s/%s", key->info.dir, key->info.filename);
+    DEBUGMSGT(("cert:key:read", "Checking file %s\n", key->info.filename));
+
+    keybio = BIO_new(BIO_s_file());
+    if (NULL == keybio) {
+        snmp_log(LOG_ERR, "error creating BIO\n");
+        return NULL;
+    }
+
+    if (BIO_read_filename(keybio, file) <=0) {
+        snmp_log(LOG_ERR, "error reading certificate %s into BIO\n",
+                 key->info.filename);
+        BIO_vfree(keybio);
+        return NULL;
+    }
+
+    okey = PEM_read_bio_PrivateKey(keybio, NULL, NULL, NULL);
+    if (NULL == okey)
+        snmp_log(LOG_ERR, "error parsing certificate file %s\n",
+                 key->info.filename);
+    else
+        key->okey = okey;
+
+    BIO_vfree(keybio);
+
+    return okey;
+}
+
+static netsnmp_cert *
+_find_issuer(netsnmp_cert *cert)
+{
+    netsnmp_void_array *matching;
+    netsnmp_cert       *candidate, *issuer = NULL;
+    int                 i;
+
+    if ((NULL == cert) || (NULL == cert->issuer))
+        return NULL;
+
+    /** find matching subject names */
+
+    matching = _cert_find_subset_sn(cert->issuer);
+    if (NULL == matching)
+        return NULL;
+
+    /** check each to see if it's the issuer */
+    for ( i=0; (NULL == issuer) && (i < matching->size); ++i) {
+        /** make sure we have ocert */
+        candidate = (netsnmp_cert*)matching->array[i];
+        if ((NULL == candidate->ocert) &&
+            (netsnmp_ocert_get(candidate) == NULL))
+            continue;
+
+        /** compare **/
+        if (netsnmp_openssl_cert_issued_by(candidate->ocert, cert->ocert))
+            issuer = candidate;
+    } /** candidate loop */
+
+    free(matching->array);
+    free(matching);
+
+    return issuer;
+}
+
+#define CERT_LOAD_OK       0
+#define CERT_LOAD_ERR     -1
+#define CERT_LOAD_PARTIAL -2
+int
+netsnmp_cert_load_x509(netsnmp_cert *cert)
+{
+    int rc = CERT_LOAD_OK;
+
+    /** load ocert */
+    if ((NULL == cert->ocert) && (netsnmp_ocert_get(cert) == NULL)) {
+        DEBUGMSGT(("cert:load:err", "couldn't load cert for %s\n",
+                   cert->info.filename));
+        rc = CERT_LOAD_ERR;
+    }
+
+    /** load key */
+    if ((NULL != cert->key) && (NULL == cert->key->okey) &&
+        (netsnmp_okey_get(cert->key) == NULL)) {
+        DEBUGMSGT(("cert:load:err", "couldn't load key for cert %s\n",
+                   cert->info.filename));
+        rc = CERT_LOAD_ERR;
+    }
+
+    /** make sure we have cert chain */
+    for (; cert && cert->issuer; cert = cert->issuer_cert) {
+        /** skip self signed */
+        if (strcmp(cert->issuer, "self-signed") == 0) {
+            netsnmp_assert(cert->issuer_cert == NULL);
+            break;
+        }
+        /** get issuer cert */
+        if (NULL == cert->issuer_cert) {
+            cert->issuer_cert =  _find_issuer(cert);
+            if (NULL == cert->issuer_cert) {
+                DEBUGMSGT(("cert:load:warn",
+                           "couldn't load CA chain for cert %s\n",
+                           cert->info.filename));
+                rc = CERT_LOAD_PARTIAL;
+                break;
+            }
+        }
+        /** get issuer ocert */
+        if ((NULL == cert->issuer_cert->ocert) &&
+            (netsnmp_ocert_get(cert->issuer_cert) == NULL)) {
+            DEBUGMSGT(("cert:load:warn", "couldn't load cert chain for %s\n",
+                       cert->info.filename));
+            rc = CERT_LOAD_PARTIAL;
+            break;
+        }
+    } /* cert CA for loop */
+
+    return rc;
+}
+
+static void
+_find_partner(netsnmp_cert *cert, netsnmp_key *key)
+{
+    netsnmp_void_array *matching;
+    char                filename[NAME_MAX], *pos;
+
+    if ((cert && key) || (!cert && ! key)) {
+        DEBUGMSGT(("cert:partner", "bad parameters searching for partner\n"));
+        return;
+    }
+
+    if(key) {
+        if (key->cert) {
+            DEBUGMSGT(("cert:partner", "key already has partner\n"));
+            return;
+        }
+        DEBUGMSGT(("9:cert:partner", "%s looking for partner near %s\n",
+                   key->info.filename, key->info.dir));
+        snprintf(filename, sizeof(filename), "%s", key->info.filename);
+        pos = strrchr(filename, '.');
+        if (NULL == pos)
+            return;
+        *pos = 0;
+
+        matching = _cert_find_subset_fn( filename, key->info.dir );
+        if (!matching)
+            return;
+        if (1 == matching->size) {
+            cert = (netsnmp_cert*)matching->array[0];
+            if (NULL == cert->key) {
+                DEBUGMSGT(("cert:partner", "%s match found!\n",
+                           cert->info.filename));
+                key->cert = cert;
+                cert->key = key;
+                cert->info.allowed_uses |= NS_CERT_IDENTITY;
+            }
+            else if (cert->key != key)
+                snmp_log(LOG_ERR, "%s matching cert already has partner\n",
+                         cert->info.filename);
+        }
+        else
+            DEBUGMSGT(("cert:partner", "%s matches multiple certs\n",
+                          key->info.filename));
+    }
+    else if(cert) {
+        if (cert->key) {
+            DEBUGMSGT(("cert:partner", "cert already has partner\n"));
+            return;
+        }
+        DEBUGMSGT(("9:cert:partner", "%s looking for partner\n",
+                   cert->info.filename));
+        snprintf(filename, sizeof(filename), "%s", cert->info.filename);
+        pos = strrchr(filename, '.');
+        if (NULL == pos)
+            return;
+        *pos = 0;
+
+        matching = _key_find_subset(filename);
+        if (!matching)
+            return;
+        if (1 == matching->size) {
+            key = (netsnmp_key*)matching->array[0];
+            if (NULL == key->cert) {
+                DEBUGMSGT(("cert:partner", "%s found!\n", cert->info.filename));
+                key->cert = cert;
+                cert->key = key;
+            }
+            else if (key->cert != cert)
+                snmp_log(LOG_ERR, "%s matching key already has partner\n",
+                         cert->info.filename);
+        }
+        else
+            DEBUGMSGT(("cert:partner", "%s matches multiple keys\n",
+                       cert->info.filename));
+    }
+    
+    if (matching) {
+        free(matching->array);
+        free(matching);
+    }
+}
+
+static int
+_add_certfile(const char* dirname, const char* filename, FILE *index)
+{
+    X509         *ocert;
+    EVP_PKEY     *okey;
+    netsnmp_cert *cert = NULL;
+    netsnmp_key  *key = NULL;
+    char          certfile[SNMP_MAXPATH];
+    int           type;
+
+    if (((const void*)NULL == dirname) || (NULL == filename))
+        return -1;
+
+    type = _type_from_filename(filename);
+    netsnmp_assert(type != NS_CERT_TYPE_UNKNOWN);
+
+    snprintf(certfile, sizeof(certfile),"%s/%s", dirname, filename);
+
+    DEBUGMSGT(("9:cert:file:add", "Checking file: %s (type %d)\n", filename,
+               type));
+
+    if (NS_CERT_TYPE_KEY == type) {
+        key = _new_key(dirname, filename);
+        if (NULL == key)
+            return -1;
+        okey = netsnmp_okey_get(key);
+        if (NULL == okey) {
+            netsnmp_key_free(key);
+            return -1;
+        }
+        key->okey = okey;
+        if (-1 == CONTAINER_INSERT(_keys, key)) {
+            DEBUGMSGT(("cert:key:file:add:err",
+                       "error inserting key into container\n"));
+            netsnmp_key_free(key);
+            key = NULL;
+        }
+    }
+    else {
+        cert = _new_cert(dirname, filename, type, -1, NULL, NULL, NULL);
+        if (NULL == cert)
+            return -1;
+        ocert = netsnmp_ocert_get(cert);
+        if (NULL == ocert) {
+            netsnmp_cert_free(cert);
+            return -1;
+        }
+        cert->ocert = ocert;
+        if (-1 == CONTAINER_INSERT(_certs, cert)) {
+            DEBUGMSGT(("cert:file:add:err",
+                       "error inserting cert into container\n"));
+            netsnmp_cert_free(cert);
+            cert = NULL;
+        }
+    }
+    if ((NULL == cert) && (NULL == key)) {
+        DEBUGMSGT(("cert:file:add:failure", "for %s\n", certfile));
+        return -1;
+    }
+
+    if (index) {
+        /** filename = NAME_MAX = 255 */
+        /** fingerprint = 60 */
+        /** common name / CN  = 64 */
+        if (cert)
+            fprintf(index, "c:%s %d %d %s '%s' '%s'\n", filename,
+                    cert->info.type, cert->hash_type, cert->fingerprint,
+                    cert->common_name, cert->subject);
+        else if (key)
+            fprintf(index, "k:%s\n", filename);
+    }
+
+    return 0;
+}
+
+static int
+_cert_read_index(const char *dirname, struct stat *dirstat)
+{
+    FILE           *index;
+    char           *idxname, *pos;
+    struct stat     idx_stat;
+    char            tmpstr[SNMP_MAXPATH + 5], filename[NAME_MAX];
+    char            fingerprint[60+1], common_name[64+1], type_str[15];
+    char            subject[SNMP_MAXBUF_SMALL], hash_str[15];
+    int             count = 0, type, hash, version;
+    netsnmp_cert    *cert;
+    netsnmp_key     *key;
+    netsnmp_container *newer, *found;
+
+    netsnmp_assert(NULL != dirname);
+
+    idxname = _certindex_lookup( dirname );
+    if (NULL == idxname) {
+        DEBUGMSGT(("cert:index:parse", "no index for cert directory\n"));
+        return -1;
+    }
+
+    /*
+     * see if directory has been modified more recently than the index
+     */
+    if (stat(idxname, &idx_stat) != 0) {
+        DEBUGMSGT(("cert:index:parse", "error getting index file stats\n"));
+        SNMP_FREE(idxname);
+        return -1;
+    }
+
+#if (defined(WIN32) || defined(cygwin))
+    /* For Win32 platforms, the directory does not maintain a last modification
+     * date that we can compare with the modification date of the .index file.
+     */
+#else
+    if (dirstat->st_mtime >= idx_stat.st_mtime) {
+        DEBUGMSGT(("cert:index:parse", "Index outdated; dir modified\n"));
+        SNMP_FREE(idxname);
+        return -1;
+    }
+#endif
+
+    /*
+     * dir mtime doesn't change when files are touched, so we need to check
+     * each file against the index in case a file has been modified.
+     */
+    newer =
+        netsnmp_directory_container_read_some(NULL, dirname,
+                                              (netsnmp_directory_filter*)
+                                              _time_filter,(void*)&idx_stat,
+                                              NETSNMP_DIR_NSFILE |
+                                              NETSNMP_DIR_NSFILE_STATS);
+    if (newer) {
+        DEBUGMSGT(("cert:index:parse", "Index outdated; files modified\n"));
+        CONTAINER_FREE_ALL(newer, NULL);
+        CONTAINER_FREE(newer);
+        SNMP_FREE(idxname);
+        return -1;
+    }
+
+    DEBUGMSGT(("cert:index:parse", "The index for %s looks good\n", dirname));
+
+    index = fopen(idxname, "r");
+    if (NULL == index) {
+        snmp_log(LOG_ERR, "cert:index:parse can't open index for %s\n",
+            dirname);
+        SNMP_FREE(idxname);
+        return -1;
+    }
+
+    found = _get_cert_container(idxname);
+
+    /*
+     * check index format version
+     */
+    fgets(tmpstr, sizeof(tmpstr), index);
+    pos = strrchr(tmpstr, ' ');
+    if (pos) {
+        ++pos;
+        version = atoi(pos);
+    }
+    if ((NULL == pos) || (version != CERT_INDEX_FORMAT)) {
+        DEBUGMSGT(("cert:index:add", "missing or wrong index format!\n"));
+        fclose(index);
+        SNMP_FREE(idxname);
+        return -1;
+    }
+    while (1) {
+        if (NULL == fgets(tmpstr, sizeof(tmpstr), index))
+            break;
+
+        if ('c' == tmpstr[0]) {
+            pos = &tmpstr[2];
+            if ((NULL == (pos=copy_nword(pos, filename, sizeof(filename)))) ||
+                (NULL == (pos=copy_nword(pos, type_str, sizeof(type_str)))) ||
+                (NULL == (pos=copy_nword(pos, hash_str, sizeof(hash_str)))) ||
+                (NULL == (pos=copy_nword(pos, fingerprint,
+                                         sizeof(fingerprint)))) ||
+                (NULL == (pos=copy_nword(pos, common_name,
+                                           sizeof(common_name)))) ||
+                (NULL != copy_nword(pos, subject, sizeof(subject)))) {
+                snmp_log(LOG_ERR, "_cert_read_index: error parsing line: %s\n",
+                         tmpstr);
+                count = -1;
+                break;
+            }
+            type = atoi(type_str);
+            hash = atoi(hash_str);
+            cert = (void*)_new_cert(dirname, filename, type, hash, fingerprint,
+                                    common_name, subject);
+            if (cert && 0 == CONTAINER_INSERT(found, cert))
+                ++count;
+            else {
+                DEBUGMSGT(("cert:index:add",
+                           "error inserting cert into container\n"));
+                netsnmp_cert_free(cert);
+                cert = NULL;
+            }
+        }
+        else if ('k' == tmpstr[0]) {
+            if (NULL != copy_nword(&tmpstr[2], filename, sizeof(filename))) {
+                snmp_log(LOG_ERR, "_cert_read_index: error parsing line %s\n",
+                    tmpstr);
+                continue;
+            }
+            key = _new_key(dirname, filename);
+            if (key && 0 == CONTAINER_INSERT(_keys, key))
+                ++count;
+            else {
+                DEBUGMSGT(("cert:index:add:key",
+                           "error inserting key into container\n"));
+                netsnmp_key_free(key);
+            }
+        }
+        else {
+            snmp_log(LOG_ERR, "unknown line in cert index for %s\n", dirname);
+            continue;
+        }
+    } /* while */
+    fclose(index);
+    SNMP_FREE(idxname);
+
+    if (count > 0) {
+        netsnmp_iterator  *itr = CONTAINER_ITERATOR(found);
+        if (NULL == itr) {
+            snmp_log(LOG_ERR, "could not get iterator for found certs\n");
+            count = -1;
+        }
+        else {
+            cert = ITERATOR_FIRST(itr);
+            for( ; cert; cert = ITERATOR_NEXT(itr))
+                CONTAINER_INSERT(_certs, cert);
+            ITERATOR_RELEASE(itr);
+            DEBUGMSGT(("cert:index:parse","added %d certs from index\n",
+                       count));
+        }
+    }
+    if (count < 0)
+        CONTAINER_FREE_ALL(found, NULL);
+    CONTAINER_FREE(found);
+
+    return count;
+}
+
+static int
+_add_certdir(const char *dirname)
+{
+    FILE           *index;
+    char           *file;
+    int             count = 0;
+    netsnmp_container *cert_container;
+    netsnmp_iterator  *it;
+    struct stat     statbuf;
+
+    netsnmp_assert(NULL != dirname);
+
+    DEBUGMSGT(("9:cert:dir:add", " config dir: %s\n", dirname ));
+
+    if (stat(dirname, &statbuf) != 0) {
+        DEBUGMSGT(("9:cert:dir:add", " dir not present: %s\n",
+                   dirname ));
+        return -1;
+    }
+#ifdef S_ISDIR
+    if (!S_ISDIR(statbuf.st_mode)) {
+        DEBUGMSGT(("9:cert:dir:add", " not a dir: %s\n", dirname ));
+        return -1;
+    }
+#endif
+
+    DEBUGMSGT(("cert:index:dir", "Scanning directory %s\n", dirname));
+
+    /*
+     * look for existing index
+     */
+    count = _cert_read_index(dirname, &statbuf);
+    if (count >= 0)
+        return count;
+
+    index = _certindex_new( dirname );
+    if (NULL == index) {
+        DEBUGMSGT(("9:cert:index:dir",
+                    "error opening index for cert directory\n"));
+        DEBUGMSGTL(("cert:index", "could not open certificate index file\n"));
+    }
+
+    /*
+     * index was missing, out of date or bad. rescan directory.
+     */
+    cert_container =
+        netsnmp_directory_container_read_some(NULL, dirname,
+                                              (netsnmp_directory_filter*)
+                                              &_cert_cert_filter, NULL,
+                                              NETSNMP_DIR_RELATIVE_PATH |
+                                              NETSNMP_DIR_EMPTY_OK );
+    if (NULL == cert_container) {
+        DEBUGMSGT(("cert:index:dir",
+                    "error creating container for cert files\n"));
+        goto err_index;
+    }
+
+    /*
+     * iterate through the found files and add them to index
+     */
+    it = CONTAINER_ITERATOR(cert_container);
+    if (NULL == it) {
+        DEBUGMSGT(("cert:index:dir",
+                    "error creating iterator for cert files\n"));
+        goto err_container;
+    }
+
+    for (file = ITERATOR_FIRST(it); file; file = ITERATOR_NEXT(it)) {
+        DEBUGMSGT(("cert:index:dir", "adding %s to index\n", file));
+        if ( 0 == _add_certfile( dirname, file, index ))
+            count++;
+        else
+            DEBUGMSGT(("cert:index:dir", "error adding %s to index\n",
+                        file));
+    }
+
+    /*
+     * clean up and return
+     */
+    ITERATOR_RELEASE(it);
+
+  err_container:
+    netsnmp_directory_container_free(cert_container);
+
+  err_index:
+    if (index)
+        fclose(index);
+
+    return count;
+}
+
+static void
+_cert_indexes_load(void)
+{
+    const char     *confpath;
+    char           *confpath_copy, *dir, *st = NULL;
+    char            certdir[SNMP_MAXPATH];
+    const char     *subdirs[] = { NULL, "ca-certs", "certs", "private", NULL };
+    int             i = 0;
+
+    /*
+     * load indexes from persistent dir
+     */
+    _certindexes_load();
+
+    /*
+     * duplicate path building from read_config_files_of_type() in
+     * read_config.c. That is, use SNMPCONFPATH environment variable if
+     * it is defined, otherwise use configuration directory.
+     */
+    confpath = netsnmp_getenv("SNMPCONFPATH");
+    if (NULL == confpath)
+        confpath = get_configuration_directory();
+
+    subdirs[0] = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                       NETSNMP_DS_LIB_CERT_EXTRA_SUBDIR);
+    confpath_copy = strdup(confpath);
+    for ( dir = strtok_r(confpath_copy, ENV_SEPARATOR, &st);
+          dir; dir = strtok_r(NULL, ENV_SEPARATOR, &st)) {
+
+        i = (NULL == subdirs[0]) ? 1 : 0;
+        for ( ; subdirs[i] ; ++i ) {
+            /** check tls subdir */
+            snprintf(certdir, sizeof(certdir), "%s/tls/%s", dir, subdirs[i]);
+            _add_certdir(certdir);
+        } /* for subdirs */
+    } /* for conf path dirs */
+    SNMP_FREE(confpath_copy);
+}
+
+static void
+_cert_print(netsnmp_cert *c, void *context)
+{
+    if (NULL == c)
+        return;
+
+    DEBUGMSGT(("cert:dump", "cert %s in %s\n", c->info.filename, c->info.dir));
+    DEBUGMSGT(("cert:dump", "   type %d flags 0x%x (%s)\n",
+             c->info.type, c->info.allowed_uses,
+              _mode_str(c->info.allowed_uses)));
+    DEBUGIF("9:cert:dump") {
+        if (NS_CERT_TYPE_KEY != c->info.type) {
+            if(c->subject) {
+                if (c->info.allowed_uses & NS_CERT_CA)
+                    DEBUGMSGT(("9:cert:dump", "   CA: %s\n", c->subject));
+                else
+                    DEBUGMSGT(("9:cert:dump", "   subject: %s\n", c->subject));
+            }
+            if(c->issuer)
+                DEBUGMSGT(("9:cert:dump", "   issuer: %s\n", c->issuer));
+            if(c->fingerprint)
+                DEBUGMSGT(("9:cert:dump", "   fingerprint: %s(%d):%s\n",
+                           se_find_label_in_slist("cert_hash_alg", c->hash_type),
+                           c->hash_type, c->fingerprint));
+        }
+        /* netsnmp_openssl_cert_dump_names(c->ocert); */
+        netsnmp_openssl_cert_dump_extensions(c->ocert);
+    }
+    
+}
+
+static void
+_key_print(netsnmp_key *k, void *context)
+{
+    if (NULL == k)
+        return;
+
+    DEBUGMSGT(("cert:dump", "key %s in %s\n", k->info.filename, k->info.dir));
+    DEBUGMSGT(("cert:dump", "   type %d flags 0x%x (%s)\n", k->info.type,
+              k->info.allowed_uses, _mode_str(k->info.allowed_uses)));
+}
+
+void
+netsnmp_cert_dump_all(void)
+{
+    CONTAINER_FOR_EACH(_certs, (netsnmp_container_obj_func*)_cert_print, NULL);
+    CONTAINER_FOR_EACH(_keys, (netsnmp_container_obj_func*)_key_print, NULL);
+}
+
+#ifdef CERT_MAIN
+/*
+ * export BLD=~/net-snmp/build/ SRC=~/net-snmp/src 
+ * cc -DCERT_MAIN `$BLD/net-snmp-config --cflags` `$BLD/net-snmp-config --build-includes $BLD/`  $SRC/snmplib/cert_util.c   -o cert_util `$BLD/net-snmp-config --build-lib-dirs $BLD` `$BLD/net-snmp-config --libs` -lcrypto -lssl
+ *
+ */
+int
+main(int argc, char** argv)
+{
+    int          ch;
+    extern char *optarg;
+
+    while ((ch = getopt(argc, argv, "D:fHLMx:")) != EOF)
+        switch(ch) {
+            case 'D':
+                debug_register_tokens(optarg);
+                snmp_set_do_debugging(1);
+                break;
+            default:
+                fprintf(stderr,"unknown option %c\n", ch);
+        }
+
+    init_snmp("dtlsapp");
+
+    netsnmp_cert_dump_all();
+
+    return 0;
+}
+
+#endif /* CERT_MAIN */
+
+static netsnmp_cert *_cert_find_fp(const char *fingerprint);
+
+void
+netsnmp_fp_lowercase_and_strip_colon(char *fp)
+{
+    char *pos, *dest=NULL;
+    
+    if(!fp)
+        return;
+
+    /** skip to first : */
+    for (pos = fp; *pos; ++pos ) {
+        if (':' == *pos) {
+            dest = pos;
+            break;
+        }
+        else
+            *pos = isalpha(0xFF & *pos) ? tolower(0xFF & *pos) : *pos;
+    }
+    if (!*pos)
+        return;
+
+    /** copy, skipping any ':' */
+    for (++pos; *pos; ++pos) {
+        if (':' == *pos)
+            continue;
+        *dest++ = isalpha(0xFF & *pos) ? tolower(0xFF & *pos) : *pos;
+    }
+    *dest = *pos; /* nul termination */
+}
+
+netsnmp_cert *
+netsnmp_cert_find(int what, int where, void *hint)
+{
+    netsnmp_cert *result = NULL;
+    int           tmp;
+    char         *fp, *hint_str;
+
+    DEBUGMSGT(("cert:find:params", "looking for %s(%d) in %s(0x%x), hint %lu\n",
+               _mode_str(what), what, _where_str(where), where, (u_long)hint));
+
+    if (NS_CERTKEY_DEFAULT == where) {
+            
+        switch (what) {
+            case NS_CERT_IDENTITY: /* want my ID */
+                tmp = (ptrdiff_t)hint;
+                DEBUGMSGT(("cert:find:params", " hint = %s\n",
+                           tmp ? "server" : "client"));
+                fp =
+                    netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                          tmp ? NETSNMP_DS_LIB_X509_SERVER_PUB :
+                                          NETSNMP_DS_LIB_X509_CLIENT_PUB );
+                if (!fp) {
+                    /* As a special case, use the application type to
+                       determine a file name to pull the default identity
+                       from. */
+                    return netsnmp_cert_find(what, NS_CERTKEY_FILE, netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_APPTYPE));
+                }
+                break;
+            case NS_CERT_REMOTE_PEER:
+                fp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                           NETSNMP_DS_LIB_X509_SERVER_PUB);
+                break;
+            default:
+                DEBUGMSGT(("cert:find:err", "unhandled type %d for %s(%d)\n",
+                           what, _where_str(where), where));
+                return NULL;
+        }
+        if (fp)
+            return netsnmp_cert_find(what, NS_CERTKEY_MULTIPLE, fp);
+        return NULL;
+    } /* where = ds store */
+    else if (NS_CERTKEY_MULTIPLE == where) {
+        /* tries multiple sources of certificates based on ascii lookup keys */
+
+        /* Try a fingerprint match first, which should always be done first */
+        /* (to avoid people naming filenames with conflicting FPs) */
+        result = netsnmp_cert_find(what, NS_CERTKEY_FINGERPRINT, hint);
+        if (!result) {
+            /* Then try a file name lookup */
+            result = netsnmp_cert_find(what, NS_CERTKEY_FILE, hint);
+        }
+    }
+    else if (NS_CERTKEY_FINGERPRINT == where) {
+        DEBUGMSGT(("cert:find:params", " hint = %s\n", (char *)hint));
+        result = _cert_find_fp((char *)hint);
+    }
+    else if (NS_CERTKEY_TARGET_PARAM == where) {
+        if (what != NS_CERT_IDENTITY) {
+            snmp_log(LOG_ERR, "only identity is valid for target params\n");
+            return NULL;
+        }
+        /** hint == target mib data */
+        hint_str = (char *)hint;
+        fp = _find_tlstmParams_fingerprint(hint_str);
+        if (NULL != fp)
+            result = _cert_find_fp(fp);
+
+    }
+    else if (NS_CERTKEY_TARGET_ADDR == where) {
+        
+        /** hint == target mib data */
+        if (what != NS_CERT_REMOTE_PEER) {
+            snmp_log(LOG_ERR, "only peer is valid for target addr\n");
+            return NULL;
+        }
+        /** hint == target mib data */
+        hint_str = (char *)hint;
+        fp = _find_tlstmAddr_fingerprint(hint_str);
+        if (NULL != fp)
+            result = _cert_find_fp(fp);
+
+    }
+    else if (NS_CERTKEY_FILE == where) {
+        /** hint == filename */
+        char               *filename = (char*)hint;
+        netsnmp_void_array *matching;
+
+        DEBUGMSGT(("cert:find:params", " hint = %s\n", (char *)hint));
+        matching = _cert_find_subset_fn( filename, NULL );
+        if (!matching)
+            return NULL;
+        if (1 == matching->size)
+            result = (netsnmp_cert*)matching->array[0];
+        else {
+            DEBUGMSGT(("cert:find:err", "%s matches multiple certs\n",
+                       filename));
+            result = NULL;
+        }
+        free(matching->array);
+        free(matching);
+    } /* where = NS_CERTKEY_FILE */
+    else { /* unknown location */
+        
+        DEBUGMSGT(("cert:find:err", "unhandled location %d for %d\n", where,
+                   what));
+        return NULL;
+    }
+    
+    if (NULL == result)
+        return NULL;
+
+    /** make sure result found can be used for specified type */
+    if (!(result->info.allowed_uses & what)) {
+        DEBUGMSGT(("cert:find:err",
+                   "cert %s / %s not allowed for %s(%d) (uses=%s (%d))\n",
+                   result->info.filename, result->fingerprint, _mode_str(what),
+                   what , _mode_str(result->info.allowed_uses),
+                   result->info.allowed_uses));
+        return NULL;
+    }
+    
+    /** make sure we have the cert data */
+    if (netsnmp_cert_load_x509(result) == CERT_LOAD_ERR)
+        return NULL;
+
+    DEBUGMSGT(("cert:find:found",
+               "using cert %s / %s for %s(%d) (uses=%s (%d))\n",
+               result->info.filename, result->fingerprint, _mode_str(what),
+               what , _mode_str(result->info.allowed_uses),
+               result->info.allowed_uses));
+            
+    return result;
+}
+
+int
+netsnmp_cert_validate(int who, int how, X509 *cert)
+{
+    return -1;
+}
+
+int
+netsnmp_cert_check_vb_fingerprint(const netsnmp_variable_list *var)
+{
+    if (!var)
+        return SNMP_ERR_GENERR;
+
+    if (0 == var->val_len) /* empty allowed in some cases */
+        return SNMP_ERR_NOERROR;
+
+    if (! (0x01 & var->val_len)) { /* odd len */
+        DEBUGMSGT(("cert:varbind:fingerprint",
+                   "expecting odd length for fingerprint\n"));
+        return SNMP_ERR_WRONGLENGTH;
+    }
+
+    if (var->val.string[0] > NS_HASH_MAX) {
+        DEBUGMSGT(("cert:varbind:fingerprint", "hashtype %d > max %d\n",
+                   var->val.string[0], NS_HASH_MAX));
+        return SNMP_ERR_WRONGVALUE;
+    }
+
+    return SNMP_ERR_NOERROR;
+}
+
+/**
+ * break a SnmpTLSFingerprint into an integer hash type + hex string
+ *
+ * @return SNMPERR_SUCCESS : on success
+ * @return SNMPERR_GENERR  : on failure
+ */
+int
+netsnmp_tls_fingerprint_parse(const u_char *binary_fp, int fp_len,
+                              char **fp_str_ptr, u_int *fp_str_len, int realloc,
+                              u_char *hash_type_ptr)
+{
+    int     needed;
+    size_t  fp_str_size;
+
+    netsnmp_require_ptr_LRV( hash_type_ptr, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( fp_str_ptr, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( fp_str_len, SNMPERR_GENERR );
+
+    /*
+     * output string is binary fp length (minus 1 for initial hash type 
+     * char) * 2 for bin to hex conversion, + 1 for null termination.
+     */
+    needed = ((fp_len - 1) * 2) + 1;
+    if (*fp_str_len < needed) {
+        DEBUGMSGT(("tls:fp:parse", "need %d bytes for output\n", needed ));
+        return SNMPERR_GENERR;
+    }
+
+    /*
+     * make sure hash type is in valid range
+     */
+    if ((0 == binary_fp[0]) || (binary_fp[0] > NS_HASH_MAX)) {
+        DEBUGMSGT(("tls:fp:parse", "invalid hash type %d\n",
+                   binary_fp[0]));
+        return SNMPERR_GENERR;
+    }
+
+    /*
+     * netsnmp_binary_to_hex allocate space for string, if needed
+     */
+    fp_str_size = *fp_str_len;
+    *hash_type_ptr = binary_fp[0];
+    netsnmp_binary_to_hex((u_char**)fp_str_ptr, &fp_str_size,
+                          realloc, &binary_fp[1], fp_len - 1);
+    *fp_str_len = fp_str_size;
+    if (0 == *fp_str_len)
+        return SNMPERR_GENERR;
+
+    return SNMPERR_SUCCESS;
+}
+
+/**
+ * combine a hash type and hex fingerprint into a SnmpTLSFingerprint
+ *
+ * On entry, tls_fp_len should point to the size of the tls_fp buffer.
+ * On a successful exit, tls_fp_len will contain the length of the
+ * fingerprint buffer.
+ */
+int
+netsnmp_tls_fingerprint_build(int hash_type, const char *hex_fp,
+                                   u_char **tls_fp, size_t *tls_fp_len,
+                                   int realloc)
+{
+    int     hex_fp_len, rc;
+    size_t  tls_fp_size;
+    size_t  offset;
+
+    netsnmp_require_ptr_LRV( hex_fp, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( tls_fp, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( tls_fp_len, SNMPERR_GENERR );
+
+    hex_fp_len = strlen(hex_fp);
+    if (0 == hex_fp_len) {
+        *tls_fp_len = 0;
+        return SNMPERR_SUCCESS;
+    }
+
+    if ((hash_type <= NS_HASH_NONE) || (hash_type > NS_HASH_MAX)) {
+        DEBUGMSGT(("tls:fp:build", "invalid hash type %d\n", hash_type ));
+        return SNMPERR_GENERR;
+    }
+
+    /*
+     * convert to binary
+     */
+    offset = 1;
+    rc = netsnmp_hex_to_binary(tls_fp, &tls_fp_size, &offset, realloc, hex_fp,
+                               ":");
+    *tls_fp_len = tls_fp_size;
+    if (rc != 1)
+        return SNMPERR_GENERR;
+    *tls_fp_len = offset;
+    (*tls_fp)[0] = hash_type;
+                               
+    return SNMPERR_SUCCESS;
+}
+
+/**
+ * Trusts a given certificate for use in TLS translations.
+ *
+ * @param ctx The SSL context to trust the certificate in
+ * @param thiscert The netsnmp_cert certificate to trust
+ *
+ * @return SNMPERR_SUCCESS : on success
+ * @return SNMPERR_GENERR  : on failure
+ */
+int
+netsnmp_cert_trust(SSL_CTX *ctx, netsnmp_cert *thiscert)
+{
+    X509_STORE     *certstore;
+    X509           *cert;
+    char           *fingerprint;
+
+    /* ensure all needed pieces are present */
+    netsnmp_assert_or_msgreturn(NULL != thiscert, "NULL certificate passed in",
+                                SNMPERR_GENERR);
+    netsnmp_assert_or_msgreturn(NULL != thiscert->info.dir,
+                                "NULL certificate directory name passed in",
+                                SNMPERR_GENERR);
+    netsnmp_assert_or_msgreturn(NULL != thiscert->info.filename,
+                                "NULL certificate filename name passed in",
+                                SNMPERR_GENERR);
+
+    /* get the trusted certificate store and the certificate to load into it */
+    certstore = SSL_CTX_get_cert_store(ctx);
+    netsnmp_assert_or_msgreturn(NULL != certstore,
+                                "failed to get certificate trust store",
+                                SNMPERR_GENERR);
+    cert = netsnmp_ocert_get(thiscert);
+    netsnmp_assert_or_msgreturn(NULL != cert,
+                                "failed to get certificate from netsnmp_cert",
+                                SNMPERR_GENERR);
+
+    /* Put the certificate into the store */
+    fingerprint = netsnmp_openssl_cert_get_fingerprint(cert, -1);
+    DEBUGMSGTL(("cert:trust",
+                "putting trusted cert %p = %s in certstore %p\n", cert,
+                fingerprint, certstore));
+    SNMP_FREE(fingerprint);
+    X509_STORE_add_cert(certstore, cert);
+
+    return SNMPERR_SUCCESS;
+}
+
+/**
+ * Trusts a given certificate's root CA for use in TLS translations.
+ * If no issuer is found the existing certificate will be trusted instead.
+ *
+ * @param ctx The SSL context to trust the certificate in
+ * @param thiscert The netsnmp_cert certificate 
+ *
+ * @return SNMPERR_SUCCESS : on success
+ * @return SNMPERR_GENERR  : on failure
+ */
+int
+netsnmp_cert_trust_ca(SSL_CTX *ctx, netsnmp_cert *thiscert)
+{
+    netsnmp_assert_or_msgreturn(NULL != thiscert, "NULL certificate passed in",
+                                SNMPERR_GENERR);
+
+    /* find the root CA certificate in the chain */
+    DEBUGMSGTL(("cert:trust_ca", "checking roots for %p \n", thiscert));
+    while (thiscert->issuer_cert) {
+        thiscert = thiscert->issuer_cert;
+        DEBUGMSGTL(("cert:trust_ca", "  up one to %p\n", thiscert));
+    }
+
+    /* Add the found top lever certificate to the store */
+    return netsnmp_cert_trust(ctx, thiscert);
+}
+
+netsnmp_container *
+netsnmp_cert_get_trustlist(void)
+{
+    if (!_trusted_certs)
+        _setup_trusted_certs();
+    return _trusted_certs;
+}
+
+static void
+_parse_trustcert(const char *token, char *line)
+{
+    if (!_trusted_certs)
+        _setup_trusted_certs();
+
+    if (!_trusted_certs)
+        return;
+
+    CONTAINER_INSERT(_trusted_certs, strdup(line));
+}
+
+/* ***************************************************************************
+ *
+ * mode text functions
+ *
+ */
+static const char *_mode_str(u_char mode)
+{
+    return _modes[mode];
+}
+
+static const char *_where_str(u_int what)
+{
+    switch (what) {
+        case NS_CERTKEY_DEFAULT: return "DEFAULT";
+        case NS_CERTKEY_FILE: return "FILE";
+        case NS_CERTKEY_FINGERPRINT: return "FINGERPRINT";
+        case NS_CERTKEY_MULTIPLE: return "MULTIPLE";
+        case NS_CERTKEY_CA: return "CA";
+        case NS_CERTKEY_SAN_RFC822: return "SAN_RFC822";
+        case NS_CERTKEY_SAN_DNS: return "SAN_DNS";
+        case NS_CERTKEY_SAN_IPADDR: return "SAN_IPADDR";
+        case NS_CERTKEY_COMMON_NAME: return "COMMON_NAME";
+        case NS_CERTKEY_TARGET_PARAM: return "TARGET_PARAM";
+        case NS_CERTKEY_TARGET_ADDR: return "TARGET_ADDR";
+    }
+
+    return "UNKNOWN";
+}
+
+/* ***************************************************************************
+ *
+ * find functions
+ *
+ */
+static netsnmp_cert *
+_cert_find_fp(const char *fingerprint)
+{
+    netsnmp_cert cert, *result = NULL;
+    char         fp[EVP_MAX_MD_SIZE];
+
+    if (NULL == fingerprint)
+        return NULL;
+
+    strlcpy(fp, fingerprint, sizeof(fp));
+    netsnmp_fp_lowercase_and_strip_colon(fp);
+
+    /** clear search key */
+    memset(&cert, 0x00, sizeof(cert));
+
+    cert.fingerprint = fp;
+
+    result = CONTAINER_FIND(_certs,&cert);
+    return result;
+}
+
+/*
+ * reduce subset by eliminating any filenames that are longer than
+ * the specified file name. e.g. 'snmp' would match 'snmp.key' and
+ * 'snmpd.key'. We only want 'snmp.X', where X is a valid extension.
+ */
+static void
+_reduce_subset(netsnmp_void_array *matching, const char *filename)
+{
+    netsnmp_cert_common *cc;
+    int i = 0, j, newsize, pos;
+
+    if ((NULL == matching) || (NULL == filename))
+        return;
+
+    pos = strlen(filename);
+    newsize = matching->size;
+
+    for( ; i < matching->size; ) {
+        /*
+         * if we've shifted matches down we'll hit a NULL entry before
+         * we hit the end of the array.
+         */
+        if (NULL == matching->array[i])
+            break;
+        /*
+         * skip over valid matches. Note that we do not want to use
+         * _type_from_filename.
+         */
+        cc = (netsnmp_cert_common*)matching->array[i];
+        if (('.' == cc->filename[pos]) &&
+            (NS_CERT_TYPE_UNKNOWN != _cert_ext_type(&cc->filename[pos+1]))) {
+            ++i;
+            continue;
+        }
+        /*
+         * shrink array by shifting everything down a spot. Might not be
+         * the most efficient soloution, but this is just happening at
+         * startup and hopefully most certs won't have common prefixes.
+         */
+        --newsize;
+        for ( j=i; j < newsize; ++j )
+            matching->array[j] = matching->array[j+1];
+        matching->array[j] = NULL;
+        /** no ++i; just shifted down, need to look at same position again */
+    }
+    /*
+     * if we shifted, set the new size
+     */
+    if (newsize != matching->size) {
+        DEBUGMSGT(("9:cert:subset:reduce", "shrank from %" NETSNMP_PRIz "d to %d\n",
+                   matching->size, newsize));
+        matching->size = newsize;
+    }
+}
+
+/*
+ * reduce subset by eliminating any filenames that are not under the
+ * specified directory path.
+ */
+static void
+_reduce_subset_dir(netsnmp_void_array *matching, const char *directory)
+{
+    netsnmp_cert_common *cc;
+    int                  i = 0, j, newsize, dir_len;
+    char                 dir[SNMP_MAXPATH], *pos;
+
+    if ((NULL == matching) || (NULL == directory))
+        return;
+
+    newsize = matching->size;
+
+    /*
+     * dir struct should be something like
+     *          /usr/share/snmp/tls/certs
+     *          /usr/share/snmp/tls/private
+     *
+     * so we want to backup up on directory for compares..
+     */
+    strlcpy(dir, directory, sizeof(dir));
+    pos = strrchr(dir, '/');
+    if (NULL == pos) {
+        DEBUGMSGTL(("cert:subset:dir", "no '/' in directory %s\n", directory));
+        return;
+    }
+    *pos = '\0';
+    dir_len = strlen(dir);
+
+    for( ; i < matching->size; ) {
+        /*
+         * if we've shifted matches down we'll hit a NULL entry before
+         * we hit the end of the array.
+         */
+        if (NULL == matching->array[i])
+            break;
+        /*
+         * skip over valid matches. 
+         */
+        cc = (netsnmp_cert_common*)matching->array[i];
+        if (strncmp(dir, cc->dir, dir_len) == 0) {
+            ++i;
+            continue;
+        }
+        /*
+         * shrink array by shifting everything down a spot. Might not be
+         * the most efficient soloution, but this is just happening at
+         * startup and hopefully most certs won't have common prefixes.
+         */
+        --newsize;
+        for ( j=i; j < newsize; ++j )
+            matching->array[j] = matching->array[j+1];
+        matching->array[j] = NULL;
+        /** no ++i; just shifted down, need to look at same position again */
+    }
+    /*
+     * if we shifted, set the new size
+     */
+    if (newsize != matching->size) {
+        DEBUGMSGT(("9:cert:subset:dir", "shrank from %" NETSNMP_PRIz "d to %d\n",
+                   matching->size, newsize));
+        matching->size = newsize;
+    }
+}
+
+static netsnmp_void_array *
+_cert_find_subset_common(const char *filename, netsnmp_container *container)
+{
+    netsnmp_cert_common   search;
+    netsnmp_void_array   *matching;
+
+    netsnmp_assert(filename && container);
+
+    memset(&search, 0x00, sizeof(search));    /* clear search key */
+
+    search.filename = NETSNMP_REMOVE_CONST(char*,filename);
+
+    matching = CONTAINER_GET_SUBSET(container, &search);
+    DEBUGMSGT(("9:cert:subset:found", "%" NETSNMP_PRIz "d matches\n", matching ?
+               matching->size : 0));
+    if (matching && matching->size > 1)
+        _reduce_subset(matching, filename);
+    return matching;
+}
+
+static netsnmp_void_array *
+_cert_find_subset_fn(const char *filename, const char *directory)
+{
+    netsnmp_container    *fn_container;
+    netsnmp_void_array   *matching;
+
+    /** find subcontainer with filename as key */
+    fn_container = SUBCONTAINER_FIND(_certs, "certs_fn");
+    netsnmp_assert(fn_container);
+
+    matching = _cert_find_subset_common(filename, fn_container);
+    if (matching && (matching->size > 1) && directory)
+        _reduce_subset_dir(matching, directory);
+    return matching;
+}
+
+static netsnmp_void_array *
+_cert_find_subset_sn(const char *subject)
+{
+    netsnmp_cert          search;
+    netsnmp_void_array   *matching;
+    netsnmp_container    *sn_container;
+
+    /** find subcontainer with subject as key */
+    sn_container = SUBCONTAINER_FIND(_certs, "certs_sn");
+    netsnmp_assert(sn_container);
+
+    memset(&search, 0x00, sizeof(search));    /* clear search key */
+
+    search.subject = NETSNMP_REMOVE_CONST(char*,subject);
+
+    matching = CONTAINER_GET_SUBSET(sn_container, &search);
+    DEBUGMSGT(("9:cert:subset:found", "%" NETSNMP_PRIz "d matches\n", matching ?
+               matching->size : 0));
+    return matching;
+}
+
+static netsnmp_void_array *
+_key_find_subset(const char *filename)
+{
+    return _cert_find_subset_common(filename, _keys);
+}
+
+/** find all entries matching given fingerprint */
+static netsnmp_void_array *
+_find_subset_fp(netsnmp_container *certs, const char *fp)
+{
+    netsnmp_cert_map    entry;
+    netsnmp_container  *fp_container;
+    netsnmp_void_array *va;
+
+    if ((NULL == certs) || (NULL == fp))
+        return NULL;
+
+    fp_container = SUBCONTAINER_FIND(certs, "cert2sn_fp");
+    netsnmp_assert_or_msgreturn(fp_container, "cert2sn_fp container missing",
+                                NULL);
+
+    memset(&entry, 0x0, sizeof(entry));
+
+    entry.fingerprint = NETSNMP_REMOVE_CONST(char*,fp);
+
+    va = CONTAINER_GET_SUBSET(fp_container, &entry);
+    return va;
+}
+
+#if 0  /* not used yet */
+static netsnmp_key *
+_key_find_fn(const char *filename)
+{
+    netsnmp_key key, *result = NULL;
+
+    netsnmp_assert(NULL != filename);
+
+    memset(&key, 0x00, sizeof(key));    /* clear search key */
+    key.info.filename = NETSNMP_REMOVE_CONST(char*,filename);
+    result = CONTAINER_FIND(_keys,&key);
+    return result;
+}
+#endif
+
+static int
+_time_filter(netsnmp_file *f, struct stat *idx)
+{
+    /** include if mtime or ctime newer than index mtime */
+    if (f && idx && f->stats &&
+        ((f->stats->st_mtime >= idx->st_mtime) ||
+         (f->stats->st_ctime >= idx->st_mtime)))
+        return NETSNMP_DIR_INCLUDE;
+
+    return NETSNMP_DIR_EXCLUDE;
+}
+
+/* ***************************************************************************
+ * ***************************************************************************
+ *
+ *
+ * cert map functions
+ *
+ *
+ * ***************************************************************************
+ * ***************************************************************************/
+#define MAP_CONFIG_TOKEN "certSecName"
+static void _parse_map(const char *token, char *line);
+static void _map_free(netsnmp_cert_map* entry, void *ctx);
+static void _purge_config_entries(void);
+
+static void
+_init_tlstmCertToTSN(void)
+{
+    const char *certSecName_help = MAP_CONFIG_TOKEN " PRIORITY FINGERPRINT "
+        "[--shaNN|md5] <--sn SECNAME | --rfc822 | --dns | --ip | --cn | --any>";
+
+    /*
+     * container for cert to fingerprint mapping, with fingerprint key
+     */
+    _maps = netsnmp_cert_map_container_create(1);
+
+    register_config_handler(NULL, MAP_CONFIG_TOKEN, _parse_map, _purge_config_entries,
+                            certSecName_help);
+}
+
+netsnmp_cert_map *
+netsnmp_cert_map_alloc(char *fingerprint, X509 *ocert)
+{
+    netsnmp_cert_map *cert_map = SNMP_MALLOC_TYPEDEF(netsnmp_cert_map);
+    if (NULL == cert_map) {
+        snmp_log(LOG_ERR, "could not allocate netsnmp_cert_map\n");
+        return NULL;
+    }
+    
+    if (fingerprint) {
+        /** MIB limits to 255 bytes; 2x since we've got ascii */
+        if (strlen(fingerprint) > (SNMPADMINLENGTH * 2)) {
+            snmp_log(LOG_ERR, "fingerprint %s exceeds max length %d\n",
+                     fingerprint, (SNMPADMINLENGTH * 2));
+            free(cert_map);
+            return NULL;
+        }
+        cert_map->fingerprint = strdup(fingerprint);
+    }
+    if (ocert) {
+        cert_map->hashType = netsnmp_openssl_cert_get_hash_type(ocert);
+        cert_map->ocert = ocert;
+    }
+
+    return cert_map;
+}
+
+void
+netsnmp_cert_map_free(netsnmp_cert_map *cert_map)
+{
+    if (NULL == cert_map)
+        return;
+
+    SNMP_FREE(cert_map->fingerprint);
+    SNMP_FREE(cert_map->data);
+    /** x509 cert isn't ours */
+    free(cert_map); /* SNMP_FREE wasted on param */
+}
+
+int
+netsnmp_cert_map_add(netsnmp_cert_map *map)
+{
+    int                rc;
+
+    if (NULL == map)
+        return -1;
+
+    DEBUGMSGTL(("cert:map:add", "pri %d, fp %s\n",
+                map->priority, map->fingerprint));
+
+    if ((rc = CONTAINER_INSERT(_maps, map)) != 0)
+        snmp_log(LOG_ERR, "could not insert new certificate map");
+
+    return rc;
+}
+
+int
+netsnmp_cert_map_remove(netsnmp_cert_map *map)
+{
+    int                rc;
+
+    if (NULL == map)
+        return -1;
+
+    DEBUGMSGTL(("cert:map:remove", "pri %d, fp %s\n",
+                map->priority, map->fingerprint));
+
+    if ((rc = CONTAINER_REMOVE(_maps, map)) != 0)
+        snmp_log(LOG_ERR, "could not remove certificate map");
+
+    return rc;
+}
+
+netsnmp_cert_map *
+netsnmp_cert_map_find(netsnmp_cert_map *map)
+{
+    if (NULL == map)
+        return NULL;
+
+    return CONTAINER_FIND(_maps, map);
+}
+
+static void
+_map_free(netsnmp_cert_map *map, void *context)
+{
+    netsnmp_cert_map_free(map);
+}
+
+static int
+_map_compare(netsnmp_cert_map *lhs, netsnmp_cert_map *rhs)
+{
+    netsnmp_assert((lhs != NULL) && (rhs != NULL));
+
+    if (lhs->priority < rhs->priority)
+        return -1;
+    else if (lhs->priority > rhs->priority)
+        return 1;
+
+    return strcmp(lhs->fingerprint, rhs->fingerprint);
+}
+
+static int
+_map_fp_compare(netsnmp_cert_map *lhs, netsnmp_cert_map *rhs)
+{
+    int rc;
+    netsnmp_assert((lhs != NULL) && (rhs != NULL));
+
+    if ((rc = strcmp(lhs->fingerprint, rhs->fingerprint)) != 0)
+        return rc;
+
+    if (lhs->priority < rhs->priority)
+        return -1;
+    else if (lhs->priority > rhs->priority)
+        return 1;
+
+    return 0;
+}
+
+static int
+_map_fp_ncompare(netsnmp_cert_map *lhs, netsnmp_cert_map *rhs)
+{
+    netsnmp_assert((lhs != NULL) && (rhs != NULL));
+
+    return strncmp(lhs->fingerprint, rhs->fingerprint,
+                   strlen(rhs->fingerprint));
+}
+
+netsnmp_container *
+netsnmp_cert_map_container_create(int with_fp)
+{
+    netsnmp_container *chain_map =
+        netsnmp_container_find("cert_map:stack:binary_array");
+    netsnmp_container *fp;
+
+    if (NULL == chain_map) {
+        snmp_log(LOG_ERR, "could not allocate container for cert_map\n");
+        return NULL;
+    }
+
+    chain_map->container_name = strdup("cert_map");
+    chain_map->free_item = (netsnmp_container_obj_func*)_map_free;
+    chain_map->compare = (netsnmp_container_compare*)_map_compare;
+
+    if (!with_fp)
+        return chain_map;
+
+    /*
+     * add a secondary index to the table container
+     */
+    fp = netsnmp_container_find("cert2sn_fp:binary_array");
+    if (NULL == fp) {
+        snmp_log(LOG_ERR,
+                 "error creating sub-container for tlstmCertToTSNTable\n");
+        CONTAINER_FREE(chain_map);
+        return NULL;
+    }
+    fp->container_name = strdup("cert2sn_fp");
+    fp->compare = (netsnmp_container_compare*)_map_fp_compare;
+    fp->ncompare = (netsnmp_container_compare*)_map_fp_ncompare;
+    netsnmp_container_add_index(chain_map, fp);
+
+    return chain_map;
+}
+
+int
+netsnmp_cert_parse_hash_type(const char *str)
+{
+    int rc = se_find_value_in_slist("cert_hash_alg", str);
+    if (SE_DNE == rc)
+        return NS_HASH_NONE;
+    return rc;
+}
+
+void
+netsnmp_cert_map_container_free(netsnmp_container *c)
+{
+    if (NULL == c)
+        return;
+
+    CONTAINER_FREE_ALL(c, NULL);
+    CONTAINER_FREE(c);
+}
+
+/** clear out config rows
+ * called during reconfig processing (e.g. SIGHUP)
+*/
+static void
+_purge_config_entries(void)
+{
+    /**
+     ** dup container
+     ** iterate looking for NSCM_FROM_CONFIG flag
+     ** delete from original
+     ** delete dup
+     **/
+    netsnmp_iterator   *itr;
+    netsnmp_cert_map   *cert_map;
+    netsnmp_container  *cert_maps = netsnmp_cert_map_container();
+    netsnmp_container  *tmp_maps = NULL;
+
+    if ((NULL == cert_maps) || (CONTAINER_SIZE(cert_maps) == 0))
+        return;
+
+    DEBUGMSGT(("cert:map:reconfig", "removing locally configured rows\n"));
+    
+    /*
+     * duplicate cert_maps and then iterate over the copy. That way we can
+     * add/remove to cert_maps without distrubing the iterator.
+xx
+     */
+    tmp_maps = CONTAINER_DUP(cert_maps, NULL, 0);
+    if (NULL == tmp_maps) {
+        snmp_log(LOG_ERR, "could not duplicate maps for reconfig\n");
+        return;
+    }
+
+    itr = CONTAINER_ITERATOR(tmp_maps);
+    if (NULL == itr) {
+        snmp_log(LOG_ERR, "could not get iterator for reconfig\n");
+        CONTAINER_FREE(tmp_maps);
+        return;
+    }
+    cert_map = ITERATOR_FIRST(itr);
+    for( ; cert_map; cert_map = ITERATOR_NEXT(itr)) {
+
+        if (!(cert_map->flags & NSCM_FROM_CONFIG))
+            continue;
+
+        if (CONTAINER_REMOVE(cert_maps, cert_map) == 0)
+            netsnmp_cert_map_free(cert_map);
+    }
+    ITERATOR_RELEASE(itr);
+    CONTAINER_FREE(tmp_maps);
+
+    return;
+}
+
+/*
+  certSecName PRIORITY [--shaNN|md5] FINGERPRINT <--sn SECNAME | --rfc822 | --dns | --ip | --cn | --any>
+
+  certSecName  100  ff:..11 --sn Wes
+  certSecName  200  ee:..:22 --sn JohnDoe
+  certSecName  300  ee:..:22 --rfc822
+*/
+netsnmp_cert_map *
+netsnmp_certToTSN_parse_common(char **line)
+{
+    netsnmp_cert_map *map;
+    char             *tmp, buf[SNMP_MAXBUF_SMALL];
+    size_t            len;
+    netsnmp_cert     *tmpcert;
+
+    if ((NULL == line) || (NULL == *line))
+        return NULL;
+
+    /** need somewhere to save rows */
+    if (NULL == _maps) {
+        NETSNMP_LOGONCE((LOG_ERR, "no container for certificate mappings\n"));
+        return NULL;
+    }
+
+    DEBUGMSGT(("cert:util:config", "parsing %s\n", *line));
+
+    /* read the priority */
+    len = sizeof(buf);
+    tmp = buf;
+    *line = read_config_read_octet_string(*line, (u_char **)&tmp, &len);
+    tmp[len] = 0;
+    if (!isdigit(0xFF & tmp[0])) {
+        netsnmp_config_error("could not parse priority");
+        return NULL;
+    }
+    map = netsnmp_cert_map_alloc(NULL, NULL);
+    if (NULL == map) {
+        netsnmp_config_error("could not allocate cert map struct");
+        return NULL;
+    }
+    map->flags |= NSCM_FROM_CONFIG;
+    map->priority = atoi(buf);
+
+    /* read the flag or the fingerprint */
+    len = sizeof(buf);
+    tmp = buf;
+    *line = read_config_read_octet_string(*line, (u_char **)&tmp, &len);
+    tmp[len] = 0;
+    if ((buf[0] == '-') && (buf[1] == '-')) {
+        map->hashType = netsnmp_cert_parse_hash_type(&buf[2]);
+        if (NS_HASH_NONE == map->hashType) {
+            netsnmp_config_error("invalid hash type");
+            goto end;
+        }
+
+        /** set up for fingerprint */
+        len = sizeof(buf);
+        tmp = buf;
+        *line = read_config_read_octet_string(*line, (u_char **)&tmp, &len);
+        tmp[len] = 0;
+    }
+    else
+        map->hashType = NS_HASH_SHA1;
+
+    /* look up the fingerprint */
+    tmpcert = netsnmp_cert_find(NS_CERT_REMOTE_PEER, NS_CERTKEY_MULTIPLE, buf);
+    if (NULL == tmpcert) {
+        /* assume it's a raw fingerprint we don't have */
+        netsnmp_fp_lowercase_and_strip_colon(buf);
+        map->fingerprint = strdup(buf);
+    } else {
+        map->fingerprint =
+            netsnmp_openssl_cert_get_fingerprint(tmpcert->ocert, -1);
+    }
+    
+    if (NULL == *line) {
+        netsnmp_config_error("must specify map type");
+        goto end;
+    }
+
+    /* read the mapping type */
+    len = sizeof(buf);
+    tmp = buf;
+    *line = read_config_read_octet_string(*line, (u_char **)&tmp, &len);
+    tmp[len] = 0;
+    if ((buf[0] != '-') || (buf[1] != '-')) {
+        netsnmp_config_error("unexpected fromat: %s\n", *line);
+        goto end;
+    }
+    if (strcmp(&buf[2], "sn") == 0) {
+        if (NULL == *line) {
+            netsnmp_config_error("must specify secName for --sn");
+            goto end;
+        }
+        len = sizeof(buf);
+        tmp = buf;
+        *line = read_config_read_octet_string(*line, (u_char **)&tmp, &len);
+        map->data = strdup(buf);
+        if (map->data)
+            map->mapType = TSNM_tlstmCertSpecified;
+    }
+    else if (strcmp(&buf[2], "cn") == 0)
+        map->mapType = TSNM_tlstmCertCommonName;
+    else if (strcmp(&buf[2], "ip") == 0)
+        map->mapType = TSNM_tlstmCertSANIpAddress;
+    else if (strcmp(&buf[2], "rfc822") == 0)
+        map->mapType = TSNM_tlstmCertSANRFC822Name;
+    else if (strcmp(&buf[2], "dns") == 0)
+        map->mapType = TSNM_tlstmCertSANDNSName;
+    else if (strcmp(&buf[2], "any") == 0)
+        map->mapType = TSNM_tlstmCertSANAny;
+    else
+        netsnmp_config_error("unknown argument %s\n", buf);
+    
+  end:
+    if (0 == map->mapType) {
+        netsnmp_cert_map_free(map);
+        map = NULL;
+    }
+
+    return map;
+}
+
+static void
+_parse_map(const char *token, char *line)
+{
+    netsnmp_cert_map *map = netsnmp_certToTSN_parse_common(&line);
+    if (NULL == map)
+        return;
+
+    if (netsnmp_cert_map_add(map) != 0) {
+        netsnmp_cert_map_free(map);
+        netsnmp_config_error(MAP_CONFIG_TOKEN
+                             ": duplicate priority for certificate map");
+    }
+}
+
+static int
+_fill_cert_map(netsnmp_cert_map *cert_map, netsnmp_cert_map *entry)
+{
+    DEBUGMSGT(("cert:map:secname", "map: pri %d type %d data %s\n",
+               entry->priority, entry->mapType, entry->data));
+    cert_map->priority = entry->priority;
+    cert_map->mapType = entry->mapType;
+    cert_map->hashType = entry->hashType;
+    if (entry->data) {
+        cert_map->data = strdup(entry->data);
+        if (NULL == cert_map->data ) {
+            snmp_log(LOG_ERR, "secname map data dup failed\n");
+            return -1;
+        }
+    }
+
+    return 0;
+}
+
+/*
+ * get secname map(s) for fingerprints
+ */
+int
+netsnmp_cert_get_secname_maps(netsnmp_container *cert_maps)
+{
+    netsnmp_iterator   *itr;
+    netsnmp_cert_map   *cert_map, *new_cert_map, *entry;
+    netsnmp_container  *new_maps = NULL;
+    netsnmp_void_array *results;
+    int                 j;
+
+    if ((NULL == cert_maps) || (CONTAINER_SIZE(cert_maps) == 0))
+        return -1;
+
+    DEBUGMSGT(("cert:map:secname", "looking for matches for %" NETSNMP_PRIz "d fingerprints\n",
+               CONTAINER_SIZE(cert_maps)));
+    
+    /*
+     * duplicate cert_maps and then iterate over the copy. That way we can
+     * add/remove to cert_maps without distrubing the iterator.
+     */
+    new_maps = CONTAINER_DUP(cert_maps, NULL, 0);
+    if (NULL == new_maps) {
+        snmp_log(LOG_ERR, "could not duplicate maps for secname mapping\n");
+        return -1;
+    }
+
+    itr = CONTAINER_ITERATOR(new_maps);
+    if (NULL == itr) {
+        snmp_log(LOG_ERR, "could not get iterator for secname mappings\n");
+        CONTAINER_FREE(new_maps);
+        return -1;
+    }
+    cert_map = ITERATOR_FIRST(itr);
+    for( ; cert_map; cert_map = ITERATOR_NEXT(itr)) {
+
+        results = _find_subset_fp( netsnmp_cert_map_container(),
+                                   cert_map->fingerprint );
+        if (NULL == results) {
+            DEBUGMSGT(("cert:map:secname", "no match for %s\n",
+                       cert_map->fingerprint));
+            if (CONTAINER_REMOVE(cert_maps, cert_map) != 0)
+                goto fail;
+            continue;
+        }
+        DEBUGMSGT(("cert:map:secname", "%" NETSNMP_PRIz "d matches for %s\n",
+                   results->size, cert_map->fingerprint));
+        /*
+         * first entry is a freebie
+         */
+        entry = (netsnmp_cert_map*)results->array[0];
+        if (_fill_cert_map(cert_map, entry) != 0)
+            goto fail;
+
+        /*
+         * additional entries must be allocated/inserted
+         */
+        if (results->size > 1) {
+            for(j=1; j < results->size; ++j) {
+                entry = (netsnmp_cert_map*)results->array[j];
+                new_cert_map = netsnmp_cert_map_alloc(entry->fingerprint,
+                                                      entry->ocert);
+                if (NULL == new_cert_map) {
+                    snmp_log(LOG_ERR,
+                             "could not allocate new cert map entry\n");
+                    goto fail;
+                }
+                if (_fill_cert_map(new_cert_map, entry) != 0) {
+                    netsnmp_cert_map_free(new_cert_map);
+                    goto fail;
+                }
+                new_cert_map->ocert = cert_map->ocert;
+                if (CONTAINER_INSERT(cert_maps,new_cert_map) != 0) {
+                    netsnmp_cert_map_free(new_cert_map);
+                    goto fail;
+                }
+            } /* for results */
+        } /* results size > 1 */
+
+        free(results->array);
+        SNMP_FREE(results);
+    }
+    ITERATOR_RELEASE(itr);
+    CONTAINER_FREE(new_maps);
+
+    DEBUGMSGT(("cert:map:secname",
+               "found %" NETSNMP_PRIz "d matches for fingerprints\n",
+               CONTAINER_SIZE(cert_maps)));
+    return 0;
+
+  fail:
+    if (results) {
+        free(results->array);
+        free(results);
+    }
+    ITERATOR_RELEASE(itr);
+    CONTAINER_FREE(new_maps);
+    return -1;
+}
+
+/* ***************************************************************************
+ * ***************************************************************************
+ *
+ *
+ * snmpTlstmParmsTable data
+ *
+ *
+ * ***************************************************************************
+ * ***************************************************************************/
+#define PARAMS_CONFIG_TOKEN "snmpTlstmParams"
+static void _parse_params(const char *token, char *line);
+
+static void
+_init_tlstmParams(void)
+{
+    const char *params_help = 
+        PARAMS_CONFIG_TOKEN " targetParamsName hashType:fingerPrint";
+    
+    /*
+     * container for snmpTlstmParamsTable data
+     */
+    _tlstmParams = netsnmp_container_find("tlstmParams:string");
+    if (NULL == _tlstmParams)
+        snmp_log(LOG_ERR,
+                 "error creating sub-container for tlstmParamsTable\n");
+    else
+        _tlstmParams->container_name = strdup("tlstmParams");
+
+    register_config_handler(NULL, PARAMS_CONFIG_TOKEN, _parse_params, NULL,
+                                params_help);
+}
+
+netsnmp_container *
+netsnmp_tlstmParams_container(void)
+{
+    return _tlstmParams;
+}
+
+snmpTlstmParams *
+netsnmp_tlstmParams_create(const char *name, int hashType, const char *fp,
+                           int fp_len)
+{
+    snmpTlstmParams *stp = SNMP_MALLOC_TYPEDEF(snmpTlstmParams);
+    if (NULL == stp)
+        return NULL;
+
+    if (name)
+        stp->name = strdup(name);
+    stp->hashType = hashType;
+    if (fp)
+        stp->fingerprint = strdup(fp);
+    DEBUGMSGT(("9:tlstmParams:create", "0x%lx: %s\n", (u_long)stp,
+               stp->name ? stp->name : "null"));
+
+    return stp;
+}
+
+void
+netsnmp_tlstmParams_free(snmpTlstmParams *stp)
+{
+    if (NULL == stp)
+        return;
+
+    DEBUGMSGT(("9:tlstmParams:release", "0x%lx %s\n", (u_long)stp,
+               stp->name ? stp->name : "null"));
+    SNMP_FREE(stp->name);
+    SNMP_FREE(stp->fingerprint);
+    free(stp); /* SNMP_FREE pointless on parameter */
+}
+
+snmpTlstmParams *
+netsnmp_tlstmParams_restore_common(char **line)
+{
+    snmpTlstmParams  *stp;
+    char             *tmp, buf[SNMP_MAXBUF_SMALL];
+    size_t            len;
+
+    if ((NULL == line) || (NULL == *line))
+        return NULL;
+
+    /** need somewhere to save rows */
+    netsnmp_assert(_tlstmParams);
+
+    stp = netsnmp_tlstmParams_create(NULL, 0, NULL, 0);
+    if (NULL == stp)
+        return NULL;
+
+    /** name */
+    len = sizeof(buf);
+    tmp = buf;
+    *line = read_config_read_octet_string(*line, (u_char **)&tmp, &len);
+    tmp[len] = 0;
+    /** xxx-rks: validate snmpadminstring? */
+    if (len)
+        stp->name = strdup(buf);
+
+    /** fingerprint hash type*/
+    len = sizeof(buf);
+    tmp = buf;
+    *line = read_config_read_octet_string(*line, (u_char **)&tmp, &len);
+    tmp[len] = 0;
+    if ((buf[0] == '-') && (buf[1] == '-')) {
+        stp->hashType = netsnmp_cert_parse_hash_type(&buf[2]);
+
+        /** set up for fingerprint */
+        len = sizeof(buf);
+        tmp = buf;
+        *line = read_config_read_octet_string(*line, (u_char **)&tmp, &len);
+        tmp[len] = 0;
+    }
+    else
+        stp->hashType =NS_HASH_SHA1;
+    
+    netsnmp_fp_lowercase_and_strip_colon(buf);
+    stp->fingerprint = strdup(buf);
+    stp->fingerprint_len = strlen(buf);
+
+    DEBUGMSGTL(("tlstmParams:restore:common", "name '%s'\n", stp->name));
+
+    return stp;
+}
+
+int
+netsnmp_tlstmParams_add(snmpTlstmParams *stp)
+{
+    if (NULL == stp)
+        return -1;
+
+    DEBUGMSGTL(("tlstmParams:add", "adding entry 0x%lx %s\n", (u_long)stp,
+                stp->name));
+
+    if (CONTAINER_INSERT(_tlstmParams, stp) != 0) {
+        snmp_log(LOG_ERR, "error inserting tlstmParams %s", stp->name);
+        netsnmp_tlstmParams_free(stp);
+        return -1;
+    }
+
+    return 0;
+}
+
+int
+netsnmp_tlstmParams_remove(snmpTlstmParams *stp)
+{
+    if (NULL == stp)
+        return -1;
+
+    DEBUGMSGTL(("tlstmParams:remove", "removing entry 0x%lx %s\n", (u_long)stp,
+                stp->name));
+
+    if (CONTAINER_REMOVE(_tlstmParams, stp) != 0) {
+        snmp_log(LOG_ERR, "error removing tlstmParams %s", stp->name);
+        return -1;
+    }
+
+    return 0;
+}
+
+snmpTlstmParams *
+netsnmp_tlstmParams_find(snmpTlstmParams *stp)
+{
+    snmpTlstmParams *found;
+
+    if (NULL == stp)
+        return NULL;
+
+    found = CONTAINER_FIND(_tlstmParams, stp);
+    return found;
+}
+
+static void
+_parse_params(const char *token, char *line)
+{
+    snmpTlstmParams *stp = netsnmp_tlstmParams_restore_common(&line);
+
+    if (!stp)
+        return;
+
+    stp->flags = TLSTM_PARAMS_FROM_CONFIG | TLSTM_PARAMS_NONVOLATILE;
+
+    netsnmp_tlstmParams_add(stp);
+}
+
+static char *
+_find_tlstmParams_fingerprint(const char *name)
+{
+    snmpTlstmParams lookup_key, *result;
+
+    if (NULL == name)
+        return NULL;
+
+    lookup_key.name = NETSNMP_REMOVE_CONST(char*, name);
+
+    result = CONTAINER_FIND(_tlstmParams, &lookup_key);
+    if ((NULL == result) || (NULL == result->fingerprint))
+        return NULL;
+
+    return strdup(result->fingerprint);
+}
+/*
+ * END snmpTlstmParmsTable data
+ * ***************************************************************************/
+
+/* ***************************************************************************
+ * ***************************************************************************
+ *
+ *
+ * snmpTlstmAddrTable data
+ *
+ *
+ * ***************************************************************************
+ * ***************************************************************************/
+#define ADDR_CONFIG_TOKEN "snmpTlstmAddr"
+static void _parse_addr(const char *token, char *line);
+
+static void
+_init_tlstmAddr(void)
+{
+    const char *addr_help = 
+        ADDR_CONFIG_TOKEN " targetAddrName hashType:fingerprint serverIdentity";
+    
+    /*
+     * container for snmpTlstmAddrTable data
+     */
+    _tlstmAddr = netsnmp_container_find("tlstmAddr:string");
+    if (NULL == _tlstmAddr)
+        snmp_log(LOG_ERR,
+                 "error creating sub-container for tlstmAddrTable\n");
+    else
+        _tlstmAddr->container_name = strdup("tlstmAddr");
+
+    register_config_handler(NULL, ADDR_CONFIG_TOKEN, _parse_addr, NULL,
+                            addr_help);
+}
+
+netsnmp_container *
+netsnmp_tlstmAddr_container(void)
+{
+    return _tlstmAddr;
+}
+
+/*
+ * create a new row in the table 
+ */
+snmpTlstmAddr *
+netsnmp_tlstmAddr_create(char *targetAddrName)
+{
+    snmpTlstmAddr *entry;
+
+    if (NULL == targetAddrName)
+        return NULL;
+
+    entry = SNMP_MALLOC_TYPEDEF(snmpTlstmAddr);
+    if (!entry)
+        return NULL;
+
+    DEBUGMSGT(("tlstmAddr:entry:create", "entry %p %s\n", entry,
+               targetAddrName ? targetAddrName : "NULL"));
+
+    entry->name = strdup(targetAddrName);
+
+    return entry;
+}
+
+void
+netsnmp_tlstmAddr_free(snmpTlstmAddr *entry)
+{
+    if (!entry)
+        return;
+
+    SNMP_FREE(entry->name);
+    SNMP_FREE(entry->fingerprint);
+    SNMP_FREE(entry->identity);
+    free(entry);
+}
+
+int
+netsnmp_tlstmAddr_restore_common(char **line, char *name, size_t *name_len,
+                                 char *id, size_t *id_len, char *fp,
+                                 size_t *fp_len, u_char *ht)
+{
+    size_t fp_len_save = *fp_len;
+
+    *line = read_config_read_octet_string(*line, (u_char **)&name, name_len);
+    if (NULL == *line) {
+        config_perror("incomplete line");
+        return -1;
+    }
+    name[*name_len] = 0;
+
+    *line = read_config_read_octet_string(*line, (u_char **)&fp, fp_len);
+    if (NULL == *line) {
+        config_perror("incomplete line");
+        return -1;
+    }
+    fp[*fp_len] = 0;
+    if ((fp[0] == '-') && (fp[1] == '-')) {
+        *ht = netsnmp_cert_parse_hash_type(&fp[2]);
+        
+        /** set up for fingerprint */
+        *fp_len = fp_len_save;
+        *line = read_config_read_octet_string(*line, (u_char **)&fp, fp_len);
+        fp[*fp_len] = 0;
+    }
+    else
+        *ht = NS_HASH_SHA1;
+    netsnmp_fp_lowercase_and_strip_colon(fp);
+    *fp_len = strlen(fp);
+    
+    *line = read_config_read_octet_string(*line, (u_char **)&id, id_len);
+    id[*id_len] = 0;
+    
+    if (*ht <= NS_HASH_NONE || *ht > NS_HASH_MAX) {
+        config_perror("invalid algorithm for fingerprint");
+        return -1;
+    }
+
+    if ((0 == *fp_len) && ((0 == *id_len || (*id_len == 1 && id[0] == '*')))) {
+        /*
+         * empty fingerprint not allowed with '*' identity
+         */
+        config_perror("must specify fingerprint for '*' identity");
+        return -1;
+    }
+
+    return 0;
+}
+
+int
+netsnmp_tlstmAddr_add(snmpTlstmAddr *entry)
+{
+    if (!entry)
+        return -1;
+
+    DEBUGMSGTL(("tlstmAddr:add", "adding entry 0x%lx %s %s\n",
+                (u_long)entry, entry->name, entry->fingerprint));
+    if (CONTAINER_INSERT(_tlstmAddr, entry) != 0) {
+        snmp_log(LOG_ERR, "could not insert addr %s", entry->name);
+        netsnmp_tlstmAddr_free(entry);
+        return -1;
+    }
+
+    return 0;
+}
+
+int
+netsnmp_tlstmAddr_remove(snmpTlstmAddr *entry)
+{
+    if (!entry)
+        return -1;
+
+    if (CONTAINER_REMOVE(_tlstmAddr, entry) != 0) {
+        snmp_log(LOG_ERR, "could not remove addr %s", entry->name);
+        return -1;
+    }
+
+    return 0;
+}
+
+static void
+_parse_addr(const char *token, char *line)
+{
+    snmpTlstmAddr *entry;
+    char           name[SNMPADMINLENGTH  + 1], id[SNMPADMINLENGTH  + 1],
+                   fingerprint[SNMPTLSFINGERPRINT_MAX_LEN + 1];
+    size_t         name_len = sizeof(name), id_len = sizeof(id),
+                   fp_len = sizeof(fingerprint);
+    u_char         hashType;
+    int            rc;
+
+    rc = netsnmp_tlstmAddr_restore_common(&line, name, &name_len, id, &id_len,
+                                          fingerprint, &fp_len, &hashType);
+    if (rc < 0)
+        return;
+
+    if (NULL != line)
+        config_pwarn("ignore extra tokens on line");
+
+    entry = netsnmp_tlstmAddr_create(name);
+    if (NULL == entry)
+        return;
+
+    entry->flags |= TLSTM_ADDR_FROM_CONFIG;
+    entry->hashType = hashType;
+    if (fp_len)
+        entry->fingerprint = strdup(fingerprint);
+    if (id_len)
+        entry->identity = strdup(id);
+
+    netsnmp_tlstmAddr_add(entry);
+}
+
+static char *
+_find_tlstmAddr_fingerprint(const char *name)
+{
+    snmpTlstmAddr    lookup_key, *result;
+
+    if (NULL == name)
+        return NULL;
+
+    lookup_key.name = NETSNMP_REMOVE_CONST(char*, name);
+
+    result = CONTAINER_FIND(_tlstmAddr, &lookup_key);
+    if (NULL == result)
+        return NULL;
+
+    return result->fingerprint;
+}
+
+char *
+netsnmp_tlstmAddr_get_serverId(const char *name)
+{
+    snmpTlstmAddr    lookup_key, *result;
+
+    if (NULL == name)
+        return NULL;
+
+    lookup_key.name = NETSNMP_REMOVE_CONST(char*, name);
+
+    result = CONTAINER_FIND(_tlstmAddr, &lookup_key);
+    if (NULL == result)
+        return NULL;
+
+    return result->identity;
+}
+/*
+ * END snmpTlstmAddrTable data
+ * ***************************************************************************/
+
+#else
+int cert_unused;	/* Suppress "empty translation unit" warning */
+#endif /* defined(NETSNMP_USE_OPENSSL) && defined(HAVE_LIBSSL) */
diff --git a/snmplib/check_varbind.c b/snmplib/check_varbind.c
index c66f073..442795c 100644
--- a/snmplib/check_varbind.c
+++ b/snmplib/check_varbind.c
@@ -58,7 +58,7 @@
     if (NULL == var)
         return SNMP_ERR_GENERR;
     
-    if ((*var->val.integer < low) || (*var->val.integer > high)) {
+    if (((size_t)*var->val.integer < low) || ((size_t)*var->val.integer > high)) {
         rc = SNMP_ERR_WRONGVALUE;
     }
 
@@ -214,6 +214,23 @@
 }
 
 int
+netsnmp_check_vb_rowstatus_with_storagetype(const netsnmp_variable_list *var,
+                                            int old_value, int old_storage)
+{
+    register int rc = SNMP_ERR_NOERROR;
+
+    if (NULL == var)
+        return SNMP_ERR_GENERR;
+
+    if ((rc = netsnmp_check_vb_rowstatus_value(var)))
+        return rc;
+
+    return check_rowstatus_with_storagetype_transition(old_value,
+                                                       *var->val.integer,
+                                                       old_storage);
+}
+
+int
 netsnmp_check_vb_storagetype(const netsnmp_variable_list *var, int old_value)
 {
     int rc = SNMP_ERR_NOERROR;
diff --git a/snmplib/closedir.c b/snmplib/closedir.c
new file mode 100644
index 0000000..8c4c50e
--- /dev/null
+++ b/snmplib/closedir.c
@@ -0,0 +1,20 @@
+/*
+ * closedir() replacement for MSVC.
+ */
+
+#define WIN32IO_IS_STDIO
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/types.h>
+#include <net-snmp/library/system.h>
+
+/*
+ * free the memory allocated by opendir 
+ */
+int
+closedir(DIR * dirp)
+{
+    free(dirp->start);
+    free(dirp);
+    return 1;
+}
diff --git a/snmplib/cmu_compat.c b/snmplib/cmu_compat.c
index bd45aba..a8dcf3a 100644
--- a/snmplib/cmu_compat.c
+++ b/snmplib/cmu_compat.c
@@ -88,4 +88,6 @@
 }
 
 
+#else
+int cmu_unused;	/* Suppress "empty translation unit" warning */
 #endif                          /* CMU_COMPATIBLE */
diff --git a/snmplib/container.c b/snmplib/container.c
index b56441e..17dd40f 100644
--- a/snmplib/container.c
+++ b/snmplib/container.c
@@ -62,6 +62,7 @@
      */
     containers = netsnmp_container_get_binary_array();
     containers->compare = netsnmp_compare_cstring;
+    containers->container_name = strdup("container list");
 
     /*
      * register containers
@@ -348,6 +349,20 @@
 }
 
 /*------------------------------------------------------------------
+ * These functions should EXACTLY match the function version in
+ * container.c. If you change one, change them both.
+ */
+netsnmp_container *CONTAINER_DUP(netsnmp_container *x, void *ctx, u_int flags)
+{
+    if (NULL == x->duplicate) {
+        snmp_log(LOG_ERR, "container '%s' does not support duplicate\n",
+                 x->container_name ? x->container_name : "");
+        return NULL;
+    }
+    return x->duplicate(x, ctx, flags);
+}
+
+/*------------------------------------------------------------------
  * These functions should EXACTLY match the inline version in
  * container.h. If you change one, change them both.
  */
@@ -360,17 +375,17 @@
         x = x->next;
     while(x) {
         netsnmp_container *tmp;
-        const char *name;
+        char *name;
         tmp = x->prev;
         name = x->container_name;
-        if (NULL != x->container_name)
-            SNMP_FREE(x->container_name);
+        x->container_name = NULL;
         rc2 = x->cfree(x);
         if (rc2) {
             snmp_log(LOG_ERR,"error on subcontainer '%s' cfree (%d)\n",
                      name ? name : "", rc2);
             rc = rc2;
         }
+        SNMP_FREE(name);
         x = tmp;
     }
     return rc;
@@ -398,6 +413,16 @@
     x->clear(x, f, c);
 }
 
+/*
+ * clear all containers. When clearing the *first* container, and
+ * *only* the first container, call the free_item function for each item.
+ * After calling this function, all containers should be empty.
+ */
+void CONTAINER_FREE_ALL(netsnmp_container *x, void *c)
+{
+    CONTAINER_CLEAR(x, x->free_item, c);
+}
+
 /*------------------------------------------------------------------
  * These functions should EXACTLY match the function version in
  * container.c. If you change one, change them both.
@@ -446,6 +471,26 @@
     c->insert = ins;
     c->remove = rem;
     c->find = fnd;
+    c->free_item = netsnmp_container_simple_free;
+}
+
+int
+netsnmp_container_data_dup(netsnmp_container *dup, netsnmp_container *c)
+{
+    if (!dup || !c)
+        return -1;
+
+    if (c->container_name)
+        dup->container_name = strdup(c->container_name);
+    dup->compare = c->compare;
+    dup->ncompare = c->ncompare;
+    dup->release = c->release;
+    dup->insert_filter = c->insert_filter;
+    dup->free_item = c->free_item;
+    dup->sync = c->sync;
+    dup->flags = c->flags;
+
+    return 0;
 }
 
 /*------------------------------------------------------------------
@@ -543,6 +588,78 @@
     return rc;
 }
 
+typedef struct dummy_long_s {
+    long                      index;
+} dummy_long;
+
+int
+netsnmp_compare_long(const void * lhs, const void * rhs)
+{
+    const dummy_long *lhd = (const dummy_long*)lhs;
+    const dummy_long *rhd = (const dummy_long*)rhs;
+
+    if (lhd->index < rhd->index)
+        return -1;
+    else if (lhd->index > rhd->index)
+        return 1;
+
+    return 0;
+}
+
+typedef struct dummy_ulong_s {
+    u_long                      index;
+} dummy_ulong;
+
+int
+netsnmp_compare_ulong(const void * lhs, const void * rhs)
+{
+    const dummy_ulong *lhd = (const dummy_ulong*)lhs;
+    const dummy_ulong *rhd = (const dummy_ulong*)rhs;
+
+    if (lhd->index < rhd->index)
+        return -1;
+    else if (lhd->index > rhd->index)
+        return 1;
+
+    return 0;
+}
+
+typedef struct dummy_int32_s {
+    int32_t                    index;
+} dummy_int32;
+
+int
+netsnmp_compare_int32(const void * lhs, const void * rhs)
+{
+    const dummy_int32 *lhd = (const dummy_int32*)lhs;
+    const dummy_int32 *rhd = (const dummy_int32*)rhs;
+
+    if (lhd->index < rhd->index)
+        return -1;
+    else if (lhd->index > rhd->index)
+        return 1;
+
+    return 0;
+}
+
+typedef struct dummy_uint32_s {
+    uint32_t                   index;
+} dummy_uint32;
+
+int
+netsnmp_compare_uint32(const void * lhs, const void * rhs)
+{
+    const dummy_uint32 *lhd = (const dummy_uint32*)lhs;
+    const dummy_uint32 *rhd = (const dummy_uint32*)rhs;
+
+    if (lhd->index < rhd->index)
+        return -1;
+    else if (lhd->index > rhd->index)
+        return 1;
+
+    return 0;
+}
+
 /*------------------------------------------------------------------
  * netsnmp_container_simple_free
  *
diff --git a/snmplib/container_binary_array.c b/snmplib/container_binary_array.c
index 7d11c37..a309248 100644
--- a/snmplib/container_binary_array.c
+++ b/snmplib/container_binary_array.c
@@ -36,7 +36,6 @@
 typedef struct binary_array_table_s {
     size_t                     max_size;   /* Size of the current data table */
     size_t                     count;      /* Index of the next free entry */
-    u_int                      flags;      /* flags */
     int                        dirty;
     int                        data_size;  /* Size of an individual entry */
     void                     **data;       /* The table itself */
@@ -66,9 +65,9 @@
     mid = data[(first+last)/2];
     
     do {
-        while ( ((*f)(data[i], mid) < 0) && (i < last))
+        while (i < last && (*f)(data[i], mid) < 0)
             ++i;
-        while ( ((*f)(mid, data[j]) < 0) && (j > first))
+        while (j > first && (*f)(mid, data[j]) < 0)
             --j;
 
         if(i < j) {
@@ -99,7 +98,7 @@
     netsnmp_assert(t!=NULL);
     netsnmp_assert(c->compare!=NULL);
 
-    if (t->flags & CONTAINER_KEY_UNSORTED)
+    if (c->flags & CONTAINER_KEY_UNSORTED)
         return 0;
 
     if (t->dirty) {
@@ -110,6 +109,9 @@
             array_qsort(t->data, 0, t->count - 1, c->compare);
         t->dirty = 0;
 
+        /*
+         * no way to know if it actually changed... just assume so.
+         */
         ++c->sync;
     }
 
@@ -117,6 +119,32 @@
 }
 
 static int
+linear_search(const void *val, netsnmp_container *c)
+{
+    binary_array_table *t = (binary_array_table*)c->container_data;
+    size_t             pos = 0;
+
+    if (!t->count)
+        return -1;
+
+    if (! (c->flags & CONTAINER_KEY_UNSORTED)) {
+        snmp_log(LOG_ERR, "linear search on sorted container %s?!?\n",
+                 c->container_name);
+        return -1;
+    }
+
+    for (; pos < t->count; ++pos) {
+        if (c->compare(t->data[pos], val) == 0)
+            break;
+    }
+
+    if (pos >= t->count)
+        return -1;
+
+    return pos;
+}
+
+static int
 binary_search(const void *val, netsnmp_container *c, int exact)
 {
     binary_array_table *t = (binary_array_table*)c->container_data;
@@ -129,6 +157,15 @@
     if (!len)
         return -1;
 
+    if (c->flags & CONTAINER_KEY_UNSORTED) {
+        if (!exact) {
+            snmp_log(LOG_ERR, "non-exact search on unsorted container %s?!?\n",
+                     c->container_name);
+            return -1;
+        }
+        return linear_search(val, c);
+    }
+
     if (t->dirty)
         Sort_Array(c);
 
@@ -204,11 +241,16 @@
 int
 netsnmp_binary_array_options_set(netsnmp_container *c, int set, u_int flags)
 {
-    binary_array_table *t = (binary_array_table*)c->container_data;
-    if (set)
-        t->flags = flags;
+#define BA_FLAGS (CONTAINER_KEY_ALLOW_DUPLICATES|CONTAINER_KEY_UNSORTED)
+
+    if (set) {
+        if ((flags & BA_FLAGS) == flags)
+            c->flags = flags;
+        else
+            flags = (u_int)-1; /* unsupported flag */
+    }
     else
-        return ((t->flags & flags) == flags);
+        return ((c->flags & flags) == flags);
     return flags;
 }
 
@@ -252,10 +294,46 @@
 }
 
 int
+netsnmp_binary_array_remove_at(netsnmp_container *c, size_t index, void **save)
+{
+    binary_array_table *t = (binary_array_table*)c->container_data;
+
+    if (save)
+        *save = NULL;
+    
+    /*
+     * if there is no data, return NULL;
+     */
+    if (!t->count)
+        return 0;
+
+    /*
+     * find old data and save it, if ptr provided
+     */
+    if (save)
+        *save = t->data[index];
+
+    /*
+     * if entry was last item, just decrement count
+     */
+    --t->count;
+    if (index != t->count) {
+        /*
+         * otherwise, shift array down
+         */
+        memmove(&t->data[index], &t->data[index+1],
+                t->data_size * (t->count - index));
+
+        ++c->sync;
+    }
+
+    return 0;
+}
+int
 netsnmp_binary_array_remove(netsnmp_container *c, const void *key, void **save)
 {
     binary_array_table *t = (binary_array_table*)c->container_data;
-    size_t             index = 0;
+    int                index = 0;
 
     if (save)
         *save = NULL;
@@ -278,24 +356,7 @@
     if ((index = binary_search(key, c, 1)) == -1)
         return -1;
 
-    /*
-     * find old data and save it, if ptr provided
-     */
-    if (save)
-        *save = t->data[index];
-
-    /*
-     * if entry was last item, just decrement count
-     */
-    --t->count;
-    if (index != t->count) {
-        /*
-         * otherwise, shift array down
-         */
-        memmove(&t->data[index], &t->data[index+1], t->data_size * (t->count - index));
-    }
-
-    return 0;
+    return netsnmp_binary_array_remove_at(c, (size_t)index, save);
 }
 
 NETSNMP_STATIC_INLINE void
@@ -336,13 +397,14 @@
 netsnmp_binary_array_insert(netsnmp_container *c, const void *entry)
 {
     binary_array_table *t = (binary_array_table*)c->container_data;
-    int             new_max;
-    void           *new_data;   /* Used for * a) extending the data table
+    int             new_max, new_size, was_dirty = 0;
+    char           *new_data;   /* Used for * a) extending the data table
                                  * * b) the next entry to use */
     /*
      * check for duplicates
      */
-    if (! (t->flags & CONTAINER_KEY_ALLOW_DUPLICATES)) {
+    if (! (c->flags & CONTAINER_KEY_ALLOW_DUPLICATES)) {
+        was_dirty = t->dirty;
         new_data = netsnmp_binary_array_get(c, entry, 1);
         if (NULL != new_data) {
             DEBUGMSGTL(("container","not inserting duplicate key\n"));
@@ -361,13 +423,14 @@
         if (new_max == 0)
             new_max = 10;       /* Start with 10 entries */
 
-        new_data = (void *) calloc(new_max, t->data_size);
+        new_size = new_max * t->data_size;
+        new_data = (char *) realloc(t->data, new_size);
         if (new_data == NULL)
             return -1;
-
-        if (t->data) {
-            memcpy(new_data, t->data, t->max_size * t->data_size);
-            SNMP_FREE(t->data);
+        else {
+            int old_size = t->max_size * t->data_size;
+            int count = new_size - old_size;
+            memset(&new_data[old_size], 0x0, count);
         }
         t->data = (void**)new_data;
         t->max_size = new_max;
@@ -378,6 +441,15 @@
      */
     t->data[t->count++] = NETSNMP_REMOVE_CONST(void *, entry);
     t->dirty = 1;
+
+    /*
+     * if array was dirty before we called get, sync was incremented when
+     * get called SortArray. If we didn't call get or the array wasn't dirty,
+     * bump sync now.
+     */
+    if (!was_dirty)
+        ++c->sync;
+
     return 0;
 }
 
@@ -424,7 +496,7 @@
 void          **
 netsnmp_binary_array_get_subset(netsnmp_container *c, void *key, int *len)
 {
-    binary_array_table *t = (binary_array_table*)c->container_data;
+    binary_array_table *t;
     void          **subset;
     int             start, end;
     size_t          i;
@@ -432,7 +504,12 @@
     /*
      * if there is no data, return NULL;
      */
-    if (!t->count || !key)
+    if (!c || !key)
+        return NULL;
+
+    t = (binary_array_table*)c->container_data;
+    netsnmp_assert(c->ncompare);
+    if (!t->count | !c->ncompare)
         return NULL;
 
     /*
@@ -542,6 +619,61 @@
     return va;
 }
 
+static int _ba_options(netsnmp_container *c, int set, u_int flags)
+{
+    return netsnmp_binary_array_options_set(c, set, flags);
+}
+
+static netsnmp_container *
+_ba_duplicate(netsnmp_container *c, void *ctx, u_int flags)
+{
+    netsnmp_container *dup;
+    binary_array_table *dupt, *t;
+
+    if (flags) {
+        snmp_log(LOG_ERR, "binary arry duplicate does not supprt flags yet\n");
+        return NULL;
+    }
+
+    dup = netsnmp_container_get_binary_array();
+    if (NULL == dup) {
+        snmp_log(LOG_ERR," no memory for binary array duplicate\n");
+        return NULL;
+    }
+    /*
+     * deal with container stuff
+     */
+    if (netsnmp_container_data_dup(dup, c) != 0) {
+        netsnmp_binary_array_release(dup);
+        return NULL;
+    }
+
+    /*
+     * deal with data
+     */
+    dupt = (binary_array_table*)dup->container_data;
+    t = (binary_array_table*)c->container_data;
+
+    dupt->max_size = t->max_size;
+    dupt->count = t->count;
+    dupt->dirty = t->dirty;
+    dupt->data_size = t->data_size;
+
+    /*
+     * shallow copy
+     */
+    dupt->data = (void**) calloc(dupt->max_size, dupt->data_size);
+    if (NULL == dupt->data) {
+        snmp_log(LOG_ERR, "no memory for binary array duplicate\n");
+        netsnmp_binary_array_release(dup);
+        return NULL;
+    }
+
+    memcpy(dupt->data, t->data, dupt->max_size * dupt->data_size);
+    
+    return dup;
+}
+
 netsnmp_container *
 netsnmp_container_get_binary_array(void)
 {
@@ -555,18 +687,19 @@
     }
 
     c->container_data = netsnmp_binary_array_initialize();
-        
-    c->get_size = _ba_size;
-    c->init = NULL;
-    c->cfree = _ba_free;
-    c->insert = _ba_insert;
-    c->remove = _ba_remove;
-    c->find = _ba_find;
+
+    /*
+     * NOTE: CHANGES HERE MUST BE DUPLICATED IN duplicate AS WELL!!
+     */
+    netsnmp_init_container(c, NULL, _ba_free, _ba_size, NULL, _ba_insert,
+                           _ba_remove, _ba_find);
     c->find_next = _ba_find_next;
     c->get_subset = _ba_get_subset;
     c->get_iterator = _ba_iterator_get;
     c->for_each = _ba_for_each;
     c->clear = _ba_clear;
+    c->options = _ba_options;
+    c->duplicate = _ba_duplicate;
         
     return c;
 }
@@ -679,6 +812,25 @@
 }
 
 static int
+_ba_iterator_remove(binary_array_iterator *it)
+{
+    binary_array_table* t = _ba_it2cont(it);
+    if(NULL == t) {
+        netsnmp_assert(NULL != t);
+        return -1;
+    }
+
+    /*
+     * since this iterator was used for the remove, keep it in sync with
+     * the container. Also, back up one so that next will be the position
+     * that was just removed.
+     */
+    ++it->base.sync;
+    return netsnmp_binary_array_remove_at(it->base.container, it->pos--, NULL);
+
+}
+
+static int
 _ba_iterator_reset(binary_array_iterator *it)
 {
     binary_array_table* t = _ba_it2cont(it);
@@ -727,6 +879,7 @@
     it->base.next = (netsnmp_iterator_rtn*)_ba_iterator_next;
     it->base.curr = (netsnmp_iterator_rtn*)_ba_iterator_curr;
     it->base.last = (netsnmp_iterator_rtn*)_ba_iterator_last;
+    it->base.remove = (netsnmp_iterator_rc*)_ba_iterator_remove;
     it->base.reset = (netsnmp_iterator_rc*)_ba_iterator_reset;
     it->base.release = (netsnmp_iterator_rc*)_ba_iterator_release;
 
diff --git a/snmplib/container_list_ssll.c b/snmplib/container_list_ssll.c
index 14a6a72..65e3968 100644
--- a/snmplib/container_list_ssll.c
+++ b/snmplib/container_list_ssll.c
@@ -310,13 +310,9 @@
         return NULL;
     }
 
-    sl->c.cfree = _ssll_free;
-        
-    sl->c.get_size = _ssll_size;
-    sl->c.init = NULL;
-    sl->c.insert = _ssll_insert;
-    sl->c.remove = _ssll_remove;
-    sl->c.find = _ssll_find;
+    netsnmp_init_container((netsnmp_container *)sl, NULL, _ssll_free,
+                           _ssll_size, NULL, _ssll_insert, _ssll_remove,
+                           _ssll_find);
     sl->c.find_next = _ssll_find_next;
     sl->c.get_subset = NULL;
     sl->c.get_iterator =_ssll_iterator_get;
diff --git a/snmplib/data_list.c b/snmplib/data_list.c
index 8188598..c379fa6 100644
--- a/snmplib/data_list.c
+++ b/snmplib/data_list.c
@@ -62,8 +62,8 @@
         return NULL;
     node->name = strdup(name);
     if (!node->name) {
-        free(node);
-        return NULL;
+      free(node);
+      return NULL;
     }
     node->data = data;
     node->free_func = beer;
@@ -83,12 +83,13 @@
     netsnmp_assert(NULL != node);
     netsnmp_assert(NULL != node->name);
 
+    DEBUGMSGTL(("data_list","adding key '%s'\n", node->name));
+
     if (!*head) {
         *head = node;
         return;
     }
 
-    DEBUGMSGTL(("data_list","adding key '%s'\n", node->name));
     if (0 == strcmp(node->name, (*head)->name)) {
         netsnmp_assert(!"list key == is unique"); /* always fail */
         snmp_log(LOG_WARNING,
diff --git a/snmplib/default_store.c b/snmplib/default_store.c
index 9bfd228..83f4e34 100644
--- a/snmplib/default_store.c
+++ b/snmplib/default_store.c
@@ -141,9 +141,6 @@
 #else
 #include <strings.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #if HAVE_UNISTD_H
 #include <unistd.h>
diff --git a/snmplib/dir_utils.c b/snmplib/dir_utils.c
index d203c92..a97505d 100644
--- a/snmplib/dir_utils.c
+++ b/snmplib/dir_utils.c
@@ -44,22 +44,36 @@
 
 #include <net-snmp/types.h>
 #include <net-snmp/library/container.h>
-#include <net-snmp/library/container_binary_array.h>
+#include <net-snmp/library/file_utils.h>
 #include <net-snmp/library/dir_utils.h>
 
+static int
+_insert_nsfile( netsnmp_container *c, const char *name, struct stat *stats,
+                u_int flags);
+
+/*
+ * read file names in a directory, with an optional filter
+ */
 netsnmp_container *
-netsnmp_directory_container_read(netsnmp_container *user_container,
-                                 const char *dirname, u_int flags)
+netsnmp_directory_container_read_some(netsnmp_container *user_container,
+                                      const char *dirname,
+                                      netsnmp_directory_filter *filter,
+                                      void *filter_ctx, u_int flags)
 {
     DIR               *dir;
     netsnmp_container *container = user_container;
     struct dirent     *file;
-    char               path[PATH_MAX];
-    u_char             dirname_len;
+    char               path[SNMP_MAXPATH];
+    size_t             dirname_len;
     int                rc;
-#if !(defined(HAVE_STRUCT_DIRENT_D_TYPE) && defined(DT_DIR)) && defined(S_ISDIR)
     struct stat        statbuf;
-#endif
+    netsnmp_file       ns_file_tmp;
+
+    if ((flags & NETSNMP_DIR_RELATIVE_PATH) && (flags & NETSNMP_DIR_RECURSE)) {
+        DEBUGMSGTL(("directory:container",
+                    "no support for relative path with recursion\n"));
+        return NULL;
+    }
 
     DEBUGMSGTL(("directory:container", "reading %s\n", dirname));
 
@@ -67,29 +81,50 @@
      * create the container, if needed
      */
     if (NULL == container) {
-        container = netsnmp_container_find("directory_container:cstring");
+        if (flags & NETSNMP_DIR_NSFILE) {
+            container = netsnmp_container_find("nsfile_directory_container:"
+                                               "binary_array");
+            if (container) {
+                container->compare = (netsnmp_container_compare*)
+                    netsnmp_file_compare_name;
+                container->free_item = (netsnmp_container_obj_func *)
+                    netsnmp_file_container_free;
+            }
+        }
+        else
+            container = netsnmp_container_find("directory_container:cstring");
         if (NULL == container)
             return NULL;
-        container->container_name = strdup("directory container");
-        netsnmp_binary_array_options_set(container, 1, CONTAINER_KEY_UNSORTED);
+        container->container_name = strdup(dirname);
+        /** default to unsorted */
+        if (! (flags & NETSNMP_DIR_SORTED))
+            CONTAINER_SET_OPTIONS(container, CONTAINER_KEY_UNSORTED, rc);
     }
 
     dir = opendir(dirname);
     if (NULL == dir) {
         DEBUGMSGTL(("directory:container", "  not a dir\n"));
+        if (container != user_container)
+            netsnmp_directory_container_free(container);
         return NULL;
     }
 
     /** copy dirname into path */
-    dirname_len = strlen(dirname);
-    strlcpy(path, dirname, sizeof(path));
-    if ((dirname_len + 2) > sizeof(path)) {
-        /** not enough room for files */
-        closedir(dir);
-        return NULL;
+    if (flags & NETSNMP_DIR_RELATIVE_PATH)
+        dirname_len = 0;
+    else {
+        dirname_len = strlen(dirname);
+        strlcpy(path, dirname, sizeof(path));
+        if ((dirname_len + 2) > sizeof(path)) {
+            /** not enough room for files */
+            closedir(dir);
+            if (container != user_container)
+                netsnmp_directory_container_free(container);
+            return NULL;
+        }
+        path[dirname_len] = '/';
+        path[++dirname_len] = '\0';
     }
-    path[dirname_len] = '/';
-    path[++dirname_len] = '\0';
 
     /** iterate over dir */
     while ((file = readdir(dir))) {
@@ -104,22 +139,48 @@
             continue;
 
         strlcpy(&path[dirname_len], file->d_name, sizeof(path) - dirname_len);
-        DEBUGMSGTL(("9:directory:container", "  found %s\n", path));
+        if (NULL != filter) {
+            if (flags & NETSNMP_DIR_NSFILE_STATS) {
+                /** use local vars for now */
+                if (stat(path, &statbuf) != 0) {
+                    snmp_log(LOG_ERR, "could not stat %s\n", file->d_name);
+                    break;
+                }
+                ns_file_tmp.stats = &statbuf;
+                ns_file_tmp.name = path;
+                rc = (*filter)(&ns_file_tmp, filter_ctx);
+            }
+            else
+                rc = (*filter)(path, filter_ctx);
+            if (0 == rc) {
+                DEBUGMSGTL(("directory:container:filtered", "%s\n",
+                            file->d_name));
+                continue;
+            }
+        }
+
+        DEBUGMSGTL(("directory:container:found", "%s\n", path));
+        if ((flags & NETSNMP_DIR_RECURSE) 
 #if defined(HAVE_STRUCT_DIRENT_D_TYPE) && defined(DT_DIR)
-        if ((file->d_type == DT_DIR) && (flags & NETSNMP_DIR_RECURSE)) {
+            && (file->d_type == DT_DIR)
 #elif defined(S_ISDIR)
-        if ((flags & NETSNMP_DIR_RECURSE) && (stat(file->d_name, &statbuf) != 0) && (S_ISDIR(statbuf.st_mode))) {
-#else
-        if (flags & NETSNMP_DIR_RECURSE) {
+            && (stat(file->d_name, &statbuf) != 0) && (S_ISDIR(statbuf.st_mode))
 #endif
+            ) {
             /** xxx add the dir as well? not for now.. maybe another flag? */
             netsnmp_directory_container_read(container, path, flags);
         }
+        else if (flags & NETSNMP_DIR_NSFILE) {
+            if (_insert_nsfile( container, file->d_name,
+                                filter ? &statbuf : NULL, flags ) < 0)
+                break;
+        }
         else {
             char *dup = strdup(path);
             if (NULL == dup) {
-               snmp_log(LOG_ERR, "strdup failed\n");
-               break;
+                snmp_log(LOG_ERR,
+                         "strdup failed while building directory container\n");
+                break;
             }
             rc = CONTAINER_INSERT(container, dup);
             if (-1 == rc ) {
@@ -127,12 +188,16 @@
                 free(dup);
             }
         }
-    }
+    } /* while */
 
     closedir(dir);
 
-    DEBUGMSGTL(("directory:container", "  container now has %d items\n",
-                (int)CONTAINER_SIZE(container)));
+    rc = CONTAINER_SIZE(container);
+    DEBUGMSGTL(("directory:container", "  container now has %d items\n", rc));
+    if ((0 == rc) && !(flags & NETSNMP_DIR_EMPTY_OK)) {
+        netsnmp_directory_container_free(container);
+        return NULL;
+    }
     
     return container;
 }
@@ -140,6 +205,41 @@
 void
 netsnmp_directory_container_free(netsnmp_container *container)
 {
-    CONTAINER_CLEAR(container, netsnmp_container_simple_free, NULL);
+    CONTAINER_FREE_ALL(container, NULL);
     CONTAINER_FREE(container);
 }
+
+static int
+_insert_nsfile( netsnmp_container *c, const char *name, struct stat *stats,
+                u_int flags)
+{
+    int           rc;
+    netsnmp_file *ns_file = netsnmp_file_new(name, 0, 0, 0);
+    if (NULL == ns_file) {
+        snmp_log(LOG_ERR, "error creating ns_file\n");
+        return -1;
+    }
+
+    if (flags & NETSNMP_DIR_NSFILE_STATS) {
+        ns_file->stats = (struct stat*)calloc(1,sizeof(*(ns_file->stats)));
+        if (NULL == ns_file->stats) {
+            snmp_log(LOG_ERR, "error creating stats for ns_file\n");
+            netsnmp_file_release(ns_file);
+            return -1;
+        }
+    
+        /** use stats from earlier if we have them */
+        if (stats)
+            memcpy(ns_file->stats, stats, sizeof(*stats));
+        else
+            stat(ns_file->name, ns_file->stats);
+    }
+
+    rc = CONTAINER_INSERT(c, ns_file);
+    if (-1 == rc ) {
+        DEBUGMSGTL(("directory:container", "  err adding %s\n", name));
+        netsnmp_file_release(ns_file);
+    }
+
+    return 0;
+}
diff --git a/snmplib/fd_event_manager.c b/snmplib/fd_event_manager.c
index ae99c04..20454f7 100644
--- a/snmplib/fd_event_manager.c
+++ b/snmplib/fd_event_manager.c
@@ -182,7 +182,7 @@
   {
     snmp_log(LOG_ERR,
 	     "Use netsnmp_external_event_info2() for processing"
-	     " large file descriptors");
+	     " large file descriptors\n");
   }
 
   netsnmp_large_fd_set_cleanup(&lreadfds);
@@ -241,7 +241,7 @@
   {
     snmp_log(LOG_ERR,
 	     "Use netsnmp_dispatch_external_events2() for processing"
-	     " large file descriptors");
+	     " large file descriptors\n");
   }
 
   netsnmp_large_fd_set_cleanup(&lreadfds);
diff --git a/snmplib/file_utils.c b/snmplib/file_utils.c
index 9f19b36..889d552 100644
--- a/snmplib/file_utils.c
+++ b/snmplib/file_utils.c
@@ -77,6 +77,31 @@
 }
 
 /**
+ * open file and get stats
+ */
+netsnmp_file *
+netsnmp_file_new(const char *name, int fs_flags, mode_t mode, u_int ns_flags)
+{
+    netsnmp_file *filei = netsnmp_file_fill(NULL, name, fs_flags, mode, 0);
+    if (NULL == filei)
+        return NULL;
+
+    if (ns_flags & NETSNMP_FILE_STATS) {
+        filei->stats = (struct stat*)calloc(1, sizeof(*(filei->stats)));
+        if (NULL == filei->stats)
+            DEBUGMSGT(("nsfile:new", "no memory for stats\n"));
+        else if (stat(name, filei->stats) != 0)
+            DEBUGMSGT(("nsfile:new", "error getting stats\n"));
+    }
+
+    if (ns_flags & NETSNMP_FILE_AUTO_OPEN)
+        netsnmp_file_open(filei);
+
+    return filei;
+}
+
+        
+/**
  * fill core members in a netsnmp_file structure
  *
  * @param filei      structure to fill; if NULL, a new one will be allocated
@@ -100,6 +125,7 @@
 
     filei->fs_flags = fs_flags;
     filei->ns_flags = ns_flags;
+    filei->mode = mode;
 
     return filei;
 }
@@ -126,6 +152,9 @@
     if (NULL != filei->extras)
         netsnmp_free_all_list_data(filei->extras);
 
+    if (NULL != filei->stats)
+        free(filei->stats);
+
     SNMP_FREE(filei);
 
     return rc;
@@ -208,3 +237,17 @@
     return rc;
 }
 
+void
+netsnmp_file_container_free(netsnmp_file *file, void *context)
+{
+    netsnmp_file_release(file);
+}
+
+int
+netsnmp_file_compare_name(netsnmp_file *lhs, netsnmp_file *rhs)
+{
+    netsnmp_assert((NULL != lhs) && (NULL != rhs));
+    netsnmp_assert((NULL != lhs->name) && (NULL != rhs->name));
+
+    return strcmp(lhs->name, rhs->name);
+}
diff --git a/snmplib/getopt.c b/snmplib/getopt.c
index d2b203e..1e8e9c3 100644
--- a/snmplib/getopt.c
+++ b/snmplib/getopt.c
@@ -35,10 +35,14 @@
     "$Id$";
 #endif                          /* LIBC_SCCS and not lint */
 
+#include <net-snmp/net-snmp-config.h>
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
+#include <net-snmp/library/getopt.h>
+
 #ifdef _BSD
 extern char    *__progname;
 #else
diff --git a/snmplib/gettimeofday.c b/snmplib/gettimeofday.c
new file mode 100644
index 0000000..3c75d3a
--- /dev/null
+++ b/snmplib/gettimeofday.c
@@ -0,0 +1,33 @@
+/*
+ * gettimeofday() replacement for MSVC.
+ */
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/types.h>
+
+#ifdef HAVE_SYS_TIMEB_H
+# include <sys/timeb.h> /* _ftime() */
+#endif
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+
+#include <net-snmp/library/system.h>
+
+int
+gettimeofday(struct timeval *tv, struct timezone *tz)
+{
+    struct _timeb   timebuffer;
+
+    _ftime(&timebuffer);
+    tv->tv_usec = timebuffer.millitm * 1000;
+    tv->tv_sec = timebuffer.time;
+    return (0);
+}
diff --git a/snmplib/inet_ntop.c b/snmplib/inet_ntop.c
index c26afc4..05bafbe 100644
--- a/snmplib/inet_ntop.c
+++ b/snmplib/inet_ntop.c
@@ -19,16 +19,10 @@
 
 #include <net-snmp/net-snmp-config.h>
 
-#ifndef HAVE_INET_NTOP
-
 #if HAVE_ARPA_NAMESER_H
 #include <arpa/nameser.h>
 #endif
 
-#if defined(HAVE_WINSOCK_H)
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#endif
 #include <errno.h>
 #include <stdio.h>
 #if HAVE_STRING_H
@@ -39,6 +33,8 @@
 
 #include <net-snmp/types.h>
 
+#include "inet_ntop.h"
+
 #ifndef EAFNOSUPPORT
 #define EAFNOSUPPORT            WSAEAFNOSUPPORT
 #endif
@@ -76,7 +72,7 @@
  *	Paul Vixie, 1996.
  */
 const char *
-inet_ntop(int af, const void *src, char *dst, size_t size)
+netsnmp_inet_ntop(int af, const void *src, char *dst, size_t size)
 {
 
 	switch (af) {
@@ -212,5 +208,3 @@
 	return (dst);
 }
 #endif
-
-#endif /* HAVE_INET_NTOP */
diff --git a/snmplib/inet_ntop.h b/snmplib/inet_ntop.h
new file mode 100644
index 0000000..011d8a6
--- /dev/null
+++ b/snmplib/inet_ntop.h
@@ -0,0 +1,12 @@
+#ifndef _INET_NTOP_H
+#define _INET_NTOP_H
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/types.h>
+
+#ifndef HAVE_INET_NTOP
+const char     *netsnmp_inet_ntop(int af, const void *src, char *dst, size_t size);
+#define inet_ntop netsnmp_inet_ntop
+#endif /*HAVE_INET_NTOP */
+
+#endif /*_INET_NTOP_H*/
diff --git a/snmplib/inet_pton.c b/snmplib/inet_pton.c
index 8b5c71e..47fe3ec 100644
--- a/snmplib/inet_pton.c
+++ b/snmplib/inet_pton.c
@@ -19,18 +19,12 @@
 
 #include <net-snmp/net-snmp-config.h>
 
-#ifndef HAVE_INET_PTON
-
 #include <ctype.h>
 
 #if HAVE_ARPA_NAMESER_H
 #include <arpa/nameser.h>
 #endif
 
-#if defined(HAVE_WINSOCK_H)
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#endif
 #include <errno.h>
 #include <stdio.h>
 #if HAVE_STRING_H
@@ -40,6 +34,7 @@
 #endif
 
 #include <net-snmp/types.h>
+#include "inet_pton.h"
 
 #ifndef EAFNOSUPPORT
 #define EAFNOSUPPORT            WSAEAFNOSUPPORT
@@ -79,7 +74,7 @@
  *	Paul Vixie, 1996.
  */
 int
-inet_pton(int af, const char *src, void *dst)
+netsnmp_inet_pton(int af, const char *src, void *dst)
 {
 
 	switch (af) {
@@ -314,5 +309,3 @@
 	return (1);
 }
 #endif
-
-#endif /* HAVE_INET_PTON */
diff --git a/snmplib/inet_pton.h b/snmplib/inet_pton.h
new file mode 100644
index 0000000..7696671
--- /dev/null
+++ b/snmplib/inet_pton.h
@@ -0,0 +1,12 @@
+#ifndef _INET_PTON_H
+#define _INET_PTON_H
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/types.h>
+
+#ifndef HAVE_INET_PTON
+int             netsnmp_inet_pton(int af, const char *src, void *dst);
+#define inet_pton netsnmp_inet_pton
+#endif /*HAVE_INET_PTON */
+
+#endif /*_INET_PTON_H*/
diff --git a/snmplib/int64.c b/snmplib/int64.c
index a8178f1..2d86959 100644
--- a/snmplib/int64.c
+++ b/snmplib/int64.c
@@ -16,9 +16,6 @@
 #else
 #include <strings.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #include <net-snmp/types.h>
 #include <net-snmp/library/int64.h>
@@ -442,7 +439,7 @@
         str++;
     }
 
-    while (*str && isdigit(*str)) {
+    while (*str && isdigit((unsigned char)(*str))) {
         ok = 1;
         u = *str - '0';
         multBy10(*i64, &i64p);
diff --git a/snmplib/keytools.c b/snmplib/keytools.c
index 77030bd..c1dbcd6 100644
--- a/snmplib/keytools.c
+++ b/snmplib/keytools.c
@@ -17,9 +17,6 @@
 
 #include <stdio.h>
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #ifdef HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
@@ -51,6 +48,10 @@
 #include <net-snmp/library/md5.h>
 #endif
 #endif
+#ifdef NETSNMP_USE_INTERNAL_CRYPTO
+#include <net-snmp/library/openssl_md5.h>
+#include <net-snmp/library/openssl_sha.h>
+#endif
 
 #ifdef NETSNMP_USE_PKCS11
 #include <security/cryptoki.h>
@@ -96,11 +97,15 @@
  */
 int
 generate_Ku(const oid * hashtype, u_int hashtype_len,
-            u_char * P, size_t pplen, u_char * Ku, size_t * kulen)
-#if defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_OPENSSL)
+            const u_char * P, size_t pplen, u_char * Ku, size_t * kulen)
+#if defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
 {
     int             rval = SNMPERR_SUCCESS,
         nbytes = USM_LENGTH_EXPANDED_PASSPHRASE;
+#if !defined(NETSNMP_USE_OPENSSL) && \
+    defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
+    int             ret;
+#endif
 
     u_int           i, pindex = 0;
 
@@ -108,7 +113,12 @@
 
 #ifdef NETSNMP_USE_OPENSSL
     EVP_MD_CTX     *ctx = NULL;
-    unsigned int    tmp_len;
+#elif NETSNMP_USE_INTERNAL_CRYPTO
+    SHA_CTX csha1;
+    MD5_CTX cmd5;
+    char    cryptotype = 0;
+#define TYPE_MD5  1
+#define TYPE_SHA1 2
 #else
     MDstruct        MD;
 #endif
@@ -151,6 +161,21 @@
                 return SNMPERR_GENERR;
         } else
         QUITFUN(SNMPERR_GENERR, generate_Ku_quit);
+#elif NETSNMP_USE_INTERNAL_CRYPTO
+#ifndef NETSNMP_DISABLE_MD5
+    if (ISTRANSFORM(hashtype, HMACMD5Auth)) {
+        if (!MD5_Init(&cmd5))
+            return SNMPERR_GENERR;
+        cryptotype = TYPE_MD5;
+    } else
+#endif
+           if (ISTRANSFORM(hashtype, HMACSHA1Auth)) {
+        if (!SHA1_Init(&csha1))
+            return SNMPERR_GENERR;
+        cryptotype = TYPE_SHA1;
+    } else {
+        return (SNMPERR_GENERR);
+    }
 #else
     MDbegin(&MD);
 #endif                          /* NETSNMP_USE_OPENSSL */
@@ -162,29 +187,54 @@
         }
 #ifdef NETSNMP_USE_OPENSSL
         EVP_DigestUpdate(ctx, buf, USM_LENGTH_KU_HASHBLOCK);
+#elif NETSNMP_USE_INTERNAL_CRYPTO
+        if (TYPE_SHA1 == cryptotype) {
+            rval = !SHA1_Update(&csha1, buf, USM_LENGTH_KU_HASHBLOCK);
+        } else {
+            rval = !MD5_Update(&cmd5, buf, USM_LENGTH_KU_HASHBLOCK);
+        }
+        if (rval != 0) {
+            return SNMPERR_USM_ENCRYPTIONERROR;
+        }
 #elif NETSNMP_USE_INTERNAL_MD5
         if (MDupdate(&MD, buf, USM_LENGTH_KU_HASHBLOCK * 8)) {
             rval = SNMPERR_USM_ENCRYPTIONERROR;
             goto md5_fin;
         }
 #endif                          /* NETSNMP_USE_OPENSSL */
-
         nbytes -= USM_LENGTH_KU_HASHBLOCK;
     }
 
 #ifdef NETSNMP_USE_OPENSSL
+    {
+    unsigned int    tmp_len;
+
     tmp_len = *kulen;
     EVP_DigestFinal(ctx, (unsigned char *) Ku, &tmp_len);
     *kulen = tmp_len;
     /*
      * what about free() 
      */
+    }
+#elif NETSNMP_USE_INTERNAL_CRYPTO
+    if (TYPE_SHA1 == cryptotype) {
+        SHA1_Final(Ku, &csha1);
+    } else {
+        MD5_Final(Ku, &cmd5);
+    }
+    ret = sc_get_properlength(hashtype, hashtype_len);
+    if (ret == SNMPERR_GENERR)
+        return SNMPERR_GENERR;
+    *kulen = ret;
 #elif NETSNMP_USE_INTERNAL_MD5
     if (MDupdate(&MD, buf, 0)) {
         rval = SNMPERR_USM_ENCRYPTIONERROR;
         goto md5_fin;
     }
-    *kulen = sc_get_properlength(hashtype, hashtype_len);
+    ret = sc_get_properlength(hashtype, hashtype_len);
+    if (ret == SNMPERR_GENERR)
+        return SNMPERR_GENERR;
+    *kulen = ret;
     MDget(&MD, Ku, *kulen);
   md5_fin:
     memset(&MD, 0, sizeof(MD));
@@ -295,10 +345,10 @@
  */
 int
 generate_kul(const oid * hashtype, u_int hashtype_len,
-             u_char * engineID, size_t engineID_len,
-             u_char * Ku, size_t ku_len,
+             const u_char * engineID, size_t engineID_len,
+             const u_char * Ku, size_t ku_len,
              u_char * Kul, size_t * kul_len)
-#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_PKCS11)
+#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_PKCS11) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
 {
     int             rval = SNMPERR_SUCCESS;
     u_int           nbytes = 0;
@@ -327,7 +377,7 @@
 
     properlength = (size_t) iproperlength;
 
-    if (((int) *kul_len < properlength) || ((int) ku_len < properlength)) {
+    if ((*kul_len < properlength) || (ku_len < properlength)) {
         QUITFUN(SNMPERR_GENERR, generate_kul_quit);
     }
 
@@ -406,9 +456,10 @@
                  u_char * oldkey, size_t oldkey_len,
                  u_char * newkey, size_t newkey_len,
                  u_char * kcstring, size_t * kcstring_len)
-#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_PKCS11)
+#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_PKCS11) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
 {
     int             rval = SNMPERR_SUCCESS;
+    int             iproperlength;
     size_t          properlength;
     size_t          nbytes = 0;
 
@@ -430,15 +481,15 @@
     /*
      * Setup for the transform type.
      */
-    properlength = sc_get_properlength(hashtype, hashtype_len);
-    if (properlength == SNMPERR_GENERR)
+    iproperlength = sc_get_properlength(hashtype, hashtype_len);
+    if (iproperlength == SNMPERR_GENERR)
         QUITFUN(SNMPERR_GENERR, encode_keychange_quit);
 
     if ((oldkey_len != newkey_len) || (*kcstring_len < (2 * oldkey_len))) {
         QUITFUN(SNMPERR_GENERR, encode_keychange_quit);
     }
 
-    properlength = SNMP_MIN((int) oldkey_len, properlength);
+    properlength = SNMP_MIN(oldkey_len, (size_t)iproperlength);
 
     /*
      * Use the old key and some random bytes to encode the new key
@@ -459,7 +510,7 @@
 #else                           /* !NETSNMP_ENABLE_TESTING_CODE */
     rval = sc_random(kcstring, &nbytes);
     QUITFUN(rval, encode_keychange_quit);
-    if ((int) nbytes != properlength) {
+    if (nbytes != properlength) {
         QUITFUN(SNMPERR_GENERR, encode_keychange_quit);
     }
 #endif                          /* !NETSNMP_ENABLE_TESTING_CODE */
@@ -479,7 +530,7 @@
 
         kcstring += properlength;
         nbytes = 0;
-        while ((int) (nbytes++) < properlength) {
+        while ((nbytes++) < properlength) {
             *kcstring++ ^= *newkey++;
         }
     }
@@ -534,7 +585,7 @@
                  u_char * oldkey, size_t oldkey_len,
                  u_char * kcstring, size_t kcstring_len,
                  u_char * newkey, size_t * newkey_len)
-#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_PKCS11)
+#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_PKCS11) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
 {
     int             rval = SNMPERR_SUCCESS;
     size_t          properlength = 0;
@@ -591,7 +642,7 @@
         memcpy(newkey, tmp_buf, properlength);
         bufp = kcstring + properlength;
         nbytes = 0;
-        while ((int) (nbytes++) < properlength) {
+        while ((nbytes++) < properlength) {
             *newkey++ ^= *bufp++;
         }
     }
diff --git a/snmplib/large_fd_set.c b/snmplib/large_fd_set.c
index 490e397..3b8b4a4 100644
--- a/snmplib/large_fd_set.c
+++ b/snmplib/large_fd_set.c
@@ -8,15 +8,13 @@
 #include <net-snmp/net-snmp-config.h>
 
 #include <stdio.h>
+#include <string.h> /* memset(), which is invoked by FD_ZERO() */
 
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
 
-#ifdef HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
+#include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/library/snmp_assert.h>
 #include <net-snmp/library/large_fd_set.h>
 
@@ -86,7 +84,7 @@
 {
     netsnmp_assert(fd >= 0);
 
-    while (fd >= fdset->lfs_setsize)
+    while (fd >= (int)fdset->lfs_setsize)
         netsnmp_large_fd_set_resize(fdset, 2 * (fdset->lfs_setsize + 1));
 
     FD_SET(fd, fdset->lfs_setptr);
@@ -123,10 +121,10 @@
 }
 
 int
-netsnmp_large_fd_set_select(int numfds, netsnmp_large_fd_set *readfds,
-                     netsnmp_large_fd_set *writefds,
-                     netsnmp_large_fd_set *exceptfds,
-                     struct timeval *timeout)
+net_snmp_large_fd_set_select(int numfds, netsnmp_large_fd_set *readfds,
+                      netsnmp_large_fd_set *writefds,
+                      netsnmp_large_fd_set *exceptfds,
+                      struct timeval *timeout)
 {
 #if defined(cygwin) || !defined(HAVE_WINSOCK_H)
     /* Bit-set representation: make sure all fds have at least size 'numfds'. */
@@ -209,7 +207,7 @@
 {
     netsnmp_large_fd_set_resize(fdset, 0);
     fdset->lfs_setsize = 0;
-    fdset->lfs_setptr  = 0;
+    fdset->lfs_setptr  = NULL;
 }
 
 void
diff --git a/snmplib/lcd_time.c b/snmplib/lcd_time.c
index 3fd8551..2222904 100644
--- a/snmplib/lcd_time.c
+++ b/snmplib/lcd_time.c
@@ -8,9 +8,6 @@
 #include <net-snmp/net-snmp-config.h>
 
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #include <stdio.h>
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
@@ -21,11 +18,7 @@
 #include <strings.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -95,7 +88,7 @@
  *            this is another matter.
  */
 int
-get_enginetime(u_char * engineID,
+get_enginetime(const u_char * engineID,
                u_int engineID_len,
                u_int * engineboot,
                u_int * engine_time, u_int authenticated)
@@ -342,7 +335,7 @@
  * XXX	"Current time within the local engine" == time(NULL)...
  */
 int
-set_enginetime(u_char * engineID,
+set_enginetime(const u_char * engineID,
                u_int engineID_len,
                u_int engineboot, u_int engine_time, u_int authenticated)
 {
@@ -423,7 +416,7 @@
  * ASSUMES that no engineID will have more than one record in the list.
  */
 Enginetime
-search_enginetime_list(u_char * engineID, u_int engineID_len)
+search_enginetime_list(const u_char * engineID, u_int engineID_len)
 {
     int             rval = SNMPERR_SUCCESS;
     Enginetime      e = NULL;
@@ -481,7 +474,7 @@
  *
  */
 int
-hash_engineID(u_char * engineID, u_int engineID_len)
+hash_engineID(const u_char * engineID, u_int engineID_len)
 {
     int             rval = SNMPERR_GENERR;
     size_t          buf_len = SNMP_MAXBUF;
@@ -527,7 +520,7 @@
     SNMP_FREE(context);
     memset(buf, 0, SNMP_MAXBUF);
 
-    return (rval < 0) ? rval : (additive % ETIMELIST_SIZE);
+    return (rval < 0) ? rval : (int)(additive % ETIMELIST_SIZE);
 
 }                               /* end hash_engineID() */
 
diff --git a/snmplib/md5.c b/snmplib/md5.c
index 855db14..fbfd43f 100644
--- a/snmplib/md5.c
+++ b/snmplib/md5.c
@@ -55,14 +55,12 @@
 #else
 #include <strings.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #if HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
 
+#include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/utilities.h>
 #include <net-snmp/library/md5.h>
 
@@ -114,7 +112,7 @@
 #endif                          /* STDC_HEADERS */
 
 void            MDreverse(unsigned int *);
-static void     MDblock(MDptr, unsigned int *);
+static void     MDblock(MDptr, const unsigned int *);
 
 #ifdef NETSNMP_ENABLE_TESTING_CODE
 /*
@@ -193,7 +191,7 @@
  * ** This routine is not user-callable. 
  */
 static void
-MDblock(MDptr MDp, unsigned int *X)
+MDblock(MDptr MDp, const unsigned int *X)
 {
     register unsigned int tmp, A, B, C, D;      /* hpux sysv sun */
 #ifdef WORDS_BIGENDIAN
@@ -299,7 +297,7 @@
  * **          -2 if count was too large
  */
 int
-MDupdate(MDptr MDp, unsigned char *X, unsigned int count)
+MDupdate(MDptr MDp, const unsigned char *X, unsigned int count)
 {
     unsigned int    i, tmp, bit, byte, mask;
     unsigned char   XX[64];
@@ -333,7 +331,7 @@
      * Process data 
      */
     if (count == 512) {         /* Full block of data to handle */
-        MDblock(MDp, (unsigned int *) X);
+        MDblock(MDp, (const unsigned int *) X);
     } else if (count > 512)     /* Check for count too large */
         return -2;
     /*
@@ -389,7 +387,7 @@
  * MDchecksum(data, len, MD5): do a checksum on an arbirtrary amount of data 
  */
 int
-MDchecksum(u_char * data, size_t len, u_char * mac, size_t maclen)
+MDchecksum(const u_char * data, size_t len, u_char * mac, size_t maclen)
 {
     MDstruct        md;
     MDstruct       *MD = &md;
@@ -423,8 +421,8 @@
  * of data, and prepended with a secret in the standard fashion 
  */
 int
-MDsign(u_char * data, size_t len, u_char * mac, size_t maclen,
-       u_char * secret, size_t secretlen)
+MDsign(const u_char * data, size_t len, u_char * mac, size_t maclen,
+       const u_char * secret, size_t secretlen)
 {
 #define HASHKEYLEN 64
 
@@ -434,7 +432,8 @@
     u_char          extendedAuthKey[HASHKEYLEN];
     u_char          buf[HASHKEYLEN];
     size_t          i;
-    u_char         *cp, *newdata = NULL;
+    const u_char   *cp;
+    u_char         *newdata = NULL;
     int             rc = 0;
 
     /*
diff --git a/snmplib/mib.c b/snmplib/mib.c
index 3770c02..668b6d2 100644
--- a/snmplib/mib.c
+++ b/snmplib/mib.c
@@ -64,11 +64,7 @@
 #include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -89,10 +85,6 @@
 #include <sys/select.h>
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #if HAVE_UNISTD_H
 #include <unistd.h>
 #endif
@@ -154,9 +146,10 @@
 #endif /* NETSNMP_DISABLE_MIB_LOADING */
 
 #ifndef NETSNMP_DISABLE_MIB_LOADING
-extern struct tree *tree_head;
+NETSNMP_IMPORT struct tree *tree_head;
 static struct tree *tree_top;
 
+NETSNMP_IMPORT struct tree *Mib;
 struct tree    *Mib;            /* Backwards compatibility */
 #endif /* NETSNMP_DISABLE_MIB_LOADING */
 
@@ -475,6 +468,8 @@
         int             repeat, width = 1;
         long            value;
         char            code = 'd', separ = 0, term = 0, ch, intbuf[32];
+#define HEX2DIGIT_NEED_INIT 3
+        char            hex2digit = HEX2DIGIT_NEED_INIT;
         u_char         *ecp;
 
         if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT)) {
@@ -521,9 +516,22 @@
                 }
                 switch (code) {
                 case 'x':
-                    if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
-                                               NETSNMP_DS_LIB_2DIGIT_HEX_OUTPUT)
-                                       && value < 16) {
+                    if (HEX2DIGIT_NEED_INIT == hex2digit)
+                        hex2digit = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
+                                                           NETSNMP_DS_LIB_2DIGIT_HEX_OUTPUT);
+                    /*
+                     * if value is < 16, it will be a single hex digit. If the
+                     * width is 1 (we are outputting a byte at a time), pat it
+                     * to 2 digits if NETSNMP_DS_LIB_2DIGIT_HEX_OUTPUT is set
+                     * or all of the following are true:
+                     *  - we do not have a separation character
+                     *  - there is no hint left (or there never was a hint)
+                     *
+                     * e.g. for the data 0xAA01BB, would anyone really ever
+                     * want the string "AA1BB"??
+                     */
+                    if (((value < 16) && (1 == width)) &&
+                        (hex2digit || ((0 == separ) && (0 == *hint)))) {
                         sprintf(intbuf, "0%lx", value);
                     } else {
                         sprintf(intbuf, "%lx", value);
@@ -2763,7 +2771,7 @@
      * Create a list of which directory each file refers to
      */
     while ((file = readdir( dir ))) {
-        if ( !isdigit(file->d_name[0]))
+        if ( !isdigit((unsigned char)(file->d_name[0])))
             continue;
         i = atoi( file->d_name );
 
@@ -3803,7 +3811,7 @@
         case ASN_TIMETICKS:
             if (*oidLen) {
                 snmp_set_var_value(var, (u_char *) oidIndex++,
-                                   sizeof(long));
+                                   sizeof(oid));
                 --(*oidLen);
             } else {
                 snmp_set_var_value(var, (u_char *) oidLen, sizeof(long));
@@ -3820,7 +3828,8 @@
             for (i = 0; i < 4 && i < *oidLen; ++i) {
                 if (oidIndex[i] > 255) {
                     DEBUGMSGTL(("parse_oid_indexes",
-                                "illegal oid in index: %ld\n", oidIndex[0]));
+                                "illegal oid in index: %" NETSNMP_PRIo "d\n",
+                                oidIndex[0]));
                         return SNMPERR_GENERR;  /* sub-identifier too large */
                     }
                     uitmp = uitmp + (oidIndex[i] << (8*(3-i)));
@@ -3993,7 +4002,9 @@
                     (addr_type == IPV4Z && objidlen != 8))
                     return 2;
 
-                len = sprintf(p, "%lu.%lu.%lu.%lu", objid[0], objid[1], objid[2], objid[3]);
+                len = sprintf(p, "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u."
+                              "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u",
+                              objid[0], objid[1], objid[2], objid[3]);
                 p += len;
                 if (addr_type == IPV4Z) {
                     zc = (unsigned char*)&zone;
@@ -4016,7 +4027,7 @@
 
                 len = 0;
                 for (i = 0; i < 16; i ++) {
-                    len = snprintf(p, 4, "%02lx:", objid[i]);
+                    len = snprintf(p, 4, "%02" NETSNMP_PRIo "x:", objid[i]);
                     p += len;
                 }
                 p-- ; /* do not include the last ':' */
@@ -4131,7 +4142,7 @@
     }
 
     while (objidlen-- > 0) {    /* output rest of name, uninterpreted */
-        sprintf(intbuf, "%lu.", *objid++);
+        sprintf(intbuf, "%" NETSNMP_PRIo "u.", *objid++);
         if (!*buf_overflow && !snmp_strcat(buf, buf_len, out_len,
                                            allow_realloc,
                                            (const u_char *) intbuf)) {
@@ -4419,7 +4430,7 @@
                         *buf_overflow = 1;
                     }
                 } else {
-                    sprintf(intbuf, "%lu", *objid);
+                    sprintf(intbuf, "%" NETSNMP_PRIo "u", *objid);
                     if (!*buf_overflow
                         && !snmp_strcat(buf, buf_len, out_len,
                                         allow_realloc,
@@ -4428,7 +4439,7 @@
                     }
                 }
             } else {
-                sprintf(intbuf, "%lu", *objid);
+                sprintf(intbuf, "%" NETSNMP_PRIo "u", *objid);
                 if (!*buf_overflow && !snmp_strcat(buf, buf_len, out_len,
                                                    allow_realloc,
                                                    (const u_char *)
@@ -4500,7 +4511,8 @@
         case TYPE_IPADDR:
             if (objidlen < 4)
                 goto finish_it;
-            sprintf(intbuf, "%lu.%lu.%lu.%lu",
+            sprintf(intbuf, "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u."
+                    "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u",
                     objid[0], objid[1], objid[2], objid[3]);
             objid += 4;
             objidlen -= 4;
@@ -4515,7 +4527,7 @@
                 oid             ntype = *objid++;
 
                 objidlen--;
-                sprintf(intbuf, "%lu.", ntype);
+                sprintf(intbuf, "%" NETSNMP_PRIo "u.", ntype);
                 if (!*buf_overflow && !snmp_strcat(buf, buf_len, out_len,
                                                    allow_realloc,
                                                    (const u_char *)
@@ -4524,7 +4536,8 @@
                 }
 
                 if (ntype == 1 && objidlen >= 4) {
-                    sprintf(intbuf, "%lu.%lu.%lu.%lu",
+                    sprintf(intbuf, "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u."
+                            "%" NETSNMP_PRIo "u.%" NETSNMP_PRIo "u",
                             objid[0], objid[1], objid[2], objid[3]);
                     if (!*buf_overflow
                         && !snmp_strcat(buf, buf_len, out_len,
@@ -4735,7 +4748,7 @@
             break;
     }
     while (objidlen > 1) {
-        sprintf(tmpbuf, " %lu", *objid);
+        sprintf(tmpbuf, " %" NETSNMP_PRIo "u", *objid);
         len = strlen(tmpbuf);
         if (pos + len + 2 > width) {
             if (!snmp_cstrcat(buf, buf_len, out_len, allow_realloc, "\n     "))
@@ -4748,7 +4761,7 @@
         objid++;
         objidlen--;
     }
-    sprintf(tmpbuf, " %lu }", *objid);
+    sprintf(tmpbuf, " %" NETSNMP_PRIo "u }", *objid);
     len = strlen(tmpbuf);
     if (pos + len + 2 > width) {
         if (!snmp_cstrcat(buf, buf_len, out_len, allow_realloc, "\n     "))
@@ -5282,7 +5295,7 @@
         /*
          * Search for the appropriate child 
          */
-        if (isdigit(*cp)) {
+        if (isdigit((unsigned char)(*cp))) {
             subid = strtoul(cp, &ecp, 0);
             if (*ecp)
                 goto bad_id;
@@ -5339,7 +5352,7 @@
             cp2 = strchr(cp, '.');
             if (cp2)
                 *cp2++ = '\0';
-            if (isdigit(*cp)) {
+            if (isdigit((unsigned char)(*cp))) {
                 subid = strtoul(cp, &ecp, 0);
                 if (*ecp)
                     goto bad_id;
@@ -6224,7 +6237,7 @@
 	    if ('*' == *h) {
 		ph.repeat = 1;
 		state = HINT_2_3;
-	    } else if (isdigit(*h)) {
+	    } else if (isdigit((unsigned char)(*h))) {
 		parse_hints_length_add_digit(&ph, *h);
 		state = HINT_2_3;
 	    } else {
@@ -6233,7 +6246,7 @@
 	    break;
 
 	case HINT_2_3:
-	    if (isdigit(*h)) {
+	    if (isdigit((unsigned char)(*h))) {
 		parse_hints_length_add_digit(&ph, *h);
 		/* state = HINT_2_3 */
 	    } else if ('x' == *h || 'd' == *h || 'o' == *h || 'a' == *h) {
@@ -6251,7 +6264,7 @@
 		
 		ph.repeat = 1;
 		state = HINT_2_3;
-	    } else if (isdigit(*h)) {
+	    } else if (isdigit((unsigned char)(*h))) {
 		retval = parse_hints_parse(&ph, &v);
 		parse_hints_reset(&ph);
 		
@@ -6270,7 +6283,7 @@
 		
 		ph.repeat = 1;
 		state = HINT_2_3;
-	    } else if (isdigit(*h)) {
+	    } else if (isdigit((unsigned char)(*h))) {
 		retval = parse_hints_parse(&ph, &v);
 		parse_hints_reset(&ph);
 		
diff --git a/snmplib/oid_stash.c b/snmplib/oid_stash.c
index a09ad53..860abab 100644
--- a/snmplib/oid_stash.c
+++ b/snmplib/oid_stash.c
@@ -384,7 +384,7 @@
     for (i = 0; i < root->children_size; i++) {
         if (root->children[i]) {
             for (tmpp = root->children[i]; tmpp; tmpp = tmpp->next_sibling) {
-                printf("%s%ld@%d: %s\n", prefix, tmpp->value, i,
+                printf("%s%" NETSNMP_PRIo "d@%d: %s\n", prefix, tmpp->value, i,
                        (tmpp->thedata) ? "DATA" : "");
                 oid_stash_dump(tmpp, myprefix);
             }
diff --git a/snmplib/opendir.c b/snmplib/opendir.c
new file mode 100644
index 0000000..6cb8e06
--- /dev/null
+++ b/snmplib/opendir.c
@@ -0,0 +1,139 @@
+/*
+ * opendir() replacement for MSVC.
+ */
+
+#define WIN32IO_IS_STDIO
+#define PATHLEN	1024
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/types.h>
+#include <net-snmp/library/system.h>
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#include <tchar.h>
+#include <windows.h>
+
+
+/*
+ * The idea here is to read all the directory names into a string table
+ * * (separated by nulls) and when one of the other dir functions is called
+ * * return the pointer to the current file name.
+ */
+DIR            *
+opendir(const char *filename)
+{
+    DIR            *p;
+    long            len;
+    long            idx;
+    char            scannamespc[PATHLEN];
+    char           *scanname = scannamespc;
+    struct stat     sbuf;
+    WIN32_FIND_DATA FindData;
+    HANDLE          fh;
+
+    /*
+     * check to see if filename is a directory 
+     */
+    if ((stat(filename, &sbuf) < 0) || ((sbuf.st_mode & S_IFDIR) == 0)) {
+        return NULL;
+    }
+
+    /*
+     * get the file system characteristics 
+     */
+    /*
+     * if(GetFullPathName(filename, SNMP_MAXPATH, root, &dummy)) {
+     * *    if(dummy = strchr(root, '\\'))
+     * *        *++dummy = '\0';
+     * *    if(GetVolumeInformation(root, volname, SNMP_MAXPATH, &serial,
+     * *                            &maxname, &flags, 0, 0)) {
+     * *        downcase = !(flags & FS_CASE_IS_PRESERVED);
+     * *    }
+     * *  }
+     * *  else {
+     * *    downcase = TRUE;
+     * *  }
+     */
+
+    /*
+     * Create the search pattern 
+     */
+    strcpy(scanname, filename);
+
+    if (strchr("/\\", *(scanname + strlen(scanname) - 1)) == NULL)
+        strcat(scanname, "/*");
+    else
+        strcat(scanname, "*");
+
+    /*
+     * do the FindFirstFile call 
+     */
+    fh = FindFirstFile(scanname, &FindData);
+    if (fh == INVALID_HANDLE_VALUE) {
+        return NULL;
+    }
+
+    /*
+     * Get us a DIR structure 
+     */
+    p = (DIR *) malloc(sizeof(DIR));
+    /*
+     * Newz(1303, p, 1, DIR); 
+     */
+    if (p == NULL)
+        return NULL;
+
+    /*
+     * now allocate the first part of the string table for
+     * * the filenames that we find.
+     */
+    idx = strlen(FindData.cFileName) + 1;
+    p->start = (char *) malloc(idx);
+    /*
+     * New(1304, p->start, idx, char);
+     */
+    if (p->start == NULL) {
+        free(p);
+        return NULL;
+    }
+    strcpy(p->start, FindData.cFileName);
+    /*
+     * if(downcase)
+     * *    strlwr(p->start);
+     */
+    p->nfiles = 0;
+
+    /*
+     * loop finding all the files that match the wildcard
+     * * (which should be all of them in this directory!).
+     * * the variable idx should point one past the null terminator
+     * * of the previous string found.
+     */
+    while (FindNextFile(fh, &FindData)) {
+        len = strlen(FindData.cFileName);
+        /*
+         * bump the string table size by enough for the
+         * * new name and it's null terminator
+         */
+        p->start = (char *) realloc((void *) p->start, idx + len + 1);
+        /*
+         * Renew(p->start, idx+len+1, char);
+         */
+        if (p->start == NULL) {
+            free(p);
+            return NULL;
+        }
+        strcpy(&p->start[idx], FindData.cFileName);
+        /*
+         * if (downcase) 
+         * *        strlwr(&p->start[idx]);
+         */
+        p->nfiles++;
+        idx += len + 1;
+    }
+    FindClose(fh);
+    p->size = idx;
+    p->curr = p->start;
+    return p;
+}
diff --git a/snmplib/openssl/OPENSSL-LICENSE b/snmplib/openssl/OPENSSL-LICENSE
new file mode 100644
index 0000000..a2c4adc
--- /dev/null
+++ b/snmplib/openssl/OPENSSL-LICENSE
@@ -0,0 +1,127 @@
+
+  LICENSE ISSUES
+  ==============
+
+  The OpenSSL toolkit stays under a dual license, i.e. both the conditions of
+  the OpenSSL License and the original SSLeay license apply to the toolkit.
+  See below for the actual license texts. Actually both licenses are BSD-style
+  Open Source licenses. In case of any license issues related to OpenSSL
+  please contact openssl-core@openssl.org.
+
+  OpenSSL License
+  ---------------
+
+/* ====================================================================
+ * Copyright (c) 1998-2008 The OpenSSL Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ *    endorse or promote products derived from this software without
+ *    prior written permission. For written permission, please contact
+ *    openssl-core@openssl.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ *    nor may "OpenSSL" appear in their names without prior written
+ *    permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This product includes cryptographic software written by Eric Young
+ * (eay@cryptsoft.com).  This product includes software written by Tim
+ * Hudson (tjh@cryptsoft.com).
+ *
+ */
+
+ Original SSLeay License
+ -----------------------
+
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
diff --git a/snmplib/openssl/README b/snmplib/openssl/README
new file mode 100644
index 0000000..c84087b
--- /dev/null
+++ b/snmplib/openssl/README
@@ -0,0 +1,19 @@
+This directory contains modified crypto code from OpenSSL
+1.0.0.beta5.  Please see the OpenSSL license from that release in the
+OPENSSL-LICENSE which will apply if this code is selected.
+
+Net-SNMP may be compiled with this code using the
+--with-openssl=internal flag to the configure command line.
+
+Note: It is generally a better idea to link with the latest OpenSSL
+library rather than rely on this internal support, as the latest
+OpenSSL code may contain important security or other fixes that may
+not have been incorporated into this snapshot.  Small device vendors,
+however, have requested a stripped down version of the OpenSSL
+cryptography code in order to shrink their memory footprint and this
+feature provides such support.
+
+Note also that the new SNMP over DTLS, SNMP over TLS support also
+available in Net-SNMP 5.6 and beyond is incompatible with the internal
+version of the OpenSSL support since SNMP over (D)TLS requires the
+full TLS support available in OpenSSL.
diff --git a/snmplib/openssl/openssl_aes_cfb.c b/snmplib/openssl/openssl_aes_cfb.c
new file mode 100644
index 0000000..999e5a7
--- /dev/null
+++ b/snmplib/openssl/openssl_aes_cfb.c
@@ -0,0 +1,81 @@
+/* crypto/aes/aes_cfb.c -*- mode:C; c-file-style: "eay" -*- */
+/* ====================================================================
+ * Copyright (c) 2002-2006 The OpenSSL Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ *    endorse or promote products derived from this software without
+ *    prior written permission. For written permission, please contact
+ *    openssl-core@openssl.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ *    nor may "OpenSSL" appear in their names without prior written
+ *    permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ */
+
+#include <net-snmp/library/openssl_aes.h>
+#include "openssl/openssl_modes.h"
+
+/* The input and output encrypted as though 128bit cfb mode is being
+ * used.  The extra state information to record how much of the
+ * 128bit block we have used is contained in *num;
+ */
+
+void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out,
+	size_t length, const AES_KEY *key,
+	unsigned char *ivec, int *num, const int enc) {
+
+	CRYPTO_cfb128_encrypt(in,out,length,key,ivec,num,enc,(block128_f)AES_encrypt);
+}
+
+/* N.B. This expects the input to be packed, MS bit first */
+void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out,
+		      size_t length, const AES_KEY *key,
+		      unsigned char *ivec, int *num, const int enc)
+    {
+    CRYPTO_cfb128_1_encrypt(in,out,length,key,ivec,num,enc,(block128_f)AES_encrypt);
+    }
+
+void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out,
+		      size_t length, const AES_KEY *key,
+		      unsigned char *ivec, int *num, const int enc)
+    {
+    CRYPTO_cfb128_8_encrypt(in,out,length,key,ivec,num,enc,(block128_f)AES_encrypt);
+    }
+
diff --git a/snmplib/openssl/openssl_aes_core.c b/snmplib/openssl/openssl_aes_core.c
new file mode 100644
index 0000000..56301b9
--- /dev/null
+++ b/snmplib/openssl/openssl_aes_core.c
@@ -0,0 +1,1358 @@
+/* crypto/aes/aes_core.c -*- mode:C; c-file-style: "eay" -*- */
+/**
+ * rijndael-alg-fst.c
+ *
+ * @version 3.0 (December 2000)
+ *
+ * Optimised ANSI C code for the Rijndael cipher (now AES)
+ *
+ * @author Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be>
+ * @author Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be>
+ * @author Paulo Barreto <paulo.barreto@terra.com.br>
+ *
+ * This code is hereby placed in the public domain.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* Note: rewritten a little bit to provide error control and an OpenSSL-
+   compatible API */
+
+#ifndef AES_DEBUG
+# ifndef NDEBUG
+#  define NDEBUG
+# endif
+#endif
+#include <assert.h>
+
+#include <stdlib.h>
+#include <net-snmp/library/openssl_aes.h>
+#include "openssl_aes_local.h"
+
+#ifndef AES_ASM
+/*
+Te0[x] = S [x].[02, 01, 01, 03];
+Te1[x] = S [x].[03, 02, 01, 01];
+Te2[x] = S [x].[01, 03, 02, 01];
+Te3[x] = S [x].[01, 01, 03, 02];
+
+Td0[x] = Si[x].[0e, 09, 0d, 0b];
+Td1[x] = Si[x].[0b, 0e, 09, 0d];
+Td2[x] = Si[x].[0d, 0b, 0e, 09];
+Td3[x] = Si[x].[09, 0d, 0b, 0e];
+Td4[x] = Si[x].[01];
+*/
+
+static const u32 Te0[256] = {
+    0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU,
+    0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U,
+    0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU,
+    0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU,
+    0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U,
+    0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU,
+    0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU,
+    0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU,
+    0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU,
+    0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU,
+    0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U,
+    0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU,
+    0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU,
+    0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U,
+    0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU,
+    0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU,
+    0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU,
+    0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU,
+    0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU,
+    0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U,
+    0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU,
+    0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU,
+    0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU,
+    0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU,
+    0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U,
+    0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U,
+    0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U,
+    0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U,
+    0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU,
+    0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U,
+    0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U,
+    0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU,
+    0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU,
+    0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U,
+    0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U,
+    0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U,
+    0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU,
+    0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U,
+    0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU,
+    0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U,
+    0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU,
+    0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U,
+    0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U,
+    0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU,
+    0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U,
+    0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U,
+    0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U,
+    0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U,
+    0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U,
+    0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U,
+    0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U,
+    0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U,
+    0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU,
+    0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U,
+    0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U,
+    0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U,
+    0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U,
+    0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U,
+    0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U,
+    0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU,
+    0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U,
+    0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U,
+    0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U,
+    0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU,
+};
+static const u32 Te1[256] = {
+    0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU,
+    0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U,
+    0x50603030U, 0x03020101U, 0xa9ce6767U, 0x7d562b2bU,
+    0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U,
+    0x458fcacaU, 0x9d1f8282U, 0x4089c9c9U, 0x87fa7d7dU,
+    0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U,
+    0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, 0xea45afafU,
+    0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U,
+    0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U,
+    0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU,
+    0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U,
+    0x93e27171U, 0x73abd8d8U, 0x53623131U, 0x3f2a1515U,
+    0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U,
+    0x28301818U, 0xa1379696U, 0x0f0a0505U, 0xb52f9a9aU,
+    0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U,
+    0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, 0x9fea7575U,
+    0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU,
+    0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U,
+    0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U,
+    0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U,
+    0xf5a65353U, 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU,
+    0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU,
+    0xbed46a6aU, 0x468dcbcbU, 0xd967bebeU, 0x4b723939U,
+    0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU,
+    0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, 0x16edfbfbU,
+    0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U,
+    0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU,
+    0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U,
+    0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU,
+    0xad3f9292U, 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U,
+    0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U,
+    0x30201010U, 0x1ae5ffffU, 0x0efdf3f3U, 0x6dbfd2d2U,
+    0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU,
+    0xe1be5f5fU, 0xa2359797U, 0xcc884444U, 0x392e1717U,
+    0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU,
+    0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U,
+    0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU,
+    0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U,
+    0xca8c4646U, 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U,
+    0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU,
+    0x3bdbe0e0U, 0x56643232U, 0x4e743a3aU, 0x1e140a0aU,
+    0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU,
+    0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, 0xa6c46262U,
+    0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U,
+    0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU,
+    0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U,
+    0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU,
+    0xafca6565U, 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U,
+    0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU,
+    0x24381c1cU, 0xf157a6a6U, 0xc773b4b4U, 0x5197c6c6U,
+    0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU,
+    0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, 0x850f8a8aU,
+    0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U,
+    0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU,
+    0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U,
+    0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU,
+    0x38d9e1e1U, 0x13ebf8f8U, 0xb32b9898U, 0x33221111U,
+    0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U,
+    0xb62d9b9bU, 0x223c1e1eU, 0x92158787U, 0x20c9e9e9U,
+    0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU,
+    0x8f038c8cU, 0xf859a1a1U, 0x80098989U, 0x171a0d0dU,
+    0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U,
+    0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU,
+    0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U,
+};
+static const u32 Te2[256] = {
+    0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU,
+    0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U,
+    0x30506030U, 0x01030201U, 0x67a9ce67U, 0x2b7d562bU,
+    0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U,
+    0xca458fcaU, 0x829d1f82U, 0xc94089c9U, 0x7d87fa7dU,
+    0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U,
+    0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, 0xafea45afU,
+    0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U,
+    0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U,
+    0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU,
+    0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U,
+    0x7193e271U, 0xd873abd8U, 0x31536231U, 0x153f2a15U,
+    0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U,
+    0x18283018U, 0x96a13796U, 0x050f0a05U, 0x9ab52f9aU,
+    0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U,
+    0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, 0x759fea75U,
+    0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU,
+    0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U,
+    0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U,
+    0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U,
+    0x53f5a653U, 0xd168b9d1U, 0x00000000U, 0xed2cc1edU,
+    0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU,
+    0x6abed46aU, 0xcb468dcbU, 0xbed967beU, 0x394b7239U,
+    0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU,
+    0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, 0xfb16edfbU,
+    0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U,
+    0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU,
+    0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U,
+    0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU,
+    0x92ad3f92U, 0x9dbc219dU, 0x38487038U, 0xf504f1f5U,
+    0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U,
+    0x10302010U, 0xff1ae5ffU, 0xf30efdf3U, 0xd26dbfd2U,
+    0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU,
+    0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, 0x17392e17U,
+    0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU,
+    0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U,
+    0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU,
+    0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U,
+    0x46ca8c46U, 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U,
+    0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU,
+    0xe03bdbe0U, 0x32566432U, 0x3a4e743aU, 0x0a1e140aU,
+    0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU,
+    0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, 0x62a6c462U,
+    0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U,
+    0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU,
+    0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U,
+    0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU,
+    0x65afca65U, 0x7a8ef47aU, 0xaee947aeU, 0x08181008U,
+    0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU,
+    0x1c24381cU, 0xa6f157a6U, 0xb4c773b4U, 0xc65197c6U,
+    0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU,
+    0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, 0x8a850f8aU,
+    0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U,
+    0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU,
+    0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U,
+    0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU,
+    0xe138d9e1U, 0xf813ebf8U, 0x98b32b98U, 0x11332211U,
+    0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U,
+    0x9bb62d9bU, 0x1e223c1eU, 0x87921587U, 0xe920c9e9U,
+    0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU,
+    0x8c8f038cU, 0xa1f859a1U, 0x89800989U, 0x0d171a0dU,
+    0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U,
+    0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU,
+    0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U,
+};
+static const u32 Te3[256] = {
+    0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U,
+    0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U,
+    0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U,
+    0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU,
+    0xcaca458fU, 0x82829d1fU, 0xc9c94089U, 0x7d7d87faU,
+    0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU,
+    0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, 0xafafea45U,
+    0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU,
+    0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU,
+    0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U,
+    0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U,
+    0x717193e2U, 0xd8d873abU, 0x31315362U, 0x15153f2aU,
+    0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU,
+    0x18182830U, 0x9696a137U, 0x05050f0aU, 0x9a9ab52fU,
+    0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU,
+    0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, 0x75759feaU,
+    0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U,
+    0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU,
+    0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU,
+    0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U,
+    0x5353f5a6U, 0xd1d168b9U, 0x00000000U, 0xeded2cc1U,
+    0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U,
+    0x6a6abed4U, 0xcbcb468dU, 0xbebed967U, 0x39394b72U,
+    0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U,
+    0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, 0xfbfb16edU,
+    0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U,
+    0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU,
+    0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU,
+    0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U,
+    0x9292ad3fU, 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U,
+    0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U,
+    0x10103020U, 0xffff1ae5U, 0xf3f30efdU, 0xd2d26dbfU,
+    0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U,
+    0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, 0x1717392eU,
+    0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU,
+    0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U,
+    0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U,
+    0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU,
+    0x4646ca8cU, 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U,
+    0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU,
+    0xe0e03bdbU, 0x32325664U, 0x3a3a4e74U, 0x0a0a1e14U,
+    0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U,
+    0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, 0x6262a6c4U,
+    0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U,
+    0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU,
+    0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U,
+    0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU,
+    0x6565afcaU, 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U,
+    0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU,
+    0x1c1c2438U, 0xa6a6f157U, 0xb4b4c773U, 0xc6c65197U,
+    0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU,
+    0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, 0x8a8a850fU,
+    0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU,
+    0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU,
+    0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U,
+    0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U,
+    0xe1e138d9U, 0xf8f813ebU, 0x9898b32bU, 0x11113322U,
+    0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U,
+    0x9b9bb62dU, 0x1e1e223cU, 0x87879215U, 0xe9e920c9U,
+    0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U,
+    0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, 0x0d0d171aU,
+    0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U,
+    0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU,
+    0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
+};
+
+static const u32 Td0[256] = {
+    0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U,
+    0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U,
+    0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U,
+    0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU,
+    0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U,
+    0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U,
+    0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU,
+    0xd4be832dU, 0x587421d3U, 0x49e06929U, 0x8ec9c844U,
+    0x75c2896aU, 0xf48e7978U, 0x99583e6bU, 0x27b971ddU,
+    0xbee14fb6U, 0xf088ad17U, 0xc920ac66U, 0x7dce3ab4U,
+    0x63df4a18U, 0xe51a3182U, 0x97513360U, 0x62537f45U,
+    0xb16477e0U, 0xbb6bae84U, 0xfe81a01cU, 0xf9082b94U,
+    0x70486858U, 0x8f45fd19U, 0x94de6c87U, 0x527bf8b7U,
+    0xab73d323U, 0x724b02e2U, 0xe31f8f57U, 0x6655ab2aU,
+    0xb2eb2807U, 0x2fb5c203U, 0x86c57b9aU, 0xd33708a5U,
+    0x302887f2U, 0x23bfa5b2U, 0x02036abaU, 0xed16825cU,
+    0x8acf1c2bU, 0xa779b492U, 0xf307f2f0U, 0x4e69e2a1U,
+    0x65daf4cdU, 0x0605bed5U, 0xd134621fU, 0xc4a6fe8aU,
+    0x342e539dU, 0xa2f355a0U, 0x058ae132U, 0xa4f6eb75U,
+    0x0b83ec39U, 0x4060efaaU, 0x5e719f06U, 0xbd6e1051U,
+    0x3e218af9U, 0x96dd063dU, 0xdd3e05aeU, 0x4de6bd46U,
+    0x91548db5U, 0x71c45d05U, 0x0406d46fU, 0x605015ffU,
+    0x1998fb24U, 0xd6bde997U, 0x894043ccU, 0x67d99e77U,
+    0xb0e842bdU, 0x07898b88U, 0xe7195b38U, 0x79c8eedbU,
+    0xa17c0a47U, 0x7c420fe9U, 0xf8841ec9U, 0x00000000U,
+    0x09808683U, 0x322bed48U, 0x1e1170acU, 0x6c5a724eU,
+    0xfd0efffbU, 0x0f853856U, 0x3daed51eU, 0x362d3927U,
+    0x0a0fd964U, 0x685ca621U, 0x9b5b54d1U, 0x24362e3aU,
+    0x0c0a67b1U, 0x9357e70fU, 0xb4ee96d2U, 0x1b9b919eU,
+    0x80c0c54fU, 0x61dc20a2U, 0x5a774b69U, 0x1c121a16U,
+    0xe293ba0aU, 0xc0a02ae5U, 0x3c22e043U, 0x121b171dU,
+    0x0e090d0bU, 0xf28bc7adU, 0x2db6a8b9U, 0x141ea9c8U,
+    0x57f11985U, 0xaf75074cU, 0xee99ddbbU, 0xa37f60fdU,
+    0xf701269fU, 0x5c72f5bcU, 0x44663bc5U, 0x5bfb7e34U,
+    0x8b432976U, 0xcb23c6dcU, 0xb6edfc68U, 0xb8e4f163U,
+    0xd731dccaU, 0x42638510U, 0x13972240U, 0x84c61120U,
+    0x854a247dU, 0xd2bb3df8U, 0xaef93211U, 0xc729a16dU,
+    0x1d9e2f4bU, 0xdcb230f3U, 0x0d8652ecU, 0x77c1e3d0U,
+    0x2bb3166cU, 0xa970b999U, 0x119448faU, 0x47e96422U,
+    0xa8fc8cc4U, 0xa0f03f1aU, 0x567d2cd8U, 0x223390efU,
+    0x87494ec7U, 0xd938d1c1U, 0x8ccaa2feU, 0x98d40b36U,
+    0xa6f581cfU, 0xa57ade28U, 0xdab78e26U, 0x3fadbfa4U,
+    0x2c3a9de4U, 0x5078920dU, 0x6a5fcc9bU, 0x547e4662U,
+    0xf68d13c2U, 0x90d8b8e8U, 0x2e39f75eU, 0x82c3aff5U,
+    0x9f5d80beU, 0x69d0937cU, 0x6fd52da9U, 0xcf2512b3U,
+    0xc8ac993bU, 0x10187da7U, 0xe89c636eU, 0xdb3bbb7bU,
+    0xcd267809U, 0x6e5918f4U, 0xec9ab701U, 0x834f9aa8U,
+    0xe6956e65U, 0xaaffe67eU, 0x21bccf08U, 0xef15e8e6U,
+    0xbae79bd9U, 0x4a6f36ceU, 0xea9f09d4U, 0x29b07cd6U,
+    0x31a4b2afU, 0x2a3f2331U, 0xc6a59430U, 0x35a266c0U,
+    0x744ebc37U, 0xfc82caa6U, 0xe090d0b0U, 0x33a7d815U,
+    0xf104984aU, 0x41ecdaf7U, 0x7fcd500eU, 0x1791f62fU,
+    0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU,
+    0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU,
+    0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU,
+    0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U,
+    0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U,
+    0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU,
+    0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU,
+    0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U,
+    0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU,
+    0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U,
+    0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U,
+    0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U,
+};
+static const u32 Td1[256] = {
+    0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU,
+    0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U,
+    0x552030faU, 0xf6ad766dU, 0x9188cc76U, 0x25f5024cU,
+    0xfc4fe5d7U, 0xd7c52acbU, 0x80263544U, 0x8fb562a3U,
+    0x49deb15aU, 0x6725ba1bU, 0x9845ea0eU, 0xe15dfec0U,
+    0x02c32f75U, 0x12814cf0U, 0xa38d4697U, 0xc66bd3f9U,
+    0xe7038f5fU, 0x9515929cU, 0xebbf6d7aU, 0xda955259U,
+    0x2dd4be83U, 0xd3587421U, 0x2949e069U, 0x448ec9c8U,
+    0x6a75c289U, 0x78f48e79U, 0x6b99583eU, 0xdd27b971U,
+    0xb6bee14fU, 0x17f088adU, 0x66c920acU, 0xb47dce3aU,
+    0x1863df4aU, 0x82e51a31U, 0x60975133U, 0x4562537fU,
+    0xe0b16477U, 0x84bb6baeU, 0x1cfe81a0U, 0x94f9082bU,
+    0x58704868U, 0x198f45fdU, 0x8794de6cU, 0xb7527bf8U,
+    0x23ab73d3U, 0xe2724b02U, 0x57e31f8fU, 0x2a6655abU,
+    0x07b2eb28U, 0x032fb5c2U, 0x9a86c57bU, 0xa5d33708U,
+    0xf2302887U, 0xb223bfa5U, 0xba02036aU, 0x5ced1682U,
+    0x2b8acf1cU, 0x92a779b4U, 0xf0f307f2U, 0xa14e69e2U,
+    0xcd65daf4U, 0xd50605beU, 0x1fd13462U, 0x8ac4a6feU,
+    0x9d342e53U, 0xa0a2f355U, 0x32058ae1U, 0x75a4f6ebU,
+    0x390b83ecU, 0xaa4060efU, 0x065e719fU, 0x51bd6e10U,
+    0xf93e218aU, 0x3d96dd06U, 0xaedd3e05U, 0x464de6bdU,
+    0xb591548dU, 0x0571c45dU, 0x6f0406d4U, 0xff605015U,
+    0x241998fbU, 0x97d6bde9U, 0xcc894043U, 0x7767d99eU,
+    0xbdb0e842U, 0x8807898bU, 0x38e7195bU, 0xdb79c8eeU,
+    0x47a17c0aU, 0xe97c420fU, 0xc9f8841eU, 0x00000000U,
+    0x83098086U, 0x48322bedU, 0xac1e1170U, 0x4e6c5a72U,
+    0xfbfd0effU, 0x560f8538U, 0x1e3daed5U, 0x27362d39U,
+    0x640a0fd9U, 0x21685ca6U, 0xd19b5b54U, 0x3a24362eU,
+    0xb10c0a67U, 0x0f9357e7U, 0xd2b4ee96U, 0x9e1b9b91U,
+    0x4f80c0c5U, 0xa261dc20U, 0x695a774bU, 0x161c121aU,
+    0x0ae293baU, 0xe5c0a02aU, 0x433c22e0U, 0x1d121b17U,
+    0x0b0e090dU, 0xadf28bc7U, 0xb92db6a8U, 0xc8141ea9U,
+    0x8557f119U, 0x4caf7507U, 0xbbee99ddU, 0xfda37f60U,
+    0x9ff70126U, 0xbc5c72f5U, 0xc544663bU, 0x345bfb7eU,
+    0x768b4329U, 0xdccb23c6U, 0x68b6edfcU, 0x63b8e4f1U,
+    0xcad731dcU, 0x10426385U, 0x40139722U, 0x2084c611U,
+    0x7d854a24U, 0xf8d2bb3dU, 0x11aef932U, 0x6dc729a1U,
+    0x4b1d9e2fU, 0xf3dcb230U, 0xec0d8652U, 0xd077c1e3U,
+    0x6c2bb316U, 0x99a970b9U, 0xfa119448U, 0x2247e964U,
+    0xc4a8fc8cU, 0x1aa0f03fU, 0xd8567d2cU, 0xef223390U,
+    0xc787494eU, 0xc1d938d1U, 0xfe8ccaa2U, 0x3698d40bU,
+    0xcfa6f581U, 0x28a57adeU, 0x26dab78eU, 0xa43fadbfU,
+    0xe42c3a9dU, 0x0d507892U, 0x9b6a5fccU, 0x62547e46U,
+    0xc2f68d13U, 0xe890d8b8U, 0x5e2e39f7U, 0xf582c3afU,
+    0xbe9f5d80U, 0x7c69d093U, 0xa96fd52dU, 0xb3cf2512U,
+    0x3bc8ac99U, 0xa710187dU, 0x6ee89c63U, 0x7bdb3bbbU,
+    0x09cd2678U, 0xf46e5918U, 0x01ec9ab7U, 0xa8834f9aU,
+    0x65e6956eU, 0x7eaaffe6U, 0x0821bccfU, 0xe6ef15e8U,
+    0xd9bae79bU, 0xce4a6f36U, 0xd4ea9f09U, 0xd629b07cU,
+    0xaf31a4b2U, 0x312a3f23U, 0x30c6a594U, 0xc035a266U,
+    0x37744ebcU, 0xa6fc82caU, 0xb0e090d0U, 0x1533a7d8U,
+    0x4af10498U, 0xf741ecdaU, 0x0e7fcd50U, 0x2f1791f6U,
+    0x8d764dd6U, 0x4d43efb0U, 0x54ccaa4dU, 0xdfe49604U,
+    0xe39ed1b5U, 0x1b4c6a88U, 0xb8c12c1fU, 0x7f466551U,
+    0x049d5eeaU, 0x5d018c35U, 0x73fa8774U, 0x2efb0b41U,
+    0x5ab3671dU, 0x5292dbd2U, 0x33e91056U, 0x136dd647U,
+    0x8c9ad761U, 0x7a37a10cU, 0x8e59f814U, 0x89eb133cU,
+    0xeecea927U, 0x35b761c9U, 0xede11ce5U, 0x3c7a47b1U,
+    0x599cd2dfU, 0x3f55f273U, 0x791814ceU, 0xbf73c737U,
+    0xea53f7cdU, 0x5b5ffdaaU, 0x14df3d6fU, 0x867844dbU,
+    0x81caaff3U, 0x3eb968c4U, 0x2c382434U, 0x5fc2a340U,
+    0x72161dc3U, 0x0cbce225U, 0x8b283c49U, 0x41ff0d95U,
+    0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U,
+    0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U,
+};
+static const u32 Td2[256] = {
+    0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U,
+    0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U,
+    0xfa552030U, 0x6df6ad76U, 0x769188ccU, 0x4c25f502U,
+    0xd7fc4fe5U, 0xcbd7c52aU, 0x44802635U, 0xa38fb562U,
+    0x5a49deb1U, 0x1b6725baU, 0x0e9845eaU, 0xc0e15dfeU,
+    0x7502c32fU, 0xf012814cU, 0x97a38d46U, 0xf9c66bd3U,
+    0x5fe7038fU, 0x9c951592U, 0x7aebbf6dU, 0x59da9552U,
+    0x832dd4beU, 0x21d35874U, 0x692949e0U, 0xc8448ec9U,
+    0x896a75c2U, 0x7978f48eU, 0x3e6b9958U, 0x71dd27b9U,
+    0x4fb6bee1U, 0xad17f088U, 0xac66c920U, 0x3ab47dceU,
+    0x4a1863dfU, 0x3182e51aU, 0x33609751U, 0x7f456253U,
+    0x77e0b164U, 0xae84bb6bU, 0xa01cfe81U, 0x2b94f908U,
+    0x68587048U, 0xfd198f45U, 0x6c8794deU, 0xf8b7527bU,
+    0xd323ab73U, 0x02e2724bU, 0x8f57e31fU, 0xab2a6655U,
+    0x2807b2ebU, 0xc2032fb5U, 0x7b9a86c5U, 0x08a5d337U,
+    0x87f23028U, 0xa5b223bfU, 0x6aba0203U, 0x825ced16U,
+    0x1c2b8acfU, 0xb492a779U, 0xf2f0f307U, 0xe2a14e69U,
+    0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U,
+    0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U,
+    0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU,
+    0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U,
+    0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U,
+    0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U,
+    0x42bdb0e8U, 0x8b880789U, 0x5b38e719U, 0xeedb79c8U,
+    0x0a47a17cU, 0x0fe97c42U, 0x1ec9f884U, 0x00000000U,
+    0x86830980U, 0xed48322bU, 0x70ac1e11U, 0x724e6c5aU,
+    0xfffbfd0eU, 0x38560f85U, 0xd51e3daeU, 0x3927362dU,
+    0xd9640a0fU, 0xa621685cU, 0x54d19b5bU, 0x2e3a2436U,
+    0x67b10c0aU, 0xe70f9357U, 0x96d2b4eeU, 0x919e1b9bU,
+    0xc54f80c0U, 0x20a261dcU, 0x4b695a77U, 0x1a161c12U,
+    0xba0ae293U, 0x2ae5c0a0U, 0xe0433c22U, 0x171d121bU,
+    0x0d0b0e09U, 0xc7adf28bU, 0xa8b92db6U, 0xa9c8141eU,
+    0x198557f1U, 0x074caf75U, 0xddbbee99U, 0x60fda37fU,
+    0x269ff701U, 0xf5bc5c72U, 0x3bc54466U, 0x7e345bfbU,
+    0x29768b43U, 0xc6dccb23U, 0xfc68b6edU, 0xf163b8e4U,
+    0xdccad731U, 0x85104263U, 0x22401397U, 0x112084c6U,
+    0x247d854aU, 0x3df8d2bbU, 0x3211aef9U, 0xa16dc729U,
+    0x2f4b1d9eU, 0x30f3dcb2U, 0x52ec0d86U, 0xe3d077c1U,
+    0x166c2bb3U, 0xb999a970U, 0x48fa1194U, 0x642247e9U,
+    0x8cc4a8fcU, 0x3f1aa0f0U, 0x2cd8567dU, 0x90ef2233U,
+    0x4ec78749U, 0xd1c1d938U, 0xa2fe8ccaU, 0x0b3698d4U,
+    0x81cfa6f5U, 0xde28a57aU, 0x8e26dab7U, 0xbfa43fadU,
+    0x9de42c3aU, 0x920d5078U, 0xcc9b6a5fU, 0x4662547eU,
+    0x13c2f68dU, 0xb8e890d8U, 0xf75e2e39U, 0xaff582c3U,
+    0x80be9f5dU, 0x937c69d0U, 0x2da96fd5U, 0x12b3cf25U,
+    0x993bc8acU, 0x7da71018U, 0x636ee89cU, 0xbb7bdb3bU,
+    0x7809cd26U, 0x18f46e59U, 0xb701ec9aU, 0x9aa8834fU,
+    0x6e65e695U, 0xe67eaaffU, 0xcf0821bcU, 0xe8e6ef15U,
+    0x9bd9bae7U, 0x36ce4a6fU, 0x09d4ea9fU, 0x7cd629b0U,
+    0xb2af31a4U, 0x23312a3fU, 0x9430c6a5U, 0x66c035a2U,
+    0xbc37744eU, 0xcaa6fc82U, 0xd0b0e090U, 0xd81533a7U,
+    0x984af104U, 0xdaf741ecU, 0x500e7fcdU, 0xf62f1791U,
+    0xd68d764dU, 0xb04d43efU, 0x4d54ccaaU, 0x04dfe496U,
+    0xb5e39ed1U, 0x881b4c6aU, 0x1fb8c12cU, 0x517f4665U,
+    0xea049d5eU, 0x355d018cU, 0x7473fa87U, 0x412efb0bU,
+    0x1d5ab367U, 0xd25292dbU, 0x5633e910U, 0x47136dd6U,
+    0x618c9ad7U, 0x0c7a37a1U, 0x148e59f8U, 0x3c89eb13U,
+    0x27eecea9U, 0xc935b761U, 0xe5ede11cU, 0xb13c7a47U,
+    0xdf599cd2U, 0x733f55f2U, 0xce791814U, 0x37bf73c7U,
+    0xcdea53f7U, 0xaa5b5ffdU, 0x6f14df3dU, 0xdb867844U,
+    0xf381caafU, 0xc43eb968U, 0x342c3824U, 0x405fc2a3U,
+    0xc372161dU, 0x250cbce2U, 0x498b283cU, 0x9541ff0dU,
+    0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U,
+    0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U,
+};
+static const u32 Td3[256] = {
+    0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU,
+    0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU,
+    0x30fa5520U, 0x766df6adU, 0xcc769188U, 0x024c25f5U,
+    0xe5d7fc4fU, 0x2acbd7c5U, 0x35448026U, 0x62a38fb5U,
+    0xb15a49deU, 0xba1b6725U, 0xea0e9845U, 0xfec0e15dU,
+    0x2f7502c3U, 0x4cf01281U, 0x4697a38dU, 0xd3f9c66bU,
+    0x8f5fe703U, 0x929c9515U, 0x6d7aebbfU, 0x5259da95U,
+    0xbe832dd4U, 0x7421d358U, 0xe0692949U, 0xc9c8448eU,
+    0xc2896a75U, 0x8e7978f4U, 0x583e6b99U, 0xb971dd27U,
+    0xe14fb6beU, 0x88ad17f0U, 0x20ac66c9U, 0xce3ab47dU,
+    0xdf4a1863U, 0x1a3182e5U, 0x51336097U, 0x537f4562U,
+    0x6477e0b1U, 0x6bae84bbU, 0x81a01cfeU, 0x082b94f9U,
+    0x48685870U, 0x45fd198fU, 0xde6c8794U, 0x7bf8b752U,
+    0x73d323abU, 0x4b02e272U, 0x1f8f57e3U, 0x55ab2a66U,
+    0xeb2807b2U, 0xb5c2032fU, 0xc57b9a86U, 0x3708a5d3U,
+    0x2887f230U, 0xbfa5b223U, 0x036aba02U, 0x16825cedU,
+    0xcf1c2b8aU, 0x79b492a7U, 0x07f2f0f3U, 0x69e2a14eU,
+    0xdaf4cd65U, 0x05bed506U, 0x34621fd1U, 0xa6fe8ac4U,
+    0x2e539d34U, 0xf355a0a2U, 0x8ae13205U, 0xf6eb75a4U,
+    0x83ec390bU, 0x60efaa40U, 0x719f065eU, 0x6e1051bdU,
+    0x218af93eU, 0xdd063d96U, 0x3e05aeddU, 0xe6bd464dU,
+    0x548db591U, 0xc45d0571U, 0x06d46f04U, 0x5015ff60U,
+    0x98fb2419U, 0xbde997d6U, 0x4043cc89U, 0xd99e7767U,
+    0xe842bdb0U, 0x898b8807U, 0x195b38e7U, 0xc8eedb79U,
+    0x7c0a47a1U, 0x420fe97cU, 0x841ec9f8U, 0x00000000U,
+    0x80868309U, 0x2bed4832U, 0x1170ac1eU, 0x5a724e6cU,
+    0x0efffbfdU, 0x8538560fU, 0xaed51e3dU, 0x2d392736U,
+    0x0fd9640aU, 0x5ca62168U, 0x5b54d19bU, 0x362e3a24U,
+    0x0a67b10cU, 0x57e70f93U, 0xee96d2b4U, 0x9b919e1bU,
+    0xc0c54f80U, 0xdc20a261U, 0x774b695aU, 0x121a161cU,
+    0x93ba0ae2U, 0xa02ae5c0U, 0x22e0433cU, 0x1b171d12U,
+    0x090d0b0eU, 0x8bc7adf2U, 0xb6a8b92dU, 0x1ea9c814U,
+    0xf1198557U, 0x75074cafU, 0x99ddbbeeU, 0x7f60fda3U,
+    0x01269ff7U, 0x72f5bc5cU, 0x663bc544U, 0xfb7e345bU,
+    0x4329768bU, 0x23c6dccbU, 0xedfc68b6U, 0xe4f163b8U,
+    0x31dccad7U, 0x63851042U, 0x97224013U, 0xc6112084U,
+    0x4a247d85U, 0xbb3df8d2U, 0xf93211aeU, 0x29a16dc7U,
+    0x9e2f4b1dU, 0xb230f3dcU, 0x8652ec0dU, 0xc1e3d077U,
+    0xb3166c2bU, 0x70b999a9U, 0x9448fa11U, 0xe9642247U,
+    0xfc8cc4a8U, 0xf03f1aa0U, 0x7d2cd856U, 0x3390ef22U,
+    0x494ec787U, 0x38d1c1d9U, 0xcaa2fe8cU, 0xd40b3698U,
+    0xf581cfa6U, 0x7ade28a5U, 0xb78e26daU, 0xadbfa43fU,
+    0x3a9de42cU, 0x78920d50U, 0x5fcc9b6aU, 0x7e466254U,
+    0x8d13c2f6U, 0xd8b8e890U, 0x39f75e2eU, 0xc3aff582U,
+    0x5d80be9fU, 0xd0937c69U, 0xd52da96fU, 0x2512b3cfU,
+    0xac993bc8U, 0x187da710U, 0x9c636ee8U, 0x3bbb7bdbU,
+    0x267809cdU, 0x5918f46eU, 0x9ab701ecU, 0x4f9aa883U,
+    0x956e65e6U, 0xffe67eaaU, 0xbccf0821U, 0x15e8e6efU,
+    0xe79bd9baU, 0x6f36ce4aU, 0x9f09d4eaU, 0xb07cd629U,
+    0xa4b2af31U, 0x3f23312aU, 0xa59430c6U, 0xa266c035U,
+    0x4ebc3774U, 0x82caa6fcU, 0x90d0b0e0U, 0xa7d81533U,
+    0x04984af1U, 0xecdaf741U, 0xcd500e7fU, 0x91f62f17U,
+    0x4dd68d76U, 0xefb04d43U, 0xaa4d54ccU, 0x9604dfe4U,
+    0xd1b5e39eU, 0x6a881b4cU, 0x2c1fb8c1U, 0x65517f46U,
+    0x5eea049dU, 0x8c355d01U, 0x877473faU, 0x0b412efbU,
+    0x671d5ab3U, 0xdbd25292U, 0x105633e9U, 0xd647136dU,
+    0xd7618c9aU, 0xa10c7a37U, 0xf8148e59U, 0x133c89ebU,
+    0xa927eeceU, 0x61c935b7U, 0x1ce5ede1U, 0x47b13c7aU,
+    0xd2df599cU, 0xf2733f55U, 0x14ce7918U, 0xc737bf73U,
+    0xf7cdea53U, 0xfdaa5b5fU, 0x3d6f14dfU, 0x44db8678U,
+    0xaff381caU, 0x68c43eb9U, 0x24342c38U, 0xa3405fc2U,
+    0x1dc37216U, 0xe2250cbcU, 0x3c498b28U, 0x0d9541ffU,
+    0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
+    0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
+};
+static const u8 Td4[256] = {
+    0x52U, 0x09U, 0x6aU, 0xd5U, 0x30U, 0x36U, 0xa5U, 0x38U,
+    0xbfU, 0x40U, 0xa3U, 0x9eU, 0x81U, 0xf3U, 0xd7U, 0xfbU,
+    0x7cU, 0xe3U, 0x39U, 0x82U, 0x9bU, 0x2fU, 0xffU, 0x87U,
+    0x34U, 0x8eU, 0x43U, 0x44U, 0xc4U, 0xdeU, 0xe9U, 0xcbU,
+    0x54U, 0x7bU, 0x94U, 0x32U, 0xa6U, 0xc2U, 0x23U, 0x3dU,
+    0xeeU, 0x4cU, 0x95U, 0x0bU, 0x42U, 0xfaU, 0xc3U, 0x4eU,
+    0x08U, 0x2eU, 0xa1U, 0x66U, 0x28U, 0xd9U, 0x24U, 0xb2U,
+    0x76U, 0x5bU, 0xa2U, 0x49U, 0x6dU, 0x8bU, 0xd1U, 0x25U,
+    0x72U, 0xf8U, 0xf6U, 0x64U, 0x86U, 0x68U, 0x98U, 0x16U,
+    0xd4U, 0xa4U, 0x5cU, 0xccU, 0x5dU, 0x65U, 0xb6U, 0x92U,
+    0x6cU, 0x70U, 0x48U, 0x50U, 0xfdU, 0xedU, 0xb9U, 0xdaU,
+    0x5eU, 0x15U, 0x46U, 0x57U, 0xa7U, 0x8dU, 0x9dU, 0x84U,
+    0x90U, 0xd8U, 0xabU, 0x00U, 0x8cU, 0xbcU, 0xd3U, 0x0aU,
+    0xf7U, 0xe4U, 0x58U, 0x05U, 0xb8U, 0xb3U, 0x45U, 0x06U,
+    0xd0U, 0x2cU, 0x1eU, 0x8fU, 0xcaU, 0x3fU, 0x0fU, 0x02U,
+    0xc1U, 0xafU, 0xbdU, 0x03U, 0x01U, 0x13U, 0x8aU, 0x6bU,
+    0x3aU, 0x91U, 0x11U, 0x41U, 0x4fU, 0x67U, 0xdcU, 0xeaU,
+    0x97U, 0xf2U, 0xcfU, 0xceU, 0xf0U, 0xb4U, 0xe6U, 0x73U,
+    0x96U, 0xacU, 0x74U, 0x22U, 0xe7U, 0xadU, 0x35U, 0x85U,
+    0xe2U, 0xf9U, 0x37U, 0xe8U, 0x1cU, 0x75U, 0xdfU, 0x6eU,
+    0x47U, 0xf1U, 0x1aU, 0x71U, 0x1dU, 0x29U, 0xc5U, 0x89U,
+    0x6fU, 0xb7U, 0x62U, 0x0eU, 0xaaU, 0x18U, 0xbeU, 0x1bU,
+    0xfcU, 0x56U, 0x3eU, 0x4bU, 0xc6U, 0xd2U, 0x79U, 0x20U,
+    0x9aU, 0xdbU, 0xc0U, 0xfeU, 0x78U, 0xcdU, 0x5aU, 0xf4U,
+    0x1fU, 0xddU, 0xa8U, 0x33U, 0x88U, 0x07U, 0xc7U, 0x31U,
+    0xb1U, 0x12U, 0x10U, 0x59U, 0x27U, 0x80U, 0xecU, 0x5fU,
+    0x60U, 0x51U, 0x7fU, 0xa9U, 0x19U, 0xb5U, 0x4aU, 0x0dU,
+    0x2dU, 0xe5U, 0x7aU, 0x9fU, 0x93U, 0xc9U, 0x9cU, 0xefU,
+    0xa0U, 0xe0U, 0x3bU, 0x4dU, 0xaeU, 0x2aU, 0xf5U, 0xb0U,
+    0xc8U, 0xebU, 0xbbU, 0x3cU, 0x83U, 0x53U, 0x99U, 0x61U,
+    0x17U, 0x2bU, 0x04U, 0x7eU, 0xbaU, 0x77U, 0xd6U, 0x26U,
+    0xe1U, 0x69U, 0x14U, 0x63U, 0x55U, 0x21U, 0x0cU, 0x7dU,
+};
+static const u32 rcon[] = {
+	0x01000000, 0x02000000, 0x04000000, 0x08000000,
+	0x10000000, 0x20000000, 0x40000000, 0x80000000,
+	0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */
+};
+
+/**
+ * Expand the cipher key into the encryption key schedule.
+ */
+int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
+			AES_KEY *key) {
+
+	u32 *rk;
+   	int i = 0;
+	u32 temp;
+
+	if (!userKey || !key)
+		return -1;
+	if (bits != 128 && bits != 192 && bits != 256)
+		return -2;
+
+	rk = key->rd_key;
+
+	if (bits==128)
+		key->rounds = 10;
+	else if (bits==192)
+		key->rounds = 12;
+	else
+		key->rounds = 14;
+
+	rk[0] = GETU32(userKey     );
+	rk[1] = GETU32(userKey +  4);
+	rk[2] = GETU32(userKey +  8);
+	rk[3] = GETU32(userKey + 12);
+	if (bits == 128) {
+		while (1) {
+			temp  = rk[3];
+			rk[4] = rk[0] ^
+				(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
+				(Te3[(temp >>  8) & 0xff] & 0x00ff0000) ^
+				(Te0[(temp      ) & 0xff] & 0x0000ff00) ^
+				(Te1[(temp >> 24)       ] & 0x000000ff) ^
+				rcon[i];
+			rk[5] = rk[1] ^ rk[4];
+			rk[6] = rk[2] ^ rk[5];
+			rk[7] = rk[3] ^ rk[6];
+			if (++i == 10) {
+				return 0;
+			}
+			rk += 4;
+		}
+	}
+	rk[4] = GETU32(userKey + 16);
+	rk[5] = GETU32(userKey + 20);
+	if (bits == 192) {
+		while (1) {
+			temp = rk[ 5];
+			rk[ 6] = rk[ 0] ^
+				(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
+				(Te3[(temp >>  8) & 0xff] & 0x00ff0000) ^
+				(Te0[(temp      ) & 0xff] & 0x0000ff00) ^
+				(Te1[(temp >> 24)       ] & 0x000000ff) ^
+				rcon[i];
+			rk[ 7] = rk[ 1] ^ rk[ 6];
+			rk[ 8] = rk[ 2] ^ rk[ 7];
+			rk[ 9] = rk[ 3] ^ rk[ 8];
+			if (++i == 8) {
+				return 0;
+			}
+			rk[10] = rk[ 4] ^ rk[ 9];
+			rk[11] = rk[ 5] ^ rk[10];
+			rk += 6;
+		}
+	}
+	rk[6] = GETU32(userKey + 24);
+	rk[7] = GETU32(userKey + 28);
+	if (bits == 256) {
+		while (1) {
+			temp = rk[ 7];
+			rk[ 8] = rk[ 0] ^
+				(Te2[(temp >> 16) & 0xff] & 0xff000000) ^
+				(Te3[(temp >>  8) & 0xff] & 0x00ff0000) ^
+				(Te0[(temp      ) & 0xff] & 0x0000ff00) ^
+				(Te1[(temp >> 24)       ] & 0x000000ff) ^
+				rcon[i];
+			rk[ 9] = rk[ 1] ^ rk[ 8];
+			rk[10] = rk[ 2] ^ rk[ 9];
+			rk[11] = rk[ 3] ^ rk[10];
+			if (++i == 7) {
+				return 0;
+			}
+			temp = rk[11];
+			rk[12] = rk[ 4] ^
+				(Te2[(temp >> 24)       ] & 0xff000000) ^
+				(Te3[(temp >> 16) & 0xff] & 0x00ff0000) ^
+				(Te0[(temp >>  8) & 0xff] & 0x0000ff00) ^
+				(Te1[(temp      ) & 0xff] & 0x000000ff);
+			rk[13] = rk[ 5] ^ rk[12];
+			rk[14] = rk[ 6] ^ rk[13];
+			rk[15] = rk[ 7] ^ rk[14];
+
+			rk += 8;
+        	}
+	}
+	return 0;
+}
+
+/**
+ * Expand the cipher key into the decryption key schedule.
+ */
+int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
+			 AES_KEY *key) {
+
+        u32 *rk;
+	int i, j, status;
+	u32 temp;
+
+	/* first, start with an encryption schedule */
+	status = AES_set_encrypt_key(userKey, bits, key);
+	if (status < 0)
+		return status;
+
+	rk = key->rd_key;
+
+	/* invert the order of the round keys: */
+	for (i = 0, j = 4*(key->rounds); i < j; i += 4, j -= 4) {
+		temp = rk[i    ]; rk[i    ] = rk[j    ]; rk[j    ] = temp;
+		temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp;
+		temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp;
+		temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp;
+	}
+	/* apply the inverse MixColumn transform to all round keys but the first and the last: */
+	for (i = 1; i < (key->rounds); i++) {
+		rk += 4;
+		rk[0] =
+			Td0[Te1[(rk[0] >> 24)       ] & 0xff] ^
+			Td1[Te1[(rk[0] >> 16) & 0xff] & 0xff] ^
+			Td2[Te1[(rk[0] >>  8) & 0xff] & 0xff] ^
+			Td3[Te1[(rk[0]      ) & 0xff] & 0xff];
+		rk[1] =
+			Td0[Te1[(rk[1] >> 24)       ] & 0xff] ^
+			Td1[Te1[(rk[1] >> 16) & 0xff] & 0xff] ^
+			Td2[Te1[(rk[1] >>  8) & 0xff] & 0xff] ^
+			Td3[Te1[(rk[1]      ) & 0xff] & 0xff];
+		rk[2] =
+			Td0[Te1[(rk[2] >> 24)       ] & 0xff] ^
+			Td1[Te1[(rk[2] >> 16) & 0xff] & 0xff] ^
+			Td2[Te1[(rk[2] >>  8) & 0xff] & 0xff] ^
+			Td3[Te1[(rk[2]      ) & 0xff] & 0xff];
+		rk[3] =
+			Td0[Te1[(rk[3] >> 24)       ] & 0xff] ^
+			Td1[Te1[(rk[3] >> 16) & 0xff] & 0xff] ^
+			Td2[Te1[(rk[3] >>  8) & 0xff] & 0xff] ^
+			Td3[Te1[(rk[3]      ) & 0xff] & 0xff];
+	}
+	return 0;
+}
+
+/*
+ * Encrypt a single block
+ * in and out can overlap
+ */
+void AES_encrypt(const unsigned char *in, unsigned char *out,
+		 const AES_KEY *key) {
+
+	const u32 *rk;
+	u32 s0, s1, s2, s3, t0, t1, t2, t3;
+#ifndef FULL_UNROLL
+	int r;
+#endif /* ?FULL_UNROLL */
+
+	assert(in && out && key);
+	rk = key->rd_key;
+
+	/*
+	 * map byte array block to cipher state
+	 * and add initial round key:
+	 */
+	s0 = GETU32(in     ) ^ rk[0];
+	s1 = GETU32(in +  4) ^ rk[1];
+	s2 = GETU32(in +  8) ^ rk[2];
+	s3 = GETU32(in + 12) ^ rk[3];
+#ifdef FULL_UNROLL
+	/* round 1: */
+   	t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >>  8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[ 4];
+   	t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >>  8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[ 5];
+   	t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >>  8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[ 6];
+   	t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >>  8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[ 7];
+   	/* round 2: */
+   	s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >>  8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[ 8];
+   	s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >>  8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[ 9];
+   	s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >>  8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[10];
+   	s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >>  8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[11];
+	/* round 3: */
+   	t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >>  8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[12];
+   	t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >>  8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[13];
+   	t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >>  8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[14];
+   	t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >>  8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[15];
+   	/* round 4: */
+   	s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >>  8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[16];
+   	s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >>  8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[17];
+   	s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >>  8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[18];
+   	s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >>  8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[19];
+	/* round 5: */
+   	t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >>  8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[20];
+   	t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >>  8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[21];
+   	t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >>  8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[22];
+   	t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >>  8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[23];
+   	/* round 6: */
+   	s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >>  8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[24];
+   	s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >>  8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[25];
+   	s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >>  8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[26];
+   	s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >>  8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[27];
+	/* round 7: */
+   	t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >>  8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[28];
+   	t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >>  8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[29];
+   	t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >>  8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[30];
+   	t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >>  8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[31];
+   	/* round 8: */
+   	s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >>  8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[32];
+   	s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >>  8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[33];
+   	s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >>  8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[34];
+   	s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >>  8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[35];
+	/* round 9: */
+   	t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >>  8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[36];
+   	t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >>  8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[37];
+   	t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >>  8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[38];
+   	t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >>  8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[39];
+    if (key->rounds > 10) {
+        /* round 10: */
+        s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >>  8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[40];
+        s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >>  8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[41];
+        s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >>  8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[42];
+        s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >>  8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[43];
+        /* round 11: */
+        t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >>  8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[44];
+        t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >>  8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[45];
+        t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >>  8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[46];
+        t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >>  8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[47];
+        if (key->rounds > 12) {
+            /* round 12: */
+            s0 = Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >>  8) & 0xff] ^ Te3[t3 & 0xff] ^ rk[48];
+            s1 = Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >>  8) & 0xff] ^ Te3[t0 & 0xff] ^ rk[49];
+            s2 = Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >>  8) & 0xff] ^ Te3[t1 & 0xff] ^ rk[50];
+            s3 = Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >>  8) & 0xff] ^ Te3[t2 & 0xff] ^ rk[51];
+            /* round 13: */
+            t0 = Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >>  8) & 0xff] ^ Te3[s3 & 0xff] ^ rk[52];
+            t1 = Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >>  8) & 0xff] ^ Te3[s0 & 0xff] ^ rk[53];
+            t2 = Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >>  8) & 0xff] ^ Te3[s1 & 0xff] ^ rk[54];
+            t3 = Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >>  8) & 0xff] ^ Te3[s2 & 0xff] ^ rk[55];
+        }
+    }
+    rk += key->rounds << 2;
+#else  /* !FULL_UNROLL */
+    /*
+     * Nr - 1 full rounds:
+     */
+    r = key->rounds >> 1;
+    for (;;) {
+        t0 =
+            Te0[(s0 >> 24)       ] ^
+            Te1[(s1 >> 16) & 0xff] ^
+            Te2[(s2 >>  8) & 0xff] ^
+            Te3[(s3      ) & 0xff] ^
+            rk[4];
+        t1 =
+            Te0[(s1 >> 24)       ] ^
+            Te1[(s2 >> 16) & 0xff] ^
+            Te2[(s3 >>  8) & 0xff] ^
+            Te3[(s0      ) & 0xff] ^
+            rk[5];
+        t2 =
+            Te0[(s2 >> 24)       ] ^
+            Te1[(s3 >> 16) & 0xff] ^
+            Te2[(s0 >>  8) & 0xff] ^
+            Te3[(s1      ) & 0xff] ^
+            rk[6];
+        t3 =
+            Te0[(s3 >> 24)       ] ^
+            Te1[(s0 >> 16) & 0xff] ^
+            Te2[(s1 >>  8) & 0xff] ^
+            Te3[(s2      ) & 0xff] ^
+            rk[7];
+
+        rk += 8;
+        if (--r == 0) {
+            break;
+        }
+
+        s0 =
+            Te0[(t0 >> 24)       ] ^
+            Te1[(t1 >> 16) & 0xff] ^
+            Te2[(t2 >>  8) & 0xff] ^
+            Te3[(t3      ) & 0xff] ^
+            rk[0];
+        s1 =
+            Te0[(t1 >> 24)       ] ^
+            Te1[(t2 >> 16) & 0xff] ^
+            Te2[(t3 >>  8) & 0xff] ^
+            Te3[(t0      ) & 0xff] ^
+            rk[1];
+        s2 =
+            Te0[(t2 >> 24)       ] ^
+            Te1[(t3 >> 16) & 0xff] ^
+            Te2[(t0 >>  8) & 0xff] ^
+            Te3[(t1      ) & 0xff] ^
+            rk[2];
+        s3 =
+            Te0[(t3 >> 24)       ] ^
+            Te1[(t0 >> 16) & 0xff] ^
+            Te2[(t1 >>  8) & 0xff] ^
+            Te3[(t2      ) & 0xff] ^
+            rk[3];
+    }
+#endif /* ?FULL_UNROLL */
+    /*
+	 * apply last round and
+	 * map cipher state to byte array block:
+	 */
+	s0 =
+		(Te2[(t0 >> 24)       ] & 0xff000000) ^
+		(Te3[(t1 >> 16) & 0xff] & 0x00ff0000) ^
+		(Te0[(t2 >>  8) & 0xff] & 0x0000ff00) ^
+		(Te1[(t3      ) & 0xff] & 0x000000ff) ^
+		rk[0];
+	PUTU32(out     , s0);
+	s1 =
+		(Te2[(t1 >> 24)       ] & 0xff000000) ^
+		(Te3[(t2 >> 16) & 0xff] & 0x00ff0000) ^
+		(Te0[(t3 >>  8) & 0xff] & 0x0000ff00) ^
+		(Te1[(t0      ) & 0xff] & 0x000000ff) ^
+		rk[1];
+	PUTU32(out +  4, s1);
+	s2 =
+		(Te2[(t2 >> 24)       ] & 0xff000000) ^
+		(Te3[(t3 >> 16) & 0xff] & 0x00ff0000) ^
+		(Te0[(t0 >>  8) & 0xff] & 0x0000ff00) ^
+		(Te1[(t1      ) & 0xff] & 0x000000ff) ^
+		rk[2];
+	PUTU32(out +  8, s2);
+	s3 =
+		(Te2[(t3 >> 24)       ] & 0xff000000) ^
+		(Te3[(t0 >> 16) & 0xff] & 0x00ff0000) ^
+		(Te0[(t1 >>  8) & 0xff] & 0x0000ff00) ^
+		(Te1[(t2      ) & 0xff] & 0x000000ff) ^
+		rk[3];
+	PUTU32(out + 12, s3);
+}
+
+/*
+ * Decrypt a single block
+ * in and out can overlap
+ */
+void AES_decrypt(const unsigned char *in, unsigned char *out,
+		 const AES_KEY *key) {
+
+	const u32 *rk;
+	u32 s0, s1, s2, s3, t0, t1, t2, t3;
+#ifndef FULL_UNROLL
+	int r;
+#endif /* ?FULL_UNROLL */
+
+	assert(in && out && key);
+	rk = key->rd_key;
+
+	/*
+	 * map byte array block to cipher state
+	 * and add initial round key:
+	 */
+    s0 = GETU32(in     ) ^ rk[0];
+    s1 = GETU32(in +  4) ^ rk[1];
+    s2 = GETU32(in +  8) ^ rk[2];
+    s3 = GETU32(in + 12) ^ rk[3];
+#ifdef FULL_UNROLL
+    /* round 1: */
+    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[ 4];
+    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[ 5];
+    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[ 6];
+    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[ 7];
+    /* round 2: */
+    s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[ 8];
+    s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[ 9];
+    s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[10];
+    s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[11];
+    /* round 3: */
+    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[12];
+    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[13];
+    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[14];
+    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[15];
+    /* round 4: */
+    s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[16];
+    s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[17];
+    s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[18];
+    s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[19];
+    /* round 5: */
+    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[20];
+    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[21];
+    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[22];
+    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[23];
+    /* round 6: */
+    s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[24];
+    s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[25];
+    s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[26];
+    s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[27];
+    /* round 7: */
+    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[28];
+    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[29];
+    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[30];
+    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[31];
+    /* round 8: */
+    s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[32];
+    s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[33];
+    s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[34];
+    s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[35];
+    /* round 9: */
+    t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[36];
+    t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[37];
+    t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[38];
+    t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[39];
+    if (key->rounds > 10) {
+        /* round 10: */
+        s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[40];
+        s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[41];
+        s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[42];
+        s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[43];
+        /* round 11: */
+        t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[44];
+        t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[45];
+        t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[46];
+        t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[47];
+        if (key->rounds > 12) {
+            /* round 12: */
+            s0 = Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >>  8) & 0xff] ^ Td3[t1 & 0xff] ^ rk[48];
+            s1 = Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >>  8) & 0xff] ^ Td3[t2 & 0xff] ^ rk[49];
+            s2 = Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >>  8) & 0xff] ^ Td3[t3 & 0xff] ^ rk[50];
+            s3 = Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >>  8) & 0xff] ^ Td3[t0 & 0xff] ^ rk[51];
+            /* round 13: */
+            t0 = Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >>  8) & 0xff] ^ Td3[s1 & 0xff] ^ rk[52];
+            t1 = Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >>  8) & 0xff] ^ Td3[s2 & 0xff] ^ rk[53];
+            t2 = Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >>  8) & 0xff] ^ Td3[s3 & 0xff] ^ rk[54];
+            t3 = Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >>  8) & 0xff] ^ Td3[s0 & 0xff] ^ rk[55];
+        }
+    }
+	rk += key->rounds << 2;
+#else  /* !FULL_UNROLL */
+    /*
+     * Nr - 1 full rounds:
+     */
+    r = key->rounds >> 1;
+    for (;;) {
+        t0 =
+            Td0[(s0 >> 24)       ] ^
+            Td1[(s3 >> 16) & 0xff] ^
+            Td2[(s2 >>  8) & 0xff] ^
+            Td3[(s1      ) & 0xff] ^
+            rk[4];
+        t1 =
+            Td0[(s1 >> 24)       ] ^
+            Td1[(s0 >> 16) & 0xff] ^
+            Td2[(s3 >>  8) & 0xff] ^
+            Td3[(s2      ) & 0xff] ^
+            rk[5];
+        t2 =
+            Td0[(s2 >> 24)       ] ^
+            Td1[(s1 >> 16) & 0xff] ^
+            Td2[(s0 >>  8) & 0xff] ^
+            Td3[(s3      ) & 0xff] ^
+            rk[6];
+        t3 =
+            Td0[(s3 >> 24)       ] ^
+            Td1[(s2 >> 16) & 0xff] ^
+            Td2[(s1 >>  8) & 0xff] ^
+            Td3[(s0      ) & 0xff] ^
+            rk[7];
+
+        rk += 8;
+        if (--r == 0) {
+            break;
+        }
+
+        s0 =
+            Td0[(t0 >> 24)       ] ^
+            Td1[(t3 >> 16) & 0xff] ^
+            Td2[(t2 >>  8) & 0xff] ^
+            Td3[(t1      ) & 0xff] ^
+            rk[0];
+        s1 =
+            Td0[(t1 >> 24)       ] ^
+            Td1[(t0 >> 16) & 0xff] ^
+            Td2[(t3 >>  8) & 0xff] ^
+            Td3[(t2      ) & 0xff] ^
+            rk[1];
+        s2 =
+            Td0[(t2 >> 24)       ] ^
+            Td1[(t1 >> 16) & 0xff] ^
+            Td2[(t0 >>  8) & 0xff] ^
+            Td3[(t3      ) & 0xff] ^
+            rk[2];
+        s3 =
+            Td0[(t3 >> 24)       ] ^
+            Td1[(t2 >> 16) & 0xff] ^
+            Td2[(t1 >>  8) & 0xff] ^
+            Td3[(t0      ) & 0xff] ^
+            rk[3];
+    }
+#endif /* ?FULL_UNROLL */
+    /*
+	 * apply last round and
+	 * map cipher state to byte array block:
+	 */
+   	s0 =
+   		(Td4[(t0 >> 24)       ] << 24) ^
+   		(Td4[(t3 >> 16) & 0xff] << 16) ^
+   		(Td4[(t2 >>  8) & 0xff] <<  8) ^
+   		(Td4[(t1      ) & 0xff])       ^
+   		rk[0];
+	PUTU32(out     , s0);
+   	s1 =
+   		(Td4[(t1 >> 24)       ] << 24) ^
+   		(Td4[(t0 >> 16) & 0xff] << 16) ^
+   		(Td4[(t3 >>  8) & 0xff] <<  8) ^
+   		(Td4[(t2      ) & 0xff])       ^
+   		rk[1];
+	PUTU32(out +  4, s1);
+   	s2 =
+   		(Td4[(t2 >> 24)       ] << 24) ^
+   		(Td4[(t1 >> 16) & 0xff] << 16) ^
+   		(Td4[(t0 >>  8) & 0xff] <<  8) ^
+   		(Td4[(t3      ) & 0xff])       ^
+   		rk[2];
+	PUTU32(out +  8, s2);
+   	s3 =
+   		(Td4[(t3 >> 24)       ] << 24) ^
+   		(Td4[(t2 >> 16) & 0xff] << 16) ^
+   		(Td4[(t1 >>  8) & 0xff] <<  8) ^
+   		(Td4[(t0      ) & 0xff])       ^
+   		rk[3];
+	PUTU32(out + 12, s3);
+}
+
+#else /* AES_ASM */
+
+static const u8 Te4[256] = {
+    0x63U, 0x7cU, 0x77U, 0x7bU, 0xf2U, 0x6bU, 0x6fU, 0xc5U,
+    0x30U, 0x01U, 0x67U, 0x2bU, 0xfeU, 0xd7U, 0xabU, 0x76U,
+    0xcaU, 0x82U, 0xc9U, 0x7dU, 0xfaU, 0x59U, 0x47U, 0xf0U,
+    0xadU, 0xd4U, 0xa2U, 0xafU, 0x9cU, 0xa4U, 0x72U, 0xc0U,
+    0xb7U, 0xfdU, 0x93U, 0x26U, 0x36U, 0x3fU, 0xf7U, 0xccU,
+    0x34U, 0xa5U, 0xe5U, 0xf1U, 0x71U, 0xd8U, 0x31U, 0x15U,
+    0x04U, 0xc7U, 0x23U, 0xc3U, 0x18U, 0x96U, 0x05U, 0x9aU,
+    0x07U, 0x12U, 0x80U, 0xe2U, 0xebU, 0x27U, 0xb2U, 0x75U,
+    0x09U, 0x83U, 0x2cU, 0x1aU, 0x1bU, 0x6eU, 0x5aU, 0xa0U,
+    0x52U, 0x3bU, 0xd6U, 0xb3U, 0x29U, 0xe3U, 0x2fU, 0x84U,
+    0x53U, 0xd1U, 0x00U, 0xedU, 0x20U, 0xfcU, 0xb1U, 0x5bU,
+    0x6aU, 0xcbU, 0xbeU, 0x39U, 0x4aU, 0x4cU, 0x58U, 0xcfU,
+    0xd0U, 0xefU, 0xaaU, 0xfbU, 0x43U, 0x4dU, 0x33U, 0x85U,
+    0x45U, 0xf9U, 0x02U, 0x7fU, 0x50U, 0x3cU, 0x9fU, 0xa8U,
+    0x51U, 0xa3U, 0x40U, 0x8fU, 0x92U, 0x9dU, 0x38U, 0xf5U,
+    0xbcU, 0xb6U, 0xdaU, 0x21U, 0x10U, 0xffU, 0xf3U, 0xd2U,
+    0xcdU, 0x0cU, 0x13U, 0xecU, 0x5fU, 0x97U, 0x44U, 0x17U,
+    0xc4U, 0xa7U, 0x7eU, 0x3dU, 0x64U, 0x5dU, 0x19U, 0x73U,
+    0x60U, 0x81U, 0x4fU, 0xdcU, 0x22U, 0x2aU, 0x90U, 0x88U,
+    0x46U, 0xeeU, 0xb8U, 0x14U, 0xdeU, 0x5eU, 0x0bU, 0xdbU,
+    0xe0U, 0x32U, 0x3aU, 0x0aU, 0x49U, 0x06U, 0x24U, 0x5cU,
+    0xc2U, 0xd3U, 0xacU, 0x62U, 0x91U, 0x95U, 0xe4U, 0x79U,
+    0xe7U, 0xc8U, 0x37U, 0x6dU, 0x8dU, 0xd5U, 0x4eU, 0xa9U,
+    0x6cU, 0x56U, 0xf4U, 0xeaU, 0x65U, 0x7aU, 0xaeU, 0x08U,
+    0xbaU, 0x78U, 0x25U, 0x2eU, 0x1cU, 0xa6U, 0xb4U, 0xc6U,
+    0xe8U, 0xddU, 0x74U, 0x1fU, 0x4bU, 0xbdU, 0x8bU, 0x8aU,
+    0x70U, 0x3eU, 0xb5U, 0x66U, 0x48U, 0x03U, 0xf6U, 0x0eU,
+    0x61U, 0x35U, 0x57U, 0xb9U, 0x86U, 0xc1U, 0x1dU, 0x9eU,
+    0xe1U, 0xf8U, 0x98U, 0x11U, 0x69U, 0xd9U, 0x8eU, 0x94U,
+    0x9bU, 0x1eU, 0x87U, 0xe9U, 0xceU, 0x55U, 0x28U, 0xdfU,
+    0x8cU, 0xa1U, 0x89U, 0x0dU, 0xbfU, 0xe6U, 0x42U, 0x68U,
+    0x41U, 0x99U, 0x2dU, 0x0fU, 0xb0U, 0x54U, 0xbbU, 0x16U
+};
+static const u32 rcon[] = {
+	0x01000000, 0x02000000, 0x04000000, 0x08000000,
+	0x10000000, 0x20000000, 0x40000000, 0x80000000,
+	0x1B000000, 0x36000000, /* for 128-bit blocks, Rijndael never uses more than 10 rcon values */
+};
+
+/**
+ * Expand the cipher key into the encryption key schedule.
+ */
+int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
+			AES_KEY *key) {
+	u32 *rk;
+   	int i = 0;
+	u32 temp;
+
+	if (!userKey || !key)
+		return -1;
+	if (bits != 128 && bits != 192 && bits != 256)
+		return -2;
+
+	rk = key->rd_key;
+
+	if (bits==128)
+		key->rounds = 10;
+	else if (bits==192)
+		key->rounds = 12;
+	else
+		key->rounds = 14;
+
+	rk[0] = GETU32(userKey     );
+	rk[1] = GETU32(userKey +  4);
+	rk[2] = GETU32(userKey +  8);
+	rk[3] = GETU32(userKey + 12);
+	if (bits == 128) {
+		while (1) {
+			temp  = rk[3];
+			rk[4] = rk[0] ^
+				(Te4[(temp >> 16) & 0xff] << 24) ^
+				(Te4[(temp >>  8) & 0xff] << 16) ^
+				(Te4[(temp      ) & 0xff] << 8) ^
+				(Te4[(temp >> 24)       ]) ^
+				rcon[i];
+			rk[5] = rk[1] ^ rk[4];
+			rk[6] = rk[2] ^ rk[5];
+			rk[7] = rk[3] ^ rk[6];
+			if (++i == 10) {
+				return 0;
+			}
+			rk += 4;
+		}
+	}
+	rk[4] = GETU32(userKey + 16);
+	rk[5] = GETU32(userKey + 20);
+	if (bits == 192) {
+		while (1) {
+			temp = rk[ 5];
+			rk[ 6] = rk[ 0] ^
+				(Te4[(temp >> 16) & 0xff] << 24) ^
+				(Te4[(temp >>  8) & 0xff] << 16) ^
+				(Te4[(temp      ) & 0xff] << 8) ^
+				(Te4[(temp >> 24)       ]) ^
+				rcon[i];
+			rk[ 7] = rk[ 1] ^ rk[ 6];
+			rk[ 8] = rk[ 2] ^ rk[ 7];
+			rk[ 9] = rk[ 3] ^ rk[ 8];
+			if (++i == 8) {
+				return 0;
+			}
+			rk[10] = rk[ 4] ^ rk[ 9];
+			rk[11] = rk[ 5] ^ rk[10];
+			rk += 6;
+		}
+	}
+	rk[6] = GETU32(userKey + 24);
+	rk[7] = GETU32(userKey + 28);
+	if (bits == 256) {
+		while (1) {
+			temp = rk[ 7];
+			rk[ 8] = rk[ 0] ^
+				(Te4[(temp >> 16) & 0xff] << 24) ^
+				(Te4[(temp >>  8) & 0xff] << 16) ^
+				(Te4[(temp      ) & 0xff] << 8) ^
+				(Te4[(temp >> 24)       ]) ^
+				rcon[i];
+			rk[ 9] = rk[ 1] ^ rk[ 8];
+			rk[10] = rk[ 2] ^ rk[ 9];
+			rk[11] = rk[ 3] ^ rk[10];
+			if (++i == 7) {
+				return 0;
+			}
+			temp = rk[11];
+			rk[12] = rk[ 4] ^
+				(Te4[(temp >> 24)       ] << 24) ^
+				(Te4[(temp >> 16) & 0xff] << 16) ^
+				(Te4[(temp >>  8) & 0xff] << 8) ^
+				(Te4[(temp      ) & 0xff]);
+			rk[13] = rk[ 5] ^ rk[12];
+			rk[14] = rk[ 6] ^ rk[13];
+			rk[15] = rk[ 7] ^ rk[14];
+
+			rk += 8;
+        	}
+	}
+	return 0;
+}
+
+/**
+ * Expand the cipher key into the decryption key schedule.
+ */
+int AES_set_decrypt_key(const unsigned char *userKey, const int bits,
+			 AES_KEY *key) {
+
+        u32 *rk;
+	int i, j, status;
+	u32 temp;
+
+	/* first, start with an encryption schedule */
+	status = AES_set_encrypt_key(userKey, bits, key);
+	if (status < 0)
+		return status;
+
+	rk = key->rd_key;
+
+	/* invert the order of the round keys: */
+	for (i = 0, j = 4*(key->rounds); i < j; i += 4, j -= 4) {
+		temp = rk[i    ]; rk[i    ] = rk[j    ]; rk[j    ] = temp;
+		temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp;
+		temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp;
+		temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp;
+	}
+	/* apply the inverse MixColumn transform to all round keys but the first and the last: */
+	for (i = 1; i < (key->rounds); i++) {
+		rk += 4;
+		for (j = 0; j < 4; j++) {
+			u32 tp1, tp2, tp4, tp8, tp9, tpb, tpd, tpe, m;
+
+			tp1 = rk[j];
+			m = tp1 & 0x80808080;
+			tp2 = ((tp1 & 0x7f7f7f7f) << 1) ^
+				((m - (m >> 7)) & 0x1b1b1b1b);
+			m = tp2 & 0x80808080;
+			tp4 = ((tp2 & 0x7f7f7f7f) << 1) ^
+				((m - (m >> 7)) & 0x1b1b1b1b);
+			m = tp4 & 0x80808080;
+			tp8 = ((tp4 & 0x7f7f7f7f) << 1) ^
+				((m - (m >> 7)) & 0x1b1b1b1b);
+			tp9 = tp8 ^ tp1;
+			tpb = tp9 ^ tp2;
+			tpd = tp9 ^ tp4;
+			tpe = tp8 ^ tp4 ^ tp2;
+#if defined(ROTATE)
+			rk[j] = tpe ^ ROTATE(tpd,16) ^
+				ROTATE(tp9,24) ^ ROTATE(tpb,8);
+#else
+			rk[j] = tpe ^ (tpd >> 16) ^ (tpd << 16) ^ 
+				(tp9 >> 8) ^ (tp9 << 24) ^
+				(tpb >> 24) ^ (tpb << 8);
+#endif
+		}
+	}
+	return 0;
+}
+
+#endif /* AES_ASM */
diff --git a/snmplib/openssl/openssl_aes_local.h b/snmplib/openssl/openssl_aes_local.h
new file mode 100644
index 0000000..319832e
--- /dev/null
+++ b/snmplib/openssl/openssl_aes_local.h
@@ -0,0 +1,87 @@
+/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */
+/* ====================================================================
+ * Copyright (c) 1998-2002 The OpenSSL Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ *    endorse or promote products derived from this software without
+ *    prior written permission. For written permission, please contact
+ *    openssl-core@openssl.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ *    nor may "OpenSSL" appear in their names without prior written
+ *    permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ */
+
+#ifndef HEADER_AES_LOCL_H
+#define HEADER_AES_LOCL_H
+
+#ifdef OPENSSL_NO_AES
+#error AES is disabled.
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64))
+# define SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00)
+# define GETU32(p) SWAP(*((u32 *)(p)))
+# define PUTU32(ct, st) { *((u32 *)(ct)) = SWAP((st)); }
+#else
+# define GETU32(pt) (((u32)(pt)[0] << 24) ^ ((u32)(pt)[1] << 16) ^ ((u32)(pt)[2] <<  8) ^ ((u32)(pt)[3]))
+# define PUTU32(ct, st) { (ct)[0] = (u8)((st) >> 24); (ct)[1] = (u8)((st) >> 16); (ct)[2] = (u8)((st) >>  8); (ct)[3] = (u8)(st); }
+#endif
+
+#ifdef AES_LONG
+typedef unsigned long u32;
+#else
+typedef unsigned int u32;
+#endif
+typedef unsigned short u16;
+typedef unsigned char u8;
+
+#define MAXKC   (256/32)
+#define MAXKB   (256/8)
+#define MAXNR   14
+
+/* This controls loop-unrolling in aes_core.c */
+#undef FULL_UNROLL
+
+#endif /* !HEADER_AES_LOCL_H */
diff --git a/snmplib/openssl/openssl_cbc_enc.c b/snmplib/openssl/openssl_cbc_enc.c
new file mode 100644
index 0000000..a91df83
--- /dev/null
+++ b/snmplib/openssl/openssl_cbc_enc.c
@@ -0,0 +1,61 @@
+/* crypto/des/cbc_enc.c */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+#define CBC_ENC_C__DONT_UPDATE_IV
+
+#include "openssl_ncbc_enc.c" /* des_cbc_encrypt */
diff --git a/snmplib/openssl/openssl_cfb128.c b/snmplib/openssl/openssl_cfb128.c
new file mode 100644
index 0000000..5e0bc1e
--- /dev/null
+++ b/snmplib/openssl/openssl_cfb128.c
@@ -0,0 +1,250 @@
+/* ====================================================================
+ * Copyright (c) 2008 The OpenSSL Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ *    endorse or promote products derived from this software without
+ *    prior written permission. For written permission, please contact
+ *    openssl-core@openssl.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ *    nor may "OpenSSL" appear in their names without prior written
+ *    permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ */
+
+#include "openssl_modes.h"
+#include <string.h>
+
+#ifndef MODES_DEBUG
+# ifndef NDEBUG
+#  define NDEBUG
+# endif
+#endif
+#include <assert.h>
+
+#define STRICT_ALIGNMENT
+#if defined(__i386) || defined(__i386__) || \
+    defined(__x86_64) || defined(__x86_64__) || \
+    defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || \
+    defined(__s390__) || defined(__s390x__)
+#  undef STRICT_ALIGNMENT
+#endif
+
+/* The input and output encrypted as though 128bit cfb mode is being
+ * used.  The extra state information to record how much of the
+ * 128bit block we have used is contained in *num;
+ */
+void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out,
+			size_t len, const void *key,
+			unsigned char ivec[16], int *num,
+			int enc, block128_f block)
+{
+    unsigned int n;
+    size_t l = 0;
+
+    assert(in && out && key && ivec && num);
+
+    n = *num;
+
+    if (enc) {
+#if !defined(OPENSSL_SMALL_FOOTPRINT)
+	if (16%sizeof(size_t) == 0) do {	/* always true actually */
+		while (n && len) {
+			*(out++) = ivec[n] ^= *(in++);
+			--len;
+			n = (n+1) % 16;
+		}
+#if defined(STRICT_ALIGNMENT)
+		if (((size_t)in|(size_t)out|(size_t)ivec)%sizeof(size_t) != 0)
+			break;
+#endif
+		while (len>=16) {
+			(*block)(ivec, ivec, key);
+			for (n=0; n<16; n+=sizeof(size_t)) {
+				*(size_t*)(out+n) =
+				*(size_t*)(ivec+n) ^= *(const size_t*)(in+n);
+			}
+			len -= 16;
+			out += 16;
+			in  += 16;
+		}
+		n = 0;
+		if (len) {
+			(*block)(ivec, ivec, key);
+			while (len--) {
+				out[n] = ivec[n] ^= in[n];
+				++n;
+			}
+		}
+		*num = n;
+		return;
+	} while (0);
+	/* the rest would be commonly eliminated by x86* compiler */
+#endif
+	while (l<len) {
+		if (n == 0) {
+			(*block)(ivec, ivec, key);
+		}
+		out[l] = ivec[n] ^= in[l];
+		++l;
+		n = (n+1) % 16;
+	}
+	*num = n;
+    } else {
+#if !defined(OPENSSL_SMALL_FOOTPRINT)
+	if (16%sizeof(size_t) == 0) do {	/* always true actually */
+		while (n && len) {
+			unsigned char c;
+			*(out++) = ivec[n] ^ (c = *(in++)); ivec[n] = c;
+			--len;
+			n = (n+1) % 16;
+ 		}
+#if defined(STRICT_ALIGNMENT)
+		if (((size_t)in|(size_t)out|(size_t)ivec)%sizeof(size_t) != 0)
+			break;
+#endif
+		while (len>=16) {
+			(*block)(ivec, ivec, key);
+			for (n=0; n<16; n+=sizeof(size_t)) {
+				size_t t = *(const size_t*)(in+n);
+				*(size_t*)(out+n) = *(const size_t*)(ivec+n) ^ t;
+				*(size_t*)(ivec+n) = t;
+			}
+			len -= 16;
+			out += 16;
+			in  += 16;
+		}
+		n = 0;
+		if (len) {
+			(*block)(ivec, ivec, key);
+			while (len--) {
+				unsigned char c;
+				out[n] = ivec[n] ^ (c = in[n]); ivec[n] = c;
+				++n;
+			}
+ 		}
+		*num = n;
+		return;
+	} while (0);
+	/* the rest would be commonly eliminated by x86* compiler */
+#endif
+	while (l<len) {
+		unsigned char c;
+		if (n == 0) {
+			(*block)(ivec, ivec, key);
+		}
+		out[l] = ivec[n] ^ (c = in[l]); ivec[n] = c;
+		++l;
+		n = (n+1) % 16;
+	}
+	*num=n;
+    }
+}
+
+/* This expects a single block of size nbits for both in and out. Note that
+   it corrupts any extra bits in the last byte of out */
+static void cfbr_encrypt_block(const unsigned char *in,unsigned char *out,
+			    int nbits,const void *key,
+			    unsigned char ivec[16],int enc,
+			    block128_f block)
+{
+    int n,rem,num;
+    unsigned char ovec[16*2 + 1];  /* +1 because we dererefence (but don't use) one byte off the end */
+
+    if (nbits<=0 || nbits>128) return;
+
+	/* fill in the first half of the new IV with the current IV */
+	memcpy(ovec,ivec,16);
+	/* construct the new IV */
+	(*block)(ivec,ivec,key);
+	num = (nbits+7)/8;
+	if (enc)	/* encrypt the input */
+	    for(n=0 ; n < num ; ++n)
+		out[n] = (ovec[16+n] = in[n] ^ ivec[n]);
+	else		/* decrypt the input */
+	    for(n=0 ; n < num ; ++n)
+		out[n] = (ovec[16+n] = in[n]) ^ ivec[n];
+	/* shift ovec left... */
+	rem = nbits%8;
+	num = nbits/8;
+	if(rem==0)
+	    memcpy(ivec,ovec+num,16);
+	else
+	    for(n=0 ; n < 16 ; ++n)
+		ivec[n] = ovec[n+num]<<rem | ovec[n+num+1]>>(8-rem);
+
+    /* it is not necessary to cleanse ovec, since the IV is not secret */
+}
+
+/* N.B. This expects the input to be packed, MS bit first */
+void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out,
+		 	size_t bits, const void *key,
+			unsigned char ivec[16], int *num,
+			int enc, block128_f block)
+{
+    size_t n;
+    unsigned char c[1],d[1];
+
+    assert(in && out && key && ivec && num);
+    assert(*num == 0);
+
+    memset(out,0,(bits+7)/8);
+    for(n=0 ; n<bits ; ++n)
+	{
+	c[0]=(in[n/8]&(1 << (7-n%8))) ? 0x80 : 0;
+	cfbr_encrypt_block(c,d,1,key,ivec,enc,block);
+	out[n/8]=(out[n/8]&~(1 << (unsigned int)(7-n%8))) |
+		 ((d[0]&0x80) >> (unsigned int)(n%8));
+	}
+}
+
+void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out,
+			size_t length, const void *key,
+			unsigned char ivec[16], int *num,
+			int enc, block128_f block)
+{
+    size_t n;
+
+    assert(in && out && key && ivec && num);
+    assert(*num == 0);
+
+    for(n=0 ; n<length ; ++n)
+	cfbr_encrypt_block(&in[n],&out[n],8,key,ivec,enc,block);
+}
+
diff --git a/snmplib/openssl/openssl_des_enc.c b/snmplib/openssl/openssl_des_enc.c
new file mode 100644
index 0000000..ba70f9c
--- /dev/null
+++ b/snmplib/openssl/openssl_des_enc.c
@@ -0,0 +1,400 @@
+/* crypto/des/des_enc.c */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+#include "openssl_des_local.h"
+#include "openssl_spr.h"
+
+void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc)
+	{
+	register DES_LONG l,r,t,u;
+#ifdef DES_PTR
+	register const unsigned char *des_SP=(const unsigned char *)DES_SPtrans;
+#endif
+#ifndef DES_UNROLL
+	register int i;
+#endif
+	register DES_LONG *s;
+
+	r=data[0];
+	l=data[1];
+
+	IP(r,l);
+	/* Things have been modified so that the initial rotate is
+	 * done outside the loop.  This required the
+	 * DES_SPtrans values in sp.h to be rotated 1 bit to the right.
+	 * One perl script later and things have a 5% speed up on a sparc2.
+	 * Thanks to Richard Outerbridge <71755.204@CompuServe.COM>
+	 * for pointing this out. */
+	/* clear the top bits on machines with 8byte longs */
+	/* shift left by 2 */
+	r=ROTATE(r,29)&0xffffffffL;
+	l=ROTATE(l,29)&0xffffffffL;
+
+	s=ks->ks->deslong;
+	/* I don't know if it is worth the effort of loop unrolling the
+	 * inner loop */
+	if (enc)
+		{
+#ifdef DES_UNROLL
+		D_ENCRYPT(l,r, 0); /*  1 */
+		D_ENCRYPT(r,l, 2); /*  2 */
+		D_ENCRYPT(l,r, 4); /*  3 */
+		D_ENCRYPT(r,l, 6); /*  4 */
+		D_ENCRYPT(l,r, 8); /*  5 */
+		D_ENCRYPT(r,l,10); /*  6 */
+		D_ENCRYPT(l,r,12); /*  7 */
+		D_ENCRYPT(r,l,14); /*  8 */
+		D_ENCRYPT(l,r,16); /*  9 */
+		D_ENCRYPT(r,l,18); /*  10 */
+		D_ENCRYPT(l,r,20); /*  11 */
+		D_ENCRYPT(r,l,22); /*  12 */
+		D_ENCRYPT(l,r,24); /*  13 */
+		D_ENCRYPT(r,l,26); /*  14 */
+		D_ENCRYPT(l,r,28); /*  15 */
+		D_ENCRYPT(r,l,30); /*  16 */
+#else
+		for (i=0; i<32; i+=4)
+			{
+			D_ENCRYPT(l,r,i+0); /*  1 */
+			D_ENCRYPT(r,l,i+2); /*  2 */
+			}
+#endif
+		}
+	else
+		{
+#ifdef DES_UNROLL
+		D_ENCRYPT(l,r,30); /* 16 */
+		D_ENCRYPT(r,l,28); /* 15 */
+		D_ENCRYPT(l,r,26); /* 14 */
+		D_ENCRYPT(r,l,24); /* 13 */
+		D_ENCRYPT(l,r,22); /* 12 */
+		D_ENCRYPT(r,l,20); /* 11 */
+		D_ENCRYPT(l,r,18); /* 10 */
+		D_ENCRYPT(r,l,16); /*  9 */
+		D_ENCRYPT(l,r,14); /*  8 */
+		D_ENCRYPT(r,l,12); /*  7 */
+		D_ENCRYPT(l,r,10); /*  6 */
+		D_ENCRYPT(r,l, 8); /*  5 */
+		D_ENCRYPT(l,r, 6); /*  4 */
+		D_ENCRYPT(r,l, 4); /*  3 */
+		D_ENCRYPT(l,r, 2); /*  2 */
+		D_ENCRYPT(r,l, 0); /*  1 */
+#else
+		for (i=30; i>0; i-=4)
+			{
+			D_ENCRYPT(l,r,i-0); /* 16 */
+			D_ENCRYPT(r,l,i-2); /* 15 */
+			}
+#endif
+		}
+
+	/* rotate and clear the top bits on machines with 8byte longs */
+	l=ROTATE(l,3)&0xffffffffL;
+	r=ROTATE(r,3)&0xffffffffL;
+
+	FP(r,l);
+	data[0]=l;
+	data[1]=r;
+	l=r=t=u=0;
+	}
+
+void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc)
+	{
+	register DES_LONG l,r,t,u;
+#ifdef DES_PTR
+	register const unsigned char *des_SP=(const unsigned char *)DES_SPtrans;
+#endif
+#ifndef DES_UNROLL
+	register int i;
+#endif
+	register DES_LONG *s;
+
+	r=data[0];
+	l=data[1];
+
+	/* Things have been modified so that the initial rotate is
+	 * done outside the loop.  This required the
+	 * DES_SPtrans values in sp.h to be rotated 1 bit to the right.
+	 * One perl script later and things have a 5% speed up on a sparc2.
+	 * Thanks to Richard Outerbridge <71755.204@CompuServe.COM>
+	 * for pointing this out. */
+	/* clear the top bits on machines with 8byte longs */
+	r=ROTATE(r,29)&0xffffffffL;
+	l=ROTATE(l,29)&0xffffffffL;
+
+	s=ks->ks->deslong;
+	/* I don't know if it is worth the effort of loop unrolling the
+	 * inner loop */
+	if (enc)
+		{
+#ifdef DES_UNROLL
+		D_ENCRYPT(l,r, 0); /*  1 */
+		D_ENCRYPT(r,l, 2); /*  2 */
+		D_ENCRYPT(l,r, 4); /*  3 */
+		D_ENCRYPT(r,l, 6); /*  4 */
+		D_ENCRYPT(l,r, 8); /*  5 */
+		D_ENCRYPT(r,l,10); /*  6 */
+		D_ENCRYPT(l,r,12); /*  7 */
+		D_ENCRYPT(r,l,14); /*  8 */
+		D_ENCRYPT(l,r,16); /*  9 */
+		D_ENCRYPT(r,l,18); /*  10 */
+		D_ENCRYPT(l,r,20); /*  11 */
+		D_ENCRYPT(r,l,22); /*  12 */
+		D_ENCRYPT(l,r,24); /*  13 */
+		D_ENCRYPT(r,l,26); /*  14 */
+		D_ENCRYPT(l,r,28); /*  15 */
+		D_ENCRYPT(r,l,30); /*  16 */
+#else
+		for (i=0; i<32; i+=4)
+			{
+			D_ENCRYPT(l,r,i+0); /*  1 */
+			D_ENCRYPT(r,l,i+2); /*  2 */
+			}
+#endif
+		}
+	else
+		{
+#ifdef DES_UNROLL
+		D_ENCRYPT(l,r,30); /* 16 */
+		D_ENCRYPT(r,l,28); /* 15 */
+		D_ENCRYPT(l,r,26); /* 14 */
+		D_ENCRYPT(r,l,24); /* 13 */
+		D_ENCRYPT(l,r,22); /* 12 */
+		D_ENCRYPT(r,l,20); /* 11 */
+		D_ENCRYPT(l,r,18); /* 10 */
+		D_ENCRYPT(r,l,16); /*  9 */
+		D_ENCRYPT(l,r,14); /*  8 */
+		D_ENCRYPT(r,l,12); /*  7 */
+		D_ENCRYPT(l,r,10); /*  6 */
+		D_ENCRYPT(r,l, 8); /*  5 */
+		D_ENCRYPT(l,r, 6); /*  4 */
+		D_ENCRYPT(r,l, 4); /*  3 */
+		D_ENCRYPT(l,r, 2); /*  2 */
+		D_ENCRYPT(r,l, 0); /*  1 */
+#else
+		for (i=30; i>0; i-=4)
+			{
+			D_ENCRYPT(l,r,i-0); /* 16 */
+			D_ENCRYPT(r,l,i-2); /* 15 */
+			}
+#endif
+		}
+	/* rotate and clear the top bits on machines with 8byte longs */
+	data[0]=ROTATE(l,3)&0xffffffffL;
+	data[1]=ROTATE(r,3)&0xffffffffL;
+	l=r=t=u=0;
+	}
+
+void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1,
+		  DES_key_schedule *ks2, DES_key_schedule *ks3)
+	{
+	register DES_LONG l,r;
+
+	l=data[0];
+	r=data[1];
+	IP(l,r);
+	data[0]=l;
+	data[1]=r;
+	DES_encrypt2((DES_LONG *)data,ks1,DES_ENCRYPT);
+	DES_encrypt2((DES_LONG *)data,ks2,DES_DECRYPT);
+	DES_encrypt2((DES_LONG *)data,ks3,DES_ENCRYPT);
+	l=data[0];
+	r=data[1];
+	FP(r,l);
+	data[0]=l;
+	data[1]=r;
+	}
+
+void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1,
+		  DES_key_schedule *ks2, DES_key_schedule *ks3)
+	{
+	register DES_LONG l,r;
+
+	l=data[0];
+	r=data[1];
+	IP(l,r);
+	data[0]=l;
+	data[1]=r;
+	DES_encrypt2((DES_LONG *)data,ks3,DES_DECRYPT);
+	DES_encrypt2((DES_LONG *)data,ks2,DES_ENCRYPT);
+	DES_encrypt2((DES_LONG *)data,ks1,DES_DECRYPT);
+	l=data[0];
+	r=data[1];
+	FP(r,l);
+	data[0]=l;
+	data[1]=r;
+	}
+
+#ifndef DES_DEFAULT_OPTIONS
+
+#undef CBC_ENC_C__DONT_UPDATE_IV
+#include "openssl_ncbc_enc.c" /* DES_ncbc_encrypt */
+
+void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output,
+			  long length, DES_key_schedule *ks1,
+			  DES_key_schedule *ks2, DES_key_schedule *ks3,
+			  DES_cblock *ivec, int enc)
+	{
+	register DES_LONG tin0,tin1;
+	register DES_LONG tout0,tout1,xor0,xor1;
+	register const unsigned char *in;
+	unsigned char *out;
+	register long l=length;
+	DES_LONG tin[2];
+	unsigned char *iv;
+
+	in=input;
+	out=output;
+	iv = &(*ivec)[0];
+
+	if (enc)
+		{
+		c2l(iv,tout0);
+		c2l(iv,tout1);
+		for (l-=8; l>=0; l-=8)
+			{
+			c2l(in,tin0);
+			c2l(in,tin1);
+			tin0^=tout0;
+			tin1^=tout1;
+
+			tin[0]=tin0;
+			tin[1]=tin1;
+			DES_encrypt3((DES_LONG *)tin,ks1,ks2,ks3);
+			tout0=tin[0];
+			tout1=tin[1];
+
+			l2c(tout0,out);
+			l2c(tout1,out);
+			}
+		if (l != -8)
+			{
+			c2ln(in,tin0,tin1,l+8);
+			tin0^=tout0;
+			tin1^=tout1;
+
+			tin[0]=tin0;
+			tin[1]=tin1;
+			DES_encrypt3((DES_LONG *)tin,ks1,ks2,ks3);
+			tout0=tin[0];
+			tout1=tin[1];
+
+			l2c(tout0,out);
+			l2c(tout1,out);
+			}
+		iv = &(*ivec)[0];
+		l2c(tout0,iv);
+		l2c(tout1,iv);
+		}
+	else
+		{
+		register DES_LONG t0,t1;
+
+		c2l(iv,xor0);
+		c2l(iv,xor1);
+		for (l-=8; l>=0; l-=8)
+			{
+			c2l(in,tin0);
+			c2l(in,tin1);
+
+			t0=tin0;
+			t1=tin1;
+
+			tin[0]=tin0;
+			tin[1]=tin1;
+			DES_decrypt3((DES_LONG *)tin,ks1,ks2,ks3);
+			tout0=tin[0];
+			tout1=tin[1];
+
+			tout0^=xor0;
+			tout1^=xor1;
+			l2c(tout0,out);
+			l2c(tout1,out);
+			xor0=t0;
+			xor1=t1;
+			}
+		if (l != -8)
+			{
+			c2l(in,tin0);
+			c2l(in,tin1);
+			
+			t0=tin0;
+			t1=tin1;
+
+			tin[0]=tin0;
+			tin[1]=tin1;
+			DES_decrypt3((DES_LONG *)tin,ks1,ks2,ks3);
+			tout0=tin[0];
+			tout1=tin[1];
+		
+			tout0^=xor0;
+			tout1^=xor1;
+			l2cn(tout0,tout1,out,l+8);
+			xor0=t0;
+			xor1=t1;
+			}
+
+		iv = &(*ivec)[0];
+		l2c(xor0,iv);
+		l2c(xor1,iv);
+		}
+	tin0=tin1=tout0=tout1=xor0=xor1=0;
+	tin[0]=tin[1]=0;
+	}
+
+#endif /* DES_DEFAULT_OPTIONS */
diff --git a/snmplib/openssl/openssl_des_local.h b/snmplib/openssl/openssl_des_local.h
new file mode 100644
index 0000000..f91d844
--- /dev/null
+++ b/snmplib/openssl/openssl_des_local.h
@@ -0,0 +1,431 @@
+/* crypto/des/des_locl.h */
+/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+#ifndef HEADER_DES_LOCL_H
+#define HEADER_DES_LOCL_H
+
+#if defined(OPENSSL_SYS_WIN32)
+#ifndef OPENSSL_SYS_MSDOS
+#define OPENSSL_SYS_MSDOS
+#endif
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifndef OPENSSL_SYS_MSDOS
+#if !defined(OPENSSL_SYS_VMS) || defined(__DECC)
+#ifdef OPENSSL_UNISTD
+# include OPENSSL_UNISTD
+#else
+# include <unistd.h>
+#endif
+#include <math.h>
+#endif
+#endif
+
+#include <net-snmp/library/openssl_des.h>
+
+#ifdef OPENSSL_SYS_MSDOS		/* Visual C++ 2.1 (Windows NT/95) */
+#include <stdlib.h>
+#include <errno.h>
+#include <time.h>
+#include <io.h>
+#endif
+
+#if defined(__STDC__) || defined(OPENSSL_SYS_VMS) || defined(M_XENIX) || defined(OPENSSL_SYS_MSDOS)
+#include <string.h>
+#endif
+
+#ifdef OPENSSL_BUILD_SHLIBCRYPTO
+# undef OPENSSL_EXTERN
+# define OPENSSL_EXTERN OPENSSL_EXPORT
+#endif
+
+#define ITERATIONS 16
+#define HALF_ITERATIONS 8
+
+/* used in des_read and des_write */
+#define MAXWRITE	(1024*16)
+#define BSIZE		(MAXWRITE+4)
+
+#define c2l(c,l)	(l =((DES_LONG)(*((c)++)))    , \
+			 l|=((DES_LONG)(*((c)++)))<< 8L, \
+			 l|=((DES_LONG)(*((c)++)))<<16L, \
+			 l|=((DES_LONG)(*((c)++)))<<24L)
+
+/* NOTE - c is not incremented as per c2l */
+#define c2ln(c,l1,l2,n)	{ \
+			c+=n; \
+			l1=l2=0; \
+			switch (n) { \
+			case 8: l2 =((DES_LONG)(*(--(c))))<<24L; \
+			case 7: l2|=((DES_LONG)(*(--(c))))<<16L; \
+			case 6: l2|=((DES_LONG)(*(--(c))))<< 8L; \
+			case 5: l2|=((DES_LONG)(*(--(c))));     \
+			case 4: l1 =((DES_LONG)(*(--(c))))<<24L; \
+			case 3: l1|=((DES_LONG)(*(--(c))))<<16L; \
+			case 2: l1|=((DES_LONG)(*(--(c))))<< 8L; \
+			case 1: l1|=((DES_LONG)(*(--(c))));     \
+				} \
+			}
+
+#define l2c(l,c)	(*((c)++)=(unsigned char)(((l)     )&0xff), \
+			 *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
+			 *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
+			 *((c)++)=(unsigned char)(((l)>>24L)&0xff))
+
+/* replacements for htonl and ntohl since I have no idea what to do
+ * when faced with machines with 8 byte longs. */
+#define HDRSIZE 4
+
+#define n2l(c,l)	(l =((DES_LONG)(*((c)++)))<<24L, \
+			 l|=((DES_LONG)(*((c)++)))<<16L, \
+			 l|=((DES_LONG)(*((c)++)))<< 8L, \
+			 l|=((DES_LONG)(*((c)++))))
+
+#define l2n(l,c)	(*((c)++)=(unsigned char)(((l)>>24L)&0xff), \
+			 *((c)++)=(unsigned char)(((l)>>16L)&0xff), \
+			 *((c)++)=(unsigned char)(((l)>> 8L)&0xff), \
+			 *((c)++)=(unsigned char)(((l)     )&0xff))
+
+/* NOTE - c is not incremented as per l2c */
+#define l2cn(l1,l2,c,n)	{ \
+			c+=n; \
+			switch (n) { \
+			case 8: *(--(c))=(unsigned char)(((l2)>>24L)&0xff); \
+			case 7: *(--(c))=(unsigned char)(((l2)>>16L)&0xff); \
+			case 6: *(--(c))=(unsigned char)(((l2)>> 8L)&0xff); \
+			case 5: *(--(c))=(unsigned char)(((l2)     )&0xff); \
+			case 4: *(--(c))=(unsigned char)(((l1)>>24L)&0xff); \
+			case 3: *(--(c))=(unsigned char)(((l1)>>16L)&0xff); \
+			case 2: *(--(c))=(unsigned char)(((l1)>> 8L)&0xff); \
+			case 1: *(--(c))=(unsigned char)(((l1)     )&0xff); \
+				} \
+			}
+
+#if (defined(OPENSSL_SYS_WIN32) && defined(_MSC_VER)) || defined(__ICC)
+#define	ROTATE(a,n)	(_lrotr(a,n))
+#elif defined(__GNUC__) && __GNUC__>=2 && !defined(__STRICT_ANSI__) && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM) && !defined(PEDANTIC)
+# if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
+#  define ROTATE(a,n)	({ register unsigned int ret;	\
+				asm ("rorl %1,%0"	\
+					: "=r"(ret)	\
+					: "I"(n),"0"(a)	\
+					: "cc");	\
+			   ret;				\
+			})
+# endif
+#endif
+#ifndef ROTATE
+#define	ROTATE(a,n)	(((a)>>(n))+((a)<<(32-(n))))
+#endif
+
+/* Don't worry about the LOAD_DATA() stuff, that is used by
+ * fcrypt() to add it's little bit to the front */
+
+#ifdef DES_FCRYPT
+
+#define LOAD_DATA_tmp(R,S,u,t,E0,E1) \
+	{ DES_LONG tmp; LOAD_DATA(R,S,u,t,E0,E1,tmp); }
+
+#define LOAD_DATA(R,S,u,t,E0,E1,tmp) \
+	t=R^(R>>16L); \
+	u=t&E0; t&=E1; \
+	tmp=(u<<16); u^=R^s[S  ]; u^=tmp; \
+	tmp=(t<<16); t^=R^s[S+1]; t^=tmp
+#else
+#define LOAD_DATA_tmp(a,b,c,d,e,f) LOAD_DATA(a,b,c,d,e,f,g)
+#define LOAD_DATA(R,S,u,t,E0,E1,tmp) \
+	u=R^s[S  ]; \
+	t=R^s[S+1]
+#endif
+
+/* The changes to this macro may help or hinder, depending on the
+ * compiler and the architecture.  gcc2 always seems to do well :-).
+ * Inspired by Dana How <how@isl.stanford.edu>
+ * DO NOT use the alternative version on machines with 8 byte longs.
+ * It does not seem to work on the Alpha, even when DES_LONG is 4
+ * bytes, probably an issue of accessing non-word aligned objects :-( */
+#ifdef DES_PTR
+
+/* It recently occurred to me that 0^0^0^0^0^0^0 == 0, so there
+ * is no reason to not xor all the sub items together.  This potentially
+ * saves a register since things can be xored directly into L */
+
+#if defined(DES_RISC1) || defined(DES_RISC2)
+#ifdef DES_RISC1
+#define D_ENCRYPT(LL,R,S) { \
+	unsigned int u1,u2,u3; \
+	LOAD_DATA(R,S,u,t,E0,E1,u1); \
+	u2=(int)u>>8L; \
+	u1=(int)u&0xfc; \
+	u2&=0xfc; \
+	t=ROTATE(t,4); \
+	u>>=16L; \
+	LL^= *(const DES_LONG *)(des_SP      +u1); \
+	LL^= *(const DES_LONG *)(des_SP+0x200+u2); \
+	u3=(int)(u>>8L); \
+	u1=(int)u&0xfc; \
+	u3&=0xfc; \
+	LL^= *(const DES_LONG *)(des_SP+0x400+u1); \
+	LL^= *(const DES_LONG *)(des_SP+0x600+u3); \
+	u2=(int)t>>8L; \
+	u1=(int)t&0xfc; \
+	u2&=0xfc; \
+	t>>=16L; \
+	LL^= *(const DES_LONG *)(des_SP+0x100+u1); \
+	LL^= *(const DES_LONG *)(des_SP+0x300+u2); \
+	u3=(int)t>>8L; \
+	u1=(int)t&0xfc; \
+	u3&=0xfc; \
+	LL^= *(const DES_LONG *)(des_SP+0x500+u1); \
+	LL^= *(const DES_LONG *)(des_SP+0x700+u3); }
+#endif
+#ifdef DES_RISC2
+#define D_ENCRYPT(LL,R,S) { \
+	unsigned int u1,u2,s1,s2; \
+	LOAD_DATA(R,S,u,t,E0,E1,u1); \
+	u2=(int)u>>8L; \
+	u1=(int)u&0xfc; \
+	u2&=0xfc; \
+	t=ROTATE(t,4); \
+	LL^= *(const DES_LONG *)(des_SP      +u1); \
+	LL^= *(const DES_LONG *)(des_SP+0x200+u2); \
+	s1=(int)(u>>16L); \
+	s2=(int)(u>>24L); \
+	s1&=0xfc; \
+	s2&=0xfc; \
+	LL^= *(const DES_LONG *)(des_SP+0x400+s1); \
+	LL^= *(const DES_LONG *)(des_SP+0x600+s2); \
+	u2=(int)t>>8L; \
+	u1=(int)t&0xfc; \
+	u2&=0xfc; \
+	LL^= *(const DES_LONG *)(des_SP+0x100+u1); \
+	LL^= *(const DES_LONG *)(des_SP+0x300+u2); \
+	s1=(int)(t>>16L); \
+	s2=(int)(t>>24L); \
+	s1&=0xfc; \
+	s2&=0xfc; \
+	LL^= *(const DES_LONG *)(des_SP+0x500+s1); \
+	LL^= *(const DES_LONG *)(des_SP+0x700+s2); }
+#endif
+#else
+#define D_ENCRYPT(LL,R,S) { \
+	LOAD_DATA_tmp(R,S,u,t,E0,E1); \
+	t=ROTATE(t,4); \
+	LL^= \
+	*(const DES_LONG *)(des_SP      +((u     )&0xfc))^ \
+	*(const DES_LONG *)(des_SP+0x200+((u>> 8L)&0xfc))^ \
+	*(const DES_LONG *)(des_SP+0x400+((u>>16L)&0xfc))^ \
+	*(const DES_LONG *)(des_SP+0x600+((u>>24L)&0xfc))^ \
+	*(const DES_LONG *)(des_SP+0x100+((t     )&0xfc))^ \
+	*(const DES_LONG *)(des_SP+0x300+((t>> 8L)&0xfc))^ \
+	*(const DES_LONG *)(des_SP+0x500+((t>>16L)&0xfc))^ \
+	*(const DES_LONG *)(des_SP+0x700+((t>>24L)&0xfc)); }
+#endif
+
+#else /* original version */
+
+#if defined(DES_RISC1) || defined(DES_RISC2)
+#ifdef DES_RISC1
+#define D_ENCRYPT(LL,R,S) {\
+	unsigned int u1,u2,u3; \
+	LOAD_DATA(R,S,u,t,E0,E1,u1); \
+	u>>=2L; \
+	t=ROTATE(t,6); \
+	u2=(int)u>>8L; \
+	u1=(int)u&0x3f; \
+	u2&=0x3f; \
+	u>>=16L; \
+	LL^=DES_SPtrans[0][u1]; \
+	LL^=DES_SPtrans[2][u2]; \
+	u3=(int)u>>8L; \
+	u1=(int)u&0x3f; \
+	u3&=0x3f; \
+	LL^=DES_SPtrans[4][u1]; \
+	LL^=DES_SPtrans[6][u3]; \
+	u2=(int)t>>8L; \
+	u1=(int)t&0x3f; \
+	u2&=0x3f; \
+	t>>=16L; \
+	LL^=DES_SPtrans[1][u1]; \
+	LL^=DES_SPtrans[3][u2]; \
+	u3=(int)t>>8L; \
+	u1=(int)t&0x3f; \
+	u3&=0x3f; \
+	LL^=DES_SPtrans[5][u1]; \
+	LL^=DES_SPtrans[7][u3]; }
+#endif
+#ifdef DES_RISC2
+#define D_ENCRYPT(LL,R,S) {\
+	unsigned int u1,u2,s1,s2; \
+	LOAD_DATA(R,S,u,t,E0,E1,u1); \
+	u>>=2L; \
+	t=ROTATE(t,6); \
+	u2=(int)u>>8L; \
+	u1=(int)u&0x3f; \
+	u2&=0x3f; \
+	LL^=DES_SPtrans[0][u1]; \
+	LL^=DES_SPtrans[2][u2]; \
+	s1=(int)u>>16L; \
+	s2=(int)u>>24L; \
+	s1&=0x3f; \
+	s2&=0x3f; \
+	LL^=DES_SPtrans[4][s1]; \
+	LL^=DES_SPtrans[6][s2]; \
+	u2=(int)t>>8L; \
+	u1=(int)t&0x3f; \
+	u2&=0x3f; \
+	LL^=DES_SPtrans[1][u1]; \
+	LL^=DES_SPtrans[3][u2]; \
+	s1=(int)t>>16; \
+	s2=(int)t>>24L; \
+	s1&=0x3f; \
+	s2&=0x3f; \
+	LL^=DES_SPtrans[5][s1]; \
+	LL^=DES_SPtrans[7][s2]; }
+#endif
+
+#else
+
+#define D_ENCRYPT(LL,R,S) {\
+	LOAD_DATA_tmp(R,S,u,t,E0,E1); \
+	t=ROTATE(t,4); \
+	LL^=\
+		DES_SPtrans[0][(u>> 2L)&0x3f]^ \
+		DES_SPtrans[2][(u>>10L)&0x3f]^ \
+		DES_SPtrans[4][(u>>18L)&0x3f]^ \
+		DES_SPtrans[6][(u>>26L)&0x3f]^ \
+		DES_SPtrans[1][(t>> 2L)&0x3f]^ \
+		DES_SPtrans[3][(t>>10L)&0x3f]^ \
+		DES_SPtrans[5][(t>>18L)&0x3f]^ \
+		DES_SPtrans[7][(t>>26L)&0x3f]; }
+#endif
+#endif
+
+	/* IP and FP
+	 * The problem is more of a geometric problem that random bit fiddling.
+	 0  1  2  3  4  5  6  7      62 54 46 38 30 22 14  6
+	 8  9 10 11 12 13 14 15      60 52 44 36 28 20 12  4
+	16 17 18 19 20 21 22 23      58 50 42 34 26 18 10  2
+	24 25 26 27 28 29 30 31  to  56 48 40 32 24 16  8  0
+
+	32 33 34 35 36 37 38 39      63 55 47 39 31 23 15  7
+	40 41 42 43 44 45 46 47      61 53 45 37 29 21 13  5
+	48 49 50 51 52 53 54 55      59 51 43 35 27 19 11  3
+	56 57 58 59 60 61 62 63      57 49 41 33 25 17  9  1
+
+	The output has been subject to swaps of the form
+	0 1 -> 3 1 but the odd and even bits have been put into
+	2 3    2 0
+	different words.  The main trick is to remember that
+	t=((l>>size)^r)&(mask);
+	r^=t;
+	l^=(t<<size);
+	can be used to swap and move bits between words.
+
+	So l =  0  1  2  3  r = 16 17 18 19
+	        4  5  6  7      20 21 22 23
+	        8  9 10 11      24 25 26 27
+	       12 13 14 15      28 29 30 31
+	becomes (for size == 2 and mask == 0x3333)
+	   t =   2^16  3^17 -- --   l =  0  1 16 17  r =  2  3 18 19
+		 6^20  7^21 -- --        4  5 20 21       6  7 22 23
+		10^24 11^25 -- --        8  9 24 25      10 11 24 25
+		14^28 15^29 -- --       12 13 28 29      14 15 28 29
+
+	Thanks for hints from Richard Outerbridge - he told me IP&FP
+	could be done in 15 xor, 10 shifts and 5 ands.
+	When I finally started to think of the problem in 2D
+	I first got ~42 operations without xors.  When I remembered
+	how to use xors :-) I got it to its final state.
+	*/
+#define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\
+	(b)^=(t),\
+	(a)^=((t)<<(n)))
+
+#define IP(l,r) \
+	{ \
+	register DES_LONG tt; \
+	PERM_OP(r,l,tt, 4,0x0f0f0f0fL); \
+	PERM_OP(l,r,tt,16,0x0000ffffL); \
+	PERM_OP(r,l,tt, 2,0x33333333L); \
+	PERM_OP(l,r,tt, 8,0x00ff00ffL); \
+	PERM_OP(r,l,tt, 1,0x55555555L); \
+	}
+
+#define FP(l,r) \
+	{ \
+	register DES_LONG tt; \
+	PERM_OP(l,r,tt, 1,0x55555555L); \
+	PERM_OP(r,l,tt, 8,0x00ff00ffL); \
+	PERM_OP(l,r,tt, 2,0x33333333L); \
+	PERM_OP(r,l,tt,16,0x0000ffffL); \
+	PERM_OP(l,r,tt, 4,0x0f0f0f0fL); \
+	}
+
+extern const DES_LONG DES_SPtrans[8][64];
+
+void fcrypt_body(DES_LONG *out,DES_key_schedule *ks,
+		 DES_LONG Eswap0, DES_LONG Eswap1);
+
+#ifdef OPENSSL_SMALL_FOOTPRINT
+#undef DES_UNROLL
+#endif
+#endif
diff --git a/snmplib/openssl/openssl_md32_common.h b/snmplib/openssl/openssl_md32_common.h
new file mode 100644
index 0000000..279916f
--- /dev/null
+++ b/snmplib/openssl/openssl_md32_common.h
@@ -0,0 +1,408 @@
+/* crypto/md32_common.h */
+/* ====================================================================
+ * Copyright (c) 1999-2007 The OpenSSL Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ *    endorse or promote products derived from this software without
+ *    prior written permission. For written permission, please contact
+ *    licensing@OpenSSL.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ *    nor may "OpenSSL" appear in their names without prior written
+ *    permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ */
+
+/*
+ * This is a generic 32 bit "collector" for message digest algorithms.
+ * Whenever needed it collects input character stream into chunks of
+ * 32 bit values and invokes a block function that performs actual hash
+ * calculations.
+ *
+ * Porting guide.
+ *
+ * Obligatory macros:
+ *
+ * DATA_ORDER_IS_BIG_ENDIAN or DATA_ORDER_IS_LITTLE_ENDIAN
+ *	this macro defines byte order of input stream.
+ * HASH_CBLOCK
+ *	size of a unit chunk HASH_BLOCK operates on.
+ * HASH_LONG
+ *	has to be at lest 32 bit wide, if it's wider, then
+ *	HASH_LONG_LOG2 *has to* be defined along
+ * HASH_CTX
+ *	context structure that at least contains following
+ *	members:
+ *		typedef struct {
+ *			...
+ *			HASH_LONG	Nl,Nh;
+ *			either {
+ *			HASH_LONG	data[HASH_LBLOCK];
+ *			unsigned char	data[HASH_CBLOCK];
+ *			};
+ *			unsigned int	num;
+ *			...
+ *			} HASH_CTX;
+ *	data[] vector is expected to be zeroed upon first call to
+ *	HASH_UPDATE.
+ * HASH_UPDATE
+ *	name of "Update" function, implemented here.
+ * HASH_TRANSFORM
+ *	name of "Transform" function, implemented here.
+ * HASH_FINAL
+ *	name of "Final" function, implemented here.
+ * HASH_BLOCK_DATA_ORDER
+ *	name of "block" function capable of treating *unaligned* input
+ *	message in original (data) byte order, implemented externally.
+ * HASH_MAKE_STRING
+ *	macro convering context variables to an ASCII hash string.
+ *
+ * MD5 example:
+ *
+ *	#define DATA_ORDER_IS_LITTLE_ENDIAN
+ *
+ *	#define HASH_LONG		MD5_LONG
+ *	#define HASH_LONG_LOG2		MD5_LONG_LOG2
+ *	#define HASH_CTX		MD5_CTX
+ *	#define HASH_CBLOCK		MD5_CBLOCK
+ *	#define HASH_UPDATE		MD5_Update
+ *	#define HASH_TRANSFORM		MD5_Transform
+ *	#define HASH_FINAL		MD5_Final
+ *	#define HASH_BLOCK_DATA_ORDER	md5_block_data_order
+ *
+ *					<appro@fy.chalmers.se>
+ */
+
+#if !defined(DATA_ORDER_IS_BIG_ENDIAN) && !defined(DATA_ORDER_IS_LITTLE_ENDIAN)
+#error "DATA_ORDER must be defined!"
+#endif
+
+#ifndef HASH_CBLOCK
+#error "HASH_CBLOCK must be defined!"
+#endif
+#ifndef HASH_LONG
+#error "HASH_LONG must be defined!"
+#endif
+#ifndef HASH_CTX
+#error "HASH_CTX must be defined!"
+#endif
+
+#ifndef HASH_UPDATE
+#error "HASH_UPDATE must be defined!"
+#endif
+#ifndef HASH_TRANSFORM
+#error "HASH_TRANSFORM must be defined!"
+#endif
+#ifndef HASH_FINAL
+#error "HASH_FINAL must be defined!"
+#endif
+
+#ifndef HASH_BLOCK_DATA_ORDER
+#error "HASH_BLOCK_DATA_ORDER must be defined!"
+#endif
+
+/*
+ * Engage compiler specific rotate intrinsic function if available.
+ */
+#undef ROTATE
+#ifndef PEDANTIC
+# if defined(_MSC_VER) || defined(__ICC)
+#  define ROTATE(a,n)	_lrotl(a,n)
+# elif defined(__MWERKS__)
+#  if defined(__POWERPC__)
+#   define ROTATE(a,n)	__rlwinm(a,n,0,31)
+#  elif defined(__MC68K__)
+    /* Motorola specific tweak. <appro@fy.chalmers.se> */
+#   define ROTATE(a,n)	( n<24 ? __rol(a,n) : __ror(a,32-n) )
+#  else
+#   define ROTATE(a,n)	__rol(a,n)
+#  endif
+# elif defined(__GNUC__) && __GNUC__>=2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM)
+  /*
+   * Some GNU C inline assembler templates. Note that these are
+   * rotates by *constant* number of bits! But that's exactly
+   * what we need here...
+   * 					<appro@fy.chalmers.se>
+   */
+#  if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
+#   define ROTATE(a,n)	({ register unsigned int ret;	\
+				asm (			\
+				"roll %1,%0"		\
+				: "=r"(ret)		\
+				: "I"(n), "0"(a)	\
+				: "cc");		\
+			   ret;				\
+			})
+#  elif defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \
+	defined(__powerpc) || defined(__ppc__) || defined(__powerpc64__)
+#   define ROTATE(a,n)	({ register unsigned int ret;	\
+				asm (			\
+				"rlwinm %0,%1,%2,0,31"	\
+				: "=r"(ret)		\
+				: "r"(a), "I"(n));	\
+			   ret;				\
+			})
+#  elif defined(__s390x__)
+#   define ROTATE(a,n) ({ register unsigned int ret;	\
+				asm ("rll %0,%1,%2"	\
+				: "=r"(ret)		\
+				: "r"(a), "I"(n));	\
+			  ret;				\
+			})
+#  endif
+# endif
+#endif /* PEDANTIC */
+
+#ifndef ROTATE
+#define ROTATE(a,n)     (((a)<<(n))|(((a)&0xffffffff)>>(32-(n))))
+#endif
+
+#if defined(DATA_ORDER_IS_BIG_ENDIAN)
+
+#ifndef PEDANTIC
+# if defined(__GNUC__) && __GNUC__>=2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM)
+#  if ((defined(__i386) || defined(__i386__)) && !defined(I386_ONLY)) || \
+      (defined(__x86_64) || defined(__x86_64__))
+#   if !defined(B_ENDIAN)
+    /*
+     * This gives ~30-40% performance improvement in SHA-256 compiled
+     * with gcc [on P4]. Well, first macro to be frank. We can pull
+     * this trick on x86* platforms only, because these CPUs can fetch
+     * unaligned data without raising an exception.
+     */
+#   define HOST_c2l(c,l)	({ unsigned int r=*((const unsigned int *)(c));	\
+				   asm ("bswapl %0":"=r"(r):"0"(r));	\
+				   (c)+=4; (l)=r;			})
+#   define HOST_l2c(l,c)	({ unsigned int r=(l);			\
+				   asm ("bswapl %0":"=r"(r):"0"(r));	\
+				   *((unsigned int *)(c))=r; (c)+=4; r;	})
+#   endif
+#  endif
+# endif
+#endif
+#if defined(__s390__) || defined(__s390x__)
+# define HOST_c2l(c,l) ((l)=*((const unsigned int *)(c)), (c)+=4, (l))
+# define HOST_l2c(l,c) (*((unsigned int *)(c))=(l), (c)+=4, (l))
+#endif
+
+#ifndef HOST_c2l
+#define HOST_c2l(c,l)	(l =(((unsigned long)(*((c)++)))<<24),		\
+			 l|=(((unsigned long)(*((c)++)))<<16),		\
+			 l|=(((unsigned long)(*((c)++)))<< 8),		\
+			 l|=(((unsigned long)(*((c)++)))    ),		\
+			 l)
+#endif
+#ifndef HOST_l2c
+#define HOST_l2c(l,c)	(*((c)++)=(unsigned char)(((l)>>24)&0xff),	\
+			 *((c)++)=(unsigned char)(((l)>>16)&0xff),	\
+			 *((c)++)=(unsigned char)(((l)>> 8)&0xff),	\
+			 *((c)++)=(unsigned char)(((l)    )&0xff),	\
+			 l)
+#endif
+
+#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
+
+#ifndef PEDANTIC
+# if defined(__GNUC__) && __GNUC__>=2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM)
+#  if defined(__s390x__)
+#   define HOST_c2l(c,l)	({ asm ("lrv	%0,0(%1)"		\
+					:"=r"(l) : "r"(c));		\
+				   (c)+=4; (l);				})
+#   define HOST_l2c(l,c)	({ asm ("strv	%0,0(%1)"		\
+					: : "r"(l),"r"(c) : "memory");	\
+				   (c)+=4; (l);				})
+#  endif
+# endif
+#endif
+#if defined(__i386) || defined(__i386__) || defined(__x86_64) || defined(__x86_64__)
+# ifndef B_ENDIAN
+   /* See comment in DATA_ORDER_IS_BIG_ENDIAN section. */
+#  define HOST_c2l(c,l)	((l)=*((const unsigned int *)(c)), (c)+=4, l)
+#  define HOST_l2c(l,c)	(*((unsigned int *)(c))=(l), (c)+=4, l)
+# endif
+#endif
+
+#ifndef HOST_c2l
+#define HOST_c2l(c,l)	(l =(((unsigned long)(*((c)++)))    ),		\
+			 l|=(((unsigned long)(*((c)++)))<< 8),		\
+			 l|=(((unsigned long)(*((c)++)))<<16),		\
+			 l|=(((unsigned long)(*((c)++)))<<24),		\
+			 l)
+#endif
+#ifndef HOST_l2c
+#define HOST_l2c(l,c)	(*((c)++)=(unsigned char)(((l)    )&0xff),	\
+			 *((c)++)=(unsigned char)(((l)>> 8)&0xff),	\
+			 *((c)++)=(unsigned char)(((l)>>16)&0xff),	\
+			 *((c)++)=(unsigned char)(((l)>>24)&0xff),	\
+			 l)
+#endif
+
+#endif
+
+/*
+ * Time for some action:-)
+ */
+
+int HASH_UPDATE (HASH_CTX *c, const void *data_, size_t len)
+	{
+	const unsigned char *data=data_;
+	unsigned char *p;
+	HASH_LONG l;
+	size_t n;
+
+	if (len==0) return 1;
+
+	l=(c->Nl+(((HASH_LONG)len)<<3))&0xffffffffUL;
+	/* 95-05-24 eay Fixed a bug with the overflow handling, thanks to
+	 * Wei Dai <weidai@eskimo.com> for pointing it out. */
+	if (l < c->Nl) /* overflow */
+		c->Nh++;
+	c->Nh+=(HASH_LONG)(len>>29);	/* might cause compiler warning on 16-bit */
+	c->Nl=l;
+
+	n = c->num;
+	if (n != 0)
+		{
+		p=(unsigned char *)c->data;
+
+		if (len >= HASH_CBLOCK || len+n >= HASH_CBLOCK)
+			{
+			memcpy (p+n,data,HASH_CBLOCK-n);
+			HASH_BLOCK_DATA_ORDER (c,p,1);
+			n      = HASH_CBLOCK-n;
+			data  += n;
+			len   -= n;
+			c->num = 0;
+			memset (p,0,HASH_CBLOCK);	/* keep it zeroed */
+			}
+		else
+			{
+			memcpy (p+n,data,len);
+			c->num += (unsigned int)len;
+			return 1;
+			}
+		}
+
+	n = len/HASH_CBLOCK;
+	if (n > 0)
+		{
+		HASH_BLOCK_DATA_ORDER (c,data,n);
+		n    *= HASH_CBLOCK;
+		data += n;
+		len  -= n;
+		}
+
+	if (len != 0)
+		{
+		p = (unsigned char *)c->data;
+		c->num = (unsigned int)len;
+		memcpy (p,data,len);
+		}
+	return 1;
+	}
+
+
+void HASH_TRANSFORM (HASH_CTX *c, const unsigned char *data)
+	{
+	HASH_BLOCK_DATA_ORDER (c,data,1);
+	}
+
+
+int HASH_FINAL (unsigned char *md, HASH_CTX *c)
+	{
+	unsigned char *p = (unsigned char *)c->data;
+	size_t n = c->num;
+
+	p[n] = 0x80; /* there is always room for one */
+	n++;
+
+	if (n > (HASH_CBLOCK-8))
+		{
+		memset (p+n,0,HASH_CBLOCK-n);
+		n=0;
+		HASH_BLOCK_DATA_ORDER (c,p,1);
+		}
+	memset (p+n,0,HASH_CBLOCK-8-n);
+
+	p += HASH_CBLOCK-8;
+#if   defined(DATA_ORDER_IS_BIG_ENDIAN)
+	(void)HOST_l2c(c->Nh,p);
+	(void)HOST_l2c(c->Nl,p);
+#elif defined(DATA_ORDER_IS_LITTLE_ENDIAN)
+	(void)HOST_l2c(c->Nl,p);
+	(void)HOST_l2c(c->Nh,p);
+#endif
+	p -= HASH_CBLOCK;
+	HASH_BLOCK_DATA_ORDER (c,p,1);
+	c->num=0;
+	memset (p,0,HASH_CBLOCK);
+
+#ifndef HASH_MAKE_STRING
+#error "HASH_MAKE_STRING must be defined!"
+#else
+	HASH_MAKE_STRING(c,md);
+#endif
+
+	return 1;
+	}
+
+#ifndef MD32_REG_T
+#define MD32_REG_T long
+/*
+ * This comment was originaly written for MD5, which is why it
+ * discusses A-D. But it basically applies to all 32-bit digests,
+ * which is why it was moved to common header file.
+ *
+ * In case you wonder why A-D are declared as long and not
+ * as MD5_LONG. Doing so results in slight performance
+ * boost on LP64 architectures. The catch is we don't
+ * really care if 32 MSBs of a 64-bit register get polluted
+ * with eventual overflows as we *save* only 32 LSBs in
+ * *either* case. Now declaring 'em long excuses the compiler
+ * from keeping 32 MSBs zeroed resulting in 13% performance
+ * improvement under SPARC Solaris7/64 and 5% under AlphaLinux.
+ * Well, to be honest it should say that this *prevents* 
+ * performance degradation.
+ *				<appro@fy.chalmers.se>
+ * Apparently there're LP64 compilers that generate better
+ * code if A-D are declared int. Most notably GCC-x86_64
+ * generates better code.
+ *				<appro@fy.chalmers.se>
+ */
+#endif
diff --git a/snmplib/openssl/openssl_md5.c b/snmplib/openssl/openssl_md5.c
new file mode 100644
index 0000000..b87adb3
--- /dev/null
+++ b/snmplib/openssl/openssl_md5.c
@@ -0,0 +1,181 @@
+/* crypto/md5/md5_dgst.c */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+#include <stdio.h>
+#include "openssl_md5_local.h"
+
+/* Implemented from RFC1321 The MD5 Message-Digest Algorithm
+ */
+
+#define INIT_DATA_A (unsigned long)0x67452301L
+#define INIT_DATA_B (unsigned long)0xefcdab89L
+#define INIT_DATA_C (unsigned long)0x98badcfeL
+#define INIT_DATA_D (unsigned long)0x10325476L
+
+int MD5_Init(MD5_CTX *c)
+	{
+	memset (c,0,sizeof(*c));
+	c->A=INIT_DATA_A;
+	c->B=INIT_DATA_B;
+	c->C=INIT_DATA_C;
+	c->D=INIT_DATA_D;
+	return 1;
+	}
+
+#ifndef md5_block_data_order
+#ifdef X
+#undef X
+#endif
+void md5_block_data_order (MD5_CTX *c, const void *data_, size_t num)
+	{
+	const unsigned char *data=data_;
+	register unsigned MD32_REG_T A,B,C,D,l;
+#ifndef MD32_XARRAY
+	/* See comment in crypto/sha/sha_locl.h for details. */
+	unsigned MD32_REG_T	XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,
+				XX8, XX9,XX10,XX11,XX12,XX13,XX14,XX15;
+# define X(i)	XX##i
+#else
+	MD5_LONG XX[MD5_LBLOCK];
+# define X(i)	XX[i]
+#endif
+
+	A=c->A;
+	B=c->B;
+	C=c->C;
+	D=c->D;
+
+	for (;num--;)
+		{
+	HOST_c2l(data,l); X( 0)=l;		HOST_c2l(data,l); X( 1)=l;
+	/* Round 0 */
+	R0(A,B,C,D,X( 0), 7,0xd76aa478L);	HOST_c2l(data,l); X( 2)=l;
+	R0(D,A,B,C,X( 1),12,0xe8c7b756L);	HOST_c2l(data,l); X( 3)=l;
+	R0(C,D,A,B,X( 2),17,0x242070dbL);	HOST_c2l(data,l); X( 4)=l;
+	R0(B,C,D,A,X( 3),22,0xc1bdceeeL);	HOST_c2l(data,l); X( 5)=l;
+	R0(A,B,C,D,X( 4), 7,0xf57c0fafL);	HOST_c2l(data,l); X( 6)=l;
+	R0(D,A,B,C,X( 5),12,0x4787c62aL);	HOST_c2l(data,l); X( 7)=l;
+	R0(C,D,A,B,X( 6),17,0xa8304613L);	HOST_c2l(data,l); X( 8)=l;
+	R0(B,C,D,A,X( 7),22,0xfd469501L);	HOST_c2l(data,l); X( 9)=l;
+	R0(A,B,C,D,X( 8), 7,0x698098d8L);	HOST_c2l(data,l); X(10)=l;
+	R0(D,A,B,C,X( 9),12,0x8b44f7afL);	HOST_c2l(data,l); X(11)=l;
+	R0(C,D,A,B,X(10),17,0xffff5bb1L);	HOST_c2l(data,l); X(12)=l;
+	R0(B,C,D,A,X(11),22,0x895cd7beL);	HOST_c2l(data,l); X(13)=l;
+	R0(A,B,C,D,X(12), 7,0x6b901122L);	HOST_c2l(data,l); X(14)=l;
+	R0(D,A,B,C,X(13),12,0xfd987193L);	HOST_c2l(data,l); X(15)=l;
+	R0(C,D,A,B,X(14),17,0xa679438eL);
+	R0(B,C,D,A,X(15),22,0x49b40821L);
+	/* Round 1 */
+	R1(A,B,C,D,X( 1), 5,0xf61e2562L);
+	R1(D,A,B,C,X( 6), 9,0xc040b340L);
+	R1(C,D,A,B,X(11),14,0x265e5a51L);
+	R1(B,C,D,A,X( 0),20,0xe9b6c7aaL);
+	R1(A,B,C,D,X( 5), 5,0xd62f105dL);
+	R1(D,A,B,C,X(10), 9,0x02441453L);
+	R1(C,D,A,B,X(15),14,0xd8a1e681L);
+	R1(B,C,D,A,X( 4),20,0xe7d3fbc8L);
+	R1(A,B,C,D,X( 9), 5,0x21e1cde6L);
+	R1(D,A,B,C,X(14), 9,0xc33707d6L);
+	R1(C,D,A,B,X( 3),14,0xf4d50d87L);
+	R1(B,C,D,A,X( 8),20,0x455a14edL);
+	R1(A,B,C,D,X(13), 5,0xa9e3e905L);
+	R1(D,A,B,C,X( 2), 9,0xfcefa3f8L);
+	R1(C,D,A,B,X( 7),14,0x676f02d9L);
+	R1(B,C,D,A,X(12),20,0x8d2a4c8aL);
+	/* Round 2 */
+	R2(A,B,C,D,X( 5), 4,0xfffa3942L);
+	R2(D,A,B,C,X( 8),11,0x8771f681L);
+	R2(C,D,A,B,X(11),16,0x6d9d6122L);
+	R2(B,C,D,A,X(14),23,0xfde5380cL);
+	R2(A,B,C,D,X( 1), 4,0xa4beea44L);
+	R2(D,A,B,C,X( 4),11,0x4bdecfa9L);
+	R2(C,D,A,B,X( 7),16,0xf6bb4b60L);
+	R2(B,C,D,A,X(10),23,0xbebfbc70L);
+	R2(A,B,C,D,X(13), 4,0x289b7ec6L);
+	R2(D,A,B,C,X( 0),11,0xeaa127faL);
+	R2(C,D,A,B,X( 3),16,0xd4ef3085L);
+	R2(B,C,D,A,X( 6),23,0x04881d05L);
+	R2(A,B,C,D,X( 9), 4,0xd9d4d039L);
+	R2(D,A,B,C,X(12),11,0xe6db99e5L);
+	R2(C,D,A,B,X(15),16,0x1fa27cf8L);
+	R2(B,C,D,A,X( 2),23,0xc4ac5665L);
+	/* Round 3 */
+	R3(A,B,C,D,X( 0), 6,0xf4292244L);
+	R3(D,A,B,C,X( 7),10,0x432aff97L);
+	R3(C,D,A,B,X(14),15,0xab9423a7L);
+	R3(B,C,D,A,X( 5),21,0xfc93a039L);
+	R3(A,B,C,D,X(12), 6,0x655b59c3L);
+	R3(D,A,B,C,X( 3),10,0x8f0ccc92L);
+	R3(C,D,A,B,X(10),15,0xffeff47dL);
+	R3(B,C,D,A,X( 1),21,0x85845dd1L);
+	R3(A,B,C,D,X( 8), 6,0x6fa87e4fL);
+	R3(D,A,B,C,X(15),10,0xfe2ce6e0L);
+	R3(C,D,A,B,X( 6),15,0xa3014314L);
+	R3(B,C,D,A,X(13),21,0x4e0811a1L);
+	R3(A,B,C,D,X( 4), 6,0xf7537e82L);
+	R3(D,A,B,C,X(11),10,0xbd3af235L);
+	R3(C,D,A,B,X( 2),15,0x2ad7d2bbL);
+	R3(B,C,D,A,X( 9),21,0xeb86d391L);
+
+	A = c->A += A;
+	B = c->B += B;
+	C = c->C += C;
+	D = c->D += D;
+		}
+	}
+#endif
diff --git a/snmplib/openssl/openssl_md5_local.h b/snmplib/openssl/openssl_md5_local.h
new file mode 100644
index 0000000..47ef374
--- /dev/null
+++ b/snmplib/openssl/openssl_md5_local.h
@@ -0,0 +1,129 @@
+/* crypto/md5/md5_locl.h */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+#include <stdlib.h>
+#include <string.h>
+#include <net-snmp/openssl_md5.h>
+
+#ifndef MD5_LONG_LOG2
+#define MD5_LONG_LOG2 2 /* default to 32 bits */
+#endif
+
+#ifdef MD5_ASM
+# if defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(__INTEL__) || \
+     defined(__x86_64) || defined(__x86_64__) || defined(_M_AMD64) || defined(_M_X64)
+#  define md5_block_data_order md5_block_asm_data_order
+# elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
+#  define md5_block_data_order md5_block_asm_data_order
+# endif
+#endif
+
+void md5_block_data_order (MD5_CTX *c, const void *p,size_t num);
+
+#define DATA_ORDER_IS_LITTLE_ENDIAN
+
+#define HASH_LONG		MD5_LONG
+#define HASH_CTX		MD5_CTX
+#define HASH_CBLOCK		MD5_CBLOCK
+#define HASH_UPDATE		MD5_Update
+#define HASH_TRANSFORM		MD5_Transform
+#define HASH_FINAL		MD5_Final
+#define	HASH_MAKE_STRING(c,s)	do {	\
+	unsigned long ll;		\
+	ll=(c)->A; HOST_l2c(ll,(s));	\
+	ll=(c)->B; HOST_l2c(ll,(s));	\
+	ll=(c)->C; HOST_l2c(ll,(s));	\
+	ll=(c)->D; HOST_l2c(ll,(s));	\
+	} while (0)
+#define	HASH_BLOCK_DATA_ORDER	md5_block_data_order
+
+#include "openssl_md32_common.h"
+
+/*
+#define	F(x,y,z)	(((x) & (y))  |  ((~(x)) & (z)))
+#define	G(x,y,z)	(((x) & (z))  |  ((y) & (~(z))))
+*/
+
+/* As pointed out by Wei Dai <weidai@eskimo.com>, the above can be
+ * simplified to the code below.  Wei attributes these optimizations
+ * to Peter Gutmann's SHS code, and he attributes it to Rich Schroeppel.
+ */
+#define	F(b,c,d)	((((c) ^ (d)) & (b)) ^ (d))
+#define	G(b,c,d)	((((b) ^ (c)) & (d)) ^ (c))
+#define	H(b,c,d)	((b) ^ (c) ^ (d))
+#define	I(b,c,d)	(((~(d)) | (b)) ^ (c))
+
+#define R0(a,b,c,d,k,s,t) { \
+	a+=((k)+(t)+F((b),(c),(d))); \
+	a=ROTATE(a,s); \
+	a+=b; };\
+
+#define R1(a,b,c,d,k,s,t) { \
+	a+=((k)+(t)+G((b),(c),(d))); \
+	a=ROTATE(a,s); \
+	a+=b; };
+
+#define R2(a,b,c,d,k,s,t) { \
+	a+=((k)+(t)+H((b),(c),(d))); \
+	a=ROTATE(a,s); \
+	a+=b; };
+
+#define R3(a,b,c,d,k,s,t) { \
+	a+=((k)+(t)+I((b),(c),(d))); \
+	a=ROTATE(a,s); \
+	a+=b; };
diff --git a/snmplib/openssl/openssl_modes.h b/snmplib/openssl/openssl_modes.h
new file mode 100644
index 0000000..af8d97d
--- /dev/null
+++ b/snmplib/openssl/openssl_modes.h
@@ -0,0 +1,59 @@
+/* ====================================================================
+ * Copyright (c) 2008 The OpenSSL Project. All rights reserved.
+ *
+ * Rights for redistribution and usage in source and binary
+ * forms are granted according to the OpenSSL license.
+ */
+
+#include <stddef.h>
+
+typedef void (*block128_f)(const unsigned char in[16],
+			unsigned char out[16],
+			const void *key);
+
+typedef void (*cbc128_f)(const unsigned char *in, unsigned char *out,
+			size_t len, const void *key,
+			unsigned char ivec[16], int enc);
+
+void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out,
+			size_t len, const void *key,
+			unsigned char ivec[16], block128_f block);
+void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out,
+			size_t len, const void *key,
+			unsigned char ivec[16], block128_f block);
+
+void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out,
+			size_t len, const void *key,
+			unsigned char ivec[16], unsigned char ecount_buf[16],
+			unsigned int *num, block128_f block);
+
+void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out,
+			size_t len, const void *key,
+			unsigned char ivec[16], int *num,
+			block128_f block);
+
+void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out,
+			size_t len, const void *key,
+			unsigned char ivec[16], int *num,
+			int enc, block128_f block);
+void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out,
+			size_t length, const void *key,
+			unsigned char ivec[16], int *num,
+			int enc, block128_f block);
+void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out,
+			size_t bits, const void *key,
+			unsigned char ivec[16], int *num,
+			int enc, block128_f block);
+
+size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, unsigned char *out,
+			size_t len, const void *key,
+			unsigned char ivec[16], block128_f block);
+size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out,
+			size_t len, const void *key,
+			unsigned char ivec[16], cbc128_f cbc);
+size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, unsigned char *out,
+			size_t len, const void *key,
+			unsigned char ivec[16], block128_f block);
+size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out,
+			size_t len, const void *key,
+			unsigned char ivec[16], cbc128_f cbc);
diff --git a/snmplib/openssl/openssl_ncbc_enc.c b/snmplib/openssl/openssl_ncbc_enc.c
new file mode 100644
index 0000000..c38cb66
--- /dev/null
+++ b/snmplib/openssl/openssl_ncbc_enc.c
@@ -0,0 +1,148 @@
+/* crypto/des/ncbc_enc.c */
+/*
+ * #included by:
+ *    cbc_enc.c  (DES_cbc_encrypt)
+ *    des_enc.c  (DES_ncbc_encrypt)
+ */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+#include "openssl_des_local.h"
+
+#ifdef CBC_ENC_C__DONT_UPDATE_IV
+void DES_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,
+		     DES_key_schedule *_schedule, DES_cblock *ivec, int enc)
+#else
+void DES_ncbc_encrypt(const unsigned char *in, unsigned char *out, long length,
+		     DES_key_schedule *_schedule, DES_cblock *ivec, int enc)
+#endif
+	{
+	register DES_LONG tin0,tin1;
+	register DES_LONG tout0,tout1,xor0,xor1;
+	register long l=length;
+	DES_LONG tin[2];
+	unsigned char *iv;
+
+	iv = &(*ivec)[0];
+
+	if (enc)
+		{
+		c2l(iv,tout0);
+		c2l(iv,tout1);
+		for (l-=8; l>=0; l-=8)
+			{
+			c2l(in,tin0);
+			c2l(in,tin1);
+			tin0^=tout0; tin[0]=tin0;
+			tin1^=tout1; tin[1]=tin1;
+			DES_encrypt1((DES_LONG *)tin,_schedule,DES_ENCRYPT);
+			tout0=tin[0]; l2c(tout0,out);
+			tout1=tin[1]; l2c(tout1,out);
+			}
+		if (l != -8)
+			{
+			c2ln(in,tin0,tin1,l+8);
+			tin0^=tout0; tin[0]=tin0;
+			tin1^=tout1; tin[1]=tin1;
+			DES_encrypt1((DES_LONG *)tin,_schedule,DES_ENCRYPT);
+			tout0=tin[0]; l2c(tout0,out);
+			tout1=tin[1]; l2c(tout1,out);
+			}
+#ifndef CBC_ENC_C__DONT_UPDATE_IV
+		iv = &(*ivec)[0];
+		l2c(tout0,iv);
+		l2c(tout1,iv);
+#endif
+		}
+	else
+		{
+		c2l(iv,xor0);
+		c2l(iv,xor1);
+		for (l-=8; l>=0; l-=8)
+			{
+			c2l(in,tin0); tin[0]=tin0;
+			c2l(in,tin1); tin[1]=tin1;
+			DES_encrypt1((DES_LONG *)tin,_schedule,DES_DECRYPT);
+			tout0=tin[0]^xor0;
+			tout1=tin[1]^xor1;
+			l2c(tout0,out);
+			l2c(tout1,out);
+			xor0=tin0;
+			xor1=tin1;
+			}
+		if (l != -8)
+			{
+			c2l(in,tin0); tin[0]=tin0;
+			c2l(in,tin1); tin[1]=tin1;
+			DES_encrypt1((DES_LONG *)tin,_schedule,DES_DECRYPT);
+			tout0=tin[0]^xor0;
+			tout1=tin[1]^xor1;
+			l2cn(tout0,tout1,out,l+8);
+#ifndef CBC_ENC_C__DONT_UPDATE_IV
+			xor0=tin0;
+			xor1=tin1;
+#endif
+			}
+#ifndef CBC_ENC_C__DONT_UPDATE_IV 
+		iv = &(*ivec)[0];
+		l2c(xor0,iv);
+		l2c(xor1,iv);
+#endif
+		}
+	tin0=tin1=tout0=tout1=xor0=xor1=0;
+	tin[0]=tin[1]=0;
+	}
diff --git a/snmplib/openssl/openssl_set_key.c b/snmplib/openssl/openssl_set_key.c
new file mode 100644
index 0000000..2b26b9c
--- /dev/null
+++ b/snmplib/openssl/openssl_set_key.c
@@ -0,0 +1,406 @@
+/* crypto/des/set_key.c */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+/* set_key.c v 1.4 eay 24/9/91
+ * 1.4 Speed up by 400% :-)
+ * 1.3 added register declarations.
+ * 1.2 unrolled make_key_sched a bit more
+ * 1.1 added norm_expand_bits
+ * 1.0 First working version
+ */
+int DES_check_key = 0;
+#include "openssl_des_local.h"
+
+static const unsigned char odd_parity[256]={
+  1,  1,  2,  2,  4,  4,  7,  7,  8,  8, 11, 11, 13, 13, 14, 14,
+ 16, 16, 19, 19, 21, 21, 22, 22, 25, 25, 26, 26, 28, 28, 31, 31,
+ 32, 32, 35, 35, 37, 37, 38, 38, 41, 41, 42, 42, 44, 44, 47, 47,
+ 49, 49, 50, 50, 52, 52, 55, 55, 56, 56, 59, 59, 61, 61, 62, 62,
+ 64, 64, 67, 67, 69, 69, 70, 70, 73, 73, 74, 74, 76, 76, 79, 79,
+ 81, 81, 82, 82, 84, 84, 87, 87, 88, 88, 91, 91, 93, 93, 94, 94,
+ 97, 97, 98, 98,100,100,103,103,104,104,107,107,109,109,110,110,
+112,112,115,115,117,117,118,118,121,121,122,122,124,124,127,127,
+128,128,131,131,133,133,134,134,137,137,138,138,140,140,143,143,
+145,145,146,146,148,148,151,151,152,152,155,155,157,157,158,158,
+161,161,162,162,164,164,167,167,168,168,171,171,173,173,174,174,
+176,176,179,179,181,181,182,182,185,185,186,186,188,188,191,191,
+193,193,194,194,196,196,199,199,200,200,203,203,205,205,206,206,
+208,208,211,211,213,213,214,214,217,217,218,218,220,220,223,223,
+224,224,227,227,229,229,230,230,233,233,234,234,236,236,239,239,
+241,241,242,242,244,244,247,247,248,248,251,251,253,253,254,254};
+
+void DES_set_odd_parity(DES_cblock *key)
+	{
+	unsigned int i;
+
+	for (i=0; i<DES_KEY_SZ; i++)
+		(*key)[i]=odd_parity[(*key)[i]];
+	}
+
+int DES_check_key_parity(const_DES_cblock *key)
+	{
+	unsigned int i;
+
+	for (i=0; i<DES_KEY_SZ; i++)
+		{
+		if ((*key)[i] != odd_parity[(*key)[i]])
+			return(0);
+		}
+	return(1);
+	}
+
+/* Weak and semi week keys as take from
+ * %A D.W. Davies
+ * %A W.L. Price
+ * %T Security for Computer Networks
+ * %I John Wiley & Sons
+ * %D 1984
+ * Many thanks to smb@ulysses.att.com (Steven Bellovin) for the reference
+ * (and actual cblock values).
+ */
+#define NUM_WEAK_KEY	16
+static const DES_cblock weak_keys[NUM_WEAK_KEY]={
+	/* weak keys */
+	{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01},
+	{0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE},
+	{0x1F,0x1F,0x1F,0x1F,0x0E,0x0E,0x0E,0x0E},
+	{0xE0,0xE0,0xE0,0xE0,0xF1,0xF1,0xF1,0xF1},
+	/* semi-weak keys */
+	{0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE},
+	{0xFE,0x01,0xFE,0x01,0xFE,0x01,0xFE,0x01},
+	{0x1F,0xE0,0x1F,0xE0,0x0E,0xF1,0x0E,0xF1},
+	{0xE0,0x1F,0xE0,0x1F,0xF1,0x0E,0xF1,0x0E},
+	{0x01,0xE0,0x01,0xE0,0x01,0xF1,0x01,0xF1},
+	{0xE0,0x01,0xE0,0x01,0xF1,0x01,0xF1,0x01},
+	{0x1F,0xFE,0x1F,0xFE,0x0E,0xFE,0x0E,0xFE},
+	{0xFE,0x1F,0xFE,0x1F,0xFE,0x0E,0xFE,0x0E},
+	{0x01,0x1F,0x01,0x1F,0x01,0x0E,0x01,0x0E},
+	{0x1F,0x01,0x1F,0x01,0x0E,0x01,0x0E,0x01},
+	{0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1,0xFE},
+	{0xFE,0xE0,0xFE,0xE0,0xFE,0xF1,0xFE,0xF1}};
+
+int DES_is_weak_key(const_DES_cblock *key)
+	{
+	int i;
+
+	for (i=0; i<NUM_WEAK_KEY; i++)
+		/* Added == 0 to comparison, I obviously don't run
+		 * this section very often :-(, thanks to
+		 * engineering@MorningStar.Com for the fix
+		 * eay 93/06/29
+		 * Another problem, I was comparing only the first 4
+		 * bytes, 97/03/18 */
+		if (memcmp(weak_keys[i],key,sizeof(DES_cblock)) == 0) return(1);
+	return(0);
+	}
+
+/* NOW DEFINED IN des_local.h
+ * See ecb_encrypt.c for a pseudo description of these macros. 
+ * #define PERM_OP(a,b,t,n,m) ((t)=((((a)>>(n))^(b))&(m)),\
+ * 	(b)^=(t),\
+ * 	(a)=((a)^((t)<<(n))))
+ */
+
+#define HPERM_OP(a,t,n,m) ((t)=((((a)<<(16-(n)))^(a))&(m)),\
+	(a)=(a)^(t)^(t>>(16-(n))))
+
+static const DES_LONG des_skb[8][64]={
+	{
+	/* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
+	0x00000000L,0x00000010L,0x20000000L,0x20000010L,
+	0x00010000L,0x00010010L,0x20010000L,0x20010010L,
+	0x00000800L,0x00000810L,0x20000800L,0x20000810L,
+	0x00010800L,0x00010810L,0x20010800L,0x20010810L,
+	0x00000020L,0x00000030L,0x20000020L,0x20000030L,
+	0x00010020L,0x00010030L,0x20010020L,0x20010030L,
+	0x00000820L,0x00000830L,0x20000820L,0x20000830L,
+	0x00010820L,0x00010830L,0x20010820L,0x20010830L,
+	0x00080000L,0x00080010L,0x20080000L,0x20080010L,
+	0x00090000L,0x00090010L,0x20090000L,0x20090010L,
+	0x00080800L,0x00080810L,0x20080800L,0x20080810L,
+	0x00090800L,0x00090810L,0x20090800L,0x20090810L,
+	0x00080020L,0x00080030L,0x20080020L,0x20080030L,
+	0x00090020L,0x00090030L,0x20090020L,0x20090030L,
+	0x00080820L,0x00080830L,0x20080820L,0x20080830L,
+	0x00090820L,0x00090830L,0x20090820L,0x20090830L,
+	},{
+	/* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 */
+	0x00000000L,0x02000000L,0x00002000L,0x02002000L,
+	0x00200000L,0x02200000L,0x00202000L,0x02202000L,
+	0x00000004L,0x02000004L,0x00002004L,0x02002004L,
+	0x00200004L,0x02200004L,0x00202004L,0x02202004L,
+	0x00000400L,0x02000400L,0x00002400L,0x02002400L,
+	0x00200400L,0x02200400L,0x00202400L,0x02202400L,
+	0x00000404L,0x02000404L,0x00002404L,0x02002404L,
+	0x00200404L,0x02200404L,0x00202404L,0x02202404L,
+	0x10000000L,0x12000000L,0x10002000L,0x12002000L,
+	0x10200000L,0x12200000L,0x10202000L,0x12202000L,
+	0x10000004L,0x12000004L,0x10002004L,0x12002004L,
+	0x10200004L,0x12200004L,0x10202004L,0x12202004L,
+	0x10000400L,0x12000400L,0x10002400L,0x12002400L,
+	0x10200400L,0x12200400L,0x10202400L,0x12202400L,
+	0x10000404L,0x12000404L,0x10002404L,0x12002404L,
+	0x10200404L,0x12200404L,0x10202404L,0x12202404L,
+	},{
+	/* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 */
+	0x00000000L,0x00000001L,0x00040000L,0x00040001L,
+	0x01000000L,0x01000001L,0x01040000L,0x01040001L,
+	0x00000002L,0x00000003L,0x00040002L,0x00040003L,
+	0x01000002L,0x01000003L,0x01040002L,0x01040003L,
+	0x00000200L,0x00000201L,0x00040200L,0x00040201L,
+	0x01000200L,0x01000201L,0x01040200L,0x01040201L,
+	0x00000202L,0x00000203L,0x00040202L,0x00040203L,
+	0x01000202L,0x01000203L,0x01040202L,0x01040203L,
+	0x08000000L,0x08000001L,0x08040000L,0x08040001L,
+	0x09000000L,0x09000001L,0x09040000L,0x09040001L,
+	0x08000002L,0x08000003L,0x08040002L,0x08040003L,
+	0x09000002L,0x09000003L,0x09040002L,0x09040003L,
+	0x08000200L,0x08000201L,0x08040200L,0x08040201L,
+	0x09000200L,0x09000201L,0x09040200L,0x09040201L,
+	0x08000202L,0x08000203L,0x08040202L,0x08040203L,
+	0x09000202L,0x09000203L,0x09040202L,0x09040203L,
+	},{
+	/* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 */
+	0x00000000L,0x00100000L,0x00000100L,0x00100100L,
+	0x00000008L,0x00100008L,0x00000108L,0x00100108L,
+	0x00001000L,0x00101000L,0x00001100L,0x00101100L,
+	0x00001008L,0x00101008L,0x00001108L,0x00101108L,
+	0x04000000L,0x04100000L,0x04000100L,0x04100100L,
+	0x04000008L,0x04100008L,0x04000108L,0x04100108L,
+	0x04001000L,0x04101000L,0x04001100L,0x04101100L,
+	0x04001008L,0x04101008L,0x04001108L,0x04101108L,
+	0x00020000L,0x00120000L,0x00020100L,0x00120100L,
+	0x00020008L,0x00120008L,0x00020108L,0x00120108L,
+	0x00021000L,0x00121000L,0x00021100L,0x00121100L,
+	0x00021008L,0x00121008L,0x00021108L,0x00121108L,
+	0x04020000L,0x04120000L,0x04020100L,0x04120100L,
+	0x04020008L,0x04120008L,0x04020108L,0x04120108L,
+	0x04021000L,0x04121000L,0x04021100L,0x04121100L,
+	0x04021008L,0x04121008L,0x04021108L,0x04121108L,
+	},{
+	/* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
+	0x00000000L,0x10000000L,0x00010000L,0x10010000L,
+	0x00000004L,0x10000004L,0x00010004L,0x10010004L,
+	0x20000000L,0x30000000L,0x20010000L,0x30010000L,
+	0x20000004L,0x30000004L,0x20010004L,0x30010004L,
+	0x00100000L,0x10100000L,0x00110000L,0x10110000L,
+	0x00100004L,0x10100004L,0x00110004L,0x10110004L,
+	0x20100000L,0x30100000L,0x20110000L,0x30110000L,
+	0x20100004L,0x30100004L,0x20110004L,0x30110004L,
+	0x00001000L,0x10001000L,0x00011000L,0x10011000L,
+	0x00001004L,0x10001004L,0x00011004L,0x10011004L,
+	0x20001000L,0x30001000L,0x20011000L,0x30011000L,
+	0x20001004L,0x30001004L,0x20011004L,0x30011004L,
+	0x00101000L,0x10101000L,0x00111000L,0x10111000L,
+	0x00101004L,0x10101004L,0x00111004L,0x10111004L,
+	0x20101000L,0x30101000L,0x20111000L,0x30111000L,
+	0x20101004L,0x30101004L,0x20111004L,0x30111004L,
+	},{
+	/* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 */
+	0x00000000L,0x08000000L,0x00000008L,0x08000008L,
+	0x00000400L,0x08000400L,0x00000408L,0x08000408L,
+	0x00020000L,0x08020000L,0x00020008L,0x08020008L,
+	0x00020400L,0x08020400L,0x00020408L,0x08020408L,
+	0x00000001L,0x08000001L,0x00000009L,0x08000009L,
+	0x00000401L,0x08000401L,0x00000409L,0x08000409L,
+	0x00020001L,0x08020001L,0x00020009L,0x08020009L,
+	0x00020401L,0x08020401L,0x00020409L,0x08020409L,
+	0x02000000L,0x0A000000L,0x02000008L,0x0A000008L,
+	0x02000400L,0x0A000400L,0x02000408L,0x0A000408L,
+	0x02020000L,0x0A020000L,0x02020008L,0x0A020008L,
+	0x02020400L,0x0A020400L,0x02020408L,0x0A020408L,
+	0x02000001L,0x0A000001L,0x02000009L,0x0A000009L,
+	0x02000401L,0x0A000401L,0x02000409L,0x0A000409L,
+	0x02020001L,0x0A020001L,0x02020009L,0x0A020009L,
+	0x02020401L,0x0A020401L,0x02020409L,0x0A020409L,
+	},{
+	/* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 */
+	0x00000000L,0x00000100L,0x00080000L,0x00080100L,
+	0x01000000L,0x01000100L,0x01080000L,0x01080100L,
+	0x00000010L,0x00000110L,0x00080010L,0x00080110L,
+	0x01000010L,0x01000110L,0x01080010L,0x01080110L,
+	0x00200000L,0x00200100L,0x00280000L,0x00280100L,
+	0x01200000L,0x01200100L,0x01280000L,0x01280100L,
+	0x00200010L,0x00200110L,0x00280010L,0x00280110L,
+	0x01200010L,0x01200110L,0x01280010L,0x01280110L,
+	0x00000200L,0x00000300L,0x00080200L,0x00080300L,
+	0x01000200L,0x01000300L,0x01080200L,0x01080300L,
+	0x00000210L,0x00000310L,0x00080210L,0x00080310L,
+	0x01000210L,0x01000310L,0x01080210L,0x01080310L,
+	0x00200200L,0x00200300L,0x00280200L,0x00280300L,
+	0x01200200L,0x01200300L,0x01280200L,0x01280300L,
+	0x00200210L,0x00200310L,0x00280210L,0x00280310L,
+	0x01200210L,0x01200310L,0x01280210L,0x01280310L,
+	},{
+	/* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 */
+	0x00000000L,0x04000000L,0x00040000L,0x04040000L,
+	0x00000002L,0x04000002L,0x00040002L,0x04040002L,
+	0x00002000L,0x04002000L,0x00042000L,0x04042000L,
+	0x00002002L,0x04002002L,0x00042002L,0x04042002L,
+	0x00000020L,0x04000020L,0x00040020L,0x04040020L,
+	0x00000022L,0x04000022L,0x00040022L,0x04040022L,
+	0x00002020L,0x04002020L,0x00042020L,0x04042020L,
+	0x00002022L,0x04002022L,0x00042022L,0x04042022L,
+	0x00000800L,0x04000800L,0x00040800L,0x04040800L,
+	0x00000802L,0x04000802L,0x00040802L,0x04040802L,
+	0x00002800L,0x04002800L,0x00042800L,0x04042800L,
+	0x00002802L,0x04002802L,0x00042802L,0x04042802L,
+	0x00000820L,0x04000820L,0x00040820L,0x04040820L,
+	0x00000822L,0x04000822L,0x00040822L,0x04040822L,
+	0x00002820L,0x04002820L,0x00042820L,0x04042820L,
+	0x00002822L,0x04002822L,0x00042822L,0x04042822L,
+	}};
+
+int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule)
+	{
+	if (DES_check_key)
+		{
+		return DES_set_key_checked(key, schedule);
+		}
+	else
+		{
+		DES_set_key_unchecked(key, schedule);
+		return 0;
+		}
+	}
+
+/* return 0 if key parity is odd (correct),
+ * return -1 if key parity error,
+ * return -2 if illegal weak key.
+ */
+int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule)
+	{
+	if (!DES_check_key_parity(key))
+		return(-1);
+	if (DES_is_weak_key(key))
+		return(-2);
+	DES_set_key_unchecked(key, schedule);
+	return 0;
+	}
+
+void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule)
+	{
+	static const int shifts2[16]={0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0};
+	register DES_LONG c,d,t,s,t2;
+	register const unsigned char *in;
+	register DES_LONG *k;
+	register int i;
+
+#ifdef OPENBSD_DEV_CRYPTO
+	memcpy(schedule->key,key,sizeof schedule->key);
+	schedule->session=NULL;
+#endif
+	k = &schedule->ks->deslong[0];
+	in = &(*key)[0];
+
+	c2l(in,c);
+	c2l(in,d);
+
+	/* do PC1 in 47 simple operations :-)
+	 * Thanks to John Fletcher (john_fletcher@lccmail.ocf.llnl.gov)
+	 * for the inspiration. :-) */
+	PERM_OP (d,c,t,4,0x0f0f0f0fL);
+	HPERM_OP(c,t,-2,0xcccc0000L);
+	HPERM_OP(d,t,-2,0xcccc0000L);
+	PERM_OP (d,c,t,1,0x55555555L);
+	PERM_OP (c,d,t,8,0x00ff00ffL);
+	PERM_OP (d,c,t,1,0x55555555L);
+	d=	(((d&0x000000ffL)<<16L)| (d&0x0000ff00L)     |
+		 ((d&0x00ff0000L)>>16L)|((c&0xf0000000L)>>4L));
+	c&=0x0fffffffL;
+
+	for (i=0; i<ITERATIONS; i++)
+		{
+		if (shifts2[i])
+			{ c=((c>>2L)|(c<<26L)); d=((d>>2L)|(d<<26L)); }
+		else
+			{ c=((c>>1L)|(c<<27L)); d=((d>>1L)|(d<<27L)); }
+		c&=0x0fffffffL;
+		d&=0x0fffffffL;
+		/* could be a few less shifts but I am to lazy at this
+		 * point in time to investigate */
+		s=	des_skb[0][ (c    )&0x3f                ]|
+			des_skb[1][((c>> 6L)&0x03)|((c>> 7L)&0x3c)]|
+			des_skb[2][((c>>13L)&0x0f)|((c>>14L)&0x30)]|
+			des_skb[3][((c>>20L)&0x01)|((c>>21L)&0x06) |
+						  ((c>>22L)&0x38)];
+		t=	des_skb[4][ (d    )&0x3f                ]|
+			des_skb[5][((d>> 7L)&0x03)|((d>> 8L)&0x3c)]|
+			des_skb[6][ (d>>15L)&0x3f                ]|
+			des_skb[7][((d>>21L)&0x0f)|((d>>22L)&0x30)];
+
+		/* table contained 0213 4657 */
+		t2=((t<<16L)|(s&0x0000ffffL))&0xffffffffL;
+		*(k++)=ROTATE(t2,30)&0xffffffffL;
+
+		t2=((s>>16L)|(t&0xffff0000L));
+		*(k++)=ROTATE(t2,26)&0xffffffffL;
+		}
+	}
+
+int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule)
+	{
+	return(DES_set_key(key,schedule));
+	}
+/*
+#undef des_fixup_key_parity
+void des_fixup_key_parity(des_cblock *key)
+	{
+	des_set_odd_parity(key);
+	}
+*/
diff --git a/snmplib/openssl/openssl_sha.h b/snmplib/openssl/openssl_sha.h
new file mode 100644
index 0000000..ec2ff09
--- /dev/null
+++ b/snmplib/openssl/openssl_sha.h
@@ -0,0 +1,199 @@
+/* crypto/sha/sha.h */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+#ifndef HEADER_SHA_H
+#define HEADER_SHA_H
+
+#include <stddef.h>
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+#if defined(OPENSSL_NO_SHA) || (defined(OPENSSL_NO_SHA0) && defined(OPENSSL_NO_SHA1))
+#error SHA is disabled.
+#endif
+
+#if defined(OPENSSL_FIPS)
+#define FIPS_SHA_SIZE_T size_t
+#endif
+
+/*
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ * ! SHA_LONG has to be at least 32 bits wide. If it's wider, then !
+ * ! SHA_LONG_LOG2 has to be defined along.                        !
+ * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ */
+
+#if defined(__LP32__)
+#define SHA_LONG unsigned long
+#elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__)
+#define SHA_LONG unsigned long
+#define SHA_LONG_LOG2 3
+#else
+#define SHA_LONG unsigned int
+#endif
+
+#define SHA_LBLOCK	16
+#define SHA_CBLOCK	(SHA_LBLOCK*4)	/* SHA treats input data as a
+					 * contiguous array of 32 bit
+					 * wide big-endian values. */
+#define SHA_LAST_BLOCK  (SHA_CBLOCK-8)
+#define SHA_DIGEST_LENGTH 20
+
+typedef struct SHAstate_st
+	{
+	SHA_LONG h0,h1,h2,h3,h4;
+	SHA_LONG Nl,Nh;
+	SHA_LONG data[SHA_LBLOCK];
+	unsigned int num;
+	} SHA_CTX;
+
+#ifndef OPENSSL_NO_SHA0
+int SHA_Init(SHA_CTX *c);
+int SHA_Update(SHA_CTX *c, const void *data, size_t len);
+int SHA_Final(unsigned char *md, SHA_CTX *c);
+unsigned char *SHA(const unsigned char *d, size_t n, unsigned char *md);
+void SHA_Transform(SHA_CTX *c, const unsigned char *data);
+#endif
+#ifndef OPENSSL_NO_SHA1
+int SHA1_Init(SHA_CTX *c);
+int SHA1_Update(SHA_CTX *c, const void *data, size_t len);
+int SHA1_Final(unsigned char *md, SHA_CTX *c);
+unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md);
+void SHA1_Transform(SHA_CTX *c, const unsigned char *data);
+#endif
+
+#define SHA256_CBLOCK	(SHA_LBLOCK*4)	/* SHA-256 treats input data as a
+					 * contiguous array of 32 bit
+					 * wide big-endian values. */
+#define SHA224_DIGEST_LENGTH	28
+#define SHA256_DIGEST_LENGTH	32
+
+typedef struct SHA256state_st
+	{
+	SHA_LONG h[8];
+	SHA_LONG Nl,Nh;
+	SHA_LONG data[SHA_LBLOCK];
+	unsigned int num,md_len;
+	} SHA256_CTX;
+
+#ifndef OPENSSL_NO_SHA256
+int SHA224_Init(SHA256_CTX *c);
+int SHA224_Update(SHA256_CTX *c, const void *data, size_t len);
+int SHA224_Final(unsigned char *md, SHA256_CTX *c);
+unsigned char *SHA224(const unsigned char *d, size_t n,unsigned char *md);
+int SHA256_Init(SHA256_CTX *c);
+int SHA256_Update(SHA256_CTX *c, const void *data, size_t len);
+int SHA256_Final(unsigned char *md, SHA256_CTX *c);
+unsigned char *SHA256(const unsigned char *d, size_t n,unsigned char *md);
+void SHA256_Transform(SHA256_CTX *c, const unsigned char *data);
+#endif
+
+#define SHA384_DIGEST_LENGTH	48
+#define SHA512_DIGEST_LENGTH	64
+
+#ifndef OPENSSL_NO_SHA512
+/*
+ * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64
+ * being exactly 64-bit wide. See Implementation Notes in sha512.c
+ * for further details.
+ */
+#define SHA512_CBLOCK	(SHA_LBLOCK*8)	/* SHA-512 treats input data as a
+					 * contiguous array of 64 bit
+					 * wide big-endian values. */
+#if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__)
+#define SHA_LONG64 unsigned __int64
+#define U64(C)     C##UI64
+#elif defined(__arch64__)
+#define SHA_LONG64 unsigned long
+#define U64(C)     C##UL
+#else
+#define SHA_LONG64 unsigned long long
+#define U64(C)     C##ULL
+#endif
+
+typedef struct SHA512state_st
+	{
+	SHA_LONG64 h[8];
+	SHA_LONG64 Nl,Nh;
+	union {
+		SHA_LONG64	d[SHA_LBLOCK];
+		unsigned char	p[SHA512_CBLOCK];
+	} u;
+	unsigned int num,md_len;
+	} SHA512_CTX;
+#endif
+
+#ifndef OPENSSL_NO_SHA512
+int SHA384_Init(SHA512_CTX *c);
+int SHA384_Update(SHA512_CTX *c, const void *data, size_t len);
+int SHA384_Final(unsigned char *md, SHA512_CTX *c);
+unsigned char *SHA384(const unsigned char *d, size_t n,unsigned char *md);
+int SHA512_Init(SHA512_CTX *c);
+int SHA512_Update(SHA512_CTX *c, const void *data, size_t len);
+int SHA512_Final(unsigned char *md, SHA512_CTX *c);
+unsigned char *SHA512(const unsigned char *d, size_t n,unsigned char *md);
+void SHA512_Transform(SHA512_CTX *c, const unsigned char *data);
+#endif
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif
diff --git a/snmplib/openssl/openssl_sha1.c b/snmplib/openssl/openssl_sha1.c
new file mode 100644
index 0000000..0d048db
--- /dev/null
+++ b/snmplib/openssl/openssl_sha1.c
@@ -0,0 +1,65 @@
+/* crypto/sha/sha1dgst.c */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+#undef  SHA_0
+#define SHA_1
+
+/* The implementation is in ../md32_common.h */
+
+#include "openssl/openssl_sha_local.h"
+
diff --git a/snmplib/openssl/openssl_sha_local.h b/snmplib/openssl/openssl_sha_local.h
new file mode 100644
index 0000000..f7bc0dc
--- /dev/null
+++ b/snmplib/openssl/openssl_sha_local.h
@@ -0,0 +1,436 @@
+/* crypto/sha/sha_locl.h */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "openssl/openssl_sha.h"
+
+#define DATA_ORDER_IS_BIG_ENDIAN
+
+#define HASH_LONG               SHA_LONG
+#define HASH_CTX                SHA_CTX
+#define HASH_CBLOCK             SHA_CBLOCK
+#define HASH_MAKE_STRING(c,s)   do {	\
+	unsigned long ll;		\
+	ll=(c)->h0; HOST_l2c(ll,(s));	\
+	ll=(c)->h1; HOST_l2c(ll,(s));	\
+	ll=(c)->h2; HOST_l2c(ll,(s));	\
+	ll=(c)->h3; HOST_l2c(ll,(s));	\
+	ll=(c)->h4; HOST_l2c(ll,(s));	\
+	} while (0)
+
+#if defined(SHA_0)
+
+# define HASH_UPDATE             	SHA_Update
+# define HASH_TRANSFORM          	SHA_Transform
+# define HASH_FINAL              	SHA_Final
+# define HASH_INIT			SHA_Init
+# define HASH_BLOCK_DATA_ORDER   	sha_block_data_order
+# define Xupdate(a,ix,ia,ib,ic,id)	(ix=(a)=(ia^ib^ic^id))
+
+static void sha_block_data_order (SHA_CTX *c, const void *p,size_t num);
+
+#elif defined(SHA_1)
+
+# define HASH_UPDATE             	SHA1_Update
+# define HASH_TRANSFORM          	SHA1_Transform
+# define HASH_FINAL              	SHA1_Final
+# define HASH_INIT			SHA1_Init
+# define HASH_BLOCK_DATA_ORDER   	sha1_block_data_order
+# if defined(__MWERKS__) && defined(__MC68K__)
+   /* Metrowerks for Motorola fails otherwise:-( <appro@fy.chalmers.se> */
+#  define Xupdate(a,ix,ia,ib,ic,id)	do { (a)=(ia^ib^ic^id);		\
+					     ix=(a)=ROTATE((a),1);	\
+					} while (0)
+# else
+#  define Xupdate(a,ix,ia,ib,ic,id)	( (a)=(ia^ib^ic^id),	\
+					  ix=(a)=ROTATE((a),1)	\
+					)
+# endif
+
+#ifndef SHA1_ASM
+static
+#endif
+void sha1_block_data_order (SHA_CTX *c, const void *p,size_t num);
+
+#else
+# error "Either SHA_0 or SHA_1 must be defined."
+#endif
+
+#include "openssl_md32_common.h"
+
+#define INIT_DATA_h0 0x67452301UL
+#define INIT_DATA_h1 0xefcdab89UL
+#define INIT_DATA_h2 0x98badcfeUL
+#define INIT_DATA_h3 0x10325476UL
+#define INIT_DATA_h4 0xc3d2e1f0UL
+
+int HASH_INIT (SHA_CTX *c)
+	{
+	memset (c,0,sizeof(*c));
+	c->h0=INIT_DATA_h0;
+	c->h1=INIT_DATA_h1;
+	c->h2=INIT_DATA_h2;
+	c->h3=INIT_DATA_h3;
+	c->h4=INIT_DATA_h4;
+	return 1;
+	}
+
+#define K_00_19	0x5a827999UL
+#define K_20_39 0x6ed9eba1UL
+#define K_40_59 0x8f1bbcdcUL
+#define K_60_79 0xca62c1d6UL
+
+/* As  pointed out by Wei Dai <weidai@eskimo.com>, F() below can be
+ * simplified to the code in F_00_19.  Wei attributes these optimisations
+ * to Peter Gutmann's SHS code, and he attributes it to Rich Schroeppel.
+ * #define F(x,y,z) (((x) & (y))  |  ((~(x)) & (z)))
+ * I've just become aware of another tweak to be made, again from Wei Dai,
+ * in F_40_59, (x&a)|(y&a) -> (x|y)&a
+ */
+#define	F_00_19(b,c,d)	((((c) ^ (d)) & (b)) ^ (d)) 
+#define	F_20_39(b,c,d)	((b) ^ (c) ^ (d))
+#define F_40_59(b,c,d)	(((b) & (c)) | (((b)|(c)) & (d))) 
+#define	F_60_79(b,c,d)	F_20_39(b,c,d)
+
+#ifndef OPENSSL_SMALL_FOOTPRINT
+
+#define BODY_00_15(i,a,b,c,d,e,f,xi) \
+	(f)=xi+(e)+K_00_19+ROTATE((a),5)+F_00_19((b),(c),(d)); \
+	(b)=ROTATE((b),30);
+
+#define BODY_16_19(i,a,b,c,d,e,f,xi,xa,xb,xc,xd) \
+	Xupdate(f,xi,xa,xb,xc,xd); \
+	(f)+=(e)+K_00_19+ROTATE((a),5)+F_00_19((b),(c),(d)); \
+	(b)=ROTATE((b),30);
+
+#define BODY_20_31(i,a,b,c,d,e,f,xi,xa,xb,xc,xd) \
+	Xupdate(f,xi,xa,xb,xc,xd); \
+	(f)+=(e)+K_20_39+ROTATE((a),5)+F_20_39((b),(c),(d)); \
+	(b)=ROTATE((b),30);
+
+#define BODY_32_39(i,a,b,c,d,e,f,xa,xb,xc,xd) \
+	Xupdate(f,xa,xa,xb,xc,xd); \
+	(f)+=(e)+K_20_39+ROTATE((a),5)+F_20_39((b),(c),(d)); \
+	(b)=ROTATE((b),30);
+
+#define BODY_40_59(i,a,b,c,d,e,f,xa,xb,xc,xd) \
+	Xupdate(f,xa,xa,xb,xc,xd); \
+	(f)+=(e)+K_40_59+ROTATE((a),5)+F_40_59((b),(c),(d)); \
+	(b)=ROTATE((b),30);
+
+#define BODY_60_79(i,a,b,c,d,e,f,xa,xb,xc,xd) \
+	Xupdate(f,xa,xa,xb,xc,xd); \
+	(f)=xa+(e)+K_60_79+ROTATE((a),5)+F_60_79((b),(c),(d)); \
+	(b)=ROTATE((b),30);
+
+#ifdef X
+#undef X
+#endif
+#ifndef MD32_XARRAY
+  /*
+   * Originally X was an array. As it's automatic it's natural
+   * to expect RISC compiler to accomodate at least part of it in
+   * the register bank, isn't it? Unfortunately not all compilers
+   * "find" this expectation reasonable:-( On order to make such
+   * compilers generate better code I replace X[] with a bunch of
+   * X0, X1, etc. See the function body below...
+   *					<appro@fy.chalmers.se>
+   */
+# define X(i)	XX##i
+#else
+  /*
+   * However! Some compilers (most notably HP C) get overwhelmed by
+   * that many local variables so that we have to have the way to
+   * fall down to the original behavior.
+   */
+# define X(i)	XX[i]
+#endif
+
+#if !defined(SHA_1) || !defined(SHA1_ASM)
+static void HASH_BLOCK_DATA_ORDER (SHA_CTX *c, const void *p, size_t num)
+	{
+	const unsigned char *data=p;
+	register unsigned MD32_REG_T A,B,C,D,E,T,l;
+#ifndef MD32_XARRAY
+	unsigned MD32_REG_T	XX0, XX1, XX2, XX3, XX4, XX5, XX6, XX7,
+				XX8, XX9,XX10,XX11,XX12,XX13,XX14,XX15;
+#else
+	SHA_LONG	XX[16];
+#endif
+
+	A=c->h0;
+	B=c->h1;
+	C=c->h2;
+	D=c->h3;
+	E=c->h4;
+
+	for (;;)
+			{
+	const union { long one; char little; } is_endian = {1};
+
+	if (!is_endian.little && sizeof(SHA_LONG)==4 && ((size_t)p%4)==0)
+		{
+		const SHA_LONG *W=(const SHA_LONG *)data;
+
+		X( 0) = W[0];				X( 1) = W[ 1];
+		BODY_00_15( 0,A,B,C,D,E,T,X( 0));	X( 2) = W[ 2];
+		BODY_00_15( 1,T,A,B,C,D,E,X( 1));	X( 3) = W[ 3];
+		BODY_00_15( 2,E,T,A,B,C,D,X( 2));	X( 4) = W[ 4];
+		BODY_00_15( 3,D,E,T,A,B,C,X( 3));	X( 5) = W[ 5];
+		BODY_00_15( 4,C,D,E,T,A,B,X( 4));	X( 6) = W[ 6];
+		BODY_00_15( 5,B,C,D,E,T,A,X( 5));	X( 7) = W[ 7];
+		BODY_00_15( 6,A,B,C,D,E,T,X( 6));	X( 8) = W[ 8];
+		BODY_00_15( 7,T,A,B,C,D,E,X( 7));	X( 9) = W[ 9];
+		BODY_00_15( 8,E,T,A,B,C,D,X( 8));	X(10) = W[10];
+		BODY_00_15( 9,D,E,T,A,B,C,X( 9));	X(11) = W[11];
+		BODY_00_15(10,C,D,E,T,A,B,X(10));	X(12) = W[12];
+		BODY_00_15(11,B,C,D,E,T,A,X(11));	X(13) = W[13];
+		BODY_00_15(12,A,B,C,D,E,T,X(12));	X(14) = W[14];
+		BODY_00_15(13,T,A,B,C,D,E,X(13));	X(15) = W[15];
+		BODY_00_15(14,E,T,A,B,C,D,X(14));
+		BODY_00_15(15,D,E,T,A,B,C,X(15));
+
+		data += SHA_CBLOCK;
+		}
+	else
+		{
+		HOST_c2l(data,l); X( 0)=l;		HOST_c2l(data,l); X( 1)=l;
+		BODY_00_15( 0,A,B,C,D,E,T,X( 0));	HOST_c2l(data,l); X( 2)=l;
+		BODY_00_15( 1,T,A,B,C,D,E,X( 1));	HOST_c2l(data,l); X( 3)=l;
+		BODY_00_15( 2,E,T,A,B,C,D,X( 2));	HOST_c2l(data,l); X( 4)=l;
+		BODY_00_15( 3,D,E,T,A,B,C,X( 3));	HOST_c2l(data,l); X( 5)=l;
+		BODY_00_15( 4,C,D,E,T,A,B,X( 4));	HOST_c2l(data,l); X( 6)=l;
+		BODY_00_15( 5,B,C,D,E,T,A,X( 5));	HOST_c2l(data,l); X( 7)=l;
+		BODY_00_15( 6,A,B,C,D,E,T,X( 6));	HOST_c2l(data,l); X( 8)=l;
+		BODY_00_15( 7,T,A,B,C,D,E,X( 7));	HOST_c2l(data,l); X( 9)=l;
+		BODY_00_15( 8,E,T,A,B,C,D,X( 8));	HOST_c2l(data,l); X(10)=l;
+		BODY_00_15( 9,D,E,T,A,B,C,X( 9));	HOST_c2l(data,l); X(11)=l;
+		BODY_00_15(10,C,D,E,T,A,B,X(10));	HOST_c2l(data,l); X(12)=l;
+		BODY_00_15(11,B,C,D,E,T,A,X(11));	HOST_c2l(data,l); X(13)=l;
+		BODY_00_15(12,A,B,C,D,E,T,X(12));	HOST_c2l(data,l); X(14)=l;
+		BODY_00_15(13,T,A,B,C,D,E,X(13));	HOST_c2l(data,l); X(15)=l;
+		BODY_00_15(14,E,T,A,B,C,D,X(14));
+		BODY_00_15(15,D,E,T,A,B,C,X(15));
+		}
+
+	BODY_16_19(16,C,D,E,T,A,B,X( 0),X( 0),X( 2),X( 8),X(13));
+	BODY_16_19(17,B,C,D,E,T,A,X( 1),X( 1),X( 3),X( 9),X(14));
+	BODY_16_19(18,A,B,C,D,E,T,X( 2),X( 2),X( 4),X(10),X(15));
+	BODY_16_19(19,T,A,B,C,D,E,X( 3),X( 3),X( 5),X(11),X( 0));
+
+	BODY_20_31(20,E,T,A,B,C,D,X( 4),X( 4),X( 6),X(12),X( 1));
+	BODY_20_31(21,D,E,T,A,B,C,X( 5),X( 5),X( 7),X(13),X( 2));
+	BODY_20_31(22,C,D,E,T,A,B,X( 6),X( 6),X( 8),X(14),X( 3));
+	BODY_20_31(23,B,C,D,E,T,A,X( 7),X( 7),X( 9),X(15),X( 4));
+	BODY_20_31(24,A,B,C,D,E,T,X( 8),X( 8),X(10),X( 0),X( 5));
+	BODY_20_31(25,T,A,B,C,D,E,X( 9),X( 9),X(11),X( 1),X( 6));
+	BODY_20_31(26,E,T,A,B,C,D,X(10),X(10),X(12),X( 2),X( 7));
+	BODY_20_31(27,D,E,T,A,B,C,X(11),X(11),X(13),X( 3),X( 8));
+	BODY_20_31(28,C,D,E,T,A,B,X(12),X(12),X(14),X( 4),X( 9));
+	BODY_20_31(29,B,C,D,E,T,A,X(13),X(13),X(15),X( 5),X(10));
+	BODY_20_31(30,A,B,C,D,E,T,X(14),X(14),X( 0),X( 6),X(11));
+	BODY_20_31(31,T,A,B,C,D,E,X(15),X(15),X( 1),X( 7),X(12));
+
+	BODY_32_39(32,E,T,A,B,C,D,X( 0),X( 2),X( 8),X(13));
+	BODY_32_39(33,D,E,T,A,B,C,X( 1),X( 3),X( 9),X(14));
+	BODY_32_39(34,C,D,E,T,A,B,X( 2),X( 4),X(10),X(15));
+	BODY_32_39(35,B,C,D,E,T,A,X( 3),X( 5),X(11),X( 0));
+	BODY_32_39(36,A,B,C,D,E,T,X( 4),X( 6),X(12),X( 1));
+	BODY_32_39(37,T,A,B,C,D,E,X( 5),X( 7),X(13),X( 2));
+	BODY_32_39(38,E,T,A,B,C,D,X( 6),X( 8),X(14),X( 3));
+	BODY_32_39(39,D,E,T,A,B,C,X( 7),X( 9),X(15),X( 4));
+
+	BODY_40_59(40,C,D,E,T,A,B,X( 8),X(10),X( 0),X( 5));
+	BODY_40_59(41,B,C,D,E,T,A,X( 9),X(11),X( 1),X( 6));
+	BODY_40_59(42,A,B,C,D,E,T,X(10),X(12),X( 2),X( 7));
+	BODY_40_59(43,T,A,B,C,D,E,X(11),X(13),X( 3),X( 8));
+	BODY_40_59(44,E,T,A,B,C,D,X(12),X(14),X( 4),X( 9));
+	BODY_40_59(45,D,E,T,A,B,C,X(13),X(15),X( 5),X(10));
+	BODY_40_59(46,C,D,E,T,A,B,X(14),X( 0),X( 6),X(11));
+	BODY_40_59(47,B,C,D,E,T,A,X(15),X( 1),X( 7),X(12));
+	BODY_40_59(48,A,B,C,D,E,T,X( 0),X( 2),X( 8),X(13));
+	BODY_40_59(49,T,A,B,C,D,E,X( 1),X( 3),X( 9),X(14));
+	BODY_40_59(50,E,T,A,B,C,D,X( 2),X( 4),X(10),X(15));
+	BODY_40_59(51,D,E,T,A,B,C,X( 3),X( 5),X(11),X( 0));
+	BODY_40_59(52,C,D,E,T,A,B,X( 4),X( 6),X(12),X( 1));
+	BODY_40_59(53,B,C,D,E,T,A,X( 5),X( 7),X(13),X( 2));
+	BODY_40_59(54,A,B,C,D,E,T,X( 6),X( 8),X(14),X( 3));
+	BODY_40_59(55,T,A,B,C,D,E,X( 7),X( 9),X(15),X( 4));
+	BODY_40_59(56,E,T,A,B,C,D,X( 8),X(10),X( 0),X( 5));
+	BODY_40_59(57,D,E,T,A,B,C,X( 9),X(11),X( 1),X( 6));
+	BODY_40_59(58,C,D,E,T,A,B,X(10),X(12),X( 2),X( 7));
+	BODY_40_59(59,B,C,D,E,T,A,X(11),X(13),X( 3),X( 8));
+
+	BODY_60_79(60,A,B,C,D,E,T,X(12),X(14),X( 4),X( 9));
+	BODY_60_79(61,T,A,B,C,D,E,X(13),X(15),X( 5),X(10));
+	BODY_60_79(62,E,T,A,B,C,D,X(14),X( 0),X( 6),X(11));
+	BODY_60_79(63,D,E,T,A,B,C,X(15),X( 1),X( 7),X(12));
+	BODY_60_79(64,C,D,E,T,A,B,X( 0),X( 2),X( 8),X(13));
+	BODY_60_79(65,B,C,D,E,T,A,X( 1),X( 3),X( 9),X(14));
+	BODY_60_79(66,A,B,C,D,E,T,X( 2),X( 4),X(10),X(15));
+	BODY_60_79(67,T,A,B,C,D,E,X( 3),X( 5),X(11),X( 0));
+	BODY_60_79(68,E,T,A,B,C,D,X( 4),X( 6),X(12),X( 1));
+	BODY_60_79(69,D,E,T,A,B,C,X( 5),X( 7),X(13),X( 2));
+	BODY_60_79(70,C,D,E,T,A,B,X( 6),X( 8),X(14),X( 3));
+	BODY_60_79(71,B,C,D,E,T,A,X( 7),X( 9),X(15),X( 4));
+	BODY_60_79(72,A,B,C,D,E,T,X( 8),X(10),X( 0),X( 5));
+	BODY_60_79(73,T,A,B,C,D,E,X( 9),X(11),X( 1),X( 6));
+	BODY_60_79(74,E,T,A,B,C,D,X(10),X(12),X( 2),X( 7));
+	BODY_60_79(75,D,E,T,A,B,C,X(11),X(13),X( 3),X( 8));
+	BODY_60_79(76,C,D,E,T,A,B,X(12),X(14),X( 4),X( 9));
+	BODY_60_79(77,B,C,D,E,T,A,X(13),X(15),X( 5),X(10));
+	BODY_60_79(78,A,B,C,D,E,T,X(14),X( 0),X( 6),X(11));
+	BODY_60_79(79,T,A,B,C,D,E,X(15),X( 1),X( 7),X(12));
+	
+	c->h0=(c->h0+E)&0xffffffffL; 
+	c->h1=(c->h1+T)&0xffffffffL;
+	c->h2=(c->h2+A)&0xffffffffL;
+	c->h3=(c->h3+B)&0xffffffffL;
+	c->h4=(c->h4+C)&0xffffffffL;
+
+	if (--num == 0) break;
+
+	A=c->h0;
+	B=c->h1;
+	C=c->h2;
+	D=c->h3;
+	E=c->h4;
+
+			}
+	}
+#endif
+
+#else	/* OPENSSL_SMALL_FOOTPRINT */
+
+#define BODY_00_15(xi)		 do {	\
+	T=E+K_00_19+F_00_19(B,C,D);	\
+	E=D, D=C, C=ROTATE(B,30), B=A;	\
+	A=ROTATE(A,5)+T+xi;	    } while(0)
+
+#define BODY_16_19(xa,xb,xc,xd)	 do {	\
+	Xupdate(T,xa,xa,xb,xc,xd);	\
+	T+=E+K_00_19+F_00_19(B,C,D);	\
+	E=D, D=C, C=ROTATE(B,30), B=A;	\
+	A=ROTATE(A,5)+T;	    } while(0)
+
+#define BODY_20_39(xa,xb,xc,xd)	 do {	\
+	Xupdate(T,xa,xa,xb,xc,xd);	\
+	T+=E+K_20_39+F_20_39(B,C,D);	\
+	E=D, D=C, C=ROTATE(B,30), B=A;	\
+	A=ROTATE(A,5)+T;	    } while(0)
+
+#define BODY_40_59(xa,xb,xc,xd)	 do {	\
+	Xupdate(T,xa,xa,xb,xc,xd);	\
+	T+=E+K_40_59+F_40_59(B,C,D);	\
+	E=D, D=C, C=ROTATE(B,30), B=A;	\
+	A=ROTATE(A,5)+T;	    } while(0)
+
+#define BODY_60_79(xa,xb,xc,xd)	 do {	\
+	Xupdate(T,xa,xa,xb,xc,xd);	\
+	T=E+K_60_79+F_60_79(B,C,D);	\
+	E=D, D=C, C=ROTATE(B,30), B=A;	\
+	A=ROTATE(A,5)+T+xa;	    } while(0)
+
+#if !defined(SHA_1) || !defined(SHA1_ASM)
+static void HASH_BLOCK_DATA_ORDER (SHA_CTX *c, const void *p, size_t num)
+	{
+	const unsigned char *data=p;
+	register unsigned MD32_REG_T A,B,C,D,E,T,l;
+	int i;
+	SHA_LONG	X[16];
+
+	A=c->h0;
+	B=c->h1;
+	C=c->h2;
+	D=c->h3;
+	E=c->h4;
+
+	for (;;)
+		{
+	for (i=0;i<16;i++)
+	{ HOST_c2l(data,l); X[i]=l; BODY_00_15(X[i]); }
+	for (i=0;i<4;i++)
+	{ BODY_16_19(X[i],       X[i+2],      X[i+8],     X[(i+13)&15]); }
+	for (;i<24;i++)
+	{ BODY_20_39(X[i&15],    X[(i+2)&15], X[(i+8)&15],X[(i+13)&15]); }
+	for (i=0;i<20;i++)
+	{ BODY_40_59(X[(i+8)&15],X[(i+10)&15],X[i&15],    X[(i+5)&15]);  }
+	for (i=4;i<24;i++)
+	{ BODY_60_79(X[(i+8)&15],X[(i+10)&15],X[i&15],    X[(i+5)&15]);  }
+
+	c->h0=(c->h0+A)&0xffffffffL; 
+	c->h1=(c->h1+B)&0xffffffffL;
+	c->h2=(c->h2+C)&0xffffffffL;
+	c->h3=(c->h3+D)&0xffffffffL;
+	c->h4=(c->h4+E)&0xffffffffL;
+
+	if (--num == 0) break;
+
+	A=c->h0;
+	B=c->h1;
+	C=c->h2;
+	D=c->h3;
+	E=c->h4;
+
+		}
+	}
+#endif
+
+#endif
diff --git a/snmplib/openssl/openssl_spr.h b/snmplib/openssl/openssl_spr.h
new file mode 100644
index 0000000..98ec61e
--- /dev/null
+++ b/snmplib/openssl/openssl_spr.h
@@ -0,0 +1,204 @@
+/* crypto/des/spr.h */
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ * 
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to.  The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ * 
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *    "This product includes cryptographic software written by
+ *     Eric Young (eay@cryptsoft.com)"
+ *    The word 'cryptographic' can be left out if the rouines from the library
+ *    being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from 
+ *    the apps directory (application code) you must include an acknowledgement:
+ *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ * 
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed.  i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+
+const DES_LONG DES_SPtrans[8][64]={
+{
+/* nibble 0 */
+0x02080800L, 0x00080000L, 0x02000002L, 0x02080802L,
+0x02000000L, 0x00080802L, 0x00080002L, 0x02000002L,
+0x00080802L, 0x02080800L, 0x02080000L, 0x00000802L,
+0x02000802L, 0x02000000L, 0x00000000L, 0x00080002L,
+0x00080000L, 0x00000002L, 0x02000800L, 0x00080800L,
+0x02080802L, 0x02080000L, 0x00000802L, 0x02000800L,
+0x00000002L, 0x00000800L, 0x00080800L, 0x02080002L,
+0x00000800L, 0x02000802L, 0x02080002L, 0x00000000L,
+0x00000000L, 0x02080802L, 0x02000800L, 0x00080002L,
+0x02080800L, 0x00080000L, 0x00000802L, 0x02000800L,
+0x02080002L, 0x00000800L, 0x00080800L, 0x02000002L,
+0x00080802L, 0x00000002L, 0x02000002L, 0x02080000L,
+0x02080802L, 0x00080800L, 0x02080000L, 0x02000802L,
+0x02000000L, 0x00000802L, 0x00080002L, 0x00000000L,
+0x00080000L, 0x02000000L, 0x02000802L, 0x02080800L,
+0x00000002L, 0x02080002L, 0x00000800L, 0x00080802L,
+},{
+/* nibble 1 */
+0x40108010L, 0x00000000L, 0x00108000L, 0x40100000L,
+0x40000010L, 0x00008010L, 0x40008000L, 0x00108000L,
+0x00008000L, 0x40100010L, 0x00000010L, 0x40008000L,
+0x00100010L, 0x40108000L, 0x40100000L, 0x00000010L,
+0x00100000L, 0x40008010L, 0x40100010L, 0x00008000L,
+0x00108010L, 0x40000000L, 0x00000000L, 0x00100010L,
+0x40008010L, 0x00108010L, 0x40108000L, 0x40000010L,
+0x40000000L, 0x00100000L, 0x00008010L, 0x40108010L,
+0x00100010L, 0x40108000L, 0x40008000L, 0x00108010L,
+0x40108010L, 0x00100010L, 0x40000010L, 0x00000000L,
+0x40000000L, 0x00008010L, 0x00100000L, 0x40100010L,
+0x00008000L, 0x40000000L, 0x00108010L, 0x40008010L,
+0x40108000L, 0x00008000L, 0x00000000L, 0x40000010L,
+0x00000010L, 0x40108010L, 0x00108000L, 0x40100000L,
+0x40100010L, 0x00100000L, 0x00008010L, 0x40008000L,
+0x40008010L, 0x00000010L, 0x40100000L, 0x00108000L,
+},{
+/* nibble 2 */
+0x04000001L, 0x04040100L, 0x00000100L, 0x04000101L,
+0x00040001L, 0x04000000L, 0x04000101L, 0x00040100L,
+0x04000100L, 0x00040000L, 0x04040000L, 0x00000001L,
+0x04040101L, 0x00000101L, 0x00000001L, 0x04040001L,
+0x00000000L, 0x00040001L, 0x04040100L, 0x00000100L,
+0x00000101L, 0x04040101L, 0x00040000L, 0x04000001L,
+0x04040001L, 0x04000100L, 0x00040101L, 0x04040000L,
+0x00040100L, 0x00000000L, 0x04000000L, 0x00040101L,
+0x04040100L, 0x00000100L, 0x00000001L, 0x00040000L,
+0x00000101L, 0x00040001L, 0x04040000L, 0x04000101L,
+0x00000000L, 0x04040100L, 0x00040100L, 0x04040001L,
+0x00040001L, 0x04000000L, 0x04040101L, 0x00000001L,
+0x00040101L, 0x04000001L, 0x04000000L, 0x04040101L,
+0x00040000L, 0x04000100L, 0x04000101L, 0x00040100L,
+0x04000100L, 0x00000000L, 0x04040001L, 0x00000101L,
+0x04000001L, 0x00040101L, 0x00000100L, 0x04040000L,
+},{
+/* nibble 3 */
+0x00401008L, 0x10001000L, 0x00000008L, 0x10401008L,
+0x00000000L, 0x10400000L, 0x10001008L, 0x00400008L,
+0x10401000L, 0x10000008L, 0x10000000L, 0x00001008L,
+0x10000008L, 0x00401008L, 0x00400000L, 0x10000000L,
+0x10400008L, 0x00401000L, 0x00001000L, 0x00000008L,
+0x00401000L, 0x10001008L, 0x10400000L, 0x00001000L,
+0x00001008L, 0x00000000L, 0x00400008L, 0x10401000L,
+0x10001000L, 0x10400008L, 0x10401008L, 0x00400000L,
+0x10400008L, 0x00001008L, 0x00400000L, 0x10000008L,
+0x00401000L, 0x10001000L, 0x00000008L, 0x10400000L,
+0x10001008L, 0x00000000L, 0x00001000L, 0x00400008L,
+0x00000000L, 0x10400008L, 0x10401000L, 0x00001000L,
+0x10000000L, 0x10401008L, 0x00401008L, 0x00400000L,
+0x10401008L, 0x00000008L, 0x10001000L, 0x00401008L,
+0x00400008L, 0x00401000L, 0x10400000L, 0x10001008L,
+0x00001008L, 0x10000000L, 0x10000008L, 0x10401000L,
+},{
+/* nibble 4 */
+0x08000000L, 0x00010000L, 0x00000400L, 0x08010420L,
+0x08010020L, 0x08000400L, 0x00010420L, 0x08010000L,
+0x00010000L, 0x00000020L, 0x08000020L, 0x00010400L,
+0x08000420L, 0x08010020L, 0x08010400L, 0x00000000L,
+0x00010400L, 0x08000000L, 0x00010020L, 0x00000420L,
+0x08000400L, 0x00010420L, 0x00000000L, 0x08000020L,
+0x00000020L, 0x08000420L, 0x08010420L, 0x00010020L,
+0x08010000L, 0x00000400L, 0x00000420L, 0x08010400L,
+0x08010400L, 0x08000420L, 0x00010020L, 0x08010000L,
+0x00010000L, 0x00000020L, 0x08000020L, 0x08000400L,
+0x08000000L, 0x00010400L, 0x08010420L, 0x00000000L,
+0x00010420L, 0x08000000L, 0x00000400L, 0x00010020L,
+0x08000420L, 0x00000400L, 0x00000000L, 0x08010420L,
+0x08010020L, 0x08010400L, 0x00000420L, 0x00010000L,
+0x00010400L, 0x08010020L, 0x08000400L, 0x00000420L,
+0x00000020L, 0x00010420L, 0x08010000L, 0x08000020L,
+},{
+/* nibble 5 */
+0x80000040L, 0x00200040L, 0x00000000L, 0x80202000L,
+0x00200040L, 0x00002000L, 0x80002040L, 0x00200000L,
+0x00002040L, 0x80202040L, 0x00202000L, 0x80000000L,
+0x80002000L, 0x80000040L, 0x80200000L, 0x00202040L,
+0x00200000L, 0x80002040L, 0x80200040L, 0x00000000L,
+0x00002000L, 0x00000040L, 0x80202000L, 0x80200040L,
+0x80202040L, 0x80200000L, 0x80000000L, 0x00002040L,
+0x00000040L, 0x00202000L, 0x00202040L, 0x80002000L,
+0x00002040L, 0x80000000L, 0x80002000L, 0x00202040L,
+0x80202000L, 0x00200040L, 0x00000000L, 0x80002000L,
+0x80000000L, 0x00002000L, 0x80200040L, 0x00200000L,
+0x00200040L, 0x80202040L, 0x00202000L, 0x00000040L,
+0x80202040L, 0x00202000L, 0x00200000L, 0x80002040L,
+0x80000040L, 0x80200000L, 0x00202040L, 0x00000000L,
+0x00002000L, 0x80000040L, 0x80002040L, 0x80202000L,
+0x80200000L, 0x00002040L, 0x00000040L, 0x80200040L,
+},{
+/* nibble 6 */
+0x00004000L, 0x00000200L, 0x01000200L, 0x01000004L,
+0x01004204L, 0x00004004L, 0x00004200L, 0x00000000L,
+0x01000000L, 0x01000204L, 0x00000204L, 0x01004000L,
+0x00000004L, 0x01004200L, 0x01004000L, 0x00000204L,
+0x01000204L, 0x00004000L, 0x00004004L, 0x01004204L,
+0x00000000L, 0x01000200L, 0x01000004L, 0x00004200L,
+0x01004004L, 0x00004204L, 0x01004200L, 0x00000004L,
+0x00004204L, 0x01004004L, 0x00000200L, 0x01000000L,
+0x00004204L, 0x01004000L, 0x01004004L, 0x00000204L,
+0x00004000L, 0x00000200L, 0x01000000L, 0x01004004L,
+0x01000204L, 0x00004204L, 0x00004200L, 0x00000000L,
+0x00000200L, 0x01000004L, 0x00000004L, 0x01000200L,
+0x00000000L, 0x01000204L, 0x01000200L, 0x00004200L,
+0x00000204L, 0x00004000L, 0x01004204L, 0x01000000L,
+0x01004200L, 0x00000004L, 0x00004004L, 0x01004204L,
+0x01000004L, 0x01004200L, 0x01004000L, 0x00004004L,
+},{
+/* nibble 7 */
+0x20800080L, 0x20820000L, 0x00020080L, 0x00000000L,
+0x20020000L, 0x00800080L, 0x20800000L, 0x20820080L,
+0x00000080L, 0x20000000L, 0x00820000L, 0x00020080L,
+0x00820080L, 0x20020080L, 0x20000080L, 0x20800000L,
+0x00020000L, 0x00820080L, 0x00800080L, 0x20020000L,
+0x20820080L, 0x20000080L, 0x00000000L, 0x00820000L,
+0x20000000L, 0x00800000L, 0x20020080L, 0x20800080L,
+0x00800000L, 0x00020000L, 0x20820000L, 0x00000080L,
+0x00800000L, 0x00020000L, 0x20000080L, 0x20820080L,
+0x00020080L, 0x20000000L, 0x00000000L, 0x00820000L,
+0x20800080L, 0x20020080L, 0x20020000L, 0x00800080L,
+0x20820000L, 0x00000080L, 0x00800080L, 0x20020000L,
+0x20820080L, 0x00800000L, 0x20800000L, 0x20000080L,
+0x00820000L, 0x00020080L, 0x20020080L, 0x20800000L,
+0x00000080L, 0x20820000L, 0x00820080L, 0x00000000L,
+0x20000000L, 0x20800080L, 0x00020000L, 0x00820080L,
+}};
diff --git a/snmplib/parse.c b/snmplib/parse.c
index ba4e84c..817c897 100644
--- a/snmplib/parse.c
+++ b/snmplib/parse.c
@@ -74,11 +74,7 @@
 # endif
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -87,9 +83,6 @@
 #  include <time.h>
 # endif
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
@@ -551,6 +544,7 @@
 static struct module *module_head = NULL;
 
 static struct node *orphan_nodes = NULL;
+NETSNMP_IMPORT struct tree *tree_head;
 struct tree        *tree_head = NULL;
 
 #define	NUMBER_OF_ROOT_NODES	3
@@ -708,7 +702,7 @@
     if (!name)
         return 0;
     for (cp = name; *cp; cp++)
-        hash += tolower(*cp);
+        hash += tolower((unsigned char)(*cp));
     return (hash);
 }
 
@@ -980,7 +974,6 @@
 {
     struct enum_list *ep;
     struct index_list *ip;
-    struct range_list *rp;
     struct varbind_list *vp;
     struct node    *np;
 
@@ -996,6 +989,7 @@
             }
         }
         if (np->ranges) {
+            struct range_list *rp;
             fprintf(fp, "  Ranges: ");
             for (rp = np->ranges; rp; rp = rp->next) {
                 fprintf(fp, "\n    ");
@@ -4103,7 +4097,7 @@
     struct module  *mp;
     struct module_compatability *mcp;
     struct tc      *ptc;
-    int             i;
+    unsigned int    i;
 
     for (mcp = module_map_head; mcp; mcp = module_map_head) {
         if (mcp == module_map)
@@ -4118,7 +4112,7 @@
     for (mp = module_head; mp; mp = module_head) {
         struct module_import *mi = mp->imports;
         if (mi) {
-            for (i = 0; i < mp->no_imports; ++i) {
+            for (i = 0; i < (unsigned int)mp->no_imports; ++i) {
                 SNMP_FREE((mi + i)->label);
             }
             mp->no_imports = 0;
@@ -4744,9 +4738,9 @@
                 goto more;
             }
         }
-        if (token[0] == '-' || isdigit(token[0])) {
+        if (token[0] == '-' || isdigit((unsigned char)(token[0]))) {
             for (cp = token + 1; *cp; cp++)
-                if (!isdigit(*cp))
+                if (!isdigit((unsigned char)(*cp)))
                     return LABEL;
             return NUMBER;
         }
diff --git a/snmplib/pkcs.c b/snmplib/pkcs.c
index ee4ed92..48e602a 100644
--- a/snmplib/pkcs.c
+++ b/snmplib/pkcs.c
@@ -774,4 +774,6 @@
         break;
     }
 }
+#else
+int pkcs_unused;	/* Suppress "empty translation unit" warning */
 #endif
diff --git a/snmplib/read_config.c b/snmplib/read_config.c
index 607a6a5..8e724c0 100644
--- a/snmplib/read_config.c
+++ b/snmplib/read_config.c
@@ -84,11 +84,7 @@
 #include <sys/param.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -109,9 +105,6 @@
 #if HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
@@ -120,6 +113,23 @@
 #endif
 #include <errno.h>
 
+#if HAVE_DIRENT_H
+# include <dirent.h>
+# define NAMLEN(dirent) strlen((dirent)->d_name)
+#else
+# define dirent direct
+# define NAMLEN(dirent) (dirent)->d_namlen
+# if HAVE_SYS_NDIR_H
+#  include <sys/ndir.h>
+# endif
+# if HAVE_SYS_DIR_H
+#  include <sys/dir.h>
+# endif
+# if HAVE_NDIR_H
+#  include <ndir.h>
+# endif
+#endif
+
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
 #endif
@@ -139,6 +149,7 @@
 
 struct config_files *config_files = NULL;
 
+
 static struct config_line *
 internal_register_config_handler(const char *type_param,
 				 const char *token,
@@ -192,8 +203,11 @@
         }
 
         (*ctmp)->fileHeader = strdup(type);
+        DEBUGMSGTL(("9:read_config:type", "new type %s\n", type));
     }
 
+    DEBUGMSGTL(("9:read_config:register_handler", "registering %s %s\n",
+                type, token));
     /*
      * Find parser type in current list  -OR-  create a new
      * line parser entry.
@@ -292,6 +306,18 @@
 }
 
 struct config_line *
+register_const_config_handler(const char *type,
+                              const char *token,
+                              void (*parser) (const char *, const char *),
+                              void (*releaser) (void), const char *help)
+{
+    return internal_register_config_handler(type, token,
+                                            (void(*)(const char *, char *))
+                                            parser, releaser,
+					    help, NORMAL_CONFIG);
+}
+
+struct config_line *
 register_app_config_handler(const char *token,
                             void (*parser) (const char *, char *),
                             void (*releaser) (void), const char *help)
@@ -437,8 +463,8 @@
 }
 #endif
 
-int             linecount;
-const char     *curfilename;
+int             linecount,    prev_linecount;
+const char     *curfilename, *prev_filename;
 
 struct config_line *
 read_config_get_handlers(const char *type)
@@ -451,22 +477,23 @@
     return NULL;
 }
 
-void
+int
 read_config_with_type_when(const char *filename, const char *type, int when)
 {
     struct config_line *ctmp = read_config_get_handlers(type);
     if (ctmp)
-        read_config(filename, ctmp, when);
+        return read_config(filename, ctmp, when);
     else
         DEBUGMSGTL(("read_config",
                     "read_config: I have no registrations for type:%s,file:%s\n",
                     type, filename));
+    return SNMPERR_GENERR;     /* No config files read */
 }
 
-void
+int
 read_config_with_type(const char *filename, const char *type)
 {
-    read_config_with_type_when(filename, type, EITHER_CONFIG);
+    return read_config_with_type_when(filename, type, EITHER_CONFIG);
 }
 
 
@@ -497,7 +524,7 @@
     if (lptr != NULL) {
         if (when == EITHER_CONFIG || lptr->config_time == when) {
             char tmpbuf[1];
-            DEBUGMSGTL(("read_config",
+            DEBUGMSGTL(("read_config:parser",
                         "Found a parser.  Calling it: %s / %s\n", token,
                         cptr));
             /*
@@ -512,11 +539,14 @@
              * Stomp on any trailing whitespace
              */
             cp = &(cptr[strlen(cptr)-1]);
-            while (isspace(*cp)) {
+            while ((cp > cptr) && isspace((unsigned char)(*cp))) {
                 *(cp--) = '\0';
             }
             (*(lptr->parse_line)) (token, cptr);
         }
+        else
+            DEBUGMSGTL(("9:read_config:parser",
+                        "%s handler not registered for this time\n", token));
     } else if (when != PREMIB_CONFIG && 
 	       !netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, 
 				       NETSNMP_DS_LIB_NO_TOKEN_WARNINGS)) {
@@ -650,7 +680,7 @@
     mem = *memp;
 
     while (mem) {
-        DEBUGMSGTL(("read_config", "processing memory: %s\n", mem->line));
+        DEBUGMSGTL(("read_config:mem", "processing memory: %s\n", mem->line));
         snmp_config_when(mem->line, when);
         mem = mem->next;
     }
@@ -700,18 +730,27 @@
  *
  * For each match, check that <when> is the designated time for the
  * <line_handler> function to be executed before processing the line.
+ *
+ * Returns SNMPERR_SUCCESS if the file is processed successfully.
+ * Returns SNMPERR_GENERR  if it cannot.
+ *    Note that individual config token errors do not trigger SNMPERR_GENERR
+ *    It's only if the whole file cannot be processed for some reason.
  */
-void
+int
 read_config(const char *filename,
             struct config_line *line_handler, int when)
 {
-
+    static int      depth = 0;
+    static int      files = 0;
     FILE           *ifile;
     char            line[STRINGMAX], token[STRINGMAX];
     char           *cptr;
-    int             i;
+    int             i, ret;
     struct config_line *lptr;
 
+    // reset file counter when recursion depth is 0
+    if (depth == 0) files = 0;
+
     linecount = 0;
     curfilename = filename;
 
@@ -735,12 +774,29 @@
 #else                           /* defined(ENOENT) || defined(EACCES) */
             snmp_log_perror(filename);
 #endif                          /* ENOENT */
-        return;
-    } else {
-        DEBUGMSGTL(("read_config", "Reading configuration %s\n",
-                    filename));
+        return SNMPERR_GENERR;
     }
 
+#define CONFIG_MAX_FILES 4096
+    if (files > CONFIG_MAX_FILES) {
+        netsnmp_config_error("maximum conf file count (%d) exceeded\n",
+                             CONFIG_MAX_FILES);
+	fclose(ifile);
+        return SNMPERR_GENERR;
+    }
+#define CONFIG_MAX_RECURSE_DEPTH 16
+    if (depth > CONFIG_MAX_RECURSE_DEPTH) {
+        netsnmp_config_error("nested include depth > %d\n",
+                             CONFIG_MAX_RECURSE_DEPTH);
+	fclose(ifile);
+        return SNMPERR_GENERR;
+    }
+    ++files;
+    ++depth;
+
+    DEBUGMSGTL(("read_config:file", "Reading configuration %s (%d)\n",
+                filename, when));
+    
     while (fgets(line, sizeof(line), ifile) != NULL) {
         lptr = line_handler;
         linecount++;
@@ -748,6 +804,8 @@
         i = strlen(line) - 1;
         if (line[i] == '\n')
             line[i] = 0;
+        DEBUGMSGTL(("9:read_config:line", "%s:%d examining: %s\n",
+                    filename, linecount, line));
         /*
          * check blank line or # comment 
          */
@@ -766,7 +824,7 @@
 					 &token[1]);
                     continue;
                 }
-                DEBUGMSGTL(("read_config",
+                DEBUGMSGTL(("read_config:context",
                             "Switching to new context: %s%s\n",
                             ((cptr) ? "(this line only) " : ""),
                             &token[1]));
@@ -782,20 +840,116 @@
                      */
                     cptr = copy_nword(cptr, token, sizeof(token));
                 }
+            } else if ((token[0] == 'i') && (strncasecmp(token,"include", 7 )==0)) {
+                if ( strcasecmp( token, "include" )==0) {
+                    if (when != PREMIB_CONFIG && 
+	                !netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, 
+				                NETSNMP_DS_LIB_NO_TOKEN_WARNINGS)) {
+	                netsnmp_config_warn("Ambiguous token '%s' - use 'includeSearch' (or 'includeFile') instead.", token);
+                    }
+                    continue;
+                } else if ( strcasecmp( token, "includedir" )==0) {
+                    DIR *d;
+                    struct dirent *entry;
+                    char  fname[SNMP_MAXPATH];
+                    int   len;
+
+                    if (cptr == NULL) {
+                        if (when != PREMIB_CONFIG)
+		            netsnmp_config_error("Blank line following %s token.", token);
+                        continue;
+                    }
+                    if ((d=opendir(cptr)) == NULL ) {
+                        if (when != PREMIB_CONFIG)
+                            netsnmp_config_error("Can't open include dir '%s'.", cptr);
+                        continue;
+                    }
+                    prev_filename  = curfilename;
+                    prev_linecount = linecount;
+                    while ((entry = readdir( d )) != NULL ) {
+                        if ( entry->d_name[0] != '.') {
+                            len = NAMLEN(entry);
+                            if ((len > 5) && (strcmp(&(entry->d_name[len-5]),".conf") == 0)) {
+                                snprintf(fname, SNMP_MAXPATH, "%s/%s",
+                                         cptr, entry->d_name);
+                                (void)read_config(fname, line_handler, when);
+                            }
+                        }
+                    }
+                    closedir(d);
+                    curfilename = prev_filename;
+                    linecount   = prev_linecount;
+                    continue;
+                } else if ( strcasecmp( token, "includefile" )==0) {
+                    char  fname[SNMP_MAXPATH], *cp;
+
+                    if (cptr == NULL) {
+                        if (when != PREMIB_CONFIG)
+		            netsnmp_config_error("Blank line following %s token.", token);
+                        continue;
+                    }
+                    if ( cptr[0] == '/' ) {
+                        strlcpy(fname, cptr, SNMP_MAXPATH);
+                    } else {
+                        strlcpy(fname, filename, SNMP_MAXPATH);
+                        cp = strrchr(fname, '/');
+                        if (!cp)
+                            fname[0] = '\0';
+                        else
+                            *(++cp) = '\0';
+                        strlcat(fname, cptr, SNMP_MAXPATH);
+                    }
+                    prev_filename  = curfilename;
+                    prev_linecount = linecount;
+                    ret = read_config(fname, line_handler, when);
+                    curfilename = prev_filename;
+                    linecount   = prev_linecount;
+                    if ((ret != SNMPERR_SUCCESS) && (when != PREMIB_CONFIG))
+                        netsnmp_config_error("Included file '%s' not found.", fname);
+                    continue;
+                } else if ( strcasecmp( token, "includesearch" )==0) {
+                    struct config_files ctmp;
+                    int len;
+
+                    if (cptr == NULL) {
+                        if (when != PREMIB_CONFIG)
+		            netsnmp_config_error("Blank line following %s token.", token);
+                        continue;
+                    }
+                    len = strlen(cptr);
+                    ctmp.fileHeader = cptr;
+                    ctmp.start = line_handler;
+                    ctmp.next = NULL;
+                    if ((len > 5) && (strcmp(&cptr[len-5],".conf") == 0))
+                       cptr[len-5] = 0; /* chop off .conf */
+                    prev_filename  = curfilename;
+                    prev_linecount = linecount;
+                    ret = read_config_files_of_type(when,&ctmp);
+                    curfilename = prev_filename;
+                    linecount   = prev_linecount;
+                    if ((len > 5) && (cptr[len-5] == 0))
+                       cptr[len-5] = '.'; /* restore .conf */
+                    if (( ret != SNMPERR_SUCCESS ) && (when != PREMIB_CONFIG))
+		        netsnmp_config_error("Included config '%s' not found.", cptr);
+                    continue;
+                } else {
+                    lptr = line_handler;
+                }
             } else {
                 lptr = line_handler;
             }
             if (cptr == NULL) {
 		netsnmp_config_error("Blank line following %s token.", token);
             } else {
-                DEBUGMSGTL(("read_config", "%s:%d examining: %s\n",
+                DEBUGMSGTL(("read_config:line", "%s:%d examining: %s\n",
                             filename, linecount, line));
                 run_config_handler(lptr, token, cptr, when);
             }
         }
     }
     fclose(ifile);
-    return;
+    --depth;
+    return SNMPERR_SUCCESS;
 
 }                               /* end read_config() */
 
@@ -813,15 +967,21 @@
                 (*(ltmp->free_func)) ();
 }
 
-void
+/*
+ * Return SNMPERR_SUCCESS if any config files are processed
+ * Return SNMPERR_GENERR if _no_ config files are processed
+ *    Whether this is actually an error is left to the application
+ */
+int
 read_configs_optional(const char *optional_config, int when)
 {
     char *newp, *cp, *st = NULL;
+    int              ret = SNMPERR_GENERR;
     char *type = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
 				       NETSNMP_DS_LIB_APPTYPE);
 
     if ((NULL == optional_config) || (NULL == type))
-        return;
+        return ret;
 
     DEBUGMSGTL(("read_configs_optional",
                 "reading optional configuration tokens for %s\n", type));
@@ -835,14 +995,15 @@
                         "Optional File \"%s\" does not exist.\n", cp));
             snmp_log_perror(cp);
         } else {
-            DEBUGMSGTL(("read_config",
+            DEBUGMSGTL(("read_config:opt",
                         "Reading optional config file: \"%s\"\n", cp));
-            read_config_with_type_when(cp, type, when);
+            if ( read_config_with_type_when(cp, type, when) == SNMPERR_SUCCESS )
+                ret = SNMPERR_SUCCESS;
         }
         cp = strtok_r(NULL, ",", &st);
     }
     free(newp);
-    
+    return ret;
 }
 
 void
@@ -857,17 +1018,17 @@
     DEBUGMSGTL(("read_config", "reading normal configuration tokens\n"));
 
     if ((NULL != optional_config) && (*optional_config == '-')) {
-        read_configs_optional(++optional_config, NORMAL_CONFIG);
+        (void)read_configs_optional(++optional_config, NORMAL_CONFIG);
         optional_config = NULL; /* clear, so we don't read them twice */
     }
 
-    read_config_files(NORMAL_CONFIG);
+    (void)read_config_files(NORMAL_CONFIG);
 
     /*
      * do this even when the normal above wasn't done 
      */
     if (NULL != optional_config)
-        read_configs_optional(optional_config, NORMAL_CONFIG);
+        (void)read_configs_optional(optional_config, NORMAL_CONFIG);
 
     netsnmp_config_process_memories_when(NORMAL_CONFIG, 1);
 
@@ -889,14 +1050,14 @@
     DEBUGMSGTL(("read_config", "reading premib configuration tokens\n"));
 
     if ((NULL != optional_config) && (*optional_config == '-')) {
-        read_configs_optional(++optional_config, PREMIB_CONFIG);
+        (void)read_configs_optional(++optional_config, PREMIB_CONFIG);
         optional_config = NULL; /* clear, so we don't read them twice */
     }
 
-    read_config_files(PREMIB_CONFIG);
+    (void)read_config_files(PREMIB_CONFIG);
 
     if (NULL != optional_config)
-        read_configs_optional(optional_config, PREMIB_CONFIG);
+        (void)read_configs_optional(optional_config, PREMIB_CONFIG);
 
     netsnmp_config_process_memories_when(PREMIB_CONFIG, 0);
 
@@ -1034,8 +1195,12 @@
 
 /**
  * utility routine for read_config_files
+ *
+ * Return SNMPERR_SUCCESS if any config files are processed
+ * Return SNMPERR_GENERR if _no_ config files are processed
+ *    Whether this is actually an error is left to the application
  */
-static void
+static int
 read_config_files_in_path(const char *path, struct config_files *ctmp,
                           int when, const char *perspath, const char *persfile)
 {
@@ -1043,13 +1208,14 @@
     char            configfile[300];
     char           *cptr1, *cptr2, *envconfpath;
     struct stat     statbuf;
+    int             ret = SNMPERR_GENERR;
 
     if ((NULL == path) || (NULL == ctmp))
-        return;
+        return SNMPERR_GENERR;
 
     envconfpath = strdup(path);
 
-    DEBUGMSGTL(("read_config", " config path used for %s:%s (persistent path:%s)\n",
+    DEBUGMSGTL(("read_config:path", " config path used for %s:%s (persistent path:%s)\n",
                 ctmp->fileHeader, envconfpath, perspath));
     cptr1 = cptr2 = envconfpath;
     done = 0;
@@ -1061,12 +1227,12 @@
         else
             *cptr1 = 0;
 
-        DEBUGMSGTL(("read_config", " config dir: %s\n", cptr2 ));
+        DEBUGMSGTL(("read_config:dir", " config dir: %s\n", cptr2 ));
         if (stat(cptr2, &statbuf) != 0) {
             /*
              * Directory not there, continue 
              */
-            DEBUGMSGTL(("read_config", " Directory not present: %s\n", cptr2 ));
+            DEBUGMSGTL(("read_config:dir", " Directory not present: %s\n", cptr2 ));
             cptr2 = ++cptr1;
             continue;
         }
@@ -1075,14 +1241,14 @@
             /*
              * Not a directory, continue 
              */
-            DEBUGMSGTL(("read_config", " Not a directory: %s\n", cptr2 ));
+            DEBUGMSGTL(("read_config:dir", " Not a directory: %s\n", cptr2 ));
             cptr2 = ++cptr1;
             continue;
         }
 #endif
 
         /*
-         * for proper persistent storage retrival, we need to read old backup
+         * for proper persistent storage retrieval, we need to read old backup
          * copies of the previous storage files.  If the application in
          * question has died without the proper call to snmp_clean_persistent,
          * then we read all the configuration files we can, starting with
@@ -1091,6 +1257,7 @@
         if (strncmp(cptr2, perspath, strlen(perspath)) == 0 ||
             (persfile != NULL &&
              strncmp(cptr2, persfile, strlen(persfile)) == 0)) {
+            DEBUGMSGTL(("read_config:persist", " persist dir: %s\n", cptr2 ));
             /*
              * limit this to the known storage directory only 
              */
@@ -1111,18 +1278,21 @@
                     DEBUGMSGTL(("read_config_files",
                                 "old config file found: %s, parsing\n",
                                 configfile));
-                    read_config(configfile, ctmp->start, when);
+                    if (read_config(configfile, ctmp->start, when) == SNMPERR_SUCCESS)
+                        ret = SNMPERR_SUCCESS;
                 }
             }
         }
         snprintf(configfile, sizeof(configfile),
                  "%s/%s.conf", cptr2, ctmp->fileHeader);
         configfile[ sizeof(configfile)-1 ] = 0;
-        read_config(configfile, ctmp->start, when);
+        if (read_config(configfile, ctmp->start, when) == SNMPERR_SUCCESS)
+            ret = SNMPERR_SUCCESS;
         snprintf(configfile, sizeof(configfile),
                  "%s/%s.local.conf", cptr2, ctmp->fileHeader);
         configfile[ sizeof(configfile)-1 ] = 0;
-        read_config(configfile, ctmp->start, when);
+        if (read_config(configfile, ctmp->start, when) == SNMPERR_SUCCESS)
+            ret = SNMPERR_SUCCESS;
 
         if(done)
             break;
@@ -1130,6 +1300,7 @@
         cptr2 = ++cptr1;
     }
     SNMP_FREE(envconfpath);
+    return ret;
 }
 
 /*******************************************************************-o-******
@@ -1160,23 +1331,23 @@
  *
  *
  * EXITs if any 'config_errors' are logged while parsing config file lines.
+ *
+ * Return SNMPERR_SUCCESS if any config files are processed
+ * Return SNMPERR_GENERR if _no_ config files are processed
+ *    Whether this is actually an error is left to the application
  */
-void
-read_config_files(int when)
+int
+read_config_files_of_type(int when, struct config_files *ctmp)
 {
     const char     *confpath, *persfile, *envconfpath;
     char           *perspath;
-    struct config_files *ctmp = config_files;
+    int             ret = SNMPERR_GENERR;
 
     if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
                                NETSNMP_DS_LIB_DONT_PERSIST_STATE)
-     || netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_DISABLE_CONFIG_LOAD)) return;
-
-    config_errors = 0;
-
-    if (when == PREMIB_CONFIG)
-        free_config();
+        || netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
+                                  NETSNMP_DS_LIB_DISABLE_CONFIG_LOAD)
+        || (NULL == ctmp)) return ret;
 
     /*
      * these shouldn't change
@@ -1185,10 +1356,6 @@
     persfile = netsnmp_getenv("SNMP_PERSISTENT_FILE");
     envconfpath = netsnmp_getenv("SNMPCONFPATH");
 
-    /*
-     * read all config file types 
-     */
-    for (; ctmp != NULL; ctmp = ctmp->next) {
 
         /*
          * read the config files. strdup() the result of
@@ -1202,27 +1369,56 @@
              * persistent path can change via conf file. Then get the
              * current persistent directory, and read files there.
              */
-            read_config_files_in_path(confpath, ctmp, when, perspath,
-                                      persfile);
+            if ( read_config_files_in_path(confpath, ctmp, when, perspath,
+                                      persfile) == SNMPERR_SUCCESS )
+                ret = SNMPERR_SUCCESS;
             free(perspath);
             perspath = strdup(get_persistent_directory());
-            read_config_files_in_path(perspath, ctmp, when, perspath,
-                                      persfile);
+            if ( read_config_files_in_path(perspath, ctmp, when, perspath,
+                                      persfile) == SNMPERR_SUCCESS )
+                ret = SNMPERR_SUCCESS;
         }
         else {
             /*
              * only read path specified by user
              */
-            read_config_files_in_path(envconfpath, ctmp, when, perspath,
-                                      persfile);
+            if ( read_config_files_in_path(envconfpath, ctmp, when, perspath,
+                                      persfile) == SNMPERR_SUCCESS )
+                ret = SNMPERR_SUCCESS;
         }
         free(perspath);
+        return ret;
+}
+
+/*
+ * Return SNMPERR_SUCCESS if any config files are processed
+ * Return SNMPERR_GENERR if _no_ config files are processed
+ *    Whether this is actually an error is left to the application
+ */
+int
+read_config_files(int when) {
+
+    struct config_files *ctmp = config_files;
+    int                  ret  = SNMPERR_GENERR;
+
+    config_errors = 0;
+
+    if (when == PREMIB_CONFIG)
+        free_config();
+
+    /*
+     * read all config file types 
+     */
+    for (; ctmp != NULL; ctmp = ctmp->next) {
+        if ( read_config_files_of_type(when, ctmp) == SNMPERR_SUCCESS )
+            ret = SNMPERR_SUCCESS;
     }
 
     if (config_errors) {
         snmp_log(LOG_ERR, "net-snmp: %d error(s) in config file(s)\n",
                  config_errors);
     }
+    return ret;
 }
 
 void
@@ -1308,7 +1504,7 @@
         fprintf(fout, "%s", line);
         if (line[strlen(line)] != '\n')
             fprintf(fout, "\n");
-        DEBUGMSGTL(("read_config", "storing: %s\n", line));
+        DEBUGMSGTL(("read_config:store", "storing: %s\n", line));
         fclose(fout);
     } else {
         snmp_log(LOG_ERR, "read_config_store open failure on %s\n", filep);
@@ -1389,8 +1585,11 @@
      * save a warning header to the top of the new file 
      */
     snprintf(fileold, sizeof(fileold),
-            "#\n# net-snmp (or ucd-snmp) persistent data file.\n#\n############################################################################\n# STOP STOP STOP STOP STOP STOP STOP STOP STOP \n#\n#          **** DO NOT EDIT THIS FILE ****\n#\n# STOP STOP STOP STOP STOP STOP STOP STOP STOP \n############################################################################\n#\n# DO NOT STORE CONFIGURATION ENTRIES HERE.\n# Please save normal configuration tokens for %s in SNMPCONFPATH/%s.conf.\n# Only \"createUser\" tokens should be placed here by %s administrators.\n# (Did I mention: do not edit this file?)\n#\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",
-            type, type, type);
+            "%s%s# Please save normal configuration tokens for %s in SNMPCONFPATH/%s.conf.\n# Only \"createUser\" tokens should be placed here by %s administrators.\n%s",
+            "#\n# net-snmp (or ucd-snmp) persistent data file.\n#\n############################################################################\n# STOP STOP STOP STOP STOP STOP STOP STOP STOP \n",
+            "#\n#          **** DO NOT EDIT THIS FILE ****\n#\n# STOP STOP STOP STOP STOP STOP STOP STOP STOP \n############################################################################\n#\n# DO NOT STORE CONFIGURATION ENTRIES HERE.\n",
+            type, type, type,
+	    "# (Did I mention: do not edit this file?)\n#\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
     fileold[ sizeof(fileold)-1 ] = 0;
     read_config_store(type, fileold);
 }
@@ -1458,7 +1657,7 @@
     char* buf = tmpbuf;
     int len = snprintf(tmpbuf, sizeof(tmpbuf), "%s: line %d: %s: %s\n",
 		       curfilename, linecount, levelmsg, str);
-    if (len >= sizeof(tmpbuf)) {
+    if (len >= (int)sizeof(tmpbuf)) {
 	buf = (char*)malloc(len + 1);
 	sprintf(buf, "%s: line %d: %s: %s\n",
 		curfilename, linecount, levelmsg, str);
@@ -1506,6 +1705,12 @@
 char           *
 skip_white(char *ptr)
 {
+    return NETSNMP_REMOVE_CONST(char *, skip_white_const(ptr));
+}
+
+const char     *
+skip_white_const(const char *ptr)
+{
     if (ptr == NULL)
         return (NULL);
     while (*ptr != 0 && isspace((unsigned char)*ptr))
@@ -1518,6 +1723,12 @@
 char           *
 skip_not_white(char *ptr)
 {
+    return NETSNMP_REMOVE_CONST(char *, skip_not_white_const(ptr));
+}
+
+const char     *
+skip_not_white_const(const char *ptr)
+{
     if (ptr == NULL)
         return (NULL);
     while (*ptr != 0 && !isspace((unsigned char)*ptr))
@@ -1530,9 +1741,15 @@
 char           *
 skip_token(char *ptr)
 {
-    ptr = skip_white(ptr);
-    ptr = skip_not_white(ptr);
-    ptr = skip_white(ptr);
+    return NETSNMP_REMOVE_CONST(char *, skip_token_const(ptr));
+}
+
+const char     *
+skip_token_const(const char *ptr)
+{
+    ptr = skip_white_const(ptr);
+    ptr = skip_not_white_const(ptr);
+    ptr = skip_white_const(ptr);
     return (ptr);
 }
 
@@ -1553,6 +1770,12 @@
 char           *
 copy_nword(char *from, char *to, int len)
 {
+    return NETSNMP_REMOVE_CONST(char *, copy_nword_const(from, to, len));
+}
+
+const char           *
+copy_nword_const(const char *from, char *to, int len)
+{
     char            quote;
     if (!from || !to)
         return NULL;
@@ -1581,7 +1804,7 @@
         } else
             from++;
     } else {
-        while (*from != 0 && !isspace(*from)) {
+        while (*from != 0 && !isspace((unsigned char)(*from))) {
             if ((*from == '\\') && (*(from + 1) != 0)) {
                 if (len > 0) {  /* don't copy beyond len bytes */
                     *to++ = *(from + 1);
@@ -1601,9 +1824,9 @@
     }
     if (len > 0)
         *to = 0;
-    from = skip_white(from);
+    from = skip_white_const(from);
     return (from);
-}                               /* copy_word */
+}                               /* copy_nword */
 
 /*
  * copy_word
@@ -1676,20 +1899,42 @@
     return saveto;
 }
 
-/*
- * read_config_read_octet_string(): reads an octet string that was
- * saved by the read_config_save_octet_string() function 
+/**
+ * Reads an octet string that was saved by the
+ * read_config_save_octet_string() function.
+ *
+ * @param[in]     readfrom Pointer to the input data to be parsed.
+ * @param[in,out] str      Pointer to the output buffer pointer. The data
+ *   written to the output buffer will be '\0'-terminated. If *str == NULL,
+ *   an output buffer will be allocated that is one byte larger than the
+ *   data stored.
+ * @param[in,out] len      If str != NULL, *len is the size of the buffer *str
+ *   points at. If str == NULL, the value passed via *len is ignored.
+ *   Before this function returns the number of bytes read will be stored
+ *   in *len. If a buffer overflow occurs, *len will be set to 0.
+ *
+ * @return A pointer to the next character in the input to be parsed if
+ *   parsing succeeded; NULL when the end of the input string has been reached
+ *   or if an error occurred.
  */
 char           *
-read_config_read_octet_string(char *readfrom, u_char ** str, size_t * len)
+read_config_read_octet_string(const char *readfrom, u_char ** str,
+                              size_t * len)
 {
-    u_char         *cptr = NULL;
-    char           *cptr1;
-    u_int           tmp;
-    int             i;
-    size_t          ilen;
+    return NETSNMP_REMOVE_CONST(char *,
+               read_config_read_octet_string_const(readfrom, str, len));
+}
 
-    if (readfrom == NULL || str == NULL)
+const char     *
+read_config_read_octet_string_const(const char *readfrom, u_char ** str,
+                                    size_t * len)
+{
+    u_char         *cptr;
+    const char     *cptr1;
+    u_int           tmp;
+    size_t          i, ilen;
+
+    if (readfrom == NULL || str == NULL || len == NULL)
         return NULL;
 
     if (strncasecmp(readfrom, "0x", 2) == 0) {
@@ -1697,7 +1942,7 @@
          * A hex string submitted. How long? 
          */
         readfrom += 2;
-        cptr1 = skip_not_white(readfrom);
+        cptr1 = skip_not_white_const(readfrom);
         if (cptr1)
             ilen = (cptr1 - readfrom);
         else
@@ -1715,31 +1960,29 @@
          * malloc data space if needed (+1 for good measure) 
          */
         if (*str == NULL) {
-            if ((cptr = (u_char *) malloc(ilen + 1)) == NULL) {
+            *str = (u_char *) malloc(ilen + 1);
+            if (!*str)
                 return NULL;
-            }
-            *str = cptr;
         } else {
             /*
-             * don't require caller to have +1 for good measure, and 
-             * bail if not enough space.
+             * require caller to have +1, and bail if not enough space.
              */
-            if (ilen > *len) {
+            if (ilen >= *len) {
                 snmp_log(LOG_WARNING,"buffer too small to read octet string (%lu < %lu)\n",
                          (unsigned long)*len, (unsigned long)ilen);
                 DEBUGMSGTL(("read_config_read_octet_string",
                             "buffer too small (%lu < %lu)", (unsigned long)*len, (unsigned long)ilen));
-                cptr1 = skip_not_white(readfrom);
-                return skip_white(cptr1);
+                *len = 0;
+                cptr1 = skip_not_white_const(readfrom);
+                return skip_white_const(cptr1);
             }
-            cptr = *str;
         }
-        *len = ilen;
 
         /*
          * copy validated data 
          */
-        for (i = 0; i < (int) *len; i++) {
+        cptr = *str;
+        for (i = 0; i < ilen; i++) {
             if (1 == sscanf(readfrom, "%2x", &tmp))
                 *cptr++ = (u_char) tmp;
             else {
@@ -1751,13 +1994,11 @@
             readfrom += 2;
         }
         /*
-         * only null terminate if we have the space
+         * Terminate the output buffer.
          */
-        if (ilen > *len) {
-            ilen = *len-1;
-            *cptr++ = '\0';
-        }
-        readfrom = skip_white(readfrom);
+        *cptr++ = '\0';
+        *len = ilen;
+        readfrom = skip_white_const(readfrom);
     } else {
         /*
          * Normal string 
@@ -1768,25 +2009,23 @@
          */
         if (*str == NULL) {
             char            buf[SNMP_MAXBUF];
-            readfrom = copy_nword(readfrom, buf, sizeof(buf));
+            readfrom = copy_nword_const(readfrom, buf, sizeof(buf));
 
             *len = strlen(buf);
-            if ((cptr = (u_char *) malloc(*len + 1)) == NULL)
+            *str = (u_char *) malloc(*len + 1);
+            if (*str == NULL)
                 return NULL;
-            *str = cptr;
-            if (cptr) {
-                memcpy(cptr, buf, *len + 1);
-            }
+            memcpy(*str, buf, *len + 1);
         } else {
-            readfrom = copy_nword(readfrom, (char *) *str, *len);
-            *len = strlen((char *) *str);
+            readfrom = copy_nword_const(readfrom, (char *) *str, *len);
+            if (*len)
+                *len = strlen((char *) *str);
         }
     }
 
     return readfrom;
 }
 
-
 /*
  * read_config_save_objid(): saves an objid as a numerical string 
  */
@@ -1805,7 +2044,7 @@
      * in case len=0, this makes it easier to read it back in 
      */
     for (i = 0; i < (int) len; i++) {
-        sprintf(saveto, ".%ld", objid[i]);
+        sprintf(saveto, ".%" NETSNMP_PRIo "d", objid[i]);
         saveto += strlen(saveto);
     }
     return saveto;
@@ -1817,6 +2056,13 @@
 char           *
 read_config_read_objid(char *readfrom, oid ** objid, size_t * len)
 {
+    return NETSNMP_REMOVE_CONST(char *,
+             read_config_read_objid_const(readfrom, objid, len));
+}
+
+const char     *
+read_config_read_objid_const(const char *readfrom, oid ** objid, size_t * len)
+{
 
     if (objid == NULL || readfrom == NULL || len == NULL)
         return NULL;
@@ -1838,7 +2084,7 @@
          * qualify the string for read_objid 
          */
         char            buf[SPRINT_MAX_LEN];
-        copy_nword(readfrom, buf, sizeof(buf));
+        copy_nword_const(readfrom, buf, sizeof(buf));
 
         if (!read_objid(buf, *objid, len)) {
             DEBUGMSGTL(("read_config_read_objid", "Invalid OID"));
@@ -1847,7 +2093,7 @@
         }
     }
 
-    readfrom = skip_token(readfrom);
+    readfrom = skip_token_const(readfrom);
     return readfrom;
 }
 
@@ -2083,4 +2329,5 @@
         }
     return NULL;
 }
+
 /** @} */
diff --git a/snmplib/readdir.c b/snmplib/readdir.c
new file mode 100644
index 0000000..33ff83d
--- /dev/null
+++ b/snmplib/readdir.c
@@ -0,0 +1,51 @@
+/*
+ * readdir() replacement for MSVC.
+ */
+
+#define WIN32IO_IS_STDIO
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/types.h>
+#include <net-snmp/library/system.h>
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#include <tchar.h>
+#include <windows.h>
+
+
+/*
+ * Readdir just returns the current string pointer and bumps the
+ * * string pointer to the nDllExport entry.
+ */
+struct direct  *
+readdir(DIR * dirp)
+{
+    int             len;
+    static int      dummy = 0;
+
+    if (dirp->curr) {
+        /*
+         * first set up the structure to return 
+         */
+        len = strlen(dirp->curr);
+        strcpy(dirp->dirstr.d_name, dirp->curr);
+        dirp->dirstr.d_namlen = len;
+
+        /*
+         * Fake an inode 
+         */
+        dirp->dirstr.d_ino = dummy++;
+
+        /*
+         * Now set up for the nDllExport call to readdir 
+         */
+        dirp->curr += len + 1;
+        if (dirp->curr >= (dirp->start + dirp->size)) {
+            dirp->curr = NULL;
+        }
+
+        return &(dirp->dirstr);
+    } else
+        return NULL;
+}
diff --git a/snmplib/scapi.c b/snmplib/scapi.c
index cb2d2f3..3409227 100644
--- a/snmplib/scapi.c
+++ b/snmplib/scapi.c
@@ -17,9 +17,6 @@
 #include <net-snmp/net-snmp-config.h>
 
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -29,11 +26,7 @@
 #include <strings.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -69,6 +62,12 @@
 #include <net-snmp/library/mib.h>
 #include <net-snmp/library/transform_oids.h>
 
+#ifdef NETSNMP_USE_INTERNAL_CRYPTO
+#include <net-snmp/library/openssl_md5.h>
+#include <net-snmp/library/openssl_sha.h>
+#include <net-snmp/library/openssl_des.h>
+#include <net-snmp/library/openssl_aes.h>
+#endif
 #ifdef NETSNMP_USE_OPENSSL
 #include <openssl/hmac.h>
 #include <openssl/evp.h>
@@ -92,6 +91,9 @@
 
 #endif /* HAVE_OPENSSL */
 
+#ifdef NETSNMP_USE_INTERNAL_CRYPTO
+#endif
+
 #ifdef NETSNMP_USE_PKCS11
 #include <security/cryptoki.h>
 #endif
@@ -105,6 +107,15 @@
 	}
 #endif
 
+#ifdef NETSNMP_USE_INTERNAL_CRYPTO
+static
+int SHA1_hmac(const u_char * data, size_t len, u_char * mac, size_t maclen,
+              const u_char * secret, size_t secretlen);
+
+static
+int MD5_hmac(const u_char * data, size_t len, u_char * mac, size_t maclen,
+             const u_char * secret, size_t secretlen);
+#endif
 
 /*
  * sc_get_properlength(oid *hashtype, u_int hashtype_len):
@@ -161,8 +172,8 @@
 {
     int             rval = SNMPERR_SUCCESS;
 
-#ifndef NETSNMP_USE_OPENSSL
-#ifdef NETSNMP_USE_INTERNAL_MD5
+#if !defined(NETSNMP_USE_OPENSSL)
+#if defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
     struct timeval  tv;
 
     DEBUGTRACE;
@@ -196,10 +207,10 @@
  */
 int
 sc_random(u_char * buf, size_t * buflen)
-#if defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11)
+#if defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
 {
     int             rval = SNMPERR_SUCCESS;
-#ifdef NETSNMP_USE_INTERNAL_MD5
+#if !defined(NETSNMP_USE_OPENSSL) && !defined(NETSNMP_USE_PKCS11)
     int             i;
     int             rndval;
     u_char         *ucp = buf;
@@ -265,13 +276,14 @@
  */
 int
 sc_generate_keyed_hash(const oid * authtype, size_t authtypelen,
-                       u_char * key, u_int keylen,
-                       u_char * message, u_int msglen,
+                       const u_char * key, u_int keylen,
+                       const u_char * message, u_int msglen,
                        u_char * MAC, size_t * maclen)
-#if  defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11)
+#if  defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
 {
     int             rval = SNMPERR_SUCCESS;
-    int             properlength;
+    int             iproperlength;
+    size_t          properlength;
 
     u_char          buf[SNMP_MAXBUF_SMALL];
 #if  defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11)
@@ -300,11 +312,11 @@
         QUITFUN(SNMPERR_GENERR, sc_generate_keyed_hash_quit);
     }
 
-    properlength = sc_get_properlength(authtype, authtypelen);
-    if (properlength == SNMPERR_GENERR)
-        return properlength;
-
-    if (((int) keylen < properlength)) {
+    iproperlength = sc_get_properlength(authtype, authtypelen);
+    if (iproperlength == SNMPERR_GENERR)
+        return SNMPERR_GENERR;
+    properlength = (size_t)iproperlength;
+    if (keylen < properlength) {
         QUITFUN(SNMPERR_GENERR, sc_generate_keyed_hash_quit);
     }
 #ifdef NETSNMP_USE_OPENSSL
@@ -324,7 +336,7 @@
     if (buf_len != properlength) {
         QUITFUN(rval, sc_generate_keyed_hash_quit);
     }
-    if ((int)*maclen > buf_len)
+    if (*maclen > buf_len)
         *maclen = buf_len;
     memcpy(MAC, buf, *maclen);
 
@@ -354,8 +366,25 @@
         *maclen = buf_len;
     memcpy(MAC, buf, *maclen);
 
+#elif NETSNMP_USE_INTERNAL_CRYPTO
+    if (*maclen > properlength)
+        *maclen = properlength;
+#ifndef NETSNMP_DISABLE_MD5
+    if (ISTRANSFORM(authtype, HMACMD5Auth))
+        rval = MD5_hmac(message, msglen, MAC, *maclen, key, keylen);
+    else
+#endif
+         if (ISTRANSFORM(authtype, HMACSHA1Auth))
+        rval = SHA1_hmac(message, msglen, MAC, *maclen, key, keylen);
+    else {
+        QUITFUN(SNMPERR_GENERR, sc_generate_keyed_hash_quit);
+    }
+    if (rval != 0) {
+        rval = SNMPERR_GENERR;
+        goto sc_generate_keyed_hash_quit;
+    }    
 #else                            /* NETSNMP_USE_INTERNAL_MD5 */
-    if ((int) *maclen > properlength)
+    if (*maclen > properlength)
         *maclen = properlength;
     if (MDsign(message, msglen, MAC, *maclen, key, keylen)) {
         rval = SNMPERR_GENERR;
@@ -402,12 +431,14 @@
  * SNMPERR_SC_NOT_CONFIGURED    Hash type not supported.
  */
 int
-sc_hash(const oid * hashtype, size_t hashtypelen, u_char * buf,
+sc_hash(const oid * hashtype, size_t hashtypelen, const u_char * buf,
         size_t buf_len, u_char * MAC, size_t * MAC_len)
-#if defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11)
+#if defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
 {
-#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11)
+#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
     int            rval = SNMPERR_SUCCESS;
+#endif
+#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11)
     unsigned int   tmp_len;
 #endif
     int            ret;
@@ -416,14 +447,17 @@
     const EVP_MD   *hashfn;
     EVP_MD_CTX     *cptr;
 #endif
-
+#ifdef NETSNMP_USE_INTERNAL_CRYPTO
+    MD5_CTX        cmd5;
+    SHA_CTX        csha1;
+#endif
     DEBUGTRACE;
 
-    if (hashtype == NULL || hashtypelen < 0 || buf == NULL ||
-        buf_len <= 0 || MAC == NULL || MAC_len == NULL )
+    if (hashtype == NULL || buf == NULL || buf_len <= 0 ||
+        MAC == NULL || MAC_len == NULL )
         return (SNMPERR_GENERR);
     ret = sc_get_properlength(hashtype, hashtypelen);
-    if (( ret < 0 ) || (*MAC_len < ret ))
+    if (( ret < 0 ) || (*MAC_len < (size_t)ret ))
         return (SNMPERR_GENERR);
 
 #ifdef NETSNMP_USE_OPENSSL
@@ -472,6 +506,30 @@
     free(cptr);
 #endif
     return (rval);
+
+#elif NETSNMP_USE_INTERNAL_CRYPTO
+#ifndef NETSNMP_DISABLE_MD5
+    if (ISTRANSFORM(hashtype, HMACMD5Auth)) {
+        if (*MAC_len < MD5_DIGEST_LENGTH)
+            return (SNMPERR_GENERR);      /* the buffer isn't big enough */
+	MD5_Init(&cmd5);
+        MD5_Update(&cmd5, buf, buf_len);
+        MD5_Final(MAC, &cmd5);
+        *MAC_len = MD5_DIGEST_LENGTH;
+    } else 
+#endif
+    if (ISTRANSFORM(hashtype, HMACSHA1Auth)) {
+        if (*MAC_len < SHA_DIGEST_LENGTH)
+            return (SNMPERR_GENERR);      /* the buffer isn't big enough */
+	SHA1_Init(&csha1);
+        SHA1_Update(&csha1, buf, buf_len);
+        SHA1_Final(MAC, &csha1);
+        *MAC_len = SHA_DIGEST_LENGTH;
+            
+    } else {
+        return (SNMPERR_GENERR);
+    }
+    return (rval);
 #elif NETSNMP_USE_PKCS11                  /* NETSNMP_USE_PKCS11 */
 
 #ifndef NETSNMP_DISABLE_MD5
@@ -528,10 +586,10 @@
  */
 int
 sc_check_keyed_hash(const oid * authtype, size_t authtypelen,
-                    u_char * key, u_int keylen,
-                    u_char * message, u_int msglen,
-                    u_char * MAC, u_int maclen)
-#if defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11)
+                    const u_char * key, u_int keylen,
+                    const u_char * message, u_int msglen,
+                    const u_char * MAC, u_int maclen)
+#if defined(NETSNMP_USE_INTERNAL_MD5) || defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_PKCS11) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
 {
     int             rval = SNMPERR_SUCCESS;
     size_t          buf_len = SNMP_MAXBUF_SMALL;
@@ -621,9 +679,9 @@
 sc_encrypt(const oid * privtype, size_t privtypelen,
            u_char * key, u_int keylen,
            u_char * iv, u_int ivlen,
-           u_char * plaintext, u_int ptlen,
+           const u_char * plaintext, u_int ptlen,
            u_char * ciphertext, size_t * ctlen)
-#if defined(NETSNMP_USE_OPENSSL)
+#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
 {
     int             rval = SNMPERR_SUCCESS;
     u_int           properlength = 0, properlength_iv = 0;
@@ -896,7 +954,7 @@
            u_char * iv, u_int ivlen,
            u_char * ciphertext, u_int ctlen,
            u_char * plaintext, size_t * ptlen)
-#ifdef NETSNMP_USE_OPENSSL
+#if defined(NETSNMP_USE_OPENSSL) || defined(NETSNMP_USE_INTERNAL_CRYPTO)
 {
 
     int             rval = SNMPERR_SUCCESS;
@@ -1076,3 +1134,219 @@
 #endif                          /*  */
 }
 #endif                          /* NETSNMP_USE_OPENSSL */
+
+#ifdef NETSNMP_USE_INTERNAL_CRYPTO
+
+/* These functions are basically copies of the MDSign() routine in
+   md5.c modified to be used with the OpenSSL hashing functions.  The
+   copyright below is from the md5.c file that these functions were
+   taken from: */
+
+/*
+ * ** **************************************************************************
+ * ** md5.c -- Implementation of MD5 Message Digest Algorithm                 **
+ * ** Updated: 2/16/90 by Ronald L. Rivest                                    **
+ * ** (C) 1990 RSA Data Security, Inc.                                        **
+ * ** **************************************************************************
+ */
+
+/*
+ * MD5_hmac(data, len, MD5): do a checksum on an arbirtrary amount
+ * of data, and prepended with a secret in the standard fashion 
+ */
+static int
+MD5_hmac(const u_char * data, size_t len, u_char * mac, size_t maclen,
+         const u_char * secret, size_t secretlen)
+{
+#define MD5_HASHKEYLEN 64
+#define MD5_SECRETKEYLEN 16
+
+    MD5_CTX         cmd5;
+    u_char          K1[MD5_HASHKEYLEN];
+    u_char          K2[MD5_HASHKEYLEN];
+    u_char          extendedAuthKey[MD5_HASHKEYLEN];
+    u_char          buf[MD5_HASHKEYLEN];
+    size_t          i;
+    const u_char   *cp;
+    u_char         *newdata = NULL;
+    int             rc = 0;
+
+    /*
+     * memset(K1,0,MD5_HASHKEYLEN);
+     * memset(K2,0,MD5_HASHKEYLEN);
+     * memset(buf,0,MD5_HASHKEYLEN);
+     * memset(extendedAuthKey,0,MD5_HASHKEYLEN);
+     */
+
+    if (secretlen != MD5_SECRETKEYLEN || secret == NULL ||
+        mac == NULL || data == NULL ||
+        len <= 0 || maclen <= 0) {
+        /*
+         * DEBUGMSGTL(("md5","MD5 signing not properly initialized")); 
+         */
+        return -1;
+    }
+
+    memset(extendedAuthKey, 0, MD5_HASHKEYLEN);
+    memcpy(extendedAuthKey, secret, secretlen);
+    for (i = 0; i < MD5_HASHKEYLEN; i++) {
+        K1[i] = extendedAuthKey[i] ^ 0x36;
+        K2[i] = extendedAuthKey[i] ^ 0x5c;
+    }
+
+    MD5_Init(&cmd5);
+    rc = !MD5_Update(&cmd5, K1, MD5_HASHKEYLEN);
+    if (rc)
+        goto update_end;
+
+    i = len;
+    if (((uintptr_t) data) % sizeof(long) != 0) {
+        /*
+         * this relies on the ability to use integer math and thus we
+         * must rely on data that aligns on 32-bit-word-boundries 
+         */
+        memdup(&newdata, data, len);
+        cp = newdata;
+    } else {
+        cp = data;
+    }
+
+    while (i >= 64) {
+        rc = !MD5_Update(&cmd5, cp, 64);
+        if (rc)
+            goto update_end;
+        cp += 64;
+        i -= 64;
+    }
+
+    rc = !MD5_Update(&cmd5, cp, i);
+    if (rc)
+        goto update_end;
+
+    memset(buf, 0, MD5_HASHKEYLEN);
+    MD5_Final(buf, &cmd5);
+
+    MD5_Init(&cmd5);
+    rc = !MD5_Update(&cmd5, K2, MD5_HASHKEYLEN);
+    if (rc)
+        goto update_end;
+    rc = !MD5_Update(&cmd5, buf, MD5_SECRETKEYLEN);
+    if (rc)
+        goto update_end;
+
+    /*
+     * copy the sign checksum to the outgoing pointer 
+     */
+    MD5_Final(buf, &cmd5);
+    memcpy(mac, buf, maclen);
+
+  update_end:
+    memset(buf, 0, MD5_HASHKEYLEN);
+    memset(K1, 0, MD5_HASHKEYLEN);
+    memset(K2, 0, MD5_HASHKEYLEN);
+    memset(extendedAuthKey, 0, MD5_HASHKEYLEN);
+    memset(&cmd5, 0, sizeof(cmd5));
+
+    if (newdata)
+        free(newdata);
+    return rc;
+}
+
+static int
+SHA1_hmac(const u_char * data, size_t len, u_char * mac, size_t maclen,
+          const u_char * secret, size_t secretlen)
+{
+#define SHA1_HASHKEYLEN   64
+#define SHA1_SECRETKEYLEN 20
+
+    SHA_CTX         csha1;
+    u_char          K1[SHA1_HASHKEYLEN];
+    u_char          K2[SHA1_HASHKEYLEN];
+    u_char          extendedAuthKey[SHA1_HASHKEYLEN];
+    u_char          buf[SHA1_HASHKEYLEN];
+    size_t          i;
+    const u_char   *cp;
+    u_char         *newdata = NULL;
+    int             rc = 0;
+
+    /*
+     * memset(K1,0,SHA1_HASHKEYLEN);
+     * memset(K2,0,SHA1_HASHKEYLEN);
+     * memset(buf,0,SHA1_HASHKEYLEN);
+     * memset(extendedAuthKey,0,SHA1_HASHKEYLEN);
+     */
+
+    if (secretlen != SHA1_SECRETKEYLEN || secret == NULL ||
+        mac == NULL || data == NULL ||
+        len <= 0 || maclen <= 0) {
+        /*
+         * DEBUGMSGTL(("sha1","SHA1 signing not properly initialized")); 
+         */
+        return -1;
+    }
+
+    memset(extendedAuthKey, 0, SHA1_HASHKEYLEN);
+    memcpy(extendedAuthKey, secret, secretlen);
+    for (i = 0; i < SHA1_HASHKEYLEN; i++) {
+        K1[i] = extendedAuthKey[i] ^ 0x36;
+        K2[i] = extendedAuthKey[i] ^ 0x5c;
+    }
+
+    SHA1_Init(&csha1);
+    rc = !SHA1_Update(&csha1, K1, SHA1_HASHKEYLEN);
+    if (rc)
+        goto update_end;
+
+    i = len;
+    if (((uintptr_t) data) % sizeof(long) != 0) {
+        /*
+         * this relies on the ability to use integer math and thus we
+         * must rely on data that aligns on 32-bit-word-boundries 
+         */
+        memdup(&newdata, data, len);
+        cp = newdata;
+    } else {
+        cp = data;
+    }
+
+    while (i >= 64) {
+        rc = !SHA1_Update(&csha1, cp, 64);
+        if (rc)
+            goto update_end;
+        cp += 64;
+        i -= 64;
+    }
+
+    rc = !SHA1_Update(&csha1, cp, i);
+    if (rc)
+        goto update_end;
+
+    memset(buf, 0, SHA1_HASHKEYLEN);
+    SHA1_Final(buf, &csha1);
+
+    SHA1_Init(&csha1);
+    rc = !SHA1_Update(&csha1, K2, SHA1_HASHKEYLEN);
+    if (rc)
+        goto update_end;
+    rc = !SHA1_Update(&csha1, buf, SHA1_SECRETKEYLEN);
+    if (rc)
+        goto update_end;
+
+    /*
+     * copy the sign checksum to the outgoing pointer 
+     */
+    SHA1_Final(buf, &csha1);
+    memcpy(mac, buf, maclen);
+
+  update_end:
+    memset(buf, 0, SHA1_HASHKEYLEN);
+    memset(K1, 0, SHA1_HASHKEYLEN);
+    memset(K2, 0, SHA1_HASHKEYLEN);
+    memset(extendedAuthKey, 0, SHA1_HASHKEYLEN);
+    memset(&csha1, 0, sizeof(csha1));
+
+    if (newdata)
+        free(newdata);
+    return rc;
+}
+#endif /* NETSNMP_USE_INTERNAL_CRYPTO */
diff --git a/snmplib/snmp-tc.c b/snmplib/snmp-tc.c
index d8ae783..38285e1 100644
--- a/snmplib/snmp-tc.c
+++ b/snmplib/snmp-tc.c
@@ -18,11 +18,7 @@
 #endif
 
 #if TIME_WITH_SYS_TIME
-#ifdef WIN32
-# include <sys/timeb.h>
-#else
 # include <sys/time.h>
-#endif
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -156,7 +152,7 @@
     string[7] = 0;
     *length = 8;
 
-#ifndef cygwin
+#if defined(HAVE_STRUCT_TM_TM_GMTOFF) || defined(HAVE_TIMEZONE_VARIABLE)
     /*
      * Timezone offset
      */
@@ -367,16 +363,13 @@
     switch (newValue) {
         /*
          * these two end up being equivelent as far as checking the 
-         */
-        /*
          * status goes, although the final states are based on the 
-         */
-        /*
          * newValue. 
          */
     case RS_ACTIVE:
     case RS_NOTINSERVICE:
-        if (oldValue == RS_NOTINSERVICE || oldValue == RS_ACTIVE);
+        if (oldValue == RS_NOTINSERVICE || oldValue == RS_ACTIVE)
+            ;
         else
             return SNMP_ERR_INCONSISTENTVALUE;
         break;
@@ -389,13 +382,6 @@
         break;
 
     case RS_CREATEANDGO:
-        if (oldValue != RS_NONEXISTENT)
-            /*
-             * impossible, we already exist. 
-             */
-            return SNMP_ERR_INCONSISTENTVALUE;
-        break;
-
     case RS_CREATEANDWAIT:
         if (oldValue != RS_NONEXISTENT)
             /*
@@ -416,6 +402,21 @@
 }
 
 char
+check_rowstatus_with_storagetype_transition(int oldValue, int newValue,
+                                            int oldStorage)
+{
+    /*
+     * can not destroy permanent or readonly rows
+     */
+    if ((RS_DESTROY == newValue) &&
+        ((SNMP_STORAGE_PERMANENT == oldStorage) ||
+         (SNMP_STORAGE_READONLY == oldStorage)))
+        return SNMP_ERR_WRONGVALUE;
+
+    return check_rowstatus_transition(oldValue, newValue);
+}
+
+char
 check_storage_transition(int oldValue, int newValue)
 {
     /*
diff --git a/snmplib/snmp.c b/snmplib/snmp.c
index 020ec90..c3763e9 100644
--- a/snmplib/snmp.c
+++ b/snmplib/snmp.c
@@ -51,9 +51,6 @@
 #ifdef HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #ifndef NULL
 #define NULL 0
 #endif
@@ -90,10 +87,11 @@
 */
 
 void
-xdump(const u_char * cp, size_t length, const char *prefix)
+xdump(const void * data, size_t length, const char *prefix)
 {
-    int             col, count;
-    char           *buffer;
+    const u_char * const cp = (const u_char*)data;
+    int                  col, count;
+    char                *buffer;
 
     buffer = (char *) malloc(strlen(prefix) + 80);
     if (!buffer) {
diff --git a/snmplib/snmpDTLSUDPDomain.c b/snmplib/snmpDTLSUDPDomain.c
deleted file mode 100644
index 33e91a6..0000000
--- a/snmplib/snmpDTLSUDPDomain.c
+++ /dev/null
@@ -1,1198 +0,0 @@
-/* Portions of this file are subject to the following copyright(s).  See
- * the Net-SNMP's COPYING file for more details and other copyrights
- * that may apply:
- */
-/*
- * Portions of this file are copyrighted by:
- * Copyright Copyright 2003 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms specified in the COPYING file
- * distributed with the Net-SNMP package.
- */
-
-/*
- * NOTE: THIS IS AN EXPERIMENTAL IMPLEMENTATION AND NOT YET SUITABLE
- * FOR PRODUCTION USE
- *
- * THERE are KNOWN security ISSUES with THIS code!
- * (if nothing else, you can't tie certificates to certain hosts/users)
- */
-
-/*
- * ---------- Creating Certificates ----------
- *
- * Example pub/priv key creation steps using openssl (replace for-user
- * with the appropriate name, etc (e.g. for a user you might use their
- * first.last name and for a server, use it's hostname or something)
- *
- *   1) create the CSR file first:
- *
- *         openssl req -days 365 -new -out for-user.csr -keyout for-user.priv
- *
- *   2) Optionally remove the passphrase if you hate that sort of thing
- *      (obviously not recommended; useful on servers without password prompts)
- *
- *         openssl rsa -in for-user.priv -out for-user.insecure.priv
- *
- *   3) Create a self-signed key from the CSR:
- *
- *      openssl x509 -set_serial `date +%Y%m%d` -in for-user.csr -out for-user.cert -req -signkey for-user.insecure.priv -days 365
- *
- *
- * These can then be used by the config tokens for both the client and
- * the server:
- *
- * ---------- Creating a CA for issuing certs ----------
- *
- * TBD
- *
- * ---------- Configuration ----------
- *
- * In the snmp.conf file, you should specify the following
- * types of configuration lines:
- *
- * To tell the client which keys *it* should use to authenticate with:
- *
- *   defX509ClientPriv /path/to/for-user.insecure.priv
- *   defX509ClientPub  /path/to/for-user.insecure.cert
- *
- * To tell the client to only a list of servers:
- *
- *   defX509ServerCerts /path/to/server-certs.certs
- *
- *   (server-certs.certs can be created by simply cat'ing multiple
- *    server cert files into ones big file)
- *
- * To tell the server it's certs to offer:
- *
- *   defX509ServerPub  /path/to/server1.insecure.cert
- *   defX509ServerPriv /path/to/server1.insecure.priv
- *
- * To tell the server which keys it should accept from clients:
- *
- *   defX509ClientCerts /path/to/client-certs.certs
- *
- * To authorize for R/W a particular CommonName from those certs:
- *
- *   rwuser "John Doe"
- *
- */
-
-#include <net-snmp/net-snmp-config.h>
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <ctype.h>
-#include <errno.h>
-
-#if HAVE_STRING_H
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-#if HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#if HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#if HAVE_SYS_UIO_H
-#include <sys/uio.h>
-#endif
-
-#if HAVE_WINSOCK_H
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#endif
-
-#if HAVE_DMALLOC_H
-#include <dmalloc.h>
-#endif
-
-#include <net-snmp/types.h>
-#include <net-snmp/output_api.h>
-#include <net-snmp/config_api.h>
-
-#include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/snmpDTLSUDPDomain.h>
-#include <net-snmp/library/snmpUDPDomain.h>
-#include <net-snmp/library/system.h>
-#include <net-snmp/library/tools.h>
-#include <net-snmp/library/snmp_openssl.h>
-#include <net-snmp/library/callback.h>
-
-#include "openssl/bio.h"
-#include "openssl/ssl.h"
-#include "openssl/err.h"
-
-#ifndef INADDR_NONE
-#define INADDR_NONE	-1
-#endif
-
-#ifdef  MSG_DONTWAIT
-#define NETSNMP_DONTWAIT MSG_DONTWAIT
-#else
-#define NETSNMP_DONTWAIT 0
-#endif
-
-#define WE_ARE_SERVER 0
-#define WE_ARE_CLIENT 1
-
-oid             netsnmpDTLSUDPDomain[] = { TRANSPORT_DOMAIN_DTLS_UDP_IP };
-size_t          netsnmpDTLSUDPDomain_len = OID_LENGTH(netsnmpDTLSUDPDomain);
-
-static netsnmp_tdomain dtlsudpDomain;
-
-/* this stores openssl credentials for each connection since openssl
-   can't do it for us at the moment; hopefully future versions will
-   change */
-typedef struct bio_cache_s {
-   BIO *bio;
-   BIO *write_bio;
-   struct sockaddr_in sockaddr;
-   uint32_t ipv4addr;
-   u_short portnum;
-   SSL *con;
-   SSL_CTX *ctx;
-   struct bio_cache_s *next;
-   int msgnum;
-   int sock;
-   char *securityName;
-} bio_cache;
-
-bio_cache *biocache = NULL;
-
-/*
- * cached SSL context information
- * (in theory we may want more than one per client/server but it's
- * unlikely and a CPU and memory waste unless we do need more than one)
- */
-SSL_CTX *client_ctx, *server_ctx;
-
-/* this stores remote connections in a list to search through */
-/* XXX: optimize for searching */
-/* XXX: handle state issues for new connections to reduce DOS issues */
-/*      (TLS should do this, but openssl can't do more than one ctx per sock */
-/* XXX: put a timer on the cache for expirary purposes */
-static bio_cache *find_bio_cache(struct sockaddr_in *from_addr) {
-    bio_cache *cachep = NULL;
-    cachep = biocache;
-    while(cachep) {
-
-        if (cachep->ipv4addr == from_addr->sin_addr.s_addr &&
-            cachep->portnum == from_addr->sin_port) {
-            /* found an existing connection */
-            break;
-        }
-            
-        cachep = cachep->next;
-    }
-    return cachep;
-}
-
-static const char * _x509_get_error(int x509failvalue, const char *location) {
-    static const char *reason = NULL;
-    
-    /* XXX: use this instead: X509_verify_cert_error_string(err) */
-
-    switch (x509failvalue) {
-    case X509_V_OK:
-        reason = "X509_V_OK";
-        break;
-    case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT:
-        reason = "X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT";
-        break;
-    case X509_V_ERR_UNABLE_TO_GET_CRL:
-        reason = "X509_V_ERR_UNABLE_TO_GET_CRL";
-        break;
-    case X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE:
-        reason = "X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE";
-        break;
-    case X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE:
-        reason = "X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE";
-        break;
-    case X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY:
-        reason = "X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY";
-        break;
-    case X509_V_ERR_CERT_SIGNATURE_FAILURE:
-        reason = "X509_V_ERR_CERT_SIGNATURE_FAILURE";
-        break;
-    case X509_V_ERR_CRL_SIGNATURE_FAILURE:
-        reason = "X509_V_ERR_CRL_SIGNATURE_FAILURE";
-        break;
-    case X509_V_ERR_CERT_NOT_YET_VALID:
-        reason = "X509_V_ERR_CERT_NOT_YET_VALID";
-        break;
-    case X509_V_ERR_CERT_HAS_EXPIRED:
-        reason = "X509_V_ERR_CERT_HAS_EXPIRED";
-        break;
-    case X509_V_ERR_CRL_NOT_YET_VALID:
-        reason = "X509_V_ERR_CRL_NOT_YET_VALID";
-        break;
-    case X509_V_ERR_CRL_HAS_EXPIRED:
-        reason = "X509_V_ERR_CRL_HAS_EXPIRED";
-        break;
-    case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD:
-        reason = "X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD";
-        break;
-    case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD:
-        reason = "X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD";
-        break;
-    case X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD:
-        reason = "X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD";
-        break;
-    case X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD:
-        reason = "X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD";
-        break;
-    case X509_V_ERR_OUT_OF_MEM:
-        reason = "X509_V_ERR_OUT_OF_MEM";
-        break;
-    case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
-        reason = "X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT";
-        break;
-    case X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN:
-        reason = "X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN";
-        break;
-    case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY:
-        reason = "X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY";
-        break;
-    case X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE:
-        reason = "X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE";
-        break;
-    case X509_V_ERR_CERT_CHAIN_TOO_LONG:
-        reason = "X509_V_ERR_CERT_CHAIN_TOO_LONG";
-        break;
-    case X509_V_ERR_CERT_REVOKED:
-        reason = "X509_V_ERR_CERT_REVOKED";
-        break;
-    case X509_V_ERR_INVALID_CA:
-        reason = "X509_V_ERR_INVALID_CA";
-        break;
-    case X509_V_ERR_PATH_LENGTH_EXCEEDED:
-        reason = "X509_V_ERR_PATH_LENGTH_EXCEEDED";
-        break;
-    case X509_V_ERR_INVALID_PURPOSE:
-        reason = "X509_V_ERR_INVALID_PURPOSE";
-        break;
-    case X509_V_ERR_CERT_UNTRUSTED:
-        reason = "X509_V_ERR_CERT_UNTRUSTED";
-        break;
-    case X509_V_ERR_CERT_REJECTED:
-        reason = "X509_V_ERR_CERT_REJECTED";
-        break;
-    case X509_V_ERR_SUBJECT_ISSUER_MISMATCH:
-        reason = "X509_V_ERR_SUBJECT_ISSUER_MISMATCH";
-        break;
-    case X509_V_ERR_AKID_SKID_MISMATCH:
-        reason = "X509_V_ERR_AKID_SKID_MISMATCH";
-        break;
-    case X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH:
-        reason = "X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH";
-        break;
-    case X509_V_ERR_KEYUSAGE_NO_CERTSIGN:
-        reason = "X509_V_ERR_KEYUSAGE_NO_CERTSIGN";
-        break;
-    case X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER:
-        reason = "X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER";
-        break;
-    case X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION:
-        reason = "X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION";
-        break;
-    case X509_V_ERR_KEYUSAGE_NO_CRL_SIGN:
-        reason = "X509_V_ERR_KEYUSAGE_NO_CRL_SIGN";
-        break;
-    case X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION:
-        reason = "X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION";
-        break;
-    case X509_V_ERR_INVALID_NON_CA:
-        reason = "X509_V_ERR_INVALID_NON_CA";
-        break;
-    case X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED:
-        reason = "X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED";
-        break;
-    case X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE:
-        reason = "X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE";
-        break;
-    case X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED:
-        reason = "X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED";
-        break;
-    case X509_V_ERR_INVALID_EXTENSION:
-        reason = "X509_V_ERR_INVALID_EXTENSION";
-        break;
-    case X509_V_ERR_INVALID_POLICY_EXTENSION:
-        reason = "X509_V_ERR_INVALID_POLICY_EXTENSION";
-        break;
-    case X509_V_ERR_NO_EXPLICIT_POLICY:
-        reason = "X509_V_ERR_NO_EXPLICIT_POLICY";
-        break;
-    case X509_V_ERR_UNNESTED_RESOURCE:
-        reason = "X509_V_ERR_UNNESTED_RESOURCE";
-        break;
-    case X509_V_ERR_APPLICATION_VERIFICATION:
-        reason = "X509_V_ERR_APPLICATION_VERIFICATION";
-    default:
-        reason = "unknown failure code";
-    }
-
-    return reason;
-}
-
-int verify_callback(int ok, X509_STORE_CTX *ctx) {
-    int err, depth;
-    char buf[1024];
-    X509 *thecert;
-
-    thecert = X509_STORE_CTX_get_current_cert(ctx);
-    err = X509_STORE_CTX_get_error(ctx);
-    depth = X509_STORE_CTX_get_error_depth(ctx);
-    
-    /* things to do: */
-
-    X509_NAME_oneline(X509_get_subject_name(thecert), buf, sizeof(buf));
-    DEBUGMSGTL(("dtlsudp_x509",
-                "Cert: %s\n", buf));
-
-
-    DEBUGMSGTL(("dtlsudp_x509",
-                " verify value: %d, depth=%d, error code=%d, error string=%s\n",
-                ok, depth, err, _x509_get_error(err, "verify callback")));
-
-    /* check if we allow self-signed certs */
-    if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_ALLOW_SELF_SIGNED) &&
-        (X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT == err ||
-         X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN == err)) {
-        DEBUGMSGTL(("dtlsudp_x509", "  accepting a self-signed certificate\n"));
-        return 1;
-    }
-    
-    
-    DEBUGMSGTL(("dtlsudp_x509", "  returing the passed in value of %d\n", ok));
-    return(ok);
-}
-
-static void _openssl_log_error(int rc, SSL *con, const char *location) {
-    const char *reason;
-
-    if (rc == -1) {
-        int sslnum = SSL_get_error(con, rc);
-
-        switch(sslnum) {
-        case SSL_ERROR_NONE:
-            reason = "SSL_ERROR_NONE";
-            break;
-
-        case SSL_ERROR_SSL:
-            reason = "SSL_ERROR_SSL";
-            break;
-
-        case SSL_ERROR_WANT_READ:
-            reason = "SSL_ERROR_WANT_READ";
-            break;
-
-        case SSL_ERROR_WANT_WRITE:
-            reason = "SSL_ERROR_WANT_WRITE";
-            break;
-
-        case SSL_ERROR_WANT_X509_LOOKUP:
-            reason = "SSL_ERROR_WANT_X509_LOOKUP";
-            break;
-
-        case SSL_ERROR_SYSCALL:
-            reason = "SSL_ERROR_SYSCALL";
-            snmp_log(LOG_ERR, "DTLS error: %s: rc=%d, sslerror = %d (%s): system_error=%d (%s)\n",
-                     location, rc, sslnum, reason, errno, strerror(errno));
-            return;
-
-        case SSL_ERROR_ZERO_RETURN:
-            reason = "SSL_ERROR_ZERO_RETURN";
-            break;
-
-        case SSL_ERROR_WANT_CONNECT:
-            reason = "SSL_ERROR_WANT_CONNECT";
-            break;
-
-        case SSL_ERROR_WANT_ACCEPT:
-            reason = "SSL_ERROR_WANT_ACCEPT";
-            break;
-            
-        default:
-            reason = "unknown";
-        }
-
-        snmp_log(LOG_ERR, "DTLS error: %s: rc=%d, sslerror = %d (%s)\n",
-                 location, rc, sslnum, reason);
-    }
-}
-
-/* XXX: lots of malloc/state cleanup needed */
-#define DIEHERE(msg) { snmp_log(LOG_ERR, "%s\n", msg); return NULL; }
-
-static bio_cache *
-start_new_cached_connection(int sock, struct sockaddr_in *remote_addr,
-                            int we_are_client) {
-    bio_cache *cachep = NULL;
-
-    if (!sock)
-        DIEHERE("no socket passed in to start_new_cached_connection\n");
-    if (!remote_addr)
-        DIEHERE("no remote_addr passed in to start_new_cached_connection\n");
-        
-    cachep = SNMP_MALLOC_TYPEDEF(bio_cache);
-    if (!cachep)
-        return NULL;
-    
-    DEBUGMSGTL(("dtlsudp", "starting a new connection\n"));
-    cachep->next = biocache;
-    biocache = cachep;
-
-    cachep->ipv4addr = remote_addr->sin_addr.s_addr;
-    cachep->portnum = remote_addr->sin_port;
-    cachep->sock = sock;
-    memcpy(&cachep->sockaddr, remote_addr, sizeof(*remote_addr));
-
-    if (we_are_client) {
-        DEBUGMSGTL(("dtlsudp", "starting a new connection as a client to sock: %d\n", sock));
-        cachep->con = SSL_new(client_ctx);
-
-        /* XXX: session setting 735 */
-
-        /* create a bio */
-
-        cachep->bio = BIO_new(BIO_s_mem()); /* The one openssl reads from */
-        cachep->write_bio = BIO_new(BIO_s_mem()); /* openssl writes to */
-
-        BIO_set_mem_eof_return(cachep->bio, -1);
-        BIO_set_mem_eof_return(cachep->write_bio, -1);
-
-        SSL_set_bio(cachep->con, cachep->bio, cachep->write_bio);
-        SSL_set_connect_state(cachep->con);
-        
-    } else {
-        /* we're the server */
-
-        cachep->bio = BIO_new(BIO_s_mem()); /* The one openssl reads from */
-
-        if (!cachep->bio)
-            DIEHERE("failed to create the read bio");
-
-        cachep->write_bio = BIO_new(BIO_s_mem()); /* openssl writes to */
-
-        if (!cachep->write_bio) {
-            DIEHERE("failed to create the write bio");
-            BIO_free(cachep->bio);
-        }
-
-        BIO_set_mem_eof_return(cachep->bio, -1);
-        BIO_set_mem_eof_return(cachep->write_bio, -1);
-
-        cachep->con = SSL_new(server_ctx);
-
-        if (!cachep->con) {
-            BIO_free(cachep->bio);
-            BIO_free(cachep->write_bio);
-            DIEHERE("failed to create the write bio");
-        }
-        
-        /* turn on cookie exchange */
-        /* XXX: we need to only create cache entries when cookies succeed */
-        SSL_set_options(cachep->con, SSL_OP_COOKIE_EXCHANGE);
-
-        /* set the bios that openssl should read from and write to */
-        /* (and we'll do the opposite) */
-        SSL_set_bio(cachep->con, cachep->bio, cachep->write_bio);
-        SSL_set_accept_state(cachep->con);
-
-    }
-
-    return cachep;
-}
-
-static bio_cache *
-find_or_create_bio_cache(int sock, struct sockaddr_in *from_addr,
-                         int we_are_client) {
-    bio_cache *cachep = find_bio_cache(from_addr);
-    if (NULL == cachep) {
-        /* none found; need to start a new context */
-        cachep = start_new_cached_connection(sock, from_addr, we_are_client);
-        if (NULL == cachep) {
-            snmp_log(LOG_ERR, "failed to open a new dtls connection\n");
-        }
-    }
-    return cachep;
-}       
-
-/*
- * You can write something into opaque that will subsequently get passed back 
- * to your send function if you like.  For instance, you might want to
- * remember where a PDU came from, so that you can send a reply there...  
- */
-
-static int
-netsnmp_dtlsudp_recv(netsnmp_transport *t, void *buf, int size,
-		 void **opaque, int *olength)
-{
-    int             rc = -1;
-    socklen_t       fromlen = sizeof(struct sockaddr);
-    netsnmp_addr_pair *addr_pair = NULL;
-    struct sockaddr *from;
-    netsnmp_tmStateReference *tmStateRef = NULL;
-    X509            *peer;
-
-    if (t != NULL && t->sock >= 0) {
-        /* create a tmStateRef cache for slow fill-in */
-        tmStateRef = SNMP_MALLOC_TYPEDEF(netsnmp_tmStateReference);
-
-        if (tmStateRef == NULL) {
-            *opaque = NULL;
-            *olength = 0;
-            return -1;
-        }
-
-        addr_pair = &tmStateRef->addresses;
-        tmStateRef->have_addresses = 1;
-        from = (struct sockaddr *) &(addr_pair->remote_addr);
-
-	while (rc < 0) {
-#if defined(linux) && defined(IP_PKTINFO)
-            rc = netsnmp_udp_recvfrom(t->sock, buf, size, from, &fromlen, &(addr_pair->local_addr));
-#else
-            rc = recvfrom(t->sock, buf, size, NETSNMP_DONTWAIT, from, &fromlen);
-#endif /* linux && IP_PKTINFO */
-	    if (rc < 0 && errno != EINTR) {
-		break;
-	    }
-	}
-
-        DEBUGMSGTL(("dtlsudp", "received %d raw bytes on way to dtls\n", rc));
-        if (rc < 0) {
-            DEBUGMSGTL(("dtlsudp", "recvfrom fd %d err %d (\"%s\")\n",
-                        t->sock, errno, strerror(errno)));
-            SNMP_FREE(tmStateRef);
-            return -1;
-        }
-
-        if (rc >= 0) {
-            /* now that we have the from address filled in, we can look up
-               the openssl context and have openssl read and process
-               appropriately */
-
-            /* if we don't have a cachep for this connection then
-               we're receiving something new and are the server
-               side */
-            /* XXX: allow for a SNMP client to never accept new conns? */
-            bio_cache *cachep =
-                find_or_create_bio_cache(t->sock, &addr_pair->remote_addr,
-                                         WE_ARE_SERVER);
-            if (NULL == cachep) {
-                SNMP_FREE(tmStateRef);
-                return -1;
-            }
-
-            /* write the received buffer to the memory-based input bio */
-            BIO_write(cachep->bio, buf, rc);
-
-            /* XXX: in Wes' other example we do a SSL_pending() call
-               too to ensure we're ready to read...  it's possible
-               that buffered stuff in openssl won't be caught by the
-               net-snmp select loop because it's already been pulled
-               out; need to deal with this) */
-            rc = SSL_read(cachep->con, buf, size);
-            
-            DEBUGMSGTL(("dtlsudp", "received %d decoded bytes from dtls\n", rc));
-
-            if (BIO_ctrl_pending(cachep->write_bio) > 0) {
-                /* we have outgoing data to send; probably DTLS negotation */
-
-                u_char outbuf[65535];
-                int outsize;
-                int rc2;
-                
-                /* for memory bios, we now read from openssl's write
-                   buffer (ie, the packet to go out) and send it out
-                   the udp port manually */
-                outsize = BIO_read(cachep->write_bio, outbuf, sizeof(outbuf));
-                if (outsize > 0) {
-                    /* should always be true. */
-#if defined(XXXFIXME) && defined(linux) && defined(IP_PKTINFO)
-                /* XXX: before this can work, we need to remember address we
-                   received it from (addr_pair) */
-                    rc2 = netsnmp_udp_sendto(cachep->sock, addr_pair->local_addr, addr_pair->remote_addr, outbuf, outsize);
-#else
-                    rc2 = sendto(t->sock, outbuf, outsize, 0, &cachep->sockaddr, sizeof(struct sockaddr));
-#endif /* linux && IP_PKTINFO */
-
-                    if (rc2 == -1) {
-                        snmp_log(LOG_ERR, "failed to send a DTLS specific packet\n");
-                    }
-                }
-            }
-
-            if (SSL_pending(cachep->con)) {
-                fprintf(stderr, "ack: got here...  pending\n");
-                exit(1);
-            }
-
-            if (rc == -1) {
-                _openssl_log_error(rc, cachep->con, "SSL_read");
-                SNMP_FREE(tmStateRef);
-
-                if (SSL_get_error(cachep->con, rc) == SSL_ERROR_WANT_READ)
-                    return -1; /* XXX: it's ok, but what's the right return? */
-                return rc;
-            }
-
-            {
-                char *str = netsnmp_udp_fmtaddr(NULL, addr_pair, sizeof(netsnmp_addr_pair));
-                DEBUGMSGTL(("dtlsudp",
-                            "recvfrom fd %d got %d bytes (from %s)\n",
-                            t->sock, rc, str));
-                free(str);
-            }
-
-            /* XXX: disallow NULL auth/encr algs in our implementations */
-            tmStateRef->transportSecurityLevel = SNMP_SEC_LEVEL_AUTHPRIV;
-
-            /* use x509 cert to do lookup to secname if DNE in cachep yet */
-            if (!cachep->securityName) {
-                if (NULL != (peer = SSL_get_peer_certificate(cachep->con))) {
-                    X509_NAME *subname;
-                    char namebuf[1024];
-                
-                    /* we have one */
-                    subname = X509_get_subject_name(peer);
-                    X509_NAME_get_text_by_NID(subname, NID_commonName,
-                                              namebuf, sizeof(namebuf));
-                    DEBUGMSGTL(("dtlsudp", "got commonname: %s\n",
-                                namebuf));
-                    cachep->securityName = strdup(namebuf);
-                    DEBUGMSGTL(("dtlsudp", "set SecName to: %s\n",
-                                cachep->securityName));
-                } else {
-                    SNMP_FREE(tmStateRef);
-                    return -1;
-                }
-            }
-
-            /* XXX: detect and throw out overflow secname sizes rather
-               than truncating. */
-            strlcpy(tmStateRef->securityName, cachep->securityName,
-                    sizeof(tmStateRef->securityName));
-            tmStateRef->securityName[sizeof(tmStateRef->securityName)-1] = '\0';
-            tmStateRef->securityNameLen = strlen(tmStateRef->securityName);
-
-            *opaque = tmStateRef;
-            *olength = sizeof(netsnmp_tmStateReference);
-
-        } else {
-            DEBUGMSGTL(("dtlsudp", "recvfrom fd %d err %d (\"%s\")\n",
-                        t->sock, errno, strerror(errno)));
-        }
-    }
-    return rc;
-}
-
-
-
-static int
-netsnmp_dtlsudp_send(netsnmp_transport *t, void *buf, int size,
-		 void **opaque, int *olength)
-{
-    int rc = -1;
-    netsnmp_addr_pair *addr_pair = NULL;
-    struct sockaddr *to = NULL;
-    bio_cache *cachep = NULL;
-    netsnmp_tmStateReference *tmStateRef = NULL;
-    u_char outbuf[65535];
-    
-    if (opaque != NULL && *opaque != NULL &&
-        *olength == sizeof(netsnmp_tmStateReference)) {
-        tmStateRef = (netsnmp_tmStateReference *) *opaque;
-
-        if (tmStateRef->have_addresses)
-            addr_pair = &(tmStateRef->addresses);
-        else if (t != NULL && t->data != NULL &&
-                 t->data_length == sizeof(netsnmp_addr_pair))
-            addr_pair = (netsnmp_addr_pair *) (t->data);
-    } else if (t != NULL && t->data != NULL &&
-               t->data_length == sizeof(netsnmp_addr_pair)) {
-        addr_pair = (netsnmp_addr_pair *) (t->data);
-    }
-
-    if (NULL == addr_pair) {
-        snmp_log(LOG_ERR, "dtlsudp_send: can't get address to send to\n");
-        return -1;
-    }
-
-    to = (struct sockaddr *) &(addr_pair->remote_addr);
-
-    if (NULL == to || NULL == t || t->sock <= 0) {
-        snmp_log(LOG_ERR, "invalid netsnmp_dtlsudp_send usage\n");
-        return -1;
-    }
-
-    /* we're always a client if we're sending to something unknown yet */
-    if (NULL ==
-        (cachep = find_or_create_bio_cache(t->sock, &addr_pair->remote_addr,
-                                           WE_ARE_CLIENT)))
-        return -1;
-
-    if (!cachep->securityName && tmStateRef && tmStateRef->securityNameLen > 0)
-        cachep->securityName = strdup(tmStateRef->securityName);
-        
-        
-    {
-        char *str = netsnmp_udp_fmtaddr(NULL, (void *) addr_pair,
-                                        sizeof(netsnmp_addr_pair));
-        DEBUGMSGTL(("dtlsudp", "send %d bytes from %p to %s on fd %d\n",
-                    size, buf, str, t->sock));
-        free(str);
-    }
-    rc = SSL_write(cachep->con, buf, size);
-    if (rc < 0) {
-        _openssl_log_error(rc, cachep->con, "SSL_write");
-    }
-
-    /* for memory bios, we now read from openssl's write buffer (ie,
-       the packet to go out) and send it out the udp port manually */
-    rc = BIO_read(cachep->write_bio, outbuf, sizeof(outbuf));
-    if (rc <= 0) {
-        /* in theory an ok thing */
-        return 0;
-    }
-#if defined(FIXME) && defined(linux) && defined(IP_PKTINFO)
-    /* XXX: before this can work, we need to remember address we
-       received it from (addr_pair) */
-    rc = netsnmp_udp_sendto(cachep->sock, &cachep->sockaddr  remote  addr_pair ? &(addr_pair->local_addr) : NULL, to, outbuf, rc);
-#else
-    rc = sendto(t->sock, outbuf, rc, 0, &cachep->sockaddr, sizeof(struct sockaddr));
-#endif /* linux && IP_PKTINFO */
-
-    return rc;
-}
-
-
-
-static int
-netsnmp_dtlsudp_close(netsnmp_transport *t)
-{
-    int rc = -1;
-    /* XXX: issue a proper dtls closure notification(s) */
-    if (t->sock >= 0) {
-#ifndef HAVE_CLOSESOCKET
-        rc = close(t->sock);
-#else
-        rc = closesocket(t->sock);
-#endif
-        t->sock = -1;
-    }
-    return rc;
-}
-
-/*
- * Open a DTLS-based transport for SNMP.  Local is TRUE if addr is the local
- * address to bind to (i.e. this is a server-type session); otherwise addr is 
- * the remote address to send things to.  
- */
-
-netsnmp_transport *
-netsnmp_dtlsudp_transport(struct sockaddr_in *addr, int local)
-{
-    netsnmp_transport *t = NULL;
-    int             rc = 0;
-    char           *str = NULL;
-    char           *client_socket = NULL;
-    netsnmp_addr_pair addr_pair;
-
-    if (addr == NULL || addr->sin_family != AF_INET) {
-        return NULL;
-    }
-
-    memset(&addr_pair, 0, sizeof(netsnmp_addr_pair));
-    memcpy(&(addr_pair.remote_addr), addr, sizeof(struct sockaddr_in));
-
-    t = SNMP_MALLOC_TYPEDEF(netsnmp_transport);
-    if (t == NULL) {
-        return NULL;
-    }
-
-    str = netsnmp_udp_fmtaddr(NULL, (void *)&addr_pair,
-                                 sizeof(netsnmp_addr_pair));
-    DEBUGMSGTL(("dtlsudp", "open %s %s\n", local ? "local" : "remote",
-                str));
-    free(str);
-
-    t->domain = netsnmpDTLSUDPDomain;
-    t->domain_length = netsnmpDTLSUDPDomain_len;
-
-    t->sock = socket(PF_INET, SOCK_DGRAM, 0);
-    DEBUGMSGTL(("dtlsudp", "openned socket %d as local=%d\n", t->sock,
-                local));
-    if (t->sock < 0) {
-        netsnmp_transport_free(t);
-        return NULL;
-    }
-
-    /* XXX: Potentially set sock opts here (SO_SNDBUF/SO_RCV_BUF) */
-    /* XXX: and buf size */
-    _netsnmp_udp_sockopt_set(t->sock, local);
-
-    if (local) {
-        /*
-         * This session is inteneded as a server, so we must bind on to the
-         * given IP address, which may include an interface address, or could
-         * be INADDR_ANY, but certainly includes a port number.
-         */
-
-      t->local = (u_char *) malloc(6);
-        if (t->local == NULL) {
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        memcpy(t->local, (u_char *) & (addr->sin_addr.s_addr), 4);
-        t->local[4] = (htons(addr->sin_port) & 0xff00) >> 8;
-        t->local[5] = (htons(addr->sin_port) & 0x00ff) >> 0;
-        t->local_length = 6;
-
-#if defined(linux) && defined(IP_PKTINFO)
-        { 
-            int sockopt = 1;
-            if (setsockopt(t->sock, SOL_IP, IP_PKTINFO, &sockopt, sizeof sockopt) == -1) {
-                DEBUGMSGTL(("dtlsudp", "couldn't set IP_PKTINFO: %s\n",
-                    strerror(errno)));
-                netsnmp_transport_free(t);
-                return NULL;
-            }
-            DEBUGMSGTL(("dtlsudp", "set IP_PKTINFO\n"));
-        }
-#endif
-        rc = bind(t->sock, (struct sockaddr *) addr,
-                  sizeof(struct sockaddr));
-        if (rc != 0) {
-            netsnmp_dtlsudp_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        t->data = NULL;
-        t->data_length = 0;
-    } else {
-        /*
-         * This is a client session.  If we've been given a
-         * client address to send from, then bind to that.
-         * Otherwise the send will use "something sensible".
-         */
-        client_socket = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                                              NETSNMP_DS_LIB_CLIENT_ADDR);
-        if (client_socket) {
-            struct sockaddr_in client_addr;
-            netsnmp_sockaddr_in2(&client_addr, client_socket, NULL);
-            addr_pair.local_addr = client_addr.sin_addr;
-            client_addr.sin_port = 0;
-            DEBUGMSGTL(("dtlsudp", "binding socket: %d\n", t->sock));
-            rc = bind(t->sock, (struct sockaddr *)&client_addr,
-                  sizeof(struct sockaddr));
-            if ( rc != 0 ) {
-                DEBUGMSGTL(("dtlsudp", "failed to bind for clientaddr: %d %s\n",
-                            errno, strerror(errno)));
-                netsnmp_dtlsudp_close(t);
-                netsnmp_transport_free(t);
-                return NULL;
-            }
-        }
-
-        str = netsnmp_udp_fmtaddr(NULL, (void *)&addr_pair,
-                 sizeof(netsnmp_addr_pair));
-        DEBUGMSGTL(("dtlsudp", "client open %s\n", str));
-        free(str);
-
-        /*
-         * Save the (remote) address in the
-         * transport-specific data pointer for later use by netsnmp_dtlsudp_send.
-         */
-
-        t->data = SNMP_MALLOC_TYPEDEF(netsnmp_addr_pair);
-        t->remote = (u_char *)malloc(6);
-        if (t->data == NULL || t->remote == NULL) {
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        memcpy(t->remote, (u_char *) & (addr->sin_addr.s_addr), 4);
-        t->remote[4] = (htons(addr->sin_port) & 0xff00) >> 8;
-        t->remote[5] = (htons(addr->sin_port) & 0x00ff) >> 0;
-        t->remote_length = 6;
-        memcpy(t->data, &addr_pair, sizeof(netsnmp_addr_pair));
-        t->data_length = sizeof(netsnmp_addr_pair);
-
-        /* dtls needs to bind the socket for SSL_write to work */
-        if (connect(t->sock, (struct sockaddr *) addr, sizeof(*addr)) == -1)
-            snmp_log(LOG_ERR, "dtls: failed to connect\n");
-
-    }
-
-    /*
-     * 16-bit length field, 8 byte DTLS header, 20 byte IPv4 header  
-     */
-
-    t->msgMaxSize = 0xffff - 8 - 20;
-    t->f_recv     = netsnmp_dtlsudp_recv;
-    t->f_send     = netsnmp_dtlsudp_send;
-    t->f_close    = netsnmp_dtlsudp_close;
-    t->f_accept   = NULL;
-    t->f_fmtaddr  = netsnmp_udp_fmtaddr;
-    t->flags = NETSNMP_TRANSPORT_FLAG_TUNNELED;
-
-    return t;
-}
-
-
-void
-netsnmp_dtlsudp_agent_config_tokens_register(void)
-{
-}
-
-
-
-
-netsnmp_transport *
-netsnmp_dtlsudp_create_tstring(const char *str, int local,
-			   const char *default_target)
-{
-    struct sockaddr_in addr;
-
-    if (netsnmp_sockaddr_in2(&addr, str, default_target)) {
-        return netsnmp_dtlsudp_transport(&addr, local);
-    } else {
-        return NULL;
-    }
-}
-
-
-netsnmp_transport *
-netsnmp_dtlsudp_create_ostring(const u_char * o, size_t o_len, int local)
-{
-    struct sockaddr_in addr;
-
-    if (o_len == 6) {
-        unsigned short porttmp = (o[4] << 8) + o[5];
-        addr.sin_family = AF_INET;
-        memcpy((u_char *) & (addr.sin_addr.s_addr), o, 4);
-        addr.sin_port = htons(porttmp);
-        return netsnmp_dtlsudp_transport(&addr, local);
-    }
-    return NULL;
-}
-
-#define LOGANDDIE(msg) { snmp_log(LOG_ERR, "%s\n", msg); return 0; }
-
-static int have_done_init = 0;
-
-static int
-dtlsudp_bootstrap(int majorid, int minorid, void *serverarg, void *clientarg) {
-    const char *certfile;
-    EVP_PKEY *key = NULL;
-    X509 *cert = NULL;
-    BIO *keybio = NULL;
-
-    /* don't do this more than once */
-    if (have_done_init)
-        return 0;
-    have_done_init = 1;
-
-    /***********************************************************************
-     * Set up the client context
-     */
-    client_ctx = SSL_CTX_new(DTLSv1_client_method());
-    if (!client_ctx) {
-        LOGANDDIE("can't create a new context");
-    }
-    SSL_CTX_set_read_ahead (client_ctx, 1); /* Required for DTLS */
-        
-    SSL_CTX_set_verify(client_ctx,
-                       SSL_VERIFY_PEER|
-                       SSL_VERIFY_FAIL_IF_NO_PEER_CERT|
-                       SSL_VERIFY_CLIENT_ONCE,
-                       &verify_callback);
-
-    keybio = BIO_new(BIO_s_file());
-    if (!keybio)
-        LOGANDDIE ("error creating bio for reading public key");
-
-    certfile = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                                     NETSNMP_DS_LIB_X509_CLIENT_PUB);
-
-    DEBUGMSGTL(("dtlsudp", "using public key: %s\n", certfile));
-    if (BIO_read_filename(keybio, certfile) <=0)
-        LOGANDDIE ("error reading public key");
-
-    cert = PEM_read_bio_X509_AUX(keybio, NULL, NULL, NULL);
-    if (!cert)
-        LOGANDDIE("failed to load public key");
-
-    /* XXX: mem leak on previous keybio? */
-
-    certfile = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                                     NETSNMP_DS_LIB_X509_CLIENT_PRIV);
-
-    keybio = BIO_new(BIO_s_file());
-    if (!keybio)
-        LOGANDDIE ("error creating bio for reading private key");
-
-    DEBUGMSGTL(("dtlsudp", "using private key: %s\n", certfile));
-    if (!keybio ||
-        BIO_read_filename(keybio, certfile) <= 0)
-        LOGANDDIE ("error reading private key");
-
-    key = PEM_read_bio_PrivateKey(keybio, NULL, NULL, NULL);
-    
-    if (!key)
-        LOGANDDIE("failed to load private key");
-
-
-    if (SSL_CTX_use_certificate(client_ctx, cert) <= 0)
-        LOGANDDIE("failed to set the certificate to use");
-
-    if (SSL_CTX_use_PrivateKey(client_ctx, key) <= 0)
-        LOGANDDIE("failed to set the private key to use");
-
-    if (!SSL_CTX_check_private_key(client_ctx))
-        LOGANDDIE("public and private keys incompatible");
-    
-
-    certfile = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                                     NETSNMP_DS_LIB_X509_SERVER_CERTS);
-
-    /* XXX: also need to match individual cert to indiv. host */
-
-    if(! SSL_CTX_load_verify_locations(client_ctx, certfile, NULL)) {
-        LOGANDDIE("failed to load truststore");
-        /* Handle failed load here */
-    }
-
-    if (!SSL_CTX_set_default_verify_paths(client_ctx)) {
-        LOGANDDIE ("failed to set default verify path");
-    }
-
-    /***********************************************************************
-     * Set up the server context
-     */
-    /* setting up for ssl */
-    server_ctx = SSL_CTX_new(DTLSv1_server_method());
-    if (!server_ctx) {
-        LOGANDDIE("can't create a new context");
-    }
-
-    certfile = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                                     NETSNMP_DS_LIB_X509_SERVER_PUB);
-
-    if (SSL_CTX_use_certificate_file(server_ctx, certfile,
-                                     SSL_FILETYPE_PEM) < 1) {
-        LOGANDDIE("faild to load cert");
-    }
-    
-    certfile = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                                     NETSNMP_DS_LIB_X509_SERVER_PRIV);
-
-    if (SSL_CTX_use_PrivateKey_file(server_ctx, certfile, SSL_FILETYPE_PEM) < 1) {
-        LOGANDDIE("faild to load key");
-    }
-
-    SSL_CTX_set_read_ahead(server_ctx, 1);
-
-
-    certfile = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                                     NETSNMP_DS_LIB_X509_CLIENT_CERTS);
-    if(! SSL_CTX_load_verify_locations(server_ctx, certfile, NULL)) {
-        LOGANDDIE("failed to load truststore");
-        /* Handle failed load here */
-    }
-
-    SSL_CTX_set_verify(server_ctx,
-                       SSL_VERIFY_PEER|
-                       SSL_VERIFY_FAIL_IF_NO_PEER_CERT|
-                       SSL_VERIFY_CLIENT_ONCE,
-                       &verify_callback);
-
-    return 0;
-}
-
-
-void
-netsnmp_dtlsudp_ctor(void)
-{
-    DEBUGMSGTL(("dtlsudp", "registering DTLS constructor\n"));
-
-    /* config settings */
-
-    /* bootstrap ssl since we'll need it */
-    netsnmp_init_openssl();
-
-    /*
-     * for the client
-     */
-
-    /* pem file of valid server CERT CAs */
-    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "defX509ServerCerts",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_X509_SERVER_CERTS);
-
-    /* the public client cert to authenticate with */
-    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "defX509ClientPub",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_X509_CLIENT_PUB);
-
-    /* the private client cert to authenticate with */
-    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "defX509ClientPriv",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_X509_CLIENT_PRIV);
-
-    /*
-     * for the server
-     */
-
-    /* The list of valid client keys to accept (or CAs I think) */
-    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "defX509ClientCerts",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_X509_CLIENT_CERTS);
-
-    /* The X509 server key to use */
-    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "defX509ServerPub",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_X509_SERVER_PUB);
-
-    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "defX509ServerPriv",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_X509_SERVER_PRIV);
-
-    netsnmp_ds_register_config(ASN_BOOLEAN, "snmp", "AllowSelfSignedX509",
-                               NETSNMP_DS_LIBRARY_ID,
-                               NETSNMP_DS_LIB_ALLOW_SELF_SIGNED);
-
-    /*
-     * register our boot-strapping needs
-     */
-    snmp_register_callback(SNMP_CALLBACK_LIBRARY,
-			   SNMP_CALLBACK_POST_READ_CONFIG,
-			   dtlsudp_bootstrap, NULL);
-
-    dtlsudpDomain.name = netsnmpDTLSUDPDomain;
-    dtlsudpDomain.name_length = netsnmpDTLSUDPDomain_len;
-    dtlsudpDomain.prefix = (const char**)calloc(2, sizeof(char *));
-    dtlsudpDomain.prefix[0] = "dtlsudp";
-
-    dtlsudpDomain.f_create_from_tstring     = NULL;
-    dtlsudpDomain.f_create_from_tstring_new = netsnmp_dtlsudp_create_tstring;
-    dtlsudpDomain.f_create_from_ostring     = netsnmp_dtlsudp_create_ostring;
-
-    netsnmp_tdomain_register(&dtlsudpDomain);
-}
diff --git a/snmplib/snmpUDPDomain.c b/snmplib/snmpUDPDomain.c
deleted file mode 100644
index 18caee5..0000000
--- a/snmplib/snmpUDPDomain.c
+++ /dev/null
@@ -1,1332 +0,0 @@
-/* Portions of this file are subject to the following copyright(s).  See
- * the Net-SNMP's COPYING file for more details and other copyrights
- * that may apply:
- */
-/*
- * Portions of this file are copyrighted by:
- * Copyright Copyright 2003 Sun Microsystems, Inc. All rights reserved.
- * Use is subject to license terms specified in the COPYING file
- * distributed with the Net-SNMP package.
- */
-
-#include <net-snmp/net-snmp-config.h>
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <ctype.h>
-#include <errno.h>
-
-#if HAVE_STRING_H
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-#if HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#if HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#if HAVE_SYS_UIO_H
-#include <sys/uio.h>
-#endif
-
-#if HAVE_WINSOCK_H
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#endif
-
-#if HAVE_DMALLOC_H
-#include <dmalloc.h>
-#endif
-
-#include <net-snmp/types.h>
-#include <net-snmp/output_api.h>
-#include <net-snmp/config_api.h>
-
-#include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/snmpUDPDomain.h>
-#include <net-snmp/library/system.h>
-#include <net-snmp/library/tools.h>
-
-#ifndef INADDR_NONE
-#define INADDR_NONE	-1
-#endif
-
-#ifdef  MSG_DONTWAIT
-#define NETSNMP_DONTWAIT MSG_DONTWAIT
-#else
-#define NETSNMP_DONTWAIT 0
-#endif
-
-static netsnmp_tdomain udpDomain;
-
-typedef struct netsnmp_udp_addr_pair_s {
-    struct sockaddr_in remote_addr;
-    struct in_addr local_addr;
-} netsnmp_udp_addr_pair;
-
-/*
- * not static, since snmpUDPIPv6Domain needs it, but not public, either.
- * (ie don't put it in a public header.)
- */
-void _netsnmp_udp_sockopt_set(int fd, int server);
-int
-netsnmp_sockaddr_in2(struct sockaddr_in *addr,
-                     const char *inpeername, const char *default_target);
-
-/*
- * Return a string representing the address in data, or else the "far end"
- * address if data is NULL.  
- */
-
-char *
-netsnmp_udp_fmtaddr(netsnmp_transport *t, void *data, int len)
-{
-    netsnmp_udp_addr_pair *addr_pair = NULL;
-    struct hostent *host;
-
-    if (data != NULL && len == sizeof(netsnmp_udp_addr_pair)) {
-	addr_pair = (netsnmp_udp_addr_pair *) data;
-    } else if (t != NULL && t->data != NULL) {
-	addr_pair = (netsnmp_udp_addr_pair *) t->data;
-    }
-
-    if (addr_pair == NULL) {
-        return strdup("UDP: unknown");
-    } else {
-        struct sockaddr_in *to = NULL;
-	char tmp[64];
-        to = (struct sockaddr_in *) &(addr_pair->remote_addr);
-        if (to == NULL) {
-            sprintf(tmp, "UDP: unknown->[%s]",
-                    inet_ntoa(addr_pair->local_addr));
-        } else if ( t && t->flags & NETSNMP_TRANSPORT_FLAG_HOSTNAME ) {
-            host = gethostbyaddr((char *)&to->sin_addr, 4, AF_INET);
-            return (host ? strdup(host->h_name) : NULL); 
-        } else {
-            sprintf(tmp, "UDP: [%s]:%hu->",
-                    inet_ntoa(to->sin_addr), ntohs(to->sin_port));
-            sprintf(tmp + strlen(tmp), "[%s]", inet_ntoa(addr_pair->local_addr));
-        }
-        return strdup(tmp);
-    }
-}
-
-
-
-#if (defined(linux) && defined(IP_PKTINFO)) \
-    || defined(IP_RECVDSTADDR) && HAVE_STRUCT_MSGHDR_MSG_CONTROL \
-                               && HAVE_STRUCT_MSGHDR_MSG_FLAGS
-#if  defined(linux) && defined(IP_PKTINFO)
-# define netsnmp_dstaddr(x) (&(((struct in_pktinfo *)(CMSG_DATA(x)))->ipi_addr))
-#elif defined(IP_RECVDSTADDR)
-# define netsnmp_dstaddr(x) (&(struct cmsghr *)(CMSG_DATA(x)))
-#endif
-
-int netsnmp_udp_recvfrom(int s, void *buf, int len, struct sockaddr *from, socklen_t *fromlen, struct in_addr *dstip)
-{
-    int r;
-    struct iovec iov[1];
-#if   defined(linux) && defined(IP_PKTINFO)
-    char cmsg[CMSG_SPACE(sizeof(struct in_pktinfo))];
-#elif defined(IP_RECVDSTADDR)
-    char cmsg[CMSG_SPACE(sizeof(struct in_addr))];
-#endif
-    struct cmsghdr *cmsgptr;
-    struct msghdr msg;
-
-    iov[0].iov_base = buf;
-    iov[0].iov_len = len;
-
-    memset(&msg, 0, sizeof msg);
-    msg.msg_name = from;
-    msg.msg_namelen = *fromlen;
-    msg.msg_iov = iov;
-    msg.msg_iovlen = 1;
-    msg.msg_control = &cmsg;
-    msg.msg_controllen = sizeof(cmsg);
-
-    r = recvmsg(s, &msg, NETSNMP_DONTWAIT);
-
-    if (r == -1) {
-        return -1;
-    }
-    
-    DEBUGMSGTL(("netsnmp_udp", "got source addr: %s\n", inet_ntoa(((struct sockaddr_in *)from)->sin_addr)));
-#if   defined(linux) && defined(IP_PKTINFO)
-    for (cmsgptr = CMSG_FIRSTHDR(&msg); cmsgptr != NULL; cmsgptr = CMSG_NXTHDR(&msg, cmsgptr)) {
-        if (cmsgptr->cmsg_level == SOL_IP && cmsgptr->cmsg_type == IP_PKTINFO) {
-            memcpy((void *) dstip, netsnmp_dstaddr(cmsgptr), sizeof(struct in_addr));
-            DEBUGMSGTL(("netsnmp_udp", "got destination (local) addr %s\n",
-                    inet_ntoa(*dstip)));
-        }
-    }
-#elif defined(IP_RECVDSTADDR)
-    for (cmsgptr = CMSG_FIRSTHDR(&msg); cmsgptr != NULL; cmsgptr = CMSG_NXTHDR(&msg, cmsgptr)) {
-        if (cmsgptr->cmsg_level == IPPROTO_IP && cmsgptr->cmsg_type == IP_RECVDSTADDR) {
-            memcpy((void *) dstip, CMSG_DATA(cmsgptr), sizeof(struct in_addr));
-            DEBUGMSGTL(("netsnmp_udp", "got destination (local) addr %s\n",
-                    inet_ntoa(*dstip)));
-        }
-    }
-#endif
-    return r;
-}
-
-#if   defined(linux) && defined(IP_PKTINFO)
-int netsnmp_udp_sendto(int fd, struct in_addr *srcip, struct sockaddr *remote,
-			void *data, int len)
-{
-    struct iovec iov = { data, len };
-    struct {
-        struct cmsghdr cm;
-        struct in_pktinfo ipi;
-    } cmsg;
-    struct msghdr m;
-
-    memset(&cmsg, 0, sizeof(cmsg));
-    cmsg.cm.cmsg_len = sizeof(struct cmsghdr) + sizeof(struct in_pktinfo);
-    cmsg.cm.cmsg_level = SOL_IP;
-    cmsg.cm.cmsg_type = IP_PKTINFO;
-    cmsg.ipi.ipi_ifindex = 0;
-    cmsg.ipi.ipi_spec_dst.s_addr = (srcip ? srcip->s_addr : INADDR_ANY);
-
-    m.msg_name		= remote;
-    m.msg_namelen	= sizeof(struct sockaddr_in);
-    m.msg_iov		= &iov;
-    m.msg_iovlen	= 1;
-    m.msg_control	= &cmsg;
-    m.msg_controllen	= sizeof(cmsg);
-    m.msg_flags		= 0;
-
-    return sendmsg(fd, &m, MSG_NOSIGNAL|MSG_DONTWAIT);
-}
-#elif defined(IP_RECVDSTADDR)
-int netsnmp_udp_sendto(int fd, struct in_addr *srcip, struct sockaddr *remote,
-			void *data, int len)
-{
-    struct iovec iov = { data, len };
-    struct cmsghdr *cm;
-    struct in_addr ip;
-    struct msghdr m;
-    char   cmbuf[CMSG_SPACE(sizeof(struct in_addr))];
-
-    memset(&m, 0, sizeof(struct msghdr));
-    m.msg_name		= remote;
-    m.msg_namelen	= sizeof(struct sockaddr_in);
-    m.msg_iov		= &iov;
-    m.msg_iovlen	= 1;
-    m.msg_control	= cmbuf;
-    m.msg_controllen	= sizeof(cmbuf);
-    m.msg_flags		= 0;
-
-    cm = CMSG_FIRSTHDR(&m);
-    cm->cmsg_len = CMSG_LEN(sizeof(struct in_addr));
-    cm->cmsg_level = IPPROTO_IP;
-    cm->cmsg_type = IP_SENDSRCADDR;
-
-    memcpy((struct in_addr *)CMSG_DATA(cm), srcip, sizeof(struct in_addr));
-
-    return sendmsg(fd, &m, MSG_NOSIGNAL|MSG_DONTWAIT);
-}
-#endif
-#endif /* (linux && IP_PKTINFO) || IP_RECVDSTADDR && HAVE_STRUCT_MSGHDR_... */
-
-/*
- * You can write something into opaque that will subsequently get passed back 
- * to your send function if you like.  For instance, you might want to
- * remember where a PDU came from, so that you can send a reply there...  
- */
-
-static int
-netsnmp_udp_recv(netsnmp_transport *t, void *buf, int size,
-		 void **opaque, int *olength)
-{
-    int             rc = -1;
-    socklen_t       fromlen = sizeof(struct sockaddr);
-    netsnmp_udp_addr_pair *addr_pair = NULL;
-    struct sockaddr *from;
-
-    if (t != NULL && t->sock >= 0) {
-        addr_pair = (netsnmp_udp_addr_pair *) malloc(sizeof(netsnmp_udp_addr_pair));
-        if (addr_pair == NULL) {
-            *opaque = NULL;
-            *olength = 0;
-            return -1;
-        } else {
-            memset(addr_pair, 0, sizeof(netsnmp_udp_addr_pair));
-            from = (struct sockaddr *) &(addr_pair->remote_addr);
-        }
-
-	while (rc < 0) {
-#if (defined(linux) && defined(IP_PKTINFO)) \
-    || defined(IP_RECVDSTADDR) && HAVE_STRUCT_MSGHDR_MSG_CONTROL \
-                               && HAVE_STRUCT_MSGHDR_MSG_FLAGS
-            rc = netsnmp_udp_recvfrom(t->sock, buf, size, from, &fromlen, &(addr_pair->local_addr));
-#else
-            rc = recvfrom(t->sock, buf, size, NETSNMP_DONTWAIT, from, &fromlen);
-#endif /* (linux && IP_PKTINFO) || IP_RECVDSTADDR && HAVE_STRUCT_MSGHDR_... */
-	    if (rc < 0 && errno != EINTR) {
-		break;
-	    }
-	}
-
-        if (rc >= 0) {
-            char *str = netsnmp_udp_fmtaddr(NULL, addr_pair, sizeof(netsnmp_udp_addr_pair));
-            DEBUGMSGTL(("netsnmp_udp",
-			"recvfrom fd %d got %d bytes (from %s)\n",
-			t->sock, rc, str));
-            free(str);
-        } else {
-            DEBUGMSGTL(("netsnmp_udp", "recvfrom fd %d err %d (\"%s\")\n",
-                        t->sock, errno, strerror(errno)));
-        }
-        *opaque = (void *)addr_pair;
-        *olength = sizeof(netsnmp_udp_addr_pair);
-    }
-    return rc;
-}
-
-
-
-static int
-netsnmp_udp_send(netsnmp_transport *t, void *buf, int size,
-		 void **opaque, int *olength)
-{
-    int rc = -1;
-    netsnmp_udp_addr_pair *addr_pair = NULL;
-    struct sockaddr *to = NULL;
-
-    if (opaque != NULL && *opaque != NULL &&
-        *olength == sizeof(netsnmp_udp_addr_pair)) {
-        addr_pair = (netsnmp_udp_addr_pair *) (*opaque);
-    } else if (t != NULL && t->data != NULL &&
-                t->data_length == sizeof(netsnmp_udp_addr_pair)) {
-        addr_pair = (netsnmp_udp_addr_pair *) (t->data);
-    }
-
-    to = (struct sockaddr *) &(addr_pair->remote_addr);
-
-    if (to != NULL && t != NULL && t->sock >= 0) {
-        char *str = netsnmp_udp_fmtaddr(NULL, (void *) addr_pair,
-                                        sizeof(netsnmp_udp_addr_pair));
-        DEBUGMSGTL(("netsnmp_udp", "send %d bytes from %p to %s on fd %d\n",
-                    size, buf, str, t->sock));
-        free(str);
-	while (rc < 0) {
-#if (defined(linux) && defined(IP_PKTINFO)) \
-    || defined(IP_RECVDSTADDR) && HAVE_STRUCT_MSGHDR_MSG_CONTROL \
-                               && HAVE_STRUCT_MSGHDR_MSG_FLAGS
-            rc = netsnmp_udp_sendto(t->sock, addr_pair ? &(addr_pair->local_addr) : NULL, to, buf, size);
-#else
-            rc = sendto(t->sock, buf, size, 0, to, sizeof(struct sockaddr));
-#endif /* (linux && IP_PKTINFO) || IP_RECVDSTADDR && HAVE_STRUCT_MSGHDR_... */
-	    if (rc < 0 && errno != EINTR) {
-                DEBUGMSGTL(("netsnmp_udp", "sendto error, rc %d (errno %d)\n",
-                            rc, errno));
-		break;
-	    }
-	}
-    }
-    return rc;
-}
-
-
-
-static int
-netsnmp_udp_close(netsnmp_transport *t)
-{
-    int rc = -1;
-    if (t->sock >= 0) {
-#ifndef HAVE_CLOSESOCKET
-        rc = close(t->sock);
-#else
-        rc = closesocket(t->sock);
-#endif
-        t->sock = -1;
-    }
-    return rc;
-}
-
-/*
- * find largest possible buffer between current size and specified size.
- *
- * Try to maximize the current buffer of type "optname"
- * to the maximum allowable size by the OS (as close to
- * size as possible)
- */
-static int
-_sock_buffer_maximize(int s, int optname, const char *buftype, int size)
-{
-    int            curbuf = 0;
-    socklen_t      curbuflen = sizeof(int);
-    int            lo, mid, hi;
-
-    /*
-     * First we need to determine our current buffer
-     */
-    if ((getsockopt(s, SOL_SOCKET, optname, (void *) &curbuf,
-                    &curbuflen) == 0) 
-            && (curbuflen == sizeof(int))) {
-
-        DEBUGMSGTL(("verbose:socket:buffer:max", "Current %s is %d\n",
-                    buftype, curbuf));
-
-        /*
-         * Let's not be stupid ... if we were asked for less than what we
-         * already have, then forget about it
-         */
-        if (size <= curbuf) {
-            DEBUGMSGTL(("verbose:socket:buffer:max",
-                        "Requested %s <= current buffer\n", buftype));
-            return curbuf;
-        }
-
-        /*
-         * Do a binary search the optimal buffer within 1k of the point of
-         * failure. This is rather bruteforce, but simple
-         */
-        hi = size;
-        lo = curbuf;
-
-        while (hi - lo > 1024) {
-            mid = (lo + hi) / 2;
-            if (setsockopt(s, SOL_SOCKET, optname, (void *) &mid,
-                        sizeof(int)) == 0) {
-                lo = mid; /* Success: search between mid and hi */
-            } else {
-                hi = mid; /* Failed: search between lo and mid */
-            }
-        }
-
-        /*
-         * Now print if this optimization helped or not
-         */
-        if (getsockopt(s,SOL_SOCKET, optname, (void *) &curbuf,
-                    &curbuflen) == 0) {
-            DEBUGMSGTL(("socket:buffer:max", 
-                        "Maximized %s: %d\n",buftype, curbuf));
-        } 
-    } else {
-        /*
-         * There is really not a lot we can do anymore.
-         * If the OS doesn't give us the current buffer, then what's the 
-         * point in trying to make it better
-         */
-        DEBUGMSGTL(("socket:buffer:max", "Get %s failed ... giving up!\n",
-                    buftype));
-        curbuf = -1;
-    }
-
-    return curbuf;
-}
-
-
-static const char *
-_sock_buf_type_get(int optname, int local)
-{
-    if (optname == SO_SNDBUF) {
-        if (local)
-            return "server send buffer";
-        else
-            return "client send buffer";
-    } else if (optname == SO_RCVBUF) {
-        if (local)
-            return "server receive buffer";
-        else
-            return "client receive buffer";
-    }
-
-    return "unknown buffer";
-}
-
-/*
- *
- * Get the requested buffersize, based on
- * - sockettype : client (local = 0) or server (local = 1) 
- * - buffertype : send (optname = SO_SNDBUF) or recv (SO_RCVBUF)
- *
- * In case a compile time buffer was specified, then use that one
- * if there was no runtime configuration override
- */
-static int
-_sock_buffer_size_get(int optname, int local, const char **buftype)
-{
-    int size;
-
-    if (NULL != buftype)
-        *buftype = _sock_buf_type_get(optname, local);
-
-    if (optname == SO_SNDBUF) {
-        if (local) {
-            size = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, 
-                    NETSNMP_DS_LIB_SERVERSENDBUF);
-#ifdef NETSNMP_DEFAULT_SERVER_SEND_BUF
-            if (size <= 0)
-               size = NETSNMP_DEFAULT_SERVER_SEND_BUF;
-#endif
-        } else {
-            size = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, 
-                    NETSNMP_DS_LIB_CLIENTSENDBUF);
-#ifdef NETSNMP_DEFAULT_CLIENT_SEND_BUF
-            if (size <= 0)
-               size = NETSNMP_DEFAULT_CLIENT_SEND_BUF;
-#endif
-        }
-    } else if (optname == SO_RCVBUF) {
-        if (local) {
-            size = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, 
-                    NETSNMP_DS_LIB_SERVERRECVBUF);
-#ifdef NETSNMP_DEFAULT_SERVER_RECV_BUF
-            if (size <= 0)
-               size = NETSNMP_DEFAULT_SERVER_RECV_BUF;
-#endif
-        } else {
-            size = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, 
-                    NETSNMP_DS_LIB_CLIENTRECVBUF);
-#ifdef NETSNMP_DEFAULT_CLIENT_RECV_BUF
-            if (size <= 0)
-               size = NETSNMP_DEFAULT_CLIENT_RECV_BUF;
-#endif
-        }
-    } else {
-        size = 0;
-    }
-
-    DEBUGMSGTL(("socket:buffer", "Requested %s is %d\n",
-                (buftype) ? *buftype : "unknown buffer", size));
-
-    return(size);
-}
-
-/*
- * set socket buffer size
- *
- * @param ss     : socket
- * @param optname: SO_SNDBUF or SO_RCVBUF
- * @param local  : 1 for server, 0 for client
- * @param reqbuf : requested size, or 0 for default
- *
- * @retval    -1 : error
- * @retval    >0 : new buffer size
- */
-int
-netsnmp_sock_buffer_set(int s, int optname, int local, int size)
-{
-#if ! defined(SO_SNDBUF) && ! defined(SO_RCVBUF)
-    DEBUGMSGTL(("socket:buffer", "Changing socket buffer is not supported\n"));
-    return -1;
-#else
-    const char     *buftype;
-    int            curbuf = 0;
-    socklen_t      curbuflen = sizeof(int);
-
-#   ifndef  SO_SNDBUF
-    if (SO_SNDBUF == optname) {
-        DEBUGMSGTL(("socket:buffer",
-                    "Changing socket send buffer is not supported\n"));
-        return -1;
-    }
-#   endif                          /*SO_SNDBUF */
-#   ifndef  SO_RCVBUF
-    if (SO_RCVBUF == optname) {
-        DEBUGMSGTL(("socket:buffer",
-                    "Changing socket receive buffer is not supported\n"));
-        return -1;
-    }
-#   endif                          /*SO_RCVBUF */
-
-    /*
-     * What is the requested buffer size ?
-     */
-    if (0 == size)
-        size = _sock_buffer_size_get(optname, local, &buftype);
-    else {
-        buftype = _sock_buf_type_get(optname, local);
-        DEBUGMSGT(("verbose:socket:buffer", "Requested %s is %d\n",
-                   buftype, size));
-    }
-
-    if ((getsockopt(s, SOL_SOCKET, optname, (void *) &curbuf,
-                    &curbuflen) == 0) 
-        && (curbuflen == sizeof(int))) {
-        
-        DEBUGMSGT(("verbose:socket:buffer", "Original %s is %d\n",
-                   buftype, curbuf));
-        if (curbuf >= size) {
-            DEBUGMSGT(("verbose:socket:buffer",
-                      "New %s size is smaller than original!\n", buftype));
-        }
-    }
-
-    /*
-     * If the buffersize was not specified or it was a negative value
-     * then don't change the OS buffers at all
-     */
-    if (size <= 0) {
-       DEBUGMSGT(("socket:buffer",
-                    "%s not valid or not specified; using OS default(%d)\n",
-                    buftype,curbuf));
-       return curbuf;
-    }
-
-    /*
-     * Try to set the requested send buffer
-     */
-    if (setsockopt(s, SOL_SOCKET, optname, (void *) &size, sizeof(int)) == 0) {
-        /*
-         * Because some platforms lie about the actual buffer that has been 
-         * set (Linux will always say it worked ...), we print some 
-         * diagnostic output for debugging
-         */
-        DEBUGIF("socket:buffer") {
-            DEBUGMSGT(("socket:buffer", "Set %s to %d\n",
-                       buftype, size));
-            if ((getsockopt(s, SOL_SOCKET, optname, (void *) &curbuf,
-                            &curbuflen) == 0) 
-                    && (curbuflen == sizeof(int))) {
-
-                DEBUGMSGT(("verbose:socket:buffer",
-                           "Now %s is %d\n", buftype, curbuf));
-            }
-        }
-        /*
-         * If the new buffer is smaller than the size we requested, we will
-         * try to increment the new buffer with 1k increments 
-         * (this will sometime allow us to reach a more optimal buffer.)
-         *   For example : On Solaris, if the max OS buffer is 100k and you
-         *   request 110k, you end up with the default 8k :-(
-         */
-        if (curbuf < size) {
-            curbuf = _sock_buffer_maximize(s, optname, buftype, size);
-            if(-1 != curbuf)
-                size = curbuf;
-        }
-
-    } else {
-        /*
-         * Obviously changing the buffer failed, most like like because we 
-         * requested a buffer greater than the OS limit.
-         * Therefore we need to search for an optimal buffer that is close
-         * enough to the point of failure.
-         * This will allow us to reach a more optimal buffer.
-         *   For example : On Solaris, if the max OS buffer is 100k and you 
-         *   request 110k, you end up with the default 8k :-(
-         *   After this quick seach we would get 1k close to 100k (the max)
-         */
-        DEBUGMSGTL(("socket:buffer", "couldn't set %s to %d\n",
-                    buftype, size));
-
-        curbuf = _sock_buffer_maximize(s, optname, buftype, size);
-        if(-1 != curbuf)
-            size = curbuf;
-    }
-
-    return size;
-#endif
-}
-
-/*
- * Open a UDP-based transport for SNMP.  Local is TRUE if addr is the local
- * address to bind to (i.e. this is a server-type session); otherwise addr is 
- * the remote address to send things to.  
- */
-
-netsnmp_transport *
-netsnmp_udp_transport(struct sockaddr_in *addr, int local)
-{
-    netsnmp_transport *t = NULL;
-    int             rc = 0;
-    char           *str = NULL;
-    char           *client_socket = NULL;
-    netsnmp_udp_addr_pair addr_pair;
-
-    if (addr == NULL || addr->sin_family != AF_INET) {
-        return NULL;
-    }
-
-    memset(&addr_pair, 0, sizeof(netsnmp_udp_addr_pair));
-    memcpy(&(addr_pair.remote_addr), addr, sizeof(struct sockaddr_in));
-
-    t = (netsnmp_transport *) malloc(sizeof(netsnmp_transport));
-    if (t == NULL) {
-        return NULL;
-    }
-
-    str = netsnmp_udp_fmtaddr(NULL, (void *)&addr_pair,
-                                 sizeof(netsnmp_udp_addr_pair));
-    DEBUGMSGTL(("netsnmp_udp", "open %s %s\n", local ? "local" : "remote",
-                str));
-    free(str);
-
-    memset(t, 0, sizeof(netsnmp_transport));
-
-    t->domain = netsnmpUDPDomain;
-    t->domain_length = netsnmpUDPDomain_len;
-
-    t->sock = socket(PF_INET, SOCK_DGRAM, 0);
-    if (t->sock < 0) {
-        netsnmp_transport_free(t);
-        return NULL;
-    }
-
-    _netsnmp_udp_sockopt_set(t->sock, local);
-
-    if (local) {
-        /*
-         * This session is inteneded as a server, so we must bind on to the
-         * given IP address, which may include an interface address, or could
-         * be INADDR_ANY, but certainly includes a port number.
-         */
-
-        t->local = (u_char *) malloc(6);
-        if (t->local == NULL) {
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        memcpy(t->local, (u_char *) & (addr->sin_addr.s_addr), 4);
-        t->local[4] = (htons(addr->sin_port) & 0xff00) >> 8;
-        t->local[5] = (htons(addr->sin_port) & 0x00ff) >> 0;
-        t->local_length = 6;
-
-#if defined(linux) && defined(IP_PKTINFO)
-        { 
-            int sockopt = 1;
-            if (setsockopt(t->sock, SOL_IP, IP_PKTINFO, &sockopt, sizeof sockopt) == -1) {
-                DEBUGMSGTL(("netsnmp_udp", "couldn't set IP_PKTINFO: %s\n",
-                    strerror(errno)));
-                netsnmp_transport_free(t);
-                return NULL;
-            }
-            DEBUGMSGTL(("netsnmp_udp", "set IP_PKTINFO\n"));
-        }
-#elif defined(IP_RECVDSTADDR)
-        { 
-            int sockopt = 1;
-            if (setsockopt(t->sock, IPPROTO_IP, IP_RECVDSTADDR, &sockopt, sizeof sockopt) == -1) {
-                DEBUGMSGTL(("netsnmp_udp", "couldn't set IP_RECVDSTADDR: %s\n",
-                    strerror(errno)));
-                netsnmp_transport_free(t);
-                return NULL;
-            }
-            DEBUGMSGTL(("netsnmp_udp", "set IP_RECVDSTADDR\n"));
-        }
-#endif
-        rc = bind(t->sock, (struct sockaddr *) addr,
-                  sizeof(struct sockaddr));
-        if (rc != 0) {
-            netsnmp_udp_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        t->data = NULL;
-        t->data_length = 0;
-    } else {
-        /*
-         * This is a client session.  If we've been given a
-         * client address to send from, then bind to that.
-         * Otherwise the send will use "something sensible".
-         */
-        client_socket = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-                                              NETSNMP_DS_LIB_CLIENT_ADDR);
-        if (client_socket) {
-            struct sockaddr_in client_addr;
-            netsnmp_sockaddr_in2(&client_addr, client_socket, NULL);
-            addr_pair.local_addr = client_addr.sin_addr;
-            rc = bind(t->sock, (struct sockaddr *)&client_addr,
-                  sizeof(struct sockaddr));
-            if ( rc != 0 ) {
-                DEBUGMSGTL(("netsnmp_udp", "failed to bind for clientaddr: %d %s\n",
-                            errno, strerror(errno)));
-                netsnmp_udp_close(t);
-                netsnmp_transport_free(t);
-                return NULL;
-            }
-        }
-
-        str = netsnmp_udp_fmtaddr(NULL, (void *)&addr_pair,
-                 sizeof(netsnmp_udp_addr_pair));
-        DEBUGMSGTL(("netsnmp_udp", "client open %s\n", str));
-        free(str);
-
-        /*
-         * Save the (remote) address in the
-         * transport-specific data pointer for later use by netsnmp_udp_send.
-         */
-
-        t->data = malloc(sizeof(netsnmp_udp_addr_pair));
-        t->remote = (u_char *)malloc(6);
-        if (t->data == NULL || t->remote == NULL) {
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        memcpy(t->remote, (u_char *) & (addr->sin_addr.s_addr), 4);
-        t->remote[4] = (htons(addr->sin_port) & 0xff00) >> 8;
-        t->remote[5] = (htons(addr->sin_port) & 0x00ff) >> 0;
-        t->remote_length = 6;
-        memcpy(t->data, &addr_pair, sizeof(netsnmp_udp_addr_pair));
-        t->data_length = sizeof(netsnmp_udp_addr_pair);
-    }
-
-    /*
-     * 16-bit length field, 8 byte UDP header, 20 byte IPv4 header  
-     */
-
-    t->msgMaxSize = 0xffff - 8 - 20;
-    t->f_recv     = netsnmp_udp_recv;
-    t->f_send     = netsnmp_udp_send;
-    t->f_close    = netsnmp_udp_close;
-    t->f_accept   = NULL;
-    t->f_fmtaddr  = netsnmp_udp_fmtaddr;
-
-    return t;
-}
-
-
-void
-_netsnmp_udp_sockopt_set(int fd, int local)
-{
-#ifdef  SO_BSDCOMPAT
-    /*
-     * Patch for Linux.  Without this, UDP packets that fail get an ICMP
-     * response.  Linux turns the failed ICMP response into an error message
-     * and return value, unlike all other OS's.  
-     */
-    if (0 == netsnmp_os_prematch("Linux","2.4"))
-    {
-        int             one = 1;
-        DEBUGMSGTL(("socket:option", "setting socket option SO_BSDCOMPAT\n"));
-        setsockopt(fd, SOL_SOCKET, SO_BSDCOMPAT, (void *) &one,
-                   sizeof(one));
-    }
-#endif                          /*SO_BSDCOMPAT */
-    /*
-     * SO_REUSEADDR will allow multiple apps to open the same port at
-     * the same time. Only the last one to open the socket will get
-     * data. Obviously, for an agent, this is a bad thing. There should
-     * only be one listener.
-     */
-#ifdef ALLOW_PORT_HIJACKING
-#ifdef  SO_REUSEADDR
-    /*
-     * Allow the same port to be specified multiple times without failing.
-     *    (useful for a listener)
-     */
-    {
-        int             one = 1;
-        DEBUGMSGTL(("socket:option", "setting socket option SO_REUSEADDR\n"));
-        setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void *) &one,
-                   sizeof(one));
-    }
-#endif                          /*SO_REUSEADDR */
-#endif
-
-    /*
-     * Try to set the send and receive buffers to a reasonably large value, so
-     * that we can send and receive big PDUs (defaults to 8192 bytes (!) on
-     * Solaris, for instance).  Don't worry too much about errors -- just
-     * plough on regardless.  
-     */
-    netsnmp_sock_buffer_set(fd, SO_SNDBUF, local, 0);
-    netsnmp_sock_buffer_set(fd, SO_RCVBUF, local, 0);
-}
-
-int
-netsnmp_sockaddr_in2(struct sockaddr_in *addr,
-                     const char *inpeername, const char *default_target)
-{
-    int ret;
-
-    if (addr == NULL) {
-        return 0;
-    }
-
-    DEBUGMSGTL(("netsnmp_sockaddr_in",
-                "addr %p, inpeername \"%s\", default_target \"%s\"\n",
-                addr, inpeername ? inpeername : "[NIL]",
-                default_target ? default_target : "[NIL]"));
-
-    memset(addr, 0, sizeof(struct sockaddr_in));
-    addr->sin_addr.s_addr = htonl(INADDR_ANY);
-    addr->sin_family = AF_INET;
-    addr->sin_port = htons((u_short)SNMP_PORT);
-
-    {
-	int port = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID,
-				      NETSNMP_DS_LIB_DEFAULT_PORT);
-
-	if (port != 0) {
-	    addr->sin_port = htons((u_short)port);
-	} else if (default_target != NULL)
-	    netsnmp_sockaddr_in2(addr, default_target, NULL);
-    }
-
-    if (inpeername != NULL && *inpeername != '\0') {
-	const char     *host, *port;
-	char           *peername = NULL;
-        char           *cp;
-        /*
-         * Duplicate the peername because we might want to mank around with
-         * it.  
-         */
-
-        peername = strdup(inpeername);
-        if (peername == NULL) {
-            return 0;
-        }
-
-        /*
-         * Try and extract an appended port number.  
-         */
-        cp = strchr(peername, ':');
-        if (cp != NULL) {
-            *cp = '\0';
-            port = cp + 1;
-            host = peername;
-        } else {
-            host = NULL;
-            port = peername;
-        }
-
-        /*
-         * Try to convert the user port specifier
-         */
-        if (port && *port == '\0')
-            port = NULL;
-
-        if (port != NULL) {
-            long int l;
-            char* ep;
-
-            DEBUGMSGTL(("netsnmp_sockaddr_in", "check user service %s\n",
-                        port));
-
-            l = strtol(port, &ep, 10);
-            if (ep != port && *ep == '\0' && 0 <= l && l <= 0x0ffff)
-                addr->sin_port = htons((u_short)l);
-            else {
-                if (host == NULL) {
-                    DEBUGMSGTL(("netsnmp_sockaddr_in",
-                                "servname not numeric, "
-				"check if it really is a destination)\n"));
-                    host = port;
-                    port = NULL;
-                } else {
-                    DEBUGMSGTL(("netsnmp_sockaddr_in",
-                                "servname not numeric\n"));
-                    free(peername);
-                    return 0;
-                }
-            }
-        }
-
-        /*
-         * Try to convert the user host specifier
-         */
-        if (host && *host == '\0')
-            host = NULL;
-
-        if (host != NULL) {
-            DEBUGMSGTL(("netsnmp_sockaddr_in",
-                        "check destination %s\n", host));
-
-
-            if (strcmp(peername, "255.255.255.255") == 0 ) {
-                /*
-                 * The explicit broadcast address hack
-                 */
-                DEBUGMSGTL(("netsnmp_sockaddr_in", "Explicit UDP broadcast\n"));
-                addr->sin_addr.s_addr = INADDR_NONE;
-            } else {
-                ret =
-                    netsnmp_gethostbyname_v4(peername, &addr->sin_addr.s_addr);
-                if (ret < 0) {
-                    DEBUGMSGTL(("netsnmp_sockaddr_in",
-                                "couldn't resolve hostname\n"));
-                    free(peername);
-                    return 0;
-                }
-                DEBUGMSGTL(("netsnmp_sockaddr_in",
-                            "hostname (resolved okay)\n"));
-            }
-        }
-	free(peername);
-    }
-
-    /*
-     * Finished
-     */
-
-    DEBUGMSGTL(("netsnmp_sockaddr_in", "return { AF_INET, %s:%hu }\n",
-                inet_ntoa(addr->sin_addr), ntohs(addr->sin_port)));
-    return 1;
-}
-
-
-int
-netsnmp_sockaddr_in(struct sockaddr_in *addr,
-                    const char *inpeername, int remote_port)
-{
-    char buf[sizeof(int) * 3 + 2];
-    sprintf(buf, ":%u", remote_port);
-    return netsnmp_sockaddr_in2(addr, inpeername, remote_port ? buf : NULL);
-}
-
-#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
-/*
- * The following functions provide the "com2sec" configuration token
- * functionality for compatibility.  
- */
-
-#define EXAMPLE_NETWORK		"NETWORK"
-#define EXAMPLE_COMMUNITY	"COMMUNITY"
-
-typedef struct _com2SecEntry {
-    char            community[COMMUNITY_MAX_LEN];
-    unsigned long   network;
-    unsigned long   mask;
-    char            secName[VACMSTRINGLEN];
-    char            contextName[VACMSTRINGLEN];
-    struct _com2SecEntry *next;
-} com2SecEntry;
-
-com2SecEntry   *com2SecList = NULL, *com2SecListLast = NULL;
-
-void
-netsnmp_udp_parse_security(const char *token, char *param)
-{
-    char            secName[VACMSTRINGLEN];
-    char            contextName[VACMSTRINGLEN];
-    char            community[COMMUNITY_MAX_LEN];
-    char            source[SNMP_MAXBUF_SMALL];
-    char           *cp = NULL;
-    const char     *strmask = NULL;
-    com2SecEntry   *e = NULL;
-    in_addr_t   network = 0, mask = 0;
-
-    /*
-     * Get security, source address/netmask and community strings.  
-     */
-
-    cp = copy_nword( param, secName, sizeof(secName));
-    if (strcmp(secName, "-Cn") == 0) {
-        if (!cp) {
-            config_perror("missing CONTEXT_NAME parameter");
-            return;
-        }
-        cp = copy_nword( cp, contextName, sizeof(contextName));
-        cp = copy_nword( cp, secName, sizeof(secName));
-    } else {
-        contextName[0] = '\0';
-    }
-    if (secName[0] == '\0') {
-        config_perror("missing NAME parameter");
-        return;
-    } else if (strlen(secName) > (VACMSTRINGLEN - 1)) {
-        config_perror("security name too long");
-        return;
-    }
-    cp = copy_nword( cp, source, sizeof(source));
-    if (source[0] == '\0') {
-        config_perror("missing SOURCE parameter");
-        return;
-    } else if (strncmp(source, EXAMPLE_NETWORK, strlen(EXAMPLE_NETWORK)) ==
-               0) {
-        config_perror("example config NETWORK not properly configured");
-        return;
-    }
-    cp = copy_nword( cp, community, sizeof(community));
-    if (community[0] == '\0') {
-        config_perror("missing COMMUNITY parameter\n");
-        return;
-    } else
-        if (strncmp
-            (community, EXAMPLE_COMMUNITY, strlen(EXAMPLE_COMMUNITY))
-            == 0) {
-        config_perror("example config COMMUNITY not properly configured");
-        return;
-    } else if (strlen(community) > (COMMUNITY_MAX_LEN - 1)) {
-        config_perror("community name too long");
-        return;
-    }
-
-    /*
-     * Process the source address/netmask string.  
-     */
-
-    cp = strchr(source, '/');
-    if (cp != NULL) {
-        /*
-         * Mask given.  
-         */
-        *cp = '\0';
-        strmask = cp + 1;
-    }
-
-    /*
-     * Deal with the network part first.  
-     */
-
-    if ((strcmp(source, "default") == 0)
-        || (strcmp(source, "0.0.0.0") == 0)) {
-        network = 0;
-        strmask = "0.0.0.0";
-    } else {
-        /*
-         * Try interpreting as a dotted quad.  
-         */
-        network = inet_addr(source);
-
-        if (network == (in_addr_t) -1) {
-            /*
-             * Nope, wasn't a dotted quad.  Must be a hostname.  
-             */
-            int ret = netsnmp_gethostbyname_v4(source, &network);
-            if (ret < 0) {
-                config_perror("cannot resolve source hostname");
-                return;
-            }
-        }
-    }
-
-    /*
-     * Now work out the mask.  
-     */
-
-    if (strmask == NULL || *strmask == '\0') {
-        /*
-         * No mask was given.  Use 255.255.255.255.  
-         */
-        mask = 0xffffffffL;
-    } else {
-        if (strchr(strmask, '.')) {
-            /*
-             * Try to interpret mask as a dotted quad.  
-             */
-            mask = inet_addr(strmask);
-            if (mask == (in_addr_t) -1 &&
-                strncmp(strmask, "255.255.255.255", 15) != 0) {
-                config_perror("bad mask");
-                return;
-            }
-        } else {
-            /*
-             * Try to interpret mask as a "number of 1 bits".  
-             */
-            int             maskLen = atoi(strmask), maskBit = 0x80000000L;
-            if (maskLen <= 0 || maskLen > 32) {
-                config_perror("bad mask length");
-                return;
-            }
-            while (maskLen--) {
-                mask |= maskBit;
-                maskBit >>= 1;
-            }
-            mask = htonl(mask);
-        }
-    }
-
-    /*
-     * Check that the network and mask are consistent.  
-     */
-
-    if (network & ~mask) {
-        config_perror("source/mask mismatch");
-        return;
-    }
-
-    e = (com2SecEntry *) malloc(sizeof(com2SecEntry));
-    if (e == NULL) {
-        config_perror("memory error");
-        return;
-    }
-
-    /*
-     * Everything is okay.  Copy the parameters to the structure allocated
-     * above and add it to END of the list.  
-     */
-
-    DEBUGMSGTL(("netsnmp_udp_parse_security",
-                "<\"%s\", 0x%08x/0x%08x> => \"%s\"\n", community, network,
-                mask, secName));
-
-    strcpy(e->contextName, contextName);
-    strcpy(e->secName, secName);
-    strcpy(e->community, community);
-    e->network = network;
-    e->mask = mask;
-    e->next = NULL;
-
-    if (com2SecListLast != NULL) {
-        com2SecListLast->next = e;
-        com2SecListLast = e;
-    } else {
-        com2SecListLast = com2SecList = e;
-    }
-}
-
-
-void
-netsnmp_udp_com2SecList_free(void)
-{
-    com2SecEntry   *e = com2SecList;
-    while (e != NULL) {
-        com2SecEntry   *tmp = e;
-        e = e->next;
-        free(tmp);
-    }
-    com2SecList = com2SecListLast = NULL;
-}
-#endif /* support for community based SNMP */
-
-void
-netsnmp_udp_agent_config_tokens_register(void)
-{
-#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
-    register_app_config_handler("com2sec", netsnmp_udp_parse_security,
-                                netsnmp_udp_com2SecList_free,
-                                "[-Cn CONTEXT] secName IPv4-network-address[/netmask] community");
-#endif /* support for community based SNMP */
-}
-
-
-
-/*
- * Return 0 if there are no com2sec entries, or return 1 if there ARE com2sec 
- * entries.  On return, if a com2sec entry matched the passed parameters,
- * then *secName points at the appropriate security name, or is NULL if the
- * parameters did not match any com2sec entry.  
- */
-
-#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
-int
-netsnmp_udp_getSecName(void *opaque, int olength,
-                       const char *community,
-                       size_t community_len, char **secName,
-                       char **contextName)
-{
-    com2SecEntry   *c;
-    netsnmp_udp_addr_pair *addr_pair = (netsnmp_udp_addr_pair *) opaque;
-    struct sockaddr_in *from = (struct sockaddr_in *) &(addr_pair->remote_addr);
-    char           *ztcommunity = NULL;
-
-    if (secName != NULL) {
-        *secName = NULL;  /* Haven't found anything yet */
-    }
-
-    /*
-     * Special case if there are NO entries (as opposed to no MATCHING
-     * entries).  
-     */
-
-    if (com2SecList == NULL) {
-        DEBUGMSGTL(("netsnmp_udp_getSecName", "no com2sec entries\n"));
-        return 0;
-    }
-
-    /*
-     * If there is no IPv4 source address, then there can be no valid security
-     * name.  
-     */
-
-   DEBUGMSGTL(("netsnmp_udp_getSecName", "opaque = %p (len = %d), sizeof = %d, family = %d (%d)\n",
-   opaque, olength, (int)sizeof(netsnmp_udp_addr_pair), from->sin_family, AF_INET));
-    if (opaque == NULL || olength != sizeof(netsnmp_udp_addr_pair) ||
-        from->sin_family != AF_INET) {
-        DEBUGMSGTL(("netsnmp_udp_getSecName",
-		    "no IPv4 source address in PDU?\n"));
-        return 1;
-    }
-
-    DEBUGIF("netsnmp_udp_getSecName") {
-	ztcommunity = (char *)malloc(community_len + 1);
-	if (ztcommunity != NULL) {
-	    memcpy(ztcommunity, community, community_len);
-	    ztcommunity[community_len] = '\0';
-	}
-
-	DEBUGMSGTL(("netsnmp_udp_getSecName", "resolve <\"%s\", 0x%08lx>\n",
-		    ztcommunity ? ztcommunity : "<malloc error>",
-		    (unsigned long)(from->sin_addr.s_addr)));
-    }
-
-    for (c = com2SecList; c != NULL; c = c->next) {
-        DEBUGMSGTL(("netsnmp_udp_getSecName","compare <\"%s\", 0x%08lx/0x%08lx>",
-		    c->community, c->network, c->mask));
-        if ((community_len == strlen(c->community)) &&
-	    (memcmp(community, c->community, community_len) == 0) &&
-            ((from->sin_addr.s_addr & c->mask) == c->network)) {
-            DEBUGMSG(("netsnmp_udp_getSecName", "... SUCCESS\n"));
-            if (secName != NULL) {
-                *secName = c->secName;
-                *contextName = c->contextName;
-            }
-            break;
-        }
-        DEBUGMSG(("netsnmp_udp_getSecName", "... nope\n"));
-    }
-    if (ztcommunity != NULL) {
-        free(ztcommunity);
-    }
-    return 1;
-}
-#endif /* support for community based SNMP */
-
-
-netsnmp_transport *
-netsnmp_udp_create_tstring(const char *str, int local,
-			   const char *default_target)
-{
-    struct sockaddr_in addr;
-
-    if (netsnmp_sockaddr_in2(&addr, str, default_target)) {
-        return netsnmp_udp_transport(&addr, local);
-    } else {
-        return NULL;
-    }
-}
-
-
-netsnmp_transport *
-netsnmp_udp_create_ostring(const u_char * o, size_t o_len, int local)
-{
-    struct sockaddr_in addr;
-
-    if (o_len == 6) {
-        unsigned short porttmp = (o[4] << 8) + o[5];
-        addr.sin_family = AF_INET;
-        memcpy((u_char *) & (addr.sin_addr.s_addr), o, 4);
-        addr.sin_port = htons(porttmp);
-        return netsnmp_udp_transport(&addr, local);
-    }
-    return NULL;
-}
-
-
-void
-netsnmp_udp_ctor(void)
-{
-    udpDomain.name = netsnmpUDPDomain;
-    udpDomain.name_length = netsnmpUDPDomain_len;
-    udpDomain.prefix = (const char**)calloc(2, sizeof(char *));
-    udpDomain.prefix[0] = "udp";
-
-    udpDomain.f_create_from_tstring     = NULL;
-    udpDomain.f_create_from_tstring_new = netsnmp_udp_create_tstring;
-    udpDomain.f_create_from_ostring     = netsnmp_udp_create_ostring;
-
-    netsnmp_tdomain_register(&udpDomain);
-}
diff --git a/snmplib/snmpUDPIPv6Domain.c b/snmplib/snmpUDPIPv6Domain.c
deleted file mode 100644
index a9277d1..0000000
--- a/snmplib/snmpUDPIPv6Domain.c
+++ /dev/null
@@ -1,1418 +0,0 @@
-#include <net-snmp/net-snmp-config.h>
-
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <ctype.h>
-#include <errno.h>
-
-#if HAVE_STRING_H
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-#if HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#if HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-
-#if defined(HAVE_WINSOCK_H)
-    /*
-     *  Windows IPv6 support is part of WinSock2 only
-     */
-#include <winsock2.h>
-#include <ws2tcpip.h>
-
-#ifndef HAVE_INET_PTON
-extern int         inet_pton(int, const char*, void*);
-#endif
-#ifndef HAVE_INET_NTOP
-extern const char *inet_ntop(int, const void*, char*, size_t);
-#endif
-static const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT;
-#endif
-
-#if HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#if HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#if HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#if HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-
-#if HAVE_DMALLOC_H
-#include <dmalloc.h>
-#endif
-
-#if HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY
-#define SS_FAMILY ss_family
-#elif HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY
-#define SS_FAMILY __ss_family
-#endif
-
-#if defined(darwin)
-#include <stdint.h> /* for uint8_t */
-#endif
-
-#include <net-snmp/types.h>
-#include <net-snmp/output_api.h>
-#include <net-snmp/config_api.h>
-
-#include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/snmpUDPIPv6Domain.h>
-
-oid netsnmp_UDPIPv6Domain[] = { TRANSPORT_DOMAIN_UDP_IPV6 };
-static netsnmp_tdomain udp6Domain;
-
-/*
- * from snmpUDPDomain. not static, but not public, either.
- * (ie don't put it in a public header.)
- */
-extern void _netsnmp_udp_sockopt_set(int fd, int server);
-
-/*
- * Return a string representing the address in data, or else the "far end"
- * address if data is NULL.  
- */
-
-static char *
-netsnmp_udp6_fmtaddr(netsnmp_transport *t, void *data, int len)
-{
-    struct sockaddr_in6 *to = NULL;
-
-    DEBUGMSGTL(("netsnmp_udp6", "fmtaddr: t = %p, data = %p, len = %d\n", t,
-                data, len));
-    if (data != NULL && len == sizeof(struct sockaddr_in6)) {
-        to = (struct sockaddr_in6 *) data;
-    } else if (t != NULL && t->data != NULL) {
-        to = (struct sockaddr_in6 *) t->data;
-    }
-    if (to == NULL) {
-        return strdup("UDP/IPv6: unknown");
-    } else {
-        char addr[INET6_ADDRSTRLEN];
-        char tmp[INET6_ADDRSTRLEN + 18];
-
-        sprintf(tmp, "UDP/IPv6: [%s]:%hu",
-                inet_ntop(AF_INET6, (void *) &(to->sin6_addr), addr,
-                          INET6_ADDRSTRLEN), ntohs(to->sin6_port));
-        return strdup(tmp);
-    }
-}
-
-
-
-/*
- * You can write something into opaque that will subsequently get passed back 
- * to your send function if you like.  For instance, you might want to
- * remember where a PDU came from, so that you can send a reply there...  
- */
-
-static int
-netsnmp_udp6_recv(netsnmp_transport *t, void *buf, int size,
-		  void **opaque, int *olength)
-{
-    int             rc = -1;
-    socklen_t       fromlen = sizeof(struct sockaddr_in6);
-    struct sockaddr *from;
-
-    if (t != NULL && t->sock >= 0) {
-        from = (struct sockaddr *) malloc(sizeof(struct sockaddr_in6));
-        if (from == NULL) {
-            *opaque = NULL;
-            *olength = 0;
-            return -1;
-        } else {
-            memset(from, 0, fromlen);
-        }
-
-	while (rc < 0) {
-	  rc = recvfrom(t->sock, buf, size, 0, from, &fromlen);
-	  if (rc < 0 && errno != EINTR) {
-	    break;
-	  }
-	}
-
-        if (rc >= 0) {
-	    char *str = netsnmp_udp6_fmtaddr(NULL, from, fromlen);
-            DEBUGMSGTL(("netsnmp_udp6",
-			"recvfrom fd %d got %d bytes (from %s)\n", t->sock,
-                        rc, str));
-            free(str);
-        } else {
-            DEBUGMSGTL(("netsnmp_udp6", "recvfrom fd %d err %d (\"%s\")\n",
-			t->sock, errno, strerror(errno)));
-        }
-        *opaque = (void *) from;
-        *olength = sizeof(struct sockaddr_in6);
-    }
-    return rc;
-}
-
-
-
-static int
-netsnmp_udp6_send(netsnmp_transport *t, void *buf, int size,
-		  void **opaque, int *olength)
-{
-    int rc = -1;
-    struct sockaddr *to = NULL;
-
-    if (opaque != NULL && *opaque != NULL &&
-        *olength == sizeof(struct sockaddr_in6)) {
-        to = (struct sockaddr *) (*opaque);
-    } else if (t != NULL && t->data != NULL &&
-               t->data_length == sizeof(struct sockaddr_in6)) {
-        to = (struct sockaddr *) (t->data);
-    }
-
-    if (to != NULL && t != NULL && t->sock >= 0) {
-        char *str = netsnmp_udp6_fmtaddr(NULL, (void *)to,
-					    sizeof(struct sockaddr_in6));
-        DEBUGMSGTL(("netsnmp_udp6", "send %d bytes from %p to %s on fd %d\n",
-                    size, buf, str, t->sock));
-        free(str);
-	while (rc < 0) {
-	    rc = sendto(t->sock, buf, size, 0, to,sizeof(struct sockaddr_in6));
-	    if (rc < 0 && errno != EINTR) {
-		break;
-	    }
-	}
-    }
-    return rc;
-}
-
-
-
-static int
-netsnmp_udp6_close(netsnmp_transport *t)
-{
-    int rc = -1;
-    if (t != NULL && t->sock >= 0) {
-        DEBUGMSGTL(("netsnmp_udp6", "close fd %d\n", t->sock));
-#ifndef HAVE_CLOSESOCKET
-        rc = close(t->sock);
-#else
-        rc = closesocket(t->sock);
-#endif
-        t->sock = -1;
-    }
-    return rc;
-}
-
-
-
-/*
- * Open a UDP/IPv6-based transport for SNMP.  Local is TRUE if addr is the
- * local address to bind to (i.e. this is a server-type session); otherwise
- * addr is the remote address to send things to.  
- */
-
-netsnmp_transport *
-netsnmp_udp6_transport(struct sockaddr_in6 *addr, int local)
-{
-    netsnmp_transport *t = NULL;
-    int             rc = 0;
-    char           *str = NULL;
-
-    if (addr == NULL || addr->sin6_family != AF_INET6) {
-        return NULL;
-    }
-
-    t = (netsnmp_transport *) malloc(sizeof(netsnmp_transport));
-    if (t == NULL) {
-        return NULL;
-    }
-
-    str = netsnmp_udp6_fmtaddr(NULL, (void *) addr,
-				  sizeof(struct sockaddr_in6));
-    DEBUGMSGTL(("netsnmp_udp6", "open %s %s\n", local ? "local" : "remote",
-                str));
-    free(str);
-
-    memset(t, 0, sizeof(netsnmp_transport));
-
-    t->domain = netsnmp_UDPIPv6Domain;
-    t->domain_length =
-        sizeof(netsnmp_UDPIPv6Domain) / sizeof(netsnmp_UDPIPv6Domain[0]);
-
-    t->sock = socket(PF_INET6, SOCK_DGRAM, 0);
-    if (t->sock < 0) {
-        netsnmp_transport_free(t);
-        return NULL;
-    }
-
-    _netsnmp_udp_sockopt_set(t->sock, local);
-
-    if (local) {
-        /*
-         * This session is inteneded as a server, so we must bind on to the
-         * given IP address, which may include an interface address, or could
-         * be INADDR_ANY, but certainly includes a port number.
-         */
-
-#ifdef IPV6_V6ONLY
-        /* Try to restrict PF_INET6 socket to IPv6 communications only. */
-        {
-	  int one=1;
-	  if (setsockopt(t->sock, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&one, sizeof(one)) != 0) {
-	    DEBUGMSGTL(("netsnmp_udp6", "couldn't set IPV6_V6ONLY to %d bytes: %s\n", one, strerror(errno)));
-	  } 
-	}
-#endif
-
-        rc = bind(t->sock, (struct sockaddr *) addr,
-		  sizeof(struct sockaddr_in6));
-        if (rc != 0) {
-            netsnmp_udp6_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        t->local = (unsigned char*)malloc(18);
-        if (t->local == NULL) {
-            netsnmp_udp6_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        memcpy(t->local, addr->sin6_addr.s6_addr, 16);
-        t->local[16] = (addr->sin6_port & 0xff00) >> 8;
-        t->local[17] = (addr->sin6_port & 0x00ff) >> 0;
-        t->local_length = 18;
-        t->data = NULL;
-        t->data_length = 0;
-    } else {
-        /*
-         * This is a client session.  Save the address in the
-         * transport-specific data pointer for later use by netsnmp_udp6_send.
-         */
-
-        t->data = malloc(sizeof(struct sockaddr_in6));
-        if (t->data == NULL) {
-            netsnmp_udp6_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        memcpy(t->data, addr, sizeof(struct sockaddr_in6));
-        t->data_length = sizeof(struct sockaddr_in6);
-        t->remote = (unsigned char*)malloc(18);
-        if (t->remote == NULL) {
-            netsnmp_udp6_close(t);
-            netsnmp_transport_free(t);
-            return NULL;
-        }
-        memcpy(t->remote, addr->sin6_addr.s6_addr, 16);
-        t->remote[16] = (addr->sin6_port & 0xff00) >> 8;
-        t->remote[17] = (addr->sin6_port & 0x00ff) >> 0;
-        t->remote_length = 18;
-    }
-
-    /*
-     * 16-bit length field, 8 byte UDP header, 40 byte IPv6 header.  
-     */
-
-    t->msgMaxSize = 0xffff - 8 - 40;
-    t->f_recv     = netsnmp_udp6_recv;
-    t->f_send     = netsnmp_udp6_send;
-    t->f_close    = netsnmp_udp6_close;
-    t->f_accept   = NULL;
-    t->f_fmtaddr  = netsnmp_udp6_fmtaddr;
-
-    return t;
-}
-
-
-/*
- * Not extern but used from here and snmpTCPIPv6Domain.C
- */
-int
-netsnmp_sockaddr_in6_2(struct sockaddr_in6 *addr,
-                       const char *inpeername, const char *default_target)
-{
-    char           *cp = NULL, *peername = NULL;
-    char            debug_addr[INET6_ADDRSTRLEN];
-#if HAVE_GETADDRINFO
-    struct addrinfo *addrs = NULL;
-    int             err;
-#elif HAVE_GETIPNODEBYNAME
-    struct hostent *hp = NULL;
-    int             err;
-#elif HAVE_GETHOSTBYNAME
-    struct hostent *hp = NULL;
-#endif
-    int             portno;
-
-    if (addr == NULL) {
-        return 0;
-    }
-
-    DEBUGMSGTL(("netsnmp_sockaddr_in6",
-		"addr %p, peername \"%s\", default_target \"%s\"\n",
-                addr, inpeername ? inpeername : "[NIL]",
-		default_target ? default_target : "[NIL]"));
-
-    memset(addr, 0, sizeof(struct sockaddr_in6));
-    addr->sin6_family = AF_INET6;
-    addr->sin6_addr = in6addr_any;
-    addr->sin6_port = htons((u_short)SNMP_PORT);
-
-    {
-      int port = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID,
-				    NETSNMP_DS_LIB_DEFAULT_PORT);
-      if (port != 0)
-        addr->sin6_port = htons((u_short)port);
-      else if (default_target != NULL)
-	netsnmp_sockaddr_in6_2(addr, default_target, NULL);
-    }
-
-    if (inpeername != NULL) {
-        /*
-         * Duplicate the peername because we might want to mank around with
-         * it.  
-         */
-
-        peername = strdup(inpeername);
-        if (peername == NULL) {
-            return 0;
-        }
-
-        for (cp = peername; *cp && isdigit((unsigned char) *cp); cp++);
-        portno = atoi(peername);
-        if (!*cp &&  portno != 0) {
-            /*
-             * Okay, it looks like JUST a port number.  
-             */
-            DEBUGMSGTL(("netsnmp_sockaddr_in6", "totally numeric: %d\n",
-                        portno));
-            addr->sin6_port = htons(portno);
-            goto resolved;
-        }
-
-        /*
-         * See if it is an IPv6 address covered with square brackets. Also check
-         * for an appended :port.  
-         */
-        if (*peername == '[') {
-            cp = strchr(peername, ']');
-            if (cp != NULL) {
-	      /*
-	       * See if it is an IPv6 link-local address with interface
-	       * name as <zone_id>, like fe80::1234%eth0.
-	       * Please refer to the internet draft, IPv6 Scoped Address Architecture
-	       * http://www.ietf.org/internet-drafts/draft-ietf-ipngwg-scoping-arch-04.txt
-	       *
-	       */
-	        char *scope_id;
-#ifdef HAVE_IF_NAMETOINDEX
-	        unsigned int if_index = 0;
-#endif
-                *cp = '\0';
-		scope_id = strchr(peername + 1, '%');
-		if (scope_id != NULL) {
-		    *scope_id = '\0';
-#ifdef HAVE_IF_NAMETOINDEX
-		    if_index = if_nametoindex(scope_id + 1);
-#endif
-		}
-                if (*(cp + 1) == ':') {
-                    portno = atoi(cp+2);
-                    if (portno != 0 &&
-                        inet_pton(AF_INET6, peername + 1,
-                                  (void *) &(addr->sin6_addr))) {
-                        DEBUGMSGTL(("netsnmp_sockaddr_in6",
-                                    "IPv6 address with port suffix :%d\n",
-                                    portno));
-                        if (portno > 0 && portno < 0xffff) {
-                            addr->sin6_port = htons(portno);
-                        } else {
-                            DEBUGMSGTL(("netsnmp_sockaddr_in6", "invalid port number: %d", portno));
-                            return 0;
-                        }
-
-#if defined(HAVE_IF_NAMETOINDEX) && defined(HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID)
-                        addr->sin6_scope_id = if_index;
-#endif
-                        goto resolved;
-                    }
-                } else {
-                    if (inet_pton
-                        (AF_INET6, peername + 1,
-                         (void *) &(addr->sin6_addr))) {
-                        DEBUGMSGTL(("netsnmp_sockaddr_in6",
-                                    "IPv6 address with square brackets\n"));
-                        portno = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, 
-				                    NETSNMP_DS_LIB_DEFAULT_PORT);
-                        if (portno <= 0)
-                            portno = SNMP_PORT;
-                        addr->sin6_port = htons(portno);
-#if defined(HAVE_IF_NAMETOINDEX) && defined(HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID)
-                        addr->sin6_scope_id = if_index;
-#endif
-                        goto resolved;
-                    }
-                }
-		if (scope_id != NULL) {
-		  *scope_id = '%';
-		}
-		*cp = ']';
-            }
-        }
-
-        cp = strrchr(peername, ':');
-        if (cp != NULL) {
-	    char *scope_id;
-#ifdef HAVE_IF_NAMETOINDEX
-	    unsigned int if_index = 0;
-#endif
-	    *cp = '\0';
-	    scope_id = strchr(peername + 1, '%');
-	    if (scope_id != NULL) {
-	        *scope_id = '\0';
-#ifdef HAVE_IF_NAMETOINDEX
-	        if_index = if_nametoindex(scope_id + 1);
-#endif
-	    }
-            portno = atoi(cp + 1);
-            if (portno != 0 &&
-                inet_pton(AF_INET6, peername,
-                          (void *) &(addr->sin6_addr))) {
-                DEBUGMSGTL(("netsnmp_sockaddr_in6",
-                            "IPv6 address with port suffix :%d\n",
-                            atoi(cp + 1)));
-                if (portno > 0 && portno < 0xffff) {
-                    addr->sin6_port = htons(portno);
-                } else {
-                    DEBUGMSGTL(("netsnmp_sockaddr_in6", "invalid port number: %d", portno));
-                    return 0;
-                }
-
-#if defined(HAVE_IF_NAMETOINDEX) && defined(HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID)
-                addr->sin6_scope_id = if_index;
-#endif
-                goto resolved;
-            }
-	    if (scope_id != NULL) {
-	      *scope_id = '%';
-	    }
-            *cp = ':';
-        }
-
-        /*
-         * See if it is JUST an IPv6 address.  
-         */
-        if (inet_pton(AF_INET6, peername, (void *) &(addr->sin6_addr))) {
-            DEBUGMSGTL(("netsnmp_sockaddr_in6", "just IPv6 address\n"));
-            goto resolved;
-        }
-
-        /*
-         * Well, it must be a hostname then, possibly with an appended :port.
-         * Sort that out first.  
-         */
-
-        cp = strrchr(peername, ':');
-        if (cp != NULL) {
-            *cp = '\0';
-            portno = atoi(cp + 1);
-            if (portno != 0) {
-                DEBUGMSGTL(("netsnmp_sockaddr_in6",
-                            "hostname(?) with port suffix :%d\n",
-                            portno));
-                if (portno > 0 && portno < 0xffff) {
-                    addr->sin6_port = htons(portno);
-                } else {
-                    DEBUGMSGTL(("netsnmp_sockaddr_in6", "invalid port number: %d", portno));
-                    return 0;
-                }
-
-            } else {
-                /*
-                 * No idea, looks bogus but we might as well pass the full thing to
-                 * the name resolver below.  
-                 */
-                *cp = ':';
-                DEBUGMSGTL(("netsnmp_sockaddr_in6",
-                            "hostname(?) with embedded ':'?\n"));
-            }
-            /*
-             * Fall through.  
-             */
-        }
-
-        if (peername[0] == '\0') {
-          DEBUGMSGTL(("netsnmp_sockaddr_in6", "empty hostname\n"));
-          free(peername);
-          return 0;
-        }
-
-#if HAVE_GETADDRINFO
-        {
-            struct addrinfo hint = { 0 };
-            hint.ai_flags = 0;
-            hint.ai_family = PF_INET6;
-            hint.ai_socktype = SOCK_DGRAM;
-            hint.ai_protocol = 0;
-
-            err = getaddrinfo(peername, NULL, &hint, &addrs);
-        }
-        if (err != 0) {
-#if HAVE_GAI_STRERROR
-            snmp_log(LOG_ERR, "getaddrinfo(\"%s\", NULL, ...): %s\n", peername,
-                     gai_strerror(err));
-#else
-            snmp_log(LOG_ERR, "getaddrinfo(\"%s\", NULL, ...): (error %d)\n",
-                     peername, err);
-#endif
-            free(peername);
-            return 0;
-        }
-        if (addrs != NULL) {
-        DEBUGMSGTL(("netsnmp_sockaddr_in6", "hostname (resolved okay)\n"));
-        memcpy(&addr->sin6_addr,
-               &((struct sockaddr_in6 *) addrs->ai_addr)->sin6_addr,
-               sizeof(struct in6_addr));
-		freeaddrinfo(addrs);
-        }
-		else {
-        DEBUGMSGTL(("netsnmp_sockaddr_in6", "Failed to resolve IPv6 hostname\n"));
-		}
-#elif HAVE_GETIPNODEBYNAME
-        hp = getipnodebyname(peername, AF_INET6, 0, &err);
-        if (hp == NULL) {
-            DEBUGMSGTL(("netsnmp_sockaddr_in6",
-                        "hostname (couldn't resolve = %d)\n", err));
-            free(peername);
-            return 0;
-        }
-        DEBUGMSGTL(("netsnmp_sockaddr_in6", "hostname (resolved okay)\n"));
-        memcpy(&(addr->sin6_addr), hp->h_addr, hp->h_length);
-#elif HAVE_GETHOSTBYNAME
-        hp = gethostbyname(peername);
-        if (hp == NULL) {
-            DEBUGMSGTL(("netsnmp_sockaddr_in6",
-                        "hostname (couldn't resolve)\n"));
-            free(peername);
-            return 0;
-        } else {
-            if (hp->h_addrtype != AF_INET6) {
-                DEBUGMSGTL(("netsnmp_sockaddr_in6",
-                            "hostname (not AF_INET6!)\n"));
-                free(peername);
-                return 0;
-            } else {
-                DEBUGMSGTL(("netsnmp_sockaddr_in6",
-                            "hostname (resolved okay)\n"));
-                memcpy(&(addr->sin6_addr), hp->h_addr, hp->h_length);
-            }
-        }
-#else                           /*HAVE_GETHOSTBYNAME */
-        /*
-         * There is no name resolving function available.  
-         */
-        snmp_log(LOG_ERR,
-                 "no getaddrinfo()/getipnodebyname()/gethostbyname()\n");
-        free(peername);
-        return 0;
-#endif                          /*HAVE_GETHOSTBYNAME */
-    } else {
-        DEBUGMSGTL(("netsnmp_sockaddr_in6", "NULL peername"));
-        return 0;
-    }
-
-  resolved:
-    DEBUGMSGTL(("netsnmp_sockaddr_in6", "return { AF_INET6, [%s]:%hu }\n",
-                inet_ntop(AF_INET6, &addr->sin6_addr, debug_addr,
-                          sizeof(debug_addr)), ntohs(addr->sin6_port)));
-    free(peername);
-    return 1;
-}
-
-
-int
-netsnmp_sockaddr_in6(struct sockaddr_in6 *addr,
-                     const char *inpeername, int remote_port)
-{
-    char buf[sizeof(remote_port) * 3 + 2];
-    sprintf(buf, ":%u", remote_port);
-    return netsnmp_sockaddr_in6_2(addr, inpeername, remote_port ? buf : NULL);
-}
-
-/*
- * int
- * inet_make_mask_addr( int pf, void *dst, int masklength )
- *      convert from bit length specified masklength to network format, 
- *      which fills 1 from until specified bit length.
- *      dst is usally the structer of sockaddr_in or sockaddr_in6. 
- *      makelength must be an interger from 0 to 32 if pf is PF_INET,
- *      or from 0 to 128 if pf is PF_INET6.
- * return:
- *      0 if the input data, masklength was valid for 
- *      the specified protocol family.
- *      -1 if the the input data wasn't valid.
- */
-
-int
-inet_make_mask_addr(int pf, void *dst, int masklength)
-{
-
-    unsigned long   Mask = 0;
-    int             maskBit = 0x80000000L;
-    unsigned char   mask = 0;
-    unsigned char   maskbit = 0x80L;
-    int             i, j, jj;
-
-
-    switch (pf) {
-    case PF_INET:
-        if (masklength < 0 || masklength > 32)
-            return -1;
-
-        ((struct in_addr *) dst)->s_addr = 0;
-
-        while (masklength--) {
-            Mask |= maskBit;
-            maskBit >>= 1;
-        }
-        ((struct in_addr *) dst)->s_addr = htonl(Mask);
-        break;
-
-    case PF_INET6:
-        if (masklength < 0 || masklength > 128)
-            return -1;
-
-
-        for (i = 0; i < 16; i++) {
-            (*(u_char *) (&((struct in6_addr *) dst)->s6_addr[i])) = 0x00;
-        }
-
-        j = (int) masklength / 8;
-        jj = masklength % 8;
-
-        for (i = 0; i < j; i++) {
-            (*(u_char *) (&((struct in6_addr *) dst)->s6_addr[i])) = 0xff;
-        }
-        while (jj--) {
-            mask |= maskbit;
-            maskbit >>= 1;
-        }
-
-	if (j < sizeof (((struct in6_addr *) dst)->s6_addr)){
-	    (*(u_char *) (&((struct in6_addr *) dst)->s6_addr[j])) = mask;
-	}
-
-        break;
-    default:
-        return -1;              /* unsupported protocol family */
-    }
-    return 0;
-}
-
-/*
- * int
- * inet_addr_complement( int pf, void *src, void *dst )
- *      convert from src to dst, which all bits 
- *      are bit-compliment of src.
- *      Src, dst are ususally sockaddr_in or sockaddr_in6.  
- * return:
- *      0 if the input data src and dst have the same size
- *      -1 if the the input data wasn't valid.
- */
-
-int
-inet_addr_complement(int pf, void *src, void *dst)
-{
-
-    int             i;
-
-    if (sizeof(src) != sizeof(dst))
-        return -1;
-
-    switch (pf) {
-    case PF_INET:
-        ((struct in_addr *) dst)->s_addr =
-            ~((struct in_addr *) src)->s_addr;
-        break;
-    case PF_INET6:
-        for (i = 0; i < 16; i++) {
-            (*(u_char *) (&((struct in6_addr *) dst)->s6_addr[i])) =
-                (~(*(u_char *) (&((struct in6_addr *) src)->s6_addr[i])))
-                & 0xff;
-        }
-        break;
-    default:
-        return -1;
-    }
-    return 0;
-}
-
-/*
- * int
- * inet_addr_and( int pf, void *src1, void *src2, void *dst) 
- *      take AND operation on src1 and src2, and output the result to dst.
- *      Src1, src2, and dst are ususally sockaddr_in or sockaddr_in6.  
- * return:
- *      0 if the input data src and dst have the same size
- *      -1 if the the input data are not the same size
- */
-
-int
-inet_addr_and(int pf, void *src1, void *src2, void *dst)
-{
-    int             i;
-
-    if (sizeof(src1) != sizeof(src2) || sizeof(src2) != sizeof(dst))
-        return -1;
-
-    switch (pf) {
-    case PF_INET:
-        ((struct in_addr *) dst)->s_addr =
-            ((struct in_addr *) src1)->s_addr & ((struct in_addr *) src2)->
-            s_addr;
-        break;
-
-    case PF_INET6:
-        for (i = 0; i < 16; i++) {
-            (*(u_char *) (&((struct in6_addr *) dst)->s6_addr[i])) =
-                (*(u_char *) (&((struct in6_addr *) src1)->s6_addr[i])) &
-                (*(u_char *) (&((struct in6_addr *) src2)->s6_addr[i]));
-        }
-        break;
-    default:
-        return -1;
-    }
-    return 0;
-}
-
-
-/*
- * int
- * inet_addrs_consistence (int pf, void *net, void *mask ) 
- *      This function checks if the network address net is consistent
- *      with the netmask address, mask.
- *      Net and mask are ususally sockaddr_in or sockaddr_in6.  
- * Note:
- *      Must spefiey protocol family in pf.
- * return:
- *      0 if there is no consistence with address "net" and "mask".
- *      -1 if network address is inconsistent with netmask address, for 
- *      instance, network address is 192.168.0.128 in spite of netmask, 
- *      which is 255.255.255.0. 
- *      The case that the size of net and mask are different also returns -1.
- */
-
-int
-inet_addrs_consistence(int pf, void *net, void *mask)
-{
-    struct sockaddr_in *tmp, *dst;
-    struct sockaddr_in6 *tmp6, *dst6;
-    int             ret;
-
-    switch (pf) {
-    case PF_INET:
-        tmp = (struct sockaddr_in *) malloc(sizeof(struct sockaddr_in));
-        if (!tmp) {
-            config_perror("Resource failure in inet_addr_consistence()");
-            return -1;
-        }
-        memset(tmp, 0, sizeof(*tmp));
-        tmp->sin_family = PF_INET;
-        if (inet_addr_complement
-            (PF_INET, (struct in_addr *) mask, &tmp->sin_addr) != 0) {
-            config_perror("Fail in function of inet_addr_complement()");
-            free(tmp);
-            return -1;
-        }
-        dst = (struct sockaddr_in *) malloc(sizeof(struct sockaddr_in));
-        if (!dst) {
-            config_perror("Resource failure in inet_addr_consistence()");
-            free(tmp);
-            return -1;
-        }
-        memset(dst, 0, sizeof(*dst));
-        dst->sin_family = PF_INET;
-        if (inet_addr_and
-            (PF_INET, (struct in_addr *) net, &tmp->sin_addr,
-             &dst->sin_addr) != 0) {
-            config_perror("Fail in function of inet_addr_and()");
-            free(dst);
-            free(tmp);
-            return -1;
-        }
-        ret = ((dst->sin_addr.s_addr == INADDR_ANY) ? 0 : -1);
-        free(dst);
-        free(tmp);
-        break;
-    case PF_INET6:
-        tmp6 = (struct sockaddr_in6 *) malloc(sizeof(struct sockaddr_in6));
-        if (!tmp6) {
-            config_perror("Resource failure in inet_addr_consistence()");
-            return -1;
-        }
-        memset(tmp6, 0, sizeof(*tmp6));
-        tmp6->sin6_family = PF_INET6;
-        if (inet_addr_complement
-            (PF_INET6, (struct in6_addr *) mask, &tmp6->sin6_addr) != 0) {
-            config_perror("Fail in function of inet_addr_complement()");
-            free(tmp6);
-            return -1;
-        }
-        dst6 = (struct sockaddr_in6 *) malloc(sizeof(struct sockaddr_in6));
-        if (!dst6) {
-            config_perror("Resource failure in inet_addr_consistence()");
-            free(tmp6);
-            return -1;
-        }
-        memset(dst6, 0, sizeof(*dst6));
-        dst6->sin6_family = PF_INET6;
-        if (inet_addr_and
-            (PF_INET6, (struct in6_addr *) net, &tmp6->sin6_addr,
-             &dst6->sin6_addr)) {
-            config_perror("Fail in function of inet_addr_and()");
-            free(dst6);
-            free(tmp6);
-            return -1;
-        }
-        ret = (IN6_IS_ADDR_UNSPECIFIED(&dst6->sin6_addr) == 1 ? 0 : -1);
-        free(dst6);
-        free(tmp6);
-        break;
-    default:
-        return -1;
-    }
-    return ret;
-}
-
-/*
- * int
- * masked_address_are_equal (pf, from, mask, network) 
- *      This function takes AND operation on address "from" and "mask",
- *      and check the result is equal to address "network". 
- *      From, net and mask are ususally sockaddr_in or sockaddr_in6.  
- * Note:
- *      Must spefiey protocol family in pf.
- * return:
- *      0 if address "from" masked by address "mask" is eqaul to 
- *      address "network". 
- *      -1 if address "from" masked by address "mask" isn't eqaul to 
- *      address "network". For instance, address "from" is 
- *       192.168.0.129 and "mask" is 255.255.255.128. Then, masked 
- *      address is 192.168.0.128. If address "network" is 192.168.0.128,
- *      return 0, otherwise -1.
- *      Also retunn -1 if each address family of from, mask, network
- *      isn't the same.
- */
-
-int
-masked_address_are_equal(int af, struct sockaddr_storage *from,
-                         struct sockaddr_storage *mask,
-                         struct sockaddr_storage *network)
-{
-
-    struct sockaddr_storage ss;
-    memset(&ss, 0, sizeof(ss));
-
-    switch (af) {
-    case PF_INET:
-        if (mask->SS_FAMILY != PF_INET || network->SS_FAMILY != PF_INET) {
-            return -1;
-        }
-        ss.SS_FAMILY = PF_INET;
-        inet_addr_and(PF_INET,
-                      &((struct sockaddr_in *) from)->sin_addr,
-                      &((struct sockaddr_in *) mask)->sin_addr,
-                      &((struct sockaddr_in *) &ss)->sin_addr);
-        if (((struct sockaddr_in *) &ss)->sin_addr.s_addr ==
-            ((struct sockaddr_in *) network)->sin_addr.s_addr) {
-            return 0;
-        } else {
-            return -1;
-        }
-        break;
-    case PF_INET6:
-        if (mask->SS_FAMILY != PF_INET6 || network->SS_FAMILY != PF_INET6) {
-            return -1;
-        }
-        ss.SS_FAMILY = PF_INET6;
-        inet_addr_and(PF_INET6,
-                      &((struct sockaddr_in6 *) from)->sin6_addr,
-                      &((struct sockaddr_in6 *) mask)->sin6_addr,
-                      &((struct sockaddr_in6 *) &ss)->sin6_addr);
-#ifndef IN6_ARE_ADDR_EQUAL
-#define IN6_ARE_ADDR_EQUAL(a,b) IN6_ADDR_EQUAL(a,b)
-#endif
-        if (IN6_ARE_ADDR_EQUAL(&((struct sockaddr_in6 *) &ss)->sin6_addr,
-                               &((struct sockaddr_in6 *) network)->
-                               sin6_addr) == 1) {
-            return 0;
-        } else {
-            return -1;
-        }
-        break;
-    default:
-        return -1;
-    }
-}
-
-#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
-/*
- * The following functions provide the "com2sec6" configuration token
- * functionality for compatibility.  
- */
-
-#define EXAMPLE_NETWORK       "NETWORK"
-#define EXAMPLE_COMMUNITY     "COMMUNITY"
-
-typedef struct _com2Sec6Entry {
-    char            community[COMMUNITY_MAX_LEN];
-    struct sockaddr_in6 network;
-    struct sockaddr_in6 mask;
-    char            secName[VACMSTRINGLEN];
-    char            contextName[VACMSTRINGLEN];
-    struct _com2Sec6Entry *next;
-} com2Sec6Entry;
-
-com2Sec6Entry  *com2Sec6List = NULL, *com2Sec6ListLast = NULL;
-
-
-void
-memmove_com2Sec6Entry(com2Sec6Entry * c,
-                      char *secName,
-                      char *community,
-                      struct sockaddr_in6 net, struct sockaddr_in6 mask,
-                      char *contextName)
-{
-    snprintf(c->secName, strlen(secName) + 1, "%s", secName);
-    snprintf(c->contextName, strlen(contextName) + 1, "%s", contextName);
-    snprintf(c->community, strlen(community) + 1, "%s", community);
-    memmove(&c->network, &net, sizeof(net));
-    memmove(&c->mask, &mask, sizeof(mask));
-    c->next = NULL;
-}
-
-
-#ifndef IPV6_STRING_LEN
-#define IPV6_STRING_LEN 55
-#endif
-
-void
-netsnmp_udp6_parse_security(const char *token, char *param)
-{
-    char            secName[VACMSTRINGLEN];
-    char            contextName[VACMSTRINGLEN];
-    char            community[COMMUNITY_MAX_LEN];
-    char            source[IPV6_STRING_LEN];
-    char           *cp = NULL, *strnetwork = NULL, *strmask = NULL;
-    com2Sec6Entry  *e = NULL;
-    struct sockaddr_in6 net, mask;
-    struct sockaddr_in tmp;
-
-    memset(&net, 0, sizeof(net));
-    memset(&mask, 0, sizeof(mask));
-    memset(&tmp, 0, sizeof(tmp));
-    net.sin6_family = AF_INET6;
-    mask.sin6_family = AF_INET6;
-    tmp.sin_family = AF_INET;
-
-
-    /*
-     * Get security, source address/netmask and community strings.  
-     */
-    cp = copy_nword( param, secName, sizeof(secName));
-    if (strcmp(secName, "-Cn") == 0) {
-        if (!cp) {
-            config_perror("missing CONTEXT_NAME parameter");
-            return;
-        }
-        cp = copy_nword( cp, contextName, sizeof(contextName));
-        cp = copy_nword( cp, secName, sizeof(secName));
-    } else {
-        contextName[0] = '\0';
-    }
-    if (secName[0] == '\0') {
-        config_perror("missing NAME parameter");
-        return;
-    } else if (strlen(secName) > (VACMSTRINGLEN - 1)) {
-        config_perror("security name too long");
-        return;
-    }
-    cp = copy_nword( cp, source, sizeof(source));
-    if (source[0] == '\0') {
-        config_perror("missing SOURCE parameter");
-        return;
-    } else if (strncmp(source, EXAMPLE_NETWORK, strlen(EXAMPLE_NETWORK)) ==
-               0) {
-        config_perror("example config NETWORK not properly configured");
-        return;
-    }
-    cp = copy_nword( cp, community, sizeof(community));
-    if (community[0] == '\0') {
-        config_perror("missing COMMUNITY parameter\n");
-        return;
-    } else
-        if (strncmp
-            (community, EXAMPLE_COMMUNITY, strlen(EXAMPLE_COMMUNITY))
-            == 0) {
-        config_perror("example config COMMUNITY not properly configured");
-        return;
-    } else if (strlen(community) > (COMMUNITY_MAX_LEN - 1)) {
-        config_perror("community name too long");
-        return;
-    }
-
-    /*
-     * Process the source address/netmask string.  
-     */
-    cp = strchr(source, '/');
-    if (cp != NULL) {
-        /*
-         * Mask given.  
-         */
-        *cp = '\0';
-        strmask = cp + 1;
-    }
-
-    /*
-     * Deal with the network part first.  
-     */
-    if ((strcmp(source, "default") == 0) || (strcmp(source, "::") == 0)) {
-        if ((strnetwork = strdup("0::0")) != NULL)
-	{
-	    if ((strmask = strdup("0::0")) != NULL)
-	    {
-	
-		inet_pton(AF_INET6, strnetwork, &net.sin6_addr);
-		inet_pton(AF_INET6, strmask, &mask.sin6_addr);
-		
-		e = (com2Sec6Entry *) malloc(sizeof(com2Sec6Entry));
-		if (e != NULL) {
-		    memmove_com2Sec6Entry(e, secName, community, net, mask, contextName);
-		    if (com2Sec6ListLast != NULL) {
-			com2Sec6ListLast->next = e;
-			com2Sec6ListLast = e;
-		    } else {
-			com2Sec6ListLast = com2Sec6List = e;
-		    }
-		}
-		else {
-		    config_perror ("memory error");
-		}
-		free (strmask);
-	    }
-	    else {
-		DEBUGMSGTL(("netsnmp_udp6_parse_security",
-			    "Couldn't allocate enough memory\n"));
-	    }
-	    free (strnetwork);
-	}
-	else {
-	    DEBUGMSGTL(("netsnmp_udp6_parse_security",
-			"Couldn't allocate enough memory\n"));
-	}
-    } else {
-        /*
-         * Try interpreting as IPv6 address.  
-         */
-        if (inet_pton(AF_INET6, source, &net.sin6_addr) == 1) {
-            if (strmask == NULL || *strmask == '\0') {
-                inet_make_mask_addr(PF_INET6, &mask.sin6_addr, 128);
-            } else {
-                if (strchr(strmask, ':')) {
-                    if (inet_pton(PF_INET6, strmask, &net.sin6_addr) != 1) {
-                        config_perror("bad mask");
-                        return;
-                    }
-                } else {
-                    if (inet_make_mask_addr
-                        (PF_INET6, &mask.sin6_addr, atoi(strmask)) != 0) {
-                        config_perror("bad mask");
-                        return;
-
-                    }
-                }
-            }
-            /*
-             * Check that the network and mask are consistent.  
-             */
-            if (inet_addrs_consistence
-                (PF_INET6, &net.sin6_addr, &mask.sin6_addr) != 0) {
-                config_perror("source/mask mismatch");
-                return;
-            }
-
-            e = (com2Sec6Entry *) malloc(sizeof(com2Sec6Entry));
-            if (e == NULL) {
-                config_perror("memory error");
-                return;
-            }
-
-            /*
-             * Everything is okay.  Copy the parameters to the structure allocated
-             * above and add it to END of the list.  
-             */
-            if (strmask != NULL && strnetwork != NULL) {
-                DEBUGMSGTL(("netsnmp_udp6_parse_security",
-                            "<\"%s\", %s/%s> => \"%s\"\n", community,
-                            strnetwork, strmask, secName));
-                free(strmask);
-                free(strnetwork);
-            } else {
-                DEBUGMSGTL(("netsnmp_udp6_parse_security",
-                            "Couldn't allocate enough memory\n"));
-            }
-            memmove_com2Sec6Entry(e, secName, community, net, mask,
-                                  contextName);
-            if (com2Sec6ListLast != NULL) {
-                com2Sec6ListLast->next = e;
-                com2Sec6ListLast = e;
-            } else {
-                com2Sec6ListLast = com2Sec6List = e;
-            }
-
-#if HAVE_GETADDRINFO
-
-        } else {
-            /*
-             * Nope, Must be a hostname.  
-             */
-            struct addrinfo hints, *ai, *res;
-            char            hbuf[NI_MAXHOST];
-            int             gai_error;
-
-            memset(&hints, 0, sizeof(hints));
-            hints.ai_family = PF_INET6;
-            hints.ai_socktype = SOCK_DGRAM;
-            if ((gai_error = getaddrinfo(source, NULL, &hints, &res)) != 0) {
-                config_perror(gai_strerror(gai_error));
-                return;
-            }
-
-            for (ai = res; ai != NULL; ai = ai->ai_next) {
-                if (getnameinfo
-                    (ai->ai_addr, ai->ai_addrlen, hbuf, sizeof(hbuf), NULL,
-                     0, NI_NUMERICHOST)) {
-                    config_perror("getnameinfo failed");
-                }
-                memmove(&net, ai->ai_addr, sizeof(struct sockaddr_in6));
-                inet_make_mask_addr(PF_INET6, &mask.sin6_addr, 128);
-
-                e = (com2Sec6Entry *) malloc(sizeof(com2Sec6Entry));
-                if (e == NULL) {
-                    config_perror("memory error");
-                    return;
-                }
-
-                /*
-                 * Everything is okay.  Copy the parameters to the structure allocated
-                 * above and add it to END of the list.  
-                 */
-                DEBUGMSGTL(("netsnmp_udp6_parse_security",
-                            "<\"%s\", %s> => \"%s\"\n", community, hbuf,
-                            secName));
-                memmove_com2Sec6Entry(e, secName, community, net, mask,
-                                      contextName);
-                if (com2Sec6ListLast != NULL) {
-                    com2Sec6ListLast->next = e;
-                    com2Sec6ListLast = e;
-                } else {
-                    com2Sec6ListLast = com2Sec6List = e;
-                }
-            }
-            if (res != NULL)
-                freeaddrinfo(res);
-
-#endif /* HAVE_GETADDRINFO */
-
-        }
-        /*
-         * free(strnetwork); 
-         */
-    }
-}
-
-void
-netsnmp_udp6_com2Sec6List_free(void)
-{
-    com2Sec6Entry  *e = com2Sec6List;
-    while (e != NULL) {
-        com2Sec6Entry  *tmp = e;
-        e = e->next;
-        free(tmp);
-    }
-    com2Sec6List = com2Sec6ListLast = NULL;
-}
-
-#endif /* support for community based SNMP */
-
-void
-netsnmp_udp6_agent_config_tokens_register(void)
-{
-#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
-    register_app_config_handler("com2sec6", netsnmp_udp6_parse_security,
-                                netsnmp_udp6_com2Sec6List_free,
-                                "[-Cn CONTEXT] secName IPv6-network-address[/netmask] community");
-#endif /* support for community based SNMP */
-}
-
-
-
-#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
-/*
- * Return 0 if there are no com2sec entries, or return 1 if there ARE com2sec 
- * entries.  On return, if a com2sec entry matched the passed parameters,
- * then *secName points at the appropriate security name, or is NULL if the
- * parameters did not match any com2sec entry.  
- */
-
-int
-netsnmp_udp6_getSecName(void *opaque, int olength,
-                        const char *community,
-                        int community_len, char **secName, char **contextName)
-{
-    com2Sec6Entry  *c;
-    struct sockaddr_in6 *from = (struct sockaddr_in6 *) opaque;
-    char           *ztcommunity = NULL;
-    char            str6[INET6_ADDRSTRLEN];
-
-    if (secName != NULL) {
-        *secName = NULL;  /* Haven't found anything yet */
-    }
-
-    /*
-     * Special case if there are NO entries (as opposed to no MATCHING
-     * entries).  
-     */
-
-    if (com2Sec6List == NULL) {
-        DEBUGMSGTL(("netsnmp_udp6_getSecName", "no com2sec entries\n"));
-        return 0;
-    }
-
-    /*
-     * If there is no IPv6 source address, 
-     * then there can be no valid security name.  
-     */
-
-    if (opaque == NULL || olength != sizeof(struct sockaddr_in6)
-        || from->sin6_family != PF_INET6) {
-        DEBUGMSGTL(("netsnmp_udp6_getSecName",
-                    "no IPv6 source address in PDU?\n"));
-        return 1;
-    }
-
-    ztcommunity = (char *) malloc(community_len + 1);
-    if (ztcommunity != NULL) {
-        memcpy(ztcommunity, community, community_len);
-        ztcommunity[community_len] = '\0';
-    }
-
-    inet_ntop(AF_INET6, &from->sin6_addr, str6, sizeof(str6));
-    DEBUGMSGTL(("netsnmp_udp6_getSecName", "resolve <\"%s\", %s>\n",
-                ztcommunity ? ztcommunity : "<malloc error>", str6));
-
-    for (c = com2Sec6List; c != NULL; c = c->next) {
-	char str_net[INET6_ADDRSTRLEN], str_mask[INET6_ADDRSTRLEN];
-        DEBUGMSGTL(("netsnmp_udp6_getSecName",
-                    "compare <\"%s\", %s/%s>", c->community,
-                    inet_ntop(AF_INET6, &c->network.sin6_addr, str_net, sizeof str_net),
-		    inet_ntop(AF_INET6, &c->mask.sin6_addr, str_mask, sizeof str_mask)));
-
-        if ((community_len == (int)strlen(c->community)) &&
-            (memcmp(community, c->community, community_len) == 0) &&
-            (masked_address_are_equal(from->sin6_family,
-                                      (struct sockaddr_storage *) from,
-                                      (struct sockaddr_storage *) &c->mask,
-                                      (struct sockaddr_storage *) &c->network)
-					== 0)) {
-            DEBUGMSG(("netsnmp_udp6_getSecName", "... SUCCESS\n"));
-            if (secName != NULL) {
-                *secName = c->secName;
-                *contextName = c->contextName;
-            }
-            break;
-        }
-        DEBUGMSG(("netsnmp_udp6_getSecName", "... nope\n"));
-    }
-    if (ztcommunity != NULL) {
-        free(ztcommunity);
-    }
-    return 1;
-}
-#endif /* support for community based SNMP */
-
-netsnmp_transport *
-netsnmp_udp6_create_tstring(const char *str, int local,
-			    const char *default_target)
-{
-    struct sockaddr_in6 addr;
-
-    if (netsnmp_sockaddr_in6_2(&addr, str, default_target)) {
-        return netsnmp_udp6_transport(&addr, local);
-    } else {
-        return NULL;
-    }
-}
-
-
-/*
- * See:
- * 
- * http://www.ietf.org/internet-drafts/draft-ietf-ops-taddress-mib-01.txt
- * 
- * (or newer equivalent) for details of the TC which we are using for
- * the mapping here.  
- */
-
-netsnmp_transport *
-netsnmp_udp6_create_ostring(const u_char * o, size_t o_len, int local)
-{
-    struct sockaddr_in6 addr;
-
-    if (o_len == 18) {
-        memset((u_char *) & addr, 0, sizeof(struct sockaddr_in6));
-        addr.sin6_family = AF_INET6;
-        memcpy((u_char *) & (addr.sin6_addr.s6_addr), o, 16);
-        addr.sin6_port = (o[16] << 8) + o[17];
-        return netsnmp_udp6_transport(&addr, local);
-    }
-    return NULL;
-}
-
-
-void
-netsnmp_udp6_ctor(void)
-{
-    udp6Domain.name = netsnmp_UDPIPv6Domain;
-    udp6Domain.name_length = sizeof(netsnmp_UDPIPv6Domain) / sizeof(oid);
-    udp6Domain.f_create_from_tstring     = NULL;
-    udp6Domain.f_create_from_tstring_new = netsnmp_udp6_create_tstring;
-    udp6Domain.f_create_from_ostring     = netsnmp_udp6_create_ostring;
-    udp6Domain.prefix = (const char**)calloc(5, sizeof(char *));
-    udp6Domain.prefix[0] = "udp6";
-    udp6Domain.prefix[1] = "ipv6";
-    udp6Domain.prefix[2] = "udpv6";
-    udp6Domain.prefix[3] = "udpipv6";
-
-    netsnmp_tdomain_register(&udp6Domain);
-}
-
-#else
-
-#ifdef NETSNMP_DLL
-/* need this hook for win32 MSVC++ DLL build */
-void
-netsnmp_udp6_agent_config_tokens_register(void)
-{ }
-#endif
-
-#endif /* NETSNMP_TRANSPORT_UDPIPV6_DOMAIN */
-
diff --git a/snmplib/snmp_alarm.c b/snmplib/snmp_alarm.c
index 5d37d6f..74628be 100644
--- a/snmplib/snmp_alarm.c
+++ b/snmplib/snmp_alarm.c
@@ -34,11 +34,7 @@
 #endif
 
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -47,9 +43,6 @@
 #  include <time.h>
 # endif
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
@@ -89,23 +82,22 @@
 void
 sa_update_entry(struct snmp_alarm *a)
 {
-    if (a->t_last.tv_sec == 0 && a->t_last.tv_usec == 0) {
+    if (!timerisset(&a->t_last)) {
         struct timeval  t_now;
         /*
          * Never been called yet, call time `t' from now.  
          */
         gettimeofday(&t_now, NULL);
 
-        a->t_last.tv_sec = t_now.tv_sec;
-        a->t_last.tv_usec = t_now.tv_usec;
+        a->t_last = t_now;
 
         NETSNMP_TIMERADD(&t_now, &a->t, &a->t_next);
-    } else if (a->t_next.tv_sec == 0 && a->t_next.tv_usec == 0) {
+    } else if (!timerisset(&a->t_next)) {
         /*
          * We've been called but not reset for the next call.  
          */
         if (a->flags & SA_REPEAT) {
-            if (a->t.tv_sec == 0 && a->t.tv_usec == 0) {
+            if (!timerisset(&a->t)) {
                 DEBUGMSGTL(("snmp_alarm",
                             "update_entry: illegal interval specified\n"));
                 snmp_alarm_unregister(a->clientreg);
@@ -190,27 +182,21 @@
     gettimeofday(&t_now, NULL);
 
     for (a = thealarms; a != NULL; a = a->next) {
-        /* check for time delta skew */
-        if ((a->t_next.tv_sec - t_now.tv_sec) > a->t.tv_sec)
-        {
-            DEBUGMSGTL(("time_skew", "Time delta too big (%ld seconds), should be %ld seconds - fixing\n",
-		(long)(a->t_next.tv_sec - t_now.tv_sec), (long)a->t.tv_sec));
-            a->t_next.tv_sec = t_now.tv_sec + a->t.tv_sec;
-            a->t_next.tv_usec = t_now.tv_usec + a->t.tv_usec;
-        }
-        if (lowest == NULL) {
-            lowest = a;
-        } else if (a->t_next.tv_sec == lowest->t_next.tv_sec) {
-            if (a->t_next.tv_usec < lowest->t_next.tv_usec) {
-                lowest = a;
+        if (!(a->flags & SA_FIRED)) {
+            /* check for time delta skew */
+            if ((a->t_next.tv_sec - t_now.tv_sec) > a->t.tv_sec) {
+                DEBUGMSGTL(("time_skew", "Time delta too big (%ld seconds), should be %ld seconds - fixing\n",
+		    (long)(a->t_next.tv_sec - t_now.tv_sec), (long)a->t.tv_sec));
+                NETSNMP_TIMERADD(&t_now, &a->t, &a->t_next);
             }
-        } else if (a->t_next.tv_sec < lowest->t_next.tv_sec) {
-            lowest = a;
-        }
+            if (lowest == NULL || timercmp(&a->t_next, &lowest->t_next, <))
+                lowest = a;
+       }
     }
     return lowest;
 }
 
+NETSNMP_IMPORT struct snmp_alarm *sa_find_specific(unsigned int clientreg);
 struct snmp_alarm *
 sa_find_specific(unsigned int clientreg)
 {
@@ -245,15 +231,15 @@
 
         if (timercmp(&a->t_next, &t_now, <)) {
             clientreg = a->clientreg;
+            a->flags |= SA_FIRED;
             DEBUGMSGTL(("snmp_alarm", "run alarm %d\n", clientreg));
             (*(a->thecallback)) (clientreg, a->clientarg);
             DEBUGMSGTL(("snmp_alarm", "alarm %d completed\n", clientreg));
 
             if ((a = sa_find_specific(clientreg)) != NULL) {
-                a->t_last.tv_sec = t_now.tv_sec;
-                a->t_last.tv_usec = t_now.tv_usec;
-                a->t_next.tv_sec = 0;
-                a->t_next.tv_usec = 0;
+                a->t_last = t_now;
+                timerclear(&a->t_next);
+                a->flags &= ~SA_FIRED;
                 sa_update_entry(a);
             } else {
                 DEBUGMSGTL(("snmp_alarm", "alarm %d deleted itself\n",
@@ -276,39 +262,56 @@
 
 
 
+/**
+ * Look up the time at which the next alarm will fire.
+ *
+ * @param[out] alarm_tm Time at which the next alarm will fire.
+ * @param[in] now Earliest time that should be written into *alarm_tm.
+ *
+ * @return Zero if no alarms are scheduled; non-zero 'clientreg' value
+ *   identifying the first alarm that will fire if one or more alarms are
+ *   scheduled.
+ */
 int
-get_next_alarm_delay_time(struct timeval *delta)
+netsnmp_get_next_alarm_time(struct timeval *alarm_tm, const struct timeval *now)
 {
     struct snmp_alarm *sa_ptr;
-    struct timeval  t_now;
 
     sa_ptr = sa_find_next();
 
     if (sa_ptr) {
-        gettimeofday(&t_now, NULL);
-
-        if (timercmp(&t_now, &sa_ptr->t_next, >)) {
-            /*
-             * Time has already passed.  Return the smallest possible amount of
-             * time.  
-             */
-            delta->tv_sec = 0;
-            delta->tv_usec = 1;
-            return sa_ptr->clientreg;
-        } else {
-            /*
-             * Time is still in the future.  
-             */
-            NETSNMP_TIMERSUB(&sa_ptr->t_next, &t_now, delta);
-
-            return sa_ptr->clientreg;
-        }
+        netsnmp_assert(alarm_tm);
+        netsnmp_assert(timerisset(&sa_ptr->t_next));
+        if (timercmp(&sa_ptr->t_next, now, >))
+            *alarm_tm = sa_ptr->t_next;
+        else
+            *alarm_tm = *now;
+        return sa_ptr->clientreg;
+    } else {
+        return 0;
     }
+}
 
-    /*
-     * Nothing Left.  
-     */
-    return 0;
+/**
+ * Get the time until the next alarm will fire.
+ *
+ * @param[out] delta Time until the next alarm.
+ *
+ * @return Zero if no alarms are scheduled; non-zero 'clientreg' value
+ *   identifying the first alarm that will fire if one or more alarms are
+ *   scheduled.
+ */
+int
+get_next_alarm_delay_time(struct timeval *delta)
+{
+    struct timeval t_now, alarm_tm;
+    int res;
+
+    gettimeofday(&t_now, NULL);
+    res = netsnmp_get_next_alarm_time(&alarm_tm, &t_now);
+    if (res)
+        NETSNMP_TIMERSUB(&alarm_tm, &t_now, delta);
+    return res;
 }
 
 
@@ -330,10 +333,8 @@
 # ifdef HAVE_SETITIMER
         struct itimerval it;
 
-        it.it_value.tv_sec = delta.tv_sec;
-        it.it_value.tv_usec = delta.tv_usec;
-        it.it_interval.tv_sec = 0;
-        it.it_interval.tv_usec = 0;
+        it.it_value = delta;
+        timerclear(&it.it_interval);
 
         signal(SIGALRM, alarm_handler);
         setitimer(ITIMER_REAL, &it, NULL);
@@ -375,7 +376,7 @@
  *
  * @param clientarg is a void pointer used by the callback function.  This 
  *	pointer is assigned to snmp_alarm->clientarg and passed into the
- *	callback function for the client's specifc needs.
+ *	callback function for the client's specific needs.
  *
  * @return Returns a unique unsigned integer(which is also passed as the first 
  *	argument of each callback), which can then be used to remove the
@@ -391,40 +392,17 @@
 snmp_alarm_register(unsigned int when, unsigned int flags,
                     SNMPAlarmCallback * thecallback, void *clientarg)
 {
-    struct snmp_alarm **sa_pptr;
-    if (thealarms != NULL) {
-        for (sa_pptr = &thealarms; (*sa_pptr) != NULL;
-             sa_pptr = &((*sa_pptr)->next));
-    } else {
-        sa_pptr = &thealarms;
-    }
-
-    *sa_pptr = SNMP_MALLOC_STRUCT(snmp_alarm);
-    if (*sa_pptr == NULL)
-        return 0;
+    struct timeval  t;
 
     if (0 == when) {
-        (*sa_pptr)->t.tv_sec = 0;
-        (*sa_pptr)->t.tv_usec = 1;
+        t.tv_sec = 0;
+        t.tv_usec = 1;
     } else {
-        (*sa_pptr)->t.tv_sec = when;
-        (*sa_pptr)->t.tv_usec = 0;
+        t.tv_sec = when;
+        t.tv_usec = 0;
     }
-    (*sa_pptr)->flags = flags;
-    (*sa_pptr)->clientarg = clientarg;
-    (*sa_pptr)->thecallback = thecallback;
-    (*sa_pptr)->clientreg = regnum++;
-    (*sa_pptr)->next = NULL;
-    sa_update_entry(*sa_pptr);
 
-    DEBUGMSGTL(("snmp_alarm",
-		"registered alarm %d, t = %ld.%03ld, flags=0x%02x\n",
-                (*sa_pptr)->clientreg, (*sa_pptr)->t.tv_sec,
-                ((*sa_pptr)->t.tv_usec / 1000), (*sa_pptr)->flags));
-
-    if (start_alarms)
-        set_an_alarm();
-    return (*sa_pptr)->clientreg;
+    return snmp_alarm_register_hr(t, flags, thecallback, clientarg);
 }
 
 
@@ -452,7 +430,7 @@
  *
  * @param cd is a void pointer used by the callback function.  This 
  *	pointer is assigned to snmp_alarm->clientarg and passed into the
- *	callback function for the client's specifc needs.
+ *	callback function for the client's specific needs.
  *
  * @return Returns a unique unsigned integer(which is also passed as the first 
  *	argument of each callback), which can then be used to remove the
@@ -477,8 +455,7 @@
         return 0;
     }
 
-    (*s)->t.tv_sec = t.tv_sec;
-    (*s)->t.tv_usec = t.tv_usec;
+    (*s)->t = t;
     (*s)->flags = flags;
     (*s)->clientarg = cd;
     (*s)->thecallback = cb;
diff --git a/snmplib/snmp_api.c b/snmplib/snmp_api.c
index e67945f..e900a23 100644
--- a/snmplib/snmp_api.c
+++ b/snmplib/snmp_api.c
@@ -1,3 +1,4 @@
+
 /* Portions of this file are subject to the following copyright(s).  See
  * the Net-SNMP's COPYING file for more details and other copyrights
  * that may apply:
@@ -56,11 +57,7 @@
 #include <sys/param.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -81,9 +78,6 @@
 #if HAVE_IO_H
 #include <io.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
@@ -141,8 +135,14 @@
 #include <net-snmp/library/snmp_service.h>
 #include <net-snmp/library/vacm.h>
 
+#if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_LIBSSL)
+extern void netsnmp_certs_init(void);
+#endif
+
 static void     _init_snmp(void);
 
+static int      _snmp_store_needed = 0;
+
 #include "../agent/mibgroup/agentx/protocol.h"
 #include <net-snmp/library/transform_oids.h>
 #ifndef timercmp
@@ -301,6 +301,9 @@
     "Kerberos related error",   /* SNMPERR_KRB5 */
     "Protocol error",		/* SNMPERR_PROTOCOL */
     "OID not increasing",       /* SNMPERR_OID_NONINCREASING */
+    "Context probe",            /* SNMPERR_JUST_A_CONTEXT_PROBE */
+    "Configuration data found but the transport can't be configured", /* SNMPERR_TRANSPORT_NO_CONFIG */
+    "Transport configuration failed", /* SNMPERR_TRANSPORT_CONFIG_ERROR */
 };
 
 static const char *secLevelName[] = {
@@ -361,7 +364,9 @@
 static void     register_default_handlers(void);
 static struct session_list *snmp_sess_copy(netsnmp_session * pss);
 int             snmp_get_errno(void);
+NETSNMP_IMPORT
 void            snmp_synch_reset(netsnmp_session * notused);
+NETSNMP_IMPORT
 void            snmp_synch_setup(netsnmp_session * notused);
 
 #ifndef HAVE_STRERROR
@@ -665,9 +670,6 @@
     /*
      * get pseudo-random values for request ID and message ID 
      */
-    /*
-     * don't allow zero value to repeat init 
-     */
 #ifdef SVR4
     srand48(tv.tv_sec ^ tv.tv_usec);
     tmpReqid = lrand48();
@@ -678,6 +680,9 @@
     tmpMsgid = random();
 #endif
 
+    /*
+     * don't allow zero value to repeat init 
+     */
     if (tmpReqid == 0)
         tmpReqid = 1;
     if (tmpMsgid == 0)
@@ -692,11 +697,16 @@
     netsnmp_register_default_target("snmp", "tcp", ":161");
     netsnmp_register_default_target("snmp", "udp6", ":161");
     netsnmp_register_default_target("snmp", "tcp6", ":161");
+    netsnmp_register_default_target("snmp", "dtlsudp", ":10161");
+    netsnmp_register_default_target("snmp", "tlstcp", ":10161");
     netsnmp_register_default_target("snmp", "ipx", "/36879");
+
     netsnmp_register_default_target("snmptrap", "udp", ":162");
     netsnmp_register_default_target("snmptrap", "tcp", ":162");
     netsnmp_register_default_target("snmptrap", "udp6", ":162");
     netsnmp_register_default_target("snmptrap", "tcp6", ":162");
+    netsnmp_register_default_target("snmptrap", "dtlsudp", ":10162");
+    netsnmp_register_default_target("snmptrap", "tlstcp", ":10162");
     netsnmp_register_default_target("snmptrap", "ipx", "/36880");
 
     netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID, 
@@ -826,10 +836,14 @@
     snmp_init_statistics();
     register_mib_handlers();
     register_default_handlers();
+    init_snmp_transport();
     init_snmpv3(type);
     init_snmp_alarm();
     init_snmp_enum(type);
     init_vacm();
+#if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_LIBSSL)
+    netsnmp_certs_init();
+#endif
 
     read_premib_configs();
 #ifndef NETSNMP_DISABLE_MIB_LOADING
@@ -840,6 +854,28 @@
 
 }                               /* end init_snmp() */
 
+/**
+ * set a flag indicating that the persistent store needs to be saved.
+ */
+void
+snmp_store_needed(const char *type)
+{
+    DEBUGMSGTL(("snmp_store", "setting needed flag...\n"));
+    _snmp_store_needed = 1;
+}
+
+void
+snmp_store_if_needed(void)
+{
+    if (0 == _snmp_store_needed)
+        return;
+    
+    DEBUGMSGTL(("snmp_store", "store needed...\n"));
+    snmp_store(netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
+                                     NETSNMP_DS_LIB_APPTYPE));
+    _snmp_store_needed = 0;
+}
+
 void
 snmp_store(const char *type)
 {
@@ -957,7 +993,6 @@
     struct snmp_secmod_def *sptr;
     char           *cp;
     u_char         *ucp;
-    size_t          i;
 
     in_session->s_snmp_errno = 0;
     in_session->s_errno = 0;
@@ -1060,39 +1095,6 @@
             netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_SECLEVEL);
     }
 
-    if (session->securityLevel == 0)
-        session->securityLevel = SNMP_SEC_LEVEL_NOAUTH;
-
-    if (in_session->securityAuthProtoLen > 0) {
-        session->securityAuthProto =
-            snmp_duplicate_objid(in_session->securityAuthProto,
-                                 in_session->securityAuthProtoLen);
-        if (session->securityAuthProto == NULL) {
-            snmp_sess_close(slp);
-            in_session->s_snmp_errno = SNMPERR_MALLOC;
-            return (NULL);
-        }
-    } else if (get_default_authtype(&i) != NULL) {
-        session->securityAuthProto =
-            snmp_duplicate_objid(get_default_authtype(NULL), i);
-        session->securityAuthProtoLen = i;
-    }
-
-    if (in_session->securityPrivProtoLen > 0) {
-        session->securityPrivProto =
-            snmp_duplicate_objid(in_session->securityPrivProto,
-                                 in_session->securityPrivProtoLen);
-        if (session->securityPrivProto == NULL) {
-            snmp_sess_close(slp);
-            in_session->s_snmp_errno = SNMPERR_MALLOC;
-            return (NULL);
-        }
-    } else if (get_default_privtype(&i) != NULL) {
-        session->securityPrivProto =
-            snmp_duplicate_objid(get_default_privtype(NULL), i);
-        session->securityPrivProtoLen = i;
-    }
-
     if (in_session->securityEngineIDLen > 0) {
         ucp = (u_char *) malloc(in_session->securityEngineIDLen);
         if (ucp == NULL) {
@@ -1170,69 +1172,6 @@
         session->securityNameLen = strlen(cp);
     }
 
-    if ((in_session->securityAuthKeyLen <= 0) &&
-        ((cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
-				     NETSNMP_DS_LIB_AUTHMASTERKEY)))) {
-        size_t buflen = sizeof(session->securityAuthKey);
-        u_char *tmpp = session->securityAuthKey;
-        session->securityAuthKeyLen = 0;
-        /* it will be a hex string */
-        if (!snmp_hex_to_binary(&tmpp, &buflen,
-                                &session->securityAuthKeyLen, 0, cp)) {
-            snmp_set_detail("error parsing authentication master key");
-            snmp_sess_close(slp);
-            return NULL;
-        }
-    } else if ((in_session->securityAuthKeyLen <= 0) &&
-        ((cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
-				     NETSNMP_DS_LIB_AUTHPASSPHRASE)) ||
-         (cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
-				     NETSNMP_DS_LIB_PASSPHRASE)))) {
-        session->securityAuthKeyLen = USM_AUTH_KU_LEN;
-        if (generate_Ku(session->securityAuthProto,
-                        session->securityAuthProtoLen,
-                        (u_char *) cp, strlen(cp),
-                        session->securityAuthKey,
-                        &session->securityAuthKeyLen) != SNMPERR_SUCCESS) {
-            snmp_set_detail
-                ("Error generating a key (Ku) from the supplied authentication pass phrase.");
-            snmp_sess_close(slp);
-            return NULL;
-        }
-    }
-
-    
-    if ((in_session->securityPrivKeyLen <= 0) &&
-        ((cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
-				     NETSNMP_DS_LIB_PRIVMASTERKEY)))) {
-        size_t buflen = sizeof(session->securityPrivKey);
-        u_char *tmpp = session->securityPrivKey;
-        session->securityPrivKeyLen = 0;
-        /* it will be a hex string */
-        if (!snmp_hex_to_binary(&tmpp, &buflen,
-                                &session->securityPrivKeyLen, 0, cp)) {
-            snmp_set_detail("error parsing encryption master key");
-            snmp_sess_close(slp);
-            return NULL;
-        }
-    } else if ((in_session->securityPrivKeyLen <= 0) &&
-        ((cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
-				     NETSNMP_DS_LIB_PRIVPASSPHRASE)) ||
-         (cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
-				     NETSNMP_DS_LIB_PASSPHRASE)))) {
-        session->securityPrivKeyLen = USM_PRIV_KU_LEN;
-        if (generate_Ku(session->securityAuthProto,
-                        session->securityAuthProtoLen,
-                        (u_char *) cp, strlen(cp),
-                        session->securityPrivKey,
-                        &session->securityPrivKeyLen) != SNMPERR_SUCCESS) {
-            snmp_set_detail
-                ("Error generating a key (Ku) from the supplied privacy pass phrase.");
-            snmp_sess_close(slp);
-            return NULL;
-        }
-    }
-
     if (session->retries == SNMP_DEFAULT_RETRIES)
         session->retries = DEFAULT_RETRIES;
     if (session->timeout == SNMP_DEFAULT_TIMEOUT)
@@ -1242,14 +1181,35 @@
     snmp_call_callbacks(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_SESSION_INIT,
                         session);
 
-    if ((sptr = find_sec_mod(session->securityModel)) != NULL &&
-        sptr->session_open != NULL) {
+    if ((sptr = find_sec_mod(session->securityModel)) != NULL) {
         /*
-         * security module specific inialization 
+         * security module specific copying 
          */
-        (*sptr->session_open) (session);
+        if (sptr->session_setup) {
+            int ret = (*sptr->session_setup) (in_session, session);
+            if (ret != SNMPERR_SUCCESS) {
+                snmp_sess_close(slp);
+                return NULL;
+            }
+        }
+
+        /*
+         * security module specific opening
+         */
+        if (sptr->session_open) {
+            int ret = (*sptr->session_open) (session);
+            if (ret != SNMPERR_SUCCESS) {
+                snmp_sess_close(slp);
+                return NULL;
+            }
+        }
     }
 
+    /* Anything below this point should only be done if the transport
+       had no say in the matter */
+    if (session->securityLevel == 0)
+        session->securityLevel = SNMP_SEC_LEVEL_NOAUTH;
+
     return (slp);
 }
 
@@ -1345,7 +1305,7 @@
             response->variables->val_len;
         
         if (snmp_get_do_debugging()) {
-            int i;
+            size_t i;
             DEBUGMSGTL(("snmp_sess_open",
                         "  probe found engineID:  "));
             for (i = 0; i < session->securityEngineIDLen; i++)
@@ -1481,7 +1441,113 @@
     return 1;
 }
 
+/*******************************************************************-o-******
+ * netsnmp_sess_config_transport
+ *
+ * Parameters:
+ *	*in_session
+ *	*in_transport
+ *
+ * Returns:
+ *      SNMPERR_SUCCESS                     - Yay
+ *      SNMPERR_GENERR                      - Generic Error
+ *      SNMPERR_TRANSPORT_CONFIG_ERROR      - Transport rejected config
+ *      SNMPERR_TRANSPORT_NO_CONFIG         - Transport can't config
+ */
+int
+netsnmp_sess_config_transport(netsnmp_container *transport_configuration,
+                              netsnmp_transport *transport)
+{
+    /* Optional supplimental transport configuration information and
+       final call to actually open the transport */
+    if (transport_configuration) {
+        DEBUGMSGTL(("snmp_sess", "configuring transport\n"));
+        if (transport->f_config) {
+            netsnmp_iterator *iter;
+            netsnmp_transport_config *config_data;
+            int ret;
 
+            iter = CONTAINER_ITERATOR(transport_configuration);
+            if (NULL == iter) {
+                return SNMPERR_GENERR;
+            }
+
+            for(config_data = (netsnmp_transport_config*)ITERATOR_FIRST(iter); config_data;
+                config_data = (netsnmp_transport_config*)ITERATOR_NEXT(iter)) {
+                ret = transport->f_config(transport, config_data->key,
+                                          config_data->value);
+                if (ret) {
+                    return SNMPERR_TRANSPORT_CONFIG_ERROR;
+                }
+            }
+        } else {
+            return SNMPERR_TRANSPORT_NO_CONFIG;
+        }
+    }
+    return SNMPERR_SUCCESS;
+}
+
+ 
+/**
+ * Copies configuration from the session and calls f_open
+ * This function copies any configuration stored in the session
+ * pointer to the transport if it has a f_config pointer and then
+ * calls the transport's f_open function to actually open the
+ * connection.
+ *
+ * @param in_session A pointer to the session that config information is in.
+ * @param transport A pointer to the transport to config/open.
+ *
+ * @return SNMPERR_SUCCESS : on success
+ */
+
+/*******************************************************************-o-******
+ * netsnmp_sess_config_transport
+ *
+ * Parameters:
+ *	*in_session
+ *	*in_transport
+ *
+ * Returns:
+ *      SNMPERR_SUCCESS                     - Yay
+ *      SNMPERR_GENERR                      - Generic Error
+ *      SNMPERR_TRANSPORT_CONFIG_ERROR      - Transport rejected config
+ *      SNMPERR_TRANSPORT_NO_CONFIG         - Transport can't config
+ */
+int
+netsnmp_sess_config_and_open_transport(netsnmp_session *in_session,
+                                       netsnmp_transport *transport)
+{
+    int rc;
+    
+    DEBUGMSGTL(("snmp_sess", "opening transport: %x\n", transport->flags & NETSNMP_TRANSPORT_FLAG_OPENED));
+
+    /* don't double open */
+    if (transport->flags & NETSNMP_TRANSPORT_FLAG_OPENED)
+        return SNMPERR_SUCCESS;
+
+    if ((rc = netsnmp_sess_config_transport(in_session->transport_configuration,
+                                            transport)) != SNMPERR_SUCCESS) {
+        in_session->s_snmp_errno = rc;
+        in_session->s_errno = 0;
+        return rc;
+    }
+        
+    if (transport->f_open)
+        transport = transport->f_open(transport);
+
+    if (transport == NULL) {
+        DEBUGMSGTL(("snmp_sess", "couldn't interpret peername\n"));
+        in_session->s_snmp_errno = SNMPERR_BAD_ADDRESS;
+        in_session->s_errno = errno;
+        snmp_set_detail(in_session->peername);
+        return SNMPERR_BAD_ADDRESS;
+    }
+
+    transport->flags |= NETSNMP_TRANSPORT_FLAG_OPENED;
+    DEBUGMSGTL(("snmp_sess", "done opening transport: %x\n", transport->flags & NETSNMP_TRANSPORT_FLAG_OPENED));
+    return SNMPERR_SUCCESS;
+}
 
 /*******************************************************************-o-******
  * snmp_sess_open
@@ -1499,6 +1565,7 @@
 _sess_open(netsnmp_session * in_session)
 {
     netsnmp_transport *transport = NULL;
+    int rc;
 
     in_session->s_snmp_errno = 0;
     in_session->s_errno = 0;
@@ -1534,8 +1601,24 @@
                                   NETSNMP_DS_LIB_CLIENT_ADDR, clientaddr_save);
     }
 
+    if (transport == NULL) {
+        DEBUGMSGTL(("_sess_open", "couldn't interpret peername\n"));
+        in_session->s_snmp_errno = SNMPERR_BAD_ADDRESS;
+        in_session->s_errno = errno;
+        snmp_set_detail(in_session->peername);
+        return NULL;
+    }
+
+    /* Optional supplimental transport configuration information and
+       final call to actually open the transport */
+    if ((rc = netsnmp_sess_config_and_open_transport(in_session, transport))
+        != SNMPERR_SUCCESS) {
+        transport = NULL;
+        return NULL;
+    }
+
 #if defined(SO_BROADCAST) && defined(SOL_SOCKET)
-    if ( transport != 0 && (in_session->flags & SNMP_FLAGS_UDP_BROADCAST) ) {
+    if ( in_session->flags & SNMP_FLAGS_UDP_BROADCAST) {
         int   b = 1;
         int   rc;
 
@@ -1552,14 +1635,6 @@
     }
 #endif
 
-    if (transport == NULL) {
-        DEBUGMSGTL(("_sess_open", "couldn't interpret peername\n"));
-        in_session->s_snmp_errno = SNMPERR_BAD_ADDRESS;
-        in_session->s_errno = errno;
-        snmp_set_detail(in_session->peername);
-        return NULL;
-    }
-
     return snmp_sess_add(in_session, transport, NULL, NULL);
 }
 
@@ -1655,7 +1730,8 @@
                                               size_t))
 {
     struct session_list *slp;
-
+    int rc;
+    
     _init_snmp();
 
     if (transport == NULL)
@@ -1667,8 +1743,24 @@
         return NULL;
     }
 
+    /* if the transport hasn't been fully opened yet, open it now */
+    if ((rc = netsnmp_sess_config_and_open_transport(in_session, transport))
+        != SNMPERR_SUCCESS) {
+        return NULL;
+    }
+
+    if (transport->f_setup_session) {
+        if (SNMPERR_SUCCESS !=
+            transport->f_setup_session(transport, in_session)) {
+            netsnmp_transport_free(transport);
+            return NULL;
+        }
+    }
+        
+            
     DEBUGMSGTL(("snmp_sess_add", "fd %d\n", transport->sock));
 
+
     if ((slp = snmp_sess_copy(in_session)) == NULL) {
         transport->f_close(transport);
         netsnmp_transport_free(transport);
@@ -2321,7 +2413,7 @@
         }
     }
     if (pdu->securityNameLen == 0 && pdu->securityName == NULL) {
-        if (session->securityModel != NETSNMP_TSM_SECURITY_MODEL &&
+        if (session->securityModel != SNMP_SEC_MODEL_TSM &&
             session->securityNameLen == 0) {
             session->s_snmp_errno = SNMPERR_BAD_SEC_NAME;
             return -1;
@@ -2333,6 +2425,9 @@
                 return -1;
             }
             pdu->securityNameLen = session->securityNameLen;
+        } else {
+            pdu->securityName = strdup("");
+            session->securityName = strdup("");
         }
     }
     if (pdu->securityLevel == 0) {
@@ -3671,8 +3766,10 @@
     data = asn_parse_sequence(data, &length, &type,
                               (ASN_SEQUENCE | ASN_CONSTRUCTOR), "version");
     if (data) {
+        DEBUGDUMPHEADER("recv", "SNMP Version");
         data =
             asn_parse_int(data, &length, &type, &version, sizeof(version));
+        DEBUGINDENTLESS();
         if (!data || type != ASN_INTEGER) {
             return SNMPERR_BAD_VERSION;
         }
@@ -4868,11 +4965,12 @@
      * check that it agrees with engineID returned from USM above
      * * only a warning because this could be legal if we are a proxy
      */
-    if (pdu->securityEngineIDLen != pdu->contextEngineIDLen ||
-        memcmp(pdu->securityEngineID, pdu->contextEngineID,
-               pdu->securityEngineIDLen) != 0) {
+    if (pdu->securityModel == NETSNMP_SECMOD_USM &&
+        (pdu->securityEngineIDLen != pdu->contextEngineIDLen ||
+         memcmp(pdu->securityEngineID, pdu->contextEngineID,
+                pdu->securityEngineIDLen) != 0)) {
         DEBUGMSGTL(("scopedPDU_parse",
-                    "inconsistent engineID information in message\n"));
+                    "Note: security and context engineIDs differ\n"));
     }
 
     /*
@@ -5152,32 +5250,15 @@
         return 0;
     }
 
-    if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DUMP_PACKET)) {
-        if (transport->f_fmtaddr != NULL) {
-            char           *dest_txt =
-                transport->f_fmtaddr(transport, pdu->transport_data,
-                                     pdu->transport_data_length);
-            if (dest_txt != NULL) {
-                snmp_log(LOG_DEBUG, "\nSending %lu bytes to %s\n", (unsigned long)length,
-                         dest_txt);
-                SNMP_FREE(dest_txt);
-            } else {
-                snmp_log(LOG_DEBUG, "\nSending %lu bytes to <UNKNOWN>\n",
-                         (unsigned long)length);
-            }
-        }
-        xdump(packet, length, "");
-    }
-
     /*
      * Send the message.  
      */
 
-    DEBUGMSGTL(("sess_process_packet", "sending message id#%ld reqid#%ld\n",
-                pdu->msgid, pdu->reqid));
-    result = transport->f_send(transport, packet, length,
-                               &(pdu->transport_data),
-                               &(pdu->transport_data_length));
+    DEBUGMSGTL(("sess_process_packet", "sending message id#%ld reqid#%ld len %"
+                NETSNMP_PRIz "u\n", pdu->msgid, pdu->reqid, length));
+    result = netsnmp_transport_send(transport, packet, length,
+                                    &(pdu->transport_data),
+                                    &(pdu->transport_data_length));
 
     SNMP_FREE(pktbuf);
 
@@ -5411,20 +5492,12 @@
 	      "session %p fd %d pkt %p length %d\n", sessp,
 	      transport->sock, packetptr, length));
 
-  if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, 
-			     NETSNMP_DS_LIB_DUMP_PACKET)) {
-    if (transport->f_fmtaddr != NULL) {
-      char *addrtxt = transport->f_fmtaddr(transport, opaque, olength);
-      if (addrtxt != NULL) {
-	snmp_log(LOG_DEBUG, "\nReceived %d bytes from %s\n",
-		 length, addrtxt);
-	SNMP_FREE(addrtxt);
-      } else {
-	snmp_log(LOG_DEBUG, "\nReceived %d bytes from <UNKNOWN>\n",
-		 length);
-      }
-    }
-    xdump(packetptr, length, "");
+  if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,NETSNMP_DS_LIB_DUMP_PACKET)) {
+      char *addrtxt = netsnmp_transport_peer_string(transport, opaque, olength);
+      snmp_log(LOG_DEBUG, "\nReceived %d byte packet from %s\n",
+               length, addrtxt);
+      SNMP_FREE(addrtxt);
+      xdump(packetptr, length, "");
   }
 
   /*
@@ -5467,8 +5540,8 @@
     ret = snmp_parse(sessp, sp, pdu, packetptr, length);
   }
 
-  DEBUGMSGTL(("sess_process_packet", "received message id#%ld reqid#%ld\n",
-              pdu->msgid, pdu->reqid));
+  DEBUGMSGTL(("sess_process_packet", "received message id#%ld reqid#%ld len "
+              "%u\n", pdu->msgid, pdu->reqid, length));
 
   if (ret != SNMP_ERR_NOERROR) {
     DEBUGMSGTL(("sess_process_packet", "parse fail\n"));
@@ -5891,7 +5964,8 @@
         }
     }
 
-    length = transport->f_recv(transport, rxbuf, rxbuf_len, &opaque, &olength);
+    length = netsnmp_transport_recv(transport, rxbuf, rxbuf_len, &opaque,
+                                    &olength);
 
     if (length == -1 && !(transport->flags & NETSNMP_TRANSPORT_FLAG_STREAM)) {
         sp->s_snmp_errno = SNMPERR_BAD_RECVFROM;
@@ -5961,7 +6035,7 @@
             DEBUGMSGTL(("sess_read", "  loop packet_len %lu, PDU length %lu\n",
                         (unsigned long)isp->packet_len, (unsigned long)pdulen));
              
-            if ((pdulen > MAX_PACKET_LENGTH) || (pdulen < 0)) {
+            if (pdulen > MAX_PACKET_LENGTH) {
                 /*
                  * Illegal length, drop the connection.  
                  */
@@ -6142,7 +6216,7 @@
 }
 
 
-/*
+/**
  * Returns info about what snmp requires from a select statement.
  * numfds is the number of fds in the list that are significant.
  * All file descriptors opened for SNMP are OR'd into the fdset.
@@ -6163,91 +6237,121 @@
  *
  * snmp_select_info returns the number of open sockets.  (i.e. The number of
  * sessions open)
+ *
+ * @see See also snmp_sess_select_info2_flags().
  */
-
 int
-snmp_select_info(int *numfds,
-                 fd_set * fdset, struct timeval *timeout, int *block)
-    /*
-     * input:  set to 1 if input timeout value is undefined  
-     * set to 0 if input timeout value is defined    
-     * output: set to 1 if output timeout value is undefined 
-     * set to 0 if output rimeout vlaue id defined   
-     */
+snmp_select_info(int *numfds, fd_set *fdset, struct timeval *timeout,
+                 int *block)
 {
-    return snmp_sess_select_info((void *) 0, numfds, fdset, timeout,
-                                 block);
+    return snmp_sess_select_info(NULL, numfds, fdset, timeout, block);
 }
 
+/**
+ * @see See also snmp_sess_select_info2_flags().
+ */
 int
-snmp_select_info2(int *numfds,
-                  netsnmp_large_fd_set * fdset,
+snmp_select_info2(int *numfds, netsnmp_large_fd_set *fdset,
 		  struct timeval *timeout, int *block)
-    /*
-     * input:  set to 1 if input timeout value is undefined  
-     * set to 0 if input timeout value is defined    
-     * output: set to 1 if output timeout value is undefined 
-     * set to 0 if output rimeout vlaue id defined   
-     */
 {
-    return snmp_sess_select_info2((void *) 0, numfds, fdset, timeout,
-                                  block);
+    return snmp_sess_select_info2(NULL, numfds, fdset, timeout, block);
 }
 
-/*
- * Same as snmp_select_info, but works just one session. 
+/**
+ * @see See also snmp_sess_select_info2_flags().
  */
 int
-snmp_sess_select_info(void *sessp,
-                      int *numfds,
-                      fd_set * fdset, struct timeval *timeout, int *block)
+snmp_sess_select_info(void *sessp, int *numfds, fd_set *fdset,
+                      struct timeval *timeout, int *block)
+{
+    return snmp_sess_select_info_flags(sessp, numfds, fdset, timeout, block,
+                                       NETSNMP_SELECT_NOFLAGS);
+}
+        
+/**
+ * @see See also snmp_sess_select_info2_flags().
+ */
+int
+snmp_sess_select_info_flags(void *sessp, int *numfds, fd_set *fdset,
+                            struct timeval *timeout, int *block, int flags)
 {
   int rc;
   netsnmp_large_fd_set lfdset;
 
   netsnmp_large_fd_set_init(&lfdset, FD_SETSIZE);
   netsnmp_copy_fd_set_to_large_fd_set(&lfdset, fdset);
-  rc = snmp_sess_select_info2(sessp, numfds, &lfdset, timeout, block);
+  rc = snmp_sess_select_info2_flags(sessp, numfds, &lfdset, timeout,
+                                    block, flags);
   if (netsnmp_copy_large_fd_set_to_fd_set(fdset, &lfdset) < 0) {
       snmp_log(LOG_ERR,
 	     "Use snmp_sess_select_info2() for processing"
-	     " large file descriptors");
+	     " large file descriptors\n");
   }
   netsnmp_large_fd_set_cleanup(&lfdset);
   return rc;
 }
 
+/**
+ * @see See also snmp_sess_select_info2_flags().
+ */
 int
-snmp_sess_select_info2(void *sessp,
-                       int *numfds,
-                       netsnmp_large_fd_set * fdset,
+snmp_sess_select_info2(void *sessp, int *numfds, netsnmp_large_fd_set *fdset,
 		       struct timeval *timeout, int *block)
 {
-    struct session_list *slptest = (struct session_list *) sessp;
+    return snmp_sess_select_info2_flags(sessp, numfds, fdset, timeout, block,
+                                        NETSNMP_SELECT_NOFLAGS);
+}
+
+/**
+ * Compute/update the arguments to be passed to select().
+ *
+ * @param[in]     sessp   Which sessions to process: either a pointer to a
+ *   specific session or NULL which means to process all sessions.
+ * @param[in,out] numfds  On POSIX systems one more than the the largest file
+ *   descriptor that is present in *fdset. On systems that use Winsock (MinGW
+ *   and MSVC), do not use the value written into *numfds.
+ * @param[in,out] fdset   A large file descriptor set to which all file
+ *   descriptors will be added that are associated with one of the examined
+ *   sessions.
+ * @param[in,out] timeout On input, if *block = 1, the maximum time the caller
+ *   will block while waiting for Net-SNMP activity. On output, if this function
+ *   has set *block to 0, the maximum time the caller is allowed to wait before
+ *   invoking the Net-SNMP processing functions (snmp_read(), snmp_timeout()
+ *   and run_alarms()). If this function has set *block to 1, *timeout won't
+ *   have been modified and no alarms are active.
+ * @param[in,out] block   On input, whether the caller prefers to block forever
+ *   when no alarms are active. On output, 0 means that no alarms are active
+ *   nor that there is a timeout pending for any of the processed sessions.
+ * @param[in]     flags   Either 0 or NETSNMP_SELECT_NOALARMS.
+ *
+ * @return Number of sessions processed by this function.
+ *
+ * @see See also agent_check_and_process() for an example of how to use this
+ *   function.
+ */
+int
+snmp_sess_select_info2_flags(void *sessp, int *numfds,
+                             netsnmp_large_fd_set * fdset,
+                             struct timeval *timeout, int *block, int flags)
+{
     struct session_list *slp, *next = NULL;
     netsnmp_request_list *rp;
-    struct timeval  now, earliest, delta;
+    struct timeval  now, earliest, alarm_tm;
     int             active = 0, requests = 0;
     int             next_alarm = 0;
 
     timerclear(&earliest);
 
     /*
-     * For each request outstanding, add its socket to the fdset,
+     * For each session examined, add its socket to the fdset,
      * and if it is the earliest timeout to expire, mark it as lowest.
      * If a single session is specified, do just for that session.
      */
 
-    if (sessp) {
-        slp = slptest;
-    } else {
-        slp = Sessions;
-    }
-
     DEBUGMSGTL(("sess_select", "for %s session%s: ",
                 sessp ? "single" : "all", sessp ? "" : "s"));
 
-    for (; slp; slp = next) {
+    for (slp = sessp ? sessp : Sessions; slp; slp = next) {
         next = slp->next;
 
         if (slp->transport == NULL) {
@@ -6304,10 +6408,15 @@
     }
     DEBUGMSG(("sess_select", "\n"));
 
-    if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_ALARM_DONT_USE_SIG)) {
-        next_alarm = get_next_alarm_delay_time(&delta);
-        DEBUGMSGT(("sess_select","next alarm %d.%06d sec\n",
-                   (int)delta.tv_sec, (int)delta.tv_usec));
+    gettimeofday(&now, NULL);
+
+    if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
+                               NETSNMP_DS_LIB_ALARM_DONT_USE_SIG) &&
+        !(flags & NETSNMP_SELECT_NOALARMS)) {
+        next_alarm = netsnmp_get_next_alarm_time(&alarm_tm, &now);
+        if (next_alarm)
+            DEBUGMSGT(("sess_select","next alarm at %ld.%06ld sec\n",
+                       (long)alarm_tm.tv_sec, (long)alarm_tm.tv_usec));
     }
     if (next_alarm == 0 && requests == 0) {
         /*
@@ -6318,51 +6427,18 @@
         return active;
     }
 
-    /*
-     * * Now find out how much time until the earliest timeout.  This
-     * * transforms earliest from an absolute time into a delta time, the
-     * * time left until the select should timeout.
-     */
-    gettimeofday(&now, (struct timezone *) 0);
-    /*
-     * Now = now;
-     */
+    if (next_alarm &&
+        (!timerisset(&earliest) || timercmp(&alarm_tm, &earliest, <)))
+        earliest = alarm_tm;
 
-    if (next_alarm) {
-        delta.tv_sec += now.tv_sec;
-        delta.tv_usec += now.tv_usec;
-        while (delta.tv_usec >= 1000000) {
-            delta.tv_usec -= 1000000;
-            delta.tv_sec += 1;
-        }
-        if (!timerisset(&earliest) ||
-            ((earliest.tv_sec > delta.tv_sec) ||
-             ((earliest.tv_sec == delta.tv_sec) &&
-              (earliest.tv_usec > delta.tv_usec)))) {
-            earliest.tv_sec = delta.tv_sec;
-            earliest.tv_usec = delta.tv_usec;
-        }
-    }
-
-    if (earliest.tv_sec < now.tv_sec) {
-        DEBUGMSGT(("verbose:sess_select","timer overdue\n"));
-        earliest.tv_sec = 0;
-        earliest.tv_usec = 0;
-    } else if (earliest.tv_sec == now.tv_sec) {
-        earliest.tv_sec = 0;
-        earliest.tv_usec = (earliest.tv_usec - now.tv_usec);
-        if (earliest.tv_usec < 0) {
-            earliest.tv_usec = 100;
-        }
-        DEBUGMSGT(("verbose:sess_select","timer due *real* soon. %d usec\n",
-                   (int)earliest.tv_usec));
+    NETSNMP_TIMERSUB(&earliest, &now, &earliest);
+    if (earliest.tv_sec < 0) {
+        time_t overdue_ms = -(earliest.tv_sec * 1000 + earliest.tv_usec / 1000);
+        if (overdue_ms >= 10)
+            DEBUGMSGT(("verbose:sess_select","timer overdue by %ld ms\n",
+                       overdue_ms));
+        timerclear(&earliest);
     } else {
-        earliest.tv_sec = (earliest.tv_sec - now.tv_sec);
-        earliest.tv_usec = (earliest.tv_usec - now.tv_usec);
-        if (earliest.tv_usec < 0) {
-            earliest.tv_sec--;
-            earliest.tv_usec = (1000000L + earliest.tv_usec);
-        }
         DEBUGMSGT(("verbose:sess_select","timer due in %d.%06d sec\n",
                    (int)earliest.tv_sec, (int)earliest.tv_usec));
     }
@@ -6475,28 +6551,12 @@
         return -1;
     }
 
-    if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DUMP_PACKET)) {
-        if (transport->f_fmtaddr != NULL) {
-            char           *str = NULL;
-            str = transport->f_fmtaddr(transport, rp->pdu->transport_data,
-                                       rp->pdu->transport_data_length);
-            if (str != NULL) {
-                snmp_log(LOG_DEBUG, "\nResending %lu bytes to %s\n", 
-                         (unsigned long)length, str);
-                SNMP_FREE(str);
-            } else {
-                snmp_log(LOG_DEBUG, "\nResending %lu bytes to <UNKNOWN>\n",
-                         (unsigned long)length);
-            }
-        }
-        xdump(packet, length, "");
-    }
-
-    DEBUGMSGTL(("sess_process_packet", "resending message id#%ld reqid#%ld rp_reqid#%ld rp_msgid#%ld\n",
-                rp->pdu->msgid, rp->pdu->reqid, rp->request_id, rp->message_id));
-    result = transport->f_send(transport, packet, length,
-                               &(rp->pdu->transport_data),
-                               &(rp->pdu->transport_data_length));
+    DEBUGMSGTL(("sess_process_packet", "resending message id#%ld reqid#%ld "
+                "rp_reqid#%ld rp_msgid#%ld len %" NETSNMP_PRIz "u\n",
+                rp->pdu->msgid, rp->pdu->reqid, rp->request_id, rp->message_id, length));
+    result = netsnmp_transport_send(transport, packet, length,
+                                    &(rp->pdu->transport_data),
+                                    &(rp->pdu->transport_data_length));
 
     /*
      * We are finished with the local packet buffer, if we allocated one (due
@@ -7618,12 +7678,12 @@
 /*
  * generic statistics counter functions 
  */
-static u_int    statistics[MAX_STATS];
+static u_int    statistics[NETSNMP_STAT_MAX_STATS];
 
 u_int
 snmp_increment_statistic(int which)
 {
-    if (which >= 0 && which < MAX_STATS) {
+    if (which >= 0 && which < NETSNMP_STAT_MAX_STATS) {
         statistics[which]++;
         return statistics[which];
     }
@@ -7633,7 +7693,7 @@
 u_int
 snmp_increment_statistic_by(int which, int count)
 {
-    if (which >= 0 && which < MAX_STATS) {
+    if (which >= 0 && which < NETSNMP_STAT_MAX_STATS) {
         statistics[which] += count;
         return statistics[which];
     }
@@ -7643,7 +7703,7 @@
 u_int
 snmp_get_statistic(int which)
 {
-    if (which >= 0 && which < MAX_STATS)
+    if (which >= 0 && which < NETSNMP_STAT_MAX_STATS)
         return statistics[which];
     return 0;
 }
diff --git a/snmplib/snmp_auth.c b/snmplib/snmp_auth.c
index ddfd3d3..4b408f1 100644
--- a/snmplib/snmp_auth.c
+++ b/snmplib/snmp_auth.c
@@ -43,11 +43,7 @@
 #endif
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -73,10 +69,6 @@
 #include <dmalloc.h>
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #ifdef vms
 #include <in.h>
 #endif
diff --git a/snmplib/snmp_client.c b/snmplib/snmp_client.c
index b34c920..bff325e 100644
--- a/snmplib/snmp_client.c
+++ b/snmplib/snmp_client.c
@@ -56,11 +56,7 @@
 #endif
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -89,10 +85,6 @@
 #include <dmalloc.h>
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #include <net-snmp/types.h>
 
 #include <net-snmp/agent/ds_agent.h>
@@ -104,6 +96,7 @@
 #include <net-snmp/library/mib.h>
 #include <net-snmp/library/snmp_logging.h>
 #include <net-snmp/library/snmp_assert.h>
+#include <net-snmp/pdu_api.h>
 
 
 #ifndef BSD4_3
@@ -563,7 +556,7 @@
 /*
  * This function will clone a full varbind list
  *
- * Returns a pointer to the cloned PDU if successful.
+ * Returns a pointer to the cloned varbind list if successful.
  * Returns 0 if failure
  */
 netsnmp_variable_list *
@@ -626,7 +619,7 @@
     if ((pdu->command != SNMP_MSG_RESPONSE)
         || (pdu->errstat == SNMP_ERR_NOERROR)
         || (NULL == pdu->variables)
-        || (pdu->errindex > snmp_varbind_len(pdu))
+        || (pdu->errindex > (int)snmp_varbind_len(pdu))
         || (pdu->errindex <= 0)) {
         return NULL;            /* pre-condition tests fail */
     }
@@ -765,7 +758,7 @@
 
 netsnmp_variable_list*
 find_varbind_in_list( netsnmp_variable_list *vblist,
-                      oid *name, size_t len)
+                      const oid *name, size_t len)
 {
     for (; vblist != NULL; vblist = vblist->next_variable)
         if (!snmp_oid_compare(vblist->name, vblist->name_length, name, len))
@@ -1046,7 +1039,8 @@
         block = NETSNMP_SNMPBLOCK;
         tvp = &timeout;
         timerclear(tvp);
-        snmp_select_info(&numfds, &fdset, tvp, &block);
+        snmp_sess_select_info_flags(0, &numfds, &fdset, tvp, &block,
+                                    NETSNMP_SELECT_NOALARMS);
         if (block == 1)
             tvp = NULL;         /* block without timeout */
         count = select(numfds, &fdset, NULL, NULL, tvp);
@@ -1137,7 +1131,8 @@
         block = NETSNMP_SNMPBLOCK;
         tvp = &timeout;
         timerclear(tvp);
-        snmp_sess_select_info(sessp, &numfds, &fdset, tvp, &block);
+        snmp_sess_select_info_flags(sessp, &numfds, &fdset, tvp, &block,
+                                    NETSNMP_SELECT_NOALARMS);
         if (block == 1)
             tvp = NULL;         /* block without timeout */
         count = select(numfds, &fdset, NULL, NULL, tvp);
@@ -1268,7 +1263,7 @@
     netsnmp_pdu *pdu      = snmp_pdu_create( request );
     netsnmp_pdu *response = NULL;
     netsnmp_variable_list *vb1, *vb2, *vtmp;
-    int ret;
+    int ret, count;
 
     DEBUGMSGTL(("iquery", "query on session %p\n", session));
     /*
@@ -1295,6 +1290,8 @@
      */
     if ( ret == SNMP_ERR_NOERROR ) {
         if ( response->errstat != SNMP_ERR_NOERROR ) {
+            DEBUGMSGT(("iquery", "Error in packet: %s\n",
+                       snmp_errstring(response->errstat)));
             /*
              * If the request failed, then remove the
              *  offending varbind and try again.
@@ -1304,6 +1301,16 @@
              *       NETSNMP_DS_APP_DONT_FIX_PDUS ??
              */
             ret = response->errstat;
+            if (response->errindex != 0) {
+                DEBUGMSGT(("iquery:result", "Failed object:\n"));
+                for (count = 1, vtmp = response->variables;
+                     vtmp && count != response->errindex;
+                     vtmp = vtmp->next_variable, count++)
+                    /*EMPTY*/;
+                if (vtmp)
+                    DEBUGMSGVAR(("iquery:result", vtmp));
+                DEBUGMSG(("iquery:result", "\n"));
+            }
             if (request != SNMP_MSG_SET &&
                 response->errindex != 0) {
                 DEBUGMSGTL(("iquery", "retrying query (%d, %ld)\n", ret, response->errindex));
@@ -1317,6 +1324,8 @@
             for (vb1 = response->variables, vb2 = list;
                  vb1;
                  vb1 = vb1->next_variable,  vb2 = vb2->next_variable) {
+                DEBUGMSGVAR(("iquery:result", vb1));
+                DEBUGMSG(("iquery:results", "\n"));
                 if ( !vb2 ) {
                     ret = SNMP_ERR_GENERR;
                     break;
@@ -1409,4 +1418,444 @@
     snmp_free_varbind( vb );
     return ret;
 }
+
+/** **************************************************************************
+ *
+ * state machine
+ *
+ */
+int
+netsnmp_state_machine_run( netsnmp_state_machine_input *input)
+{
+    netsnmp_state_machine_step *current, *last;
+
+    netsnmp_require_ptr_LRV( input, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( input->steps, SNMPERR_GENERR );
+    last = current = input->steps;
+
+    DEBUGMSGT(("state_machine:run", "starting step: %s\n", current->name));
+
+    while (current) {
+
+        /*
+         * log step and check for required data
+         */
+        DEBUGMSGT(("state_machine:run", "at step: %s\n", current->name));
+        if (NULL == current->run) {
+            DEBUGMSGT(("state_machine:run", "no run step\n"));
+            current->result = last->result;
+            break;
+        }
+
+        /*
+         * run step
+         */
+        DEBUGMSGT(("state_machine:run", "running step: %s\n", current->name));
+        current->result = (*current->run)( input, current );
+        ++input->steps_so_far;
+        
+        /*
+         * log result and move to next step
+         */
+        input->last_run = current;
+        DEBUGMSGT(("state_machine:run:result", "step %s returned %d\n",
+                   current->name, current->result));
+        if (SNMPERR_SUCCESS == current->result)
+            current = current->on_success;
+        else if (SNMPERR_ABORT == current->result) {
+            DEBUGMSGT(("state_machine:run:result", "ABORT from %s\n",
+                       current->name));
+            break;
+        }
+        else
+            current = current->on_error;
+    }
+
+    /*
+     * run cleanup
+     */
+    if ((input->cleanup) && (input->cleanup->run))
+        (*input->cleanup->run)( input, input->last_run );
+
+    return input->last_run->result;
+}
+
+/** **************************************************************************
+ *
+ * row create state machine steps
+ *
+ */
+typedef struct rowcreate_state_s {
+
+    netsnmp_session        *session;
+    netsnmp_variable_list  *vars;
+    int                     row_status_index;
+} rowcreate_state;
+
+static netsnmp_variable_list *
+_get_vb_num(netsnmp_variable_list *vars, int index)
+{
+    for (; vars && index > 0; --index)
+        vars = vars->next_variable;
+
+    if (!vars || index > 0)
+        return NULL;
+    
+    return vars;
+}
+
+
+/*
+ * cleanup
+ */
+static int 
+_row_status_state_cleanup(netsnmp_state_machine_input *input,
+                 netsnmp_state_machine_step *step)
+{
+    rowcreate_state       *ctx;
+
+    netsnmp_require_ptr_LRV( input, SNMPERR_ABORT );
+    netsnmp_require_ptr_LRV( step, SNMPERR_ABORT );
+
+    DEBUGMSGT(("row_create:called", "_row_status_state_cleanup, last run step was %s rc %d\n",
+               step->name, step->result));
+
+    ctx = (rowcreate_state *)input->input_context;
+    if (ctx && ctx->vars)
+        snmp_free_varbind( ctx->vars );
+
+    return SNMPERR_SUCCESS;
+}
+
+/*
+ * send a request to activate the row
+ */
+static int 
+_row_status_state_activate(netsnmp_state_machine_input *input,
+                  netsnmp_state_machine_step *step)
+{
+    rowcreate_state       *ctx;
+    netsnmp_variable_list *rs_var, *var = NULL;
+    int32_t                rc, val = RS_ACTIVE;
+
+    netsnmp_require_ptr_LRV( input, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( step, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( input->input_context, SNMPERR_GENERR );
+
+    ctx = (rowcreate_state *)input->input_context;
+
+    DEBUGMSGT(("row_create:called", "called %s\n", step->name));
+
+    /*
+     * just send the rowstatus varbind
+     */
+    rs_var = _get_vb_num(ctx->vars, ctx->row_status_index);
+    netsnmp_require_ptr_LRV(rs_var, SNMPERR_GENERR);
+
+    var = snmp_varlist_add_variable(&var, rs_var->name, rs_var->name_length,
+                                    rs_var->type, &val, sizeof(val));
+    netsnmp_require_ptr_LRV( var, SNMPERR_GENERR );
+
+    /*
+     * send set
+     */
+    rc = netsnmp_query_set( var, ctx->session );
+    if (-2 == rc)
+        rc = SNMPERR_ABORT;
+
+    snmp_free_varbind(var);
+
+    return rc;
+}
+
+/*
+ * send each non-row status column, one at a time
+ */
+static int 
+_row_status_state_single_value_cols(netsnmp_state_machine_input *input,
+                                    netsnmp_state_machine_step *step)
+{
+    rowcreate_state       *ctx;
+    netsnmp_variable_list *var, *tmp_next, *row_status;
+    int                    rc = SNMPERR_GENERR;
+
+    netsnmp_require_ptr_LRV( input, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( step, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( input->input_context, SNMPERR_GENERR );
+
+    ctx = (rowcreate_state *)input->input_context;
+
+    DEBUGMSGT(("row_create:called", "called %s\n", step->name));
+
+    row_status = _get_vb_num(ctx->vars, ctx->row_status_index);
+    netsnmp_require_ptr_LRV(row_status, SNMPERR_GENERR);
+
+    /*
+     * try one varbind at a time
+     */
+    for (var = ctx->vars; var; var = var->next_variable) {
+        if (var == row_status)
+            continue;
+
+        tmp_next = var->next_variable;
+        var->next_variable = NULL;
+
+        /*
+         * send set
+         */
+        rc = netsnmp_query_set( var, ctx->session );
+        var->next_variable = tmp_next;
+        if (-2 == rc)
+            rc = SNMPERR_ABORT;
+        if (rc != SNMPERR_SUCCESS)
+            break;
+    }
+
+    return rc;
+}
+
+/*
+ * send all values except row status
+ */
+static int 
+_row_status_state_multiple_values_cols(netsnmp_state_machine_input *input,
+                                       netsnmp_state_machine_step *step)
+{
+    rowcreate_state       *ctx;
+    netsnmp_variable_list *vars, *var, *last, *row_status;
+    int                    rc;
+
+    netsnmp_require_ptr_LRV( input, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( step, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( input->input_context, SNMPERR_GENERR );
+
+    ctx = (rowcreate_state *)input->input_context;
+
+    DEBUGMSGT(("row_create:called", "called %s\n", step->name));
+
+    vars = snmp_clone_varbind(ctx->vars);
+    netsnmp_require_ptr_LRV(vars, SNMPERR_GENERR);
+
+    row_status = _get_vb_num(vars, ctx->row_status_index);
+    if (NULL == row_status) {
+        snmp_free_varbind(vars);
+        return SNMPERR_GENERR;
+    }
+
+    /*
+     * remove row status varbind
+     */
+    if (row_status == vars) {
+        vars = row_status->next_variable;
+        row_status->next_variable = NULL;
+    }
+    else {
+        for (last=vars, var=last->next_variable;
+             var;
+             last=var, var = var->next_variable) {
+            if (var == row_status) {
+                last->next_variable = var->next_variable;
+                break;
+            }
+        }
+    }
+    snmp_free_var(row_status);
+
+    /*
+     * send set
+     */
+    rc = netsnmp_query_set( vars, ctx->session );
+    if (-2 == rc)
+        rc = SNMPERR_ABORT;
+
+    snmp_free_varbind(vars);
+
+    return rc;
+}
+
+/*
+ * send a createAndWait request with no other values
+ */
+static int 
+_row_status_state_single_value_createAndWait(netsnmp_state_machine_input *input,
+                                             netsnmp_state_machine_step *step)
+{
+    rowcreate_state       *ctx;
+    netsnmp_variable_list *var = NULL, *rs_var;
+    int32_t                rc, val = RS_CREATEANDWAIT;
+
+    netsnmp_require_ptr_LRV( input, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( step, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( input->input_context, SNMPERR_GENERR );
+
+    ctx = (rowcreate_state *)input->input_context;
+
+    DEBUGMSGT(("row_create:called", "called %s\n", step->name));
+
+    rs_var = _get_vb_num(ctx->vars, ctx->row_status_index);
+    netsnmp_require_ptr_LRV(rs_var, SNMPERR_GENERR);
+
+    var = snmp_varlist_add_variable(&var, rs_var->name, rs_var->name_length,
+                                    rs_var->type, &val, sizeof(val));
+    netsnmp_require_ptr_LRV(var, SNMPERR_GENERR);
+
+    /*
+     * send set
+     */
+    rc = netsnmp_query_set( var, ctx->session );
+    if (-2 == rc)
+        rc = SNMPERR_ABORT;
+
+    snmp_free_varbind(var);
+
+    return rc;
+}
+
+/*
+ * send a creatAndWait request with all values
+ */
+static int 
+_row_status_state_all_values_createAndWait(netsnmp_state_machine_input *input,
+                                           netsnmp_state_machine_step *step)
+{
+    rowcreate_state       *ctx;
+    netsnmp_variable_list *vars, *rs_var;
+    int                    rc;
+
+    netsnmp_require_ptr_LRV( input, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( step, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( input->input_context, SNMPERR_GENERR );
+
+    ctx = (rowcreate_state *)input->input_context;
+
+    DEBUGMSGT(("row_create:called", "called %s\n", step->name));
+
+    vars = snmp_clone_varbind(ctx->vars);
+    netsnmp_require_ptr_LRV(vars, SNMPERR_GENERR);
+
+    /*
+     * make sure row stats is createAndWait
+     */
+    rs_var = _get_vb_num(vars, ctx->row_status_index);
+    if (NULL == rs_var) {
+        snmp_free_varbind(vars);
+        return SNMPERR_GENERR;
+    }
+
+    if (*rs_var->val.integer != RS_CREATEANDWAIT)
+        *rs_var->val.integer = RS_CREATEANDWAIT;
+
+    /*
+     * send set
+     */
+    rc = netsnmp_query_set( vars, ctx->session );
+    if (-2 == rc)
+        rc = SNMPERR_ABORT;
+
+    snmp_free_varbind(vars);
+
+    return rc;
+}
+
+
+/**
+ * send createAndGo request with all values
+ */
+static int 
+_row_status_state_all_values_createAndGo(netsnmp_state_machine_input *input,
+                                         netsnmp_state_machine_step *step)
+{
+    rowcreate_state       *ctx;
+    netsnmp_variable_list *vars, *rs_var;
+    int                    rc;
+
+    netsnmp_require_ptr_LRV( input, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( step, SNMPERR_GENERR );
+    netsnmp_require_ptr_LRV( input->input_context, SNMPERR_GENERR );
+
+    ctx = (rowcreate_state *)input->input_context;
+
+    DEBUGMSGT(("row_create:called", "called %s\n", step->name));
+
+    vars = snmp_clone_varbind(ctx->vars);
+    netsnmp_require_ptr_LRV(vars, SNMPERR_GENERR);
+
+    /*
+     * make sure row stats is createAndGo
+     */
+    rs_var = _get_vb_num(vars, ctx->row_status_index + 1);
+    if (NULL == rs_var) {
+        snmp_free_varbind(vars);
+        return SNMPERR_GENERR;
+    }
+
+    if (*rs_var->val.integer != RS_CREATEANDGO)
+        *rs_var->val.integer = RS_CREATEANDGO;
+
+    /*
+     * send set
+     */
+    rc = netsnmp_query_set( vars, ctx->session );
+    if (-2 == rc)
+        rc = SNMPERR_ABORT;
+
+    snmp_free_varbind(vars);
+
+    return rc;
+}
+
+/** **************************************************************************
+ *
+ * row api
+ *
+ */
+int
+netsnmp_row_create(netsnmp_session *sess, netsnmp_variable_list *vars,
+                   int row_status_index)
+{
+    netsnmp_state_machine_step rc_cleanup =
+        { "row_create_cleanup", 0, _row_status_state_cleanup,
+          0, NULL, NULL, 0, NULL };
+    netsnmp_state_machine_step rc_activate =
+        { "row_create_activate", 0, _row_status_state_activate,
+          0, NULL, NULL, 0, NULL };
+    netsnmp_state_machine_step rc_sv_cols =
+        { "row_create_single_value_cols", 0,
+          _row_status_state_single_value_cols, 0, &rc_activate,NULL, 0, NULL };
+    netsnmp_state_machine_step rc_mv_cols =
+        { "row_create_multiple_values_cols", 0,
+          _row_status_state_multiple_values_cols, 0, &rc_activate, &rc_sv_cols,
+          0, NULL };
+    netsnmp_state_machine_step rc_sv_caw =
+        { "row_create_single_value_createAndWait", 0,
+          _row_status_state_single_value_createAndWait, 0, &rc_mv_cols, NULL,
+          0, NULL };
+    netsnmp_state_machine_step rc_av_caw =
+        { "row_create_all_values_createAndWait", 0,
+          _row_status_state_all_values_createAndWait, 0, &rc_activate,
+          &rc_sv_caw, 0, NULL };
+    netsnmp_state_machine_step rc_av_cag =
+        { "row_create_all_values_createAndGo", 0,
+          _row_status_state_all_values_createAndGo, 0, NULL, &rc_av_caw, 0,
+          NULL };
+
+    netsnmp_state_machine_input sm_input = { "row_create_machine", 0,
+                                             &rc_av_cag, &rc_cleanup };
+    rowcreate_state state;
+
+    netsnmp_require_ptr_LRV( sess, SNMPERR_GENERR);
+    netsnmp_require_ptr_LRV( vars, SNMPERR_GENERR);
+
+    state.session = sess;
+    state.vars = vars;
+
+    state.row_status_index = row_status_index;
+    sm_input.input_context = &state;
+
+    netsnmp_state_machine_run( &sm_input);
+
+    return SNMPERR_SUCCESS;
+}
+
+
 /** @} */
diff --git a/snmplib/snmp_debug.c b/snmplib/snmp_debug.c
index cb3bc8c..27ce233 100644
--- a/snmplib/snmp_debug.c
+++ b/snmplib/snmp_debug.c
@@ -15,9 +15,6 @@
 #include <netinet/in.h>
 #endif
 #include <stdarg.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 
 #if HAVE_UNISTD_H
 #include <unistd.h>
@@ -39,6 +36,8 @@
 #define SNMP_DEBUG_ACTIVE             1
 #define SNMP_DEBUG_EXCLUDED           2
 
+#ifndef NETSNMP_NO_DEBUGGING
+
 static int      dodebug = NETSNMP_ALWAYS_DEBUG;
 int             debug_num_tokens = 0;
 static int      debug_print_everything = 0;
@@ -77,12 +76,18 @@
 	debugindent += amount;
 }
 
+NETSNMP_IMPORT void
+debug_config_register_tokens(const char *configtoken, char *tokens);
+
 void
 debug_config_register_tokens(const char *configtoken, char *tokens)
 {
     debug_register_tokens(tokens);
 }
 
+NETSNMP_IMPORT void
+debug_config_turn_on_debugging(const char *configtoken, char *line);
+
 void
 debug_config_turn_on_debugging(const char *configtoken, char *line)
 {
@@ -90,18 +95,7 @@
 }
 
 void
-snmp_debug_init(void)
-{
-    register_prenetsnmp_mib_handler("snmp", "doDebugging",
-                                    debug_config_turn_on_debugging, NULL,
-                                    "(1|0)");
-    register_prenetsnmp_mib_handler("snmp", "debugTokens",
-                                    debug_config_register_tokens, NULL,
-                                    "token[,token...]");
-}
-
-void
-debug_register_tokens(char *tokens)
+debug_register_tokens(const char *tokens)
 {
     char           *newp, *cp;
     char           *st = NULL;
@@ -137,17 +131,16 @@
     free(newp);
 }
 
-
-/* 
+/*
  * Print all registered tokens along with their current status
  */
-void 
+void
 debug_print_registered_tokens(void) {
     int i;
 
     snmp_log(LOG_INFO, "%d tokens registered :\n", debug_num_tokens);
     for (i=0; i<debug_num_tokens; i++) {
-        snmp_log( LOG_INFO, "%d) %s : %d\n", 
+        snmp_log( LOG_INFO, "%d) %s : %d\n",
                  i, dbg_tokens [i].token_name, dbg_tokens [i].enabled);
     }
 }
@@ -170,7 +163,7 @@
     } else {
         for(i=0; i < debug_num_tokens; i++) {
             if (dbg_tokens[i].token_name &&
-                strncmp(dbg_tokens[i].token_name, token, 
+                strncmp(dbg_tokens[i].token_name, token,
                         strlen(dbg_tokens[i].token_name)) == 0) {
                 dbg_tokens[i].enabled = SNMP_DEBUG_ACTIVE;
                 return SNMPERR_SUCCESS;
@@ -206,13 +199,12 @@
     return SNMPERR_GENERR;
 }
 
-
 /*
  * debug_is_token_registered(char *TOKEN):
- * 
+ *
  * returns SNMPERR_SUCCESS
  * or SNMPERR_GENERR
- * 
+ *
  * if TOKEN has been registered and debugging support is turned on.
  */
 int
@@ -221,14 +213,14 @@
     int             i, rc;
 
     /*
-     * debugging flag is on or off 
+     * debugging flag is on or off
      */
     if (!dodebug)
         return SNMPERR_GENERR;
 
     if (debug_num_tokens == 0 || debug_print_everything) {
         /*
-         * no tokens specified, print everything 
+         * no tokens specified, print everything
          */
         return SNMPERR_SUCCESS;
     }
@@ -350,12 +342,12 @@
         rc = sprint_realloc_objid(&buf, &buf_len, &out_len, 1, theoid,
                                   var_subid-1);  /* Adjust for C's 0-based array indexing */
         if (rc) {
-            sprintf(tmpbuf, ".%lu--%lu", theoid[var_subid - 1],
-                    range_ubound);
+            sprintf(tmpbuf, ".%" NETSNMP_PRIo "u--%" NETSNMP_PRIo "u",
+                    theoid[var_subid - 1], range_ubound);
             rc = snmp_cstrcat(&buf, &buf_len, &out_len, 1, tmpbuf);
             if (rc) {
                 for (i = var_subid; i < len; i++) {
-                    sprintf(tmpbuf, ".%lu", theoid[i]);
+                    sprintf(tmpbuf, ".%" NETSNMP_PRIo "u", theoid[i]);
                     if (!snmp_cstrcat(&buf, &buf_len, &out_len, 1, tmpbuf)) {
                         break;
                     }
@@ -372,7 +364,7 @@
 }
 
 void
-debugmsg_hex(const char *token, u_char * thedata, size_t len)
+debugmsg_hex(const char *token, const u_char * thedata, size_t len)
 {
     u_char         *buf = NULL;
     size_t          buf_len = 0, out_len = 0;
@@ -394,7 +386,7 @@
 }
 
 void
-debugmsg_hextli(const char *token, u_char * thedata, size_t len)
+debugmsg_hextli(const char *token, const u_char * thedata, size_t len)
 {
     char            buf[SPRINT_MAX_LEN], token2[SPRINT_MAX_LEN];
     u_char         *b3 = NULL;
@@ -468,3 +460,119 @@
 {
     return dodebug;
 }
+
+#else /* ! NETSNMP_NO_DEBUGGING */
+
+#if __GNUC__ > 2
+#define UNUSED __attribute__((unused))
+#else
+#define UNUSED
+#endif
+
+int debug_indent_get(void) { return 0; }
+
+const char* debug_indent(void) { return ""; }
+
+void debug_indent_add(int amount UNUSED) { }
+
+NETSNMP_IMPORT void
+debug_config_register_tokens(const char *configtoken, char *tokens);
+
+void
+debug_config_register_tokens(const char *configtoken UNUSED,
+                             char *tokens UNUSED)
+{ }
+
+NETSNMP_IMPORT void
+debug_config_turn_on_debugging(const char *configtoken, char *line);
+
+void
+debug_config_turn_on_debugging(const char *configtoken UNUSED,
+                               char *line UNUSED)
+{ }
+
+void
+debug_register_tokens(const char *tokens UNUSED)
+{ }
+
+void
+debug_print_registered_tokens(void)
+{ }
+
+
+int
+debug_enable_token_logs (const char *token UNUSED)
+{ return SNMPERR_GENERR; }
+
+int
+debug_disable_token_logs (const char *token UNUSED)
+{ return SNMPERR_GENERR; }
+
+int
+debug_is_token_registered(const char *token UNUSED)
+{ return SNMPERR_GENERR; }
+
+void
+debugmsg(const char *token UNUSED, const char *format UNUSED, ...)
+{ }
+
+void
+debugmsg_oid(const char *token UNUSED, const oid * theoid UNUSED,
+             size_t len UNUSED)
+{ }
+
+void
+debugmsg_suboid(const char *token UNUSED, const oid * theoid UNUSED,
+                size_t len UNUSED)
+{ }
+
+void
+debugmsg_var(const char *token UNUSED, netsnmp_variable_list * var UNUSED)
+{ }
+
+void
+debugmsg_oidrange(const char *token UNUSED, const oid * theoid UNUSED,
+                  size_t len UNUSED, size_t var_subid UNUSED,
+                  oid range_ubound UNUSED)
+{ }
+
+void
+debugmsg_hex(const char *token UNUSED, const u_char * thedata UNUSED,
+             size_t len UNUSED)
+{ }
+
+void
+debugmsg_hextli(const char *token UNUSED, const u_char * thedata UNUSED,
+                size_t len UNUSED)
+{ }
+
+void
+debugmsgtoken(const char *token UNUSED, const char *format UNUSED, ...)
+{ }
+
+void
+debug_combo_nc(const char *token UNUSED, const char *format UNUSED, ...)
+{ }
+
+void
+snmp_set_do_debugging(int val UNUSED)
+{ }
+
+int
+snmp_get_do_debugging(void)
+{
+    return 0;
+}
+
+#endif /* NETSNMP_NO_DEBUGGING */
+
+void
+snmp_debug_init(void)
+{
+    register_prenetsnmp_mib_handler("snmp", "doDebugging",
+                                    debug_config_turn_on_debugging, NULL,
+                                    "(1|0)");
+    register_prenetsnmp_mib_handler("snmp", "debugTokens",
+                                    debug_config_register_tokens, NULL,
+                                    "token[,token...]");
+}
diff --git a/snmplib/snmp_enum.c b/snmplib/snmp_enum.c
index 5f735ee..39966fa 100644
--- a/snmplib/snmp_enum.c
+++ b/snmplib/snmp_enum.c
@@ -20,6 +20,7 @@
 
 #include <net-snmp/library/snmp_enum.h>
 #include <net-snmp/library/tools.h>
+#include <net-snmp/library/snmp_assert.h>
 
 struct snmp_enum_list_str {
     char           *name;
@@ -30,7 +31,7 @@
 static struct snmp_enum_list ***snmp_enum_lists;
 unsigned int    current_maj_num;
 unsigned int    current_min_num;
-struct snmp_enum_list_str *sliststorage;
+static struct snmp_enum_list_str *sliststorage;
 
 static void
 free_enum_list(struct snmp_enum_list *list);
@@ -40,9 +41,11 @@
 {
     int             i;
 
-    if (!snmp_enum_lists)
-        snmp_enum_lists = (struct snmp_enum_list ***)
-            calloc(1, sizeof(struct snmp_enum_list **) * SE_MAX_IDS);
+    if (NULL != snmp_enum_lists)
+        return SE_OK;
+
+    snmp_enum_lists = (struct snmp_enum_list ***)
+        calloc(1, sizeof(struct snmp_enum_list **) * SE_MAX_IDS);
     if (!snmp_enum_lists)
         return SE_NOMEM;
     current_maj_num = SE_MAX_IDS;
@@ -56,9 +59,6 @@
     }
     current_min_num = SE_MAX_SUBIDS;
 
-    if (!sliststorage)
-        sliststorage = NULL;
-
     register_config_handler(type, "enum", se_read_conf, NULL, NULL);
     return SE_OK;
 }
@@ -75,7 +75,7 @@
          */
         return SE_NOMEM;
     }
-
+    netsnmp_assert(NULL != snmp_enum_lists);
 
     if (snmp_enum_lists[major][minor] != NULL)
         ret = SE_ALREADY_THERE;
@@ -191,6 +191,7 @@
 {
     if (major > current_maj_num || minor > current_min_num)
         return NULL;
+    netsnmp_assert(NULL != snmp_enum_lists);
 
     return snmp_enum_lists[major][minor];
 }
@@ -257,18 +258,19 @@
 int
 se_add_pair_to_list(struct snmp_enum_list **list, char *label, int value)
 {
-    struct snmp_enum_list *lastnode = NULL;
+    struct snmp_enum_list *lastnode = NULL, *tmp;
 
     if (!list)
         return SE_DNE;
 
-    while (*list) {
-        if ((*list)->value == value) {
+    tmp = *list;
+    while (tmp) {
+        if (tmp->value == value) {
             free(label);
             return (SE_ALREADY_THERE);
         }
-        lastnode = (*list);
-        (*list) = (*list)->next;
+        lastnode = tmp;
+        tmp = tmp->next;
     }
 
     if (lastnode) {
@@ -456,24 +458,3 @@
     for (sptr = sliststorage; sptr != NULL; sptr = sptr->next)
         se_clear_list(&(sptr->list));
 }
-
-#ifdef TESTING
-main()
-{
-    init_snmp_enum();
-    se_add_pair(1, 1, strdup("hi"), 1);
-    se_add_pair(1, 1, strdup("there"), 2);
-    printf("hi: %d\n", se_find_value(1, 1, "hi"));
-    printf("2: %s\n", se_find_label(1, 1, 2));
-
-    se_add_pair_to_slist("testing", "life, and everything", 42);
-    se_add_pair_to_slist("testing", "restaurant at the end of the universe",
-                         2);
-
-    printf("life, and everything: %d\n",
-           se_find_value_in_slist("testing", "life, and everything"));
-    printf("2: %s\n", se_find_label_in_slist("testing", 2));
-
-    se_clear_all_lists();
-}
-#endif                          /* TESTING */
diff --git a/snmplib/snmp_logging.c b/snmplib/snmp_logging.c
index 7f19eb5..b30f165 100644
--- a/snmplib/snmp_logging.c
+++ b/snmplib/snmp_logging.c
@@ -42,11 +42,7 @@
 #endif
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -68,14 +64,6 @@
 #include <dmalloc.h>
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
-#if HAVE_WINDOWS_H
-#include <windows.h>
-#endif
-
 #include <net-snmp/types.h>
 #include <net-snmp/output_api.h>
 #include <net-snmp/library/snmp_logging.h>      /* For this file's "internal" definitions */
@@ -102,12 +90,30 @@
  */
 netsnmp_log_handler *logh_head = NULL;
 netsnmp_log_handler *logh_priorities[LOG_DEBUG+1];
-
-static int      newline = 1;	 /* MTCRITICAL_RESOURCE */
+static int  logh_enabled = 0;
 
 static char syslogname[64] = DEFAULT_LOG_ID;
 
 void
+netsnmp_disable_this_loghandler(netsnmp_log_handler *logh)
+{
+    if (!logh || (0 == logh->enabled))
+        return;
+    logh->enabled = 0;
+    --logh_enabled;
+    netsnmp_assert(logh_enabled >= 0);
+}
+
+void
+netsnmp_enable_this_loghandler(netsnmp_log_handler *logh)
+{
+    if (!logh || (0 != logh->enabled))
+        return;
+    logh->enabled = 1;
+    ++logh_enabled;
+}
+
+void
 netsnmp_enable_filelog(netsnmp_log_handler *logh, int dont_zero_log);
 
 #ifndef HAVE_VSNPRINTF
@@ -119,10 +125,22 @@
 #endif
 
 void
+parse_config_logOption(const char *token, char *cptr)
+{
+  int my_argc = 0 ;
+  char **my_argv = NULL;
+
+  snmp_log_options( cptr, my_argc, my_argv );
+}
+
+void
 init_snmp_logging(void)
 {
     netsnmp_ds_register_premib(ASN_BOOLEAN, "snmp", "logTimestamp", 
 			 NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_LOG_TIMESTAMP);
+    register_prenetsnmp_mib_handler("snmp", "logOption",
+                                    parse_config_logOption, NULL, "string");
+
 }
 
 void
@@ -321,6 +339,8 @@
     int             inc_optind = 0;
     netsnmp_log_handler *logh;
 
+    DEBUGMSGT(("logging:options", "optarg: '%s', argc %d, argv '%s'\n",
+               optarg, argc, argv ? argv[0] : "NULL"));
     optarg++;
     if (!*cp)
         cp = &missing_opt;
@@ -334,7 +354,7 @@
     /*
      * and '.... "-Lx value" ....'  (*with* the quotes)
      */
-    while (*optarg && isspace(*optarg)) {
+    while (*optarg && isspace((unsigned char)(*optarg))) {
         optarg++;
     }
     /*
@@ -352,6 +372,7 @@
         inc_optind = 1;
     }
 
+    DEBUGMSGT(("logging:options", "*cp: '%c'\n", *cp));
     switch (*cp) {
 
     /*
@@ -513,11 +534,7 @@
 int
 snmp_get_do_logging(void)
 {
-    netsnmp_log_handler *logh;
-    for (logh = logh_head; logh; logh = logh->next)
-        if (logh->enabled)
-            return 1;
-    return 0;
+    return (logh_enabled > 0);
 }
 
 
@@ -555,7 +572,7 @@
     logh->imagic  = 0;
 #endif
 
-    logh->enabled = 0;
+    netsnmp_disable_this_loghandler(logh);
 }
 
 void
@@ -579,7 +596,7 @@
         fclose((FILE*)logh->magic);
         logh->magic   = NULL;
     }
-    logh->enabled = 0;
+    netsnmp_disable_this_loghandler(logh);
 }
 
 void
@@ -620,7 +637,7 @@
     for (logh = logh_head; logh; logh = logh->next)
         if (logh->enabled && (logh->type == NETSNMP_LOGHANDLER_STDOUT ||
                               logh->type == NETSNMP_LOGHANDLER_STDERR)) {
-            logh->enabled = 0;
+            netsnmp_disable_this_loghandler(logh);
 	}
 }
 
@@ -631,7 +648,7 @@
 
     for (logh = logh_head; logh; logh = logh->next)
         if (logh->enabled && logh->type == NETSNMP_LOGHANDLER_CALLBACK) {
-            logh->enabled = 0;
+            netsnmp_disable_this_loghandler(logh);
 	}
 }
 
@@ -645,7 +662,7 @@
             snmp_disable_syslog_entry(logh);
         if (logh->type == NETSNMP_LOGHANDLER_FILE)
             snmp_disable_filelog_entry(logh);
-        logh->enabled = 0;
+        netsnmp_disable_this_loghandler(logh);
     }
 }
 
@@ -716,7 +733,10 @@
         if (logh->type == NETSNMP_LOGHANDLER_SYSLOG) {
             logh->magic   = (void*)eventlog_h;
             logh->imagic  = enable;	/* syslog open */
-            logh->enabled = enable;
+            if (logh->enabled && (0 == enable))
+                netsnmp_disable_this_loghandler(logh);
+            else if ((0 == logh->enabled) && enable)
+                netsnmp_enable_this_loghandler(logh);
             found         = 1;
 	}
 
@@ -727,7 +747,10 @@
             logh->magic    = (void*)eventlog_h;
             logh->token    = strdup(ident);
             logh->imagic   = enable;	/* syslog open */
-            logh->enabled  = enable;
+            if (logh->enabled && (0 == enable))
+                netsnmp_disable_this_loghandler(logh);
+            else if ((0 == logh->enabled) && enable)
+                netsnmp_enable_this_loghandler(logh);
         }
     }
 }
@@ -742,12 +765,14 @@
 
     if (!logh->magic) {
         logfile = fopen(logh->token, dont_zero_log ? "a" : "w");
-        if (!logfile)
+        if (!logfile) {
+	    snmp_log_perror(logh->token);
             return;
+	}
         logh->magic = (void*)logfile;
         netsnmp_set_line_buffering(logfile);
     }
-    logh->enabled = 1;
+    netsnmp_enable_this_loghandler(logh);
 }
 
 void
@@ -790,7 +815,7 @@
     for (logh = logh_head; logh; logh = logh->next)
         if (logh->type == NETSNMP_LOGHANDLER_STDOUT ||
             logh->type == NETSNMP_LOGHANDLER_STDERR) {
-            logh->enabled = 1;
+            netsnmp_enable_this_loghandler(logh);
             found         = 1;
         }
 
@@ -811,7 +836,7 @@
 
     for (logh = logh_head; logh; logh = logh->next)
         if (logh->type == NETSNMP_LOGHANDLER_CALLBACK) {
-            logh->enabled = 1;
+            netsnmp_enable_this_loghandler(logh);
             found         = 1;
 	}
 
@@ -900,6 +925,9 @@
     if (!logh)
         return NULL;
 
+    DEBUGMSGT(("logging:register", "registering log type %d with pri %d\n",
+               type, priority));
+
     logh->type     = type;
     switch ( type ) {
     case NETSNMP_LOGHANDLER_STDOUT:
@@ -927,7 +955,7 @@
         return NULL;
     }
     logh->priority = priority;
-    logh->enabled  = 1;
+    netsnmp_enable_this_loghandler(logh);
     netsnmp_add_loghandler( logh );
     return logh;
 }
@@ -941,7 +969,7 @@
     logh = netsnmp_find_loghandler( token );
     if (!logh)
         return 0;
-    logh->enabled = 1;
+    netsnmp_enable_this_loghandler(logh);
     return 1;
 }
 
@@ -954,7 +982,7 @@
     logh = netsnmp_find_loghandler( token );
     if (!logh)
         return 0;
-    logh->enabled = 0;
+    netsnmp_disable_this_loghandler(logh);
     return 1;
 }
 
@@ -986,6 +1014,8 @@
 int
 log_handler_stdouterr(  netsnmp_log_handler* logh, int pri, const char *str)
 {
+    static int      newline = 1;	 /* MTCRITICAL_RESOURCE */
+    const char     *newline_ptr;
     char            sbuf[40];
 
     if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, 
@@ -994,7 +1024,12 @@
     } else {
         strcpy(sbuf, "");
     }
-    newline = str[strlen(str) - 1] == '\n';	/* XXX - Eh ? */
+    /*
+     * Remember whether or not the current line ends with a newline for the
+     * next call of log_handler_stdouterr().
+     */
+    newline_ptr = strrchr(str, '\n');
+    newline = newline_ptr && newline_ptr[1] == 0;
 
     if (logh->imagic)
        printf(         "%s%s", sbuf, str);
@@ -1160,17 +1195,33 @@
 void
 snmp_log_string(int priority, const char *str)
 {
+    static int stderr_enabled = 0;
+    static netsnmp_log_handler lh = { 1, 0, 0, 0, "stderr",
+                                      log_handler_stdouterr, 0, NULL,  NULL,
+                                      NULL };
     netsnmp_log_handler *logh;
 
     /*
      * We've got to be able to log messages *somewhere*!
      * If you don't want stderr logging, then enable something else.
      */
-    if (!logh_head) {
-        snmp_enable_stderrlog();
-        snmp_log_string(LOG_WARNING,
-                        "No log handling enabled - turning on stderr logging\n");
+    if (0 == logh_enabled) {
+        if (!stderr_enabled) {
+            ++stderr_enabled;
+            netsnmp_set_line_buffering(stderr);
+            log_handler_stdouterr( &lh, LOG_WARNING,
+                                   "No log handling enabled - using stderr logging\n");
+        }
+        log_handler_stdouterr( &lh, priority, str );
+
+        return;
     }
+    else if (stderr_enabled) {
+        stderr_enabled = 0;
+        log_handler_stdouterr( &lh, LOG_INFO,
+                               "Log handling defined - disabling stderr\n" );
+    }
+        
 
     /*
      * Start at the given priority, and work "upwards"....
diff --git a/snmplib/snmp_openssl.c b/snmplib/snmp_openssl.c
index 59831dd..e13e59e 100644
--- a/snmplib/snmp_openssl.c
+++ b/snmplib/snmp_openssl.c
@@ -1,24 +1,33 @@
 /*
- * snmptsmsm.c
- *
- * This code merely does openssl initialization so that multilpe
- * modules are safe to call netsnmp_init_openssl() for bootstrapping
- * without worrying about other callers that may have already done so.
+ * snmp_openssl.c
  */
 
 #include <net-snmp/net-snmp-config.h>
 
 #include <net-snmp/net-snmp-includes.h>
 
-#include <net-snmp/library/snmp_openssl.h>
-
 #if defined(NETSNMP_USE_OPENSSL) && defined(HAVE_LIBSSL)
 
+#include <ctype.h>
+
 #include <openssl/evp.h>
 #include <openssl/ssl.h>
+#include <openssl/x509.h>
+#include <openssl/x509v3.h>
+#include <openssl/err.h>
+#include <openssl/objects.h>
+
+#include <net-snmp/library/snmp_debug.h>
+#include <net-snmp/library/cert_util.h>
+#include <net-snmp/library/snmp_openssl.h>
 
 static u_char have_started_already = 0;
 
+/*
+ * This code merely does openssl initialization so that multilpe
+ * modules are safe to call netsnmp_init_openssl() for bootstrapping
+ * without worrying about other callers that may have already done so.
+ */
 void netsnmp_init_openssl(void) {
 
     /* avoid duplicate calls */
@@ -35,4 +44,821 @@
     OpenSSL_add_all_algorithms();
 }
 
+/** netsnmp_openssl_cert_get_name: get subject name field from cert
+ * @internal
+ */
+/** instead of exposing this function, make helper functions for each
+ * field, like netsnmp_openssl_cert_get_commonName, below */
+static char *
+_cert_get_name(X509 *ocert, int which, char **buf, int *len, int flags)
+{
+    X509_NAME       *osubj_name;
+    int              space;
+    char            *buf_ptr;
+
+    if ((NULL == ocert) || ((buf && !len) || (len && !buf)))
+        return NULL;
+
+    osubj_name = X509_get_subject_name(ocert);
+    if (NULL == osubj_name) {
+        DEBUGMSGT(("openssl:cert:name", "no subject name!\n"));
+        return NULL;
+    }
+
+    /** see if buf is big enough, or allocate buf if none specified */
+    space = X509_NAME_get_text_by_NID(osubj_name, which, NULL, 0);
+    if (-1 == space)
+        return NULL;
+    ++space; /* for NUL */
+    if (buf && *buf) {
+        if (*len < space)
+            return NULL;
+        buf_ptr = *buf;
+    }
+    else {
+        buf_ptr = calloc(1,space);
+        if (!buf_ptr)
+            return NULL;
+    }
+    space = X509_NAME_get_text_by_NID(osubj_name, which, buf_ptr, space);
+    if (len)
+        *len = space;
+
+    return buf_ptr;
+}
+
+/** netsnmp_openssl_cert_get_subjectName: get subject name field from cert
+ */
+char *
+netsnmp_openssl_cert_get_subjectName(X509 *ocert, char **buf, int *len)
+{
+    X509_NAME       *osubj_name;
+    int              space;
+    char            *buf_ptr;
+
+    if ((NULL == ocert) || ((buf && !len) || (len && !buf)))
+        return NULL;
+
+    osubj_name = X509_get_subject_name(ocert);
+    if (NULL == osubj_name) {
+        DEBUGMSGT(("openssl:cert:name", "no subject name!\n"));
+        return NULL;
+    }
+
+    if (buf) {
+        buf_ptr = *buf;
+        space = *len;
+    }
+    else {
+        buf_ptr = NULL;
+        space = 0;
+    }
+    buf_ptr = X509_NAME_oneline(osubj_name, buf_ptr, space);
+    if (len)
+        *len = strlen(buf_ptr);
+
+    return buf_ptr;
+}
+
+/** netsnmp_openssl_cert_get_commonName: get commonName for cert.
+ * if a pointer to a buffer and its length are specified, they will be
+ * used. otherwise, a new buffer will be allocated, which the caller will
+ * be responsbile for releasing.
+ */
+char *
+netsnmp_openssl_cert_get_commonName(X509 *ocert, char **buf, int *len)
+{
+    return _cert_get_name(ocert, NID_commonName, buf, len, 0);
+}
+
+/** netsnmp_openssl_cert_dump_name: dump subject names in cert
+ */
+void
+netsnmp_openssl_cert_dump_names(X509 *ocert)
+{
+    int              i, onid;
+    X509_NAME_ENTRY *oname_entry;
+    X509_NAME       *osubj_name;
+    const char      *prefix_short, *prefix_long;
+
+    if (NULL == ocert)
+        return;
+
+    osubj_name = X509_get_subject_name(ocert);
+    if (NULL == osubj_name) {
+        DEBUGMSGT(("9:cert:dump:names", "no subject name!\n"));
+        return;
+    }
+
+    for (i = 0; i < X509_NAME_entry_count(osubj_name); i++) {
+        oname_entry = X509_NAME_get_entry(osubj_name, i);
+        netsnmp_assert(NULL != oname_entry);
+
+        if (oname_entry->value->type != V_ASN1_PRINTABLESTRING)
+            continue;
+
+        /** get NID */
+        onid = OBJ_obj2nid(oname_entry->object);
+        if (onid == NID_undef) {
+            prefix_long = prefix_short = "UNKNOWN";
+        }
+        else {
+            prefix_long = OBJ_nid2ln(onid);
+            prefix_short = OBJ_nid2sn(onid);
+        }
+
+        DEBUGMSGT(("9:cert:dump:names",
+                   "[%02d] NID type %d, ASN type %d\n", i, onid,
+                   oname_entry->value->type));
+        DEBUGMSGT(("9:cert:dump:names", "%s/%s: '%s'\n", prefix_long,
+                   prefix_short, ASN1_STRING_data(oname_entry->value)));
+    }
+}
+
+static char *
+_cert_get_extension(X509_EXTENSION  *oext, char **buf, int *len, int flags)
+{
+    int              space;
+    char            *buf_ptr = NULL;
+    u_char          *data;
+    BIO             *bio;
+    
+    if ((NULL == oext) || ((buf && !len) || (len && !buf)))
+        return NULL;
+
+    bio = BIO_new(BIO_s_mem());
+    if (NULL == bio) {
+        snmp_log(LOG_ERR, "could not get bio for extension\n");
+        return NULL;
+    }
+    if (X509V3_EXT_print(bio, oext, 0, 0) != 1) {
+        snmp_log(LOG_ERR, "could not print extension!\n");
+        BIO_vfree(bio);
+        return NULL;
+    }
+
+    space = BIO_get_mem_data(bio, &data);
+    if (buf && *buf) {
+        if (*len < space) 
+            buf_ptr = NULL;
+        else
+            buf_ptr = *buf;
+    }
+    else
+        buf_ptr = calloc(1,space + 1);
+    
+    if (!buf_ptr) {
+        snmp_log(LOG_ERR,
+                 "not enough space or error in allocation for extenstion\n");
+        BIO_vfree(bio);
+        return NULL;
+    }
+    memcpy(buf_ptr, data, space);
+    buf_ptr[space] = 0;
+    if (len)
+        *len = space;
+
+    BIO_vfree(bio);
+
+    return buf_ptr;
+}
+
+/** netsnmp_openssl_cert_get_extension: get extension field from cert
+ * @internal
+ */
+/** instead of exposing this function, make helper functions for each
+ * field, like netsnmp_openssl_cert_get_subjectAltName, below */
+X509_EXTENSION  *
+_cert_get_extension_at(X509 *ocert, int pos, char **buf, int *len, int flags)
+{
+    X509_EXTENSION  *oext;
+
+    if ((NULL == ocert) || ((buf && !len) || (len && !buf)))
+        return NULL;
+
+    oext = X509_get_ext(ocert,pos);
+    if (NULL == oext) {
+        snmp_log(LOG_ERR, "extension number %d not found!\n", pos);
+        netsnmp_openssl_cert_dump_extensions(ocert);
+        return NULL;
+    }
+
+    return oext;
+}
+
+/** netsnmp_openssl_cert_get_extension: get extension field from cert
+ * @internal
+ */
+/** instead of exposing this function, make helper functions for each
+ * field, like netsnmp_openssl_cert_get_subjectAltName, below */
+static char *
+_cert_get_extension_str_at(X509 *ocert, int pos, char **buf, int *len,
+                           int flags)
+{
+    X509_EXTENSION  *oext;
+
+    if ((NULL == ocert) || ((buf && !len) || (len && !buf)))
+        return NULL;
+
+    oext = X509_get_ext(ocert,pos);
+    if (NULL == oext) {
+        snmp_log(LOG_ERR, "extension number %d not found!\n", pos);
+        netsnmp_openssl_cert_dump_extensions(ocert);
+        return NULL;
+    }
+
+    return _cert_get_extension(oext, buf, len, flags);
+}
+
+/** _cert_get_extension_id: get extension field from cert
+ * @internal
+ */
+/** instead of exposing this function, make helper functions for each
+ * field, like netsnmp_openssl_cert_get_subjectAltName, below */
+X509_EXTENSION *
+_cert_get_extension_id(X509 *ocert, int which, char **buf, int *len, int flags)
+{
+    int pos;
+
+    if ((NULL == ocert) || ((buf && !len) || (len && !buf)))
+        return NULL;
+
+    pos = X509_get_ext_by_NID(ocert,which,-1);
+    if (pos < 0) {
+        DEBUGMSGT(("openssl:cert:name", "no extension %d\n", which));
+        return NULL;
+    }
+
+    return _cert_get_extension_at(ocert, pos, buf, len, flags);
+}
+
+/** _cert_get_extension_id_str: get extension field from cert
+ * @internal
+ */
+/** instead of exposing this function, make helper functions for each
+ * field, like netsnmp_openssl_cert_get_subjectAltName, below */
+static char *
+_cert_get_extension_id_str(X509 *ocert, int which, char **buf, int *len,
+                           int flags)
+{
+    int pos;
+
+    if ((NULL == ocert) || ((buf && !len) || (len && !buf)))
+        return NULL;
+
+    pos = X509_get_ext_by_NID(ocert,which,-1);
+    if (pos < 0) {
+        DEBUGMSGT(("openssl:cert:name", "no extension %d\n", which));
+        return NULL;
+    }
+
+    return _cert_get_extension_str_at(ocert, pos, buf, len, flags);
+}
+
+static char *
+_extract_oname(const GENERAL_NAME *oname)
+{
+    char  ipbuf[60], *buf = NULL, *rtn = NULL;
+
+    if (NULL == oname)
+        return NULL;
+
+    switch ( oname->type ) {
+        case GEN_EMAIL:
+        case GEN_DNS:
+            /*case GEN_URI:*/
+            ASN1_STRING_to_UTF8((unsigned char**)&buf, oname->d.ia5);
+            if (buf)
+                rtn = strdup(buf);
+            break;
+
+        case GEN_IPADD:
+            if (oname->d.iPAddress->length == 4) {
+                sprintf(ipbuf, "%d.%d.%d.%d", oname->d.iPAddress->data[0],
+                        oname->d.iPAddress->data[1],
+                        oname->d.iPAddress->data[2],
+                        oname->d.iPAddress->data[3]);
+                rtn = strdup(ipbuf);
+            }
+            else if ((oname->d.iPAddress->length == 16) ||
+                     (oname->d.iPAddress->length == 20)) {
+                char *pos = ipbuf;
+                int   j;
+                for(j = 0; j < oname->d.iPAddress->length; ++j) {
+                    *pos++ = VAL2HEX(oname->d.iPAddress->data[j]);
+                    *pos++ = ':';
+                }
+                *pos = '\0';
+                rtn = strdup(ipbuf);
+            }
+            else
+                NETSNMP_LOGONCE((LOG_WARNING, "unexpected ip addr length %d\n",
+                       oname->d.iPAddress->length));
+
+            break;
+        default:
+            DEBUGMSGT(("openssl:cert:san", "unknown/unsupported type %d\n",
+                       oname->type));
+            break;
+    }
+    DEBUGMSGT(("9:openssl:cert:san", "san=%s\n", buf));
+    if (buf)
+        OPENSSL_free(buf);
+
+    return rtn;
+}
+
+/**
+ */
+/** netsnmp_openssl_cert_get_subjectAltName: get subjectAltName for cert.
+ * if a pointer to a buffer and its length are specified, they will be
+ * used. otherwise, a new buffer will be allocated, which the caller will
+ * be responsbile for releasing.
+ */
+char *
+netsnmp_openssl_cert_get_subjectAltNames(X509 *ocert, char **buf, int *len)
+{
+    return _cert_get_extension_id_str(ocert, NID_subject_alt_name, buf, len, 0);
+}
+
+void
+netsnmp_openssl_cert_dump_extensions(X509 *ocert)
+{
+    X509_EXTENSION  *extension;
+    const char      *extension_name;
+    char             buf[SNMP_MAXBUF_SMALL], *buf_ptr = buf, *str, *lf;
+    int              i, num_extensions, buf_len, nid;
+
+    if (NULL == ocert)
+        return;
+
+    DEBUGIF("9:cert:dump") 
+        ;
+    else
+        return; /* bail if debug not enabled */
+
+    num_extensions = X509_get_ext_count(ocert);
+    if (0 == num_extensions)
+        DEBUGMSGT(("9:cert:dump", "    0 extensions\n"));
+    for(i = 0; i < num_extensions; i++) {
+        extension = X509_get_ext(ocert, i);
+        nid = OBJ_obj2nid(X509_EXTENSION_get_object(extension));
+        extension_name = OBJ_nid2sn(nid);
+        buf_len = sizeof(buf);
+        str = _cert_get_extension_str_at(ocert, i, &buf_ptr, &buf_len, 0);
+        lf = strchr(str, '\n'); /* look for multiline strings */
+        if (NULL != lf)
+            *lf = '\0'; /* only log first line of multiline here */
+        DEBUGMSGT(("9:cert:dump", "    %2d: %s = %s\n", i,
+                   extension_name, str));
+        while(lf) { /* log remaining parts of multiline string */
+            str = ++lf;
+            if (*str == '\0')
+               break;
+            lf = strchr(str, '\n');
+            if (NULL == lf) 
+                break;
+            *lf = '\0';
+            DEBUGMSGT(("9:cert:dump", "        %s\n", str));
+        }
+    }
+}
+
+static int _htmap[NS_HASH_MAX + 1] = {
+    0, NID_md5WithRSAEncryption, NID_sha1WithRSAEncryption,
+    NID_sha224WithRSAEncryption, NID_sha256WithRSAEncryption,
+    NID_sha384WithRSAEncryption, NID_sha512WithRSAEncryption };
+
+int
+_nid2ht(int nid)
+{
+    int i;
+    for (i=1; i<= NS_HASH_MAX; ++i) {
+        if (nid == _htmap[i])
+            return i;
+    }
+    return 0;
+}
+
+int
+_ht2nid(int ht)
+{
+    if ((ht < 0) || (ht > NS_HASH_MAX))
+        return 0;
+    return _htmap[ht];
+}
+
+/**
+ * returns allocated pointer caller must free.
+ */
+int
+netsnmp_openssl_cert_get_hash_type(X509 *ocert)
+{
+    if (NULL == ocert)
+        return 0;
+
+    return _nid2ht(OBJ_obj2nid(ocert->sig_alg->algorithm));
+}
+
+/**
+ * returns allocated pointer caller must free.
+ */
+char *
+netsnmp_openssl_cert_get_fingerprint(X509 *ocert, int alg)
+{
+    u_char           fingerprint[EVP_MAX_MD_SIZE];
+    u_int            fingerprint_len, nid;
+    const EVP_MD    *digest;
+    char            *result = NULL;
+
+    if (NULL == ocert)
+        return NULL;
+
+    nid = OBJ_obj2nid(ocert->sig_alg->algorithm);
+    DEBUGMSGT(("9:openssl:fingerprint", "alg %d, cert nid %d (%d)\n", alg, nid,
+               _nid2ht(nid)));
+        
+    if ((-1 == alg) && nid)
+        alg = _nid2ht(nid);
+
+    switch (alg) {
+        case NS_HASH_MD5:
+            snmp_log(LOG_ERR, "hash type md5 not yet supported\n");
+            return NULL;
+            break;
+        
+        case NS_HASH_NONE:
+            snmp_log(LOG_ERR, "hash type none not supported. using SHA1\n");
+            /** fall through */
+
+        case NS_HASH_SHA1:
+            digest = EVP_sha1();
+            break;
+
+#ifndef OPENSSL_NO_SHA256
+        case NS_HASH_SHA224:
+            digest = EVP_sha224();
+            break;
+
+        case NS_HASH_SHA256:
+            digest = EVP_sha256();
+            break;
+
+#endif
+#ifndef OPENSSL_NO_SHA512
+        case NS_HASH_SHA384:
+            digest = EVP_sha384();
+            break;
+
+        case NS_HASH_SHA512:
+            digest = EVP_sha512();
+            break;
+#endif
+
+        default:
+            snmp_log(LOG_ERR, "unknown hash algorithm %d\n", alg);
+            return NULL;
+    }
+
+    if (_nid2ht(nid) != alg) {
+        DEBUGMSGT(("openssl:fingerprint",
+                   "WARNING: alg %d does not match cert alg %d\n",
+                   alg, _nid2ht(nid)));
+    }
+    if (X509_digest(ocert,digest,fingerprint,&fingerprint_len)) {
+        binary_to_hex(fingerprint, fingerprint_len, &result);
+        if (NULL == result)
+            snmp_log(LOG_ERR, "failed to hexify fingerprint\n");
+        else
+            DEBUGMSGT(("9:openssl:fingerprint", "fingerprint %s\n", result));
+    }
+    else
+        snmp_log(LOG_ERR,"failed to compute fingerprint\n");
+
+    return result;
+}
+
+/**
+ * get container of netsnmp_cert_map structures from an ssl connection
+ * certificate chain.
+ */
+netsnmp_container *
+netsnmp_openssl_get_cert_chain(SSL *ssl)
+{
+    X509                  *ocert, *ocert_tmp;
+    STACK_OF(X509)        *ochain;
+    char                  *fingerprint;
+    netsnmp_container     *chain_map;
+    netsnmp_cert_map      *cert_map;
+    int                    i;
+
+    netsnmp_assert_or_return(ssl != NULL, NULL);
+    
+    if (NULL == (ocert = SSL_get_peer_certificate(ssl))) {
+        /** no peer cert */
+        snmp_log(LOG_ERR, "SSL peer has no certificate\n");
+        return NULL;
+    }
+    DEBUGIF("9:cert:dump") {
+        netsnmp_openssl_cert_dump_extensions(ocert);
+    }
+
+    /*
+     * get fingerprint and save it
+     */
+    fingerprint = netsnmp_openssl_cert_get_fingerprint(ocert, -1);
+    if (NULL == fingerprint)
+        return NULL;
+
+    /*
+     * allocate cert map. Don't pass in fingerprint, since it would strdup
+     * it and we've already got a copy.
+     */
+    cert_map = netsnmp_cert_map_alloc(NULL, ocert);
+    if (NULL == cert_map) {
+        free(fingerprint);
+        return NULL;
+    }
+    cert_map->fingerprint = fingerprint;
+    cert_map->hashType = netsnmp_openssl_cert_get_hash_type(ocert);
+
+    chain_map = netsnmp_cert_map_container_create(0); /* no fp subcontainer */
+    if (NULL == chain_map) {
+        netsnmp_cert_map_free(cert_map);
+        return NULL;
+    }
+    
+    CONTAINER_INSERT(chain_map, cert_map);
+
+    /** check for a chain to a CA */
+    ochain = SSL_get_peer_cert_chain(ssl);
+    if ((NULL == ochain) || (0 == sk_num((const void *)ochain))) {
+        DEBUGMSGT(("ssl:cert:chain", "peer has no cert chain\n"));
+    }
+    else {
+        /*
+         * loop over chain, adding fingerprint / cert for each
+         */
+        DEBUGMSGT(("ssl:cert:chain", "examining cert chain\n"));
+        for(i = 0; i < sk_num((const void *)ochain); ++i) {
+            ocert_tmp = (X509*)sk_value((const void *)ochain,i);
+            fingerprint = netsnmp_openssl_cert_get_fingerprint(ocert_tmp,
+                                                               NS_HASH_SHA1);
+            if (NULL == fingerprint)
+                break;
+            cert_map = netsnmp_cert_map_alloc(NULL, ocert);
+            if (NULL == cert_map) {
+                free(fingerprint);
+                break;
+            }
+            cert_map->fingerprint = fingerprint;
+            cert_map->hashType = netsnmp_openssl_cert_get_hash_type(ocert_tmp);
+
+            CONTAINER_INSERT(chain_map, cert_map);
+        } /* chain loop */
+        /*
+         * if we broke out of loop before finishing, clean up
+         */
+        if (i < sk_num((const void *)ochain)) 
+            CONTAINER_FREE_ALL(chain_map, NULL);
+    } /* got peer chain */
+
+    DEBUGMSGT(("ssl:cert:chain", "found %" NETSNMP_PRIz "u certs in chain\n",
+               CONTAINER_SIZE(chain_map)));
+    if (CONTAINER_SIZE(chain_map) == 0) {
+        CONTAINER_FREE(chain_map);
+        chain_map = NULL;
+    }
+
+    return chain_map;
+}
+
+/*
+tlstmCertSANRFC822Name "Maps a subjectAltName's rfc822Name to a
+                  tmSecurityName.  The local part of the rfc822Name is
+                  passed unaltered but the host-part of the name must
+                  be passed in lower case.
+                  Example rfc822Name Field:  FooBar@Example.COM
+                  is mapped to tmSecurityName: FooBar@example.com"
+
+tlstmCertSANDNSName "Maps a subjectAltName's dNSName to a
+                  tmSecurityName after first converting it to all
+                  lower case."
+
+tlstmCertSANIpAddress "Maps a subjectAltName's iPAddress to a
+                  tmSecurityName by transforming the binary encoded
+                  address as follows:
+                  1) for IPv4 the value is converted into a decimal
+                     dotted quad address (e.g. '192.0.2.1')
+                  2) for IPv6 addresses the value is converted into a
+                     32-character all lowercase hexadecimal string
+                     without any colon separators.
+
+                     Note that the resulting length is the maximum
+                     length supported by the View-Based Access Control
+                     Model (VACM).  Note that using both the Transport
+                     Security Model's support for transport prefixes
+                     (see the SNMP-TSM-MIB's
+                     snmpTsmConfigurationUsePrefix object for details)
+                     will result in securityName lengths that exceed
+                     what VACM can handle."
+
+tlstmCertSANAny "Maps any of the following fields using the
+                  corresponding mapping algorithms:
+                  | rfc822Name | tlstmCertSANRFC822Name |
+                  | dNSName    | tlstmCertSANDNSName    |
+                  | iPAddress  | tlstmCertSANIpAddress  |
+                  The first matching subjectAltName value found in the
+                  certificate of the above types MUST be used when
+                  deriving the tmSecurityName."
+*/
+char *
+_cert_get_san_type(X509 *ocert, int mapType)
+{
+    GENERAL_NAMES      *onames;
+    const GENERAL_NAME *oname = NULL;
+    char               *buf = NULL, *lower = NULL;
+    int                 count, i;
+ 
+    onames = (GENERAL_NAMES *)X509_get_ext_d2i(ocert, NID_subject_alt_name,
+                                               NULL, NULL );
+    if (NULL == onames)
+        return NULL;
+
+    count = sk_GENERAL_NAME_num(onames);
+
+    for (i=0 ; i <count; ++i)  {
+        oname = sk_GENERAL_NAME_value(onames, i);
+
+        if (GEN_DNS == oname->type) {
+            if ((TSNM_tlstmCertSANDNSName == mapType) ||
+                (TSNM_tlstmCertSANAny == mapType)) {
+                lower = buf = _extract_oname( oname );;
+                break;
+            }
+        }
+        else if (GEN_IPADD == oname->type) {
+            if ((TSNM_tlstmCertSANIpAddress == mapType) ||
+                (TSNM_tlstmCertSANAny == mapType))
+                buf = _extract_oname(oname);
+                break;
+        }
+        else if (GEN_EMAIL == oname->type) {
+            if ((TSNM_tlstmCertSANRFC822Name == mapType) ||
+                (TSNM_tlstmCertSANAny == mapType)) {
+                buf = _extract_oname(oname);
+                lower = strchr(buf, '@');
+                if (NULL == lower) {
+                    DEBUGMSGT(("openssl:secname:extract",
+                               "email %s has no '@'!\n", buf));
+                }
+                else {
+                    ++lower;
+                    break;
+                }
+            }
+            
+        }
+    } /* for loop */
+
+    if (lower)
+        for ( ; *lower; ++lower )
+            if (isascii(*lower))
+                *lower = tolower(0xFF & *lower);
+    DEBUGMSGT(("openssl:cert:extension:san", "#%d type %d: %s\n", i,
+               oname ? oname->type : -1, buf ? buf : "NULL"));
+
+    return buf;
+}
+
+char *
+netsnmp_openssl_extract_secname(netsnmp_cert_map *cert_map,
+                                netsnmp_cert_map *peer_cert)
+{
+    char       *rtn = NULL;
+
+    if (NULL == cert_map)
+        return NULL;
+
+    DEBUGMSGT(("openssl:secname:extract",
+               "checking priority %d, san of type %d for %s\n",
+               cert_map->priority, cert_map->mapType, peer_cert->fingerprint));
+
+    switch(cert_map->mapType) {
+        case TSNM_tlstmCertSpecified:
+            rtn = strdup(cert_map->data);
+            break;
+
+        case TSNM_tlstmCertSANRFC822Name:
+        case TSNM_tlstmCertSANDNSName:
+        case TSNM_tlstmCertSANIpAddress:
+        case TSNM_tlstmCertSANAny:
+            if (NULL == peer_cert) {
+                DEBUGMSGT(("openssl:secname:extract", "no peer cert for %s\n",
+                           cert_map->fingerprint));
+                break;
+            }
+            rtn = _cert_get_san_type(peer_cert->ocert, cert_map->mapType);
+            if (NULL == rtn) {
+                DEBUGMSGT(("openssl:secname:extract", "no san for %s\n",
+                           peer_cert->fingerprint));
+            }
+            break;
+
+        case TSNM_tlstmCertCommonName:
+            rtn = netsnmp_openssl_cert_get_commonName(cert_map->ocert, NULL,
+                                                       NULL);
+            break;
+        default:
+            snmp_log(LOG_ERR, "cant extract secname for unknown map type %d\n",
+                     cert_map->mapType);
+            break;
+    } /* switch mapType */
+
+    if (rtn) {
+        DEBUGMSGT(("openssl:secname:extract",
+                   "found map %d, type %d for %s: %s\n", cert_map->priority,
+                   cert_map->mapType, peer_cert->fingerprint, rtn));
+        if (strlen(rtn) >32) {
+            DEBUGMSGT(("openssl:secname:extract",
+                       "secName longer than 32 chars! dropping...\n"));
+            SNMP_FREE(rtn);
+        }
+    }
+    else
+        DEBUGMSGT(("openssl:secname:extract",
+                   "no map of type %d for %s\n",
+                   cert_map->mapType, peer_cert->fingerprint));
+    return rtn;
+}
+
+int
+netsnmp_openssl_cert_issued_by(X509 *issuer, X509 *cert)
+{
+    return (X509_check_issued(issuer, cert) == X509_V_OK);
+}
+
+
+void
+netsnmp_openssl_err_log(const char *prefix)
+{
+    unsigned long err;
+    for (err = ERR_get_error(); err; err = ERR_get_error()) {
+        snmp_log(LOG_ERR,"%s: %ld\n", prefix ? prefix: "openssl error", err);
+        snmp_log(LOG_ERR, "library=%d, function=%d, reason=%d\n",
+                 ERR_GET_LIB(err), ERR_GET_FUNC(err), ERR_GET_REASON(err));
+    }
+}
+
+void
+netsnmp_openssl_null_checks(SSL *ssl, int *null_auth, int *null_cipher)
+{
+    const SSL_CIPHER *cipher;
+    char           tmp_buf[128], *cipher_alg, *auth_alg;
+
+    if (null_auth)
+        *null_auth = -1; /* unknown */
+    if (null_cipher)
+        *null_cipher = -1; /* unknown */
+    if (NULL == ssl)
+        return;
+
+    cipher = SSL_get_current_cipher(ssl);
+    if (NULL == cipher) {
+        DEBUGMSGTL(("ssl:cipher", "no cipher yet\n"));
+        return;
+    }
+    SSL_CIPHER_description(NETSNMP_REMOVE_CONST(SSL_CIPHER *, cipher), tmp_buf, sizeof(tmp_buf));
+    /** no \n since tmp_buf already has one */
+    DEBUGMSGTL(("ssl:cipher", "current cipher: %s", tmp_buf));
+
+    /*
+     * run "openssl ciphers -v eNULL" and "openssl ciphers -v aNULL"
+     * to see NULL encryption/authentication algorithms. e.g.
+     *
+     * EXP-ADH-RC4-MD5 SSLv3 Kx=DH(512) Au=None Enc=RC4(40) Mac=MD5  export
+     * NULL-SHA        SSLv3 Kx=RSA     Au=RSA  Enc=None    Mac=SHA1
+     */
+    if (null_cipher) {
+        cipher_alg = strstr(tmp_buf, "Enc=");
+        if (cipher_alg) {
+            cipher_alg += 4;
+            if (strncmp(cipher_alg,"None", 4) == 0)
+                *null_cipher = 1;
+            else
+                *null_cipher = 0;
+        }
+    }
+    if (null_auth) {
+        auth_alg = strstr(tmp_buf, "Au=");
+        if (auth_alg) {
+            auth_alg += 3;
+            if (strncmp(auth_alg,"None", 4) == 0)
+                *null_auth = 1;
+            else
+                *null_auth = 0;
+        }
+    }
+}
+
 #endif /* NETSNMP_USE_OPENSSL && HAVE_LIBSSL */
diff --git a/snmplib/snmp_parse_args.c b/snmplib/snmp_parse_args.c
index c1e316b..bf60419 100644
--- a/snmplib/snmp_parse_args.c
+++ b/snmplib/snmp_parse_args.c
@@ -36,11 +36,7 @@
 #include <netinet/in.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -52,9 +48,6 @@
 #if HAVE_SYS_SELECT_H
 #include <sys/select.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_NETDB_H
 #include <netdb.h>
 #endif
@@ -62,6 +55,7 @@
 #include <arpa/inet.h>
 #endif
 
+#include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/types.h>
 #include <net-snmp/output_api.h>
 #include <net-snmp/config_api.h>
@@ -139,6 +133,8 @@
             "  -M DIR[" ENV_SEPARATOR "...]\t\tlook in given list of directories for MIBs\n");
 #ifndef NETSNMP_DISABLE_MIB_LOADING
     fprintf(outf,
+            "    (default: %s)\n", netsnmp_get_mib_directory());
+    fprintf(outf,
             "  -P MIBOPTS\t\tToggle various defaults controlling MIB parsing:\n");
     snmp_mib_toggle_options_usage("\t\t\t  ", outf);
 #endif
@@ -192,25 +188,21 @@
                                char **Apsz, char **Xpsz, int argc,
                                char *const *argv);
 
-/*
- * This method does the real work for snmp_parse_args.  It takes an
- * extra argument, proxy, and uses this to decide how to handle the lack of
- * of a community string.
- */
 int
-snmp_parse_args(int argc,
-                char **argv,
-                netsnmp_session * session, const char *localOpts,
-                void (*proc) (int, char *const *, int))
+netsnmp_parse_args(int argc,
+                   char **argv,
+                   netsnmp_session * session, const char *localOpts,
+                   void (*proc) (int, char *const *, int),
+                   int flags)
 {
     static char	   *sensitive[4] = { NULL, NULL, NULL, NULL };
-    int             arg, sp = 0, zero_sensitive = 1, testcase = 0;
+    int             arg, sp = 0, testcase = 0;
     char           *cp;
     char           *Apsz = NULL;
     char           *Xpsz = NULL;
     char           *Cpsz = NULL;
     char            Opts[BUF_SIZE];
-    int             logopt = 0;
+    int             zero_sensitive = !( flags & NETSNMP_PARSE_ARGS_NOZERO );
 
     /*
      * initialize session to default values 
@@ -225,14 +217,6 @@
         strcat(Opts, localOpts);
     }
 
-    if (strcmp(argv[0], "snmpd-trapsess") == 0 ||
-	strcmp(argv[0], "snmpd-proxy")    == 0) {
-	/*  Don't worry about zeroing sensitive parameters as they are not
-	    on the command line anyway (called from internal config-line
-	    handler).  */
-	zero_sensitive = 0;
-    }
-
     /*
      * get the options 
      */
@@ -247,11 +231,11 @@
         switch (arg) {
         case '-':
             if (strcasecmp(optarg, "help") == 0) {
-                return (-1);
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             }
             if (strcasecmp(optarg, "version") == 0) {
                 fprintf(stderr,"NET-SNMP version: %s\n",netsnmp_get_version());
-                return (-2);
+                return (NETSNMP_PARSE_ARGS_SUCCESS_EXIT);
             }
 
             handle_long_opt(optarg);
@@ -259,17 +243,17 @@
 
         case 'V':
             fprintf(stderr, "NET-SNMP version: %s\n", netsnmp_get_version());
-            return (-2);
+            return (NETSNMP_PARSE_ARGS_SUCCESS_EXIT);
 
         case 'h':
-            return (-1);
+            return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             break;
 
         case 'H':
             init_snmp("snmpapp");
             fprintf(stderr, "Configuration directives understood:\n");
             read_config_print_usage("  ");
-            return (-2);
+            return (NETSNMP_PARSE_ARGS_SUCCESS_EXIT);
 
         case 'Y':
             netsnmp_config_remember(optarg);
@@ -291,7 +275,7 @@
             if (cp != NULL) {
                 fprintf(stderr, "Unknown output option passed to -O: %c.\n", 
 			*cp);
-                return (-1);
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             }
             break;
 
@@ -300,7 +284,7 @@
             if (cp != NULL) {
                 fprintf(stderr, "Unknown input option passed to -I: %c.\n",
 			*cp);
-                return (-1);
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             }
             break;
 
@@ -310,7 +294,7 @@
             if (cp != NULL) {
                 fprintf(stderr,
                         "Unknown parsing option passed to -P: %c.\n", *cp);
-                return (-1);
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             }
             break;
 #endif /* NETSNMP_DISABLE_MIB_LOADING */
@@ -344,35 +328,70 @@
                 fprintf(stderr,
                         "Invalid version specified after -v flag: %s\n",
                         optarg);
-                return (-1);
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             }
             break;
 
         case 'p':
             fprintf(stderr, "Warning: -p option is no longer used - ");
             fprintf(stderr, "specify the remote host as HOST:PORT\n");
-            return (-1);
+            return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             break;
 
         case 'T':
-            fprintf(stderr, "Warning: -T option is no longer used - ");
-            fprintf(stderr, "specify the remote host as TRANSPORT:HOST\n");
-            return (-1);
-            break;
+        {
+            char leftside[SNMP_MAXBUF_MEDIUM], rightside[SNMP_MAXBUF_MEDIUM];
+            char *tmpcp, *tmpopt;
+            
+            /* ensure we have a proper argument */
+            tmpopt = strdup(optarg);
+            tmpcp = strchr(tmpopt, '=');
+            if (!tmpcp) {
+                fprintf(stderr, "-T expects a NAME=VALUE pair.\n");
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
+            }
+            *tmpcp++ = '\0';
 
+            /* create the transport config container if this is the first */
+            if (!session->transport_configuration) {
+                netsnmp_container_init_list();
+                session->transport_configuration =
+                    netsnmp_container_find("transport_configuration:fifo");
+                if (!session->transport_configuration) {
+                    fprintf(stderr, "failed to initialize the transport configuration container\n");
+                    free(tmpopt);
+                    return (NETSNMP_PARSE_ARGS_ERROR);
+                }
+
+                session->transport_configuration->compare =
+                    (netsnmp_container_compare*)
+                    netsnmp_transport_config_compare;
+            }
+
+            /* set the config */
+            strlcpy(leftside, tmpopt, sizeof(leftside));
+            strlcpy(rightside, tmpcp, sizeof(rightside));
+
+            CONTAINER_INSERT(session->transport_configuration,
+                             netsnmp_transport_create_config(leftside,
+                                                             rightside));
+            free(tmpopt);
+        }
+        break;
+            
         case 't':
             session->timeout = (long)(atof(optarg) * 1000000L);
             if (session->timeout <= 0) {
                 fprintf(stderr, "Invalid timeout in seconds after -t flag.\n");
-                return (-1);
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             }
             break;
 
         case 'r':
             session->retries = atoi(optarg);
-            if (session->retries < 0 || !isdigit(optarg[0])) {
+            if (session->retries < 0 || !isdigit((unsigned char)(optarg[0]))) {
                 fprintf(stderr, "Invalid number of retries after -r flag.\n");
-                return (-1);
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             }
             break;
 
@@ -384,7 +403,7 @@
 		    sp++;
 		} else {
 		    fprintf(stderr, "malloc failure processing -c flag.\n");
-		    return -1;
+		    return NETSNMP_PARSE_ARGS_ERROR;
 		}
 	    } else {
 		Cpsz = optarg;
@@ -394,15 +413,14 @@
         case '3':
 	    /*  TODO: This needs to zero things too.  */
             if (snmpv3_options(optarg, session, &Apsz, &Xpsz, argc, argv) < 0){
-                return (-1);
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             }
             break;
 
         case 'L':
             if (snmp_log_options(optarg, argc, argv) < 0) {
-                return (-1);
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             }
-	    logopt = 1;
             break;
 
 #define SNMPV3_CMD_OPTIONS
@@ -412,7 +430,7 @@
             session->engineBoots = strtoul(optarg, &cp, 10);
             if (errno || cp == optarg) {
                 fprintf(stderr, "Need engine boots value after -Z flag.\n");
-                return (-1);
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             }
             if (*cp == ',') {
                 char *endptr;
@@ -420,7 +438,7 @@
                 session->engineTime = strtoul(cp, &endptr, 10);
                 if (errno || cp == endptr) {
                     fprintf(stderr, "Need engine time after \"-Z engineBoot,\".\n");
-                    return (-1);
+                    return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
                 }
             }
             /*
@@ -430,11 +448,11 @@
                 session->engineTime = strtoul(argv[optind], &cp, 10);
                 if (errno || cp == argv[optind]) {
                     fprintf(stderr, "Need engine time after \"-Z engineBoot\".\n");
-                    return (-1);
+                    return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
                 }
             } else {
                 fprintf(stderr, "Need engine time after \"-Z engineBoot\".\n");
-                return (-1);
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             }
             break;
 
@@ -444,18 +462,18 @@
 
                 if (ebuf == NULL) {
                     fprintf(stderr, "malloc failure processing -e flag.\n");
-                    return (-1);
+                    return (NETSNMP_PARSE_ARGS_ERROR);
                 }
                 if (!snmp_hex_to_binary
                     (&ebuf, &ebuf_len, &eout_len, 1, optarg)) {
                     fprintf(stderr, "Bad engine ID value after -e flag.\n");
                     free(ebuf);
-                    return (-1);
+                    return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
                 }
                 if ((eout_len < 5) || (eout_len > 32)) {
                     fprintf(stderr, "Invalid engine ID value after -e flag.\n");
                     free(ebuf);
-                    return (-1);
+                    return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
                 }
                 session->securityEngineID = ebuf;
                 session->securityEngineIDLen = eout_len;
@@ -468,18 +486,18 @@
 
                 if (ebuf == NULL) {
                     fprintf(stderr, "malloc failure processing -E flag.\n");
-                    return (-1);
+                    return (NETSNMP_PARSE_ARGS_ERROR);
                 }
                 if (!snmp_hex_to_binary(&ebuf, &ebuf_len,
 					&eout_len, 1, optarg)) {
                     fprintf(stderr, "Bad engine ID value after -E flag.\n");
                     free(ebuf);
-                    return (-1);
+                    return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
                 }
                 if ((eout_len < 5) || (eout_len > 32)) {
                     fprintf(stderr, "Invalid engine ID value after -E flag.\n");
                     free(ebuf);
-                    return (-1);
+                    return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
                 }
                 session->contextEngineID = ebuf;
                 session->contextEngineIDLen = eout_len;
@@ -500,7 +518,7 @@
 		    sp++;
 		} else {
 		    fprintf(stderr, "malloc failure processing -u flag.\n");
-		    return -1;
+		    return NETSNMP_PARSE_ARGS_ERROR;
 		}
 	    } else {
 		session->securityName = optarg;
@@ -527,7 +545,7 @@
                 fprintf(stderr,
                         "Invalid security level specified after -l flag: %s\n",
                         optarg);
-                return (-1);
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             }
 
             break;
@@ -546,7 +564,7 @@
                 fprintf(stderr,
                         "Invalid authentication protocol specified after -a flag: %s\n",
                         optarg);
-                return (-1);
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             }
             break;
 
@@ -571,7 +589,7 @@
                 fprintf(stderr,
                       "Invalid privacy protocol specified after -x flag: %s\n",
                         optarg);
-                return (-1);
+                return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             }
             break;
 
@@ -583,7 +601,7 @@
 		    sp++;
 		} else {
 		    fprintf(stderr, "malloc failure processing -A flag.\n");
-		    return -1;
+		    return NETSNMP_PARSE_ARGS_ERROR;
 		}
 	    } else {
 		Apsz = optarg;
@@ -598,7 +616,7 @@
 		    sp++;
 		} else {
 		    fprintf(stderr, "malloc failure processing -X flag.\n");
-		    return -1;
+		    return NETSNMP_PARSE_ARGS_ERROR;
 		}
 	    } else {
 		Xpsz = optarg;
@@ -607,7 +625,7 @@
 #endif                          /* SNMPV3_CMD_OPTIONS */
 
         case '?':
-            return (-1);
+            return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
             break;
 
         default:
@@ -617,9 +635,6 @@
     }
     DEBUGMSGTL(("snmp_parse_args", "finished: %d/%d\n", optind, argc));
     
-    if (!logopt)
-	snmp_enable_stderrlog();
-
     /*
      * read in MIB database and initialize the snmp library
      */
@@ -658,7 +673,7 @@
 
             default:
                 snmp_log(LOG_ERR, "Can't determine a valid SNMP version for the session\n");
-                return(-2);
+                return(NETSNMP_PARSE_ARGS_ERROR);
             }
         } else {
 #ifndef NETSNMP_DISABLE_SNMPV1
@@ -706,7 +721,7 @@
             snmp_perror(argv[0]);
             fprintf(stderr,
                     "Error generating a key (Ku) from the supplied authentication pass phrase. \n");
-            return (-2);
+            return (NETSNMP_PARSE_ARGS_ERROR);
         }
     }
     if (Xpsz) {
@@ -745,7 +760,7 @@
             snmp_perror(argv[0]);
             fprintf(stderr,
                     "Error generating a key (Ku) from the supplied privacy pass phrase. \n");
-            return (-2);
+            return (NETSNMP_PARSE_ARGS_ERROR);
         }
     }
     /*
@@ -753,7 +768,7 @@
      */
     if (optind == argc) {
         fprintf(stderr, "No hostname specified.\n");
-        return (-1);
+        return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
     }
     session->peername = argv[optind++]; /* hostname */
 
@@ -787,7 +802,7 @@
                     session->community_len = 0;
                 } else {
                     fprintf(stderr, "No community name specified.\n");
-                    return (-1);
+                    return (NETSNMP_PARSE_ARGS_ERROR_USAGE);
                 }
 	    }
 	} else {
@@ -799,3 +814,12 @@
 
     return optind;
 }
+
+int
+snmp_parse_args(int argc,
+                char **argv,
+                netsnmp_session * session, const char *localOpts,
+                void (*proc) (int, char *const *, int))
+{
+    return netsnmp_parse_args(argc, argv, session, localOpts, proc, 0);
+}
diff --git a/snmplib/snmp_secmod.c b/snmplib/snmp_secmod.c
index aefe8f6..a8cf928 100644
--- a/snmplib/snmp_secmod.c
+++ b/snmplib/snmp_secmod.c
@@ -30,7 +30,7 @@
 #include <net-snmp/library/snmp_enum.h>
 #include <net-snmp/library/callback.h>
 #include <net-snmp/library/snmp_secmod.h>
-#include <net-snmp/library/snmpusm.h>
+#include <net-snmp/library/snmpv3-security-includes.h>
 
 static struct snmp_secmod_list *registered_services = NULL;
 
diff --git a/snmplib/snmp_service.c b/snmplib/snmp_service.c
index 8865cda..54cb4ac 100644
--- a/snmplib/snmp_service.c
+++ b/snmplib/snmp_service.c
@@ -11,7 +11,7 @@
 {
     char* item;
     char** res;
-    cptr = copy_nword(NETSNMP_REMOVE_CONST(char *, cptr), tmp, tmplen);
+    cptr = copy_nword_const(cptr, tmp, tmplen);
     item = strdup(tmp);
     if (cptr)
         res = create_word_array_helper(cptr, idx + 1, tmp, tmplen);
diff --git a/snmplib/snmp_transport.c b/snmplib/snmp_transport.c
index dfea3c6..4df9602 100644
--- a/snmplib/snmp_transport.c
+++ b/snmplib/snmp_transport.c
@@ -1,5 +1,8 @@
 #include <net-snmp/net-snmp-config.h>
 
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmp_transport.h>
+
 #include <stdio.h>
 #if HAVE_STRING_H
 #include <string.h>
@@ -12,6 +15,8 @@
 #include <stdlib.h>
 #endif
 
+#include <ctype.h>
+
 #if HAVE_UNISTD_H
 #include <unistd.h>
 #endif
@@ -22,10 +27,14 @@
 #include <net-snmp/output_api.h>
 #include <net-snmp/utilities.h>
 
-#include <net-snmp/library/snmp_transport.h>
+#include <net-snmp/library/default_store.h>
+
 #include <net-snmp/library/snmpUDPDomain.h>
-#ifdef NETSNMP_TRANSPORT_TLS_DOMAIN
-#include <net-snmp/library/snmpTLSDomain.h>
+#ifdef NETSNMP_TRANSPORT_TLSBASE_DOMAIN
+#include <net-snmp/library/snmpTLSBaseDomain.h>
+#endif
+#ifdef NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+#include <net-snmp/library/snmpTLSTCPDomain.h>
 #endif
 #ifdef NETSNMP_TRANSPORT_STD_DOMAIN
 #include <net-snmp/library/snmpSTDDomain.h>
@@ -59,6 +68,7 @@
 #endif
 #include <net-snmp/library/snmp_api.h>
 #include <net-snmp/library/snmp_service.h>
+#include <net-snmp/library/read_config.h>
 
 
 /*
@@ -93,6 +103,15 @@
  * Make a deep copy of an netsnmp_transport.  
  */
 
+void
+init_snmp_transport(void)
+{
+    netsnmp_ds_register_config(ASN_BOOLEAN,
+                               "snmp", "dontLoadHostConfig",
+                               NETSNMP_DS_LIBRARY_ID,
+                               NETSNMP_DS_LIB_DONT_LOAD_HOST_FILES);
+}
+
 netsnmp_transport *
 netsnmp_transport_copy(netsnmp_transport *t)
 {
@@ -156,10 +175,16 @@
     n->f_recv = t->f_recv;
     n->f_send = t->f_send;
     n->f_close = t->f_close;
+    n->f_copy = t->f_copy;
+    n->f_config = t->f_config;
     n->f_fmtaddr = t->f_fmtaddr;
     n->sock = t->sock;
     n->flags = t->flags;
 
+    /* give the transport a chance to do "special things" */
+    if (t->f_copy)
+        t->f_copy(t, n);
+                
     return n;
 }
 
@@ -183,6 +208,95 @@
     SNMP_FREE(t);
 }
 
+/*
+ * netsnmp_transport_peer_string
+ *
+ * returns string representation of peer address.
+ *
+ * caller is responsible for freeing the allocated string.
+ */
+char *
+netsnmp_transport_peer_string(netsnmp_transport *t, void *data, int len)
+{
+    char           *str;
+
+    if (NULL == t)
+        return NULL;
+
+    if (t->f_fmtaddr != NULL)
+        str = t->f_fmtaddr(t, data, len);
+    else
+        str = strdup("<UNKNOWN>");
+
+    return str;
+}
+    
+int
+netsnmp_transport_send(netsnmp_transport *t, void *packet, int length,
+                       void **opaque, int *olength)
+{
+    int dumpPacket, debugLength;
+
+    if ((NULL == t) || (NULL == t->f_send)) {
+        DEBUGMSGTL(("transport:pkt:send", "NULL transport or send function\n"));
+        return SNMPERR_GENERR;
+    }
+
+    dumpPacket = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
+                                        NETSNMP_DS_LIB_DUMP_PACKET);
+    debugLength = (SNMPERR_SUCCESS ==
+                   debug_is_token_registered("transport:send"));
+
+    if (dumpPacket | debugLength) {
+        char *str = netsnmp_transport_peer_string(t,
+                                                  opaque ? *opaque : NULL,
+                                                  olength ? *olength : 0);
+        if (debugLength)
+            DEBUGMSGT_NC(("transport:send","%lu bytes to %s\n",
+                          (unsigned long)length, str));
+        if (dumpPacket)
+            snmp_log(LOG_DEBUG, "\nSending %lu bytes to %s\n", 
+                     (unsigned long)length, str);
+        SNMP_FREE(str);
+    }
+    if (dumpPacket)
+        xdump(packet, length, "");
+
+    return t->f_send(t, packet, length, opaque, olength);
+}
+
+int
+netsnmp_transport_recv(netsnmp_transport *t, void *packet, int length,
+                       void **opaque, int *olength)
+{
+    int debugLength;
+
+    if ((NULL == t) || (NULL == t->f_recv)) {
+        DEBUGMSGTL(("transport:recv", "NULL transport or recv function\n"));
+        return SNMPERR_GENERR;
+    }
+
+    length = t->f_recv(t, packet, length, opaque, olength);
+
+    if (length <=0)
+        return length; /* don't log timeouts/socket closed */
+
+    debugLength = (SNMPERR_SUCCESS ==
+                   debug_is_token_registered("transport:recv"));
+
+    if (debugLength) {
+        char *str = netsnmp_transport_peer_string(t,
+                                                  opaque ? *opaque : NULL,
+                                                  olength ? *olength : 0);
+        if (debugLength)
+            DEBUGMSGT_NC(("transport:recv","%d bytes from %s\n",
+                          length, str));
+        SNMP_FREE(str);
+    }
+
+    return length;
+}
+
 
 
 int
@@ -210,37 +324,10 @@
 netsnmp_tdomain_init(void)
 {
     DEBUGMSGTL(("tdomain", "netsnmp_tdomain_init() called\n"));
-    netsnmp_udp_ctor();
-#ifdef NETSNMP_TRANSPORT_STD_DOMAIN
-    netsnmp_std_ctor();
-#endif
-#ifdef NETSNMP_TRANSPORT_TCP_DOMAIN
-    netsnmp_tcp_ctor();
-#endif
-#ifdef NETSNMP_TRANSPORT_ALIAS_DOMAIN
-    netsnmp_alias_ctor();
-#endif
-#ifdef NETSNMP_TRANSPORT_IPX_DOMAIN
-    netsnmp_ipx_ctor();
-#endif
-#ifdef NETSNMP_TRANSPORT_UNIX_DOMAIN
-    netsnmp_unix_ctor();
-#endif
-#ifdef NETSNMP_TRANSPORT_AAL5PVC_DOMAIN
-    netsnmp_aal5pvc_ctor();
-#endif
-#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
-    netsnmp_udp6_ctor();
-#endif
-#ifdef NETSNMP_TRANSPORT_TCPIPV6_DOMAIN
-    netsnmp_tcp6_ctor();
-#endif
-#ifdef NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
-    netsnmp_dtlsudp_ctor();
-#endif
-#ifdef NETSNMP_TRANSPORT_SSH_DOMAIN
-    netsnmp_ssh_ctor();
-#endif
+
+/* include the configure generated list of constructor calls */
+#include "transports/snmp_transport_inits.h"
+
     netsnmp_tdomain_dump();
 }
 
@@ -348,6 +435,22 @@
     return NULL;
 }
 
+static int
+netsnmp_is_fqdn(const char *thename)
+{
+    if (!thename)
+        return 0;
+    while(*thename) {
+        if (*thename != '.' && !isupper((unsigned char)*thename) &&
+            !islower((unsigned char)*thename) &&
+            !isdigit((unsigned char)*thename) && *thename != '-') {
+            return 0;
+        }
+        thename++;
+    }
+    return 1;
+}
+
 /*
  * Locate the appropriate transport domain and call the create function for
  * it.
@@ -362,8 +465,11 @@
     const char         *addr = NULL;
     const char * const *spec = NULL;
     int                 any_found = 0;
-    extern char *curfilename;		/* from read_config.c */
-    char         *prev_curfilename;
+    char buf[SNMP_MAXPATH];
+    extern const char *curfilename;		/* from read_config.c */
+    const char        *prev_curfilename;
+
+    prev_curfilename = curfilename;
 
     DEBUGMSGTL(("tdomain",
                 "tdomain_transport_full(\"%s\", \"%s\", %d, \"%s\", \"%s\")\n",
@@ -371,12 +477,61 @@
                 default_domain ? default_domain : "[NIL]",
                 default_target ? default_target : "[NIL]"));
 
-    prev_curfilename = curfilename;
+    /* see if we can load a host-name specific set of conf files */
+    if (!netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
+                                NETSNMP_DS_LIB_DONT_LOAD_HOST_FILES) &&
+        netsnmp_is_fqdn(str)) {
+        static int have_added_handler = 0;
+        char *newhost;
+        struct config_line *config_handlers;
+        struct config_files file_names;
+        char *prev_hostname;
+
+        /* register a "transport" specifier */
+        if (!have_added_handler) {
+            have_added_handler = 1;
+            netsnmp_ds_register_config(ASN_OCTET_STR,
+                                       "snmp", "transport",
+                                       NETSNMP_DS_LIBRARY_ID,
+                                       NETSNMP_DS_LIB_HOSTNAME);
+        }
+
+        /* we save on specific setting that we don't allow to change
+           from one transport creation to the next; ie, we don't want
+           the "transport" specifier to be a default.  It should be a
+           single invocation use only */
+        prev_hostname = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                              NETSNMP_DS_LIB_HOSTNAME);
+        if (prev_hostname)
+            prev_hostname = strdup(prev_hostname);
+
+        /* read in the hosts/STRING.conf files */
+        config_handlers = read_config_get_handlers("snmp");
+        snprintf(buf, sizeof(buf)-1, "hosts/%s", str);
+        file_names.fileHeader = buf;
+        file_names.start = config_handlers;
+        file_names.next = NULL;
+        DEBUGMSGTL(("tdomain", "checking for host specific config %s\n",
+                    buf));
+        read_config_files_of_type(EITHER_CONFIG, &file_names);
+
+        if (NULL !=
+            (newhost = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                             NETSNMP_DS_LIB_HOSTNAME))) {
+            strlcpy(buf, newhost, sizeof(buf));
+            str = buf;
+        }
+
+        netsnmp_ds_set_string(NETSNMP_DS_LIBRARY_ID,
+                              NETSNMP_DS_LIB_HOSTNAME,
+                              prev_hostname);
+        SNMP_FREE(prev_hostname);
+    }
 
     /* First try - assume that there is a domain in str (domain:target) */
 
     if (str != NULL) {
-        char *cp;
+        const char *cp;
         if ((cp = strchr(str, ':')) != NULL) {
             char* mystring = (char*)malloc(cp + 1 - str);
             memcpy(mystring, str, cp - str);
@@ -564,3 +719,18 @@
 
     return 0;
 }
+
+int
+netsnmp_transport_config_compare(netsnmp_transport_config *left,
+                                 netsnmp_transport_config *right) {
+    return strcmp(left->key, right->key);
+}
+
+netsnmp_transport_config *
+netsnmp_transport_create_config(char *key, char *value) {
+    netsnmp_transport_config *entry =
+        SNMP_MALLOC_TYPEDEF(netsnmp_transport_config);
+    entry->key = strdup(key);
+    entry->value = strdup(value);
+    return entry;
+}
diff --git a/snmplib/snmpksm.c b/snmplib/snmpksm.c
index 9252662..79e54f4 100644
--- a/snmplib/snmpksm.c
+++ b/snmplib/snmpksm.c
@@ -9,19 +9,12 @@
 #include <net-snmp/net-snmp-config.h>
 
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #include <stdio.h>
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -257,7 +250,7 @@
     def->pdu_free = ksm_free_pdu;
     def->pdu_clone = ksm_clone_pdu;
 
-    register_sec_mod(NETSNMP_KSM_SECURITY_MODEL, "ksm", def);
+    register_sec_mod(NETSNMP_SEC_MODEL_KSM, "ksm", def);
 }
 
 /*
diff --git a/snmplib/snmptsm.c b/snmplib/snmptsm.c
index f99e617..955744a 100644
--- a/snmplib/snmptsm.c
+++ b/snmplib/snmptsm.c
@@ -1,8 +1,10 @@
 /*
- * snmptsmsm.c
+ * snmptsmsm.c -- Implements RFC #5591
  *
  * This code implements a security model that assumes the local user
- * that executed the agent is the user who's attributes called
+ * that executed the agent is the user who's attributes are passed up
+ * by the transport underneath.  The RFC describing this security
+ * model is RFC5591.
  */
 
 #include <net-snmp/net-snmp-config.h>
@@ -11,12 +13,25 @@
 
 #include <net-snmp/library/snmptsm.h>
 
+#ifdef NETSNMP_TRANSPORT_SSH_DOMAIN
+#include <net-snmp/library/snmpSSHDomain.h>
+#endif
+#ifdef NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
+#include <net-snmp/library/snmpDTLSUDPDomain.h>
+#endif
+#ifdef NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+#include <net-snmp/library/snmpTLSTCPDomain.h>
+#endif
+#ifdef NETSNMP_TRANSPORT_DTLSSCTP_DOMAIN
+#include <net-snmp/library/snmpDTLSSCTPDomain.h>
+#endif
+
 #include <unistd.h>
 
 static int      tsm_session_init(netsnmp_session *);
 static void     tsm_free_state_ref(void *);
 static int      tsm_clone_pdu(netsnmp_pdu *, netsnmp_pdu *);
-static void     tsm_free_pdu(netsnmp_pdu *pdu);
+static int      tsm_free_pdu(netsnmp_pdu *pdu);
 
 u_int next_sess_id = 1;
 
@@ -44,7 +59,7 @@
     def->probe_engineid = snmpv3_probe_contextEngineID_rfc5343;
 
     DEBUGMSGTL(("tsm","registering ourselves\n"));
-    ret = register_sec_mod(NETSNMP_TSM_SECURITY_MODEL, "tsm", def);
+    ret = register_sec_mod(SNMP_SEC_MODEL_TSM, "tsm", def);
     DEBUGMSGTL(("tsm"," returned %d\n", ret));
 
     netsnmp_ds_register_config(ASN_BOOLEAN, "snmp", "tsmUseTransportPrefix",
@@ -91,7 +106,7 @@
     /* SNMP_FREE(tsmRef);  ? */
 }
 
-static void
+static int
 tsm_free_pdu(netsnmp_pdu *pdu)
 {
     /* free the security reference */
@@ -99,6 +114,7 @@
         tsm_free_state_ref(pdu->securityStateRef);
         pdu->securityStateRef = NULL;
     }
+    return 0;
 }
 
 /** This is called when a PDU is cloned (to increase reference counts) */
@@ -112,8 +128,8 @@
         return SNMPERR_SUCCESS;
 
     newref = SNMP_MALLOC_TYPEDEF(netsnmp_tsmSecurityReference);
-    fprintf(stderr, "cloned as pdu=%p, ref=%p (oldref=%p)\n",
-            pdu2, newref, pdu2->securityStateRef);
+    DEBUGMSGTL(("tsm", "cloned as pdu=%p, ref=%p (oldref=%p)\n",
+            pdu2, newref, pdu2->securityStateRef));
     if (!newref)
         return SNMPERR_GENERR;
     
@@ -125,7 +141,7 @@
        which was already copied by snmp_clone_pdu before handing it to
        us. */
 
-    memdup(&newref->tmStateRef, oldref->tmStateRef,
+    memdup((u_char **) &newref->tmStateRef, oldref->tmStateRef,
            sizeof(*oldref->tmStateRef));
     return SNMPERR_SUCCESS;
 }
@@ -171,90 +187,120 @@
     
     DEBUGMSGTL(("tsm", "Starting TSM processing\n"));
 
-    /* if we have this, this message is in response to something that
-       came in earlier */
+    /* if we have this, then this message to be sent is in response to
+       something that came in earlier and the tsmSecRef was created by
+       the tsm_process_in_msg. */
     tsmSecRef = parms->secStateRef;
     
     if (tsmSecRef) {
-        /* section 4.2, step 1 */
-        if (tsmSecRef->tmStateRef)
-            tmStateRef = tsmSecRef->tmStateRef;
-        else
-            tmStateRef = SNMP_MALLOC_TYPEDEF(netsnmp_tmStateReference);
-        if (NULL == tmStateRef) {
-            snmp_log(LOG_ERR, "failed to allocate a tmStateReference\n");
-            return SNMPERR_GENERR;
-        }
-        tmStateRef->sameSecurity = NETSNMP_TM_USE_SAME_SECURITY;
-        tmStateRef->requestedSecurityLevel = tsmSecRef->securityLevel;
+        /* 4.2, step 1: If there is a securityStateReference (Response
+           or Report message), then this Security Model uses the
+           cached information rather than the information provided by
+           the ASI. */
 
-        /* XXX: this may be freed automatically later by the library? */
+        /* 4.2, step 1: Extract the tmStateReference from the
+           securityStateReference cache. */
+        netsnmp_assert_or_return(NULL != tsmSecRef->tmStateRef, SNMPERR_GENERR);
+        tmStateRef = tsmSecRef->tmStateRef;
+
+        /* 4.2 step 1: Set the tmRequestedSecurityLevel to the value
+           of the extracted tmTransportSecurityLevel. */
+        tmStateRef->requestedSecurityLevel = tmStateRef->transportSecurityLevel;
+
+        /* 4.2 step 1: Set the tmSameSecurity parameter in the
+           tmStateReference cache to true. */
+        tmStateRef->sameSecurity = NETSNMP_TM_USE_SAME_SECURITY;
+
+        /* 4.2 step 1: The cachedSecurityData for this message can
+           now be discarded. */
         SNMP_FREE(parms->secStateRef);
     } else {
-        /* section 4.2, step 2 */
+        /* 4.2, step 2: If there is no securityStateReference (e.g., a
+           Request-type or Notification message), then create a
+           tmStateReference cache. */
         tmStateRef = SNMP_MALLOC_TYPEDEF(netsnmp_tmStateReference);
-        if (tmStateRef == NULL) {
-            return SNMPERR_GENERR;
-        }
+        netsnmp_assert_or_return(NULL != tmStateRef, SNMPERR_GENERR);
         tmStateRefLocal = 1;
-        
+
+        /* XXX: we don't actually use this really in our implementation */
+        /* 4.2, step 2: Set tmTransportDomain to the value of
+           transportDomain, tmTransportAddress to the value of
+           transportAddress */
+
+        /* 4.2, step 2: and tmRequestedSecurityLevel to the value of
+           securityLevel. */
         tmStateRef->requestedSecurityLevel = parms->secLevel;
+
+        /* 4.2, step 2: Set the transaction-specific tmSameSecurity
+           parameter to false. */
         tmStateRef->sameSecurity = NETSNMP_TM_SAME_SECURITY_NOT_REQUIRED;
 
-        if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
+        if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
                                    NETSNMP_DS_LIB_TSM_USE_PREFIX)) {
             /* XXX: probably shouldn't be a hard-coded list of
                supported transports */
+            /* 4.2, step 2: If the snmpTsmConfigurationUsePrefix
+               object is set to true, then use the transportDomain to
+               look up the corresponding prefix. */
             const char *prefix;
             if (strncmp("ssh:",parms->session->peername,4) == 0)
                 prefix = "ssh:";
-            else if (strncmp("dtls:",parms->session->peername,4) == 0)
+            else if (strncmp("dtls:",parms->session->peername,5) == 0)
                 prefix = "dtls:";
+            else if (strncmp("tls:",parms->session->peername,4) == 0)
+                prefix = "tls:";
             else {
+                /* 4.2, step 2: If the prefix lookup fails for any
+                   reason, then the snmpTsmUnknownPrefixes counter is
+                   incremented, an error indication is returned to the
+                   calling module, and message processing stops. */
+                snmp_increment_statistic(STAT_TSM_SNMPTSMUNKNOWNPREFIXES);
                 SNMP_FREE(tmStateRef);
                 return SNMPERR_GENERR;
             }
 
-            /* a: - lookup the prefix */
-            /*    - if DNE, snmpTsmUnknownPrefixes++ and bail */
-            if (!prefix) {
-                /* snmpTsmUnknownPrefixes++ */
-                SNMP_FREE(tmStateRef);
-                return SNMPERR_GENERR;
-            }
-
-            /*    - If secName doesn't have the prefix (or any):
-                  snmpTsmInvalidPrefixes++ and bail */
+            /* 4.2, step 2: If the lookup succeeds, but there is no
+               prefix in the securityName, or the prefix returned does
+               not match the prefix in the securityName, or the length
+               of the prefix is less than 1 or greater than 4 US-ASCII
+               alpha-numeric characters, then the
+               snmpTsmInvalidPrefixes counter is incremented, an error
+               indication is returned to the calling module, and
+               message processing stops. */
             if (strchr(parms->secName, ':') == 0 ||
                 strlen(prefix)+1 >= parms->secNameLen ||
                 strncmp(parms->secName, prefix, strlen(prefix)) != 0 ||
                 parms->secName[strlen(prefix)] != ':') {
-
+                /* Note: since we're assiging the prefixes above the
+                   prefix lengths always meet the 1-4 criteria */
+                snmp_increment_statistic(STAT_TSM_SNMPTSMINVALIDPREFIXES);
                 SNMP_FREE(tmStateRef);
-                /* snmpTsmInvalidPrefixes++ */
                 return SNMPERR_GENERR;
             }
 
-            /*    - Strip the prefix and trailing : */
-            /* set tmSecurityName to securityName minus stripped part */
+            /* 4.2, step 2: Strip the transport-specific prefix and
+               trailing ':' character (US-ASCII 0x3a) from the
+               securityName.  Set tmSecurityName to the value of
+               securityName. */
             memcpy(tmStateRef->securityName,
                    parms->secName + strlen(prefix) + 1,
                    parms->secNameLen - strlen(prefix) - 1);
             tmStateRef->securityNameLen = parms->secNameLen - strlen(prefix) -1;
         } else {
-            /* set tmSecurityName to securityName */
+            /* 4.2, step 2: If the snmpTsmConfigurationUsePrefix object is
+               set to false, then set tmSecurityName to the value
+               of securityName. */
             memcpy(tmStateRef->securityName, parms->secName,
                    parms->secNameLen);
             tmStateRef->securityNameLen = parms->secNameLen;
         }
     }
+
+    /* truncate the security name with a '\0' for safety */
     tmStateRef->securityName[tmStateRef->securityNameLen] = '\0';
 
-    /* Section 4.2, Step 3:
-     * - Set securityParameters to a zero-length OCTET STRING ('0400')
-     * 
-     * We define here what the security message section will look like:
-     * 04 00 -- null string
+    /* 4.2, step 3: Set securityParameters to a zero-length OCTET
+     *  STRING ('0400').
      */
     DEBUGDUMPHEADER("send", "tsm security parameters");
     rc = asn_realloc_rbuild_header(wholeMsg, wholeMsgLen, offset, 1,
@@ -268,12 +314,8 @@
         return SNMPERR_TOO_LONG;
     }
     
-    /* Section 4.2, Step 4:
-     * Combine the message parts into a wholeMsg and calculate wholeMsgLen
-     */
-
-    /*
-     * Copy in the msgGlobalData and msgVersion.  
+    /* 4.2, step 4: Combine the message parts into a wholeMsg and
+       calculate wholeMsgLength.
      */
     while ((*wholeMsgLen - *offset) < parms->globalDataLen) {
         if (!asn_realloc(wholeMsg, wholeMsgLen)) {
@@ -288,6 +330,13 @@
     memcpy(*wholeMsg + *wholeMsgLen - *offset,
            parms->globalData, parms->globalDataLen);
 
+    /* 4.2, step 5: The wholeMsg, wholeMsgLength, securityParameters,
+       and tmStateReference are returned to the calling Message
+       Processing Model with the statusInformation set to success. */
+
+    /* For the Net-SNMP implemantion that actually means we start
+       encoding the full packet sequence from here before returning it */
+
     /*
      * Total packet sequence.  
      */
@@ -301,8 +350,6 @@
         return SNMPERR_TOO_LONG;
     }
 
-    /* Section 4.2 Step 5:  return everything */
-
     if (parms->pdu->transport_data &&
         parms->pdu->transport_data != tmStateRef) {
         snmp_log(LOG_ERR, "tsm: needed to free transport data\n");
@@ -311,7 +358,8 @@
 
     /* put the transport state reference into the PDU for the transport */
     if (SNMPERR_SUCCESS !=
-        memdup(&parms->pdu->transport_data, tmStateRef, sizeof(*tmStateRef))) {
+        memdup((u_char **) &parms->pdu->transport_data,
+               tmStateRef, sizeof(*tmStateRef))) {
         snmp_log(LOG_ERR, "tsm: malloc failure\n");
     }
     parms->pdu->transport_data_length = sizeof(*tmStateRef);
@@ -350,14 +398,22 @@
     u_char          ourEngineID[SNMP_MAX_ENG_SIZE];
     static size_t   ourEngineID_len = sizeof(ourEngineID);
     
-    /* Section 5.2, step 1 */
+    /* Section 5.2, step 1: Set the securityEngineID to the local
+       snmpEngineID. */
     ourEngineID_len =
-        snmpv3_get_engineID((u_char*)ourEngineID, ourEngineID_len);
-    if (ourEngineID_len == 0 || ourEngineID_len > *parms->secEngineIDLen)
-        return SNMPERR_GENERR;
+        snmpv3_get_engineID((u_char*) ourEngineID, ourEngineID_len);
+    netsnmp_assert_or_return(ourEngineID_len != 0 &&
+                             ourEngineID_len <= *parms->secEngineIDLen,
+                             SNMPERR_GENERR);
     memcpy(parms->secEngineID, ourEngineID, *parms->secEngineIDLen);
 
-    /* Section 5.2, step 2 */
+    /* Section 5.2, step 2: If tmStateReference does not refer to a
+       cache containing values for tmTransportDomain,
+       tmTransportAddress, tmSecurityName, and
+       tmTransportSecurityLevel, then the snmpTsmInvalidCaches counter
+       is incremented, an error indication is returned to the calling
+       module, and Security Model processing stops for this
+       message. */
     if (!parms->pdu->transport_data ||
         sizeof(netsnmp_tmStateReference) !=
         parms->pdu->transport_data_length) {
@@ -372,53 +428,138 @@
         /* not needed: tmStateRef->transportDomain == NULL || */
         /* not needed: tmStateRef->transportAddress == NULL || */
         tmStateRef->securityName[0] == '\0'
-        /* || seclevel is not valid */
         ) {
-        /* XXX: snmpTsmInvalidCaches++ */
+        snmp_increment_statistic(STAT_TSM_SNMPTSMINVALIDCACHES);
         return SNMPERR_GENERR;
     }
 
-    /* Section 5.2, step 3 */
-    if (netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
+    /* Section 5.2, step 3: Copy the tmSecurityName to securityName. */
+    if (netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID,
                                NETSNMP_DS_LIB_TSM_USE_PREFIX)) {
-        /* Section 5.2, step 3a */
-        const char *prefix;
-        prefix = "ssh:"; /* XXX */
-
-        if (prefix == NULL) {
-            /* XXX: snmpTsmUnknownPrefixes++ */
+        /* Section 5.2, step 3:
+          If the snmpTsmConfigurationUsePrefix object is set to true, then
+          use the tmTransportDomain to look up the corresponding prefix.
+        */
+        const char *prefix = NULL;
+        /*
+          possibilities:
+           |--------------------+-------|
+           | snmpTLSTCPDomain   | tls:  |
+           | snmpDTLSUDPDomain  | dtls: |
+           | snmpSSHDomain      | ssh:  |
+           |--------------------+-------|
+        */
+        
+        if (tmStateRef->transportDomain == NULL) {
+            /* XXX: snmpTsmInvalidCaches++ ??? */
             return SNMPERR_GENERR;
         }
 
+        /* XXX: cache in session! */
+#ifdef NETSNMP_TRANSPORT_SSH_DOMAIN
+        if (netsnmp_oid_equals(netsnmp_snmpSSHDomain,
+                               netsnmp_snmpSSHDomain_len,
+                               tmStateRef->transportDomain,
+                               tmStateRef->transportDomainLen) == 0) {
+            prefix = "ssh";
+        }
+#endif /*  NETSNMP_TRANSPORT_SSH_DOMAIN */
+
+#ifdef NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
+        if (netsnmp_oid_equals(netsnmpDTLSUDPDomain,
+                               netsnmpDTLSUDPDomain_len,
+                               tmStateRef->transportDomain,
+                               tmStateRef->transportDomainLen) == 0) {
+            
+            prefix = "dtls";
+        }
+#endif /* NETSNMP_TRANSPORT_DTLSUDP_DOMAIN */
+
+#ifdef NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+        if (netsnmp_oid_equals(netsnmpTLSTCPDomain,
+                               netsnmpTLSTCPDomain_len,
+                               tmStateRef->transportDomain,
+                               tmStateRef->transportDomainLen) == 0) {
+            
+            prefix = "tls";
+        }
+#endif /* NETSNMP_TRANSPORT_TLSTCP_DOMAIN */
+
+        /* Section 5.2, step 3:
+          If the prefix lookup fails for any reason, then the
+          snmpTsmUnknownPrefixes counter is incremented, an error
+          indication is returned to the calling module, and message
+          processing stops.
+        */
+        if (prefix == NULL) {
+            snmp_increment_statistic(STAT_TSM_SNMPTSMUNKNOWNPREFIXES);
+            return SNMPERR_GENERR;
+        }
+
+        /* Section 5.2, step 3:
+          If the lookup succeeds but the prefix length is less than 1 or
+          greater than 4 octets, then the snmpTsmInvalidPrefixes counter
+          is incremented, an error indication is returned to the calling
+          module, and message processing stops.
+        */
+#ifdef NOT_USING_HARDCODED_PREFIXES
+        /* the above code actually ensures this will never happen as
+           we don't support a dynamic prefix database where this might
+           happen. */
         if (strlen(prefix) < 1 || strlen(prefix) > 4) {
             /* XXX: snmpTsmInvalidPrefixes++ */
             return SNMPERR_GENERR;
         }
+#endif
         
+        /* Section 5.2, step 3:
+          Set the securityName to be the concatenation of the prefix, a
+          ':' character (US-ASCII 0x3a), and the tmSecurityName.
+        */
         snprintf(parms->secName, *parms->secNameLen,
                  "%s:%s", prefix, tmStateRef->securityName);
     } else {
+        /* if the use prefix flag wasn't set, do a straight copy */
         strncpy(parms->secName, tmStateRef->securityName, *parms->secNameLen);
     }
-    *parms->secNameLen = strlen(parms->secName);
-    DEBUGMSGTL(("tsm", "user: %s/%d\n", parms->secName, *parms->secNameLen));
 
-    /* Section 5.2 Step 4 */
+    /* set the length of the security name */
+    *parms->secNameLen = strlen(parms->secName);
+    DEBUGMSGTL(("tsm", "user: %s/%d\n", parms->secName, (int)*parms->secNameLen));
+
+    /* Section 5.2 Step 4:
+       Compare the value of tmTransportSecurityLevel in the
+       tmStateReference cache to the value of the securityLevel
+       parameter passed in the processIncomingMsg ASI.  If securityLevel
+       specifies privacy (Priv) and tmTransportSecurityLevel specifies
+       no privacy (noPriv), or if securityLevel specifies authentication
+       (auth) and tmTransportSecurityLevel specifies no authentication
+       (noAuth) was provided by the Transport Model, then the
+       snmpTsmInadequateSecurityLevels counter is incremented, an error
+       indication (unsupportedSecurityLevel) together with the OID and
+       value of the incremented counter is returned to the calling
+       module, and Transport Security Model processing stops for this
+       message.*/
     if (parms->secLevel > tmStateRef->transportSecurityLevel) {
-        /* XXX: snmpTsmInadequateSecurityLevels++ */
+        snmp_increment_statistic(STAT_TSM_SNMPTSMINADEQUATESECURITYLEVELS);
+        DEBUGMSGTL(("tsm", "inadequate security level %d\n", parms->secLevel));
+        /* net-snmp returns error codes not OIDs, which are dealt with later */
         return SNMPERR_UNSUPPORTED_SEC_LEVEL;
     }
 
-    /* Section 5.2 Step 5 */
-
+    /* Section 5.2 Step 5
+       The tmStateReference is cached as cachedSecurityData so that a
+       possible response to this message will use the same security
+       parameters.  Then securityStateReference is set for subsequent
+       references to this cached data.
+    */
     if (NULL == *parms->secStateRef) {
         tsmSecRef = SNMP_MALLOC_TYPEDEF(netsnmp_tsmSecurityReference);
     } else {
         tsmSecRef = *parms->secStateRef;
     }
 
-    if (!tsmSecRef)
-        return SNMPERR_GENERR;
+    netsnmp_assert_or_return(NULL != tsmSecRef, SNMPERR_GENERR);
 
     *parms->secStateRef = tsmSecRef;
     tsmSecRef->tmStateRef = tmStateRef;
@@ -441,7 +582,8 @@
         DEBUGMSGTL(("tsm","  tunneled\n"));
     }
 
-    /* Section 5.2, Step 6 */
+    /* Section 5.2, Step 6:
+       The scopedPDU component is extracted from the wholeMsg. */
     /*
      * Eat the first octet header.
      */
@@ -450,20 +592,26 @@
                                         &type_value,
                                         (ASN_UNIVERSAL | ASN_PRIMITIVE |
                                          ASN_OCTET_STR),
-                                        "usm first octet")) == NULL) {
+                                        "tsm first octet")) == NULL) {
         /*
          * RETURN parse error 
          */
-        return SNMPERR_GENERR;
+        return SNMPERR_ASN_PARSE_ERR;
     }
     
     *parms->scopedPdu = data_ptr;
     *parms->scopedPduLen = parms->wholeMsgLen - (data_ptr - parms->wholeMsg);
 
-    /* Section 5.2, Step 7 */
+    /* Section 5.2, Step 7:
+       The maxSizeResponseScopedPDU is calculated.  This is the maximum
+       size allowed for a scopedPDU for a possible Response message.
+     */
     *parms->maxSizeResponse = parms->maxMsgSize; /* XXX */
 
-    tsmSecRef->securityLevel = parms->secLevel;
-
+    /* Section 5.2, Step 8:
+       The statusInformation is set to success and a return is made to
+       the calling module passing back the OUT parameters as specified
+       in the processIncomingMsg ASI.
+    */
     return SNMPERR_SUCCESS;
 }
diff --git a/snmplib/snmpusm.c b/snmplib/snmpusm.c
index f7395dc..8780596 100644
--- a/snmplib/snmpusm.c
+++ b/snmplib/snmpusm.c
@@ -24,19 +24,12 @@
 #include <net-snmp/net-snmp-config.h>
 
 #include <sys/types.h>
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #include <stdio.h>
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -502,7 +495,7 @@
                     engBtlen,   /*   for fields within                     */
                     engTmlen,   /*   msgSecurityParameters portion of      */
                     namelen,    /*   SNMPv3Message.                        */
-                    authlen, privlen;
+                    authlen, privlen, ret;
 
     /*
      * If doing authentication, msgAuthParmLen = 12 else msgAuthParmLen = 0.
@@ -552,15 +545,17 @@
     *seq_len =
         engIDlen + engBtlen + engTmlen + namelen + authlen + privlen;
 
-    if ((*otstlen = asn_predict_length(ASN_SEQUENCE,
-                                       NULL, *seq_len)) == -1) {
+    if ((ret = asn_predict_length(ASN_SEQUENCE,
+                                      NULL, *seq_len)) == -1) {
         return -1;
     }
+    *otstlen = (size_t)ret;
 
-    if ((*msgSecParmLen = asn_predict_length(ASN_OCTET_STR,
-                                             NULL, *otstlen)) == -1) {
+    if ((ret = asn_predict_length(ASN_OCTET_STR,
+                                      NULL, *otstlen)) == -1) {
         return -1;
     }
+    *msgSecParmLen = (size_t)ret;
 
     *authParamsOffset = globalDataLen + +(*msgSecParmLen - *seq_len)
         + engIDlen + engBtlen + engTmlen + namelen
@@ -585,10 +580,10 @@
     if (secLevel == SNMP_SEC_LEVEL_AUTHPRIV) {
         scopedPduLen = ROUNDUP8(scopedPduLen);
 
-        if ((*datalen =
-             asn_predict_length(ASN_OCTET_STR, NULL, scopedPduLen)) == -1) {
+        if ((ret = asn_predict_length(ASN_OCTET_STR, NULL, scopedPduLen)) == -1) {
             return -1;
         }
+        *datalen = (size_t)ret;
     } else {
         *datalen = scopedPduLen;
     }
@@ -1994,7 +1989,7 @@
     /*
      * FIX -- doesn't this also indicate a buffer overrun?
      */
-    if ((int) origNameLen < *secNameLen + 1) {
+    if (origNameLen < *secNameLen + 1) {
         /*
          * RETURN parse error, but it's really a parameter error 
          */
@@ -2140,7 +2135,7 @@
     /*
      * This is a local reference.
      */
-    if ((int) secEngineIDLen == myIDLength
+    if (secEngineIDLen == myIDLength
         && memcmp(secEngineID, myID, myIDLength) == 0) {
         u_int           time_difference = myTime > time_uint ?
             myTime - time_uint : time_uint - myTime;
@@ -2703,8 +2698,7 @@
      *
      * FIX  Correct? 
      */
-    *maxSizeResponse = maxMsgSize - (int)
-        ((u_long) end_of_overhead - (u_long) wholeMsg);
+    *maxSizeResponse = maxMsgSize - (end_of_overhead - wholeMsg);
 
 
     DEBUGMSGTL(("usm", "USM processing completed.\n"));
@@ -2765,13 +2759,111 @@
         break;
     }       
 }
+
+/* sets up initial default session parameters */
+int
+usm_session_init(netsnmp_session *in_session, netsnmp_session *session)
+{
+    char *cp;
+    size_t i;
+    
+    if (in_session->securityAuthProtoLen > 0) {
+        session->securityAuthProto =
+            snmp_duplicate_objid(in_session->securityAuthProto,
+                                 in_session->securityAuthProtoLen);
+        if (session->securityAuthProto == NULL) {
+            in_session->s_snmp_errno = SNMPERR_MALLOC;
+            return SNMPERR_MALLOC;
+        }
+    } else if (get_default_authtype(&i) != NULL) {
+        session->securityAuthProto =
+            snmp_duplicate_objid(get_default_authtype(NULL), i);
+        session->securityAuthProtoLen = i;
+    }
+
+    if (in_session->securityPrivProtoLen > 0) {
+        session->securityPrivProto =
+            snmp_duplicate_objid(in_session->securityPrivProto,
+                                 in_session->securityPrivProtoLen);
+        if (session->securityPrivProto == NULL) {
+            in_session->s_snmp_errno = SNMPERR_MALLOC;
+            return SNMPERR_MALLOC;
+        }
+    } else if (get_default_privtype(&i) != NULL) {
+        session->securityPrivProto =
+            snmp_duplicate_objid(get_default_privtype(NULL), i);
+        session->securityPrivProtoLen = i;
+    }
+
+    if ((in_session->securityAuthKeyLen <= 0) &&
+        ((cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
+				     NETSNMP_DS_LIB_AUTHMASTERKEY)))) {
+        size_t buflen = sizeof(session->securityAuthKey);
+        u_char *tmpp = session->securityAuthKey;
+        session->securityAuthKeyLen = 0;
+        /* it will be a hex string */
+        if (!snmp_hex_to_binary(&tmpp, &buflen,
+                                &session->securityAuthKeyLen, 0, cp)) {
+            snmp_set_detail("error parsing authentication master key");
+            return SNMP_ERR_GENERR;
+        }
+    } else if ((in_session->securityAuthKeyLen <= 0) &&
+               ((cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
+                                            NETSNMP_DS_LIB_AUTHPASSPHRASE)) ||
+                (cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
+                                            NETSNMP_DS_LIB_PASSPHRASE)))) {
+        session->securityAuthKeyLen = USM_AUTH_KU_LEN;
+        if (generate_Ku(session->securityAuthProto,
+                        session->securityAuthProtoLen,
+                        (u_char *) cp, strlen(cp),
+                        session->securityAuthKey,
+                        &session->securityAuthKeyLen) != SNMPERR_SUCCESS) {
+            snmp_set_detail
+                ("Error generating a key (Ku) from the supplied authentication pass phrase.");
+            return SNMP_ERR_GENERR;
+        }
+    }
+
+    
+    if ((in_session->securityPrivKeyLen <= 0) &&
+        ((cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
+				     NETSNMP_DS_LIB_PRIVMASTERKEY)))) {
+        size_t buflen = sizeof(session->securityPrivKey);
+        u_char *tmpp = session->securityPrivKey;
+        session->securityPrivKeyLen = 0;
+        /* it will be a hex string */
+        if (!snmp_hex_to_binary(&tmpp, &buflen,
+                                &session->securityPrivKeyLen, 0, cp)) {
+            snmp_set_detail("error parsing encryption master key");
+            return SNMP_ERR_GENERR;
+        }
+    } else if ((in_session->securityPrivKeyLen <= 0) &&
+               ((cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
+                                            NETSNMP_DS_LIB_PRIVPASSPHRASE)) ||
+                (cp = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID, 
+                                            NETSNMP_DS_LIB_PASSPHRASE)))) {
+        session->securityPrivKeyLen = USM_PRIV_KU_LEN;
+        if (generate_Ku(session->securityAuthProto,
+                        session->securityAuthProtoLen,
+                        (u_char *) cp, strlen(cp),
+                        session->securityPrivKey,
+                        &session->securityPrivKeyLen) != SNMPERR_SUCCESS) {
+            snmp_set_detail
+                ("Error generating a key (Ku) from the supplied privacy pass phrase.");
+            return SNMP_ERR_GENERR;
+        }
+    }
+
+    return SNMPERR_SUCCESS;
+}
+
 void
 init_usm(void)
 {
     struct snmp_secmod_def *def;
 
-    DEBUGMSGTL(("init_usm", "unit_usm: %lu %lu\n", usmNoPrivProtocol[0],
-                usmNoPrivProtocol[1]));
+    DEBUGMSGTL(("init_usm", "unit_usm: %" NETSNMP_PRIo "u %" NETSNMP_PRIo "u\n",
+                usmNoPrivProtocol[0], usmNoPrivProtocol[1]));
 
     sc_init();                  /* initalize scapi code */
 
@@ -2788,6 +2880,7 @@
     def->encode_forward = usm_secmod_generate_out_msg;
     def->decode = usm_secmod_process_in_msg;
     def->pdu_free_state_ref = usm_free_usmStateReference;
+    def->session_setup = usm_session_init;
     def->handle_report = usm_handle_report;
     register_sec_mod(USM_SEC_MODEL_NUMBER, "usm", def);
 
@@ -2931,8 +3024,8 @@
     if (user->userStatus != RS_ACTIVE)
         return -1;
 
-    DEBUGMSGTL(("comparex", "Comparing: %lu %lu ", usmNoPrivProtocol[0],
-                usmNoPrivProtocol[1]));
+    DEBUGMSGTL(("comparex", "Comparing: %" NETSNMP_PRIo "u %" NETSNMP_PRIo "u ",
+                usmNoPrivProtocol[0], usmNoPrivProtocol[1]));
     DEBUGMSGOID(("comparex", usmNoPrivProtocol,
                  sizeof(usmNoPrivProtocol) / sizeof(oid)));
     DEBUGMSG(("comparex", "\n"));
@@ -3546,11 +3639,11 @@
     *cptr++ = ' ';
     cptr = read_config_save_octet_string(cptr, (u_char *) user->name,
                                          (user->name == NULL) ? 0 :
-                                         strlen(user->name) + 1);
+                                         strlen(user->name));
     *cptr++ = ' ';
     cptr = read_config_save_octet_string(cptr, (u_char *) user->secName,
                                          (user->secName == NULL) ? 0 :
-                                         strlen(user->secName) + 1);
+                                         strlen(user->secName));
     *cptr++ = ' ';
     cptr =
         read_config_save_objid(cptr, user->cloneFrom, user->cloneFromLen);
@@ -3580,7 +3673,7 @@
  * and returns a pointer to a newly created struct usmUser. 
  */
 struct usmUser *
-usm_read_user(char *line)
+usm_read_user(const char *line)
 {
     struct usmUser *user;
     size_t          len;
@@ -3591,11 +3684,11 @@
         return NULL;
 
     user->userStatus = atoi(line);
-    line = skip_token(line);
+    line = skip_token_const(line);
     user->userStorageType = atoi(line);
-    line = skip_token(line);
-    line = read_config_read_octet_string(line, &user->engineID,
-                                         &user->engineIDLen);
+    line = skip_token_const(line);
+    line = read_config_read_octet_string_const(line, &user->engineID,
+                                               &user->engineIDLen);
 
     /*
      * set the lcd entry for this engineID to the minimum boots/time
@@ -3612,22 +3705,21 @@
     SNMP_FREE(user->cloneFrom);
     user->cloneFromLen = 0;
 
-    line =
-        read_config_read_objid(line, &user->cloneFrom,
-                               &user->cloneFromLen);
+    line = read_config_read_objid_const(line, &user->cloneFrom,
+                                        &user->cloneFromLen);
 
     SNMP_FREE(user->authProtocol);
     user->authProtocolLen = 0;
 
-    line = read_config_read_objid(line, &user->authProtocol,
-                                  &user->authProtocolLen);
-    line = read_config_read_octet_string(line, &user->authKey,
-                                         &user->authKeyLen);
+    line = read_config_read_objid_const(line, &user->authProtocol,
+                                        &user->authProtocolLen);
+    line = read_config_read_octet_string_const(line, &user->authKey,
+                                               &user->authKeyLen);
     SNMP_FREE(user->privProtocol);
     user->privProtocolLen = 0;
 
-    line = read_config_read_objid(line, &user->privProtocol,
-                                  &user->privProtocolLen);
+    line = read_config_read_objid_const(line, &user->privProtocol,
+                                        &user->privProtocolLen);
     line = read_config_read_octet_string(line, &user->privKey,
                                          &user->privKeyLen);
 #ifndef NETSNMP_DISABLE_DES
diff --git a/snmplib/snmpv3.c b/snmplib/snmpv3.c
index 8a26d03..7712b8b 100644
--- a/snmplib/snmpv3.c
+++ b/snmplib/snmpv3.c
@@ -11,11 +11,7 @@
 #include <sys/types.h>
 
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -39,9 +35,6 @@
 #if HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
@@ -230,6 +223,9 @@
 }
 
 
+NETSNMP_IMPORT int
+snmpv3_options(char *optarg, netsnmp_session * session, char **Apsz,
+               char **Xpsz, int argc, char *const *argv);
 int
 snmpv3_options(char *optarg, netsnmp_session * session, char **Apsz,
                char **Xpsz, int argc, char *const *argv)
@@ -246,7 +242,7 @@
     /*
      * and '.... "-3x value" ....'  (*with* the quotes)
      */
-    while (*optarg && isspace(*optarg)) {
+    while (*optarg && isspace((unsigned char)(*optarg))) {
         optarg++;
     }
     /*
@@ -1403,7 +1399,7 @@
     /*
      * if our engineID has changed at all, the boots record must be set to 1 
      */
-    if (engineIDLen != (int) oldEngineIDLength ||
+    if (engineIDLen != oldEngineIDLength ||
         oldEngineID == NULL || c_engineID == NULL ||
         memcmp(oldEngineID, c_engineID, engineIDLen) != 0) {
         engineBoots = 1;
diff --git a/snmplib/snprintf.c b/snmplib/snprintf.c
index e235e19..726c4f4 100644
--- a/snmplib/snprintf.c
+++ b/snmplib/snprintf.c
@@ -803,4 +803,6 @@
 }
 #endif                          /* SNPRINTF_TEST */
 
+#else
+int snprintf_unused;	/* Suppress "empty translation unit" warning */
 #endif                          /* !HAVE_SNPRINTF */
diff --git a/snmplib/strlcpy.c b/snmplib/strlcpy.c
index ce57f40..0235a30 100644
--- a/snmplib/strlcpy.c
+++ b/snmplib/strlcpy.c
@@ -5,8 +5,6 @@
  */
 #include <net-snmp/net-snmp-config.h>
 
-#if !HAVE_STRLCPY
-
 #if HAVE_STRING_H
 #include <string.h>
 #else
@@ -15,6 +13,8 @@
 
 #include <sys/types.h>
 
+#include <net-snmp/library/system.h>
+
 /* 
  * Copies src to the dest buffer. The copy will never overflow the dest buffer
  * and dest will always be null terminated, len is the size of the dest buffer.
@@ -41,5 +41,3 @@
 	dest[new_len] = '\0'; 
 	return (src_len); 
 }
-
-#endif                    /* !HAVE_STRLCPY */
diff --git a/snmplib/strtok_r.c b/snmplib/strtok_r.c
index bfe5a9b..21d47d6 100644
--- a/snmplib/strtok_r.c
+++ b/snmplib/strtok_r.c
@@ -31,16 +31,16 @@
  */
 #include <net-snmp/net-snmp-config.h>
 
-#if !HAVE_STRTOK_R
-
 #ifndef WIN32
 #include <sys/cdefs.h>
 #endif
 
 #include <string.h>
 
+#include <net-snmp/library/system.h>
+
 /*
- * thread-save version of strtok
+ * thread-safe version of strtok
  */
 char *
 strtok_r(char *s, const char *delim, char **lasts)
@@ -50,8 +50,8 @@
 	char *tok;
 
 	/* s may be NULL */
-	/*assert(delim != NULL);*/
-	/*assert(lasts != NULL);*/
+	/*netsnmp_assert(delim != NULL);*/
+	/*netsnmp_assert(lasts != NULL);*/
 
 	if (s == NULL && (s = *lasts) == NULL)
 		return (NULL);
@@ -92,4 +92,3 @@
 	}
 	/* NOTREACHED */
 }
-#endif                          /* !HAVE_STRTOK_R */
diff --git a/snmplib/strtol.c b/snmplib/strtol.c
index 989a163..c71f8ba 100644
--- a/snmplib/strtol.c
+++ b/snmplib/strtol.c
@@ -33,8 +33,6 @@
 static char     sccsid[] = "@(#)strtol.c    5.4 (Berkeley) 2/23/91";
 #endif                          /* LIBC_SCCS and not lint */
 
-#if !HAVE_STRTOL
-
 #if HAVE_LIMITS_H
 #include <limits.h>
 #endif
@@ -125,5 +123,3 @@
         *endptr = any ? s - 1 : (char *) nptr;
     return (acc);
 }
-
-#endif                          /* !HAVE_STRTOL */
diff --git a/snmplib/strtoul.c b/snmplib/strtoul.c
index 8012920..7aea330 100644
--- a/snmplib/strtoul.c
+++ b/snmplib/strtoul.c
@@ -29,8 +29,6 @@
 
 #include <net-snmp/net-snmp-config.h>
 
-#if !HAVE_STRTOUL
-
 #if defined(LIBC_SCCS) && !defined(lint)
 static char     sccsid[] = "@(#)strtoul.c   8.1 (Berkeley) 6/4/93";
 #endif                          /* LIBC_SCCS and not lint */
@@ -107,5 +105,3 @@
         *endptr = (char *) (any ? s - 1 : nptr);
     return (acc);
 }
-
-#endif                          /* !HAVE_STRTOUL */
diff --git a/snmplib/strtoull.c b/snmplib/strtoull.c
index ea538ba..6c98fc4 100644
--- a/snmplib/strtoull.c
+++ b/snmplib/strtoull.c
@@ -20,8 +20,6 @@
 
 #include <net-snmp/net-snmp-config.h>
 
-#if !HAVE_STRTOULL || defined(STRTOULL_UNIT_TEST)
-
 #include <errno.h>
 #include <ctype.h>
 #include <limits.h>
@@ -29,6 +27,9 @@
 #include <inttypes.h>
 #endif
 
+#include <net-snmp/types.h>
+#include <net-snmp/library/system.h>
+
 /*
  * UINT64_C: C99 macro for the suffix for uint64_t constants. 
  */
@@ -48,13 +49,8 @@
 #define ULLONG_MAX UINT64_C(0xffffffffffffffff)
 #endif
 
-#ifdef STRTOULL_UNIT_TEST
-uint64_t
-my_strtoull(const char *nptr, char **endptr, int base)
-#else
 uint64_t
 strtoull(const char *nptr, char **endptr, int base)
-#endif
 {
     uint64_t        result = 0;
     const char     *p;
@@ -160,125 +156,3 @@
         *endptr = (char *) nptr;
     return 0;
 }
-
-#if defined(STRTOULL_UNIT_TEST)
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#ifndef PRIu64
-#ifdef _MSC_VER
-#define PRIu64 "I64u"
-#else
-#define PRIu64 "llu"
-#endif
-#endif
-
-struct strtoull_testcase {
-    /*
-     * inputs 
-     */
-    const char     *nptr;
-    int             base;
-    /*
-     * expected outputs 
-     */
-    int             expected_errno;
-    int             expected_end;
-    uint64_t        expected_result;
-};
-
-static const struct strtoull_testcase test_input[] = {
-    {"0x0", 0, 0, 3, 0},
-    {"1", 0, 0, 1, 1},
-    {"0x1", 0, 0, 3, 1},
-    {"  -0666", 0, 0, 7, -0666},
-    {"  -0x666", 0, 0, 8, -0x666},
-    {"18446744073709551614", 0, 0, 20, UINT64_C(0xfffffffffffffffe)},
-    {"0xfffffffffffffffe", 0, 0, 18, UINT64_C(0xfffffffffffffffe)},
-    {"18446744073709551615", 0, 0, 20, UINT64_C(0xffffffffffffffff)},
-    {"0xffffffffffffffff", 0, 0, 18, UINT64_C(0xffffffffffffffff)},
-    {"18446744073709551616", 0, ERANGE, 20, UINT64_C(0xffffffffffffffff)},
-    {"0x10000000000000000", 0, ERANGE, 19, UINT64_C(0xffffffffffffffff)},
-    {"ff", 16, 0, 2, 255},
-    {"0xff", 16, 0, 4, 255},
-    {" ", 0, 0, 0, 0},
-    {"0x", 0, 0, 1, 0},
-    {"0x", 8, 0, 1, 0},
-    {"0x", 16, 0, 1, 0},
-    {"zyyy", 0, 0, 0, 0},
-    {"0xfffffffffffffffff", 0, ERANGE, 19, ULLONG_MAX},
-    {"0xfffffffffffffffffz", 0, ERANGE, 19, ULLONG_MAX}
-};
-
-int
-main(void)
-{
-    int             failure_count = 0;
-    unsigned int    i;
-
-    for (i = 0; i < sizeof(test_input) / sizeof(test_input[0]); i++) {
-        const struct strtoull_testcase *const p = &test_input[i];
-        char           *endptr;
-        uint64_t        result;
-
-        errno = 0;
-        result = my_strtoull(p->nptr, &endptr, p->base);
-        if (errno != p->expected_errno) {
-            failure_count++;
-            printf("test %d failed (input \"%s\"): expected errno %d"
-                   ", got errno %d\n",
-                   i, p->nptr, p->expected_errno, errno);
-        }
-        if (result != p->expected_result) {
-            failure_count++;
-            printf("test %d failed (input \"%s\"): expected result %" PRIu64
-                   ", got result %" PRIu64 "\n",
-                   i, p->nptr, p->expected_result, result);
-        }
-        if (endptr - p->nptr != p->expected_end) {
-            failure_count++;
-            printf("test %d failed (input \"%s\"): expected end %d,"
-                   " got end %d\n",
-                   i, p->nptr, p->expected_end, (int) (endptr - p->nptr));
-        }
-
-#if HAVE_STRTOULL
-        errno = 0;
-        result = strtoull(p->nptr, &endptr, p->base);
-        if (errno != p->expected_errno) {
-            failure_count++;
-            printf("test %d (input \"%s\"): expected errno %d"
-                   ", libc strtoull() returned errno %d\n",
-                   i, p->nptr, p->expected_errno, errno);
-        }
-        if (result != p->expected_result) {
-            failure_count++;
-            printf("test %d (input \"%s\"): expected result %" PRIu64
-                   ", libc strtoull() returned result %" PRIu64 "\n",
-                   i, p->nptr, p->expected_result, result);
-        }
-        if (endptr - p->nptr != p->expected_end) {
-            failure_count++;
-            printf("test %d (input \"%s\"): expected end %d,"
-                   " libc strtoull() returned end %d\n",
-                   i, p->nptr, p->expected_end, (int) (endptr - p->nptr));
-        }
-#endif
-    }
-    if (failure_count == 0)
-        printf("All %d tests passed.\n", i);
-    return 0;
-}
-
-#endif /* defined(STRTOULL_UNIT_TEST) */
-
-#endif /* !HAVE_STRTOULL || defined(STRTOULL_UNIT_TEST) */
-
-/*
- * Local variables:
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * compile-command: "gcc -Wall -Werror -DSTRTOULL_UNIT_TEST=1 -I../include -g -o strtoull-unit-test strtoull.c && ./strtoull-unit-test"
- * End:
- */
diff --git a/snmplib/system.c b/snmplib/system.c
index e60ba70..ecd5598 100644
--- a/snmplib/system.c
+++ b/snmplib/system.c
@@ -60,11 +60,7 @@
 #endif
 
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -80,9 +76,6 @@
 #include <netinet/in.h>
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
@@ -326,204 +319,6 @@
  * ********************************************* 
  */
 #ifdef							WIN32
-#	define WIN32_LEAN_AND_MEAN
-#	define WIN32IO_IS_STDIO
-#	define PATHLEN	1024
-
-#	include <tchar.h>
-#	include <windows.h>
-
-/*
- * MinGW defines WIN32, but has working dirent stuff.
- */
-#ifndef HAVE_DIRENT_H 
-
-/*
- * The idea here is to read all the directory names into a string table
- * * (separated by nulls) and when one of the other dir functions is called
- * * return the pointer to the current file name.
- */
-DIR            *
-opendir(const char *filename)
-{
-    DIR            *p;
-    long            len;
-    long            idx;
-    char            scannamespc[PATHLEN];
-    char           *scanname = scannamespc;
-    struct stat     sbuf;
-    WIN32_FIND_DATA FindData;
-    HANDLE          fh;
-
-    /*
-     * check to see if filename is a directory 
-     */
-    if ((stat(filename, &sbuf) < 0) || ((sbuf.st_mode & S_IFDIR) == 0)) {
-        return NULL;
-    }
-
-    /*
-     * get the file system characteristics 
-     */
-    /*
-     * if(GetFullPathName(filename, SNMP_MAXPATH, root, &dummy)) {
-     * *    if(dummy = strchr(root, '\\'))
-     * *        *++dummy = '\0';
-     * *    if(GetVolumeInformation(root, volname, SNMP_MAXPATH, &serial,
-     * *                            &maxname, &flags, 0, 0)) {
-     * *        downcase = !(flags & FS_CASE_IS_PRESERVED);
-     * *    }
-     * *  }
-     * *  else {
-     * *    downcase = TRUE;
-     * *  }
-     */
-
-    /*
-     * Create the search pattern 
-     */
-    strcpy(scanname, filename);
-
-    if (strchr("/\\", *(scanname + strlen(scanname) - 1)) == NULL)
-        strcat(scanname, "/*");
-    else
-        strcat(scanname, "*");
-
-    /*
-     * do the FindFirstFile call 
-     */
-    fh = FindFirstFile(scanname, &FindData);
-    if (fh == INVALID_HANDLE_VALUE) {
-        return NULL;
-    }
-
-    /*
-     * Get us a DIR structure 
-     */
-    p = (DIR *) malloc(sizeof(DIR));
-    /*
-     * Newz(1303, p, 1, DIR); 
-     */
-    if (p == NULL)
-        return NULL;
-
-    /*
-     * now allocate the first part of the string table for
-     * * the filenames that we find.
-     */
-    idx = strlen(FindData.cFileName) + 1;
-    p->start = (char *) malloc(idx);
-    /*
-     * New(1304, p->start, idx, char);
-     */
-    if (p->start == NULL) {
-        free(p);
-        return NULL;
-    }
-    strcpy(p->start, FindData.cFileName);
-    /*
-     * if(downcase)
-     * *    strlwr(p->start);
-     */
-    p->nfiles = 0;
-
-    /*
-     * loop finding all the files that match the wildcard
-     * * (which should be all of them in this directory!).
-     * * the variable idx should point one past the null terminator
-     * * of the previous string found.
-     */
-    while (FindNextFile(fh, &FindData)) {
-        len = strlen(FindData.cFileName);
-        /*
-         * bump the string table size by enough for the
-         * * new name and it's null terminator
-         */
-        p->start = (char *) realloc((void *) p->start, idx + len + 1);
-        /*
-         * Renew(p->start, idx+len+1, char);
-         */
-        if (p->start == NULL) {
-            free(p);
-            return NULL;
-        }
-        strcpy(&p->start[idx], FindData.cFileName);
-        /*
-         * if (downcase) 
-         * *        strlwr(&p->start[idx]);
-         */
-        p->nfiles++;
-        idx += len + 1;
-    }
-    FindClose(fh);
-    p->size = idx;
-    p->curr = p->start;
-    return p;
-}
-
-
-/*
- * Readdir just returns the current string pointer and bumps the
- * * string pointer to the nDllExport entry.
- */
-struct direct  *
-readdir(DIR * dirp)
-{
-    int             len;
-    static int      dummy = 0;
-
-    if (dirp->curr) {
-        /*
-         * first set up the structure to return 
-         */
-        len = strlen(dirp->curr);
-        strcpy(dirp->dirstr.d_name, dirp->curr);
-        dirp->dirstr.d_namlen = len;
-
-        /*
-         * Fake an inode 
-         */
-        dirp->dirstr.d_ino = dummy++;
-
-        /*
-         * Now set up for the nDllExport call to readdir 
-         */
-        dirp->curr += len + 1;
-        if (dirp->curr >= (dirp->start + dirp->size)) {
-            dirp->curr = NULL;
-        }
-
-        return &(dirp->dirstr);
-    } else
-        return NULL;
-}
-
-/*
- * free the memory allocated by opendir 
- */
-int
-closedir(DIR * dirp)
-{
-    free(dirp->start);
-    free(dirp);
-    return 1;
-}
-#endif /* HAVE_DIRENT_H */
-
-#ifndef HAVE_GETTIMEOFDAY
-
-int
-gettimeofday(struct timeval *tv, struct timezone *tz)
-{
-    struct _timeb   timebuffer;
-
-    _ftime(&timebuffer);
-    tv->tv_usec = timebuffer.millitm * 1000;
-    tv->tv_sec = timebuffer.time;
-    return (0);
-}
-#endif                          /* !HAVE_GETTIMEOFDAY */
-
 in_addr_t
 get_myaddr(void)
 {
@@ -816,26 +611,20 @@
 }
 #endif
 
-/*
- * Returns uptime in centiseconds(!).
+/**
+ * Returns the system uptime in centiseconds.
+ *
+ * @note The value returned by this function is not identical to sysUpTime
+ *   defined in RFC 1213. get_uptime() returns the system uptime while
+ *   sysUpTime represents the time that has elapsed since the most recent
+ *   restart of the network manager (snmpd).
+ *
+ * @see See also netsnmp_get_agent_uptime().
  */
 long
 get_uptime(void)
 {
-#if !defined(solaris2) && !defined(linux) && !defined(cygwin) && !defined(aix4) && !defined(aix5) && !defined(aix6)
-    struct timeval  now;
-    long            boottime_csecs, nowtime_csecs;
-
-    boottime_csecs = get_boottime();
-    if (boottime_csecs == 0)
-        return 0;
-    gettimeofday(&now, (struct timezone *) 0);
-    nowtime_csecs = (now.tv_sec * 100) + (now.tv_usec / 10000);
-
-    return (nowtime_csecs - boottime_csecs);
-#endif
-
-#if defined(aix4) || defined(aix5) || defined(aix6)
+#if defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
     struct nlist nl;
     int kmem;
     time_t lbolt;
@@ -847,9 +636,7 @@
     read(kmem, &lbolt, sizeof(lbolt));
     close(kmem);
     return(lbolt);
-#endif
-
-#ifdef solaris2
+#elif defined(solaris2)
     kstat_ctl_t    *ksc = kstat_open();
     kstat_t        *ks;
     kid_t           kid;
@@ -874,9 +661,7 @@
         kstat_close(ksc);
     }
     return lbolt;
-#endif                          /* solaris2 */
-
-#ifdef linux
+#elif defined(linux) || defined(cygwin)
     FILE           *in = fopen("/proc/uptime", "r");
     long            uptim = 0, a, b;
     if (in) {
@@ -885,10 +670,17 @@
         fclose(in);
     }
     return uptim;
-#endif                          /* linux */
+#else
+    struct timeval  now;
+    long            boottime_csecs, nowtime_csecs;
 
-#ifdef cygwin
-    return (0);                 /* not implemented */
+    boottime_csecs = get_boottime();
+    if (boottime_csecs == 0)
+        return 0;
+    gettimeofday(&now, (struct timezone *) 0);
+    nowtime_csecs = (now.tv_sec * 100) + (now.tv_usec / 10000);
+
+    return (nowtime_csecs - boottime_csecs);
 #endif
 }
 
@@ -1065,7 +857,7 @@
 
 /* returns centiseconds */
 int
-calculate_time_diff(struct timeval *now, struct timeval *then)
+calculate_time_diff(const struct timeval *now, const struct timeval *then)
 {
     struct timeval  tmp, diff;
     memcpy(&tmp, now, sizeof(struct timeval));
@@ -1082,7 +874,7 @@
 
 /* returns diff in rounded seconds */
 u_int
-calculate_sectime_diff(struct timeval *now, struct timeval *then)
+calculate_sectime_diff(const struct timeval *now, const struct timeval *then)
 {
     struct timeval  tmp, diff;
     memcpy(&tmp, now, sizeof(struct timeval));
@@ -1090,7 +882,7 @@
     tmp.tv_usec += 1000000L;
     diff.tv_sec = tmp.tv_sec - then->tv_sec;
     diff.tv_usec = tmp.tv_usec - then->tv_usec;
-    if (diff.tv_usec > 1000000L) {
+    if (diff.tv_usec >= 1000000L) {
         diff.tv_usec -= 1000000L;
         diff.tv_sec++;
     }
@@ -1343,7 +1135,7 @@
   } else {
     return -1;
   }
-#elif defined(aix4) || defined(aix5) || defined(aix6)
+#elif defined(aix4) || defined(aix5) || defined(aix6) || defined(aix7)
   return (__KERNEL_32() ? 32 : (__KERNEL_64() ? 64 : -1));
 #elif defined(osf4) || defined(osf5) || defined(__alpha)
   return 64; /* Alpha is always 64bit */
diff --git a/snmplib/text_utils.c b/snmplib/text_utils.c
index 9079709..7148dcc 100644
--- a/snmplib/text_utils.c
+++ b/snmplib/text_utils.c
@@ -465,13 +465,13 @@
 
         case PMLP_TYPE_UNSIGNED:
             tvi->value.ul = strtoul(ptr, NULL, 0);
-            if ((errno == ERANGE) &&(ULONG_MAX == tvi->value.sl))
+            if ((errno == ERANGE) && (ULONG_MAX == tvi->value.ul))
                 snmp_log(LOG_WARNING,"value overflow\n");
             break;
 
 
         case PMLP_TYPE_INTEGER:
-            tvi->value.ul = strtol(ptr, NULL, 0);
+            tvi->value.sl = strtol(ptr, NULL, 0);
             if ((errno == ERANGE) &&
                 ((LONG_MAX == tvi->value.sl) ||
                  (LONG_MIN == tvi->value.sl)))
@@ -483,7 +483,7 @@
             break;
 
         case PMLP_TYPE_BOOLEAN:
-            if (isdigit(*ptr))
+            if (isdigit((unsigned char)(*ptr)))
                 tvi->value.ul = strtoul(ptr, NULL, 0);
             else if (strcasecmp(ptr,"true") == 0)
                 tvi->value.ul = 1;
diff --git a/snmplib/tools.c b/snmplib/tools.c
index fa9e6a0..f491ee1 100644
--- a/snmplib/tools.c
+++ b/snmplib/tools.c
@@ -4,17 +4,22 @@
 
 #define NETSNMP_TOOLS_C 1 /* dont re-define malloc wrappers here */
 
+#ifdef HAVE_CRTDBG_H
+/*
+ * Define _CRTDBG_MAP_ALLOC such that in debug builds (when _DEBUG has been
+ * defined) e.g. malloc() is rerouted to _malloc_dbg().
+ */
+#define _CRTDBG_MAP_ALLOC 1
+#include <crtdbg.h>
+#endif
+
 #include <net-snmp/net-snmp-config.h>
 
 #include <ctype.h>
 #include <stdio.h>
 #include <sys/types.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -26,8 +31,8 @@
 #ifdef HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
-#if HAVE_WINSOCK_H
-#include <winsock.h>
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
 #endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
@@ -43,14 +48,6 @@
 #ifdef HAVE_ARPA_INET_H
 #include <arpa/inet.h>
 #endif
-#ifdef HAVE_CRTDBG_H
-/*
- * Define _CRTDBG_MAP_ALLOC such that in debug builds (when _DEBUG has been
- * defined) e.g. malloc() is rerouted to _malloc_dbg().
- */
-#define _CRTDBG_MAP_ALLOC 1
-#include <crtdbg.h>
-#endif
 #ifdef cygwin
 #include <windows.h>
 #endif
@@ -285,6 +282,58 @@
 
 /** converts binary to hexidecimal
  *
+ *     @param *input            Binary data.
+ *     @param len               Length of binary data.
+ *     @param **dest            NULL terminated string equivalent in hex.
+ *     @param *dest_len         size of destination buffer
+ *     @param allow_realloc     flag indicating if buffer can be realloc'd
+ *      
+ * @return olen	Length of output string not including NULL terminator.
+ */
+u_int
+netsnmp_binary_to_hex(u_char ** dest, size_t *dest_len, int allow_realloc, 
+                      const u_char * input, size_t len)
+{
+    u_int           olen = (len * 2) + 1;
+    u_char         *s, *op;
+    const u_char   *ip = input;
+
+    if (dest == NULL || dest_len == NULL || input == NULL)
+        return 0;
+
+    if (NULL == *dest) {
+        s = (unsigned char *) calloc(1, olen);
+        *dest_len = olen;
+    }
+    else
+        s = *dest;
+
+    if (*dest_len < olen) {
+        if (!allow_realloc)
+            return 0;
+        *dest_len = olen;
+        if (snmp_realloc(dest, dest_len))
+            return 0;
+    }
+
+    op = s;
+    while (ip - input < (int) len) {
+        *op++ = VAL2HEX((*ip >> 4) & 0xf);
+        *op++ = VAL2HEX(*ip & 0xf);
+        ip++;
+    }
+    *op = '\0';
+
+    if (s != *dest)
+        *dest = s;
+    *dest_len = olen;
+
+    return olen;
+
+}                               /* end netsnmp_binary_to_hex() */
+
+/** converts binary to hexidecimal
+ *
  *	@param *input		Binary data.
  *	@param len		Length of binary data.
  *	@param **output	NULL terminated string equivalent in hex.
@@ -298,21 +347,11 @@
 u_int
 binary_to_hex(const u_char * input, size_t len, char **output)
 {
-    u_int           olen = (len * 2) + 1;
-    char           *s = (char *) calloc(1, olen), *op = s;
-    const u_char   *ip = input;
+    size_t out_len = 0;
 
+    *output = NULL; /* will alloc new buffer */
 
-    while (ip - input < (int) len) {
-        *op++ = VAL2HEX((*ip >> 4) & 0xf);
-        *op++ = VAL2HEX(*ip & 0xf);
-        ip++;
-    }
-    *op = '\0';
-
-    *output = s;
-    return olen;
-
+    return netsnmp_binary_to_hex((u_char**)output, &out_len, 1, input, len);
 }                               /* end binary_to_hex() */
 
 
@@ -437,7 +476,7 @@
 netsnmp_hex_to_binary(u_char ** buf, size_t * buf_len, size_t * offset,
                       int allow_realloc, const char *hex, const char *delim)
 {
-    int             subid = 0;
+    unsigned int    subid = 0;
     const char     *cp = hex;
 
     if (buf == NULL || buf_len == NULL || offset == NULL || hex == NULL) {
@@ -800,15 +839,11 @@
  * Returns the difference (in msec) between the two markers
  */
 long
-atime_diff(marker_t first, marker_t second)
+atime_diff(const_marker_t first, const_marker_t second)
 {
-    struct timeval *tv1, *tv2, diff;
+    struct timeval diff;
 
-    tv1 = (struct timeval *) first;
-    tv2 = (struct timeval *) second;
-
-    diff.tv_sec = tv2->tv_sec - tv1->tv_sec - 1;
-    diff.tv_usec = tv2->tv_usec - tv1->tv_usec + 1000000;
+    NETSNMP_TIMERSUB((const struct timeval *) second, (const struct timeval *) first, &diff);
 
     return (diff.tv_sec * 1000 + diff.tv_usec / 1000);
 }
@@ -817,15 +852,11 @@
  * Returns the difference (in u_long msec) between the two markers
  */
 u_long
-uatime_diff(marker_t first, marker_t second)
+uatime_diff(const_marker_t first, const_marker_t second)
 {
-    struct timeval *tv1, *tv2, diff;
+    struct timeval diff;
 
-    tv1 = (struct timeval *) first;
-    tv2 = (struct timeval *) second;
-
-    diff.tv_sec = tv2->tv_sec - tv1->tv_sec - 1;
-    diff.tv_usec = tv2->tv_usec - tv1->tv_usec + 1000000;
+    NETSNMP_TIMERSUB((const struct timeval *) second, (const struct timeval *) first, &diff);
 
     return (((u_long) diff.tv_sec) * 1000 + diff.tv_usec / 1000);
 }
@@ -835,27 +866,20 @@
  * (functionally this is what sysUpTime needs)
  */
 u_long
-uatime_hdiff(marker_t first, marker_t second)
+uatime_hdiff(const_marker_t first, const_marker_t second)
 {
-    struct timeval *tv1, *tv2, diff;
-    u_long          res;
+    struct timeval diff;
 
-    tv1 = (struct timeval *) first;
-    tv2 = (struct timeval *) second;
-
-    diff.tv_sec = tv2->tv_sec - tv1->tv_sec - 1;
-    diff.tv_usec = tv2->tv_usec - tv1->tv_usec + 1000000;
-
-    res = ((u_long) diff.tv_sec) * 100 + diff.tv_usec / 10000;
-    return res;
+    NETSNMP_TIMERSUB((const struct timeval *) second, (const struct timeval *) first, &diff);
+    return ((u_long) diff.tv_sec) * 100 + diff.tv_usec / 10000;
 }
 
 /**
- * Test: Has (marked time plus delta) exceeded current time (in msec) ?
+ * Test: Has (marked time plus delta) exceeded current time ?
  * Returns 0 if test fails or cannot be tested (no marker).
  */
 int
-atime_ready(marker_t pm, int deltaT)
+atime_ready(const_marker_t pm, int delta_ms)
 {
     marker_t        now;
     long            diff;
@@ -866,18 +890,18 @@
 
     diff = atime_diff(pm, now);
     free(now);
-    if (diff < deltaT)
+    if (diff < delta_ms)
         return 0;
 
     return 1;
 }
 
 /**
- * Test: Has (marked time plus delta) exceeded current time (in msec) ?
+ * Test: Has (marked time plus delta) exceeded current time ?
  * Returns 0 if test fails or cannot be tested (no marker).
  */
 int
-uatime_ready(marker_t pm, unsigned int deltaT)
+uatime_ready(const_marker_t pm, unsigned int delta_ms)
 {
     marker_t        now;
     u_long          diff;
@@ -888,7 +912,7 @@
 
     diff = uatime_diff(pm, now);
     free(now);
-    if (diff < deltaT)
+    if (diff < delta_ms)
         return 0;
 
     return 1;
@@ -903,7 +927,7 @@
  * Return the number of timeTicks since the given marker 
  */
 int
-marker_tticks(marker_t pm)
+marker_tticks(const_marker_t pm)
 {
     int             res;
     marker_t        now = atime_newMarker();
@@ -914,9 +938,9 @@
 }
 
 int
-timeval_tticks(struct timeval *tv)
+timeval_tticks(const struct timeval *tv)
 {
-    return marker_tticks((marker_t) tv);
+    return marker_tticks((const_marker_t) tv);
 }
 
 /**
diff --git a/snmplib/snmpAAL5PVCDomain.c b/snmplib/transports/snmpAAL5PVCDomain.c
similarity index 90%
rename from snmplib/snmpAAL5PVCDomain.c
rename to snmplib/transports/snmpAAL5PVCDomain.c
index b79fbbe..2b28cb3 100644
--- a/snmplib/snmpAAL5PVCDomain.c
+++ b/snmplib/transports/snmpAAL5PVCDomain.c
@@ -1,5 +1,7 @@
 #include <net-snmp/net-snmp-config.h>
 
+#include <net-snmp/library/snmpAAL5PVCDomain.h>
+
 #include <stdio.h>
 #include <sys/types.h>
 #include <ctype.h>
@@ -30,7 +32,6 @@
 #include <net-snmp/config_api.h>
 
 #include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/snmpAAL5PVCDomain.h>
 
 
 oid netsnmp_AAL5PVCDomain[10] = { NETSNMP_ENTERPRISE_MIB, 3, 3, 3 };
@@ -86,11 +87,13 @@
 	}
 
         if (rc >= 0) {
-            char *str = netsnmp_aal5pvc_fmtaddr(t, NULL, 0);
-            DEBUGMSGTL(("netsnmp_aal5pvc",
-			"recv on fd %d got %d bytes (from %s)\n", t->sock,
-                        rc, str));
-            free(str);
+            DEBUGIF("netsnmp_aal5pvc") {
+                char *str = netsnmp_aal5pvc_fmtaddr(t, NULL, 0);
+                DEBUGMSGTL(("netsnmp_aal5pvc",
+                            "recv on fd %d got %d bytes (from %s)\n", t->sock,
+                            rc, str));
+                free(str);
+            }
         } else {
             DEBUGMSGTL(("netsnmp_aal5pvc", "recv on fd %d err %d (\"%s\")\n", 
 			t->sock, errno, strerror(errno)));
@@ -119,11 +122,14 @@
     }
 
     if (to != NULL && t != NULL && t->sock >= 0) {
-        char *str = netsnmp_aal5pvc_fmtaddr(NULL, (void *)to,
-					    sizeof(struct sockaddr_atmpvc));
-        DEBUGMSGTL(("netsnmp_aal5pvc","send %d bytes from %p to %s on fd %d\n",
-		    size, buf, str, t->sock));
-        free(str);
+        DEBUGIF("netsnmp_aal5pvc") {
+            char *str = netsnmp_aal5pvc_fmtaddr(NULL, (void *)to,
+                                                sizeof(struct sockaddr_atmpvc));
+            DEBUGMSGTL(("netsnmp_aal5pvc",
+                        "send %d bytes from %p to %s on fd %d\n",
+                        size, buf, str, t->sock));
+            free(str);
+        }
 	while (rc < 0) {
 	    rc = sendto(t->sock, buf, size, 0, NULL, 0);
 	    if (rc < 0 && errno != EINTR) {
@@ -164,7 +170,6 @@
 netsnmp_transport *
 netsnmp_aal5pvc_transport(struct sockaddr_atmpvc *addr, int local)
 {
-    char           *str = NULL;
     netsnmp_transport *t = NULL;
 
     if (addr == NULL || addr->sap_family != AF_ATMPVC) {
@@ -176,11 +181,13 @@
         return NULL;
     }
 
-    str = netsnmp_aal5pvc_fmtaddr(NULL, (void *) addr,
-                                  sizeof(struct sockaddr_atmpvc));
-    DEBUGMSGTL(("netsnmp_aal5pvc", "open %s %s\n", local ? "local" : "remote",
-                str));
-    free(str);
+    DEBUGIF("netsnmp_aal5pvc") {
+        char *str = netsnmp_aal5pvc_fmtaddr(NULL, (void *) addr,
+                                            sizeof(struct sockaddr_atmpvc));
+        DEBUGMSGTL(("netsnmp_aal5pvc", "open %s %s\n",
+                    local ? "local" : "remote", str));
+        free(str);
+    }
 
     memset(t, 0, sizeof(netsnmp_transport));
 
diff --git a/snmplib/snmpAliasDomain.c b/snmplib/transports/snmpAliasDomain.c
similarity index 89%
rename from snmplib/snmpAliasDomain.c
rename to snmplib/transports/snmpAliasDomain.c
index 38c1620..eb50cad 100644
--- a/snmplib/snmpAliasDomain.c
+++ b/snmplib/transports/snmpAliasDomain.c
@@ -1,5 +1,8 @@
 #include <net-snmp/net-snmp-config.h>
 
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmpAliasDomain.h>
+
 #include <stdio.h>
 #include <sys/types.h>
 #include <errno.h>
@@ -20,19 +23,27 @@
 #include <dmalloc.h>
 #endif
 
+#include <net-snmp/net-snmp-includes.h>
 #include <net-snmp/types.h>
 #include <net-snmp/output_api.h>
 #include <net-snmp/utilities.h>
 #include <net-snmp/config_api.h>
 
-#include <net-snmp/library/snmp_transport.h>
-
 oid netsnmp_snmpALIASDomain[] = { 1,3,6,1,4,1,8072,3,3,7 };
 static netsnmp_tdomain aliasDomain;
 
 /* simple storage mechanism */
 static netsnmp_data_list *alias_memory = NULL;
 
+#ifdef HAVE_DMALLOC_H
+static void free_wrapper(void * p)
+{
+    free(p);
+}
+#else
+#define free_wrapper free
+#endif
+
 /* An alias parser */
 void
 parse_alias_config(const char *token, char *line) {
@@ -47,7 +58,7 @@
     netsnmp_data_list_add_node(&alias_memory,
                                netsnmp_create_data_list(aliasname,
                                                         strdup(transportdef),
-                                                        &free));
+                                                        &free_wrapper));
 }
 
 void
diff --git a/snmplib/snmpCallbackDomain.c b/snmplib/transports/snmpCallbackDomain.c
similarity index 99%
rename from snmplib/snmpCallbackDomain.c
rename to snmplib/transports/snmpCallbackDomain.c
index efc2cbc..175c228 100644
--- a/snmplib/snmpCallbackDomain.c
+++ b/snmplib/transports/snmpCallbackDomain.c
@@ -1,5 +1,7 @@
 #include <net-snmp/net-snmp-config.h>
 
+#include <net-snmp/library/snmpCallbackDomain.h>
+
 #include <stdio.h>
 #include <sys/types.h>
 #include <ctype.h>
@@ -42,10 +44,8 @@
 #include <net-snmp/utilities.h>
 
 #include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/snmpUnixDomain.h>
 #include <net-snmp/library/snmp_api.h>
 #include <net-snmp/library/snmp_client.h>
-#include <net-snmp/library/snmpCallbackDomain.h>
 
 #ifndef NETSNMP_STREAM_QUEUE_LEN
 #define NETSNMP_STREAM_QUEUE_LEN  5
diff --git a/snmplib/transports/snmpDTLSUDPDomain.c b/snmplib/transports/snmpDTLSUDPDomain.c
new file mode 100644
index 0000000..4856b2b
--- /dev/null
+++ b/snmplib/transports/snmpDTLSUDPDomain.c
@@ -0,0 +1,1609 @@
+/* Portions of this file are subject to the following copyright(s).  See
+ * the Net-SNMP's COPYING file for more details and other copyrights
+ * that may apply:
+ */
+/*
+ * Portions of this file are copyrighted by:
+ * Copyright Copyright 2003 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms specified in the COPYING file
+ * distributed with the Net-SNMP package.
+ */
+/* 
+ * See the following web pages for useful documentation on this transport:
+ * http://www.net-snmp.org/wiki/index.php/TUT:Using_TLS
+ * http://www.net-snmp.org/wiki/index.php/Using_DTLS
+ */
+
+#include <net-snmp/net-snmp-config.h>
+
+#ifdef HAVE_LIBSSL_DTLS
+
+#include <net-snmp/library/snmpDTLSUDPDomain.h>
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <ctype.h>
+#include <errno.h>
+
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#if HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#if HAVE_SYS_UIO_H
+#include <sys/uio.h>
+#endif
+
+#if HAVE_DMALLOC_H
+#include <dmalloc.h>
+#endif
+
+#include <net-snmp/types.h>
+#include <net-snmp/output_api.h>
+#include <net-snmp/config_api.h>
+
+#include <net-snmp/library/snmp_transport.h>
+#include <net-snmp/library/system.h>
+#include <net-snmp/library/tools.h>
+#include <net-snmp/library/callback.h>
+
+#include "openssl/bio.h"
+#include "openssl/ssl.h"
+#include "openssl/err.h"
+#include "openssl/rand.h"
+
+#include <net-snmp/library/snmpSocketBaseDomain.h>
+#include <net-snmp/library/snmpTLSBaseDomain.h>
+#include <net-snmp/library/snmpUDPDomain.h>
+#include <net-snmp/library/cert_util.h>
+#include <net-snmp/library/snmp_openssl.h>
+
+#ifndef INADDR_NONE
+#define INADDR_NONE	-1
+#endif
+
+#define WE_ARE_SERVER 0
+#define WE_ARE_CLIENT 1
+
+oid             netsnmpDTLSUDPDomain[] = { TRANSPORT_DOMAIN_DTLS_UDP_IP };
+size_t          netsnmpDTLSUDPDomain_len = OID_LENGTH(netsnmpDTLSUDPDomain);
+
+static netsnmp_tdomain dtlsudpDomain;
+
+/* this stores openssl credentials for each connection since openssl
+   can't do it for us at the moment; hopefully future versions will
+   change */
+typedef struct bio_cache_s {
+   BIO *read_bio;  /* OpenSSL will read its incoming SSL packets from here */
+   BIO *write_bio; /* OpenSSL will write its outgoing SSL packets to here */
+   struct sockaddr_in sockaddr;
+   uint32_t ipv4addr;
+   u_short portnum;
+   u_int flags;
+   struct bio_cache_s *next;
+   int msgnum;
+   char *write_cache;
+   size_t write_cache_len;
+   _netsnmpTLSBaseData *tlsdata;
+} bio_cache;
+
+/** bio_cache flags */
+#define NETSNMP_BIO_HAVE_COOKIE        0x0001 /* verified cookie */
+#define NETSNMP_BIO_CONNECTED          0x0002 /* recieved decoded data */
+#define NETSNMP_BIO_DISCONNECTED       0x0004 /* peer shutdown */
+
+static bio_cache *biocache = NULL;
+
+static int openssl_addr_index = 0;
+
+static int netsnmp_dtls_verify_cookie(SSL *ssl, unsigned char *cookie,
+                                      unsigned int cookie_len);
+static int netsnmp_dtls_gen_cookie(SSL *ssl, unsigned char *cookie,
+                                   unsigned int *cookie_len);
+
+
+/* this stores remote connections in a list to search through */
+/* XXX: optimize for searching */
+/* XXX: handle state issues for new connections to reduce DOS issues */
+/*      (TLS should do this, but openssl can't do more than one ctx per sock */
+/* XXX: put a timer on the cache for expirary purposes */
+static bio_cache *find_bio_cache(struct sockaddr_in *from_addr) {
+    bio_cache *cachep = NULL;
+    cachep = biocache;
+    while(cachep) {
+
+        if (cachep->ipv4addr == from_addr->sin_addr.s_addr &&
+            cachep->portnum == from_addr->sin_port) {
+            /* found an existing connection */
+            break;
+        }
+            
+        cachep = cachep->next;
+    }
+    return cachep;
+}
+
+/* removes a single cache entry and returns SUCCESS on finding and
+   removing it. */
+static int remove_bio_cache(bio_cache *thiscache) {
+    bio_cache *cachep = NULL, *prevcache = NULL;
+    cachep = biocache;
+    while(cachep) {
+        if (cachep == thiscache) {
+
+            /* remove it from the list */
+            if (NULL == prevcache) {
+                /* at the first cache in the list */
+                biocache = thiscache->next;
+            } else {
+                prevcache->next = thiscache->next;
+            }
+
+            return SNMPERR_SUCCESS;
+        }
+        prevcache = cachep;
+        cachep = cachep->next;
+    }
+    return SNMPERR_GENERR;
+}
+
+/* frees the contents of a bio_cache */
+static void free_bio_cache(bio_cache *cachep) {
+/* These are freed by the SSL_free() call */
+/*
+        BIO_free(cachep->read_bio);
+        BIO_free(cachep->write_bio);
+*/
+    DEBUGMSGTL(("9:dtlsudp:bio_cache", "releasing %p\n", cachep));
+        SNMP_FREE(cachep->write_cache);
+        netsnmp_tlsbase_free_tlsdata(cachep->tlsdata);
+}
+
+static void remove_and_free_bio_cache(bio_cache *cachep) {
+    /** no debug, remove_bio_cache does it */
+    remove_bio_cache(cachep);
+    free_bio_cache(cachep);
+}
+
+
+/* XXX: lots of malloc/state cleanup needed */
+#define DIEHERE(msg) do { snmp_log(LOG_ERR, "%s\n", msg); return NULL; } while(0)
+
+static bio_cache *
+start_new_cached_connection(netsnmp_transport *t,
+                            struct sockaddr_in *remote_addr,
+                            int we_are_client) {
+    bio_cache *cachep = NULL;
+    _netsnmpTLSBaseData *tlsdata;
+
+    DEBUGTRACETOK("9:dtlsudp");
+
+    /* RFC5953: section 5.3.1, step 1:
+       1)  The snmpTlstmSessionOpens counter is incremented.
+    */
+    if (we_are_client)
+        snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONOPENS);
+
+    if (!t->sock)
+        DIEHERE("no socket passed in to start_new_cached_connection\n");
+    if (!remote_addr)
+        DIEHERE("no remote_addr passed in to start_new_cached_connection\n");
+        
+    cachep = SNMP_MALLOC_TYPEDEF(bio_cache);
+    if (!cachep)
+        return NULL;
+    
+    /* allocate our TLS specific data */
+    if (NULL == (tlsdata = netsnmp_tlsbase_allocate_tlsdata(t, !we_are_client))) {
+        SNMP_FREE(cachep);
+        return NULL;
+    }
+    cachep->tlsdata = tlsdata;
+
+    /* RFC5953: section 5.3.1, step 1:
+       2)  The client selects the appropriate certificate and cipher_suites
+           for the key agreement based on the tmSecurityName and the
+           tmRequestedSecurityLevel for the session.  For sessions being
+           established as a result of a SNMP-TARGET-MIB based operation, the
+           certificate will potentially have been identified via the
+           snmpTlstmParamsTable mapping and the cipher_suites will have to
+           be taken from system-wide or implementation-specific
+           configuration.  If no row in the snmpTlstmParamsTable exists then
+           implementations MAY choose to establish the connection using a
+           default client certificate available to the application.
+           Otherwise, the certificate and appropriate cipher_suites will
+           need to be passed to the openSession() ASI as supplemental
+           information or configured through an implementation-dependent
+           mechanism.  It is also implementation-dependent and possibly
+           policy-dependent how tmRequestedSecurityLevel will be used to
+           influence the security capabilities provided by the (D)TLS
+           connection.  However this is done, the security capabilities
+           provided by (D)TLS MUST be at least as high as the level of
+           security indicated by the tmRequestedSecurityLevel parameter.
+           The actual security level of the session is reported in the
+           tmStateReference cache as tmSecurityLevel.  For (D)TLS to provide
+           strong authentication, each principal acting as a command
+           generator SHOULD have its own certificate.
+    */
+    /* Implementation notes:
+       + This Information is passed in via the transport and default
+         paremeters
+    */
+    /* see if we have base configuration to copy in to this new one */
+    if (NULL != t->data && t->data_length == sizeof(_netsnmpTLSBaseData)) {
+        _netsnmpTLSBaseData *parentdata = t->data;
+        if (parentdata->our_identity)
+            tlsdata->our_identity = strdup(parentdata->our_identity);
+        if (parentdata->their_identity)
+            tlsdata->their_identity = strdup(parentdata->their_identity);
+        if (parentdata->their_fingerprint)
+            tlsdata->their_fingerprint = strdup(parentdata->their_fingerprint);
+        if (parentdata->trust_cert)
+            tlsdata->trust_cert = strdup(parentdata->trust_cert);
+        if (parentdata->their_hostname)
+            tlsdata->their_hostname = strdup(parentdata->their_hostname);
+    }
+    
+    DEBUGMSGTL(("dtlsudp", "starting a new connection\n"));
+    cachep->next = biocache;
+    biocache = cachep;
+
+    cachep->ipv4addr = remote_addr->sin_addr.s_addr;
+    cachep->portnum = remote_addr->sin_port;
+    memcpy(&cachep->sockaddr, remote_addr, sizeof(*remote_addr));
+
+    /* create caching memory bios for OpenSSL to read and write to */
+
+    cachep->read_bio = BIO_new(BIO_s_mem()); /* openssl reads from */
+    if (!cachep->read_bio)
+        DIEHERE("failed to create the openssl read_bio");
+
+    cachep->write_bio = BIO_new(BIO_s_mem()); /* openssl writes to */
+    if (!cachep->write_bio) {
+        BIO_free(cachep->read_bio);
+        cachep->read_bio = NULL;
+        DIEHERE("failed to create the openssl write_bio");
+    }
+
+    BIO_set_mem_eof_return(cachep->read_bio, -1);
+    BIO_set_mem_eof_return(cachep->write_bio, -1);
+
+    if (we_are_client) {
+        /* we're the client */
+        DEBUGMSGTL(("dtlsudp",
+                    "starting a new connection as a client to sock: %d\n",
+                    t->sock));
+        tlsdata->ssl = SSL_new(sslctx_client_setup(DTLSv1_method(), tlsdata));
+
+        /* XXX: session setting 735 */
+    } else {
+        /* we're the server */
+        SSL_CTX *ctx = sslctx_server_setup(DTLSv1_method());
+        if (!ctx) {
+            BIO_free(cachep->read_bio);
+            BIO_free(cachep->write_bio);
+            cachep->read_bio = NULL;
+            cachep->write_bio = NULL;
+            DIEHERE("failed to create the SSL Context");
+        }
+
+        /* turn on cookie exchange */
+        /* Set DTLS cookie generation and verification callbacks */
+        SSL_CTX_set_cookie_generate_cb(ctx, netsnmp_dtls_gen_cookie);
+        SSL_CTX_set_cookie_verify_cb(ctx, netsnmp_dtls_verify_cookie);
+
+        tlsdata->ssl = SSL_new(ctx);
+    }
+
+    if (!tlsdata->ssl) {
+        BIO_free(cachep->read_bio);
+        BIO_free(cachep->write_bio);
+        cachep->read_bio = NULL;
+        cachep->write_bio = NULL;
+        DIEHERE("failed to create the SSL session structure");
+    }
+        
+    SSL_set_mode(tlsdata->ssl, SSL_MODE_AUTO_RETRY);
+
+    /* set the bios that openssl should read from and write to */
+    /* (and we'll do the opposite) */
+    SSL_set_bio(tlsdata->ssl, cachep->read_bio, cachep->write_bio);
+
+    /* RFC5953: section 5.3.1, step 1:
+       3)  Using the destTransportDomain and destTransportAddress values,
+           the client will initiate the (D)TLS handshake protocol to
+           establish session keys for message integrity and encryption.
+
+           If the attempt to establish a session is unsuccessful, then
+           snmpTlstmSessionOpenErrors is incremented, an error indication is
+           returned, and processing stops.  If the session failed to open
+           because the presented server certificate was unknown or invalid
+           then the snmpTlstmSessionUnknownServerCertificate or
+           snmpTlstmSessionInvalidServerCertificates MUST be incremented and
+           a snmpTlstmServerCertificateUnknown or
+           snmpTlstmServerInvalidCertificate notification SHOULD be sent as
+           appropriate.  Reasons for server certificate invalidation
+           includes, but is not limited to, cryptographic validation
+           failures and an unexpected presented certificate identity.
+    */
+    /* Implementation notes:
+       + Because we're working asyncronously the real "end" point of
+         opening a connection doesn't occur here as certificate
+         verification and other things needs to happen first in the
+         verify callback, etc.  See the netsnmp_dtlsudp_recv()
+         function for the final processing.
+    */
+    /* set the SSL notion of we_are_client/server */
+    if (we_are_client)
+        SSL_set_connect_state(tlsdata->ssl);
+    else {
+        /* XXX: we need to only create cache entries when cookies succeed */
+
+        SSL_set_options(tlsdata->ssl, SSL_OP_COOKIE_EXCHANGE);
+
+        SSL_set_ex_data(tlsdata->ssl, openssl_addr_index, cachep);
+
+        SSL_set_accept_state(tlsdata->ssl);
+    }
+
+    /* RFC5953: section 5.3.1, step 1:
+       6)  The TLSTM-specific session identifier (tlstmSessionID) is set in
+           the tmSessionID of the tmStateReference passed to the TLS
+           Transport Model to indicate that the session has been established
+           successfully and to point to a specific (D)TLS connection for
+           future use.  The tlstmSessionID is also stored in the LCD for
+           later lookup during processing of incoming messages
+           (Section 5.1.2).
+    */
+    /* Implementation notes:
+       + our sessionID is stored as the transport's data pointer member
+    */
+    DEBUGMSGT(("9:dtlsudp:bio_cache:created", "%p\n", cachep));
+
+    return cachep;
+}
+
+static bio_cache *
+find_or_create_bio_cache(netsnmp_transport *t, struct sockaddr_in *from_addr,
+                         int we_are_client) {
+    bio_cache *cachep = find_bio_cache(from_addr);
+    if (NULL == cachep) {
+        /* none found; need to start a new context */
+        cachep = start_new_cached_connection(t, from_addr, we_are_client);
+        if (NULL == cachep) {
+            snmp_log(LOG_ERR, "failed to open a new dtls connection\n");
+        }
+    } else {
+        DEBUGMSGT(("9:dtlsudp:bio_cache:found", "%p\n", cachep));
+    }
+    return cachep;
+}
+
+/*
+ * Reads data from our internal openssl outgoing BIO and sends any
+ * queued packets out the UDP port
+ */
+static int
+_netsnmp_send_queued_dtls_pkts(netsnmp_transport *t, bio_cache *cachep) {
+    int outsize, rc2;
+    u_char outbuf[65535];
+    
+    DEBUGTRACETOK("9:dtlsudp");
+
+    /* for memory bios, we now read from openssl's write
+       buffer (ie, the packet to go out) and send it out
+       the udp port manually */
+
+    outsize = BIO_read(cachep->write_bio, outbuf, sizeof(outbuf));
+    if (outsize > 0) {
+        DEBUGMSGTL(("dtlsudp", "have %d bytes to send\n", outsize));
+
+        /* should always be true. */
+#if defined(XXXFIXME) && defined(linux) && defined(IP_PKTINFO)
+        /* XXX: before this can work, we need to remember address we
+           received it from (addr_pair) */
+        rc2 = netsnmp_udp_sendto(t->sock, addr_pair->local_addr,
+                                 addr_pair->if_index, addr_pair->remote_addr,
+                                 outbuf, outsize);
+#else
+        rc2 = sendto(t->sock, outbuf, outsize, 0,
+                     (struct sockaddr *)&cachep->sockaddr, sizeof(struct sockaddr));
+#endif /* linux && IP_PKTINFO */
+
+        if (rc2 == -1) {
+            snmp_log(LOG_ERR, "failed to send a DTLS specific packet\n");
+        }
+    } else
+        DEBUGMSGTL(("9:dtlsudp", "have 0 bytes to send\n"));
+
+    return outsize;
+}
+
+/*
+ * If we have any outgoing SNMP data queued that OpenSSL/DTLS couldn't send
+ * (likely due to DTLS control packets needing to go out first)
+ * then this function attempts to send them.
+ */
+/* returns SNMPERR_SUCCESS if we succeeded in getting the data out */
+/* returns SNMPERR_GENERR if we still need more time */
+static int
+_netsnmp_bio_try_and_write_buffered(netsnmp_transport *t, bio_cache *cachep) {
+    int rc;
+    _netsnmpTLSBaseData *tlsdata;
+    
+    DEBUGTRACETOK("9:dtlsudp");
+
+    tlsdata = cachep->tlsdata;
+
+    /* make sure we have something to write */
+    if (!cachep->write_cache || cachep->write_cache_len == 0)
+        return SNMPERR_SUCCESS;
+
+    DEBUGMSGTL(("dtlsudp", "Trying to write %" NETSNMP_PRIz "d of buffered data\n",
+                cachep->write_cache_len));
+
+    /* try and write out the cached data */
+    rc = SSL_write(tlsdata->ssl, cachep->write_cache, cachep->write_cache_len);
+
+    while (rc == -1) {
+        int errnum = SSL_get_error(tlsdata->ssl, rc);
+        int bytesout;
+
+        /* don't treat want_read/write errors as real errors */
+        if (errnum != SSL_ERROR_WANT_READ &&
+            errnum != SSL_ERROR_WANT_WRITE) {
+            DEBUGMSGTL(("dtlsudp", "ssl_write error (of buffered data)\n")); 
+            _openssl_log_error(rc, tlsdata->ssl, "SSL_write");
+            return SNMPERR_GENERR;
+        }
+
+        /* check to see if we have outgoing DTLS packets to send */
+        /* (SSL_write could have created DTLS control packets) */ 
+        bytesout = _netsnmp_send_queued_dtls_pkts(t, cachep);
+
+        /* If want_read/write but failed to actually send anything
+           then we need to wait for the other side, so quit */
+        if ((errnum == SSL_ERROR_WANT_READ ||
+             errnum == SSL_ERROR_WANT_WRITE) &&
+            bytesout <= 0) {
+            /* we've failed; must need to wait longer */
+            return SNMPERR_GENERR;
+        }
+
+        /* retry writing */
+        DEBUGMSGTL(("9:dtlsudp", "recalling ssl_write\n")); 
+        rc = SSL_write(tlsdata->ssl, cachep->write_cache,
+                       cachep->write_cache_len);
+    }
+
+    if (rc > 0)
+        cachep->msgnum++;
+    
+    if (_netsnmp_send_queued_dtls_pkts(t, cachep) > 0) {
+        SNMP_FREE(cachep->write_cache);
+        cachep->write_cache_len = 0;
+        DEBUGMSGTL(("dtlsudp", "  Write was successful\n"));
+        return SNMPERR_SUCCESS;
+    }
+    DEBUGMSGTL(("dtlsudp", "  failed to send over UDP socket\n"));
+    return SNMPERR_GENERR;
+}
+
+static int
+_netsnmp_add_buffered_data(bio_cache *cachep, char *buf, size_t size) {
+    if (cachep->write_cache && cachep->write_cache_len > 0) {
+        size_t newsize = cachep->write_cache_len + size;
+
+        char *newbuf = realloc(cachep->write_cache, newsize);
+        if (NULL == newbuf) {
+            /* ack! malloc failure */
+            /* XXX: free and close */
+            return SNMPERR_GENERR;
+        }
+        cachep->write_cache = newbuf;
+
+        /* write the new packet to the end */
+        memcpy(cachep->write_cache + cachep->write_cache_len,
+               buf, size);
+        cachep->write_cache_len = newsize;
+    } else {
+        if (SNMPERR_SUCCESS !=
+            memdup((u_char **) &cachep->write_cache, buf, size)) {
+            /* ack! malloc failure */
+            /* XXX: free and close */
+            return SNMPERR_GENERR;
+        }
+        cachep->write_cache_len = size;
+    }
+    return SNMPERR_SUCCESS;
+}
+
+static int
+netsnmp_dtlsudp_recv(netsnmp_transport *t, void *buf, int size,
+                     void **opaque, int *olength)
+{
+    int             rc = -1;
+    socklen_t       fromlen = sizeof(struct sockaddr);
+    netsnmp_indexed_addr_pair *addr_pair = NULL;
+    struct sockaddr *from;
+    netsnmp_tmStateReference *tmStateRef = NULL;
+    _netsnmpTLSBaseData *tlsdata;
+    bio_cache *cachep;
+
+    DEBUGTRACETOK("9:dtlsudp");
+
+    if (NULL == t || t->sock == 0)
+        return -1;
+
+    /* create a tmStateRef cache for slow fill-in */
+    tmStateRef = SNMP_MALLOC_TYPEDEF(netsnmp_tmStateReference);
+
+    if (tmStateRef == NULL) {
+        *opaque = NULL;
+        *olength = 0;
+        return -1;
+    }
+
+    /* Set the transportDomain */
+    memcpy(tmStateRef->transportDomain,
+           netsnmpDTLSUDPDomain, sizeof(netsnmpDTLSUDPDomain[0]) *
+           netsnmpDTLSUDPDomain_len);
+    tmStateRef->transportDomainLen = netsnmpDTLSUDPDomain_len;
+
+    addr_pair = &tmStateRef->addresses;
+    tmStateRef->have_addresses = 1;
+    from = (struct sockaddr *) &(addr_pair->remote_addr);
+
+    while (rc < 0) {
+#if defined(linux) && defined(IP_PKTINFO)
+        socklen_t local_addr_len = sizeof(addr_pair->local_addr);
+        rc = netsnmp_udp_recvfrom(t->sock, buf, size, from, &fromlen,
+                                  (struct sockaddr*)&(addr_pair->local_addr),
+                                  &local_addr_len, &(addr_pair->if_index));
+#else
+        rc = recvfrom(t->sock, buf, size, NETSNMP_DONTWAIT, from, &fromlen);
+#endif /* linux && IP_PKTINFO */
+        if (rc < 0 && errno != EINTR) {
+            break;
+        }
+    }
+
+    DEBUGMSGTL(("dtlsudp", "received %d raw bytes on way to dtls\n", rc));
+    if (rc < 0) {
+        DEBUGMSGTL(("dtlsudp", "recvfrom fd %d err %d (\"%s\")\n",
+                    t->sock, errno, strerror(errno)));
+        SNMP_FREE(tmStateRef);
+        return -1;
+    }
+
+    /* now that we have the from address filled in, we can look up
+       the openssl context and have openssl read and process
+       appropriately */
+
+    /* RFC5953: section 5.1, step 1:
+    1)  Determine the tlstmSessionID for the incoming message.  The
+        tlstmSessionID MUST be a unique session identifier for this
+        (D)TLS connection.  The contents and format of this identifier
+        are implementation-dependent as long as it is unique to the
+        session.  A session identifier MUST NOT be reused until all
+        references to it are no longer in use.  The tmSessionID is equal
+        to the tlstmSessionID discussed in Section 5.1.1. tmSessionID
+        refers to the session identifier when stored in the
+        tmStateReference and tlstmSessionID refers to the session
+        identifier when stored in the LCD.  They MUST always be equal
+        when processing a given session's traffic.
+
+        If this is the first message received through this session and
+        the session does not have an assigned tlstmSessionID yet then the
+        snmpTlstmSessionAccepts counter is incremented and a
+        tlstmSessionID for the session is created.  This will only happen
+        on the server side of a connection because a client would have
+        already assigned a tlstmSessionID during the openSession()
+        invocation.  Implementations may have performed the procedures
+        described in Section 5.3.2 prior to this point or they may
+        perform them now, but the procedures described in Section 5.3.2
+        MUST be performed before continuing beyond this point.
+    */
+
+    /* RFC5953: section 5.1, step 2:
+       2)  Create a tmStateReference cache for the subsequent reference and
+           assign the following values within it:
+
+           tmTransportDomain  = snmpTLSTCPDomain or snmpDTLSUDPDomain as
+              appropriate.
+
+           tmTransportAddress  = The address the message originated from.
+
+           tmSecurityLevel  = The derived tmSecurityLevel for the session,
+              as discussed in Section 3.1.2 and Section 5.3.
+
+           tmSecurityName  = The derived tmSecurityName for the session as
+              discussed in Section 5.3.  This value MUST be constant during
+              the lifetime of the session.
+
+           tmSessionID  = The tlstmSessionID described in step 1 above.
+    */
+
+    /* if we don't have a cachep for this connection then
+       we're receiving something new and are the server
+       side */
+    cachep =
+        find_or_create_bio_cache(t, &addr_pair->remote_addr, WE_ARE_SERVER);
+    if (NULL == cachep) {
+        snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONACCEPTS);
+        SNMP_FREE(tmStateRef);
+        return -1;
+    }
+    tlsdata = cachep->tlsdata;
+    if (NULL == tlsdata->ssl) {
+        /*
+         * this happens when the server starts but doesn't have an
+         * identity and a client connects...
+         */
+        snmp_log(LOG_ERR,
+                 "DTLSUDP: missing tlsdata!\n");
+        /*snmp_increment_statistic( XXX-rks ??? );*/
+        SNMP_FREE(tmStateRef);
+        return -1;
+    }
+
+    /* Implementation notes:
+       - we use the t->data memory pointer as the session ID
+       - the transport domain is already the correct type if we got here
+       - if we don't have a session yet (eg, no tmSessionID from the
+         specs) then we create one automatically here.
+    */
+
+    /* write the received buffer to the memory-based input bio */
+    BIO_write(cachep->read_bio, buf, rc);
+
+    /* RFC5953: section 5.1, step 3:
+       3)  The incomingMessage and incomingMessageLength are assigned values
+           from the (D)TLS processing.
+     */
+    /* Implementation notes:
+       + rc = incomingMessageLength
+       + buf = IncomingMessage
+    */
+
+    /* XXX: in Wes' other example we do a SSL_pending() call
+       too to ensure we're ready to read...  it's possible
+       that buffered stuff in openssl won't be caught by the
+       net-snmp select loop because it's already been pulled
+       out; need to deal with this) */
+    rc = SSL_read(tlsdata->ssl, buf, size);
+
+    /*
+     * moved netsnmp_openssl_null_checks to netsnmp_tlsbase_wrapup_recv.
+     * currently netsnmp_tlsbase_wrapup_recv is where we check for
+     * algorithm compliance, but we (sometimes) know the algorithms
+     * at this point, so we could bail earlier (here)...
+     */
+
+    while (rc == -1) {
+        int errnum = SSL_get_error(tlsdata->ssl, rc);
+        int bytesout;
+
+        /* don't treat want_read/write errors as real errors */
+        if (errnum != SSL_ERROR_WANT_READ &&
+            errnum != SSL_ERROR_WANT_WRITE) {
+            _openssl_log_error(rc, tlsdata->ssl, "SSL_read");
+            break;
+        }
+
+        /* check to see if we have outgoing DTLS packets to send */
+        /* (SSL_read could have created DTLS control packets) */ 
+        bytesout = _netsnmp_send_queued_dtls_pkts(t, cachep);
+
+        /* If want_read/write but failed to actually send
+           anything then we need to wait for the other side,
+           so quit */
+        if ((errnum == SSL_ERROR_WANT_READ ||
+             errnum == SSL_ERROR_WANT_WRITE) &&
+            bytesout <= 0)
+            break;
+
+        /* retry reading */
+        DEBUGMSGTL(("9:dtlsudp", "recalling ssl_read\n")); 
+        rc = SSL_read(tlsdata->ssl, buf, size);
+    }
+
+    if (rc == -1) {
+        SNMP_FREE(tmStateRef);
+
+        DEBUGMSGTL(("9:dtlsudp", "no decoded data from dtls\n"));
+
+        if (SSL_get_error(tlsdata->ssl, rc) == SSL_ERROR_WANT_READ) {
+            DEBUGMSGTL(("9dtlsudp","here: want read!\n"));
+
+            /* see if we have buffered write date to send out first */
+            if (cachep->write_cache) {
+                _netsnmp_bio_try_and_write_buffered(t, cachep);
+                /* XXX: check error or not here? */
+                /* (what would we do differently?) */
+            }
+
+            rc = -1; /* XXX: it's ok, but what's the right return? */
+        }
+        else
+            _openssl_log_error(rc, tlsdata->ssl, "SSL_read");
+
+#if 0 /* to dump cache if we don't have a cookie, this is where to do it */
+        if (!(cachep->flags & NETSNMP_BIO_HAVE_COOKIE))
+            remove_and_free_bio_cache(cachep);
+#endif
+        return rc;
+    }
+
+    DEBUGMSGTL(("dtlsudp", "received %d decoded bytes from dtls\n", rc));
+
+    if ((0 == rc) && (SSL_get_shutdown(tlsdata->ssl) & SSL_RECEIVED_SHUTDOWN)) {
+        DEBUGMSGTL(("dtlsudp", "peer disconnected\n"));
+        cachep->flags |= NETSNMP_BIO_DISCONNECTED;
+        remove_and_free_bio_cache(cachep);
+        SNMP_FREE(tmStateRef);
+        return rc;
+    }
+    cachep->flags |= NETSNMP_BIO_CONNECTED;
+
+    /* Until we've locally assured ourselves that all is well in
+       certificate-verification-land we need to be prepared to stop
+       here and ensure all our required checks have been done. */ 
+    if (0 == (tlsdata->flags & NETSNMP_TLSBASE_CERT_FP_VERIFIED)) {
+        int verifyresult;
+
+        if (tlsdata->flags & NETSNMP_TLSBASE_IS_CLIENT) {
+
+            /* verify that the server's certificate is the correct one */
+
+    	    /* RFC5953: section 5.3.1, step 1:
+    	       3)  Using the destTransportDomain and
+    	           destTransportAddress values, the client will
+    	           initiate the (D)TLS handshake protocol to establish
+    	           session keys for message integrity and encryption.
+
+    	           If the attempt to establish a session is
+    	           unsuccessful, then snmpTlstmSessionOpenErrors is
+    	           incremented, an error indication is returned, and
+    	           processing stops.  If the session failed to open
+    	           because the presented server certificate was
+    	           unknown or invalid then the
+    	           snmpTlstmSessionUnknownServerCertificate or
+    	           snmpTlstmSessionInvalidServerCertificates MUST be
+    	           incremented and a snmpTlstmServerCertificateUnknown
+    	           or snmpTlstmServerInvalidCertificate notification
+    	           SHOULD be sent as appropriate.  Reasons for server
+    	           certificate invalidation includes, but is not
+    	           limited to, cryptographic validation failures and
+    	           an unexpected presented certificate identity.
+    	    */
+    	    /* RFC5953: section 5.3.1, step 1:
+    	       4)  The (D)TLS client MUST then verify that the (D)TLS
+    	           server's presented certificate is the expected
+    	           certificate.  The (D)TLS client MUST NOT transmit
+    	           SNMP messages until the server certificate has been
+    	           authenticated, the client certificate has been
+    	           transmitted and the TLS connection has been fully
+    	           established.
+
+    	           If the connection is being established from
+    	           configuration based on SNMP-TARGET-MIB
+    	           configuration, then the snmpTlstmAddrTable
+    	           DESCRIPTION clause describes how the verification
+    	           is done (using either a certificate fingerprint, or
+    	           an identity authenticated via certification path
+    	           validation).
+
+    	           If the connection is being established for reasons
+    	           other than configuration found in the
+    	           SNMP-TARGET-MIB then configuration and procedures
+    	           outside the scope of this document should be
+    	           followed.  Configuration mechanisms SHOULD be
+    	           similar in nature to those defined in the
+    	           snmpTlstmAddrTable to ensure consistency across
+    	           management configuration systems.  For example, a
+    	           command-line tool for generating SNMP GETs might
+    	           support specifying either the server's certificate
+    	           fingerprint or the expected host name as a command
+    	           line argument.
+    	    */
+    	    /* RFC5953: section 5.3.1, step 1:
+    	       5)  (D)TLS provides assurance that the authenticated
+    	           identity has been signed by a trusted configured
+    	           certification authority.  If verification of the
+    	           server's certificate fails in any way (for example
+    	           because of failures in cryptographic verification
+    	           or the presented identity did not match the
+    	           expected named entity) then the session
+    	           establishment MUST fail, the
+    	           snmpTlstmSessionInvalidServerCertificates object is
+    	           incremented.  If the session can not be opened for
+    	           any reason at all, including cryptographic
+    	           verification failures and snmpTlstmCertToTSNTable
+    	           lookup failures, then the
+    	           snmpTlstmSessionOpenErrors counter is incremented
+    	           and processing stops.
+    	    */
+
+	    /* Implementation notes:
+	       + in the following function the server's certificate and
+	         presented commonname or subjectAltName is checked
+	         according to the rules in the snmpTlstmAddrTable.
+	    */ 
+            if ((verifyresult = netsnmp_tlsbase_verify_server_cert(tlsdata->ssl, tlsdata))
+                != SNMPERR_SUCCESS) {
+                if (verifyresult == SNMPERR_TLS_NO_CERTIFICATE) {
+                    /* assume we simply haven't received it yet and there
+                       is more data to wait-for or send */
+                    /* XXX: probably need to check for whether we should
+                       send stuff from our end to continue the transaction
+                    */
+                    SNMP_FREE(tmStateRef);
+                    return -1;
+                } else {
+                    /* XXX: free needed memory */
+                    snmp_log(LOG_ERR,
+                             "DTLSUDP: failed to verify ssl certificate (of the server)\n");
+		    snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONUNKNOWNSERVERCERTIFICATE);
+		    /* Step 5 says these are always incremented */
+		    snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONINVALIDSERVERCERTIFICATES);
+		    snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONOPENERRORS);
+                    SNMP_FREE(tmStateRef);
+                    return -1;
+                }
+            }
+            tlsdata->flags |= NETSNMP_TLSBASE_CERT_FP_VERIFIED;
+            DEBUGMSGTL(("dtlsudp", "Verified the server's certificate\n"));
+        } else {
+            /* verify that the client's certificate is the correct one */
+        
+            if ((verifyresult = netsnmp_tlsbase_verify_client_cert(tlsdata->ssl, tlsdata))
+                != SNMPERR_SUCCESS) {
+                if (verifyresult == SNMPERR_TLS_NO_CERTIFICATE) {
+                    /* assume we simply haven't received it yet and there
+                       is more data to wait-for or send */
+                    /* XXX: probably need to check for whether we should
+                       send stuff from our end to continue the transaction
+                    */
+                    SNMP_FREE(tmStateRef);
+                    return -1;
+                } else {
+                    /* XXX: free needed memory */
+                    snmp_log(LOG_ERR,
+                             "DTLSUDP: failed to verify ssl certificate (of the client)\n");
+                    snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONINVALIDCLIENTCERTIFICATES);
+                    SNMP_FREE(tmStateRef);
+                    return -1;
+                }
+            }
+            tlsdata->flags |= NETSNMP_TLSBASE_CERT_FP_VERIFIED;
+            DEBUGMSGTL(("dtlsudp", "Verified the client's certificate\n"));
+        }
+    }
+
+    if (rc > 0)
+        cachep->msgnum++;
+
+    if (BIO_ctrl_pending(cachep->write_bio) > 0) {
+        _netsnmp_send_queued_dtls_pkts(t, cachep);
+    }
+
+    DEBUGIF ("9:dtlsudp") {
+        char *str = netsnmp_udp_fmtaddr(NULL, addr_pair, sizeof(netsnmp_indexed_addr_pair));
+        DEBUGMSGTL(("9:dtlsudp",
+                    "recvfrom fd %d got %d bytes (from %s)\n",
+                    t->sock, rc, str));
+        free(str);
+    }
+
+    /* see if we have buffered write date to send out first */
+    if (cachep->write_cache) {
+        if (SNMPERR_GENERR ==
+            _netsnmp_bio_try_and_write_buffered(t, cachep)) {
+            /* we still have data that can't get out in the buffer */
+            /* XXX: nothing to do here? */
+        }
+    }
+
+    if (netsnmp_tlsbase_wrapup_recv(tmStateRef, tlsdata, opaque, olength) !=
+        SNMPERR_SUCCESS)
+        return SNMPERR_GENERR;
+
+    /* RFC5953: section 5.1, step 4:
+       4)  The TLS Transport Model passes the transportDomain,
+           transportAddress, incomingMessage, and incomingMessageLength to
+           the Dispatcher using the receiveMessage ASI:
+
+          statusInformation =
+          receiveMessage(
+          IN   transportDomain     -- snmpTLSTCPDomain or snmpDTLSUDPDomain,
+          IN   transportAddress    -- address for the received message
+          IN   incomingMessage        -- the whole SNMP message from (D)TLS
+          IN   incomingMessageLength  -- the length of the SNMP message
+          IN   tmStateReference    -- transport info
+           )
+    */
+    /* Implementation notes: those pamateres are all passed outward
+       using the functions arguments and the return code below (the length) */
+
+    return rc;
+}
+
+
+
+static int
+netsnmp_dtlsudp_send(netsnmp_transport *t, void *buf, int size,
+		 void **opaque, int *olength)
+{
+    int rc = -1;
+    netsnmp_indexed_addr_pair *addr_pair = NULL;
+    struct sockaddr *to = NULL;
+    bio_cache *cachep = NULL;
+    netsnmp_tmStateReference *tmStateRef = NULL;
+    u_char outbuf[65535];
+    _netsnmpTLSBaseData *tlsdata = NULL;
+    
+    DEBUGTRACETOK("9:dtlsudp");
+    DEBUGMSGTL(("dtlsudp", "sending %d bytes\n", size));
+
+    /* determine remote addresses */
+    if (opaque != NULL && *opaque != NULL &&
+        *olength == sizeof(netsnmp_tmStateReference)) {
+        tmStateRef = (netsnmp_tmStateReference *) *opaque;
+
+        if (tmStateRef->have_addresses)
+            addr_pair = &(tmStateRef->addresses);
+        else if (t != NULL && t->data != NULL &&
+                 t->data_length == sizeof(netsnmp_indexed_addr_pair))
+            addr_pair = (netsnmp_indexed_addr_pair *) (t->data);
+        else if (t != NULL && t->data != NULL &&
+                 t->data_length == sizeof(_netsnmpTLSBaseData)) {
+            tlsdata = (_netsnmpTLSBaseData *) t->data;
+            addr_pair = (netsnmp_indexed_addr_pair *) (tlsdata->remote_addr);
+        }
+    } else if (t != NULL && t->data != NULL &&
+               t->data_length == sizeof(netsnmp_indexed_addr_pair)) {
+        addr_pair = (netsnmp_indexed_addr_pair *) (t->data);
+    } else if (t != NULL && t->data != NULL &&
+               t->data_length == sizeof(_netsnmpTLSBaseData)) {
+        tlsdata = (_netsnmpTLSBaseData *) t->data;
+        addr_pair = (netsnmp_indexed_addr_pair *) (tlsdata->remote_addr);
+    }
+
+    if (NULL == addr_pair) {
+      /* RFC5953: section 5.2, step 1:
+       1)  If tmStateReference does not refer to a cache containing values
+           for tmTransportDomain, tmTransportAddress, tmSecurityName,
+           tmRequestedSecurityLevel, and tmSameSecurity, then increment the
+           snmpTlstmSessionInvalidCaches counter, discard the message, and
+           return the error indication in the statusInformation.  Processing
+           of this message stops.
+      */
+        snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONINVALIDCACHES);
+        snmp_log(LOG_ERR, "dtlsudp_send: can't get address to send to\n");
+        return -1;
+    }
+
+    to = (struct sockaddr *) &(addr_pair->remote_addr);
+
+    if (NULL == to || NULL == t || t->sock <= 0) {
+        snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONINVALIDCACHES);
+        snmp_log(LOG_ERR, "invalid netsnmp_dtlsudp_send usage\n");
+        return -1;
+    }
+
+    /* RFC5953: section 5.2, step 2:
+       2)  Extract the tmSessionID, tmTransportDomain, tmTransportAddress,
+           tmSecurityName, tmRequestedSecurityLevel, and tmSameSecurity
+           values from the tmStateReference.  Note: The tmSessionID value
+           may be undefined if no session exists yet over which the message
+           can be sent.
+    */
+    /* Implementation notes:
+       - we use the t->data memory pointer as the session ID
+       - the transport domain is already the correct type if we got here
+       - if we don't have a session yet (eg, no tmSessionID from the
+         specs) then we create one automatically here.
+    */
+
+
+    /* RFC5953: section 5.2, step 3:
+       3)  If tmSameSecurity is true and either tmSessionID is undefined or
+           refers to a session that is no longer open then increment the
+           snmpTlstmSessionNoSessions counter, discard the message and
+           return the error indication in the statusInformation.  Processing
+           of this message stops.
+    */
+    /* RFC5953: section 5.2, step 4:
+       4)  If tmSameSecurity is false and tmSessionID refers to a session
+           that is no longer available then an implementation SHOULD open a
+           new session using the openSession() ASI (described in greater
+           detail in step 5b).  Instead of opening a new session an
+           implementation MAY return a snmpTlstmSessionNoSessions error to
+           the calling module and stop processing of the message.
+    */
+    /* Implementation Notes:
+       - We would never get here if the sessionID was different.  We
+         tie packets directly to the transport object and it could
+         never be sent back over a different transport, which is what
+         the above text is trying to prevent.
+       - Auto-connections are handled higher in the Net-SNMP library stack
+     */
+
+    /* RFC5953: section 5.2, step 5:
+       5)  If tmSessionID is undefined, then use tmTransportDomain,
+           tmTransportAddress, tmSecurityName and tmRequestedSecurityLevel
+           to see if there is a corresponding entry in the LCD suitable to
+           send the message over.
+
+           5a)  If there is a corresponding LCD entry, then this session
+                will be used to send the message.
+
+           5b)  If there is no corresponding LCD entry, then open a session
+                using the openSession() ASI (discussed further in
+                Section 5.3.1).  Implementations MAY wish to offer message
+                buffering to prevent redundant openSession() calls for the
+                same cache entry.  If an error is returned from
+                openSession(), then discard the message, discard the
+                tmStateReference, increment the snmpTlstmSessionOpenErrors,
+                return an error indication to the calling module and stop
+                processing of the message.
+    */
+
+    /* we're always a client if we're sending to something unknown yet */
+    if (NULL ==
+        (cachep = find_or_create_bio_cache(t, &addr_pair->remote_addr,
+                                           WE_ARE_CLIENT))) {
+        snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONOPENERRORS);
+        return -1;
+    }
+
+    tlsdata = cachep->tlsdata;
+    if (NULL == tlsdata || NULL == tlsdata->ssl) {
+        /** xxx mem lean? free created bio cache? */
+        snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONNOSESSIONS);
+        snmp_log(LOG_ERR, "bad tls data or ssl ptr in netsnmp_dtlsudp_send\n");
+        return -1;
+    }
+        
+    if (!tlsdata->securityName && tmStateRef &&
+	tmStateRef->securityNameLen > 0) {
+        tlsdata->securityName = strdup(tmStateRef->securityName);
+    }
+
+    /* see if we have previous outgoing data to send */
+    if (cachep->write_cache) {
+        if (SNMPERR_GENERR == _netsnmp_bio_try_and_write_buffered(t, cachep)) {
+            /* we still have data that can't get out in the buffer */
+
+            /* add the new data to the end of the existing cache */
+            if (_netsnmp_add_buffered_data(cachep, buf, size) !=
+                SNMPERR_SUCCESS) {
+                /* XXX: free and close */
+            }
+            return -1;
+        }
+    }
+
+    DEBUGIF ("9:dtlsudp") {
+        char *str = netsnmp_udp_fmtaddr(NULL, (void *) addr_pair,
+                                        sizeof(netsnmp_indexed_addr_pair));
+        DEBUGMSGTL(("9:dtlsudp", "send %d bytes from %p to %s on fd %d\n",
+                    size, buf, str, t->sock));
+        free(str);
+    }
+
+    /* RFC5953: section 5.2, step 6:
+       6)  Using either the session indicated by the tmSessionID if there
+           was one or the session resulting from a previous step (4 or 5),
+           pass the outgoingMessage to (D)TLS for encapsulation and
+           transmission.
+    */
+    rc = SSL_write(tlsdata->ssl, buf, size);
+
+    while (rc == -1) {
+        int bytesout;
+        int errnum = SSL_get_error(tlsdata->ssl, rc);
+
+        /* don't treat want_read/write errors as real errors */
+        if (errnum != SSL_ERROR_WANT_READ &&
+            errnum != SSL_ERROR_WANT_WRITE) {
+            DEBUGMSGTL(("dtlsudp", "ssl_write error\n")); 
+            _openssl_log_error(rc, tlsdata->ssl, "SSL_write");
+            break;
+        }
+
+        /* check to see if we have outgoing DTLS packets to send */
+        /* (SSL_read could have created DTLS control packets) */ 
+        bytesout = _netsnmp_send_queued_dtls_pkts(t, cachep);
+
+        /* If want_read/write but failed to actually send
+           anything then we need to wait for the other side,
+           so quit */
+        if ((errnum == SSL_ERROR_WANT_READ ||
+             errnum == SSL_ERROR_WANT_WRITE) &&
+            bytesout <= 0) {
+            /* We need more data written to or read from the socket
+               but we're failing to do so and need to wait till the
+               socket is ready again; unfortunately this means we need
+               to buffer the SNMP data temporarily in the mean time */
+
+            /* remember the packet */
+            if (_netsnmp_add_buffered_data(cachep, buf, size) !=
+                SNMPERR_SUCCESS) {
+
+                /* XXX: free and close */
+                return -1;
+            }
+
+            /* exit out of the loop until we get caled again from
+               socket data */ 
+            break;
+        }
+        DEBUGMSGTL(("9:dtlsudp", "recalling ssl_write\n")); 
+        rc = SSL_write(tlsdata->ssl, buf, size);
+    }
+
+    if (rc > 0)
+        cachep->msgnum++;
+
+    /* for memory bios, we now read from openssl's write buffer (ie,
+       the packet to go out) and send it out the udp port manually */
+    rc = BIO_read(cachep->write_bio, outbuf, sizeof(outbuf));
+    if (rc <= 0) {
+        /* in theory an ok thing */
+        return 0;
+    }
+#if defined(FIXME) && defined(linux) && defined(IP_PKTINFO)
+    /* XXX: before this can work, we need to remember address we
+       received it from (addr_pair) */
+    rc = netsnmp_udpbase_sendto(t->sock, &cachep->sockaddr  remote  addr_pair ? &(addr_pair->local_addr) : NULL, to, outbuf, rc);
+#else
+    rc = sendto(t->sock, outbuf, rc, 0, (struct sockaddr *)&cachep->sockaddr,
+                sizeof(struct sockaddr));
+#endif /* linux && IP_PKTINFO */
+
+    return rc;
+}
+
+
+
+static int
+netsnmp_dtlsudp_close(netsnmp_transport *t)
+{
+    /* XXX: issue a proper dtls closure notification(s) */
+
+    bio_cache *cachep = NULL;
+    _netsnmpTLSBaseData *tlsbase = NULL;
+
+    DEBUGTRACETOK("9:dtlsudp");
+
+    DEBUGMSGTL(("dtlsudp:close", "closing dtlsudp transport %p\n", t));
+
+    /* RFC5953: section 5.4, step 1:
+        1)  Increment either the snmpTlstmSessionClientCloses or the
+            snmpTlstmSessionServerCloses counter as appropriate.
+    */
+    snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONCLIENTCLOSES);
+    
+    /* RFC5953: section 5.4, step 2:
+        2)  Look up the session using the tmSessionID.
+    */
+    /* Implementation notes:
+       + Our session id is stored as the t->data pointer
+    */
+    if (NULL != t->data && t->data_length == sizeof(_netsnmpTLSBaseData)) {
+        tlsbase = (_netsnmpTLSBaseData *) t->data;
+
+        if (tlsbase->remote_addr)
+            cachep = find_bio_cache((struct sockaddr_in *)tlsbase->remote_addr);
+    }
+
+    /* RFC5953: section 5.4, step 3:
+        3)  If there is no open session associated with the tmSessionID, then
+            closeSession processing is completed.
+    */
+    if (NULL == cachep)
+        return netsnmp_socketbase_close(t);
+
+    /* if we have any remaining packtes to send, try to send them */
+    if (cachep->write_cache_len > 0) {
+        int i = 0;
+        char buf[8192];
+        int rc;
+        void *opaque = NULL;
+        int opaque_len = 0;
+        fd_set readfs;
+        struct timeval tv;
+
+        DEBUGMSGTL(("dtlsudp:close",
+		    "%" NETSNMP_PRIz "d bytes remain in write_cache\n",
+                    cachep->write_cache_len));
+
+        /*
+         * if negotiations have completed and we've received data, try and
+         * send any queued packets.
+         */
+        if (cachep->flags & NETSNMP_BIO_CONNECTED) {
+            /* make configurable:
+               - do this at all?
+               - retries
+               - timeout
+            */
+            for (i = 0; i < 6 && cachep->write_cache_len != 0; ++i) {
+
+                /* first see if we can send out what we have */
+                _netsnmp_bio_try_and_write_buffered(t, cachep);
+                if (cachep->write_cache_len == 0)
+                    break;
+
+                /* if we've failed that, we probably need to wait for packets */
+                FD_ZERO(&readfs);
+                FD_SET(t->sock, &readfs);
+                tv.tv_sec = 0;
+                tv.tv_usec = 50000;
+                rc = select(t->sock+1, &readfs, NULL, NULL, &tv);
+                if (rc > 0) {
+                    /* junk recv for catching negotations still in play */
+                    opaque_len = 0;
+                    netsnmp_dtlsudp_recv(t, buf, sizeof(buf),
+                                         &opaque, &opaque_len);
+                    SNMP_FREE(opaque);
+                }
+            } /* for loop */
+        }
+
+        /** dump anything that wasn't sent */
+        if (cachep->write_cache_len > 0) {
+            DEBUGMSGTL(("dtlsudp:close",
+			"dumping %" NETSNMP_PRIz "d bytes from write_cache\n",
+                        cachep->write_cache_len));
+            SNMP_FREE(cachep->write_cache);
+            cachep->write_cache_len = 0;
+        }
+    }
+
+    /* RFC5953: section 5.4, step 4:
+        4)  Have (D)TLS close the specified connection.  This MUST include
+            sending a close_notify TLS Alert to inform the other side that
+            session cleanup may be performed.
+    */
+    if (NULL != cachep->tlsdata && NULL != cachep->tlsdata->ssl) {
+
+        DEBUGMSGTL(("dtlsudp:close", "closing SSL socket\n"));
+        SSL_shutdown(cachep->tlsdata->ssl);
+
+        /* send the close_notify we maybe generated in step 4 */
+        if (BIO_ctrl_pending(cachep->write_bio) > 0)
+            _netsnmp_send_queued_dtls_pkts(t, cachep);
+    }
+
+    remove_and_free_bio_cache(cachep);
+
+    return netsnmp_socketbase_close(t);
+}
+
+char *
+netsnmp_dtlsudp_fmtaddr(netsnmp_transport *t, void *data, int len)
+{
+    return netsnmp_ipv4_fmtaddr("DTLSUDP", t, data, len);
+}
+
+/*
+ * Open a DTLS-based transport for SNMP.  Local is TRUE if addr is the local
+ * address to bind to (i.e. this is a server-type session); otherwise addr is 
+ * the remote address to send things to.  
+ */
+
+netsnmp_transport *
+netsnmp_dtlsudp_transport(struct sockaddr_in *addr, int local)
+{
+    netsnmp_transport *t = NULL;
+
+    DEBUGTRACETOK("9:dtlsudp");
+
+    t = netsnmp_udpipv4base_transport(addr, local);
+    if (NULL == t)
+        return NULL;
+
+    if (NULL != t->data &&
+        t->data_length == sizeof(netsnmp_indexed_addr_pair)) {
+        _netsnmpTLSBaseData *tlsdata =
+            netsnmp_tlsbase_allocate_tlsdata(t, local);
+        tlsdata->remote_addr = t->data;
+        t->data = tlsdata;
+        t->data_length = sizeof(_netsnmpTLSBaseData);
+    }
+
+    if (!local) {
+        /* dtls needs to bind the socket for SSL_write to work */
+        if (connect(t->sock, (struct sockaddr *) addr, sizeof(*addr)) == -1)
+            snmp_log(LOG_ERR, "dtls: failed to connect\n");
+    }
+
+    /* XXX: Potentially set sock opts here (SO_SNDBUF/SO_RCV_BUF) */      
+    /* XXX: and buf size */        
+
+    /*
+     * Set Domain
+     */
+    t->domain = netsnmpDTLSUDPDomain;                                     
+    t->domain_length = netsnmpDTLSUDPDomain_len;     
+
+    /*
+     * 16-bit length field, 8 byte DTLS header, 20 byte IPv4 header  
+     */
+    t->msgMaxSize      = 0xffff - 8 - 20;
+
+    t->f_recv          = netsnmp_dtlsudp_recv;
+    t->f_send          = netsnmp_dtlsudp_send;
+    t->f_close         = netsnmp_dtlsudp_close;
+    t->f_config        = netsnmp_tlsbase_config;
+    t->f_setup_session = netsnmp_tlsbase_session_init;
+    t->f_accept        = NULL;
+    t->f_fmtaddr       = netsnmp_dtlsudp_fmtaddr;
+
+    t->flags = NETSNMP_TRANSPORT_FLAG_TUNNELED;
+
+    return t;
+}
+
+
+void
+netsnmp_dtlsudp_agent_config_tokens_register(void)
+{
+}
+
+
+
+
+netsnmp_transport *
+netsnmp_dtlsudp_create_tstring(const char *str, int isserver,
+                               const char *default_target)
+{
+    struct sockaddr_in addr;
+    netsnmp_transport *t;
+    _netsnmpTLSBaseData *tlsdata;
+    char buf[SPRINT_MAX_LEN], *cp;
+
+    if (netsnmp_sockaddr_in2(&addr, str, default_target)) {
+        t = netsnmp_dtlsudp_transport(&addr, isserver);
+    } else {
+        return NULL;
+    }
+
+    /* see if we can extract the remote hostname */
+    if (!isserver && t && t->data && str) {
+        tlsdata = (_netsnmpTLSBaseData *) t->data;
+        /* search for a : */
+        if (NULL != (cp = strrchr(str, ':'))) {
+            sprintf(buf, "%.*s", (int) SNMP_MIN(cp - str, sizeof(buf) - 1),
+                    str);
+        } else {
+            /* else the entire spec is a host name only */
+            strlcpy(buf, str, sizeof(buf));
+        }
+        tlsdata->their_hostname = strdup(buf);
+    }
+    return t;
+}
+
+
+netsnmp_transport *
+netsnmp_dtlsudp_create_ostring(const u_char * o, size_t o_len, int local)
+{
+    struct sockaddr_in addr;
+
+    if (o_len == 6) {
+        unsigned short porttmp = (o[4] << 8) + o[5];
+        addr.sin_family = AF_INET;
+        memcpy((u_char *) & (addr.sin_addr.s_addr), o, 4);
+        addr.sin_port = htons(porttmp);
+        return netsnmp_dtlsudp_transport(&addr, local);
+    }
+    return NULL;
+}
+
+void
+netsnmp_dtlsudp_ctor(void)
+{
+    char indexname[] = "_netsnmp_addr_info";
+
+    DEBUGMSGTL(("dtlsudp", "registering DTLS constructor\n"));
+
+    /* config settings */
+
+    dtlsudpDomain.name = netsnmpDTLSUDPDomain;
+    dtlsudpDomain.name_length = netsnmpDTLSUDPDomain_len;
+    dtlsudpDomain.prefix = (const char**)calloc(3, sizeof(char *));
+    dtlsudpDomain.prefix[0] = "dtlsudp";
+    dtlsudpDomain.prefix[1] = "dtls";
+
+    dtlsudpDomain.f_create_from_tstring     = NULL;
+    dtlsudpDomain.f_create_from_tstring_new = netsnmp_dtlsudp_create_tstring;
+    dtlsudpDomain.f_create_from_ostring     = netsnmp_dtlsudp_create_ostring;
+
+    if (!openssl_addr_index)
+        openssl_addr_index =
+            SSL_get_ex_new_index(0, indexname, NULL, NULL, NULL);
+
+    netsnmp_tdomain_register(&dtlsudpDomain);
+}
+
+/*
+ * Much of the code below was taken from the OpenSSL example code
+ * and is subject to the OpenSSL copyright.
+ */
+#define	NETSNMP_COOKIE_SECRET_LENGTH	16
+int cookie_initialized=0;
+unsigned char cookie_secret[NETSNMP_COOKIE_SECRET_LENGTH];
+
+typedef union {
+       struct sockaddr sa;
+       struct sockaddr_in s4;
+} _peer_union;
+
+int netsnmp_dtls_gen_cookie(SSL *ssl, unsigned char *cookie,
+                            unsigned int *cookie_len)
+{
+    unsigned char *buffer, result[EVP_MAX_MD_SIZE];
+    unsigned int length, resultlength;
+    bio_cache *cachep = NULL;
+    _peer_union *peer;
+
+    /* Initialize a random secret */
+    if (!cookie_initialized) {
+        if (!RAND_bytes(cookie_secret, NETSNMP_COOKIE_SECRET_LENGTH)) {
+            snmp_log(LOG_ERR, "dtls: error setting random cookie secret\n");
+            return 0;
+        }
+        cookie_initialized = 1;
+    }
+
+    DEBUGMSGT(("dtlsudp:cookie", "generating cookie...\n"));
+
+    /* Read peer information */
+    cachep = SSL_get_ex_data(ssl, openssl_addr_index);
+    if (!cachep) {
+        snmp_log(LOG_ERR, "dtls: failed to get the peer address\n");
+        return 0;
+    }
+    peer = (_peer_union *)&cachep->sockaddr;
+
+    /* Create buffer with peer's address and port */
+    length = 0;
+    switch (peer->sa.sa_family) {
+    case AF_INET:
+        length += sizeof(struct in_addr);
+        length += sizeof(peer->s4.sin_port);
+        break;
+    default:
+        snmp_log(LOG_ERR, "dtls generating cookie: unknown family: %d\n",
+                 peer->sa.sa_family);
+        return 0;
+    }
+    buffer = malloc(length);
+    if (buffer == NULL) {
+        snmp_log(LOG_ERR,"dtls: out of memory\n");
+        return 0;
+    }
+
+    switch (peer->sa.sa_family) {
+    case AF_INET:
+        memcpy(buffer,
+               &peer->s4.sin_port,
+               sizeof(peer->s4.sin_port));
+        memcpy(buffer + sizeof(peer->s4.sin_port),
+               &peer->s4.sin_addr,
+               sizeof(struct in_addr));
+        break;
+    default:
+        snmp_log(LOG_ERR, "dtls: unknown address family generating a cookie\n");
+        return 0;
+    }
+
+    /* Calculate HMAC of buffer using the secret */
+    HMAC(EVP_sha1(), cookie_secret, NETSNMP_COOKIE_SECRET_LENGTH,
+         buffer, length, result, &resultlength);
+    OPENSSL_free(buffer);
+
+    memcpy(cookie, result, resultlength);
+    *cookie_len = resultlength;
+
+    DEBUGMSGT(("9:dtlsudp:cookie", "generated %d byte cookie\n", *cookie_len));
+
+    return 1;
+}
+
+int netsnmp_dtls_verify_cookie(SSL *ssl, unsigned char *cookie,
+                               unsigned int cookie_len)
+{
+    unsigned char *buffer, result[EVP_MAX_MD_SIZE];
+    unsigned int length, resultlength, rc;
+    bio_cache *cachep = NULL;
+    _peer_union *peer;
+
+    /* If secret isn't initialized yet, the cookie can't be valid */
+    if (!cookie_initialized)
+        return 0;
+
+    DEBUGMSGT(("9:dtlsudp:cookie", "verifying %d byte cookie\n", cookie_len));
+
+    cachep = SSL_get_ex_data(ssl, openssl_addr_index);
+    if (!cachep) {
+        snmp_log(LOG_ERR, "dtls: failed to get the peer address\n");
+        return 0;
+    }
+    peer = (_peer_union *)&cachep->sockaddr;
+
+    /* Create buffer with peer's address and port */
+    length = 0;
+    switch (peer->sa.sa_family) {
+    case AF_INET:
+        length += sizeof(struct in_addr);
+        length += sizeof(peer->s4.sin_port);
+        break;
+    default:
+        snmp_log(LOG_ERR,
+                 "dtls: unknown address family %d generating a cookie\n",
+                 peer->sa.sa_family);
+        return 0;
+    }
+    buffer = malloc(length);
+    if (buffer == NULL) {
+        snmp_log(LOG_ERR, "dtls: unknown address family generating a cookie\n");
+        return 0;
+    }
+
+    switch (peer->sa.sa_family) {
+    case AF_INET:
+        memcpy(buffer,
+               &peer->s4.sin_port,
+               sizeof(peer->s4.sin_port));
+        memcpy(buffer + sizeof(peer->s4.sin_port),
+               &peer->s4.sin_addr,
+               sizeof(struct in_addr));
+        break;
+    default:
+        snmp_log(LOG_ERR,
+                 "dtls: unknown address family %d generating a cookie\n",
+                 peer->sa.sa_family);
+        return 0;
+    }
+
+    /* Calculate HMAC of buffer using the secret */
+    HMAC(EVP_sha1(), cookie_secret, NETSNMP_COOKIE_SECRET_LENGTH,
+         buffer, length, result, &resultlength);
+    OPENSSL_free(buffer);
+
+    if (cookie_len != resultlength || memcmp(result, cookie, resultlength) != 0)
+        rc = 0;
+    else {
+        rc = 1;
+        cachep->flags |= NETSNMP_BIO_HAVE_COOKIE;
+    }
+
+    DEBUGMSGT(("dtlsudp:cookie", "verify cookie: %d\n", rc));
+
+    return rc;
+}
+
+#endif /* HAVE_LIBSSL_DTLS */
diff --git a/snmplib/snmpIPXDomain.c b/snmplib/transports/snmpIPXDomain.c
similarity index 92%
rename from snmplib/snmpIPXDomain.c
rename to snmplib/transports/snmpIPXDomain.c
index ecafd5c..fdc8071 100644
--- a/snmplib/snmpIPXDomain.c
+++ b/snmplib/transports/snmpIPXDomain.c
@@ -1,5 +1,7 @@
 #include <net-snmp/net-snmp-config.h>
 
+#include <net-snmp/library/snmpIPXDomain.h>
+
 #include <stdio.h>
 #include <sys/types.h>
 #include <ctype.h>
@@ -32,7 +34,6 @@
 #include <net-snmp/config_api.h>
 
 #include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/snmpIPXDomain.h>
 
 #define SNMP_IPX_DEFAULT_PORT	36879   /*  Specified in RFC 1420.  */
 static netsnmp_tdomain ipxDomain;
@@ -98,10 +99,13 @@
 	}
 
         if (rc >= 0) {
-            char *str = netsnmp_ipx_fmtaddr(NULL, from, fromlen);
-            DEBUGMSGTL(("netsnmp_ipx","recvfrom fd %d got %d bytes(from %s)\n",
-			t->sock, rc, str));
-            free(str);
+            DEBUGIF("netsnmp_ipx") {
+                char *str = netsnmp_ipx_fmtaddr(NULL, from, fromlen);
+                DEBUGMSGTL(("netsnmp_ipx",
+                            "recvfrom fd %d got %d bytes(from %s)\n",
+                            t->sock, rc, str));
+                free(str);
+            }
         } else {
             DEBUGMSGTL(("netsnmp_ipx", "recvfrom fd %d err %d (\"%s\")\n",
                         t->sock, errno, strerror(errno)));
@@ -130,11 +134,13 @@
     }
 
     if (to != NULL && t != NULL && t->sock >= 0) {
-        char *str = netsnmp_ipx_fmtaddr(NULL, (void *)to,
-					sizeof(struct sockaddr_ipx));
-        DEBUGMSGTL(("netsnmp_ipx", "send %d bytes from %p to %s on fd %d\n",
-                    size, buf, str, t->sock));
-        free(str);
+        DEBUGIF("netsnmp_ipx") {
+            char *str = netsnmp_ipx_fmtaddr(NULL, (void *)to,
+                                            sizeof(struct sockaddr_ipx));
+            DEBUGMSGTL(("netsnmp_ipx", "send %d bytes from %p to %s on fd %d\n",
+                        size, buf, str, t->sock));
+            free(str);
+        }
 	while (rc < 0) {
 	    rc = sendto(t->sock, buf, size, 0, to, sizeof(struct sockaddr));
 	    if (rc < 0 && errno != EINTR) {
@@ -175,7 +181,6 @@
 {
     netsnmp_transport *t = NULL;
     int             rc = 0;
-    char           *str = NULL;
 
     if (addr == NULL || addr->sipx_family != AF_IPX) {
         return NULL;
@@ -186,11 +191,13 @@
         return NULL;
     }
 
-    str = netsnmp_ipx_fmtaddr(NULL, (void *)addr, 
-				 sizeof(struct sockaddr_ipx));
-    DEBUGMSGTL(("netsnmp_ipx", "open %s %s\n", local ? "local" : "remote",
-                str));
-    free(str);
+    DEBUGIF("netsnmp_ipx") {
+        char *str = netsnmp_ipx_fmtaddr(NULL, (void *)addr,
+                                  sizeof(struct sockaddr_ipx));
+        DEBUGMSGTL(("netsnmp_ipx", "open %s %s\n", local ? "local" : "remote",
+                    str));
+        free(str);
+    }
 
     memset(t, 0, sizeof(netsnmp_transport));
 
@@ -299,7 +306,7 @@
     addr->sipx_type = 4;        /*  Specified in RFC 1420.  */
 
     network = input = strdup(peername ? peername : "");
-    tmp = strchr(network, ':');
+    tmp = strchr(input, ':');
     if (tmp != NULL) {
         DEBUGMSGTL(("netsnmp_sockaddr_ipx", "Node identified\n"));
         *tmp++ = '\0';
@@ -307,7 +314,7 @@
         tmp = strchr(tmp, '/');
     } else {
         node = NULL;
-        tmp = strchr(network, '/');
+        tmp = strchr(input, '/');
     }
     if (tmp != NULL) {
         DEBUGMSGTL(("netsnmp_sockaddr_ipx", "Port identified\n"));
diff --git a/snmplib/transports/snmpIPv4BaseDomain.c b/snmplib/transports/snmpIPv4BaseDomain.c
new file mode 100644
index 0000000..9f4b6a9
--- /dev/null
+++ b/snmplib/transports/snmpIPv4BaseDomain.c
@@ -0,0 +1,223 @@
+/* IPV4 base transport support functions
+ */
+
+#include <net-snmp/net-snmp-config.h>
+
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmpIPv4BaseDomain.h>
+
+#include <stddef.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <ctype.h>
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#if HAVE_NETDB_H
+#include <netdb.h>
+#endif
+
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmp_debug.h>
+#include <net-snmp/library/default_store.h>
+#include <net-snmp/library/system.h>
+
+
+#ifndef INADDR_NONE
+#define INADDR_NONE     -1
+#endif
+
+int
+netsnmp_sockaddr_in(struct sockaddr_in *addr,
+                    const char *inpeername, int remote_port)
+{
+    char buf[sizeof(int) * 3 + 2];
+    sprintf(buf, ":%u", remote_port);
+    return netsnmp_sockaddr_in2(addr, inpeername, remote_port ? buf : NULL);
+}
+
+int
+netsnmp_sockaddr_in2(struct sockaddr_in *addr,
+                     const char *inpeername, const char *default_target)
+{
+    int ret;
+
+    if (addr == NULL) {
+        return 0;
+    }
+
+    DEBUGMSGTL(("netsnmp_sockaddr_in",
+                "addr %p, inpeername \"%s\", default_target \"%s\"\n",
+                addr, inpeername ? inpeername : "[NIL]",
+                default_target ? default_target : "[NIL]"));
+
+    memset(addr, 0, sizeof(struct sockaddr_in));
+    addr->sin_addr.s_addr = htonl(INADDR_ANY);
+    addr->sin_family = AF_INET;
+    addr->sin_port = htons((u_short)SNMP_PORT);
+
+    {
+	int port = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID,
+				      NETSNMP_DS_LIB_DEFAULT_PORT);
+
+	if (port != 0) {
+	    addr->sin_port = htons((u_short)port);
+	} else if (default_target != NULL)
+	    netsnmp_sockaddr_in2(addr, default_target, NULL);
+    }
+
+    if (inpeername != NULL && *inpeername != '\0') {
+	const char     *host, *port;
+	char           *peername = NULL;
+        char           *cp;
+        /*
+         * Duplicate the peername because we might want to mank around with
+         * it.
+         */
+
+        peername = strdup(inpeername);
+        if (peername == NULL) {
+            return 0;
+        }
+
+        /*
+         * Try and extract an appended port number.
+         */
+        cp = strchr(peername, ':');
+        if (cp != NULL) {
+            *cp = '\0';
+            port = cp + 1;
+            host = peername;
+        } else {
+            host = NULL;
+            port = peername;
+        }
+
+        /*
+         * Try to convert the user port specifier
+         */
+        if (port && *port == '\0')
+            port = NULL;
+
+        if (port != NULL) {
+            long int l;
+            char* ep;
+
+            DEBUGMSGTL(("netsnmp_sockaddr_in", "check user service %s\n",
+                        port));
+
+            l = strtol(port, &ep, 10);
+            if (ep != port && *ep == '\0' && 0 <= l && l <= 0x0ffff)
+                addr->sin_port = htons((u_short)l);
+            else {
+                if (host == NULL) {
+                    DEBUGMSGTL(("netsnmp_sockaddr_in",
+                                "servname not numeric, "
+				"check if it really is a destination)\n"));
+                    host = port;
+                    port = NULL;
+                } else {
+                    DEBUGMSGTL(("netsnmp_sockaddr_in",
+                                "servname not numeric\n"));
+                    free(peername);
+                    return 0;
+                }
+            }
+        }
+
+        /*
+         * Try to convert the user host specifier
+         */
+        if (host && *host == '\0')
+            host = NULL;
+
+        if (host != NULL) {
+            DEBUGMSGTL(("netsnmp_sockaddr_in",
+                        "check destination %s\n", host));
+
+
+            if (strcmp(peername, "255.255.255.255") == 0 ) {
+                /*
+                 * The explicit broadcast address hack
+                 */
+                DEBUGMSGTL(("netsnmp_sockaddr_in", "Explicit UDP broadcast\n"));
+                addr->sin_addr.s_addr = INADDR_NONE;
+            } else {
+                ret =
+                    netsnmp_gethostbyname_v4(peername, &addr->sin_addr.s_addr);
+                if (ret < 0) {
+                    DEBUGMSGTL(("netsnmp_sockaddr_in",
+                                "couldn't resolve hostname\n"));
+                    free(peername);
+                    return 0;
+                }
+                DEBUGMSGTL(("netsnmp_sockaddr_in",
+                            "hostname (resolved okay)\n"));
+            }
+        }
+	free(peername);
+    }
+
+    /*
+     * Finished
+     */
+
+    DEBUGMSGTL(("netsnmp_sockaddr_in", "return { AF_INET, %s:%hu }\n",
+                inet_ntoa(addr->sin_addr), ntohs(addr->sin_port)));
+    return 1;
+}
+
+char *
+netsnmp_ipv4_fmtaddr(const char *prefix, netsnmp_transport *t,
+                     void *data, int len)
+{
+    netsnmp_indexed_addr_pair *addr_pair = NULL;
+    struct hostent *host;
+    char tmp[64];
+
+    if (data != NULL && len == sizeof(netsnmp_indexed_addr_pair)) {
+	addr_pair = (netsnmp_indexed_addr_pair *) data;
+    } else if (t != NULL && t->data != NULL) {
+	addr_pair = (netsnmp_indexed_addr_pair *) t->data;
+    }
+
+    if (addr_pair == NULL) {
+        snprintf(tmp, sizeof(tmp), "%s: unknown", prefix);
+    } else {
+        struct sockaddr_in *to = NULL;
+        to = (struct sockaddr_in *) &(addr_pair->remote_addr);
+        if (to == NULL) {
+            snprintf(tmp, sizeof(tmp), "%s: unknown->[%s]:%hu", prefix,
+                     inet_ntoa(addr_pair->local_addr.sin_addr),
+                     ntohs(addr_pair->local_addr.sin_port));
+        } else if ( t && t->flags & NETSNMP_TRANSPORT_FLAG_HOSTNAME ) {
+            /* XXX: hmm...  why isn't this prefixed */
+            /* assuming intentional */
+            host = gethostbyaddr((char *)&to->sin_addr, 4, AF_INET);
+            return (host ? strdup(host->h_name) : NULL); 
+        } else {
+            snprintf(tmp, sizeof(tmp), "%s: [%s]:%hu->", prefix,
+                     inet_ntoa(to->sin_addr), ntohs(to->sin_port));
+            snprintf(tmp + strlen(tmp), sizeof(tmp)-strlen(tmp), "[%s]:%hu",
+                     inet_ntoa(addr_pair->local_addr.sin_addr),
+                     ntohs(addr_pair->local_addr.sin_port));
+        }
+    }
+    tmp[sizeof(tmp)-1] = '\0';
+    return strdup(tmp);
+}
+
diff --git a/snmplib/transports/snmpIPv6BaseDomain.c b/snmplib/transports/snmpIPv6BaseDomain.c
new file mode 100644
index 0000000..5d6e571
--- /dev/null
+++ b/snmplib/transports/snmpIPv6BaseDomain.c
@@ -0,0 +1,421 @@
+/* IPV6 base transport support functions
+ */
+
+#include <net-snmp/net-snmp-config.h>
+
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmpIPv6BaseDomain.h>
+
+#include <stddef.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <ctype.h>
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#if HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#if HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+
+#if HAVE_DMALLOC_H
+#include <dmalloc.h>
+#endif
+
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmp_debug.h>
+#include <net-snmp/library/default_store.h>
+#include <net-snmp/library/snmp_logging.h>
+
+#include "inet_ntop.h"
+#include "inet_pton.h"
+
+
+#if defined(WIN32) && !defined(IF_NAMESIZE)
+#define IF_NAMESIZE 12
+#endif
+
+
+#if defined(HAVE_WINSOCK_H) && !defined(mingw32)
+static const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT;
+#endif
+
+
+static unsigned
+netsnmp_if_nametoindex(const char *ifname)
+{
+#if defined(WIN32)
+    return atoi(ifname);
+#elif defined(HAVE_IF_NAMETOINDEX)
+    return if_nametoindex(ifname);
+#else
+    return 0;
+#endif
+}
+
+static char *
+netsnmp_if_indextoname(unsigned ifindex, char *ifname)
+{
+#if defined(WIN32)
+    snprintf(ifname, IF_NAMESIZE, "%u", ifindex);
+    return ifname;
+#elif defined(HAVE_IF_NAMETOINDEX)
+    return if_indextoname(ifindex, ifname);
+#else
+    return NULL;
+#endif
+}
+
+char *
+netsnmp_ipv6_fmtaddr(const char *prefix, netsnmp_transport *t,
+                     void *data, int len)
+{
+    struct sockaddr_in6 *to = NULL;
+    char addr[INET6_ADDRSTRLEN];
+    char tmp[INET6_ADDRSTRLEN + 18];
+
+    DEBUGMSGTL(("netsnmp_udp6", "fmtaddr: t = %p, data = %p, len = %d\n", t,
+                data, len));
+    if (data != NULL && len == sizeof(struct sockaddr_in6)) {
+        to = (struct sockaddr_in6 *) data;
+    } else if (t != NULL && t->data != NULL) {
+        to = (struct sockaddr_in6 *) t->data;
+    }
+    if (to == NULL) {
+        snprintf(tmp, sizeof(tmp), "%s: unknown", prefix);
+    } else {
+        char scope_id[IF_NAMESIZE + 1] = "";
+
+#if defined(HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID)
+	if (to->sin6_scope_id
+            && netsnmp_if_indextoname(to->sin6_scope_id, &scope_id[1])) {
+            scope_id[0] = '%';
+        }
+#endif
+        snprintf(tmp, sizeof(tmp), "%s: [%s%s]:%hu", prefix,
+                 inet_ntop(AF_INET6, (void *) &(to->sin6_addr), addr,
+                           INET6_ADDRSTRLEN), scope_id, ntohs(to->sin6_port));
+    }
+    tmp[sizeof(tmp)-1] = '\0';
+    return strdup(tmp);
+}
+
+int
+netsnmp_sockaddr_in6_2(struct sockaddr_in6 *addr,
+                       const char *inpeername, const char *default_target)
+{
+    char           *cp = NULL, *peername = NULL;
+    char            debug_addr[INET6_ADDRSTRLEN];
+#if HAVE_GETADDRINFO
+    struct addrinfo *addrs = NULL;
+    int             err;
+#elif HAVE_GETIPNODEBYNAME
+    struct hostent *hp = NULL;
+    int             err;
+#elif HAVE_GETHOSTBYNAME
+    struct hostent *hp = NULL;
+#endif
+    int             portno;
+
+    if (addr == NULL) {
+        return 0;
+    }
+
+    DEBUGMSGTL(("netsnmp_sockaddr_in6",
+		"addr %p, peername \"%s\", default_target \"%s\"\n",
+                addr, inpeername ? inpeername : "[NIL]",
+		default_target ? default_target : "[NIL]"));
+
+    memset(addr, 0, sizeof(struct sockaddr_in6));
+    addr->sin6_family = AF_INET6;
+    addr->sin6_addr = in6addr_any;
+    addr->sin6_port = htons((u_short)SNMP_PORT);
+
+    {
+      int port = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID,
+				    NETSNMP_DS_LIB_DEFAULT_PORT);
+      if (port != 0)
+        addr->sin6_port = htons((u_short)port);
+      else if (default_target != NULL)
+	netsnmp_sockaddr_in6_2(addr, default_target, NULL);
+    }
+
+    if (inpeername != NULL) {
+        /*
+         * Duplicate the peername because we might want to mank around with
+         * it.  
+         */
+
+        peername = strdup(inpeername);
+        if (peername == NULL) {
+            return 0;
+        }
+
+        for (cp = peername; *cp && isdigit((unsigned char) *cp); cp++);
+        portno = atoi(peername);
+        if (!*cp &&  portno != 0) {
+            /*
+             * Okay, it looks like JUST a port number.  
+             */
+            DEBUGMSGTL(("netsnmp_sockaddr_in6", "totally numeric: %d\n",
+                        portno));
+            addr->sin6_port = htons((u_short)portno);
+            goto resolved;
+        }
+
+        /*
+         * See if it is an IPv6 address covered with square brackets. Also check
+         * for an appended :port.  
+         */
+        if (*peername == '[') {
+            cp = strchr(peername, ']');
+            if (cp != NULL) {
+	      /*
+	       * See if it is an IPv6 link-local address with interface
+	       * name as <zone_id>, like fe80::1234%eth0.
+	       * Please refer to the internet draft, IPv6 Scoped Address Architecture
+	       * http://www.ietf.org/internet-drafts/draft-ietf-ipngwg-scoping-arch-04.txt
+	       *
+	       */
+	        char *scope_id;
+	        unsigned int if_index = 0;
+                *cp = '\0';
+		scope_id = strchr(peername + 1, '%');
+		if (scope_id != NULL) {
+		    *scope_id = '\0';
+		    if_index = netsnmp_if_nametoindex(scope_id + 1);
+		}
+                if (*(cp + 1) == ':') {
+                    portno = atoi(cp+2);
+                    if (portno != 0 &&
+                        inet_pton(AF_INET6, peername + 1,
+                                  (void *) &(addr->sin6_addr))) {
+                        DEBUGMSGTL(("netsnmp_sockaddr_in6",
+                                    "IPv6 address with port suffix :%d\n",
+                                    portno));
+                        if (portno > 0 && portno <= 0xffff) {
+                            addr->sin6_port = htons((u_short)portno);
+                        } else {
+                            DEBUGMSGTL(("netsnmp_sockaddr_in6", "invalid port number: %d", portno));
+                            return 0;
+                        }
+
+#if defined(HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID)
+                        addr->sin6_scope_id = if_index;
+#endif
+                        goto resolved;
+                    }
+                } else {
+                    if (inet_pton
+                        (AF_INET6, peername + 1,
+                         (void *) &(addr->sin6_addr))) {
+                        DEBUGMSGTL(("netsnmp_sockaddr_in6",
+                                    "IPv6 address with square brackets\n"));
+                        portno = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, 
+				                    NETSNMP_DS_LIB_DEFAULT_PORT);
+                        if (portno <= 0)
+                            portno = SNMP_PORT;
+                        addr->sin6_port = htons((u_short)portno);
+#if defined(HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID)
+                        addr->sin6_scope_id = if_index;
+#endif
+                        goto resolved;
+                    }
+                }
+		if (scope_id != NULL) {
+		  *scope_id = '%';
+		}
+		*cp = ']';
+            }
+        }
+
+        cp = strrchr(peername, ':');
+        if (cp != NULL) {
+	    char *scope_id;
+	    unsigned int if_index = 0;
+	    *cp = '\0';
+	    scope_id = strchr(peername + 1, '%');
+	    if (scope_id != NULL) {
+	        *scope_id = '\0';
+	        if_index = netsnmp_if_nametoindex(scope_id + 1);
+	    }
+            portno = atoi(cp + 1);
+            if (portno != 0 &&
+                inet_pton(AF_INET6, peername,
+                          (void *) &(addr->sin6_addr))) {
+                DEBUGMSGTL(("netsnmp_sockaddr_in6",
+                            "IPv6 address with port suffix :%d\n",
+                            atoi(cp + 1)));
+                if (portno > 0 && portno <= 0xffff) {
+                    addr->sin6_port = htons((u_short)portno);
+                } else {
+                    DEBUGMSGTL(("netsnmp_sockaddr_in6", "invalid port number: %d", portno));
+                    return 0;
+                }
+
+#if defined(HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID)
+                addr->sin6_scope_id = if_index;
+#endif
+                goto resolved;
+            }
+	    if (scope_id != NULL) {
+	      *scope_id = '%';
+	    }
+            *cp = ':';
+        }
+
+        /*
+         * See if it is JUST an IPv6 address.  
+         */
+        if (inet_pton(AF_INET6, peername, (void *) &(addr->sin6_addr))) {
+            DEBUGMSGTL(("netsnmp_sockaddr_in6", "just IPv6 address\n"));
+            goto resolved;
+        }
+
+        /*
+         * Well, it must be a hostname then, possibly with an appended :port.
+         * Sort that out first.  
+         */
+
+        cp = strrchr(peername, ':');
+        if (cp != NULL) {
+            *cp = '\0';
+            portno = atoi(cp + 1);
+            if (portno != 0) {
+                DEBUGMSGTL(("netsnmp_sockaddr_in6",
+                            "hostname(?) with port suffix :%d\n",
+                            portno));
+                if (portno > 0 && portno <= 0xffff) {
+                    addr->sin6_port = htons((u_short)portno);
+                } else {
+                    DEBUGMSGTL(("netsnmp_sockaddr_in6", "invalid port number: %d", portno));
+                    return 0;
+                }
+
+            } else {
+                /*
+                 * No idea, looks bogus but we might as well pass the full thing to
+                 * the name resolver below.  
+                 */
+                *cp = ':';
+                DEBUGMSGTL(("netsnmp_sockaddr_in6",
+                            "hostname(?) with embedded ':'?\n"));
+            }
+            /*
+             * Fall through.  
+             */
+        }
+
+        if (peername[0] == '\0') {
+          DEBUGMSGTL(("netsnmp_sockaddr_in6", "empty hostname\n"));
+          free(peername);
+          return 0;
+        }
+
+#if HAVE_GETADDRINFO
+        {
+            struct addrinfo hint = { 0 };
+            hint.ai_flags = 0;
+            hint.ai_family = PF_INET6;
+            hint.ai_socktype = SOCK_DGRAM;
+            hint.ai_protocol = 0;
+
+            err = getaddrinfo(peername, NULL, &hint, &addrs);
+        }
+        if (err != 0) {
+#if HAVE_GAI_STRERROR
+            snmp_log(LOG_ERR, "getaddrinfo(\"%s\", NULL, ...): %s\n", peername,
+                     gai_strerror(err));
+#else
+            snmp_log(LOG_ERR, "getaddrinfo(\"%s\", NULL, ...): (error %d)\n",
+                     peername, err);
+#endif
+            free(peername);
+            return 0;
+        }
+        if (addrs != NULL) {
+        DEBUGMSGTL(("netsnmp_sockaddr_in6", "hostname (resolved okay)\n"));
+        memcpy(&addr->sin6_addr,
+               &((struct sockaddr_in6 *) addrs->ai_addr)->sin6_addr,
+               sizeof(struct in6_addr));
+		freeaddrinfo(addrs);
+        }
+		else {
+        DEBUGMSGTL(("netsnmp_sockaddr_in6", "Failed to resolve IPv6 hostname\n"));
+		}
+#elif HAVE_GETIPNODEBYNAME
+        hp = getipnodebyname(peername, AF_INET6, 0, &err);
+        if (hp == NULL) {
+            DEBUGMSGTL(("netsnmp_sockaddr_in6",
+                        "hostname (couldn't resolve = %d)\n", err));
+            free(peername);
+            return 0;
+        }
+        DEBUGMSGTL(("netsnmp_sockaddr_in6", "hostname (resolved okay)\n"));
+        memcpy(&(addr->sin6_addr), hp->h_addr, hp->h_length);
+#elif HAVE_GETHOSTBYNAME
+        hp = gethostbyname(peername);
+        if (hp == NULL) {
+            DEBUGMSGTL(("netsnmp_sockaddr_in6",
+                        "hostname (couldn't resolve)\n"));
+            free(peername);
+            return 0;
+        } else {
+            if (hp->h_addrtype != AF_INET6) {
+                DEBUGMSGTL(("netsnmp_sockaddr_in6",
+                            "hostname (not AF_INET6!)\n"));
+                free(peername);
+                return 0;
+            } else {
+                DEBUGMSGTL(("netsnmp_sockaddr_in6",
+                            "hostname (resolved okay)\n"));
+                memcpy(&(addr->sin6_addr), hp->h_addr, hp->h_length);
+            }
+        }
+#else                           /*HAVE_GETHOSTBYNAME */
+        /*
+         * There is no name resolving function available.  
+         */
+        snmp_log(LOG_ERR,
+                 "no getaddrinfo()/getipnodebyname()/gethostbyname()\n");
+        free(peername);
+        return 0;
+#endif                          /*HAVE_GETHOSTBYNAME */
+    } else {
+        DEBUGMSGTL(("netsnmp_sockaddr_in6", "NULL peername"));
+        return 0;
+    }
+
+  resolved:
+    DEBUGMSGTL(("netsnmp_sockaddr_in6", "return { AF_INET6, [%s]:%hu }\n",
+                inet_ntop(AF_INET6, &addr->sin6_addr, debug_addr,
+                          sizeof(debug_addr)), ntohs(addr->sin6_port)));
+    free(peername);
+    return 1;
+}
+
+
+int
+netsnmp_sockaddr_in6(struct sockaddr_in6 *addr,
+                     const char *inpeername, int remote_port)
+{
+    char buf[sizeof(remote_port) * 3 + 2];
+    sprintf(buf, ":%u", remote_port);
+    return netsnmp_sockaddr_in6_2(addr, inpeername, remote_port ? buf : NULL);
+}
diff --git a/snmplib/snmpSSHDomain.c b/snmplib/transports/snmpSSHDomain.c
similarity index 98%
rename from snmplib/snmpSSHDomain.c
rename to snmplib/transports/snmpSSHDomain.c
index f58c2a3..7f51f86 100644
--- a/snmplib/snmpSSHDomain.c
+++ b/snmplib/transports/snmpSSHDomain.c
@@ -1,5 +1,7 @@
 #include <net-snmp/net-snmp-config.h>
 
+#include <net-snmp/library/snmpSSHDomain.h>
+
 #include <stdio.h>
 #include <sys/types.h>
 #include <errno.h>
@@ -37,11 +39,6 @@
 #include <fcntl.h>
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#endif
-
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
 #endif
@@ -59,9 +56,8 @@
 #include <net-snmp/library/default_store.h>
 
 #include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/snmpUDPDomain.h>
-#include <net-snmp/library/snmpTCPDomain.h>
-#include <net-snmp/library/snmpSSHDomain.h>
+#include <net-snmp/library/snmpIPv4BaseDomain.h>
+#include <net-snmp/library/snmpSocketBaseDomain.h>
 #include <net-snmp/library/read_config.h>
 
 #define MAX_NAME_LENGTH 127
@@ -81,7 +77,7 @@
     char socket_path[MAXPATHLEN];
 } netsnmp_ssh_addr_pair;
 
-oid netsnmp_snmpSSHDomain[] = { TRANSPORT_DOMAIN_SSH_IP };
+const oid netsnmp_snmpSSHDomain[] = { TRANSPORT_DOMAIN_SSH_IP };
 static netsnmp_tdomain sshDomain;
 
 const char *keyfile1="/home/hardaker/.ssh/id_rsa.pub";
@@ -599,9 +595,7 @@
     memset(t, 0, sizeof(netsnmp_transport));
 
     t->domain = netsnmp_snmpSSHDomain;
-    t->domain_length =
-        sizeof(netsnmp_snmpSSHDomain) / sizeof(netsnmp_snmpSSHDomain[0]);
-
+    t->domain_length = netsnmp_snmpSSHDomain_len;
     t->flags = NETSNMP_TRANSPORT_FLAG_STREAM | NETSNMP_TRANSPORT_FLAG_TUNNELED;
 
     addr_pair = SNMP_MALLOC_TYPEDEF(netsnmp_ssh_addr_pair);
@@ -944,7 +938,7 @@
 netsnmp_ssh_ctor(void)    
 {
     sshDomain.name = netsnmp_snmpSSHDomain;
-    sshDomain.name_length = sizeof(netsnmp_snmpSSHDomain) / sizeof(oid);
+    sshDomain.name_length = netsnmp_snmpSSHDomain_len;
     sshDomain.prefix = (const char **)calloc(2, sizeof(char *));
     sshDomain.prefix[0] = "ssh";
 
diff --git a/snmplib/snmpSTDDomain.c b/snmplib/transports/snmpSTDDomain.c
similarity index 99%
rename from snmplib/snmpSTDDomain.c
rename to snmplib/transports/snmpSTDDomain.c
index 600a683..21e0d79 100644
--- a/snmplib/snmpSTDDomain.c
+++ b/snmplib/transports/snmpSTDDomain.c
@@ -1,5 +1,7 @@
 #include <net-snmp/net-snmp-config.h>
 
+#include <net-snmp/library/snmpSTDDomain.h>
+
 #include <stdio.h>
 #include <sys/types.h>
 #include <signal.h>
@@ -25,7 +27,6 @@
 #include <net-snmp/output_api.h>
 
 #include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/snmpSTDDomain.h>
 #include <net-snmp/library/tools.h>
 
 oid netsnmp_snmpSTDDomain[] = { TRANSPORT_DOMAIN_STD_IP };
diff --git a/snmplib/transports/snmpSocketBaseDomain.c b/snmplib/transports/snmpSocketBaseDomain.c
new file mode 100644
index 0000000..3fb6632
--- /dev/null
+++ b/snmplib/transports/snmpSocketBaseDomain.c
@@ -0,0 +1,362 @@
+/**
+ * @file  snmpSocketBaseDomain.c
+ *
+ * @brief Socket support functions.
+ */
+
+#include <net-snmp/net-snmp-config.h>
+
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmpSocketBaseDomain.h>
+
+#include <stddef.h>
+#include <stdio.h>
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#include <sys/types.h>
+#include <ctype.h>
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#if HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#include <errno.h>
+
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmp_debug.h>
+#include <net-snmp/library/tools.h>
+#include <net-snmp/library/default_store.h>
+#include <net-snmp/library/system.h>
+#include <net-snmp/library/snmp_assert.h>
+
+/* all sockets pretty much close the same way */
+int netsnmp_socketbase_close(netsnmp_transport *t) {
+    int rc = -1;
+    if (t->sock >= 0) {
+#ifndef HAVE_CLOSESOCKET
+        rc = close(t->sock);
+#else
+        rc = closesocket(t->sock);
+#endif
+        t->sock = -1;
+    }
+    return rc;
+}
+
+/*
+ * find largest possible buffer between current size and specified size.
+ *
+ * Try to maximize the current buffer of type "optname"
+ * to the maximum allowable size by the OS (as close to
+ * size as possible)
+ */
+static int
+_sock_buffer_maximize(int s, int optname, const char *buftype, int size)
+{
+    int            curbuf = 0;
+    socklen_t      curbuflen = sizeof(int);
+    int            lo, mid, hi;
+
+    /*
+     * First we need to determine our current buffer
+     */
+    if ((getsockopt(s, SOL_SOCKET, optname, (void *) &curbuf,
+                    &curbuflen) == 0) 
+            && (curbuflen == sizeof(int))) {
+
+        DEBUGMSGTL(("verbose:socket:buffer:max", "Current %s is %d\n",
+                    buftype, curbuf));
+
+        /*
+         * Let's not be stupid ... if we were asked for less than what we
+         * already have, then forget about it
+         */
+        if (size <= curbuf) {
+            DEBUGMSGTL(("verbose:socket:buffer:max",
+                        "Requested %s <= current buffer\n", buftype));
+            return curbuf;
+        }
+
+        /*
+         * Do a binary search the optimal buffer within 1k of the point of
+         * failure. This is rather bruteforce, but simple
+         */
+        hi = size;
+        lo = curbuf;
+
+        while (hi - lo > 1024) {
+            mid = (lo + hi) / 2;
+            if (setsockopt(s, SOL_SOCKET, optname, (void *) &mid,
+                        sizeof(int)) == 0) {
+                lo = mid; /* Success: search between mid and hi */
+            } else {
+                hi = mid; /* Failed: search between lo and mid */
+            }
+        }
+
+        /*
+         * Now print if this optimization helped or not
+         */
+        if (getsockopt(s,SOL_SOCKET, optname, (void *) &curbuf,
+                    &curbuflen) == 0) {
+            DEBUGMSGTL(("socket:buffer:max", 
+                        "Maximized %s: %d\n",buftype, curbuf));
+        } 
+    } else {
+        /*
+         * There is really not a lot we can do anymore.
+         * If the OS doesn't give us the current buffer, then what's the 
+         * point in trying to make it better
+         */
+        DEBUGMSGTL(("socket:buffer:max", "Get %s failed ... giving up!\n",
+                    buftype));
+        curbuf = -1;
+    }
+
+    return curbuf;
+}
+
+
+static const char *
+_sock_buf_type_get(int optname, int local)
+{
+    if (optname == SO_SNDBUF) {
+        if (local)
+            return "server send buffer";
+        else
+            return "client send buffer";
+    } else if (optname == SO_RCVBUF) {
+        if (local)
+            return "server receive buffer";
+        else
+            return "client receive buffer";
+    }
+
+    return "unknown buffer";
+}
+
+/*
+ *
+ * Get the requested buffersize, based on
+ * - sockettype : client (local = 0) or server (local = 1) 
+ * - buffertype : send (optname = SO_SNDBUF) or recv (SO_RCVBUF)
+ *
+ * In case a compile time buffer was specified, then use that one
+ * if there was no runtime configuration override
+ */
+static int
+_sock_buffer_size_get(int optname, int local, const char **buftype)
+{
+    int size;
+
+    if (NULL != buftype)
+        *buftype = _sock_buf_type_get(optname, local);
+
+    if (optname == SO_SNDBUF) {
+        if (local) {
+            size = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, 
+                    NETSNMP_DS_LIB_SERVERSENDBUF);
+#ifdef NETSNMP_DEFAULT_SERVER_SEND_BUF
+            if (size <= 0)
+               size = NETSNMP_DEFAULT_SERVER_SEND_BUF;
+#endif
+        } else {
+            size = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, 
+                    NETSNMP_DS_LIB_CLIENTSENDBUF);
+#ifdef NETSNMP_DEFAULT_CLIENT_SEND_BUF
+            if (size <= 0)
+               size = NETSNMP_DEFAULT_CLIENT_SEND_BUF;
+#endif
+        }
+    } else if (optname == SO_RCVBUF) {
+        if (local) {
+            size = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, 
+                    NETSNMP_DS_LIB_SERVERRECVBUF);
+#ifdef NETSNMP_DEFAULT_SERVER_RECV_BUF
+            if (size <= 0)
+               size = NETSNMP_DEFAULT_SERVER_RECV_BUF;
+#endif
+        } else {
+            size = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, 
+                    NETSNMP_DS_LIB_CLIENTRECVBUF);
+#ifdef NETSNMP_DEFAULT_CLIENT_RECV_BUF
+            if (size <= 0)
+               size = NETSNMP_DEFAULT_CLIENT_RECV_BUF;
+#endif
+        }
+    } else {
+        size = 0;
+    }
+
+    DEBUGMSGTL(("socket:buffer", "Requested %s is %d\n",
+                (buftype) ? *buftype : "unknown buffer", size));
+
+    return(size);
+}
+
+/*
+ * set socket buffer size
+ *
+ * @param ss     : socket
+ * @param optname: SO_SNDBUF or SO_RCVBUF
+ * @param local  : 1 for server, 0 for client
+ * @param reqbuf : requested size, or 0 for default
+ *
+ * @retval    -1 : error
+ * @retval    >0 : new buffer size
+ */
+int
+netsnmp_sock_buffer_set(int s, int optname, int local, int size)
+{
+#if ! defined(SO_SNDBUF) && ! defined(SO_RCVBUF)
+    DEBUGMSGTL(("socket:buffer", "Changing socket buffer is not supported\n"));
+    return -1;
+#else
+    const char     *buftype;
+    int            curbuf = 0;
+    socklen_t      curbuflen = sizeof(int);
+
+#   ifndef  SO_SNDBUF
+    if (SO_SNDBUF == optname) {
+        DEBUGMSGTL(("socket:buffer",
+                    "Changing socket send buffer is not supported\n"));
+        return -1;
+    }
+#   endif                          /*SO_SNDBUF */
+#   ifndef  SO_RCVBUF
+    if (SO_RCVBUF == optname) {
+        DEBUGMSGTL(("socket:buffer",
+                    "Changing socket receive buffer is not supported\n"));
+        return -1;
+    }
+#   endif                          /*SO_RCVBUF */
+
+    /*
+     * What is the requested buffer size ?
+     */
+    if (0 == size)
+        size = _sock_buffer_size_get(optname, local, &buftype);
+    else {
+        buftype = _sock_buf_type_get(optname, local);
+        DEBUGMSGT(("verbose:socket:buffer", "Requested %s is %d\n",
+                   buftype, size));
+    }
+
+    if ((getsockopt(s, SOL_SOCKET, optname, (void *) &curbuf,
+                    &curbuflen) == 0) 
+        && (curbuflen == sizeof(int))) {
+        
+        DEBUGMSGT(("verbose:socket:buffer", "Original %s is %d\n",
+                   buftype, curbuf));
+        if (curbuf >= size) {
+            DEBUGMSGT(("verbose:socket:buffer",
+                      "New %s size is smaller than original!\n", buftype));
+        }
+    }
+
+    /*
+     * If the buffersize was not specified or it was a negative value
+     * then don't change the OS buffers at all
+     */
+    if (size <= 0) {
+       DEBUGMSGT(("socket:buffer",
+                    "%s not valid or not specified; using OS default(%d)\n",
+                    buftype,curbuf));
+       return curbuf;
+    }
+
+    /*
+     * Try to set the requested send buffer
+     */
+    if (setsockopt(s, SOL_SOCKET, optname, (void *) &size, sizeof(int)) == 0) {
+        /*
+         * Because some platforms lie about the actual buffer that has been 
+         * set (Linux will always say it worked ...), we print some 
+         * diagnostic output for debugging
+         */
+        DEBUGIF("socket:buffer") {
+            DEBUGMSGT(("socket:buffer", "Set %s to %d\n",
+                       buftype, size));
+            if ((getsockopt(s, SOL_SOCKET, optname, (void *) &curbuf,
+                            &curbuflen) == 0) 
+                    && (curbuflen == sizeof(int))) {
+
+                DEBUGMSGT(("verbose:socket:buffer",
+                           "Now %s is %d\n", buftype, curbuf));
+            }
+        }
+        /*
+         * If the new buffer is smaller than the size we requested, we will
+         * try to increment the new buffer with 1k increments 
+         * (this will sometime allow us to reach a more optimal buffer.)
+         *   For example : On Solaris, if the max OS buffer is 100k and you
+         *   request 110k, you end up with the default 8k :-(
+         */
+        if (curbuf < size) {
+            curbuf = _sock_buffer_maximize(s, optname, buftype, size);
+            if(-1 != curbuf)
+                size = curbuf;
+        }
+
+    } else {
+        /*
+         * Obviously changing the buffer failed, most like like because we 
+         * requested a buffer greater than the OS limit.
+         * Therefore we need to search for an optimal buffer that is close
+         * enough to the point of failure.
+         * This will allow us to reach a more optimal buffer.
+         *   For example : On Solaris, if the max OS buffer is 100k and you 
+         *   request 110k, you end up with the default 8k :-(
+         *   After this quick seach we would get 1k close to 100k (the max)
+         */
+        DEBUGMSGTL(("socket:buffer", "couldn't set %s to %d\n",
+                    buftype, size));
+
+        curbuf = _sock_buffer_maximize(s, optname, buftype, size);
+        if(-1 != curbuf)
+            size = curbuf;
+    }
+
+    return size;
+#endif
+}
+
+
+/**
+ * Sets the mode of a socket for all subsequent I/O operations.
+ *
+ * @param[in] sock Socket descriptor (Unix) or socket handle (Windows).
+ * @param[in] non_blocking_mode I/O mode: non-zero selects non-blocking mode;
+ *   zero selects blocking mode.
+ *
+ * @return zero upon success and a negative value upon error.
+ */
+int
+netsnmp_set_non_blocking_mode(int sock, int non_blocking_mode)
+{
+#ifdef WIN32
+    u_long          arg;
+
+    arg = non_blocking_mode;
+    return ioctlsocket(sock, FIONBIO, &arg);
+#else
+    int             sockflags;
+
+    if ((sockflags = fcntl(sock, F_GETFL, 0)) >= 0) {
+        return fcntl(sock, F_SETFL,
+                     non_blocking_mode ? sockflags | O_NONBLOCK
+                     : sockflags & ~O_NONBLOCK);
+    } else
+        return -1;
+#endif
+}
diff --git a/snmplib/transports/snmpTCPBaseDomain.c b/snmplib/transports/snmpTCPBaseDomain.c
new file mode 100644
index 0000000..fc70dba
--- /dev/null
+++ b/snmplib/transports/snmpTCPBaseDomain.c
@@ -0,0 +1,99 @@
+#include <net-snmp/net-snmp-config.h>
+
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmpTCPBaseDomain.h>
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <errno.h>
+
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#if HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+
+#if HAVE_DMALLOC_H
+#include <dmalloc.h>
+#endif
+
+#include <net-snmp/types.h>
+#include <net-snmp/output_api.h>
+
+#include <net-snmp/library/snmp_transport.h>
+
+/*
+ * You can write something into opaque that will subsequently get passed back 
+ * to your send function if you like.  For instance, you might want to
+ * remember where a PDU came from, so that you can send a reply there...  
+ */
+
+int netsnmp_tcpbase_recv(netsnmp_transport *t, void *buf, int size,
+                         void **opaque, int *olength)
+{
+    int rc = -1;
+
+    if (t != NULL && t->sock >= 0) {
+	while (rc < 0) {
+	    rc = recvfrom(t->sock, buf, size, 0, NULL, NULL);
+	    if (rc < 0 && errno != EINTR) {
+		DEBUGMSGTL(("netsnmp_tcpbase", "recv fd %d err %d (\"%s\")\n",
+			    t->sock, errno, strerror(errno)));
+		break;
+	    }
+	    DEBUGMSGTL(("netsnmp_tcpbase", "recv fd %d got %d bytes\n",
+			t->sock, rc));
+	}
+    } else {
+        return -1;
+    }
+
+    if (opaque != NULL && olength != NULL) {
+        if (t->data_length > 0) {
+            if ((*opaque = malloc(t->data_length)) != NULL) {
+                memcpy(*opaque, t->data, t->data_length);
+                *olength = t->data_length;
+            } else {
+                *olength = 0;
+            }
+        } else {
+            *opaque = NULL;
+            *olength = 0;
+        }
+    }
+
+    return rc;
+}
+
+int netsnmp_tcpbase_send(netsnmp_transport *t, void *buf, int size,
+                         void **opaque, int *olength) {
+    int rc = -1;
+
+    if (t != NULL && t->sock >= 0) {
+	while (rc < 0) {
+	    rc = sendto(t->sock, buf, size, 0, NULL, 0);
+	    if (rc < 0 && errno != EINTR) {
+		break;
+	    }
+	}
+    }
+    return rc;
+}
diff --git a/snmplib/snmpTCPDomain.c b/snmplib/transports/snmpTCPDomain.c
similarity index 68%
rename from snmplib/snmpTCPDomain.c
rename to snmplib/transports/snmpTCPDomain.c
index d221fd3..e27fdec 100644
--- a/snmplib/snmpTCPDomain.c
+++ b/snmplib/transports/snmpTCPDomain.c
@@ -1,5 +1,8 @@
 #include <net-snmp/net-snmp-config.h>
 
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmpTCPDomain.h>
+
 #include <stdio.h>
 #include <sys/types.h>
 #include <errno.h>
@@ -28,11 +31,6 @@
 #include <fcntl.h>
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#endif
-
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
 #endif
@@ -40,15 +38,15 @@
 #include <net-snmp/types.h>
 #include <net-snmp/output_api.h>
 
-#include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/snmpUDPDomain.h>
-#include <net-snmp/library/snmpTCPDomain.h>
+#include <net-snmp/library/snmpIPv4BaseDomain.h>
+#include <net-snmp/library/snmpSocketBaseDomain.h>
+#include <net-snmp/library/snmpTCPBaseDomain.h>
 
-/* Copied from snmpUDPDomain.c */
-typedef struct netsnmp_udp_addr_pair_s {
-    struct sockaddr_in remote_addr;
-    struct in_addr local_addr;
-} netsnmp_udp_addr_pair;
+/*
+ * needs to be in sync with the definitions in snmplib/snmpUDPDomain.c
+ * and perl/agent/agent.xs
+ */
+typedef netsnmp_indexed_addr_pair netsnmp_udp_addr_pair;
 
 oid netsnmp_snmpTCPDomain[] = { TRANSPORT_DOMAIN_TCP_IP };
 static netsnmp_tdomain tcpDomain;
@@ -69,128 +67,16 @@
 static char *
 netsnmp_tcp_fmtaddr(netsnmp_transport *t, void *data, int len)
 {
-    netsnmp_udp_addr_pair *addr_pair = NULL;
-
-    if (data != NULL && len == sizeof(netsnmp_udp_addr_pair)) {
-	addr_pair = (netsnmp_udp_addr_pair *) data;
-    } else if (t != NULL && t->data != NULL) {
-	addr_pair = (netsnmp_udp_addr_pair *) t->data;
-    }
-
-    if (addr_pair == NULL) {
-        return strdup("TCP: unknown");
-    } else {
-        struct sockaddr_in *to = NULL;
-	char tmp[64];
-        to = (struct sockaddr_in *) &(addr_pair->remote_addr);
-        if (to == NULL) {
-            return strdup("TCP: unknown");
-        }
-
-        sprintf(tmp, "TCP: [%s]:%hu",
-                inet_ntoa(to->sin_addr), ntohs(to->sin_port));
-        return strdup(tmp);
-    }
+    return netsnmp_ipv4_fmtaddr("TCP", t, data, len);
 }
 
-
-
-/*
- * You can write something into opaque that will subsequently get passed back 
- * to your send function if you like.  For instance, you might want to
- * remember where a PDU came from, so that you can send a reply there...  
- */
-
-static int
-netsnmp_tcp_recv(netsnmp_transport *t, void *buf, int size,
-		 void **opaque, int *olength)
-{
-    int rc = -1;
-
-    if (t != NULL && t->sock >= 0) {
-	while (rc < 0) {
-	    rc = recvfrom(t->sock, buf, size, 0, NULL, NULL);
-	    if (rc < 0 && errno != EINTR) {
-		DEBUGMSGTL(("netsnmp_tcp", "recv fd %d err %d (\"%s\")\n",
-			    t->sock, errno, strerror(errno)));
-		break;
-	    }
-	    DEBUGMSGTL(("netsnmp_tcp", "recv fd %d got %d bytes\n",
-			t->sock, rc));
-	}
-    } else {
-        return -1;
-    }
-
-    if (opaque != NULL && olength != NULL) {
-        if (t->data_length > 0) {
-            if ((*opaque = malloc(t->data_length)) != NULL) {
-                memcpy(*opaque, t->data, t->data_length);
-                *olength = t->data_length;
-            } else {
-                *olength = 0;
-            }
-        } else {
-            *opaque = NULL;
-            *olength = 0;
-        }
-    }
-
-    return rc;
-}
-
-
-
-static int
-netsnmp_tcp_send(netsnmp_transport *t, void *buf, int size,
-		 void **opaque, int *olength)
-{
-    int rc = -1;
-
-    if (t != NULL && t->sock >= 0) {
-	while (rc < 0) {
-	    rc = sendto(t->sock, buf, size, 0, NULL, 0);
-	    if (rc < 0 && errno != EINTR) {
-		break;
-	    }
-	}
-    }
-    return rc;
-}
-
-
-
-static int
-netsnmp_tcp_close(netsnmp_transport *t)
-{
-    int rc = -1;
-    if (t != NULL && t->sock >= 0) {
-        DEBUGMSGTL(("netsnmp_tcp", "close fd %d\n", t->sock));
-#ifndef HAVE_CLOSESOCKET
-        rc = close(t->sock);
-#else
-        rc = closesocket(t->sock);
-#endif
-        t->sock = -1;
-    }
-    return rc;
-}
-
-
-
 static int
 netsnmp_tcp_accept(netsnmp_transport *t)
 {
     struct sockaddr *farend = NULL;
     netsnmp_udp_addr_pair *addr_pair = NULL;
     int             newsock = -1;
-#ifdef WIN32
-    u_long          ioctlsocket_opt;
-#else
-    int             sockflags;
-#endif
     socklen_t       farendlen = sizeof(struct sockaddr_in);
-    char           *str = NULL;
 
     addr_pair = (netsnmp_udp_addr_pair *)malloc(sizeof(netsnmp_udp_addr_pair));
 
@@ -201,6 +87,7 @@
         DEBUGMSGTL(("netsnmp_tcp", "accept: malloc failed\n"));
         return -1;
     }
+    memset(addr_pair, 0, sizeof *addr_pair);
     farend = (struct sockaddr *) &(addr_pair->remote_addr);
 
     if (t != NULL && t->sock >= 0) {
@@ -219,24 +106,19 @@
 
         t->data = addr_pair;
         t->data_length = sizeof(netsnmp_udp_addr_pair);
-        str = netsnmp_tcp_fmtaddr(NULL, farend, farendlen);
-        DEBUGMSGTL(("netsnmp_tcp", "accept succeeded (from %s)\n", str));
-        free(str);
+        DEBUGIF("netsnmp_tcp") {
+            char *str = netsnmp_tcp_fmtaddr(NULL, farend, farendlen);
+            DEBUGMSGTL(("netsnmp_tcp", "accept succeeded (from %s)\n", str));
+            free(str);
+        }
 
         /*
          * Try to make the new socket blocking.  
          */
 
-#ifdef WIN32
-        ioctlsocket_opt = 0;
-        ioctlsocket(newsock, FIONBIO, &ioctlsocket_opt);
-#else
-        if ((sockflags = fcntl(newsock, F_GETFL, 0)) >= 0) {
-            fcntl(newsock, F_SETFL, (sockflags & ~O_NONBLOCK));
-        } else {
-            DEBUGMSGTL(("netsnmp_tcp", "couldn't f_getfl of fd %d\n",newsock));
-        }
-#endif
+        if (netsnmp_set_non_blocking_mode(newsock, FALSE) < 0)
+            DEBUGMSGTL(("netsnmp_tcp", "couldn't f_getfl of fd %d\n",
+                        newsock));
 
         /*
          * Allow user to override the send and receive buffers. Default is
@@ -284,6 +166,7 @@
         netsnmp_transport_free(t);
         return NULL;
     }
+    memset(addr_pair, 0, sizeof *addr_pair);
     t->data = addr_pair;
     t->data_length = sizeof(netsnmp_udp_addr_pair);
     memcpy(&(addr_pair->remote_addr), addr, sizeof(struct sockaddr_in));
@@ -301,11 +184,6 @@
     t->flags = NETSNMP_TRANSPORT_FLAG_STREAM;
 
     if (local) {
-#ifdef WIN32
-        u_long ioctlsocket_opt = 1;
-#else
-        int sockflags = 0;
-#endif
         int opt = 1;
 
         /*
@@ -317,7 +195,7 @@
         t->flags |= NETSNMP_TRANSPORT_FLAG_LISTEN;
         t->local = (u_char *)malloc(6);
         if (t->local == NULL) {
-            netsnmp_tcp_close(t);
+            netsnmp_socketbase_close(t);
             netsnmp_transport_free(t);
             return NULL;
         }
@@ -335,26 +213,20 @@
 
         rc = bind(t->sock, (struct sockaddr *)addr, sizeof(struct sockaddr));
         if (rc != 0) {
-            netsnmp_tcp_close(t);
+            netsnmp_socketbase_close(t);
             netsnmp_transport_free(t);
             return NULL;
         }
 
         /*
          * Since we are going to be letting select() tell us when connections
-         * are ready to be accept()ed, we need to make the socket n0n-blocking
+         * are ready to be accept()ed, we need to make the socket non-blocking
          * to avoid the race condition described in W. R. Stevens, ``Unix
          * Network Programming Volume I Second Edition'', pp. 422--4, which
          * could otherwise wedge the agent.
          */
 
-#ifdef WIN32
-        ioctlsocket_opt = 1;
-        ioctlsocket(t->sock, FIONBIO, &ioctlsocket_opt);
-#else
-        sockflags = fcntl(t->sock, F_GETFL, 0);
-        fcntl(t->sock, F_SETFL, sockflags | O_NONBLOCK);
-#endif
+        netsnmp_set_non_blocking_mode(t->sock, TRUE);
 
         /*
          * Now sit here and wait for connections to arrive.  
@@ -362,7 +234,7 @@
 
         rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
         if (rc != 0) {
-            netsnmp_tcp_close(t);
+            netsnmp_socketbase_close(t);
             netsnmp_transport_free(t);
             return NULL;
         }
@@ -374,7 +246,7 @@
     } else {
       t->remote = (u_char *)malloc(6);
         if (t->remote == NULL) {
-            netsnmp_tcp_close(t);
+            netsnmp_socketbase_close(t);
             netsnmp_transport_free(t);
             return NULL;
         }
@@ -394,7 +266,7 @@
 		     sizeof(struct sockaddr));
 
         if (rc < 0) {
-            netsnmp_tcp_close(t);
+            netsnmp_socketbase_close(t);
             netsnmp_transport_free(t);
             return NULL;
         }
@@ -414,9 +286,9 @@
      */
 
     t->msgMaxSize = 0x7fffffff;
-    t->f_recv     = netsnmp_tcp_recv;
-    t->f_send     = netsnmp_tcp_send;
-    t->f_close    = netsnmp_tcp_close;
+    t->f_recv     = netsnmp_tcpbase_recv;
+    t->f_send     = netsnmp_tcpbase_send;
+    t->f_close    = netsnmp_socketbase_close;
     t->f_accept   = netsnmp_tcp_accept;
     t->f_fmtaddr  = netsnmp_tcp_fmtaddr;
 
diff --git a/snmplib/snmpTCPIPv6Domain.c b/snmplib/transports/snmpTCPIPv6Domain.c
similarity index 67%
rename from snmplib/snmpTCPIPv6Domain.c
rename to snmplib/transports/snmpTCPIPv6Domain.c
index 83243c7..e10ec75 100644
--- a/snmplib/snmpTCPIPv6Domain.c
+++ b/snmplib/transports/snmpTCPIPv6Domain.c
@@ -2,6 +2,9 @@
 
 #ifdef NETSNMP_TRANSPORT_TCPIPV6_DOMAIN
 
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmpTCPIPv6Domain.h>
+
 #include <stdio.h>
 #include <sys/types.h>
 #include <errno.h>
@@ -20,20 +23,6 @@
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
-
-#if defined(HAVE_WINSOCK_H)
-    /*
-     * Windows IPv6 support is part of WinSock2 only
-     */
-#include <winsock2.h>
-#include <ws2tcpip.h>
-
-#ifndef HAVE_INET_NTOP
-extern const char *inet_ntop(int, const void*, char*, size_t);
-#endif
-
-#endif
-
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
@@ -56,9 +45,10 @@
 #include <net-snmp/config_api.h>
 
 #include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/snmpUDPDomain.h>
-#include <net-snmp/library/snmpUDPIPv6Domain.h>
-#include <net-snmp/library/snmpTCPIPv6Domain.h>
+#include <net-snmp/library/snmpSocketBaseDomain.h>
+#include <net-snmp/library/snmpTCPBaseDomain.h>
+
+#include "inet_ntop.h"
 
 oid netsnmp_TCPIPv6Domain[] = { TRANSPORT_DOMAIN_TCP_IPV6 };
 static netsnmp_tdomain tcp6Domain;
@@ -71,102 +61,7 @@
 static char *
 netsnmp_tcp6_fmtaddr(netsnmp_transport *t, void *data, int len)
 {
-    struct sockaddr_in6 *to = NULL;
-
-    DEBUGMSGTL(("netsnmp_tcp6", "fmtaddr: t = %p, data = %p, len = %d\n", t,
-                data, len));
-    if (data != NULL && len == sizeof(struct sockaddr_in6)) {
-        to = (struct sockaddr_in6 *) data;
-    } else if (t != NULL && t->data != NULL) {
-        to = (struct sockaddr_in6 *) t->data;
-    }
-    if (to == NULL) {
-        return strdup("TCP/IPv6: unknown");
-    } else {
-        char addr[INET6_ADDRSTRLEN];
-        char tmp[INET6_ADDRSTRLEN + 18];
-
-        sprintf(tmp, "TCP/IPv6: [%s]:%hu",
-                inet_ntop(AF_INET6, (void *) &(to->sin6_addr), addr,
-                          INET6_ADDRSTRLEN), ntohs(to->sin6_port));
-        return strdup(tmp);
-    }
-}
-
-/*
- * You can write something into opaque that will subsequently get passed back 
- * to your send function if you like.  For instance, you might want to
- * remember where a PDU came from, so that you can send a reply there...  
- */
-
-static int
-netsnmp_tcp6_recv(netsnmp_transport *t, void *buf, int size,
-		  void **opaque, int *olength)
-{
-    int rc = -1;
-
-    if (t != NULL && t->sock >= 0) {
-	while (rc < 0) {
-	    rc = recvfrom(t->sock, buf, size, 0, NULL, NULL);
-	    if (rc < 0 && errno != EINTR) {
-		DEBUGMSGTL(("netsnmp_tcp6", "recv fd %d err %d (\"%s\")\n",
-			    t->sock, errno, strerror(errno)));
-		return -1;
-	    }
-	}
-        DEBUGMSGTL(("netsnmp_tcp6", "recv fd %d got %d bytes\n", t->sock, rc));
-    } else {
-        return -1;
-    }
-
-    if (opaque != NULL && olength != NULL) {
-        if (t->data_length > 0) {
-            if ((*opaque = malloc(t->data_length)) != NULL) {
-                memcpy(*opaque, t->data, t->data_length);
-                *olength = t->data_length;
-            } else {
-                *olength = 0;
-            }
-        } else {
-            *opaque = NULL;
-            *olength = 0;
-        }
-    }
-
-    return rc;
-}
-
-static int
-netsnmp_tcp6_send(netsnmp_transport *t, void *buf, int size,
-		  void **opaque, int *olength)
-{
-    int rc = -1;
-
-    if (t != NULL && t->sock >= 0) {
-	while (rc < 0) {
-	    rc = sendto(t->sock, buf, size, 0, NULL, 0);
-	    if (rc < 0 && errno != EINTR) {
-		break;
-	    }
-	}
-    }
-    return rc;
-}
-
-static int
-netsnmp_tcp6_close(netsnmp_transport *t)
-{
-    int rc = -1;
-    if (t != NULL && t->sock >= 0) {
-        DEBUGMSGTL(("netsnmp_tcp6", "close fd %d\n", t->sock));
-#ifndef HAVE_CLOSESOCKET
-        rc = close(t->sock);
-#else
-        rc = closesocket(t->sock);
-#endif
-        t->sock = -1;
-    }
-    return rc;
+    return netsnmp_ipv6_fmtaddr("TCP/IPv6", t, data, len);
 }
 
 static int
@@ -174,13 +69,7 @@
 {
     struct sockaddr_in6 *farend = NULL;
     int             newsock = -1;
-#ifdef WIN32
-    u_long          ioctlsocket_opt;
-#else
-    int             sockflags;
-#endif
     socklen_t       farendlen = sizeof(struct sockaddr_in6);
-    char           *str = NULL;
 
     farend = (struct sockaddr_in6 *) malloc(sizeof(struct sockaddr_in6));
 
@@ -208,25 +97,19 @@
 
         t->data = farend;
         t->data_length = farendlen;
-        str = netsnmp_tcp6_fmtaddr(NULL, farend, farendlen);
-        DEBUGMSGTL(("netsnmp_tcp6", "accept succeeded (from %s)\n", str));
-        free(str);
+        DEBUGIF("netsnmp_tcp6") {
+            char *str = netsnmp_tcp6_fmtaddr(NULL, farend, farendlen);
+            DEBUGMSGTL(("netsnmp_tcp6", "accept succeeded (from %s)\n", str));
+            free(str);
+        }
 
         /*
          * Try to make the new socket blocking.  
          */
 
-#ifdef WIN32
-        ioctlsocket_opt = 0;
-        ioctlsocket(newsock, FIONBIO, &ioctlsocket_opt);
-#else
-        if ((sockflags = fcntl(newsock, F_GETFL, 0)) >= 0) {
-            fcntl(newsock, F_SETFL, (sockflags & ~O_NONBLOCK));
-        } else {
-            DEBUGMSGTL(("netsnmp_tcp6", "accept: couldn't f_getfl of fd %d\n",
-                        newsock));
-        }
-#endif
+        if (netsnmp_set_non_blocking_mode(newsock, FALSE) < 0)
+            DEBUGMSGTL(("netsnmp_tcp6",
+                        "accept: couldn't f_getfl of fd %d\n", newsock));
 
         /*
          * Allow user to override the send and receive buffers. Default is
@@ -256,7 +139,6 @@
 {
     netsnmp_transport *t = NULL;
     int             rc = 0;
-    char           *str = NULL;
 
     if (addr == NULL || addr->sin6_family != AF_INET6) {
         return NULL;
@@ -268,11 +150,13 @@
     }
     memset(t, 0, sizeof(netsnmp_transport));
 
-    str = netsnmp_tcp6_fmtaddr(NULL, (void *)addr,
-				  sizeof(struct sockaddr_in6));
-    DEBUGMSGTL(("netsnmp_tcp6", "open %s %s\n", local ? "local" : "remote",
-                str));
-    free(str);
+    DEBUGIF("netsnmp_tcp6") {
+        char *str = netsnmp_tcp6_fmtaddr(NULL, (void *)addr,
+                                   sizeof(struct sockaddr_in6));
+        DEBUGMSGTL(("netsnmp_tcp6", "open %s %s\n", local ? "local" : "remote",
+                    str));
+        free(str);
+    }
 
     memset(t, 0, sizeof(netsnmp_transport));
 
@@ -296,11 +180,6 @@
     t->flags = NETSNMP_TRANSPORT_FLAG_STREAM;
 
     if (local) {
-#ifdef WIN32
-        u_long ioctlsocket_opt;
-#else
-        int sockflags = 0;
-#endif
         int opt = 1;
 
         /*
@@ -314,7 +193,7 @@
         {
 	  int one=1;
 	  if (setsockopt(t->sock, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&one, sizeof(one)) != 0) {
-	    DEBUGMSGTL(("netsnmp_udp6", "couldn't set IPV6_V6ONLY to %d bytes: %s\n", one, strerror(errno)));
+	    DEBUGMSGTL(("netsnmp_tcp6", "couldn't set IPV6_V6ONLY to %d bytes: %s\n", one, strerror(errno)));
 	  } 
 	}
 #endif
@@ -322,7 +201,7 @@
         t->flags |= NETSNMP_TRANSPORT_FLAG_LISTEN;
         t->local = (unsigned char*)malloc(18);
         if (t->local == NULL) {
-            netsnmp_tcp6_close(t);
+            netsnmp_socketbase_close(t);
             netsnmp_transport_free(t);
             return NULL;
         }
@@ -340,7 +219,7 @@
         rc = bind(t->sock, (struct sockaddr *) addr,
 		  sizeof(struct sockaddr_in6));
         if (rc != 0) {
-            netsnmp_tcp6_close(t);
+            netsnmp_socketbase_close(t);
             netsnmp_transport_free(t);
             return NULL;
         }
@@ -353,13 +232,7 @@
          * could otherwise wedge the agent.
          */
 
-#ifdef WIN32
-        ioctlsocket_opt = 1;
-        ioctlsocket(t->sock, FIONBIO, &ioctlsocket_opt);
-#else
-        sockflags = fcntl(t->sock, F_GETFL, 0);
-        fcntl(t->sock, F_SETFL, sockflags | O_NONBLOCK);
-#endif
+        netsnmp_set_non_blocking_mode(t->sock, TRUE);
 
         /*
          * Now sit here and wait for connections to arrive.  
@@ -367,7 +240,7 @@
 
         rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
         if (rc != 0) {
-            netsnmp_tcp6_close(t);
+            netsnmp_socketbase_close(t);
             netsnmp_transport_free(t);
             return NULL;
         }
@@ -379,7 +252,7 @@
     } else {
         t->remote = (unsigned char*)malloc(18);
         if (t->remote == NULL) {
-            netsnmp_tcp6_close(t);
+            netsnmp_socketbase_close(t);
             netsnmp_transport_free(t);
             return NULL;
         }
@@ -401,7 +274,7 @@
         DEBUGMSGTL(("netsnmp_tcp6", "connect returns %d\n", rc));
 
         if (rc < 0) {
-            netsnmp_tcp6_close(t);
+            netsnmp_socketbase_close(t);
             netsnmp_transport_free(t);
             return NULL;
         }
@@ -421,9 +294,9 @@
      */
 
     t->msgMaxSize = 0x7fffffff;
-    t->f_recv     = netsnmp_tcp6_recv;
-    t->f_send     = netsnmp_tcp6_send;
-    t->f_close    = netsnmp_tcp6_close;
+    t->f_recv     = netsnmp_tcpbase_recv;
+    t->f_send     = netsnmp_tcpbase_send;
+    t->f_close    = netsnmp_socketbase_close;
     t->f_accept   = netsnmp_tcp6_accept;
     t->f_fmtaddr  = netsnmp_tcp6_fmtaddr;
 
@@ -476,7 +349,7 @@
 
 
 void
-netsnmp_tcp6_ctor(void)
+netsnmp_tcpipv6_ctor(void)
 {
     tcp6Domain.name = netsnmp_TCPIPv6Domain;
     tcp6Domain.name_length = sizeof(netsnmp_TCPIPv6Domain) / sizeof(oid);
diff --git a/snmplib/transports/snmpTLSBaseDomain.c b/snmplib/transports/snmpTLSBaseDomain.c
new file mode 100644
index 0000000..b1e9465
--- /dev/null
+++ b/snmplib/transports/snmpTLSBaseDomain.c
@@ -0,0 +1,1146 @@
+#include <net-snmp/net-snmp-config.h>
+
+#include <net-snmp/library/snmpTLSBaseDomain.h>
+
+#if HAVE_DMALLOC_H
+#include <dmalloc.h>
+#endif
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#if HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#include <errno.h>
+#include <ctype.h>
+
+/* OpenSSL Includes */
+#include <openssl/bio.h>
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#include <openssl/x509.h>
+#include <openssl/x509_vfy.h>
+#include <openssl/x509v3.h>
+
+#include <net-snmp/types.h>
+#include <net-snmp/library/cert_util.h>
+#include <net-snmp/library/snmp_openssl.h>
+#include <net-snmp/library/default_store.h>
+#include <net-snmp/library/callback.h>
+#include <net-snmp/library/snmp_logging.h>
+#include <net-snmp/library/snmp_api.h>
+#include <net-snmp/library/tools.h>
+#include <net-snmp/library/snmp_debug.h>
+#include <net-snmp/library/snmp_assert.h>
+#include <net-snmp/library/snmp_transport.h>
+#include <net-snmp/library/snmp_secmod.h>
+#include <net-snmp/library/system.h>
+
+#define LOGANDDIE(msg) do { snmp_log(LOG_ERR, "%s\n", msg); return 0; } while(0)
+
+int openssl_local_index;
+
+/* this is called during negotiationn */
+int verify_callback(int ok, X509_STORE_CTX *ctx) {
+    int err, depth;
+    char buf[1024], *fingerprint;
+    X509 *thecert;
+    netsnmp_cert *cert;
+    _netsnmp_verify_info *verify_info;
+    SSL *ssl;
+
+    thecert = X509_STORE_CTX_get_current_cert(ctx);
+    err = X509_STORE_CTX_get_error(ctx);
+    depth = X509_STORE_CTX_get_error_depth(ctx);
+    
+    /* things to do: */
+
+    X509_NAME_oneline(X509_get_subject_name(thecert), buf, sizeof(buf));
+    fingerprint = netsnmp_openssl_cert_get_fingerprint(thecert, -1);
+    DEBUGMSGTL(("tls_x509:verify", "Cert: %s\n", buf));
+    DEBUGMSGTL(("tls_x509:verify", "  fp: %s\n", fingerprint ?
+                fingerprint : "unknown"));
+
+    ssl = X509_STORE_CTX_get_ex_data(ctx, SSL_get_ex_data_X509_STORE_CTX_idx());
+    verify_info = SSL_get_ex_data(ssl, openssl_local_index);
+
+    if (verify_info && ok && depth > 0) {
+        /* remember that a parent certificate has been marked as trusted */
+        verify_info->flags |= VRFY_PARENT_WAS_OK;
+    }
+
+    /* this ensures for self-signed certificates we have a valid
+       locally known fingerprint and then accept it */
+    if (!ok &&
+        (X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT == err ||
+         X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY == err ||
+         X509_V_ERR_CERT_UNTRUSTED == err ||
+         X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE == err ||
+         X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN == err)) {
+
+        cert = netsnmp_cert_find(NS_CERT_REMOTE_PEER, NS_CERTKEY_FINGERPRINT,
+                                 (void*)fingerprint);
+        if (cert)
+            DEBUGMSGTL(("tls_x509:verify", " Found locally: %s/%s\n",
+                        cert->info.dir, cert->info.filename));
+
+
+        if (cert) {
+            DEBUGMSGTL(("tls_x509:verify", "verify_callback called with: ok=%d ctx=%p depth=%d err=%i:%s\n", ok, ctx, depth, err, X509_verify_cert_error_string(err)));
+            DEBUGMSGTL(("tls_x509:verify", "  accepting matching fp of self-signed certificate found in: %s\n",
+                        cert->info.filename));
+            SNMP_FREE(fingerprint);
+            return 1;
+        } else {
+            DEBUGMSGTL(("tls_x509:verify", "  no matching fp found\n"));
+            /* log where we are and why called */
+            snmp_log(LOG_ERR, "tls verification failure: ok=%d ctx=%p depth=%d err=%i:%s\n", ok, ctx, depth, err, X509_verify_cert_error_string(err));
+            SNMP_FREE(fingerprint);
+            return 0;
+        }
+
+        if (0 == depth && verify_info &&
+            (verify_info->flags & VRFY_PARENT_WAS_OK)) {
+            DEBUGMSGTL(("tls_x509:verify", "verify_callback called with: ok=%d ctx=%p depth=%d err=%i:%s\n", ok, ctx, depth, err, X509_verify_cert_error_string(err)));
+            DEBUGMSGTL(("tls_x509:verify", "  a parent was ok, so returning ok for this child certificate\n"));
+            SNMP_FREE(fingerprint);
+            return 1; /* we'll check the hostname later at this level */
+        }
+    }
+
+    if (0 == ok)
+        snmp_log(LOG_ERR, "tls verification failure: ok=%d ctx=%p depth=%d err=%i:%s\n", ok, ctx, depth, err, X509_verify_cert_error_string(err));
+    else
+        DEBUGMSGTL(("tls_x509:verify", "verify_callback called with: ok=%d ctx=%p depth=%d err=%i:%s\n", ok, ctx, depth, err, X509_verify_cert_error_string(err)));
+    DEBUGMSGTL(("tls_x509:verify", "  returning the passed in value of %d\n",
+                ok));
+    SNMP_FREE(fingerprint);
+    return(ok);
+}
+
+#define VERIFIED_FINGERPRINT      0
+#define NO_FINGERPRINT_AVAILABLE  1
+#define FAILED_FINGERPRINT_VERIFY 2
+
+static int
+_netsnmp_tlsbase_verify_remote_fingerprint(X509 *remote_cert,
+                                           _netsnmpTLSBaseData *tlsdata,
+                                           int try_default) {
+
+    char            *fingerprint;
+
+    fingerprint =
+        netsnmp_openssl_cert_get_fingerprint(remote_cert, -1);
+
+    if (!fingerprint) {
+        /* no peer cert */
+        snmp_log(LOG_ERR, "failed to get fingerprint of remote certificate\n");
+        return FAILED_FINGERPRINT_VERIFY;
+    }
+
+    if (!tlsdata->their_fingerprint && tlsdata->their_identity) {
+        /* we have an identity; try and find it's fingerprint */
+        netsnmp_cert *their_cert;
+        their_cert =
+            netsnmp_cert_find(NS_CERT_REMOTE_PEER, NS_CERTKEY_MULTIPLE,
+                              tlsdata->their_identity);
+
+        if (their_cert)
+            tlsdata->their_fingerprint =
+                netsnmp_openssl_cert_get_fingerprint(their_cert->ocert, -1);
+    }
+
+    if (!tlsdata->their_fingerprint && try_default) {
+        /* try for the default instead */
+        netsnmp_cert *their_cert;
+        their_cert =
+            netsnmp_cert_find(NS_CERT_REMOTE_PEER, NS_CERTKEY_DEFAULT,
+                              NULL);
+
+        if (their_cert)
+            tlsdata->their_fingerprint =
+                netsnmp_openssl_cert_get_fingerprint(their_cert->ocert, -1);
+    }
+    
+    if (tlsdata->their_fingerprint) {
+        netsnmp_fp_lowercase_and_strip_colon(tlsdata->their_fingerprint);
+        if (0 != strcmp(tlsdata->their_fingerprint, fingerprint)) {
+            snmp_log(LOG_ERR, "The fingerprint from the remote side's certificate didn't match the expected\n");
+            snmp_log(LOG_ERR, "  got %s, expected %s\n",
+                     fingerprint, tlsdata->their_fingerprint);
+            free(fingerprint);
+            return FAILED_FINGERPRINT_VERIFY;
+        }
+    } else {
+        DEBUGMSGTL(("tls_x509:verify", "No fingerprint for the remote entity available to verify\n"));
+        free(fingerprint);
+        return NO_FINGERPRINT_AVAILABLE;
+    }
+
+    free(fingerprint);
+    return VERIFIED_FINGERPRINT;
+}
+
+/* this is called after the connection on the client side by us to check
+   other aspects about the connection */
+int
+netsnmp_tlsbase_verify_server_cert(SSL *ssl, _netsnmpTLSBaseData *tlsdata) {
+    /* XXX */
+    X509            *remote_cert;
+    char            *check_name;
+    int              ret;
+    
+    netsnmp_assert_or_return(ssl != NULL, SNMPERR_GENERR);
+    netsnmp_assert_or_return(tlsdata != NULL, SNMPERR_GENERR);
+    
+    if (NULL == (remote_cert = SSL_get_peer_certificate(ssl))) {
+        /* no peer cert */
+        DEBUGMSGTL(("tls_x509:verify",
+                    "remote connection provided no certificate (yet)\n"));
+        return SNMPERR_TLS_NO_CERTIFICATE;
+    }
+
+    /* make sure that the fingerprint matches */
+    ret = _netsnmp_tlsbase_verify_remote_fingerprint(remote_cert, tlsdata, 1);
+    switch(ret) {
+    case VERIFIED_FINGERPRINT:
+        return SNMPERR_SUCCESS;
+
+    case FAILED_FINGERPRINT_VERIFY:
+        return SNMPERR_GENERR;
+
+    case NO_FINGERPRINT_AVAILABLE:
+        if (tlsdata->their_hostname && tlsdata->their_hostname[0] != '\0') {
+            GENERAL_NAMES      *onames;
+            const GENERAL_NAME *oname = NULL;
+            int                 i, j;
+            int                 count;
+            char                buf[SPRINT_MAX_LEN];
+            int                 is_wildcarded = 0;
+            char               *compare_to;
+
+            /* see if the requested hostname has a wildcard prefix */
+            if (strncmp(tlsdata->their_hostname, "*.", 2) == 0) {
+                is_wildcarded = 1;
+                compare_to = tlsdata->their_hostname + 2;
+            } else {
+                compare_to = tlsdata->their_hostname;
+            }
+
+            /* if the hostname we were expecting to talk to matches
+               the cert, then we can accept this connection. */
+
+            /* check against the DNS subjectAltName */
+            onames = (GENERAL_NAMES *)X509_get_ext_d2i(remote_cert,
+                                                       NID_subject_alt_name,
+                                                       NULL, NULL );
+            if (NULL != onames) {
+                count = sk_GENERAL_NAME_num(onames);
+
+                for (i=0 ; i <count; ++i)  {
+                    oname = sk_GENERAL_NAME_value(onames, i);
+                    if (GEN_DNS == oname->type) {
+
+                        /* get the value */
+                        ASN1_STRING_to_UTF8((unsigned char**)&check_name,
+                                            oname->d.ia5);
+
+                        /* convert to lowercase for comparisons */
+                        for (j = 0 ;
+                             *check_name && j < sizeof(buf)-1;
+                             ++check_name, ++j ) {
+                            if (isascii(*check_name))
+                                buf[j] = tolower(0xFF & *check_name);
+                        }
+                        if (j < sizeof(buf))
+                            buf[j] = '\0';
+                        check_name = buf;
+                        
+                        if (is_wildcarded) {
+                            /* we *only* allow passing till the first '.' */
+                            /* ie *.example.com can't match a.b.example.com */
+                            check_name = strchr(check_name, '.') + 1;
+                        }
+
+                        DEBUGMSGTL(("tls_x509:verify", "checking subjectAltname of dns:%s\n", check_name));
+                        if (strcmp(compare_to, check_name) == 0) {
+
+                            DEBUGMSGTL(("tls_x509:verify", "Successful match on a subjectAltname of dns:%s\n", check_name));
+                            return SNMPERR_SUCCESS;
+                        }
+                    }
+                }
+            }
+
+            /* check the common name for a match */
+            check_name =
+                netsnmp_openssl_cert_get_commonName(remote_cert, NULL, NULL);
+
+            if (is_wildcarded) {
+                /* we *only* allow passing till the first '.' */
+                /* ie *.example.com can't match a.b.example.com */
+                check_name = strchr(check_name, '.') + 1;
+            }
+
+            if (strcmp(compare_to, check_name) == 0) {
+                DEBUGMSGTL(("tls_x509:verify", "Successful match on a common name of %s\n", check_name));
+                return SNMPERR_SUCCESS;
+            }
+
+            snmp_log(LOG_ERR, "No matching names in the certificate to match the expected %s\n", tlsdata->their_hostname);
+            return SNMPERR_GENERR;
+
+        }
+        /* XXX: check for hostname match instead */
+        snmp_log(LOG_ERR, "Can not verify a remote server identity without configuration\n");
+        return SNMPERR_GENERR;
+    }
+    DEBUGMSGTL(("tls_x509:verify", "shouldn't get here\n"));
+    return SNMPERR_GENERR;
+}
+
+/* this is called after the connection on the server side by us to check
+   the validity of the client's certificate */
+int
+netsnmp_tlsbase_verify_client_cert(SSL *ssl, _netsnmpTLSBaseData *tlsdata) {
+    /* XXX */
+    X509            *remote_cert;
+    int ret;
+
+    /* RFC5953: section 5.3.2, paragraph 1:
+       A (D)TLS server should accept new session connections from any client
+       that it is able to verify the client's credentials for.  This is done
+       by authenticating the client's presented certificate through a
+       certificate path validation process (e.g.  [RFC5280]) or through
+       certificate fingerprint verification using fingerprints configured in
+       the snmpTlstmCertToTSNTable.  Afterward the server will determine the
+       identity of the remote entity using the following procedures.
+    */
+    /* Implementation notes:
+       + path validation is taken care of during the openssl verify
+         routines, our part of which is hanlded in verify_callback
+         above.
+       + fingerprint verification happens below.
+    */
+    if (NULL == (remote_cert = SSL_get_peer_certificate(ssl))) {
+        /* no peer cert */
+        DEBUGMSGTL(("tls_x509:verify",
+                    "remote connection provided no certificate (yet)\n"));
+        return SNMPERR_TLS_NO_CERTIFICATE;
+    }
+
+    /* we don't force a known remote fingerprint for a client since we
+       will accept any certificate we know about (and later derive the
+       securityName from it and apply access control) */
+    ret = _netsnmp_tlsbase_verify_remote_fingerprint(remote_cert, tlsdata, 0);
+    switch(ret) {
+    case FAILED_FINGERPRINT_VERIFY:
+        DEBUGMSGTL(("tls_x509:verify", "failed to verify a client fingerprint\n"));
+        return SNMPERR_GENERR;
+
+    case NO_FINGERPRINT_AVAILABLE:
+        DEBUGMSGTL(("tls_x509:verify", "no known fingerprint available (not a failure case)\n"));
+        return SNMPERR_SUCCESS;
+
+    case VERIFIED_FINGERPRINT:
+        DEBUGMSGTL(("tls_x509:verify", "Verified client fingerprint\n"));
+        tlsdata->flags |= NETSNMP_TLSBASE_CERT_FP_VERIFIED;
+        return SNMPERR_SUCCESS;
+    }
+
+    DEBUGMSGTL(("tls_x509:verify", "shouldn't get here\n"));
+    return SNMPERR_GENERR;
+}
+
+/* this is called after the connection on the server side by us to
+   check other aspects about the connection and obtain the
+   securityName from the remote certificate. */
+int
+netsnmp_tlsbase_extract_security_name(SSL *ssl, _netsnmpTLSBaseData *tlsdata) {
+    netsnmp_container  *chain_maps;
+    netsnmp_cert_map   *cert_map, *peer_cert;
+    netsnmp_iterator  *itr;
+    int                 rc;
+
+    netsnmp_assert_or_return(ssl != NULL, SNMPERR_GENERR);
+    netsnmp_assert_or_return(tlsdata != NULL, SNMPERR_GENERR);
+
+    if (NULL == (chain_maps = netsnmp_openssl_get_cert_chain(ssl)))
+        return SNMPERR_GENERR;
+    /*
+     * map fingerprints to mapping entries
+     */
+    rc = netsnmp_cert_get_secname_maps(chain_maps);
+    if ((-1 == rc) || (CONTAINER_SIZE(chain_maps) == 0)) {
+        netsnmp_cert_map_container_free(chain_maps);
+        return SNMPERR_GENERR;
+    }
+
+    /*
+     * change container to sorted (by clearing unsorted option), then
+     * iterate over it until we find a map that returns a secname.
+     */
+    CONTAINER_SET_OPTIONS(chain_maps, 0, rc);
+    itr = CONTAINER_ITERATOR(chain_maps);
+    if (NULL == itr) {
+        snmp_log(LOG_ERR, "could not get iterator for secname fingerprints\n");
+        netsnmp_cert_map_container_free(chain_maps);
+        return SNMPERR_GENERR;
+    }
+    peer_cert = cert_map = ITERATOR_FIRST(itr);
+    for( ; !tlsdata->securityName && cert_map; cert_map = ITERATOR_NEXT(itr))
+        tlsdata->securityName =
+            netsnmp_openssl_extract_secname(cert_map, peer_cert);
+    ITERATOR_RELEASE(itr);
+
+    netsnmp_cert_map_container_free(chain_maps);
+       
+    return (tlsdata->securityName ? SNMPERR_SUCCESS : SNMPERR_GENERR);
+}
+
+int
+_trust_this_cert(SSL_CTX *the_ctx, char *certspec) {
+    netsnmp_cert *trustcert;
+
+    DEBUGMSGTL(("sslctx_client", "Trying to load a trusted certificate: %s\n",
+                certspec));
+
+    /* load this identifier into the trust chain */
+    trustcert = netsnmp_cert_find(NS_CERT_CA,
+                                  NS_CERTKEY_MULTIPLE,
+                                  certspec);
+    if (!trustcert)
+        trustcert = netsnmp_cert_find(NS_CERT_REMOTE_PEER,
+                                      NS_CERTKEY_MULTIPLE,
+                                      certspec);
+    if (!trustcert)
+        LOGANDDIE("failed to find requested certificate to trust");
+        
+    /* Add the certificate to the context */
+    if (netsnmp_cert_trust_ca(the_ctx, trustcert) != SNMPERR_SUCCESS)
+        LOGANDDIE("failed to load trust certificate");
+
+    return 1;
+}
+
+void
+_load_trusted_certs(SSL_CTX *the_ctx) {
+    netsnmp_container *trusted_certs = NULL;
+    netsnmp_iterator  *trusted_cert_iterator = NULL;
+    char *fingerprint;
+
+    trusted_certs = netsnmp_cert_get_trustlist();
+    trusted_cert_iterator = CONTAINER_ITERATOR(trusted_certs);
+    if (trusted_cert_iterator) {
+        for (fingerprint = (char *) ITERATOR_FIRST(trusted_cert_iterator);
+             fingerprint; fingerprint = ITERATOR_NEXT(trusted_cert_iterator)) {
+            if (!_trust_this_cert(the_ctx, fingerprint))
+                snmp_log(LOG_ERR, "failed to load trust cert: %s\n",
+                         fingerprint);
+        }
+        ITERATOR_RELEASE(trusted_cert_iterator);
+    }
+}    
+
+SSL_CTX *
+_sslctx_common_setup(SSL_CTX *the_ctx, _netsnmpTLSBaseData *tlsbase) {
+    char         *crlFile;
+    char         *cipherList;
+    X509_LOOKUP  *lookup;
+    X509_STORE   *cert_store = NULL;
+
+    _load_trusted_certs(the_ctx);
+
+    /* add in the CRLs if available */
+
+    crlFile = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                    NETSNMP_DS_LIB_X509_CRL_FILE);
+    if (NULL != crlFile) {
+        cert_store = SSL_CTX_get_cert_store(the_ctx);
+        DEBUGMSGTL(("sslctx_client", "loading CRL: %s\n", crlFile));
+        if (!cert_store)
+            LOGANDDIE("failed to find certificate store");
+        if (!(lookup = X509_STORE_add_lookup(cert_store, X509_LOOKUP_file())))
+            LOGANDDIE("failed to create a lookup function for the CRL file");
+        if (X509_load_crl_file(lookup, crlFile, X509_FILETYPE_PEM) != 1)
+            LOGANDDIE("failed to load the CRL file");
+        /* tell openssl to check CRLs */
+        X509_STORE_set_flags(cert_store,
+                             X509_V_FLAG_CRL_CHECK | X509_V_FLAG_CRL_CHECK_ALL);
+    }
+
+    cipherList = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                       NETSNMP_DS_LIB_TLS_ALGORITMS);
+    if (NULL != cipherList) {
+        if (SSL_CTX_set_cipher_list(the_ctx, cipherList) != 1)
+            LOGANDDIE("failed to set the cipher list to the requested value");
+        else
+            snmp_log(LOG_INFO,"set SSL cipher list to '%s'\n", cipherList);
+    }
+    return the_ctx;
+}
+
+SSL_CTX *
+sslctx_client_setup(const SSL_METHOD *method, _netsnmpTLSBaseData *tlsbase) {
+    netsnmp_cert *id_cert, *peer_cert;
+    SSL_CTX      *the_ctx;
+
+    /***********************************************************************
+     * Set up the client context
+     */
+    the_ctx = SSL_CTX_new(NETSNMP_REMOVE_CONST(SSL_METHOD *, method));
+    if (!the_ctx) {
+        snmp_log(LOG_ERR, "ack: %p\n", the_ctx);
+        LOGANDDIE("can't create a new context");
+    }
+    SSL_CTX_set_read_ahead (the_ctx, 1); /* Required for DTLS */
+        
+    SSL_CTX_set_verify(the_ctx,
+                       SSL_VERIFY_PEER|
+                       SSL_VERIFY_FAIL_IF_NO_PEER_CERT|
+                       SSL_VERIFY_CLIENT_ONCE,
+                       &verify_callback);
+
+    if (tlsbase->our_identity) {
+        DEBUGMSGTL(("sslctx_client", "looking for local id: %s\n", tlsbase->our_identity));
+        id_cert = netsnmp_cert_find(NS_CERT_IDENTITY, NS_CERTKEY_MULTIPLE,
+                                    tlsbase->our_identity);
+    } else {
+        DEBUGMSGTL(("sslctx_client", "looking for default local id: %s\n", tlsbase->our_identity));
+        id_cert = netsnmp_cert_find(NS_CERT_IDENTITY, NS_CERTKEY_DEFAULT, NULL);
+    }
+
+    if (!id_cert)
+        LOGANDDIE ("error finding client identity keys");
+
+    if (!id_cert->key || !id_cert->key->okey)
+        LOGANDDIE("failed to load private key");
+
+    DEBUGMSGTL(("sslctx_client", "using public key: %s\n",
+                id_cert->info.filename));
+    DEBUGMSGTL(("sslctx_client", "using private key: %s\n",
+                id_cert->key->info.filename));
+
+    if (SSL_CTX_use_certificate(the_ctx, id_cert->ocert) <= 0)
+        LOGANDDIE("failed to set the certificate to use");
+
+    if (SSL_CTX_use_PrivateKey(the_ctx, id_cert->key->okey) <= 0)
+        LOGANDDIE("failed to set the private key to use");
+
+    if (!SSL_CTX_check_private_key(the_ctx))
+        LOGANDDIE("public and private keys incompatible");
+
+    if (tlsbase->their_identity)
+        peer_cert = netsnmp_cert_find(NS_CERT_REMOTE_PEER,
+                                      NS_CERTKEY_MULTIPLE,
+                                      tlsbase->their_identity);
+    else
+        peer_cert = netsnmp_cert_find(NS_CERT_REMOTE_PEER, NS_CERTKEY_DEFAULT,
+                                      NULL);
+    if (peer_cert) {
+        DEBUGMSGTL(("sslctx_client", "server's expected public key: %s\n",
+                    peer_cert ? peer_cert->info.filename : "none"));
+
+        /* Trust the expected certificate */
+        if (netsnmp_cert_trust_ca(the_ctx, peer_cert) != SNMPERR_SUCCESS)
+            LOGANDDIE ("failed to set verify paths");
+    }
+
+    /* trust a certificate (possibly a CA) aspecifically passed in */
+    if (tlsbase->trust_cert) {
+        if (!_trust_this_cert(the_ctx, tlsbase->trust_cert))
+            return 0;
+    }
+
+    return _sslctx_common_setup(the_ctx, tlsbase);
+}
+
+SSL_CTX *
+sslctx_server_setup(const SSL_METHOD *method) {
+    netsnmp_cert *id_cert;
+
+    /***********************************************************************
+     * Set up the server context
+     */
+    /* setting up for ssl */
+    SSL_CTX *the_ctx = SSL_CTX_new(NETSNMP_REMOVE_CONST(SSL_METHOD *, method));
+    if (!the_ctx) {
+        LOGANDDIE("can't create a new context");
+    }
+
+    id_cert = netsnmp_cert_find(NS_CERT_IDENTITY, NS_CERTKEY_DEFAULT,
+                                (void*)1);
+    if (!id_cert)
+        LOGANDDIE ("error finding server identity keys");
+
+    if (!id_cert->key || !id_cert->key->okey)
+        LOGANDDIE("failed to load private key");
+
+    DEBUGMSGTL(("sslctx_server", "using public key: %s\n",
+                id_cert->info.filename));
+    DEBUGMSGTL(("sslctx_server", "using private key: %s\n",
+                id_cert->key->info.filename));
+
+    if (SSL_CTX_use_certificate(the_ctx, id_cert->ocert) <= 0)
+        LOGANDDIE("failed to set the certificate to use");
+
+    if (SSL_CTX_use_PrivateKey(the_ctx, id_cert->key->okey) <= 0)
+        LOGANDDIE("failed to set the private key to use");
+
+    if (!SSL_CTX_check_private_key(the_ctx))
+        LOGANDDIE("public and private keys incompatible");
+
+    SSL_CTX_set_read_ahead(the_ctx, 1); /* XXX: DTLS only? */
+
+    SSL_CTX_set_verify(the_ctx,
+                       SSL_VERIFY_PEER|
+                       SSL_VERIFY_FAIL_IF_NO_PEER_CERT|
+                       SSL_VERIFY_CLIENT_ONCE,
+                       &verify_callback);
+
+    return _sslctx_common_setup(the_ctx, NULL);
+}
+
+int
+netsnmp_tlsbase_config(struct netsnmp_transport_s *t, const char *token, const char *value) {
+    _netsnmpTLSBaseData *tlsdata;
+
+    netsnmp_assert_or_return(t != NULL, -1);
+    netsnmp_assert_or_return(t->data != NULL, -1);
+
+    tlsdata = t->data;
+
+    if (strcmp(token, "our_identity") == 0) {
+        SNMP_FREE(tlsdata->our_identity);
+        tlsdata->our_identity = strdup(value);
+        DEBUGMSGT(("tls:config","our identity %s\n", value));
+    }
+
+    if (strcmp(token, "their_identity") == 0) {
+        SNMP_FREE(tlsdata->their_identity);
+        tlsdata->their_identity = strdup(value);
+        DEBUGMSGT(("tls:config","their identity %s\n", value));
+    }
+
+    if (strcmp(token, "their_hostname") == 0) {
+        SNMP_FREE(tlsdata->their_hostname);
+        tlsdata->their_hostname = strdup(value);
+    }
+
+    if (strcmp(token, "trust_cert") == 0) {
+        SNMP_FREE(tlsdata->trust_cert);
+        tlsdata->trust_cert = strdup(value);
+    }
+    
+    return SNMPERR_SUCCESS;
+}
+
+int
+netsnmp_tlsbase_session_init(struct netsnmp_transport_s *transport,
+                             struct snmp_session *sess) {
+    /* the default security model here should be TSM; most other
+       things won't work with TLS because we'll throw out the packet
+       if it doesn't have a proper tmStateRef (and onyl TSM generates
+       this at the moment */
+    if (!(transport->flags & NETSNMP_TRANSPORT_FLAG_LISTEN)) {
+        if (sess->securityModel == SNMP_DEFAULT_SECMODEL) {
+            sess->securityModel = SNMP_SEC_MODEL_TSM;
+        } else if (sess->securityModel != SNMP_SEC_MODEL_TSM) {
+            sess->securityModel = SNMP_SEC_MODEL_TSM;
+            snmp_log(LOG_ERR, "A security model other than TSM is being used with (D)TLS; using TSM anyways\n");
+        }
+
+        if (NULL == sess->securityName) {
+            /* client side doesn't need a real securityName */
+            /* XXX: call-home issues require them to set one for VACM; but
+               we don't do callhome yet */
+            sess->securityName = strdup("__BOGUS__");
+            sess->securityNameLen = strlen(sess->securityName);
+        }
+
+        if (sess->version != SNMP_VERSION_3) {
+            sess->version = SNMP_VERSION_3;
+            snmp_log(LOG_ERR, "A SNMP version other than 3 was requested with (D)TLS; using 3 anyways\n");
+        }
+
+        if (sess->securityLevel <= 0) {
+            sess->securityLevel = SNMP_SEC_LEVEL_AUTHPRIV;
+        }
+    }
+    return SNMPERR_SUCCESS;
+}
+
+static int have_done_bootstrap = 0;
+
+static int
+tls_bootstrap(int majorid, int minorid, void *serverarg, void *clientarg) {
+    char indexname[] = "_netsnmp_verify_info";
+
+    /* don't do this more than once */
+    if (have_done_bootstrap)
+        return 0;
+    have_done_bootstrap = 1;
+
+    netsnmp_certs_load();
+
+    openssl_local_index =
+        SSL_get_ex_new_index(0, indexname, NULL, NULL, NULL);
+
+    return 0;
+}
+
+int
+tls_get_verify_info_index() {
+    return openssl_local_index;
+}
+
+void
+netsnmp_tlsbase_ctor(void) {
+
+    /* bootstrap ssl since we'll need it */
+    netsnmp_init_openssl();
+
+    /* the private client cert to authenticate with */
+    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "extraX509SubDir",
+                               NETSNMP_DS_LIBRARY_ID,
+                               NETSNMP_DS_LIB_CERT_EXTRA_SUBDIR);
+
+    /* Do we have a CRL list? */
+    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "x509CRLFile",
+                               NETSNMP_DS_LIBRARY_ID,
+                               NETSNMP_DS_LIB_X509_CRL_FILE);
+
+    /* What TLS algorithms should be use */
+    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "tlsAlgorithms",
+                               NETSNMP_DS_LIBRARY_ID,
+                               NETSNMP_DS_LIB_TLS_ALGORITMS);
+
+    /*
+     * for the client
+     */
+
+    /* the public client cert to authenticate with */
+    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "clientCert",
+                               NETSNMP_DS_LIBRARY_ID,
+                               NETSNMP_DS_LIB_X509_CLIENT_PUB);
+    /* XXX: this one needs to go away before 5.6 final */
+    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "defX509ClientPub",
+                               NETSNMP_DS_LIBRARY_ID,
+                               NETSNMP_DS_LIB_X509_CLIENT_PUB);
+
+    /*
+     * for the server
+     */
+
+    /* The X509 server key to use */
+    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "serverCert",
+                               NETSNMP_DS_LIBRARY_ID,
+                               NETSNMP_DS_LIB_X509_SERVER_PUB);
+    /* XXX: this one needs to go away before 5.6 final */
+    netsnmp_ds_register_config(ASN_OCTET_STR, "snmp", "defX509ServerPub",
+                               NETSNMP_DS_LIBRARY_ID,
+                               NETSNMP_DS_LIB_X509_SERVER_PUB);
+
+    /*
+     * register our boot-strapping needs
+     */
+    snmp_register_callback(SNMP_CALLBACK_LIBRARY,
+			   SNMP_CALLBACK_POST_PREMIB_READ_CONFIG,
+			   tls_bootstrap, NULL);
+
+}
+
+_netsnmpTLSBaseData *
+netsnmp_tlsbase_allocate_tlsdata(netsnmp_transport *t, int isserver) {
+
+    _netsnmpTLSBaseData *tlsdata;
+
+    if (NULL == t)
+        return NULL;
+
+    /* allocate our TLS specific data */
+    tlsdata = SNMP_MALLOC_TYPEDEF(_netsnmpTLSBaseData);
+    if (NULL == tlsdata) {
+        SNMP_FREE(t);
+        return NULL;
+    }
+
+    if (!isserver)
+        tlsdata->flags |= NETSNMP_TLSBASE_IS_CLIENT;
+
+    return tlsdata;
+}
+
+void netsnmp_tlsbase_free_tlsdata(_netsnmpTLSBaseData *tlsbase) {
+    if (!tlsbase)
+        return;
+
+    DEBUGMSGTL(("tlsbase","Freeing TLS Base data for a session\n"));
+
+    if (tlsbase->ssl)
+        SSL_free(tlsbase->ssl);
+
+    if (tlsbase->ssl_context)
+        SSL_CTX_free(tlsbase->ssl_context);
+   /* don't free the accept_bio since it's the parent bio */
+    /*
+    if (tlsbase->accept_bio)
+        BIO_free(tlsbase->accept_bio);
+    */
+    /* and this is freed by the SSL shutdown */
+    /* 
+    if (tlsbase->accepted_bio)
+      BIO_free(tlsbase->accept_bio);
+    */
+
+    /* free the config data */
+    SNMP_FREE(tlsbase->securityName);
+    SNMP_FREE(tlsbase->addr_string);
+    SNMP_FREE(tlsbase->our_identity);
+    SNMP_FREE(tlsbase->their_identity);
+    SNMP_FREE(tlsbase->their_fingerprint);
+    SNMP_FREE(tlsbase->their_hostname);
+    SNMP_FREE(tlsbase->trust_cert);
+
+    /* free the base itself */
+    SNMP_FREE(tlsbase);
+}
+
+int netsnmp_tlsbase_wrapup_recv(netsnmp_tmStateReference *tmStateRef,
+                                _netsnmpTLSBaseData *tlsdata,
+                                void **opaque, int *olength) {
+    int no_auth, no_priv;
+
+    if (NULL == tlsdata)
+        return SNMPERR_GENERR;
+
+    /* RFC5953 Section 5.1.2 step 2: tmSecurityLevel */
+    /*
+     * Don't accept null authentication. Null encryption ok.
+     *
+     * XXX: this should actually check for a configured list of encryption
+     *      algorithms to map to NOPRIV, but for the moment we'll
+     *      accept any encryption alogrithms that openssl is using.
+     */
+    netsnmp_openssl_null_checks(tlsdata->ssl, &no_auth, &no_priv);
+    if (no_auth == 1) { /* null/unknown authentication */
+        /* xxx-rks: snmp_increment_statistic(STAT_???); */
+        snmp_log(LOG_ERR, "tls connection with NULL authentication\n");
+        SNMP_FREE(tmStateRef);
+        return SNMPERR_GENERR;
+    }
+    else if (no_priv == 1) /* null/unknown encryption */
+        tmStateRef->transportSecurityLevel = SNMP_SEC_LEVEL_AUTHNOPRIV;
+    else
+        tmStateRef->transportSecurityLevel = SNMP_SEC_LEVEL_AUTHPRIV;
+    DEBUGMSGTL(("tls:secLevel", "SecLevel %d\n",
+                tmStateRef->transportSecurityLevel));
+
+    /* use x509 cert to do lookup to secname if DNE in cachep yet */
+
+    /* RFC5953: section 5.3.2, paragraph 2:
+       The (D)TLS server identifies the authenticated identity from the
+       (D)TLS client's principal certificate using configuration information
+       from the snmpTlstmCertToTSNTable mapping table.  The (D)TLS server
+       MUST request and expect a certificate from the client and MUST NOT
+       accept SNMP messages over the (D)TLS connection until the client has
+       sent a certificate and it has been authenticated.  The resulting
+       derived tmSecurityName is recorded in the tmStateReference cache as
+       tmSecurityName.  The details of the lookup process are fully
+       described in the DESCRIPTION clause of the snmpTlstmCertToTSNTable
+       MIB object.  If any verification fails in any way (for example
+       because of failures in cryptographic verification or because of the
+       lack of an appropriate row in the snmpTlstmCertToTSNTable) then the
+       session establishment MUST fail, and the
+       snmpTlstmSessionInvalidClientCertificates object is incremented.  If
+       the session can not be opened for any reason at all, including
+       cryptographic verification failures, then the
+       snmpTlstmSessionOpenErrors counter is incremented and processing
+       stops.
+    */
+
+    if (!tlsdata->securityName) {
+        netsnmp_tlsbase_extract_security_name(tlsdata->ssl, tlsdata);
+        if (NULL != tlsdata->securityName) {
+            DEBUGMSGTL(("tls", "set SecName to: %s\n", tlsdata->securityName));
+        } else {
+	    snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONINVALIDCLIENTCERTIFICATES);
+	    snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONOPENERRORS);
+            SNMP_FREE(tmStateRef);
+            return SNMPERR_GENERR;
+        }
+    }
+
+    /* RFC5953 Section 5.1.2 step 2: tmSecurityName */
+    /* XXX: detect and throw out overflow secname sizes rather
+       than truncating. */
+    strlcpy(tmStateRef->securityName, tlsdata->securityName,
+            sizeof(tmStateRef->securityName));
+    tmStateRef->securityNameLen = strlen(tmStateRef->securityName);
+
+    /* RFC5953 Section 5.1.2 step 2: tmSessionID */
+    /* use our TLSData pointer as the session ID */
+    memcpy(tmStateRef->sessionID, &tlsdata, sizeof(netsnmp_tmStateReference *));
+
+    /* save the tmStateRef in our special pointer */
+    *opaque = tmStateRef;
+    *olength = sizeof(netsnmp_tmStateReference);
+
+    return SNMPERR_SUCCESS;
+}
+
+const char * _x509_get_error(int x509failvalue, const char *location) {
+    static const char *reason = NULL;
+    
+    /* XXX: use this instead: X509_verify_cert_error_string(err) */
+
+    switch (x509failvalue) {
+    case X509_V_OK:
+        reason = "X509_V_OK";
+        break;
+    case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT:
+        reason = "X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT";
+        break;
+    case X509_V_ERR_UNABLE_TO_GET_CRL:
+        reason = "X509_V_ERR_UNABLE_TO_GET_CRL";
+        break;
+    case X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE:
+        reason = "X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE";
+        break;
+    case X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE:
+        reason = "X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE";
+        break;
+    case X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY:
+        reason = "X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY";
+        break;
+    case X509_V_ERR_CERT_SIGNATURE_FAILURE:
+        reason = "X509_V_ERR_CERT_SIGNATURE_FAILURE";
+        break;
+    case X509_V_ERR_CRL_SIGNATURE_FAILURE:
+        reason = "X509_V_ERR_CRL_SIGNATURE_FAILURE";
+        break;
+    case X509_V_ERR_CERT_NOT_YET_VALID:
+        reason = "X509_V_ERR_CERT_NOT_YET_VALID";
+        break;
+    case X509_V_ERR_CERT_HAS_EXPIRED:
+        reason = "X509_V_ERR_CERT_HAS_EXPIRED";
+        break;
+    case X509_V_ERR_CRL_NOT_YET_VALID:
+        reason = "X509_V_ERR_CRL_NOT_YET_VALID";
+        break;
+    case X509_V_ERR_CRL_HAS_EXPIRED:
+        reason = "X509_V_ERR_CRL_HAS_EXPIRED";
+        break;
+    case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD:
+        reason = "X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD";
+        break;
+    case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD:
+        reason = "X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD";
+        break;
+    case X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD:
+        reason = "X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD";
+        break;
+    case X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD:
+        reason = "X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD";
+        break;
+    case X509_V_ERR_OUT_OF_MEM:
+        reason = "X509_V_ERR_OUT_OF_MEM";
+        break;
+    case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
+        reason = "X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT";
+        break;
+    case X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN:
+        reason = "X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN";
+        break;
+    case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY:
+        reason = "X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY";
+        break;
+    case X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE:
+        reason = "X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE";
+        break;
+    case X509_V_ERR_CERT_CHAIN_TOO_LONG:
+        reason = "X509_V_ERR_CERT_CHAIN_TOO_LONG";
+        break;
+    case X509_V_ERR_CERT_REVOKED:
+        reason = "X509_V_ERR_CERT_REVOKED";
+        break;
+    case X509_V_ERR_INVALID_CA:
+        reason = "X509_V_ERR_INVALID_CA";
+        break;
+    case X509_V_ERR_PATH_LENGTH_EXCEEDED:
+        reason = "X509_V_ERR_PATH_LENGTH_EXCEEDED";
+        break;
+    case X509_V_ERR_INVALID_PURPOSE:
+        reason = "X509_V_ERR_INVALID_PURPOSE";
+        break;
+    case X509_V_ERR_CERT_UNTRUSTED:
+        reason = "X509_V_ERR_CERT_UNTRUSTED";
+        break;
+    case X509_V_ERR_CERT_REJECTED:
+        reason = "X509_V_ERR_CERT_REJECTED";
+        break;
+    case X509_V_ERR_SUBJECT_ISSUER_MISMATCH:
+        reason = "X509_V_ERR_SUBJECT_ISSUER_MISMATCH";
+        break;
+    case X509_V_ERR_AKID_SKID_MISMATCH:
+        reason = "X509_V_ERR_AKID_SKID_MISMATCH";
+        break;
+    case X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH:
+        reason = "X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH";
+        break;
+    case X509_V_ERR_KEYUSAGE_NO_CERTSIGN:
+        reason = "X509_V_ERR_KEYUSAGE_NO_CERTSIGN";
+        break;
+    case X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER:
+        reason = "X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER";
+        break;
+    case X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION:
+        reason = "X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION";
+        break;
+    case X509_V_ERR_KEYUSAGE_NO_CRL_SIGN:
+        reason = "X509_V_ERR_KEYUSAGE_NO_CRL_SIGN";
+        break;
+    case X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION:
+        reason = "X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION";
+        break;
+    case X509_V_ERR_INVALID_NON_CA:
+        reason = "X509_V_ERR_INVALID_NON_CA";
+        break;
+    case X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED:
+        reason = "X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED";
+        break;
+    case X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE:
+        reason = "X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE";
+        break;
+    case X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED:
+        reason = "X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED";
+        break;
+#ifdef X509_V_ERR_INVALID_EXTENSION /* not avail on darwin */
+    case X509_V_ERR_INVALID_EXTENSION:
+        reason = "X509_V_ERR_INVALID_EXTENSION";
+        break;
+#endif
+#ifdef X509_V_ERR_INVALID_POLICY_EXTENSION /* not avail on darwin */
+    case X509_V_ERR_INVALID_POLICY_EXTENSION:
+        reason = "X509_V_ERR_INVALID_POLICY_EXTENSION";
+        break;
+#endif
+#ifdef X509_V_ERR_NO_EXPLICIT_POLICY /* not avail on darwin */
+    case X509_V_ERR_NO_EXPLICIT_POLICY:
+        reason = "X509_V_ERR_NO_EXPLICIT_POLICY";
+        break;
+#endif
+#ifdef X509_V_ERR_UNNESTED_RESOURCE /* not avail on darwin */
+    case X509_V_ERR_UNNESTED_RESOURCE:
+        reason = "X509_V_ERR_UNNESTED_RESOURCE";
+        break;
+#endif
+    case X509_V_ERR_APPLICATION_VERIFICATION:
+        reason = "X509_V_ERR_APPLICATION_VERIFICATION";
+        break;
+    default:
+        reason = "unknown failure code";
+    }
+
+    return reason;
+}
+
+void _openssl_log_error(int rc, SSL *con, const char *location) {
+    const char     *reason, *file, *data;
+    unsigned long   numerical_reason;
+    int             flags, line;
+
+    snmp_log(LOG_ERR, "---- OpenSSL Related Errors: ----\n");
+
+    /* SSL specific errors */
+    if (con) {
+
+        int sslnum = SSL_get_error(con, rc);
+
+        switch(sslnum) {
+        case SSL_ERROR_NONE:
+            reason = "SSL_ERROR_NONE";
+            break;
+
+        case SSL_ERROR_SSL:
+            reason = "SSL_ERROR_SSL";
+            break;
+
+        case SSL_ERROR_WANT_READ:
+            reason = "SSL_ERROR_WANT_READ";
+            break;
+
+        case SSL_ERROR_WANT_WRITE:
+            reason = "SSL_ERROR_WANT_WRITE";
+            break;
+
+        case SSL_ERROR_WANT_X509_LOOKUP:
+            reason = "SSL_ERROR_WANT_X509_LOOKUP";
+            break;
+
+        case SSL_ERROR_SYSCALL:
+            reason = "SSL_ERROR_SYSCALL";
+            snmp_log(LOG_ERR, "TLS error: %s: rc=%d, sslerror = %d (%s): system_error=%d (%s)\n",
+                     location, rc, sslnum, reason, errno, strerror(errno));
+            snmp_log(LOG_ERR, "TLS Error: %s\n",
+                     ERR_reason_error_string(ERR_get_error()));
+            return;
+
+        case SSL_ERROR_ZERO_RETURN:
+            reason = "SSL_ERROR_ZERO_RETURN";
+            break;
+
+        case SSL_ERROR_WANT_CONNECT:
+            reason = "SSL_ERROR_WANT_CONNECT";
+            break;
+
+        case SSL_ERROR_WANT_ACCEPT:
+            reason = "SSL_ERROR_WANT_ACCEPT";
+            break;
+            
+        default:
+            reason = "unknown";
+        }
+
+        snmp_log(LOG_ERR, " TLS error: %s: rc=%d, sslerror = %d (%s)\n",
+                 location, rc, sslnum, reason);
+
+        snmp_log(LOG_ERR, " TLS Error: %s\n",
+                 ERR_reason_error_string(ERR_get_error()));
+
+    }
+
+    /* other errors */
+    while ((numerical_reason =
+            ERR_get_error_line_data(&file, &line, &data, &flags)) != 0) {
+        snmp_log(LOG_ERR, " error: #%lu (file %s, line %d)\n",
+                 numerical_reason, file, line);
+
+        /* if we have a text translation: */
+        if (data && (flags & ERR_TXT_STRING)) {
+            snmp_log(LOG_ERR, "  Textual Error: %s\n", data);
+            /*
+             * per openssl man page: If it has been allocated by
+             * OPENSSL_malloc(), *flags&ERR_TXT_MALLOCED is true.
+             *
+             * arggh... stupid openssl prototype for ERR_get_error_line_data
+             * wants a const char **, but returns something that we might
+             * need to free??
+             */
+            if (flags & ERR_TXT_MALLOCED)
+                OPENSSL_free(NETSNMP_REMOVE_CONST(void *, data));        }
+    }
+    
+    snmp_log(LOG_ERR, "---- End of OpenSSL Errors ----\n");
+}
diff --git a/snmplib/transports/snmpTLSTCPDomain.c b/snmplib/transports/snmpTLSTCPDomain.c
new file mode 100644
index 0000000..86a0fdd
--- /dev/null
+++ b/snmplib/transports/snmpTLSTCPDomain.c
@@ -0,0 +1,1045 @@
+/* Portions of this file are subject to the following copyright(s).  See
+ * the Net-SNMP's COPYING file for more details and other copyrights
+ * that may apply:
+ */
+/* 
+ * See the following web pages for useful documentation on this transport:
+ * http://www.net-snmp.org/wiki/index.php/TUT:Using_TLS
+ * http://www.net-snmp.org/wiki/index.php/Using_DTLS
+ */
+#include <net-snmp/net-snmp-config.h>
+
+#include <net-snmp/library/snmpTLSTCPDomain.h>
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <ctype.h>
+#include <errno.h>
+
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#if HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#if HAVE_SYS_UIO_H
+#include <sys/uio.h>
+#endif
+
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+
+#if HAVE_DMALLOC_H
+#include <dmalloc.h>
+#endif
+
+#include <net-snmp/types.h>
+#include <net-snmp/output_api.h>
+#include <net-snmp/config_api.h>
+#include <net-snmp/library/snmp_assert.h>
+#include <net-snmp/library/snmpIPv4BaseDomain.h>
+#include <net-snmp/library/snmpSocketBaseDomain.h>
+#include <net-snmp/library/snmpTLSBaseDomain.h>
+#include <net-snmp/library/system.h>
+#include <net-snmp/library/tools.h>
+#include <net-snmp/library/cert_util.h>
+#include <net-snmp/library/snmp_openssl.h>
+#include <net-snmp/library/callback.h>
+
+#include "openssl/bio.h"
+#include "openssl/ssl.h"
+#include "openssl/err.h"
+
+#ifndef INADDR_NONE
+#define INADDR_NONE	-1
+#endif
+
+#define WE_ARE_SERVER 0
+#define WE_ARE_CLIENT 1
+
+oid             netsnmpTLSTCPDomain[] = { TRANSPORT_DOMAIN_TLS_TCP_IP };
+size_t          netsnmpTLSTCPDomain_len = OID_LENGTH(netsnmpTLSTCPDomain);
+
+static netsnmp_tdomain tlstcpDomain;
+
+/*
+ * Return a string representing the address in data, or else the "far end"
+ * address if data is NULL.  
+ */
+
+static char *
+netsnmp_tlstcp_fmtaddr(netsnmp_transport *t, void *data, int len)
+{
+    if (NULL == data || 0 == len || 0 == ((char *) data)[0])
+        return strdup("TLSTCP: unknown");
+    else if (len == sizeof(netsnmp_indexed_addr_pair) ||
+             len == sizeof(struct sockaddr_in))
+        return netsnmp_ipv4_fmtaddr("TLSTCP", t, data, len);
+    else {
+        /* an already ascii formatted string */
+        char buf[1024];
+        snprintf(buf, sizeof(buf)-1, "TLSTCP: %s", (char *) data);
+        return strdup(buf);
+    }
+}
+/*
+ * You can write something into opaque that will subsequently get passed back 
+ * to your send function if you like.  For instance, you might want to
+ * remember where a PDU came from, so that you can send a reply there...  
+ */
+
+static int
+netsnmp_tlstcp_copy(netsnmp_transport *oldt, netsnmp_transport *newt)
+{
+    _netsnmpTLSBaseData *oldtlsdata = (_netsnmpTLSBaseData *) oldt->data;
+    _netsnmpTLSBaseData *newtlsdata = (_netsnmpTLSBaseData *) newt->data;
+    oldtlsdata->accepted_bio = NULL;
+    oldtlsdata->ssl = NULL;
+    newtlsdata->ssl_context = NULL;
+    
+    if (oldtlsdata->addr_string)
+        newtlsdata->addr_string = strdup(oldtlsdata->addr_string);
+    if (oldtlsdata->securityName)
+        newtlsdata->securityName = strdup(oldtlsdata->securityName);
+    if (oldtlsdata->our_identity)
+        newtlsdata->our_identity = strdup(oldtlsdata->our_identity);
+    if (oldtlsdata->their_identity)
+        newtlsdata->their_identity = strdup(oldtlsdata->their_identity);
+    if (oldtlsdata->their_fingerprint)
+        newtlsdata->their_fingerprint = strdup(oldtlsdata->their_fingerprint);
+    if (oldtlsdata->their_hostname)
+        newtlsdata->their_hostname = strdup(oldtlsdata->their_hostname);
+    if (oldtlsdata->trust_cert)
+        newtlsdata->trust_cert = strdup(oldtlsdata->trust_cert);
+    if (oldtlsdata->remote_addr)
+        memdup((u_char**)&newtlsdata->remote_addr, oldtlsdata->remote_addr,
+               sizeof(netsnmp_indexed_addr_pair));
+
+    return 0;
+}
+
+static int
+netsnmp_tlstcp_recv(netsnmp_transport *t, void *buf, int size,
+                    void **opaque, int *olength)
+{
+    int             rc = -1;
+    netsnmp_tmStateReference *tmStateRef = NULL;
+    _netsnmpTLSBaseData *tlsdata;
+
+    if (NULL == t || t->sock < 0 || NULL == t->data) {
+        snmp_log(LOG_ERR,
+                 "tlstcp received an invalid invocation with missing data\n");
+        DEBUGMSGTL(("tlstcp", "recvfrom fd %d err %d (\"%s\")\n",
+                    (t ? t->sock : -1), errno, strerror(errno)));
+        DEBUGMSGTL(("tlstcp", "  tdata = %p\n", t->data));
+        return -1;
+    }
+        
+    /* RFC5953 Section 5.1.2 step 1:
+    1) Determine the tlstmSessionID for the incoming message. The
+       tlstmSessionID MUST be a unique session identifier for this
+       (D)TLS connection.  The contents and format of this identifier
+       are implementation-dependent as long as it is unique to the
+       session.  A session identifier MUST NOT be reused until all
+       references to it are no longer in use.  The tmSessionID is
+       equal to the tlstmSessionID discussed in Section 5.1.1.
+       tmSessionID refers to the session identifier when stored in the
+       tmStateReference and tlstmSessionID refers to the session
+       identifier when stored in the LCD.  They MUST always be equal
+       when processing a given session's traffic.
+     */
+    /* For this implementation we use the t->data memory pointer as
+       the sessionID.  As it's a pointer to session specific data tied
+       with the transport object we know it'll never be realloated
+       (ie, duplicated) until release by this transport object and is
+       safe to use as a unique session identifier. */
+
+    tlsdata = t->data;
+    if (NULL == tlsdata->ssl) {
+        snmp_log(LOG_ERR,
+                 "tlstcp received an invalid invocation without ssl data\n");
+        return -1;
+    }
+
+    /* RFC5953 Section 5.1.2 step 1, part2:
+     * This part (incrementing the counter) is done in the
+       netsnmp_tlstcp_accept function.
+     */
+
+
+    /* RFC5953 Section 5.1.2 step 2:
+     * Create a tmStateReference cache for the subsequent reference and
+       assign the following values within it:
+
+       tmTransportDomain  = snmpTLSTCPDomain or snmpDTLSUDPDomain as
+                            appropriate.
+
+       tmTransportAddress = The address the message originated from.
+
+       tmSecurityLevel    = The derived tmSecurityLevel for the session,
+                            as discussed in Section 3.1.2 and Section 5.3.
+
+       tmSecurityName     = The fderived tmSecurityName for the session as
+                            discussed in Section 5.3.  This value MUST
+                            be constant during the lifetime of the
+                            session.
+
+       tmSessionID        = The tlstmSessionID described in step 1 above.
+     */
+
+    /* Implementation notes:
+     * - The tmTransportDomain is represented by the transport object
+     * - The tmpSessionID is represented by the tlsdata pointer (as
+         discussed above)
+     * - The following items are handled later in netsnmp_tlsbase_wrapup_recv:
+         - tmSecurityLevel
+         - tmSecurityName
+         - tmSessionID
+    */
+
+    /* create a tmStateRef cache for slow fill-in */
+    tmStateRef = SNMP_MALLOC_TYPEDEF(netsnmp_tmStateReference);
+
+    if (tmStateRef == NULL) {
+        *opaque = NULL;
+        *olength = 0;
+        return -1;
+    }
+
+    /* Set the transportDomain */
+    memcpy(tmStateRef->transportDomain,
+           netsnmpTLSTCPDomain, sizeof(netsnmpTLSTCPDomain[0]) *
+           netsnmpTLSTCPDomain_len);
+    tmStateRef->transportDomainLen = netsnmpTLSTCPDomain_len;
+
+    /* Set the tmTransportAddress */
+    tmStateRef->have_addresses = 1;
+
+    /* RFC5953 Section 5.1.2 step 1:
+     * 3)  The incomingMessage and incomingMessageLength are assigned values
+       from the (D)TLS processing.
+     */
+
+    /* Implementation notes:
+       - incomingMessage       = buf pointer
+       - incomingMessageLength = rc
+    */
+
+    /* read the packet from openssl */
+    do {
+        rc = SSL_read(tlsdata->ssl, buf, size);
+        if (rc == 0) {
+            /* XXX closed connection */
+            DEBUGMSGTL(("tlstcp", "remote side closed connection\n"));
+            /* XXX: openssl cleanup */
+            SNMP_FREE(tmStateRef);
+            return -1;
+        }
+        if (rc == -1) {
+            int err = SSL_get_error(tlsdata->ssl, rc);
+            if (err != SSL_ERROR_WANT_READ && err != SSL_ERROR_WANT_WRITE) {
+                /* error detected */
+                _openssl_log_error(rc, tlsdata->ssl, "SSL_read");
+                SNMP_FREE(tmStateRef);
+                return rc;
+            }
+        }
+        /* retry read for SSL_ERROR_WANT_READ || SSL_ERROR_WANT_WRITE */
+    } while (rc <= 0); 
+
+    DEBUGMSGTL(("tlstcp", "received %d decoded bytes from tls\n", rc));
+
+    /* log the packet */
+    DEBUGIF("tlstcp") {
+        char *str = netsnmp_tlstcp_fmtaddr(t, NULL, 0);
+        DEBUGMSGTL(("tlstcp",
+                    "recvfrom fd %d got %d bytes (from %s)\n",
+                    t->sock, rc, str));
+        free(str);
+    }
+
+    /* Other wrap-up things common to TLS and DTLS */
+    if (netsnmp_tlsbase_wrapup_recv(tmStateRef, tlsdata, opaque, olength) !=
+        SNMPERR_SUCCESS)
+        return SNMPERR_GENERR;
+
+    /* RFC5953 Section 5.1.2 step 1:
+     * 4)  The TLS Transport Model passes the transportDomain,
+       transportAddress, incomingMessage, and incomingMessageLength to
+       the Dispatcher using the receiveMessage ASI:
+    */
+
+    /* In our implementation, this is done simply by returning */
+    return rc;
+}
+
+
+
+static int
+netsnmp_tlstcp_send(netsnmp_transport *t, void *buf, int size,
+		 void **opaque, int *olength)
+{
+    int rc = -1;
+    netsnmp_tmStateReference *tmStateRef = NULL;
+    _netsnmpTLSBaseData *tlsdata;
+    
+    DEBUGTRACETOK("tlstcp");
+
+    /* RFC5953 section 5.2: 
+      1)  If tmStateReference does not refer to a cache containing values
+      for tmTransportDomain, tmTransportAddress, tmSecurityName,
+      tmRequestedSecurityLevel, and tmSameSecurity, then increment the
+      snmpTlstmSessionInvalidCaches counter, discard the message, and
+      return the error indication in the statusInformation.  Processing
+      of this message stops.
+    */
+    /* Implementation Notes: the tmStateReference is stored in the opaque ptr */
+    if (opaque != NULL && *opaque != NULL &&
+        *olength == sizeof(netsnmp_tmStateReference)) {
+        tmStateRef = (netsnmp_tmStateReference *) *opaque;
+    } else {
+        snmp_log(LOG_ERR, "TLSTCP was called with an invalid state; possibly the wrong security model is in use.  It should be 'tsm'.\n");
+        snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONINVALIDCACHES);
+        return SNMPERR_GENERR;
+    }
+
+    /* RFC5953 section 5.2: 
+       2)  Extract the tmSessionID, tmTransportDomain, tmTransportAddress,
+       tmSecurityName, tmRequestedSecurityLevel, and tmSameSecurity
+       values from the tmStateReference.  Note: The tmSessionID value
+       may be undefined if no session exists yet over which the message
+       can be sent.
+    */
+    /* Implementation Notes:
+       - Our session will always exist by now as it's created when the
+         transport object is created. Auto-session creation is handled
+         higher in the stack.
+       - We don't "extract" per say since we just leave the data in
+         the structure.
+       - The sessionID is stored in the t->data memory pointer.
+    */
+
+    /* RFC5953 section 5.2: 
+       3)  If tmSameSecurity is true and either tmSessionID is undefined or
+           refers to a session that is no longer open then increment the
+           snmpTlstmSessionNoSessions counter, discard the message and
+           return the error indication in the statusInformation.  Processing
+           of this message stops.
+    */
+    /* Implementation Notes:
+       - We would never get here if the sessionID was either undefined
+         or different.  We tie packets directly to the transport
+         object and it could never be sent back over a different
+         transport, which is what the above text is trying to prevent.
+     */
+
+    /* RFC5953 section 5.2: 
+       4)  If tmSameSecurity is false and tmSessionID refers to a session
+           that is no longer available then an implementation SHOULD open a
+           new session using the openSession() ASI (described in greater
+           detail in step 5b).  Instead of opening a new session an
+           implementation MAY return a snmpTlstmSessionNoSessions error to
+           the calling module and stop processing of the message.
+    */
+    /* Implementation Notes:
+       - We would never get here if the sessionID was either undefined
+         or different.  We tie packets directly to the transport
+         object and it could never be sent back over a different
+         transport, which is what the above text is trying to prevent.
+       - Auto-connections are handled higher in the Net-SNMP library stack
+     */
+    
+    /* RFC5953 section 5.2: 
+       5)  If tmSessionID is undefined, then use tmTransportDomain,
+           tmTransportAddress, tmSecurityName and tmRequestedSecurityLevel
+           to see if there is a corresponding entry in the LCD suitable to
+           send the message over.
+
+           5a)  If there is a corresponding LCD entry, then this session
+                will be used to send the message.
+
+           5b)  If there is not a corresponding LCD entry, then open a
+                session using the openSession() ASI (discussed further in
+                Section 5.3.1).  Implementations MAY wish to offer message
+                buffering to prevent redundant openSession() calls for the
+                same cache entry.  If an error is returned from
+                openSession(), then discard the message, discard the
+                tmStateReference, increment the snmpTlstmSessionOpenErrors,
+                return an error indication to the calling module and stop
+                processing of the message.
+    */
+    /* Implementation Notes:
+       - We would never get here if the sessionID was either undefined
+         or different.  We tie packets directly to the transport
+         object and it could never be sent back over a different
+         transport, which is what the above text is trying to prevent.
+       - Auto-connections are handled higher in the Net-SNMP library stack
+     */
+
+    /* our session pointer is functionally t->data */
+    if (NULL == t->data) {
+        snmp_log(LOG_ERR, "netsnmp_tlstcp_send received no incoming data\n");
+        return -1;
+    }
+
+    tlsdata = t->data;
+    
+    if (tlsdata->ssl == NULL) {
+        snmp_log(LOG_ERR, "tlstcp_send was called without a SSL connection.\n");
+        return SNMPERR_GENERR;
+    }
+
+    /* If the first packet and we have no secname, then copy the
+       important securityName data into the longer-lived session
+       reference information. */
+    if ((tlsdata->flags & NETSNMP_TLSBASE_IS_CLIENT) &&
+        !tlsdata->securityName && tmStateRef && tmStateRef->securityNameLen > 0)
+        tlsdata->securityName = strdup(tmStateRef->securityName);
+        
+        
+    /* RFC5953 section 5.2: 
+       6)  Using either the session indicated by the tmSessionID if there
+           was one or the session resulting from a previous step (4 or 5),
+           pass the outgoingMessage to (D)TLS for encapsulation and
+           transmission.
+    */
+    rc = SSL_write(tlsdata->ssl, buf, size);
+    DEBUGMSGTL(("tlstcp", "wrote %d bytes\n", size));
+    if (rc < 0) {
+        _openssl_log_error(rc, tlsdata->ssl, "SSL_write");
+    }
+
+    return rc;
+}
+
+
+
+static int
+netsnmp_tlstcp_close(netsnmp_transport *t)
+{
+    _netsnmpTLSBaseData *tlsdata;
+
+    if (NULL == t || NULL == t->data)
+        return -1;
+
+    /* RFC5953 Section 5.4.  Closing a Session
+
+       1)  Increment either the snmpTlstmSessionClientCloses or the
+           snmpTlstmSessionServerCloses counter as appropriate.
+    */
+    if (t->flags & NETSNMP_TLSBASE_IS_CLIENT)
+        snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONCLIENTCLOSES);
+    else 
+        snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONSERVERCLOSES);
+
+    /* RFC5953 Section 5.4.  Closing a Session
+       2)  Look up the session using the tmSessionID.
+    */
+    tlsdata = (_netsnmpTLSBaseData *) t->data;
+
+    /* RFC5953 Section 5.4.  Closing a Session
+       3)  If there is no open session associated with the tmSessionID, then
+           closeSession processing is completed.
+    */
+    /* Implementation notes: if we have a non-zero tlsdata then it's
+       always true */
+
+    /* RFC5953 Section 5.3.1: Establishing a Session as a Client
+       4)  Have (D)TLS close the specified connection.  This SHOULD include
+           sending a close_notify TLS Alert to inform the other side that
+           session cleanup may be performed.
+    */
+
+    DEBUGMSGTL(("tlstcp", "Shutting down SSL connection\n"));
+    if (tlsdata->ssl) {
+        SSL_shutdown(tlsdata->ssl);
+    }
+
+    netsnmp_tlsbase_free_tlsdata(tlsdata);
+
+    t->data = NULL;
+    return netsnmp_socketbase_close(t);
+}
+
+static int
+netsnmp_tlstcp_accept(netsnmp_transport *t)
+{
+    BIO            *accepted_bio;
+    int             rc;
+    SSL_CTX *ctx;
+    SSL     *ssl;
+    _netsnmpTLSBaseData *tlsdata = NULL;
+    
+    DEBUGMSGTL(("tlstcp", "netsnmp_tlstcp_accept called\n"));
+
+    tlsdata = (_netsnmpTLSBaseData *) t->data;
+
+    rc = BIO_do_accept(tlsdata->accept_bio);
+
+    if (rc <= 0) {
+        snmp_log(LOG_ERR, "BIO_do_accept failed\n");
+        _openssl_log_error(rc, NULL, "BIO_do_accept");
+        /* XXX: need to close the listening connection here? */
+        return -1;
+    }
+
+    tlsdata->accepted_bio = accepted_bio = BIO_pop(tlsdata->accept_bio);
+    if (!accepted_bio) {
+        snmp_log(LOG_ERR, "Failed to pop an accepted bio off the bio staack\n");
+        /* XXX: need to close the listening connection here? */
+        return -1;
+    }
+
+    /* create the OpenSSL TLS context */
+    ctx = tlsdata->ssl_context;
+
+    /* create the server's main SSL bio */
+    ssl = tlsdata->ssl = SSL_new(ctx);
+    if (!tlsdata->ssl) {
+        snmp_log(LOG_ERR, "TLSTCP: Failed to create a SSL BIO\n");
+        BIO_free(accepted_bio);
+        tlsdata->accepted_bio = NULL;
+        return -1;
+    }
+        
+    SSL_set_bio(ssl, accepted_bio, accepted_bio);
+        
+    if ((rc = SSL_accept(ssl)) <= 0) {
+        snmp_log(LOG_ERR, "TLSTCP: Failed SSL_accept\n");
+        _openssl_log_error(rc, ssl, "SSL_accept");
+        SSL_shutdown(tlsdata->ssl);
+        SSL_free(tlsdata->ssl);
+        tlsdata->accepted_bio = NULL; /* freed by SSL_free */
+        tlsdata->ssl = NULL;
+        return -1;
+    }   
+
+    /*
+     * currently netsnmp_tlsbase_wrapup_recv is where we check for
+     * algorithm compliance, but for tls we know the algorithms
+     * at this point, so we could bail earlier...
+     */
+#if 0 /* moved checks to netsnmp_tlsbase_wrapup_recv */
+    netsnmp_openssl_null_checks(tlsdata->ssl, &no_auth, NULL);
+    if (no_auth != 0) { /* null/unknown authentication */
+        /* xxx-rks: snmp_increment_statistic(STAT_???); */
+        snmp_log(LOG_ERR, "tlstcp: connection with NULL authentication\n");
+        SSL_shutdown(tlsdata->ssl);
+        SSL_free(tlsdata->ssl);
+        tlsdata->accepted_bio = NULL; /* freed by SSL_free */
+        tlsdata->ssl = NULL;
+        return -1;
+    }
+#endif
+
+    /* RFC5953 Section 5.3.2: Accepting a Session as a Server
+       A (D)TLS server should accept new session connections from any client
+       that it is able to verify the client's credentials for.  This is done
+       by authenticating the client's presented certificate through a
+       certificate path validation process (e.g.  [RFC5280]) or through
+       certificate fingerprint verification using fingerprints configured in
+       the snmpTlstmCertToTSNTable.  Afterward the server will determine the
+       identity of the remote entity using the following procedures.
+
+       The (D)TLS server identifies the authenticated identity from the
+       (D)TLS client's principal certificate using configuration information
+       from the snmpTlstmCertToTSNTable mapping table.  The (D)TLS server
+       MUST request and expect a certificate from the client and MUST NOT
+       accept SNMP messages over the (D)TLS connection until the client has
+       sent a certificate and it has been authenticated.  The resulting
+       derived tmSecurityName is recorded in the tmStateReference cache as
+       tmSecurityName.  The details of the lookup process are fully
+       described in the DESCRIPTION clause of the snmpTlstmCertToTSNTable
+       MIB object.  If any verification fails in any way (for example
+       because of failures in cryptographic verification or because of the
+       lack of an appropriate row in the snmpTlstmCertToTSNTable) then the
+       session establishment MUST fail, and the
+       snmpTlstmSessionInvalidClientCertificates object is incremented.  If
+       the session can not be opened for any reason at all, including
+       cryptographic verification failures, then the
+       snmpTlstmSessionOpenErrors counter is incremented and processing
+       stops.
+
+       Servers that wish to support multiple principals at a particular port
+       SHOULD make use of a (D)TLS extension that allows server-side
+       principal selection like the Server Name Indication extension defined
+       in Section 3.1 of [RFC4366].  Supporting this will allow, for
+       example, sending notifications to a specific principal at a given TCP
+       or UDP port.
+    */
+    /* Implementation notes:
+       - we expect fingerprints to be stored in the transport config
+       - we do not currently support mulitple principals and only offer one
+    */
+    if ((rc = netsnmp_tlsbase_verify_client_cert(ssl, tlsdata))
+        != SNMPERR_SUCCESS) {
+        /* XXX: free needed memory */
+        snmp_log(LOG_ERR, "TLSTCP: Falied checking client certificate\n");
+        snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONINVALIDCLIENTCERTIFICATES);
+        SSL_shutdown(tlsdata->ssl);
+        SSL_free(tlsdata->ssl);
+        tlsdata->accepted_bio = NULL; /* freed by SSL_free */
+        tlsdata->ssl = NULL;
+        return -1;
+    }
+
+
+    /* XXX: check acceptance criteria here */
+
+    DEBUGMSGTL(("tlstcp", "accept succeeded on sock %d\n", t->sock));
+
+    /* RFC5953 Section 5.1.2 step 1, part2::
+     * If this is the first message received through this session and
+     the session does not have an assigned tlstmSessionID yet then the
+     snmpTlstmSessionAccepts counter is incremented and a
+     tlstmSessionID for the session is created.  This will only happen
+     on the server side of a connection because a client would have
+     already assigned a tlstmSessionID during the openSession()
+     invocation.  Implementations may have performed the procedures
+     described in Section 5.3.2 prior to this point or they may
+     perform them now, but the procedures described in Section 5.3.2
+     MUST be performed before continuing beyond this point.
+    */
+    /* We're taking option 2 and incrementing the session accepts here
+       rather than upon receiving the first packet */
+    snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONACCEPTS);
+
+    /* XXX: check that it returns something so we can free stuff? */
+    return BIO_get_fd(tlsdata->accepted_bio, NULL);
+}
+
+
+netsnmp_transport *
+netsnmp_tlstcp_open(netsnmp_transport *t)
+{
+    _netsnmpTLSBaseData *tlsdata;
+    BIO *bio;
+    SSL_CTX *ctx;
+    SSL *ssl;
+    int rc = 0;
+    _netsnmp_verify_info *verify_info;
+
+    netsnmp_assert_or_return(t != NULL, NULL);
+    netsnmp_assert_or_return(t->data != NULL, NULL);
+    netsnmp_assert_or_return(sizeof(_netsnmpTLSBaseData) == t->data_length,
+                             NULL);
+
+    tlsdata = t->data;
+    
+    if (tlsdata->flags & NETSNMP_TLSBASE_IS_CLIENT) {
+        /* Is the client */
+
+        /* RFC5953 Section 5.3.1:  Establishing a Session as a Client
+         *    1)  The snmpTlstmSessionOpens counter is incremented.
+         */
+        snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONOPENS);
+
+        /* RFC5953 Section 5.3.1:  Establishing a Session as a Client
+          2)  The client selects the appropriate certificate and cipher_suites
+              for the key agreement based on the tmSecurityName and the
+              tmRequestedSecurityLevel for the session.  For sessions being
+              established as a result of a SNMP-TARGET-MIB based operation, the
+              certificate will potentially have been identified via the
+              snmpTlstmParamsTable mapping and the cipher_suites will have to
+              be taken from system-wide or implementation-specific
+              configuration.  If no row in the snmpTlstmParamsTable exists then
+              implementations MAY choose to establish the connection using a
+              default client certificate available to the application.
+              Otherwise, the certificate and appropriate cipher_suites will
+              need to be passed to the openSession() ASI as supplemental
+              information or configured through an implementation-dependent
+              mechanism.  It is also implementation-dependent and possibly
+              policy-dependent how tmRequestedSecurityLevel will be used to
+              influence the security capabilities provided by the (D)TLS
+              connection.  However this is done, the security capabilities
+              provided by (D)TLS MUST be at least as high as the level of
+              security indicated by the tmRequestedSecurityLevel parameter.
+              The actual security level of the session is reported in the
+              tmStateReference cache as tmSecurityLevel.  For (D)TLS to provide
+              strong authentication, each principal acting as a command
+              generator SHOULD have its own certificate.
+        */
+        /*
+          Implementation notes: we do most of this in the
+          sslctx_client_setup The transport should have been
+          f_config()ed with the proper fingerprints to use (which is
+          stored in tlsdata), or we'll use the default identity
+          fingerprint if that can be found.
+        */
+
+        /* XXX: check securityLevel and ensure no NULL fingerprints are used */
+
+        /* set up the needed SSL context */
+        tlsdata->ssl_context = ctx =
+            sslctx_client_setup(TLSv1_method(), tlsdata);
+        if (!ctx) {
+            snmp_log(LOG_ERR, "failed to create TLS context\n");
+            return NULL;
+        }
+
+        /* RFC5953 Section 5.3.1:  Establishing a Session as a Client
+           3)  Using the destTransportDomain and destTransportAddress values,
+               the client will initiate the (D)TLS handshake protocol to
+               establish session keys for message integrity and encryption.
+        */
+        /* Implementation note:
+           The transport domain and address are pre-processed by this point
+        */
+
+        /* Create a BIO connection for it */
+        DEBUGMSGTL(("tlstcp", "connecting to tlstcp %s\n",
+		    tlsdata->addr_string));
+        t->remote = (void *) strdup(tlsdata->addr_string);
+        t->remote_length = strlen(tlsdata->addr_string) + 1;
+
+        bio = BIO_new_connect(tlsdata->addr_string);
+
+        /* RFC5953 Section 5.3.1:  Establishing a Session as a Client
+           3) continued:
+              If the attempt to establish a session is unsuccessful, then
+              snmpTlstmSessionOpenErrors is incremented, an error indication is
+              returned, and processing stops.
+        */
+
+        if (NULL == bio) {
+            snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONOPENERRORS);
+            snmp_log(LOG_ERR, "tlstcp: failed to create bio\n");
+            _openssl_log_error(rc, NULL, "BIO creation");
+            SNMP_FREE(tlsdata);
+            SNMP_FREE(t);
+            return NULL;
+        }
+            
+
+        /* Tell the BIO to actually do the connection */
+        if ((rc = BIO_do_connect(bio)) <= 0) {
+            snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONOPENERRORS);
+            snmp_log(LOG_ERR, "tlstcp: failed to connect to %s\n",
+		     tlsdata->addr_string);
+            _openssl_log_error(rc, NULL, "BIO_do_connect");
+            BIO_free(bio);
+            SNMP_FREE(tlsdata);
+            SNMP_FREE(t);
+            return NULL;
+        }
+
+        /* Create the SSL layer on top of the socket bio */
+        ssl = tlsdata->ssl = SSL_new(ctx);
+        if (NULL == ssl) {
+            snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONOPENERRORS);
+            snmp_log(LOG_ERR, "tlstcp: failed to create a SSL connection\n");
+            BIO_free(bio);
+            SNMP_FREE(tlsdata);
+            SNMP_FREE(t);
+            return NULL;
+        }
+        
+        /* Bind the SSL layer to the BIO */ 
+        SSL_set_bio(ssl, bio, bio);
+        SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY);
+
+        verify_info = SNMP_MALLOC_TYPEDEF(_netsnmp_verify_info);
+        if (NULL == verify_info) {
+            snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONOPENERRORS);
+            snmp_log(LOG_ERR, "tlstcp: failed to create a SSL connection\n");
+            SSL_shutdown(ssl);
+            BIO_free(bio);
+            SNMP_FREE(tlsdata);
+            SNMP_FREE(t);
+            return NULL;
+        }
+
+        SSL_set_ex_data(ssl, tls_get_verify_info_index(), verify_info);
+
+        /* Then have SSL do it's connection over the BIO */
+        if ((rc = SSL_connect(ssl)) <= 0) {
+            snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONOPENERRORS);
+            snmp_log(LOG_ERR, "tlstcp: failed to ssl_connect\n");
+            BIO_free(bio);
+            SNMP_FREE(tlsdata);
+            SNMP_FREE(t);
+            return NULL;
+        }
+
+        /* RFC5953 Section 5.3.1: Establishing a Session as a Client
+           3) continued:
+              If the session failed to open because the presented
+              server certificate was unknown or invalid then the
+              snmpTlstmSessionUnknownServerCertificate or
+              snmpTlstmSessionInvalidServerCertificates MUST be
+              incremented and a snmpTlstmServerCertificateUnknown or
+              snmpTlstmServerInvalidCertificate notification SHOULD be
+              sent as appropriate.  Reasons for server certificate
+              invalidation includes, but is not limited to,
+              cryptographic validation failures and an unexpected
+              presented certificate identity.
+        */
+
+        /* RFC5953 Section 5.3.1: Establishing a Session as a Client
+           4)  The (D)TLS client MUST then verify that the (D)TLS server's
+               presented certificate is the expected certificate.  The (D)TLS
+               client MUST NOT transmit SNMP messages until the server
+               certificate has been authenticated, the client certificate has
+               been transmitted and the TLS connection has been fully
+               established.
+
+               If the connection is being established from configuration based
+               on SNMP-TARGET-MIB configuration, then the snmpTlstmAddrTable
+               DESCRIPTION clause describes how the verification is done (using
+               either a certificate fingerprint, or an identity authenticated
+               via certification path validation).
+
+               If the connection is being established for reasons other than
+               configuration found in the SNMP-TARGET-MIB then configuration and
+               procedures outside the scope of this document should be followed.
+               Configuration mechanisms SHOULD be similar in nature to those
+               defined in the snmpTlstmAddrTable to ensure consistency across
+               management configuration systems.  For example, a command-line
+               tool for generating SNMP GETs might support specifying either the
+               server's certificate fingerprint or the expected host name as a
+               command line argument.
+        */
+
+        /* Implementation notes:
+           - All remote certificate fingerprints are expected to be
+             stored in the transport's config information.  This is
+             true both for CLI clients and TARGET-MIB sessions.
+           - netsnmp_tlsbase_verify_server_cert implements these checks
+        */
+        if (netsnmp_tlsbase_verify_server_cert(ssl, tlsdata) != SNMPERR_SUCCESS) {
+            /* XXX: unknown vs invalid; two counters */
+            snmp_increment_statistic(STAT_TLSTM_SNMPTLSTMSESSIONUNKNOWNSERVERCERTIFICATE);
+            snmp_log(LOG_ERR, "tlstcp: failed to verify ssl certificate\n");
+            SSL_shutdown(ssl);
+            BIO_free(bio);
+            SNMP_FREE(tlsdata);
+            SNMP_FREE(t);
+            return NULL;
+        }
+
+        /* RFC5953 Section 5.3.1: Establishing a Session as a Client
+           5)  (D)TLS provides assurance that the authenticated identity has
+               been signed by a trusted configured certification authority.  If
+               verification of the server's certificate fails in any way (for
+               example because of failures in cryptographic verification or the
+               presented identity did not match the expected named entity) then
+               the session establishment MUST fail, the
+               snmpTlstmSessionInvalidServerCertificates object is incremented.
+               If the session can not be opened for any reason at all, including
+               cryptographic verification failures, then the
+               snmpTlstmSessionOpenErrors counter is incremented and processing
+               stops.
+
+        */
+        /* XXX: add snmpTlstmSessionInvalidServerCertificates on
+           crypto failure */
+
+        /* RFC5953 Section 5.3.1: Establishing a Session as a Client
+           6)  The TLSTM-specific session identifier (tlstmSessionID) is set in
+           the tmSessionID of the tmStateReference passed to the TLS
+           Transport Model to indicate that the session has been established
+           successfully and to point to a specific (D)TLS connection for
+           future use.  The tlstmSessionID is also stored in the LCD for
+           later lookup during processing of incoming messages
+           (Section 5.1.2).
+        */
+        /* Implementation notes:
+           - the tlsdata pointer is used as our session identifier, as
+             noted in the netsnmp_tlstcp_recv() function comments.
+        */
+
+        t->sock = BIO_get_fd(bio, NULL);
+
+    } else {
+        /* Is the server */
+        
+        /* Create the socket bio */
+        DEBUGMSGTL(("tlstcp", "listening on tlstcp port %s\n",
+		    tlsdata->addr_string));
+        tlsdata->accept_bio = BIO_new_accept(tlsdata->addr_string);
+        t->local = (void *) strdup(tlsdata->addr_string);
+        t->local_length = strlen(tlsdata->addr_string)+1;
+        if (NULL == tlsdata->accept_bio) {
+            SNMP_FREE(t);
+            SNMP_FREE(tlsdata);
+            snmp_log(LOG_ERR, "TLSTCP: Falied to create a accept BIO\n");
+            return NULL;
+        }
+
+        /* openssl requires an initial accept to bind() the socket */
+        if (BIO_do_accept(tlsdata->accept_bio) <= 0) {
+	    _openssl_log_error(rc, tlsdata->ssl, "BIO_do__accept");
+            SNMP_FREE(t);
+            SNMP_FREE(tlsdata);
+            snmp_log(LOG_ERR, "TLSTCP: Falied to do first accept on the TLS accept BIO\n");
+            return NULL;
+        }
+
+        /* create the OpenSSL TLS context */
+        tlsdata->ssl_context =
+            sslctx_server_setup(TLSv1_method());
+
+        t->sock = BIO_get_fd(tlsdata->accept_bio, NULL);
+        t->flags |= NETSNMP_TRANSPORT_FLAG_LISTEN;
+    }
+    return t;
+}
+
+/*
+ * Create a TLS-based transport for SNMP.  Local is TRUE if addr is the local
+ * address to bind to (i.e. this is a server-type session); otherwise addr is 
+ * the remote address to send things to.  
+ */
+
+netsnmp_transport *
+netsnmp_tlstcp_transport(const char *addr_string, int isserver)
+{
+    netsnmp_transport *t = NULL;
+    _netsnmpTLSBaseData *tlsdata;
+    char *cp;
+    char buf[SPRINT_MAX_LEN];
+    
+    /* allocate our transport structure */
+    t = SNMP_MALLOC_TYPEDEF(netsnmp_transport);
+    if (NULL == t) {
+        return NULL;
+    }
+    memset(t, 0, sizeof(netsnmp_transport));
+
+    /* allocate our TLS specific data */
+    if (NULL == (tlsdata = netsnmp_tlsbase_allocate_tlsdata(t, isserver)))
+        return NULL;
+
+    if (!isserver)
+        t->flags |= NETSNMP_TLSBASE_IS_CLIENT;
+
+    tlsdata->addr_string = strdup(addr_string);
+
+    /* see if we can extract the remote hostname */
+    if (!isserver && tlsdata && addr_string) {
+        /* search for a : */
+        if (NULL != (cp = strrchr(addr_string, ':'))) {
+            sprintf(buf, "%.*s",
+                    (int) SNMP_MIN(cp - addr_string, sizeof(buf) - 1),
+                    addr_string);
+        } else {
+            /* else the entire spec is a host name only */
+            strlcpy(buf, addr_string, sizeof(buf));
+        }
+        tlsdata->their_hostname = strdup(buf);
+    }
+
+    t->data = tlsdata;
+    t->data_length = sizeof(_netsnmpTLSBaseData);
+
+    /*
+     * Set Domain
+     */
+    t->domain = netsnmpTLSTCPDomain;                                     
+    t->domain_length = netsnmpTLSTCPDomain_len;     
+
+    /*
+     * 16-bit length field, 8 byte TLS header, 20 byte IPv4 header  
+     */
+
+    t->msgMaxSize      = 0xffff - 8 - 20;
+    t->f_recv          = netsnmp_tlstcp_recv;
+    t->f_send          = netsnmp_tlstcp_send;
+    t->f_open          = netsnmp_tlstcp_open;
+    t->f_close         = netsnmp_tlstcp_close;
+    t->f_accept        = netsnmp_tlstcp_accept;
+    t->f_copy          = netsnmp_tlstcp_copy;
+    t->f_config        = netsnmp_tlsbase_config;
+    t->f_setup_session = netsnmp_tlsbase_session_init;
+    t->f_fmtaddr       = netsnmp_tlstcp_fmtaddr;
+
+    t->flags |= NETSNMP_TRANSPORT_FLAG_TUNNELED | NETSNMP_TRANSPORT_FLAG_STREAM;
+
+    return t;
+}
+
+netsnmp_transport *
+netsnmp_tlstcp_create_tstring(const char *str, int local,
+                               const char *default_target)
+{
+    char buf[SPRINT_MAX_LEN];
+
+    if (str == NULL || *str == '\0')
+        str = default_target + 1; /* drop the leading : */
+    else if (!strchr(str, ':')) {
+        /* it's either :port or :address.  Try to guess which. */
+        const char *cp;
+        int isport = 1;
+        for(cp = str; *cp != '\0'; cp++) {
+            /* if ALL numbers, it must be just a port */
+            /* if it contains anything else, assume a host or ip address */
+            if (!isdigit(0xFF & *cp)) {
+                isport = 0;
+                break;
+            }
+        }
+        if (isport) {
+            /* Just :NNN can be passed to openssl */
+            snprintf(buf, sizeof(buf)-1, "0.0.0.0:%s", str);
+        } else {
+            /* add the default port */
+            snprintf(buf, sizeof(buf)-1, "%s%s", str, default_target);
+        }
+        str = buf;
+    }
+    return netsnmp_tlstcp_transport(str, local);
+}
+
+
+netsnmp_transport *
+netsnmp_tlstcp_create_ostring(const u_char * o, size_t o_len, int local)
+{
+    char buf[SPRINT_MAX_LEN];
+
+    /* ensure buf is big enough */
+    if (o_len > SPRINT_MAX_LEN - 1)
+        return NULL;
+
+    memcpy(buf, o, o_len);
+    buf[o_len] = '\0';
+
+    return netsnmp_tlstcp_transport(buf, local);
+}
+
+void
+netsnmp_tlstcp_ctor(void)
+{
+    DEBUGMSGTL(("tlstcp", "registering TLS constructor\n"));
+
+    /* config settings */
+
+    tlstcpDomain.name = netsnmpTLSTCPDomain;
+    tlstcpDomain.name_length = netsnmpTLSTCPDomain_len;
+    tlstcpDomain.prefix = (const char**)calloc(3, sizeof(char *));
+    tlstcpDomain.prefix[0] = "tlstcp";
+    tlstcpDomain.prefix[1] = "tls";
+
+    tlstcpDomain.f_create_from_tstring     = NULL;
+    tlstcpDomain.f_create_from_tstring_new = netsnmp_tlstcp_create_tstring;
+    tlstcpDomain.f_create_from_ostring     = netsnmp_tlstcp_create_ostring;
+
+    netsnmp_tdomain_register(&tlstcpDomain);
+}
diff --git a/snmplib/transports/snmpUDPBaseDomain.c b/snmplib/transports/snmpUDPBaseDomain.c
new file mode 100644
index 0000000..b6e7f3d
--- /dev/null
+++ b/snmplib/transports/snmpUDPBaseDomain.c
@@ -0,0 +1,503 @@
+/* UDP base transport support functions
+ */
+
+#include <net-snmp/net-snmp-config.h>
+
+#include <stddef.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <ctype.h>
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#if HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#if HAVE_SYS_UIO_H
+#include <sys/uio.h>
+#endif
+#ifdef WIN32
+#include <mswsock.h>
+#endif
+#include <errno.h>
+
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmpSocketBaseDomain.h>
+#include <net-snmp/library/snmpUDPBaseDomain.h>
+#include <net-snmp/library/snmpUDPDomain.h>
+#include <net-snmp/library/snmp_debug.h>
+#include <net-snmp/library/tools.h>
+#include <net-snmp/library/default_store.h>
+#include <net-snmp/library/system.h>
+#include <net-snmp/library/snmp_assert.h>
+
+#if defined(IP_RECVDSTADDR) && defined(__DragonFly__)
+# ifndef IP_SENDSRCADDR
+#  define IP_SENDSRCADDR IP_RECVDSTADDR /* DragonFly BSD */
+# endif
+#endif
+
+void
+_netsnmp_udp_sockopt_set(int fd, int local)
+{
+#ifdef  SO_BSDCOMPAT
+    /*
+     * Patch for Linux.  Without this, UDP packets that fail get an ICMP
+     * response.  Linux turns the failed ICMP response into an error message
+     * and return value, unlike all other OS's.  
+     */
+    if (0 == netsnmp_os_prematch("Linux","2.4"))
+    {
+        int             one = 1;
+        DEBUGMSGTL(("socket:option", "setting socket option SO_BSDCOMPAT\n"));
+        setsockopt(fd, SOL_SOCKET, SO_BSDCOMPAT, (void *) &one,
+                   sizeof(one));
+    }
+#endif                          /*SO_BSDCOMPAT */
+    /*
+     * SO_REUSEADDR will allow multiple apps to open the same port at
+     * the same time. Only the last one to open the socket will get
+     * data. Obviously, for an agent, this is a bad thing. There should
+     * only be one listener.
+     */
+#ifdef ALLOW_PORT_HIJACKING
+#ifdef  SO_REUSEADDR
+    /*
+     * Allow the same port to be specified multiple times without failing.
+     *    (useful for a listener)
+     */
+    {
+        int             one = 1;
+        DEBUGMSGTL(("socket:option", "setting socket option SO_REUSEADDR\n"));
+        setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void *) &one,
+                   sizeof(one));
+    }
+#endif                          /*SO_REUSEADDR */
+#endif
+
+    /*
+     * Try to set the send and receive buffers to a reasonably large value, so
+     * that we can send and receive big PDUs (defaults to 8192 bytes (!) on
+     * Solaris, for instance).  Don't worry too much about errors -- just
+     * plough on regardless.  
+     */
+    netsnmp_sock_buffer_set(fd, SO_SNDBUF, local, 0);
+    netsnmp_sock_buffer_set(fd, SO_RCVBUF, local, 0);
+}
+
+#if defined(HAVE_IP_PKTINFO) || defined(HAVE_IP_RECVDSTADDR)
+# if defined(IP_RECVDSTADDR) && !defined(IP_SENDSRCADDR)
+#  define IP_SENDSRCADDR IP_RECVDSTADDR /* DragonFly BSD */
+# endif
+
+#define netsnmp_udpbase_recvfrom_sendto_defined
+
+enum {
+#if defined(HAVE_IP_PKTINFO)
+    cmsg_data_size = sizeof(struct in_pktinfo)
+#elif defined(HAVE_IP_RECVDSTADDR)
+    cmsg_data_size = sizeof(struct in_addr)
+#endif
+};
+
+#ifdef WIN32
+#ifndef WSAID_WSASENDMSG
+#define WSAID_WSASENDMSG \
+    {0xa441e712,0x754f,0x43ca,{0x84,0xa7,0x0d,0xee,0x44,0xcf,0x60,0x6d}}
+typedef INT (WINAPI * LPFN_WSASENDMSG)(SOCKET, LPWSAMSG, DWORD, LPDWORD,
+                                       LPWSAOVERLAPPED,
+                                       LPWSAOVERLAPPED_COMPLETION_ROUTINE);
+#endif
+
+static LPFN_WSARECVMSG pfWSARecvMsg;
+static LPFN_WSASENDMSG pfWSASendMsg;
+#endif
+
+int
+netsnmp_udpbase_recvfrom(int s, void *buf, int len, struct sockaddr *from,
+                         socklen_t *fromlen, struct sockaddr *dstip,
+                         socklen_t *dstlen, int *if_index)
+{
+    int r;
+#if !defined(WIN32)
+    struct iovec iov;
+    char cmsg[CMSG_SPACE(cmsg_data_size)];
+    struct cmsghdr *cm;
+    struct msghdr msg;
+
+    iov.iov_base = buf;
+    iov.iov_len = len;
+
+    memset(&msg, 0, sizeof msg);
+    msg.msg_name = from;
+    msg.msg_namelen = *fromlen;
+    msg.msg_iov = &iov;
+    msg.msg_iovlen = 1;
+    msg.msg_control = &cmsg;
+    msg.msg_controllen = sizeof(cmsg);
+
+    r = recvmsg(s, &msg, NETSNMP_DONTWAIT);
+#else /* !defined(WIN32) */
+    WSABUF wsabuf;
+    char cmsg[WSA_CMSG_SPACE(sizeof(struct in_pktinfo))];
+    WSACMSGHDR *cm;
+    WSAMSG msg;
+    DWORD bytes_received;
+
+    wsabuf.buf = buf;
+    wsabuf.len = len;
+
+    msg.name = from;
+    msg.namelen = *fromlen;
+    msg.lpBuffers = &wsabuf;
+    msg.dwBufferCount = 1;
+    msg.Control.len = sizeof(cmsg);
+    msg.Control.buf = cmsg;
+    msg.dwFlags = 0;
+
+    if (pfWSARecvMsg) {
+        r = pfWSARecvMsg(s, &msg, &bytes_received, NULL, NULL) == 0 ?
+            bytes_received : -1;
+        *fromlen = msg.namelen;
+    } else {
+        r = recvfrom(s, buf, len, MSG_DONTWAIT, from, fromlen);
+    }
+#endif /* !defined(WIN32) */
+
+    if (r == -1) {
+        return -1;
+    }
+
+    DEBUGMSGTL(("udpbase:recv", "got source addr: %s\n",
+                inet_ntoa(((struct sockaddr_in *)from)->sin_addr)));
+
+    {
+        /* Get the local port number for use in diagnostic messages */
+        int r2 = getsockname(s, dstip, dstlen);
+        netsnmp_assert(r2 == 0);
+    }
+
+#if !defined(WIN32)
+    for (cm = CMSG_FIRSTHDR(&msg); cm != NULL; cm = CMSG_NXTHDR(&msg, cm)) {
+#if defined(HAVE_IP_PKTINFO)
+        if (cm->cmsg_level == SOL_IP && cm->cmsg_type == IP_PKTINFO) {
+            struct in_pktinfo* src = (struct in_pktinfo *)CMSG_DATA(cm);
+            netsnmp_assert(dstip->sa_family == AF_INET);
+            ((struct sockaddr_in*)dstip)->sin_addr = src->ipi_addr;
+            *if_index = src->ipi_ifindex;
+            DEBUGMSGTL(("udpbase:recv",
+                        "got destination (local) addr %s, iface %d\n",
+                        inet_ntoa(src->ipi_addr), *if_index));
+        }
+#elif defined(HAVE_IP_RECVDSTADDR)
+        if (cm->cmsg_level == IPPROTO_IP && cm->cmsg_type == IP_RECVDSTADDR) {
+            struct in_addr* src = (struct in_addr *)CMSG_DATA(cm);
+            ((struct sockaddr_in*)dstip)->sin_addr = *src;
+            DEBUGMSGTL(("netsnmp_udp", "got destination (local) addr %s\n",
+                        inet_ntoa(*src)));
+        }
+#endif
+    }
+#else /* !defined(WIN32) */
+    for (cm = WSA_CMSG_FIRSTHDR(&msg); cm; cm = WSA_CMSG_NXTHDR(&msg, cm)) {
+        if (cm->cmsg_level == IPPROTO_IP && cm->cmsg_type == IP_PKTINFO) {
+            struct in_pktinfo* src = (struct in_pktinfo *)WSA_CMSG_DATA(cm);
+            netsnmp_assert(dstip->sa_family == AF_INET);
+            ((struct sockaddr_in*)dstip)->sin_addr = src->ipi_addr;
+            *if_index = src->ipi_ifindex;
+            DEBUGMSGTL(("udpbase:recv",
+                        "got destination (local) addr %s, iface %d\n",
+                        inet_ntoa(src->ipi_addr), *if_index));
+        }
+    }
+#endif /* !defined(WIN32) */
+    return r;
+}
+
+int netsnmp_udpbase_sendto(int fd, struct in_addr *srcip, int if_index,
+                           struct sockaddr *remote, void *data, int len)
+{
+#if !defined(WIN32)
+    struct iovec iov;
+    struct msghdr m = { 0 };
+    char          cmsg[CMSG_SPACE(cmsg_data_size)];
+    int           rc;
+
+    iov.iov_base = data;
+    iov.iov_len  = len;
+
+    m.msg_name		= remote;
+    m.msg_namelen	= sizeof(struct sockaddr_in);
+    m.msg_iov		= &iov;
+    m.msg_iovlen	= 1;
+    m.msg_flags		= 0;
+
+    if (srcip && srcip->s_addr != INADDR_ANY) {
+        struct cmsghdr *cm;
+
+        DEBUGMSGTL(("udpbase:sendto", "sending from %s\n", inet_ntoa(*srcip)));
+
+        memset(cmsg, 0, sizeof(cmsg));
+
+        m.msg_control    = &cmsg;
+        m.msg_controllen = sizeof(cmsg);
+
+        cm = CMSG_FIRSTHDR(&m);
+        cm->cmsg_len = CMSG_LEN(cmsg_data_size);
+
+#if defined(HAVE_IP_PKTINFO)
+        cm->cmsg_level = SOL_IP;
+        cm->cmsg_type = IP_PKTINFO;
+
+        {
+            struct in_pktinfo ipi;
+
+            memset(&ipi, 0, sizeof(ipi));
+            ipi.ipi_ifindex = if_index;
+#if defined(cygwin)
+            ipi.ipi_addr.s_addr = srcip->s_addr;
+#else
+            ipi.ipi_spec_dst.s_addr = srcip->s_addr;
+#endif
+            memcpy(CMSG_DATA(cm), &ipi, sizeof(ipi));
+        }
+
+        rc = sendmsg(fd, &m, NETSNMP_NOSIGNAL|NETSNMP_DONTWAIT);
+        if (rc >= 0 || errno != EINVAL)
+            return rc;
+
+        /*
+         * The error might be caused by broadcast srcip (i.e. we're responding
+         * to a broadcast request) - sendmsg does not like it. Try to resend it
+         * using the interface on which it was received
+         */
+
+        DEBUGMSGTL(("udpbase:sendto", "re-sending on iface %d\n", if_index));
+
+        {
+            struct in_pktinfo ipi;
+
+            memset(&ipi, 0, sizeof(ipi));
+            ipi.ipi_ifindex = if_index;
+#if defined(cygwin)
+            ipi.ipi_addr.s_addr = INADDR_ANY;
+#else
+            ipi.ipi_spec_dst.s_addr = INADDR_ANY;
+#endif
+            memcpy(CMSG_DATA(cm), &ipi, sizeof(ipi));
+        }
+#elif defined(IP_SENDSRCADDR)
+        cm->cmsg_level = IPPROTO_IP;
+        cm->cmsg_type = IP_SENDSRCADDR;
+        memcpy((struct in_addr *)CMSG_DATA(cm), srcip, sizeof(struct in_addr));
+#endif
+        rc = sendmsg(fd, &m, NETSNMP_NOSIGNAL|NETSNMP_DONTWAIT);
+        if (rc >= 0 || errno != EINVAL)
+            return rc;
+
+        DEBUGMSGTL(("udpbase:sendto", "re-sending without source address\n"));
+        m.msg_control = NULL;
+        m.msg_controllen = 0;
+    }
+
+    return sendmsg(fd, &m, NETSNMP_NOSIGNAL|NETSNMP_DONTWAIT);
+#else /* !defined(WIN32) */
+    WSABUF        wsabuf;
+    WSAMSG        m;
+    char          cmsg[WSA_CMSG_SPACE(sizeof(struct in_pktinfo))];
+    DWORD         bytes_sent;
+    int           rc;
+
+    wsabuf.buf = data;
+    wsabuf.len = len;
+
+    memset(&m, 0, sizeof(m));
+    m.name          = remote;
+    m.namelen       = sizeof(struct sockaddr_in);
+    m.lpBuffers     = &wsabuf;
+    m.dwBufferCount = 1;
+
+    if (pfWSASendMsg && srcip && srcip->s_addr != INADDR_ANY) {
+        WSACMSGHDR *cm;
+
+        DEBUGMSGTL(("udpbase:sendto", "sending from [%d] %s\n", if_index,
+                    inet_ntoa(*srcip)));
+
+        memset(cmsg, 0, sizeof(cmsg));
+
+        m.Control.buf = cmsg;
+        m.Control.len = sizeof(cmsg);
+
+        cm = WSA_CMSG_FIRSTHDR(&m);
+        cm->cmsg_len = WSA_CMSG_LEN(cmsg_data_size);
+        cm->cmsg_level = IPPROTO_IP;
+        cm->cmsg_type = IP_PKTINFO;
+
+        {
+            struct in_pktinfo ipi = { 0 };
+            ipi.ipi_ifindex = if_index;
+            ipi.ipi_addr.s_addr = srcip->s_addr;
+            memcpy(WSA_CMSG_DATA(cm), &ipi, sizeof(ipi));
+        }
+
+        rc = pfWSASendMsg(fd, &m, 0, &bytes_sent, NULL, NULL);
+        if (rc == 0)
+            return bytes_sent;
+        DEBUGMSGTL(("udpbase:sendto", "sending from [%d] %s failed: %d\n",
+                    if_index, inet_ntoa(*srcip), WSAGetLastError()));
+    }
+    rc = sendto(fd, data, len, 0, remote, sizeof(struct sockaddr));
+    return rc;
+#endif /* !defined(WIN32) */
+}
+#endif /* HAVE_IP_PKTINFO || HAVE_IP_RECVDSTADDR */
+
+/*
+ * You can write something into opaque that will subsequently get passed back 
+ * to your send function if you like.  For instance, you might want to
+ * remember where a PDU came from, so that you can send a reply there...  
+ */
+
+int
+netsnmp_udpbase_recv(netsnmp_transport *t, void *buf, int size,
+                     void **opaque, int *olength)
+{
+    int             rc = -1;
+    socklen_t       fromlen = sizeof(struct sockaddr);
+    netsnmp_indexed_addr_pair *addr_pair = NULL;
+    struct sockaddr *from;
+
+    if (t != NULL && t->sock >= 0) {
+        addr_pair = (netsnmp_indexed_addr_pair *) malloc(sizeof(netsnmp_indexed_addr_pair));
+        if (addr_pair == NULL) {
+            *opaque = NULL;
+            *olength = 0;
+            return -1;
+        } else {
+            memset(addr_pair, 0, sizeof(netsnmp_indexed_addr_pair));
+            from = (struct sockaddr *) &(addr_pair->remote_addr);
+        }
+
+	while (rc < 0) {
+#ifdef netsnmp_udpbase_recvfrom_sendto_defined
+            socklen_t local_addr_len = sizeof(addr_pair->local_addr);
+            rc = netsnmp_udp_recvfrom(t->sock, buf, size, from, &fromlen,
+                                      (struct sockaddr*)&(addr_pair->local_addr),
+                                      &local_addr_len, &(addr_pair->if_index));
+#else
+            rc = recvfrom(t->sock, buf, size, NETSNMP_DONTWAIT, from, &fromlen);
+#endif /* netsnmp_udpbase_recvfrom_sendto_defined */
+	    if (rc < 0 && errno != EINTR) {
+		break;
+	    }
+	}
+
+        if (rc >= 0) {
+            DEBUGIF("netsnmp_udp") {
+                char *str = netsnmp_udp_fmtaddr(
+                    NULL, addr_pair, sizeof(netsnmp_indexed_addr_pair));
+                DEBUGMSGTL(("netsnmp_udp",
+                            "recvfrom fd %d got %d bytes (from %s)\n",
+                            t->sock, rc, str));
+                free(str);
+            }
+        } else {
+            DEBUGMSGTL(("netsnmp_udp", "recvfrom fd %d err %d (\"%s\")\n",
+                        t->sock, errno, strerror(errno)));
+        }
+        *opaque = (void *)addr_pair;
+        *olength = sizeof(netsnmp_indexed_addr_pair);
+    }
+    return rc;
+}
+
+
+
+int
+netsnmp_udpbase_send(netsnmp_transport *t, void *buf, int size,
+                     void **opaque, int *olength)
+{
+    int rc = -1;
+    netsnmp_indexed_addr_pair *addr_pair = NULL;
+    struct sockaddr *to = NULL;
+
+    if (opaque != NULL && *opaque != NULL &&
+        *olength == sizeof(netsnmp_indexed_addr_pair)) {
+        addr_pair = (netsnmp_indexed_addr_pair *) (*opaque);
+    } else if (t != NULL && t->data != NULL &&
+                t->data_length == sizeof(netsnmp_indexed_addr_pair)) {
+        addr_pair = (netsnmp_indexed_addr_pair *) (t->data);
+    }
+
+    to = (struct sockaddr *) &(addr_pair->remote_addr);
+
+    if (to != NULL && t != NULL && t->sock >= 0) {
+        DEBUGIF("netsnmp_udp") {
+            char *str = netsnmp_udp_fmtaddr(NULL, (void *) addr_pair,
+                                            sizeof(netsnmp_indexed_addr_pair));
+            DEBUGMSGTL(("netsnmp_udp", "send %d bytes from %p to %s on fd %d\n",
+                        size, buf, str, t->sock));
+            free(str);
+        }
+	while (rc < 0) {
+#ifdef netsnmp_udpbase_recvfrom_sendto_defined
+            rc = netsnmp_udp_sendto(t->sock,
+                    addr_pair ? &(addr_pair->local_addr.sin_addr) : NULL,
+                    addr_pair ? addr_pair->if_index : 0, to, buf, size);
+#else
+            rc = sendto(t->sock, buf, size, 0, to, sizeof(struct sockaddr));
+#endif /* netsnmp_udpbase_recvfrom_sendto_defined */
+	    if (rc < 0 && errno != EINTR) {
+                DEBUGMSGTL(("netsnmp_udp", "sendto error, rc %d (errno %d)\n",
+                            rc, errno));
+		break;
+	    }
+	}
+    }
+    return rc;
+}
+
+void
+netsnmp_udp_base_ctor(void)
+{
+#if defined(WIN32) && defined(HAVE_IP_PKTINFO)
+    SOCKET s = socket(AF_INET, SOCK_DGRAM, 0);
+    GUID WSARecvMsgGuid = WSAID_WSARECVMSG;
+    GUID WSASendMsgGuid = WSAID_WSASENDMSG;
+    DWORD nbytes;
+    int result;
+
+    netsnmp_assert(s != SOCKET_ERROR);
+    /* WSARecvMsg(): Windows XP / Windows Server 2003 and later */
+    result = WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER,
+                      &WSARecvMsgGuid, sizeof(WSARecvMsgGuid),
+                      &pfWSARecvMsg, sizeof(pfWSARecvMsg), &nbytes, NULL, NULL);
+    if (result == SOCKET_ERROR)
+        DEBUGMSGTL(("netsnmp_udp", "WSARecvMsg() not found (errno %ld)\n",
+                    WSAGetLastError()));
+
+    /* WSASendMsg(): Windows Vista / Windows Server 2008 and later */
+    result = WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER,
+                      &WSASendMsgGuid, sizeof(WSASendMsgGuid),
+                      &pfWSASendMsg, sizeof(pfWSASendMsg), &nbytes, NULL, NULL);
+    if (result == SOCKET_ERROR)
+        DEBUGMSGTL(("netsnmp_udp", "WSASendMsg() not found (errno %ld)\n",
+                    WSAGetLastError()));
+
+    closesocket(s);
+#endif
+}
diff --git a/snmplib/transports/snmpUDPDomain.c b/snmplib/transports/snmpUDPDomain.c
new file mode 100644
index 0000000..7fa2efd
--- /dev/null
+++ b/snmplib/transports/snmpUDPDomain.c
@@ -0,0 +1,521 @@
+/* Portions of this file are subject to the following copyright(s).  See
+ * the Net-SNMP's COPYING file for more details and other copyrights
+ * that may apply:
+ */
+/*
+ * Portions of this file are copyrighted by:
+ * Copyright Copyright 2003 Sun Microsystems, Inc. All rights reserved.
+ * Use is subject to license terms specified in the COPYING file
+ * distributed with the Net-SNMP package.
+ */
+
+#include <net-snmp/net-snmp-config.h>
+
+#include <stddef.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <ctype.h>
+#include <errno.h>
+
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#if HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#if HAVE_SYS_UIO_H
+#include <sys/uio.h>
+#endif
+
+#if HAVE_DMALLOC_H
+#include <dmalloc.h>
+#endif
+
+#include <net-snmp/types.h>
+#include <net-snmp/output_api.h>
+#include <net-snmp/config_api.h>
+
+#include <net-snmp/library/snmp_transport.h>
+#include <net-snmp/library/snmpUDPDomain.h>
+#include <net-snmp/library/snmpUDPIPv4BaseDomain.h>
+#include <net-snmp/library/snmpSocketBaseDomain.h>
+#include <net-snmp/library/system.h>
+#include <net-snmp/library/tools.h>
+
+#include "inet_ntop.h"
+#include "inet_pton.h"
+
+#ifndef INADDR_NONE
+#define INADDR_NONE	-1
+#endif
+
+#ifndef INET_ADDRSTRLEN
+#define INET_ADDRSTRLEN 16
+#endif
+
+#if defined(IP_RECVDSTADDR) && defined(__DragonFly__)
+# ifndef IP_SENDSRCADDR
+#  define IP_SENDSRCADDR IP_RECVDSTADDR /* DragonFly BSD */
+# endif
+#endif
+
+static netsnmp_tdomain udpDomain;
+
+/*
+ * needs to be in sync with the definitions in snmplib/snmpTCPDomain.c 
+ * and perl/agent/agent.xs 
+ */
+typedef netsnmp_indexed_addr_pair netsnmp_udp_addr_pair;
+
+/*
+ * not static, since snmpUDPIPv6Domain needs it, but not public, either.
+ * (ie don't put it in a public header.)
+ */
+void _netsnmp_udp_sockopt_set(int fd, int server);
+int
+netsnmp_sockaddr_in2(struct sockaddr_in *addr,
+                     const char *inpeername, const char *default_target);
+
+/*
+ * Return a string representing the address in data, or else the "far end"
+ * address if data is NULL.  
+ */
+
+char *
+netsnmp_udp_fmtaddr(netsnmp_transport *t, void *data, int len)
+{
+    return netsnmp_ipv4_fmtaddr("UDP", t, data, len);
+}
+
+
+#if defined(HAVE_IP_PKTINFO) || defined(HAVE_IP_RECVDSTADDR)
+
+int netsnmp_udp_recvfrom(int s, void *buf, int len, struct sockaddr *from, socklen_t *fromlen, struct sockaddr *dstip, socklen_t *dstlen, int *if_index)
+{
+    /** udpiv4 just calls udpbase. should we skip directly to there? */
+    return netsnmp_udpipv4_recvfrom(s, buf, len, from, fromlen, dstip, dstlen,
+                                    if_index);
+}
+
+int netsnmp_udp_sendto(int fd, struct in_addr *srcip, int if_index, struct sockaddr *remote,
+                void *data, int len)
+{
+    /** udpiv4 just calls udpbase. should we skip directly to there? */
+    return netsnmp_udpipv4_sendto(fd, srcip, if_index, remote, data, len);
+}
+#endif /* HAVE_IP_PKTINFO || HAVE_IP_RECVDSTADDR */
+
+/*
+ * Open a UDP-based transport for SNMP.  Local is TRUE if addr is the local
+ * address to bind to (i.e. this is a server-type session); otherwise addr is 
+ * the remote address to send things to.  
+ */
+
+netsnmp_transport *
+netsnmp_udp_transport(struct sockaddr_in *addr, int local)
+{
+    netsnmp_transport *t = NULL;
+
+    t = netsnmp_udpipv4base_transport(addr, local);
+    if (NULL == t) {
+        return NULL;
+    }
+
+    /*
+     * Set Domain
+     */
+
+    t->domain = netsnmpUDPDomain;
+    t->domain_length = netsnmpUDPDomain_len;
+
+    /*
+     * 16-bit length field, 8 byte UDP header, 20 byte IPv4 header  
+     */
+
+    t->msgMaxSize = 0xffff - 8 - 20;
+    t->f_recv     = netsnmp_udpbase_recv;
+    t->f_send     = netsnmp_udpbase_send;
+    t->f_close    = netsnmp_socketbase_close;
+    t->f_accept   = NULL;
+    t->f_fmtaddr  = netsnmp_udp_fmtaddr;
+
+    return t;
+}
+
+#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
+/*
+ * The following functions provide the "com2sec" configuration token
+ * functionality for compatibility.
+ */
+
+#define EXAMPLE_NETWORK		"NETWORK"
+#define EXAMPLE_COMMUNITY	"COMMUNITY"
+
+typedef struct com2SecEntry_s {
+    const char *secName;
+    const char *contextName;
+    struct com2SecEntry_s *next;
+    in_addr_t   network;
+    in_addr_t   mask;
+    const char  community[1];
+} com2SecEntry;
+
+static com2SecEntry   *com2SecList = NULL, *com2SecListLast = NULL;
+
+void
+netsnmp_udp_parse_security(const char *token, char *param)
+{
+    char            secName[VACMSTRINGLEN + 1];
+    size_t          secNameLen;
+    char            contextName[VACMSTRINGLEN + 1];
+    size_t          contextNameLen;
+    char            community[COMMUNITY_MAX_LEN + 1];
+    size_t          communityLen;
+    char            source[270]; /* dns-name(253)+/(1)+mask(15)+\0(1) */
+    struct in_addr  network, mask;
+
+    /*
+     * Get security, source address/netmask and community strings.
+     */
+
+    param = copy_nword( param, secName, sizeof(secName));
+    if (strcmp(secName, "-Cn") == 0) {
+        if (!param) {
+            config_perror("missing CONTEXT_NAME parameter");
+            return;
+        }
+        param = copy_nword( param, contextName, sizeof(contextName));
+        contextNameLen = strlen(contextName) + 1;
+        if (contextNameLen > VACMSTRINGLEN) {
+            config_perror("context name too long");
+            return;
+        }
+        if (!param) {
+            config_perror("missing NAME parameter");
+            return;
+        }
+        param = copy_nword( param, secName, sizeof(secName));
+    } else {
+        contextNameLen = 0;
+    }
+
+    secNameLen = strlen(secName) + 1;
+    if (secNameLen == 1) {
+        config_perror("empty NAME parameter");
+        return;
+    } else if (secNameLen > VACMSTRINGLEN) {
+        config_perror("security name too long");
+        return;
+    }
+
+    if (!param) {
+        config_perror("missing SOURCE parameter");
+        return;
+    }
+    param = copy_nword( param, source, sizeof(source));
+    if (source[0] == '\0') {
+        config_perror("empty SOURCE parameter");
+        return;
+    }
+    if (strncmp(source, EXAMPLE_NETWORK, strlen(EXAMPLE_NETWORK)) == 0) {
+        config_perror("example config NETWORK not properly configured");
+        return;
+    }
+
+    if (!param) {
+        config_perror("missing COMMUNITY parameter");
+        return;
+    }
+    param = copy_nword( param, community, sizeof(community));
+    if (community[0] == '\0') {
+        config_perror("empty COMMUNITY parameter");
+        return;
+    }
+    communityLen = strlen(community) + 1;
+    if (communityLen >= COMMUNITY_MAX_LEN) {
+        config_perror("community name too long");
+        return;
+    }
+    if (communityLen == sizeof(EXAMPLE_COMMUNITY) &&
+        memcmp(community, EXAMPLE_COMMUNITY, sizeof(EXAMPLE_COMMUNITY)) == 0) {
+        config_perror("example config COMMUNITY not properly configured");
+        return;
+    }
+
+    /* Deal with the "default" case first. */
+    if (strcmp(source, "default") == 0) {
+        network.s_addr = 0;
+        mask.s_addr = 0;
+    } else {
+        /* Split the source/netmask parts */
+        char *strmask = strchr(source, '/');
+        if (strmask != NULL)
+            /* Mask given. */
+            *strmask++ = '\0';
+
+        /* Try interpreting as a dotted quad. */
+        if (inet_pton(AF_INET, source, &network) == 0) {
+            /* Nope, wasn't a dotted quad.  Must be a hostname. */
+            int ret = netsnmp_gethostbyname_v4(source, &network.s_addr);
+            if (ret < 0) {
+                config_perror("cannot resolve source hostname");
+                return;
+            }
+        }
+
+        /* Now work out the mask. */
+        if (strmask == NULL || *strmask == '\0') {
+            /* No mask was given. Assume /32 */
+            mask.s_addr = (in_addr_t)(~0UL);
+        } else {
+            /* Try to interpret mask as a "number of 1 bits". */
+            char* cp;
+            long maskLen = strtol(strmask, &cp, 10);
+            if (*cp == '\0') {
+                if (0 < maskLen && maskLen <= 32)
+                    mask.s_addr = htonl((in_addr_t)(~0UL << (32 - maskLen)));
+                else if (maskLen == 0)
+                    mask.s_addr = 0;
+                else {
+                    config_perror("bad mask length");
+                    return;
+                }
+            }
+            /* Try to interpret mask as a dotted quad. */
+            else if (inet_pton(AF_INET, strmask, &mask) == 0) {
+                config_perror("bad mask");
+                return;
+            }
+
+            /* Check that the network and mask are consistent. */
+            if (network.s_addr & ~mask.s_addr) {
+                config_perror("source/mask mismatch");
+                return;
+            }
+        }
+    }
+
+    {
+        void* v = malloc(offsetof(com2SecEntry, community) + communityLen +
+                         secNameLen + contextNameLen);
+
+        com2SecEntry* e = (com2SecEntry*)v;
+        char* last = ((char*)v) + offsetof(com2SecEntry, community);
+
+        if (v == NULL) {
+            config_perror("memory error");
+            return;
+        }
+
+        /*
+         * Everything is okay.  Copy the parameters to the structure allocated
+         * above and add it to END of the list.
+         */
+
+        {
+          char buf1[INET_ADDRSTRLEN];
+          char buf2[INET_ADDRSTRLEN];
+          DEBUGMSGTL(("netsnmp_udp_parse_security",
+                      "<\"%s\", %s/%s> => \"%s\"\n", community,
+                      inet_ntop(AF_INET, &network, buf1, sizeof(buf1)),
+                      inet_ntop(AF_INET, &mask, buf2, sizeof(buf2)),
+                      secName));
+        }
+
+        memcpy(last, community, communityLen);
+        last += communityLen;
+        memcpy(last, secName, secNameLen);
+        e->secName = last;
+        last += secNameLen;
+        if (contextNameLen) {
+            memcpy(last, contextName, contextNameLen);
+            e->contextName = last;
+        } else
+            e->contextName = last - 1;
+        e->network = network.s_addr;
+        e->mask = mask.s_addr;
+        e->next = NULL;
+
+        if (com2SecListLast != NULL) {
+            com2SecListLast->next = e;
+            com2SecListLast = e;
+        } else {
+            com2SecListLast = com2SecList = e;
+        }
+    }
+}
+
+void
+netsnmp_udp_com2SecList_free(void)
+{
+    com2SecEntry   *e = com2SecList;
+    while (e != NULL) {
+        com2SecEntry   *tmp = e;
+        e = e->next;
+        free(tmp);
+    }
+    com2SecList = com2SecListLast = NULL;
+}
+#endif /* support for community based SNMP */
+
+void
+netsnmp_udp_agent_config_tokens_register(void)
+{
+#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
+    register_app_config_handler("com2sec", netsnmp_udp_parse_security,
+                                netsnmp_udp_com2SecList_free,
+                                "[-Cn CONTEXT] secName IPv4-network-address[/netmask] community");
+#endif /* support for community based SNMP */
+}
+
+
+
+/*
+ * Return 0 if there are no com2sec entries, or return 1 if there ARE com2sec
+ * entries.  On return, if a com2sec entry matched the passed parameters,
+ * then *secName points at the appropriate security name, or is NULL if the
+ * parameters did not match any com2sec entry.
+ */
+
+#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
+int
+netsnmp_udp_getSecName(void *opaque, int olength,
+                       const char *community,
+                       size_t community_len, const char **secName,
+                       const char **contextName)
+{
+    const com2SecEntry *c;
+    netsnmp_udp_addr_pair *addr_pair = (netsnmp_udp_addr_pair *) opaque;
+    struct sockaddr_in *from = (struct sockaddr_in *) &(addr_pair->remote_addr);
+    char           *ztcommunity = NULL;
+
+    if (secName != NULL) {
+        *secName = NULL;  /* Haven't found anything yet */
+    }
+
+    /*
+     * Special case if there are NO entries (as opposed to no MATCHING
+     * entries).
+     */
+
+    if (com2SecList == NULL) {
+        DEBUGMSGTL(("netsnmp_udp_getSecName", "no com2sec entries\n"));
+        return 0;
+    }
+
+    /*
+     * If there is no IPv4 source address, then there can be no valid security
+     * name.
+     */
+
+   DEBUGMSGTL(("netsnmp_udp_getSecName", "opaque = %p (len = %d), sizeof = %d, family = %d (%d)\n",
+   opaque, olength, (int)sizeof(netsnmp_udp_addr_pair), from->sin_family, AF_INET));
+    if (opaque == NULL || olength != sizeof(netsnmp_udp_addr_pair) ||
+        from->sin_family != AF_INET) {
+        DEBUGMSGTL(("netsnmp_udp_getSecName",
+		    "no IPv4 source address in PDU?\n"));
+        return 1;
+    }
+
+    DEBUGIF("netsnmp_udp_getSecName") {
+	ztcommunity = (char *)malloc(community_len + 1);
+	if (ztcommunity != NULL) {
+	    memcpy(ztcommunity, community, community_len);
+	    ztcommunity[community_len] = '\0';
+	}
+
+	DEBUGMSGTL(("netsnmp_udp_getSecName", "resolve <\"%s\", 0x%08lx>\n",
+		    ztcommunity ? ztcommunity : "<malloc error>",
+		    (unsigned long)(from->sin_addr.s_addr)));
+    }
+
+    for (c = com2SecList; c != NULL; c = c->next) {
+        {
+            char buf1[INET_ADDRSTRLEN];
+            char buf2[INET_ADDRSTRLEN];
+            DEBUGMSGTL(("netsnmp_udp_getSecName","compare <\"%s\", %s/%s>",
+                        c->community,
+                        inet_ntop(AF_INET, &c->network, buf1, sizeof(buf1)),
+                        inet_ntop(AF_INET, &c->mask, buf2, sizeof(buf2))));
+        }
+        if ((community_len == strlen(c->community)) &&
+	    (memcmp(community, c->community, community_len) == 0) &&
+            ((from->sin_addr.s_addr & c->mask) == c->network)) {
+            DEBUGMSG(("netsnmp_udp_getSecName", "... SUCCESS\n"));
+            if (secName != NULL) {
+                *secName = c->secName;
+                *contextName = c->contextName;
+            }
+            break;
+        }
+        DEBUGMSG(("netsnmp_udp_getSecName", "... nope\n"));
+    }
+    if (ztcommunity != NULL) {
+        free(ztcommunity);
+    }
+    return 1;
+}
+#endif /* support for community based SNMP */
+
+
+netsnmp_transport *
+netsnmp_udp_create_tstring(const char *str, int local,
+			   const char *default_target)
+{
+    struct sockaddr_in addr;
+
+    if (netsnmp_sockaddr_in2(&addr, str, default_target)) {
+        return netsnmp_udp_transport(&addr, local);
+    } else {
+        return NULL;
+    }
+}
+
+
+netsnmp_transport *
+netsnmp_udp_create_ostring(const u_char * o, size_t o_len, int local)
+{
+    struct sockaddr_in addr;
+
+    if (o_len == 6) {
+        unsigned short porttmp = (o[4] << 8) + o[5];
+        addr.sin_family = AF_INET;
+        memcpy((u_char *) & (addr.sin_addr.s_addr), o, 4);
+        addr.sin_port = htons(porttmp);
+        return netsnmp_udp_transport(&addr, local);
+    }
+    return NULL;
+}
+
+
+void
+netsnmp_udp_ctor(void)
+{
+    udpDomain.name = netsnmpUDPDomain;
+    udpDomain.name_length = netsnmpUDPDomain_len;
+    udpDomain.prefix = (const char**)calloc(2, sizeof(char *));
+    udpDomain.prefix[0] = "udp";
+
+    udpDomain.f_create_from_tstring     = NULL;
+    udpDomain.f_create_from_tstring_new = netsnmp_udp_create_tstring;
+    udpDomain.f_create_from_ostring     = netsnmp_udp_create_ostring;
+
+    netsnmp_tdomain_register(&udpDomain);
+}
diff --git a/snmplib/transports/snmpUDPIPv4BaseDomain.c b/snmplib/transports/snmpUDPIPv4BaseDomain.c
new file mode 100644
index 0000000..fd890a7
--- /dev/null
+++ b/snmplib/transports/snmpUDPIPv4BaseDomain.c
@@ -0,0 +1,218 @@
+/* IPV4 base transport support functions
+ */
+
+#include <net-snmp/net-snmp-config.h>
+
+#include <stddef.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <ctype.h>
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#if HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#include <errno.h>
+
+#include <net-snmp/types.h>
+#include <net-snmp/library/snmp_debug.h>
+#include <net-snmp/library/tools.h>
+#include <net-snmp/library/snmp_assert.h>
+#include <net-snmp/library/default_store.h>
+
+#include <net-snmp/library/snmpSocketBaseDomain.h>
+#include <net-snmp/library/snmpUDPIPv4BaseDomain.h>
+#include <net-snmp/library/snmpUDPBaseDomain.h>
+
+#if defined(IP_RECVDSTADDR) && defined(__DragonFly__)
+# ifndef IP_SENDSRCADDR
+#  define IP_SENDSRCADDR IP_RECVDSTADDR /* DragonFly BSD */
+# endif
+#endif
+
+#if defined(HAVE_IP_PKTINFO) || defined(HAVE_IP_RECVDSTADDR)
+
+int netsnmp_udpipv4_recvfrom(int s, void *buf, int len, struct sockaddr *from,
+                             socklen_t *fromlen, struct sockaddr *dstip,
+                             socklen_t *dstlen, int *if_index)
+{
+    return netsnmp_udpbase_recvfrom(s, buf, len, from, fromlen, dstip, dstlen,
+                                    if_index);
+}
+
+int netsnmp_udpipv4_sendto(int fd, struct in_addr *srcip, int if_index,
+                           struct sockaddr *remote, void *data, int len)
+{
+    return netsnmp_udpbase_sendto(fd, srcip, if_index, remote, data, len);
+}
+#endif /* HAVE_IP_PKTINFO || HAVE_IP_RECVDSTADDR */
+
+netsnmp_transport *
+netsnmp_udpipv4base_transport(struct sockaddr_in *addr, int local)
+{
+    netsnmp_transport *t = NULL;
+    int             rc = 0, rc2;
+    char           *client_socket = NULL;
+    netsnmp_indexed_addr_pair addr_pair;
+    socklen_t       local_addr_len;
+
+    if (addr == NULL || addr->sin_family != AF_INET) {
+        return NULL;
+    }
+
+    memset(&addr_pair, 0, sizeof(netsnmp_indexed_addr_pair));
+    memcpy(&(addr_pair.remote_addr), addr, sizeof(struct sockaddr_in));
+
+    t = SNMP_MALLOC_TYPEDEF(netsnmp_transport);
+    netsnmp_assert_or_return(t != NULL, NULL);
+
+    DEBUGIF("netsnmp_udpbase") {
+        char *str = netsnmp_udp_fmtaddr(NULL, (void *)&addr_pair,
+                                        sizeof(netsnmp_indexed_addr_pair));
+        DEBUGMSGTL(("netsnmp_udpbase", "open %s %s\n",
+                    local ? "local" : "remote", str));
+        free(str);
+    }
+
+    t->sock = socket(PF_INET, SOCK_DGRAM, 0);
+    DEBUGMSGTL(("UDPBase", "openned socket %d as local=%d\n", t->sock, local)); 
+    if (t->sock < 0) {
+        netsnmp_transport_free(t);
+        return NULL;
+    }
+
+    _netsnmp_udp_sockopt_set(t->sock, local);
+
+    if (local) {
+        /*
+         * This session is inteneded as a server, so we must bind on to the
+         * given IP address, which may include an interface address, or could
+         * be INADDR_ANY, but certainly includes a port number.
+         */
+
+      t->local = (u_char *) malloc(6);
+        if (t->local == NULL) {
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        memcpy(t->local, (u_char *) & (addr->sin_addr.s_addr), 4);
+        t->local[4] = (htons(addr->sin_port) & 0xff00) >> 8;
+        t->local[5] = (htons(addr->sin_port) & 0x00ff) >> 0;
+        t->local_length = 6;
+
+#ifndef WIN32
+#if defined(HAVE_IP_PKTINFO)
+        { 
+            int sockopt = 1;
+            if (setsockopt(t->sock, SOL_IP, IP_PKTINFO, &sockopt, sizeof sockopt) == -1) {
+                DEBUGMSGTL(("netsnmp_udpbase", "couldn't set IP_PKTINFO: %s\n",
+                    strerror(errno)));
+                netsnmp_transport_free(t);
+                return NULL;
+            }
+            DEBUGMSGTL(("netsnmp_udpbase", "set IP_PKTINFO\n"));
+        }
+#elif defined(HAVE_IP_RECVDSTADDR)
+        {
+            int sockopt = 1;
+            if (setsockopt(t->sock, IPPROTO_IP, IP_RECVDSTADDR, &sockopt, sizeof sockopt) == -1) {
+                DEBUGMSGTL(("netsnmp_udp", "couldn't set IP_RECVDSTADDR: %s\n",
+                            strerror(errno)));
+                netsnmp_transport_free(t);
+                return NULL;
+            }
+            DEBUGMSGTL(("netsnmp_udp", "set IP_RECVDSTADDR\n"));
+        }
+#endif
+#else /* !defined(WIN32) */
+        { 
+            int sockopt = 1;
+            if (setsockopt(t->sock, IPPROTO_IP, IP_PKTINFO, (void *)&sockopt,
+			   sizeof(sockopt)) == -1) {
+                DEBUGMSGTL(("netsnmp_udpbase", "couldn't set IP_PKTINFO: %d\n",
+                            WSAGetLastError()));
+            } else {
+                DEBUGMSGTL(("netsnmp_udpbase", "set IP_PKTINFO\n"));
+            }
+        }
+#endif /* !defined(WIN32) */
+        rc = bind(t->sock, (struct sockaddr *) addr,
+                  sizeof(struct sockaddr));
+        if (rc != 0) {
+            netsnmp_socketbase_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        t->data = NULL;
+        t->data_length = 0;
+    } else {
+        /*
+         * This is a client session.  If we've been given a
+         * client address to send from, then bind to that.
+         * Otherwise the send will use "something sensible".
+         */
+        client_socket = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
+                                              NETSNMP_DS_LIB_CLIENT_ADDR);
+        if (client_socket) {
+            struct sockaddr_in client_addr;
+            netsnmp_sockaddr_in2(&client_addr, client_socket, NULL);
+            client_addr.sin_port = 0;
+            DEBUGMSGTL(("netsnmp_udpbase", "binding socket: %d\n", t->sock));
+            rc = bind(t->sock, (struct sockaddr *)&client_addr,
+                  sizeof(struct sockaddr));
+            if ( rc != 0 ) {
+                DEBUGMSGTL(("netsnmp_udpbase", "failed to bind for clientaddr: %d %s\n",
+                            errno, strerror(errno)));
+                netsnmp_socketbase_close(t);
+                netsnmp_transport_free(t);
+                return NULL;
+            }
+            local_addr_len = sizeof(addr_pair.local_addr);
+            rc2 = getsockname(t->sock, (struct sockaddr*)&addr_pair.local_addr,
+                              &local_addr_len);
+            netsnmp_assert(rc2 == 0);
+        }
+
+        DEBUGIF("netsnmp_udpbase") {
+            char *str = netsnmp_udp_fmtaddr(NULL, (void *)&addr_pair,
+                                            sizeof(netsnmp_indexed_addr_pair));
+            DEBUGMSGTL(("netsnmp_udpbase", "client open %s\n", str));
+            free(str);
+        }
+
+        /*
+         * Save the (remote) address in the
+         * transport-specific data pointer for later use by netsnmp_udp_send.
+         */
+
+        t->data = malloc(sizeof(netsnmp_indexed_addr_pair));
+        t->remote = (u_char *)malloc(6);
+        if (t->data == NULL || t->remote == NULL) {
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        memcpy(t->remote, (u_char *) & (addr->sin_addr.s_addr), 4);
+        t->remote[4] = (htons(addr->sin_port) & 0xff00) >> 8;
+        t->remote[5] = (htons(addr->sin_port) & 0x00ff) >> 0;
+        t->remote_length = 6;
+        memcpy(t->data, &addr_pair, sizeof(netsnmp_indexed_addr_pair));
+        t->data_length = sizeof(netsnmp_indexed_addr_pair);
+    }
+
+    return t;
+}
diff --git a/snmplib/transports/snmpUDPIPv6Domain.c b/snmplib/transports/snmpUDPIPv6Domain.c
new file mode 100644
index 0000000..ce40e40
--- /dev/null
+++ b/snmplib/transports/snmpUDPIPv6Domain.c
@@ -0,0 +1,778 @@
+#include <net-snmp/net-snmp-config.h>
+
+#include <net-snmp/library/snmpUDPIPv6Domain.h>
+
+#include <net-snmp/types.h>
+
+#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <ctype.h>
+#include <errno.h>
+
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#include <stddef.h>
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
+#if defined(HAVE_WINSOCK_H) && !defined(mingw32)
+static const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT;
+#endif
+
+#if HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#if HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#if HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#if HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+
+#if HAVE_DMALLOC_H
+#include <dmalloc.h>
+#endif
+
+#if HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY
+#define SS_FAMILY ss_family
+#elif HAVE_STRUCT_SOCKADDR_STORAGE___SS_FAMILY
+#define SS_FAMILY __ss_family
+#endif
+
+#if defined(darwin)
+#include <stdint.h> /* for uint8_t */
+#endif
+
+#include <net-snmp/types.h>
+#include <net-snmp/output_api.h>
+#include <net-snmp/config_api.h>
+
+#include <net-snmp/library/snmp_transport.h>
+#include <net-snmp/library/snmpSocketBaseDomain.h>
+
+#include "inet_ntop.h"
+#include "inet_pton.h"
+
+oid netsnmp_UDPIPv6Domain[] = { TRANSPORT_DOMAIN_UDP_IPV6 };
+static netsnmp_tdomain udp6Domain;
+
+/*
+ * from snmpUDPDomain. not static, but not public, either.
+ * (ie don't put it in a public header.)
+ */
+extern void _netsnmp_udp_sockopt_set(int fd, int server);
+
+/*
+ * Return a string representing the address in data, or else the "far end"
+ * address if data is NULL.  
+ */
+
+static char *
+netsnmp_udp6_fmtaddr(netsnmp_transport *t, void *data, int len)
+{
+    return netsnmp_ipv6_fmtaddr("UDP/IPv6", t, data, len);
+}
+
+
+
+/*
+ * You can write something into opaque that will subsequently get passed back 
+ * to your send function if you like.  For instance, you might want to
+ * remember where a PDU came from, so that you can send a reply there...  
+ */
+
+static int
+netsnmp_udp6_recv(netsnmp_transport *t, void *buf, int size,
+		  void **opaque, int *olength)
+{
+    int             rc = -1;
+    socklen_t       fromlen = sizeof(struct sockaddr_in6);
+    struct sockaddr *from;
+
+    if (t != NULL && t->sock >= 0) {
+        from = (struct sockaddr *) malloc(sizeof(struct sockaddr_in6));
+        if (from == NULL) {
+            *opaque = NULL;
+            *olength = 0;
+            return -1;
+        } else {
+            memset(from, 0, fromlen);
+        }
+
+	while (rc < 0) {
+	  rc = recvfrom(t->sock, buf, size, 0, from, &fromlen);
+	  if (rc < 0 && errno != EINTR) {
+	    break;
+	  }
+	}
+
+        if (rc >= 0) {
+            DEBUGIF("netsnmp_udp6") {
+                char *str = netsnmp_udp6_fmtaddr(NULL, from, fromlen);
+                DEBUGMSGTL(("netsnmp_udp6",
+                            "recvfrom fd %d got %d bytes (from %s)\n", t->sock,
+                            rc, str));
+                free(str);
+            }
+        } else {
+            DEBUGMSGTL(("netsnmp_udp6", "recvfrom fd %d err %d (\"%s\")\n",
+			t->sock, errno, strerror(errno)));
+        }
+        *opaque = (void *) from;
+        *olength = sizeof(struct sockaddr_in6);
+    }
+    return rc;
+}
+
+
+
+static int
+netsnmp_udp6_send(netsnmp_transport *t, void *buf, int size,
+		  void **opaque, int *olength)
+{
+    int rc = -1;
+    struct sockaddr *to = NULL;
+
+    if (opaque != NULL && *opaque != NULL &&
+        *olength == sizeof(struct sockaddr_in6)) {
+        to = (struct sockaddr *) (*opaque);
+    } else if (t != NULL && t->data != NULL &&
+               t->data_length == sizeof(struct sockaddr_in6)) {
+        to = (struct sockaddr *) (t->data);
+    }
+
+    if (to != NULL && t != NULL && t->sock >= 0) {
+        DEBUGIF("netsnmp_udp6") {
+            char *str = netsnmp_udp6_fmtaddr(NULL, (void *)to,
+                                             sizeof(struct sockaddr_in6));
+            DEBUGMSGTL(("netsnmp_udp6",
+                        "send %d bytes from %p to %s on fd %d\n",
+                        size, buf, str, t->sock));
+            free(str);
+        }
+	while (rc < 0) {
+	    rc = sendto(t->sock, buf, size, 0, to,sizeof(struct sockaddr_in6));
+	    if (rc < 0 && errno != EINTR) {
+		break;
+	    }
+	}
+    }
+    return rc;
+}
+
+
+/*
+ * Open a UDP/IPv6-based transport for SNMP.  Local is TRUE if addr is the
+ * local address to bind to (i.e. this is a server-type session); otherwise
+ * addr is the remote address to send things to.  
+ */
+
+netsnmp_transport *
+netsnmp_udp6_transport(struct sockaddr_in6 *addr, int local)
+{
+    netsnmp_transport *t = NULL;
+    int             rc = 0;
+
+    if (addr == NULL || addr->sin6_family != AF_INET6) {
+        return NULL;
+    }
+
+    t = (netsnmp_transport *) malloc(sizeof(netsnmp_transport));
+    if (t == NULL) {
+        return NULL;
+    }
+
+    DEBUGIF("netsnmp_udp6") {
+        char *str = netsnmp_udp6_fmtaddr(NULL, (void *) addr,
+                                         sizeof(struct sockaddr_in6));
+        DEBUGMSGTL(("netsnmp_udp6", "open %s %s\n", local ? "local" : "remote",
+                    str));
+        free(str);
+    }
+
+    memset(t, 0, sizeof(netsnmp_transport));
+
+    t->domain = netsnmp_UDPIPv6Domain;
+    t->domain_length =
+        sizeof(netsnmp_UDPIPv6Domain) / sizeof(netsnmp_UDPIPv6Domain[0]);
+
+    t->sock = socket(PF_INET6, SOCK_DGRAM, 0);
+    if (t->sock < 0) {
+        netsnmp_transport_free(t);
+        return NULL;
+    }
+
+    _netsnmp_udp_sockopt_set(t->sock, local);
+
+    if (local) {
+        /*
+         * This session is inteneded as a server, so we must bind on to the
+         * given IP address, which may include an interface address, or could
+         * be INADDR_ANY, but certainly includes a port number.
+         */
+
+#ifdef IPV6_V6ONLY
+        /* Try to restrict PF_INET6 socket to IPv6 communications only. */
+        {
+	  int one=1;
+	  if (setsockopt(t->sock, IPPROTO_IPV6, IPV6_V6ONLY, (char *)&one, sizeof(one)) != 0) {
+	    DEBUGMSGTL(("netsnmp_udp6", "couldn't set IPV6_V6ONLY to %d bytes: %s\n", one, strerror(errno)));
+	  } 
+	}
+#endif
+
+        rc = bind(t->sock, (struct sockaddr *) addr,
+		  sizeof(struct sockaddr_in6));
+        if (rc != 0) {
+            netsnmp_socketbase_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        t->local = (unsigned char*)malloc(18);
+        if (t->local == NULL) {
+            netsnmp_socketbase_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        memcpy(t->local, addr->sin6_addr.s6_addr, 16);
+        t->local[16] = (addr->sin6_port & 0xff00) >> 8;
+        t->local[17] = (addr->sin6_port & 0x00ff) >> 0;
+        t->local_length = 18;
+        t->data = NULL;
+        t->data_length = 0;
+    } else {
+        /*
+         * This is a client session.  Save the address in the
+         * transport-specific data pointer for later use by netsnmp_udp6_send.
+         */
+
+        t->data = malloc(sizeof(struct sockaddr_in6));
+        if (t->data == NULL) {
+            netsnmp_socketbase_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        memcpy(t->data, addr, sizeof(struct sockaddr_in6));
+        t->data_length = sizeof(struct sockaddr_in6);
+        t->remote = (unsigned char*)malloc(18);
+        if (t->remote == NULL) {
+            netsnmp_socketbase_close(t);
+            netsnmp_transport_free(t);
+            return NULL;
+        }
+        memcpy(t->remote, addr->sin6_addr.s6_addr, 16);
+        t->remote[16] = (addr->sin6_port & 0xff00) >> 8;
+        t->remote[17] = (addr->sin6_port & 0x00ff) >> 0;
+        t->remote_length = 18;
+    }
+
+    /*
+     * 16-bit length field, 8 byte UDP header, 40 byte IPv6 header.  
+     */
+
+    t->msgMaxSize = 0xffff - 8 - 40;
+    t->f_recv     = netsnmp_udp6_recv;
+    t->f_send     = netsnmp_udp6_send;
+    t->f_close    = netsnmp_socketbase_close;
+    t->f_accept   = NULL;
+    t->f_fmtaddr  = netsnmp_udp6_fmtaddr;
+
+    return t;
+}
+
+
+#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
+/*
+ * The following functions provide the "com2sec6" configuration token
+ * functionality for compatibility.
+ */
+
+#define EXAMPLE_NETWORK       "NETWORK"
+#define EXAMPLE_COMMUNITY     "COMMUNITY"
+
+typedef struct com2Sec6Entry_s {
+    const char     *secName;
+    const char     *contextName;
+    struct com2Sec6Entry_s *next;
+    struct in6_addr network;
+    struct in6_addr mask;
+    const char      community[1];
+} com2Sec6Entry;
+
+static com2Sec6Entry  *com2Sec6List = NULL, *com2Sec6ListLast = NULL;
+
+
+NETSNMP_STATIC_INLINE int
+create_com2Sec6Entry(const struct addrinfo* const run,
+                     const struct in6_addr* const mask,
+                     const char* const secName,
+                     const size_t secNameLen,
+                     const char* const contextName,
+                     const size_t contextNameLen,
+                     const char* const community,
+                     const size_t communityLen,
+                     com2Sec6Entry** const begin,
+                     com2Sec6Entry** const end)
+{
+    const struct sockaddr_in6 * const run_addr =
+        (const struct sockaddr_in6*)run->ai_addr;
+    int i;
+
+    /* Check that the network and mask are consistent. */
+    for (i = 0; i < 16; ++i) {
+        if (run_addr->sin6_addr.s6_addr[i] & ~mask->s6_addr[i]) {
+            config_perror("source/mask mismatch");
+            return 1;
+        }
+    }
+
+    {
+        char buf1[INET6_ADDRSTRLEN];
+        char buf2[INET6_ADDRSTRLEN];
+        DEBUGMSGTL(("netsnmp_udp6_parse_security",
+                    "<\"%s\", %s/%s> => \"%s\"\n",
+                    community,
+                    inet_ntop(AF_INET6, &run_addr->sin6_addr,
+                              buf1, sizeof(buf1)),
+                    inet_ntop(AF_INET6, mask, buf2, sizeof(buf2)),
+                    secName));
+    }
+
+    {
+        /* Allocate all the needed chunks */
+        void * const v =
+            malloc(offsetof(com2Sec6Entry, community) + communityLen +
+                   secNameLen + contextNameLen);
+
+        com2Sec6Entry* const e = (com2Sec6Entry*)v;
+        char *last = ((char*)v) + offsetof(com2Sec6Entry, community);
+
+        if (v == NULL) {
+            config_perror("memory error");
+            return 1;
+        }
+
+        memcpy(last, community, communityLen);
+        last += communityLen;
+
+        memcpy(last, secName, secNameLen);
+        e->secName = last;
+        last += secNameLen;
+
+        if (contextNameLen) {
+            memcpy(last, contextName, contextNameLen);
+            e->contextName = last;
+        } else
+            e->contextName = last - 1;
+
+        memcpy(&e->network, &run_addr->sin6_addr, sizeof(struct in6_addr));
+        memcpy(&e->mask, mask, sizeof(struct in6_addr));
+
+        e->next = NULL;
+        if (*end != NULL) {
+            (*end)->next = e;
+            *end = e;
+        } else {
+            *end = *begin = e;
+        }
+    }
+    return 0;
+}
+
+void
+netsnmp_udp6_parse_security(const char *token, char *param)
+{
+    char            secName[VACMSTRINGLEN + 1];
+    size_t          secNameLen;
+    char            contextName[VACMSTRINGLEN + 1];
+    size_t          contextNameLen;
+    char            community[COMMUNITY_MAX_LEN + 1];
+    size_t          communityLen;
+    char            source[300]; /* dns-name(253)+/(1)+mask(45)+\0(1) */
+    struct in6_addr mask;
+
+    /*
+     * Get security, source address/netmask and community strings.
+     */
+
+    param = copy_nword( param, secName, sizeof(secName));
+    if (strcmp(secName, "-Cn") == 0) {
+        if (!param) {
+            config_perror("missing CONTEXT_NAME parameter");
+            return;
+        }
+        param = copy_nword( param, contextName, sizeof(contextName));
+        contextNameLen = strlen(contextName) + 1;
+        if (contextNameLen > VACMSTRINGLEN) {
+            config_perror("context name too long");
+            return;
+        }
+        if (!param) {
+            config_perror("missing NAME parameter");
+            return;
+        }
+        param = copy_nword( param, secName, sizeof(secName));
+    } else {
+        contextNameLen = 0;
+    }
+
+    secNameLen = strlen(secName) + 1;
+    if (secNameLen == 1) {
+        config_perror("empty NAME parameter");
+        return;
+    } else if (secNameLen > VACMSTRINGLEN) {
+        config_perror("security name too long");
+        return;
+    }
+
+    if (!param) {
+        config_perror("missing SOURCE parameter");
+        return;
+    }
+    param = copy_nword( param, source, sizeof(source));
+    if (source[0] == '\0') {
+        config_perror("empty SOURCE parameter");
+        return;
+    }
+    if (strncmp(source, EXAMPLE_NETWORK, strlen(EXAMPLE_NETWORK)) == 0) {
+        config_perror("example config NETWORK not properly configured");
+        return;
+    }
+
+    if (!param) {
+        config_perror("missing COMMUNITY parameter");
+        return;
+    }
+    param = copy_nword( param, community, sizeof(community));
+    if (community[0] == '\0') {
+        config_perror("empty COMMUNITY parameter");
+        return;
+    }
+    communityLen = strlen(community) + 1;
+    if (communityLen >= COMMUNITY_MAX_LEN) {
+        config_perror("community name too long");
+        return;
+    }
+    if (communityLen == sizeof(EXAMPLE_COMMUNITY) &&
+        memcmp(community, EXAMPLE_COMMUNITY, sizeof(EXAMPLE_COMMUNITY)) == 0) {
+        config_perror("example config COMMUNITY not properly configured");
+        return;
+    }
+
+    /* Possible mask cases
+     * "default" <=> 0::0/0
+     * <hostname>[/] <=> <hostname>/128
+     * <hostname>/number <=> <hostname>/number
+     * <hostname>/<mask> <=> <hostname>/<mask>
+     */
+    {
+        /* Deal with the "default" case first. */
+        const int isdefault = strcmp(source, "default") == 0;
+
+        if (isdefault) {
+            memset(mask.s6_addr, '\0', sizeof(mask.s6_addr));
+        } else {
+            /* Split the source/netmask parts */
+            char *strmask = strchr(source, '/');
+            if (strmask != NULL)
+                /* Mask given. */
+                *strmask++ = '\0';
+
+            /* Try to interpret the mask */
+            if (strmask == NULL || *strmask == '\0') {
+                /* No mask was given. Assume /128 */
+                memset(mask.s6_addr, '\xff', sizeof(mask.s6_addr));
+            } else {
+                /* Try to interpret mask as a "number of 1 bits". */
+                char* cp;
+                long masklength = strtol(strmask, &cp, 10);
+                if (*cp == '\0') {
+                    if (0 <= masklength && masklength <= 128) {
+                        const int j = masklength / 8;
+                        const int jj = masklength % 8;
+                        memset(mask.s6_addr, '\xff', j);
+                        if (j < 16) {
+                            mask.s6_addr[j] = ((uint8_t)~0U << (8 - jj));
+                            memset(mask.s6_addr + j + 1, '\0', 15 - j);
+                        }
+                    } else {
+                        config_perror("bad mask length");
+                        return;
+                    }
+                }
+                /* Try to interpret mask numerically. */
+                else if (inet_pton(AF_INET6, strmask, &mask) != 1) {
+                    config_perror("bad mask");
+                    return;
+                }
+            }
+        }
+
+        {
+            struct sockaddr_in6 pton_addr;
+            struct addrinfo hints, *res = NULL;
+            memset(&hints, '\0', sizeof(hints));
+
+            /* First check if default, otherwise try to parse as a numeric
+             * address, if that also fails try to lookup the address */
+            if (isdefault) {
+                memset(&pton_addr.sin6_addr.s6_addr, '\0',
+                       sizeof(struct in6_addr));
+            } else if (inet_pton(AF_INET6, source, &pton_addr.sin6_addr) != 1) {
+                /* Nope, wasn't a numeric address. Must be a hostname. */
+#if HAVE_GETADDRINFO
+                int             gai_error;
+
+                hints.ai_family = AF_INET6;
+                hints.ai_socktype = SOCK_DGRAM;
+                gai_error = getaddrinfo(source, NULL, &hints, &res);
+                if (gai_error != 0) {
+                    config_perror(gai_strerror(gai_error));
+                    return;
+                }
+#else
+                config_perror("getaddrinfo() not available");
+                return;
+#endif
+            }
+            if (res == NULL) {
+                hints.ai_addrlen = sizeof(pton_addr);
+                hints.ai_addr = (struct sockaddr*)&pton_addr;
+                hints.ai_next = NULL;
+                res = &hints;
+            }
+
+            {
+                struct addrinfo *run;
+                int    failed = 0;
+                com2Sec6Entry *begin = NULL, *end = NULL;
+
+                for (run = res; run && !failed; run = run->ai_next)
+                    failed =
+                        create_com2Sec6Entry(run, &mask,
+                                             secName, secNameLen,
+                                             contextName, contextNameLen,
+                                             community, communityLen,
+                                             &begin, &end);
+
+                if (failed) {
+                    /* Free eventually allocated chunks */
+                    while (begin) {
+                        end = begin;
+                        begin = begin->next;
+                        free(end);
+                    }
+                } else if (com2Sec6ListLast != NULL) {
+                    com2Sec6ListLast->next = begin;
+                    com2Sec6ListLast = end;
+                } else {
+                    com2Sec6List = begin;
+                    com2Sec6ListLast = end;
+                }
+            }
+#if HAVE_GETADDRINFO
+            if (res != &hints)
+                freeaddrinfo(res);
+#endif
+        }
+    }
+}
+
+void
+netsnmp_udp6_com2Sec6List_free(void)
+{
+    com2Sec6Entry  *e = com2Sec6List;
+    while (e != NULL) {
+        com2Sec6Entry  *tmp = e;
+        e = e->next;
+        free(tmp);
+    }
+    com2Sec6List = com2Sec6ListLast = NULL;
+}
+
+#endif /* support for community based SNMP */
+
+void
+netsnmp_udp6_agent_config_tokens_register(void)
+{
+#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
+    register_app_config_handler("com2sec6", netsnmp_udp6_parse_security,
+                                netsnmp_udp6_com2Sec6List_free,
+                                "[-Cn CONTEXT] secName IPv6-network-address[/netmask] community");
+#endif /* support for community based SNMP */
+}
+
+
+
+#if !defined(NETSNMP_DISABLE_SNMPV1) || !defined(NETSNMP_DISABLE_SNMPV2C)
+
+/*
+ * Return 0 if there are no com2sec entries, or return 1 if there ARE com2sec
+ * entries.  On return, if a com2sec entry matched the passed parameters,
+ * then *secName points at the appropriate security name, or is NULL if the
+ * parameters did not match any com2sec entry.
+ */
+
+int
+netsnmp_udp6_getSecName(void *opaque, int olength,
+                        const char *community,
+                        int community_len,
+                        const char **secName, const char **contextName)
+{
+    const com2Sec6Entry *c;
+    struct sockaddr_in6 *from = (struct sockaddr_in6 *) opaque;
+    char           *ztcommunity = NULL;
+    char            str6[INET6_ADDRSTRLEN];
+
+    if (secName != NULL) {
+        *secName = NULL;  /* Haven't found anything yet */
+    }
+
+    /*
+     * Special case if there are NO entries (as opposed to no MATCHING
+     * entries).
+     */
+
+    if (com2Sec6List == NULL) {
+        DEBUGMSGTL(("netsnmp_udp6_getSecName", "no com2sec entries\n"));
+        return 0;
+    }
+
+    /*
+     * If there is no IPv6 source address, then there can be no valid security
+     * name.
+     */
+
+    if (opaque == NULL || olength != sizeof(struct sockaddr_in6)
+        || from->sin6_family != PF_INET6) {
+        DEBUGMSGTL(("netsnmp_udp6_getSecName",
+                    "no IPv6 source address in PDU?\n"));
+        return 1;
+    }
+
+    ztcommunity = (char *) malloc(community_len + 1);
+    if (ztcommunity != NULL) {
+        memcpy(ztcommunity, community, community_len);
+        ztcommunity[community_len] = '\0';
+    }
+
+    inet_ntop(AF_INET6, &from->sin6_addr, str6, sizeof(str6));
+    DEBUGMSGTL(("netsnmp_udp6_getSecName", "resolve <\"%s\", %s>\n",
+                ztcommunity ? ztcommunity : "<malloc error>", str6));
+
+    for (c = com2Sec6List; c != NULL; c = c->next) {
+        {
+            char buf1[INET6_ADDRSTRLEN];
+            char buf2[INET6_ADDRSTRLEN];
+            DEBUGMSGTL(("netsnmp_udp6_getSecName",
+                        "compare <\"%s\", %s/%s>", c->community,
+                        inet_ntop(AF_INET6, &c->network, buf1, sizeof(buf1)),
+                        inet_ntop(AF_INET6, &c->mask, buf2, sizeof(buf2))));
+        }
+        if ((community_len == (int)strlen(c->community)) &&
+            (memcmp(community, c->community, community_len) == 0)) {
+            int i, ok = 1;
+            for (i = 0; ok && i < 16; ++i)
+                if ((from->sin6_addr.s6_addr[i] & c->mask.s6_addr[i]) !=
+                    c->network.s6_addr[i])
+                    ok = 0;
+            if (ok) {
+                DEBUGMSG(("netsnmp_udp6_getSecName", "... SUCCESS\n"));
+                if (secName != NULL) {
+                    *secName = c->secName;
+                    *contextName = c->contextName;
+                }
+            }
+        }
+    }
+    DEBUGMSG(("netsnmp_udp6_getSecName", "... nope\n"));
+
+    if (ztcommunity != NULL) {
+        free(ztcommunity);
+    }
+    return 1;
+}
+#endif /* support for community based SNMP */
+
+netsnmp_transport *
+netsnmp_udp6_create_tstring(const char *str, int local,
+			    const char *default_target)
+{
+    struct sockaddr_in6 addr;
+
+    if (netsnmp_sockaddr_in6_2(&addr, str, default_target)) {
+        return netsnmp_udp6_transport(&addr, local);
+    } else {
+        return NULL;
+    }
+}
+
+
+/*
+ * See:
+ * 
+ * http://www.ietf.org/internet-drafts/draft-ietf-ops-taddress-mib-01.txt
+ * 
+ * (or newer equivalent) for details of the TC which we are using for
+ * the mapping here.  
+ */
+
+netsnmp_transport *
+netsnmp_udp6_create_ostring(const u_char * o, size_t o_len, int local)
+{
+    struct sockaddr_in6 addr;
+
+    if (o_len == 18) {
+        memset((u_char *) & addr, 0, sizeof(struct sockaddr_in6));
+        addr.sin6_family = AF_INET6;
+        memcpy((u_char *) & (addr.sin6_addr.s6_addr), o, 16);
+        addr.sin6_port = (o[16] << 8) + o[17];
+        return netsnmp_udp6_transport(&addr, local);
+    }
+    return NULL;
+}
+
+
+void
+netsnmp_udpipv6_ctor(void)
+{
+    udp6Domain.name = netsnmp_UDPIPv6Domain;
+    udp6Domain.name_length = sizeof(netsnmp_UDPIPv6Domain) / sizeof(oid);
+    udp6Domain.f_create_from_tstring     = NULL;
+    udp6Domain.f_create_from_tstring_new = netsnmp_udp6_create_tstring;
+    udp6Domain.f_create_from_ostring     = netsnmp_udp6_create_ostring;
+    udp6Domain.prefix = (const char**)calloc(5, sizeof(char *));
+    udp6Domain.prefix[0] = "udp6";
+    udp6Domain.prefix[1] = "ipv6";
+    udp6Domain.prefix[2] = "udpv6";
+    udp6Domain.prefix[3] = "udpipv6";
+
+    netsnmp_tdomain_register(&udp6Domain);
+}
+
+#else
+
+#ifdef NETSNMP_DLL
+/* need this hook for win32 MSVC++ DLL build */
+void
+netsnmp_udp6_agent_config_tokens_register(void)
+{ }
+#endif
+
+#endif /* NETSNMP_TRANSPORT_UDPIPV6_DOMAIN */
+
diff --git a/snmplib/snmpUnixDomain.c b/snmplib/transports/snmpUnixDomain.c
similarity index 81%
rename from snmplib/snmpUnixDomain.c
rename to snmplib/transports/snmpUnixDomain.c
index 397fb9e..fc7c3b7 100644
--- a/snmplib/snmpUnixDomain.c
+++ b/snmplib/transports/snmpUnixDomain.c
@@ -1,7 +1,10 @@
 #include <net-snmp/net-snmp-config.h>
 
-#include <stdio.h>
 #include <sys/types.h>
+#include <net-snmp/library/snmpUnixDomain.h>
+
+#include <stddef.h>
+#include <stdio.h>
 #include <ctype.h>
 #include <errno.h>
 
@@ -19,9 +22,6 @@
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
-#if HAVE_SYS_UN_H
-#include <sys/un.h>
-#endif
 
 #if HAVE_DMALLOC_H
 #include <dmalloc.h>
@@ -32,8 +32,7 @@
 #include <net-snmp/config_api.h>
 
 #include <net-snmp/library/snmp_transport.h>
-#include <net-snmp/library/snmpUDPDomain.h>
-#include <net-snmp/library/snmpUnixDomain.h>
+#include <net-snmp/library/snmpSocketBaseDomain.h>
 #include <net-snmp/library/system.h> /* mkdirhier */
 
 
@@ -290,7 +289,6 @@
     netsnmp_transport *t = NULL;
     sockaddr_un_pair *sup = NULL;
     int             rc = 0;
-    char           *string = NULL;
 
     if (addr == NULL || addr->sun_family != AF_UNIX) {
         return NULL;
@@ -301,11 +299,13 @@
         return NULL;
     }
 
-    string = netsnmp_unix_fmtaddr(NULL, (void *)addr,
-                                  sizeof(struct sockaddr_un));
-    DEBUGMSGTL(("netsnmp_unix", "open %s %s\n", local ? "local" : "remote",
-                string));
-    free(string);
+    DEBUGIF("netsnmp_unix") {
+        char *str = netsnmp_unix_fmtaddr(NULL, (void *)addr,
+                                         sizeof(struct sockaddr_un));
+        DEBUGMSGTL(("netsnmp_unix", "open %s %s\n", local ? "local" : "remote",
+                    str));
+        free(str);
+    }
 
     memset(t, 0, sizeof(netsnmp_transport));
 
@@ -503,25 +503,25 @@
 /* support for SNMPv1 and SNMPv2c on unix domain*/
 
 #define EXAMPLE_COMMUNITY "COMMUNITY"
-typedef struct _com2SecUnixEntry {
-    char            community[COMMUNITY_MAX_LEN];
-    char            sockpath[sizeof(struct sockaddr_un)];
-    unsigned long   pathlen;
-    char            secName[VACMSTRINGLEN];
-    char            contextName[VACMSTRINGLEN];
-    struct _com2SecUnixEntry *next;
+typedef struct com2SecUnixEntry_s {
+    const char*     sockpath;
+    const char*     secName;
+    const char*     contextName;
+    struct com2SecUnixEntry_s *next;
+    unsigned short  pathlen;
+    const char      community[1];
 } com2SecUnixEntry;
 
-com2SecUnixEntry   *com2SecUnixList = NULL, *com2SecUnixListLast = NULL;
+static com2SecUnixEntry   *com2SecUnixList = NULL, *com2SecUnixListLast = NULL;
 
 
 int
 netsnmp_unix_getSecName(void *opaque, int olength,
                         const char *community,
                         size_t community_len,
-                        char **secName, char **contextName)
+                        const char **secName, const char **contextName)
 {
-    com2SecUnixEntry   *c;
+    const com2SecUnixEntry   *c;
     struct sockaddr_un *to = (struct sockaddr_un *) opaque;
     char           *ztcommunity = NULL;
 
@@ -589,79 +589,131 @@
 void
 netsnmp_unix_parse_security(const char *token, char *param)
 {
-    char              secName[VACMSTRINGLEN + 1], community[COMMUNITY_MAX_LEN + 1];
-    char              contextName[VACMSTRINGLEN + 1];
-    char              sockpath[sizeof(struct sockaddr_un) + 1];
-    com2SecUnixEntry *e = NULL;
+    char   secName[VACMSTRINGLEN + 1];
+    size_t secNameLen;
+    char   contextName[VACMSTRINGLEN + 1];
+    size_t contextNameLen;
+    char   community[COMMUNITY_MAX_LEN + 1];
+    size_t communityLen;
+    char   sockpath[sizeof(((struct sockaddr_un*)0)->sun_path) + 1];
+    size_t sockpathLen;
 
-
-    param = copy_nword(param, secName, VACMSTRINGLEN);
+    param = copy_nword( param, secName, sizeof(secName));
     if (strcmp(secName, "-Cn") == 0) {
-        param = copy_nword( param, contextName, sizeof(contextName));
-        param = copy_nword( param, secName, sizeof(secName));
-        if (contextName[0] == '\0') {
+        if (!param) {
             config_perror("missing CONTEXT_NAME parameter");
             return;
         }
+        param = copy_nword( param, contextName, sizeof(contextName));
+        contextNameLen = strlen(contextName) + 1;
+        if (contextNameLen > VACMSTRINGLEN) {
+            config_perror("context name too long");
+            return;
+        }
+        if (!param) {
+            config_perror("missing NAME parameter");
+            return;
+        }
+        param = copy_nword( param, secName, sizeof(secName));
     } else {
-        contextName[0] = '\0';
+        contextNameLen = 0;
     }
-    if (secName[0] == '\0') {
-        config_perror("missing NAME parameter");
+
+    secNameLen = strlen(secName) + 1;
+    if (secNameLen == 1) {
+        config_perror("empty NAME parameter");
         return;
-    } else if (strlen(secName) > (VACMSTRINGLEN - 1)) {
+    } else if (secNameLen > VACMSTRINGLEN) {
         config_perror("security name too long");
         return;
     }
 
-        param = copy_nword(param, sockpath, sizeof(struct sockaddr_un) - 1);
-    if (sockpath[0] == '\0') {
+    if (!param) {
         config_perror("missing SOCKPATH parameter");
         return;
-    } else if (strlen(sockpath) > (sizeof(struct sockaddr_un) - 1)) {
+    }
+    param = copy_nword( param, sockpath, sizeof(sockpath));
+    if (sockpath[0] == '\0') {
+        config_perror("empty SOCKPATH parameter");
+        return;
+    }
+    sockpathLen = strlen(sockpath) + 1;
+    if (sockpathLen > sizeof(((struct sockaddr_un*)0)->sun_path)) {
         config_perror("sockpath too long");
         return;
     }
-    /* if sockpath == "default", set pathlen=0*/
-    if(strcmp(sockpath, "default") == 0){
-        sockpath[0] = 0;
-    }
 
-    param = copy_nword(param, community, COMMUNITY_MAX_LEN);
+    if (!param) {
+        config_perror("missing COMMUNITY parameter");
+        return;
+    }
+    param = copy_nword( param, community, sizeof(community));
     if (community[0] == '\0') {
-        config_perror("missing COMMUNITY parameter\n");
+        config_perror("empty COMMUNITY parameter");
         return;
-    } else if (strncmp
-               (community, EXAMPLE_COMMUNITY, strlen(EXAMPLE_COMMUNITY))
-               == 0) {
-        config_perror("example config COMMUNITY not properly configured");
-        return;
-    } else if (strlen(community) > (COMMUNITY_MAX_LEN - 1)) {
+    }
+    communityLen = strlen(community) + 1;
+    if (communityLen >= COMMUNITY_MAX_LEN) {
         config_perror("community name too long");
         return;
     }
-
-    e = (com2SecUnixEntry *) malloc(sizeof(com2SecUnixEntry));
-    if (e == NULL) {
-        config_perror("memory error");
+    if (communityLen == sizeof(EXAMPLE_COMMUNITY) &&
+        memcmp(community, EXAMPLE_COMMUNITY, sizeof(EXAMPLE_COMMUNITY)) == 0) {
+        config_perror("example config COMMUNITY not properly configured");
         return;
     }
 
-    DEBUGMSGTL(("netsnmp_unix_parse_security",
-                "<\"%s\"> => \"%s\"\n", community, secName));
+    /* Deal with the "default" case */
+    if(strcmp(sockpath, "default") == 0) {
+        sockpathLen = 0;
+    }
 
-    strcpy(e->secName, secName);
-    strcpy(e->contextName, contextName);
-    strcpy(e->community, community);
-    strcpy(e->sockpath, sockpath);
-    e->pathlen = strlen(sockpath);
-    e->next = NULL;
+    {
+        void* v = malloc(offsetof(com2SecUnixEntry, community) + communityLen +
+                         sockpathLen + secNameLen + contextNameLen);
+        com2SecUnixEntry* e = (com2SecUnixEntry*)v;
+        char* last = ((char*)v) + offsetof(com2SecUnixEntry, community);
+        if (e == NULL) {
+            config_perror("memory error");
+            return;
+        }
 
-    if (com2SecUnixListLast != NULL) {
-        com2SecUnixListLast->next = e;
-        com2SecUnixListLast = e;
-    } else {
-        com2SecUnixListLast = com2SecUnixList = e;
+        DEBUGMSGTL(("netsnmp_unix_parse_security",
+                    "<\"%s\", \"%.*s\"> => \"%s\"\n",
+                    community, (int)sockpathLen, sockpath, secName));
+
+        memcpy(last, community, communityLen);
+        last += communityLen;
+
+        if (sockpathLen) {
+            e->sockpath = last;
+            memcpy(last, sockpath, sockpathLen);
+            last += sockpathLen;
+            e->pathlen = sockpathLen - 1;
+        } else {
+            e->sockpath = last - 1;
+            e->pathlen = 0;
+        }
+
+        e->secName = last;
+        memcpy(last, secName, secNameLen);
+        last += secNameLen;
+
+        if (contextNameLen) {
+            e->contextName = last;
+            memcpy(last, contextName, contextNameLen);
+            last += contextNameLen;
+        } else
+            e->contextName = last - 1;
+
+        e->next = NULL;
+
+        if (com2SecUnixListLast != NULL) {
+            com2SecUnixListLast->next = e;
+            com2SecUnixListLast = e;
+        } else {
+            com2SecUnixListLast = com2SecUnixList = e;
+        }
     }
 }
 
diff --git a/snmplib/ucd_compat.c b/snmplib/ucd_compat.c
index 4f4234a..bf21be8 100644
--- a/snmplib/ucd_compat.c
+++ b/snmplib/ucd_compat.c
@@ -9,6 +9,7 @@
 #include <net-snmp/session_api.h>
 #include <net-snmp/config_api.h>
 #include <net-snmp/library/mib.h>	/* for OID O/P format enums */
+#include <net-snmp/library/ucd_compat.h>
 
 /*
  * use <netsnmp_session *)->s_snmp_errno instead 
@@ -22,10 +23,12 @@
 /*
  * synch_reset and synch_setup are no longer used. 
  */
+NETSNMP_IMPORT void snmp_synch_reset(netsnmp_session * notused);
 void
 snmp_synch_reset(netsnmp_session * notused)
 {
 }
+NETSNMP_IMPORT void snmp_synch_setup(netsnmp_session * notused);
 void
 snmp_synch_setup(netsnmp_session * notused)
 {
diff --git a/snmplib/vacm.c b/snmplib/vacm.c
index 3551c7f..2da1df9 100644
--- a/snmplib/vacm.c
+++ b/snmplib/vacm.c
@@ -31,11 +31,7 @@
 #include <sys/types.h>
 #include <stdio.h>
 #if TIME_WITH_SYS_TIME
-# ifdef WIN32
-#  include <sys/timeb.h>
-# else
-#  include <sys/time.h>
-# endif
+# include <sys/time.h>
 # include <time.h>
 #else
 # if HAVE_SYS_TIME_H
@@ -45,10 +41,6 @@
 # endif
 #endif
 
-#if HAVE_WINSOCK_H
-#include <winsock.h>
-#endif
-
 #if HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
@@ -62,6 +54,7 @@
 #include <net-snmp/config_api.h>
 
 #include <net-snmp/library/snmp_api.h>
+#include <net-snmp/library/tools.h>
 #include <net-snmp/library/vacm.h>
 
 static struct vacm_viewEntry *viewList = NULL, *viewScanPtr = NULL;
@@ -166,7 +159,7 @@
 }
 
 void
-vacm_parse_config_view(const char *token, char *line)
+vacm_parse_config_view(const char *token, const char *line)
 {
     struct vacm_viewEntry view;
     struct vacm_viewEntry *vptr;
@@ -176,17 +169,17 @@
     size_t          len;
 
     view.viewStatus = atoi(line);
-    line = skip_token(line);
+    line = skip_token_const(line);
     view.viewStorageType = atoi(line);
-    line = skip_token(line);
+    line = skip_token_const(line);
     view.viewType = atoi(line);
-    line = skip_token(line);
+    line = skip_token_const(line);
     len = sizeof(view.viewName);
     line =
         read_config_read_octet_string(line, (u_char **) & viewName, &len);
     view.viewSubtreeLen = MAX_OID_LEN;
     line =
-        read_config_read_objid(line, (oid **) & viewSubtree,
+        read_config_read_objid_const(line, (oid **) & viewSubtree,
                                &view.viewSubtreeLen);
 
     vptr =
@@ -284,7 +277,8 @@
 }
 
 char *
-_vacm_parse_config_access_common(struct vacm_accessEntry **aptr, char *line)
+_vacm_parse_config_access_common(struct vacm_accessEntry **aptr,
+                                 const char *line)
 {
     struct vacm_accessEntry access;
     char           *cPrefix = (char *) &access.contextPrefix;
@@ -292,15 +286,15 @@
     size_t          len;
 
     access.status = atoi(line);
-    line = skip_token(line);
+    line = skip_token_const(line);
     access.storageType = atoi(line);
-    line = skip_token(line);
+    line = skip_token_const(line);
     access.securityModel = atoi(line);
-    line = skip_token(line);
+    line = skip_token_const(line);
     access.securityLevel = atoi(line);
-    line = skip_token(line);
+    line = skip_token_const(line);
     access.contextMatch = atoi(line);
-    line = skip_token(line);
+    line = skip_token_const(line);
     len  = sizeof(access.groupName);
     line = read_config_read_octet_string(line, (u_char **) &gName,   &len);
     len  = sizeof(access.contextPrefix);
@@ -323,11 +317,11 @@
     (*aptr)->securityModel = access.securityModel;
     (*aptr)->securityLevel = access.securityLevel;
     (*aptr)->contextMatch  = access.contextMatch;
-    return line;
+    return NETSNMP_REMOVE_CONST(char *, line);
 }
 
 void
-vacm_parse_config_access(const char *token, char *line)
+vacm_parse_config_access(const char *token, const char *line)
 {
     struct vacm_accessEntry *aptr;
     char           *readView, *writeView, *notifyView;
@@ -353,7 +347,7 @@
 }
 
 void
-vacm_parse_config_auth_access(const char *token, char *line)
+vacm_parse_config_auth_access(const char *token, const char *line)
 {
     struct vacm_accessEntry *aptr;
     int             authtype;
@@ -365,7 +359,7 @@
         return;
 
     authtype = atoi(line);
-    line = skip_token(line);
+    line = skip_token_const(line);
 
     view = (char *) aptr->views[authtype];
     len  = sizeof(aptr->views[authtype]);
@@ -401,7 +395,7 @@
 }
 
 void
-vacm_parse_config_group(const char *token, char *line)
+vacm_parse_config_group(const char *token, const char *line)
 {
     struct vacm_groupEntry group;
     struct vacm_groupEntry *gptr;
@@ -410,11 +404,11 @@
     size_t          len;
 
     group.status = atoi(line);
-    line = skip_token(line);
+    line = skip_token_const(line);
     group.storageType = atoi(line);
-    line = skip_token(line);
+    line = skip_token_const(line);
     group.securityModel = atoi(line);
-    line = skip_token(line);
+    line = skip_token_const(line);
     len = sizeof(group.securityName);
     line =
         read_config_read_octet_string(line, (u_char **) & securityName,
@@ -449,12 +443,12 @@
     for (vp = head; vp; vp = vp->next) {
         if (!memcmp(view, vp->viewName, glen + 1)
             && viewSubtreeLen >= (vp->viewSubtreeLen - 1)) {
-            int             mask = 0x80, maskpos = 0;
-            int             oidpos;
+            int             mask = 0x80;
+            unsigned int    oidpos, maskpos = 0;
             found = 1;
 
             for (oidpos = 0;
-                 found && oidpos < (int) vp->viewSubtreeLen - 1;
+                 found && oidpos < vp->viewSubtreeLen - 1;
                  oidpos++) {
                 if (mode==VACM_MODE_IGNORE_MASK || (VIEW_MASK(vp, maskpos, mask) != 0)) {
                     if (viewSubtree[oidpos] !=
@@ -538,15 +532,15 @@
              * subtree we are comparing against.
              */
             if (viewSubtreeLen >= (vp->viewSubtreeLen - 1)) {
-                int             mask = 0x80, maskpos = 0;
-                int             oidpos;
+                int             mask = 0x80;
+                unsigned int    oidpos, maskpos = 0;
                 found = 1;
 
                 /*
                  * check the mask
                  */
                 for (oidpos = 0;
-                     found && oidpos < (int) vp->viewSubtreeLen - 1;
+                     found && oidpos < vp->viewSubtreeLen - 1;
                      oidpos++) {
                     if (VIEW_MASK(vp, maskpos, mask) != 0) {
                         if (viewSubtree[oidpos] !=
@@ -586,15 +580,15 @@
              * response.
              */
             else {
-                int             mask = 0x80, maskpos = 0;
-                int             oidpos;
+                int             mask = 0x80;
+                unsigned int    oidpos, maskpos = 0;
                 found = 1;
 
                 /*
                  * check the mask up to the length of the provided subtree
                  */
                 for (oidpos = 0;
-                     found && oidpos < (int) viewSubtreeLen;
+                     found && oidpos < viewSubtreeLen;
                      oidpos++) {
                     if (VIEW_MASK(vp, maskpos, mask) != 0) {
                         if (viewSubtree[oidpos] !=
diff --git a/snmplib/winpipe.c b/snmplib/winpipe.c
index 6f134b1..bbe37f1 100644
--- a/snmplib/winpipe.c
+++ b/snmplib/winpipe.c
@@ -33,9 +33,10 @@
 #ifdef WIN32
 
 #include <net-snmp/net-snmp-config.h>
+#include <net-snmp/types.h>
 #include <net-snmp/library/snmp_assert.h>
+#include <net-snmp/library/winpipe.h>
 #include <io.h>
-#include <winsock.h>
 
 static int InitUPDSocket(SOCKET *sock, struct sockaddr_in *socketaddress)
 {
diff --git a/snmplib/winservice.c b/snmplib/winservice.c
index 050f4e5..bc27f8c 100644
--- a/snmplib/winservice.c
+++ b/snmplib/winservice.c
@@ -39,6 +39,8 @@
 
 #if defined(WIN32) && defined(HAVE_WIN32_PLATFORM_SDK) && !defined(mingw32)
 #pragma comment(lib, "iphlpapi.lib")
+#endif
+#if defined(WIN32) && !defined(mingw32)
 #ifdef USING_WINEXTDLL_MODULE
 #pragma comment(lib, "snmpapi.lib")
 #pragma comment(lib, "mgmtapi.lib")
@@ -101,6 +103,18 @@
      */
 static VOID (*StopFunction) (VOID) = 0L;
 
+
+    /*
+     * To update windows service status to SCM 
+     */
+static BOOL UpdateServiceStatus (DWORD dwStatus, DWORD dwErrorCode,
+				 DWORD dwWaitHint);
+
+    /*
+     * To Report current service status to SCM 
+     */
+static BOOL ReportCurrentServiceStatus (VOID);
+
 VOID
 ProcessError (WORD eventLogType, LPCTSTR pszMessage, int useGetLastError, int quiet);
 
@@ -560,7 +574,7 @@
   
   hEventSource = RegisterEventSource (NULL, app_name_long);
   if (hEventSource != NULL) {
-    LPCSTR LogStr[1];
+    LPCTSTR LogStr[1];
     LogStr[0] = pszMessageFull;
     
     if (ReportEvent (hEventSource, 
diff --git a/testing/Makefile.in b/testing/Makefile.in
index 7b8a005..2a48170 100644
--- a/testing/Makefile.in
+++ b/testing/Makefile.in
@@ -10,8 +10,6 @@
 # fallback to regular VPATH for non-gnu...
 @NON_GNU_VPATH@ $(srcdir)
 
-#TARG		= etest ktest misctest stest
-
 USELIBS		= ../snmplib/libsnmp.$(LIB_EXTENSION)$(LIB_VERSION)
 LIBS		= -L../snmplib $(CC_RUNTIME_ARG) -lsnmp @LIBS@
 
@@ -20,10 +18,43 @@
 CPPFLAGS	= $(SNMPLIB_INCLUDES) @CPPFLAGS@
 CC		= @CC@ $(CPPFLAGS)
 
-all: $(TARG)
+all:
+	@echo "Select one of the following targets to run:"
+	@echo ""
+	@echo "  make test        -- default test suites"
+	@echo "  make testall     -- Run all available tests"
+	@echo "  make testfailed  -- Run only the tests that failed last time."
+	@echo "  make testsimple  -- Run tests directly with simple_run"
+	@echo ""
+	@echo "Set additional test parameters with TESTOPTS=args"
+	@echo ""
+	@echo "Also see the RUNFULLTESTS script for details"
 
 test:
-	$(srcdir)/RUNTESTS -a -D `pwd`/.. $(TESTOPTS)
+	@if test "x$(PERL)" = "x" \
+	         -o "x@PERL_SYSTEM_INVOKES_POSIX_SHELL@" != xyes \
+		 || { ! $(PERL) -e 'require TAP::Harness;' >/dev/null 2>&1 \
+		    && ! $(PERL) -e 'require Test::Harness; die if $Test::Harness::VERSION < 1.21;' >/dev/null 2>&1; };\
+	then \
+		echo $(srcdir)/RUNTESTS ; \
+		$(srcdir)/RUNTESTS ; \
+	else \
+		echo $(srcdir)/RUNFULLTESTS $(TESTOPTS) ; \
+		$(PERL) $(srcdir)/RUNFULLTESTS $(TESTOPTS) ; \
+	fi
+
+testsimple:
+	@(export srcdir=$(top_srcdir) ; \
+		export builddir=$(top_builddir) ; \
+		$(srcdir)/fulltests/support/simple_run $(TESTOPTS) \
+	)
+
+testall:
+	$(srcdir)/RUNFULLTESTS -g all $(TESTOPTS)
+
+testfailed:
+	$(srcdir)/RUNFULLTESTS -f $(TESTOPTS)
+
 
 test-mibs:
 	cd $(srcdir)/rfc1213 ; ./run
diff --git a/testing/README b/testing/README
index 99cb3a0..faccc3e 100644
--- a/testing/README
+++ b/testing/README
@@ -1,21 +1,16 @@
-The RUNTESTS script is the wrapper around all the tests.  To run the
-tests, simply run "./RUNTESTS".  The important arguments for RUNTESTS
-accepts (from ./RUNTESTS -h):
+The RUNFULLTESTS script is a wrapper around the tests.  All the
+tests are required to produce TAP output (hopefully soon to be
+standardized itself).
 
-Usage: RUNTESTS [-a] [-S SLEEPTIME] [-h] [-i] [-v] [-V] [-s]
-       [-T TESTNUMS] [-D bindir] [-S seconds] [-P <udp|tcp|udp6|tcp6|unix>]"
+By default RUNFULLTESTS only executes the tests in fulltests/default.
+Use the -g flag to test other subdirectories, or use '-g all' to test
+everything it can find.
 
-  -a        run all tests.
-  -T NUMS   run particular tests (command separated list of numbers)
-  -i        run interactively
-  -v        be verbose
-  -V        be very verbose
-  -S TIME   TIME should be used as the timeout when waiting for a
-            response from the agent.
-  -A FLAGS  Extra flags to pass to the agent.
-  -t FLAGS  Extra flags to pass to the trapd.
-  -s        Don't erase the runtime data directory for successful tests
-  -XM       Don't set MIBDIRS environment unless absolutely necessary
-  -x        Turn on SH output debugging for tests.
-  -P TRANS  Specify on which transport domain to run the tests. Default is udp.
-            udp,tcp,udp6,tcp6,unix are available.
+See the documentation contained in the RUNFULLTESTS script for details
+on:
+
+  - how to run particular sets of tests
+  - how to write tests
+  - how to write _build scripts
+  - how to write _run scripts
+
diff --git a/testing/RUNFULLTESTS b/testing/RUNFULLTESTS
new file mode 100755
index 0000000..79a9f0d
--- /dev/null
+++ b/testing/RUNFULLTESTS
@@ -0,0 +1,816 @@
+#!/usr/bin/env perl
+
+use Getopt::Long;
+#use Data::Dumper;
+use File::Basename;
+use Cwd qw(abs_path);
+use strict;
+
+########################################
+# Globals and Command Line options
+
+my %opts = ('groups' => 'default',
+            'master-directory' => 'fulltests',
+	    'srcdir' => dirname("$0") . "/..",
+            'builddir' => '..',
+	    'failed-file' => 'failed_tests',
+	   );
+
+Getopt::Long::Configure(qw(no_ignore_case));
+GetOptions(\%opts,
+           "verbose",
+           "help|?",
+           "quiet|q",
+           "groups|g=s",
+           "r=s",
+           "debug",
+           "srcdir|D=s",
+           "builddir|d=s",
+	   "f",
+	   "F",
+	   "failed-file=s",
+	   "master-directory=s",
+	  ) || ++$opts{'help'};
+
+# Change srcdir and builddir to absolute paths
+$opts{'srcdir'} = abs_path($opts{'srcdir'});
+$opts{'builddir'} = abs_path($opts{'builddir'});
+# Set exeext.
+$opts{'exeext'} = join(readpipe($opts{'builddir'} . '/net-snmp-config --exeext'));
+
+usage() if ($opts{'help'});
+
+# Build the harness object
+my %args = (
+	    verbosity => ($opts{'verbose'} ? 1 : ($opts{'quiet'} ? -1 : 0)),
+	    exec => \&decide_exec,
+	    # this option is *really* weird in how it works
+	    failures => ($opts{'quiet'} ? 0 : ($opts{'verbose'} ? 0 : 1)),
+	    errors => ($opts{'quiet'} ? 0 : 1),
+	   );
+
+# list of support infrastructure components
+my %support;
+my %sources;
+
+# if the -d option was specified, pass on the source root directory to all apps
+if (exists($opts{'master-directory'})) {
+    $ENV{'NETSNMPSRCDIR'} = $opts{'master-directory'};
+} else {
+    $ENV{'NETSNMPSRCDIR'} = '.';
+}
+
+# pass srcdir and builddir to all apps
+$ENV{'srcdir'} = $opts{'srcdir'};
+$ENV{'builddir'} = $opts{'builddir'};
+
+# set up MIBDIRS to refer to the src directory
+if (!$ENV{'MIBDIRS'}) {
+    $ENV{'MIBDIRS'} = "$opts{srcdir}/mibs";
+}
+
+########################################
+# Protection measures
+$ENV{'SNMPCONFPATH'} = "/dev/null";
+
+# create the testing harness infrastructure
+
+my $harness;
+if (eval { require TAP::Harness; } ) {
+    import TAP::Harness;
+    $harness = TAP::Harness->new(\%args);
+} else {
+    require Test::Harness;
+    import Test::Harness;
+    if ($opts{'groups'} ne 'default') {
+	print STDERR "
+ERROR: I can not find the perl TAP::Harness module.  We support the
+more common Test::Harness module but only for the default test group.
+
+Either:
+  1) run only the default tests (i.e., just \"make test\")
+  2) install the TAP::Harness perl module
+
+";
+	exit 1;
+    }
+    DIE("Test::Harness must be of version 1.21 or newer\n" .
+	"Install the TAP::Harness module or use the RUNTESTS script\n")
+      if $Test::Harness::VERSION < 1.21;
+}
+
+
+########################################
+# gather the tests
+my @tests;
+
+DEBUG("Gathering and building tests:\n");
+find_support();
+if ($opts{'f'}) {
+    DIE("The -f and -g options can not be both specified\n")
+      if ($opts{'groups'} ne 'default');
+    DIE("The -f and -r options can not be both specified\n") if ($opts{'r'});
+    DIE("No $opts{'failed-file'} file was found to read failed state from\n")
+      if (! -f $opts{'failed-file'});
+    open(F, $opts{'failed-file'});
+    while (<F>) {
+	chomp;
+	push @tests, build_test($_);
+    }
+} else {
+    @tests = gather_tests($opts{'groups'}, $opts{'r'});
+}
+
+########################################
+# rename them to remove parent dirs
+@tests = rename_tests(@tests);
+
+########################################
+# run the tests
+
+DEBUG("Running tests:\n"); 
+DEBUG("-" x 78, "\n");
+
+my $results;
+if ($harness) {
+    $results = $harness->runtests(@tests);
+} else {
+    # minimal backwards compat with Test::Harness
+    run_older_perl_tests(@tests);
+}
+
+my @failed = $results->failed();
+if (!$opts{'q'} && $#failed > -1) {
+    print "\nWe failed these ", (1 + $#failed), " tests:\n";
+    my @lines = @failed;
+    map { if (exists($sources{$_})) { $_ = "$_ ( $sources{$_} )"} } @lines;
+    print "  ", join("\n  ",@lines), "\n";
+}
+
+if (!$opts{'F'}) {
+    open(F,">$opts{'failed-file'}");
+    if ($#failed > -1) {
+	print F join("\n", get_sources(@failed)) . "\n";
+    }
+    close(F);
+}
+
+exit($results->all_passed() ? 0 : 1);
+
+######################################################################
+# Infrastructure
+#
+
+########################################
+# decides how we should execute a test
+#
+sub decide_exec {
+    my ( $harness, $testfile ) = @_;
+
+    # 1) Parse the $testfile argument.
+    my ($dirname, $groupname, $basename, $app_extension, $file_extension) = 
+      ($testfile =~ /([^\/]+)\/([^\/]+)\/([^\/]+)_([^\/_]+)\.*([^\/\.]*)$/);
+    $app_extension =~ s/$opts{'exeext'}\$//;
+
+    # 2) we have a RUN_TYPE file in the same directory
+    if (exists($support{'run'}{$app_extension}{$groupname})) {
+	return [$support{'run'}{$app_extension}{$groupname}, $testfile];
+    }
+
+    # 3) return a generic run script
+    if (exists($support{'run'}{$app_extension}{'generic'})) {
+	return [$support{'run'}{$app_extension}{'generic'}, $testfile];
+    }
+
+    # 4) give up and let the test harness decide itself
+    return undef;
+}
+
+sub gather_tests {
+    my ( $groups, $regexp ) = @_;
+    my @groups;
+
+    # figure out the list of groups we need to search through
+    if ($groups eq 'all') {
+	# find every group we can
+	# we exclude:
+	#  - things not a directory
+	#  - anything with "template" in the name
+	@groups =
+	  grep { !/(template|support)/ &&
+		   -d $_ && s/$opts{'srcdir'}\/testing\/$opts{'master-directory'}.// } glob("$opts{'srcdir'}/testing/$opts{'master-directory'}/*");
+    } else {
+	# they specified a comma separated list
+	@groups = split(/,\s*/, $groups);
+    }
+    DEBUG("Checking groups: ", join(", ", @groups), "\n");
+
+    my @tests;
+    foreach my $group (@groups) {
+	my @files;
+
+	DEBUG("checking group $group\n");
+
+	if (! -d "$opts{'srcdir'}/testing/$opts{'master-directory'}/$group") {
+	    ERROR("group '$group' is not a directory under '$opts{'srcdir'}/testing/$opts{'master-directory'}'; ignoring\n");
+	    next;
+	}
+
+	# push on all files that start with T[NUM]*
+	push_or_skip(\@tests, $regexp, glob("$opts{'srcdir'}/testing/$opts{'master-directory'}/$group/T[0-9]*"));
+    }
+
+    return @tests;
+}
+
+sub push_or_skip {
+    my ($array, $regexp, @files) = @_;
+    foreach my $file (@files) {
+	next if ($file =~ /.(bak|old|orig|rej)$/);
+	next if ($file =~ /~$/);
+	next if (defined($regexp) && $file !~ /$regexp/i);
+	DEBUG("  Adding file $file\n");
+	push @$array, build_test($file);
+    }
+}
+
+# rename all the tests to remove the top subdir to help readability
+sub rename_tests {
+    my (@tests) = @_;
+    my @newtests;
+
+    # yes, I could have used map.  But I didn't.
+    foreach my $file (@tests) {
+	my $title = "$file";
+	my $foundheader = 0;
+	$title = $sources{$file} if (exists($sources{$file}));
+	
+	open(SRC, $title);
+	while (<SRC>) {
+	    if (/(HEADER|TITLE)\s+['"]*(.*)/) {
+		$title = $2;
+		$title =~ s/\s*\*\/.*//;
+		$title =~ s/['"]$//;
+		$foundheader = 1;
+		last;
+	    }
+	}
+	close(SRC);
+
+	if (! $foundheader) {
+	    $title =~ s/^$opts{'srcdir'}\/testing\///;
+	    $title =~ s/$opts{'master-directory'}.//;
+	}
+	$sources{$title} = $sources{$file} || $file;
+	push @newtests, [$file, $title];
+    }
+    return @newtests;
+}
+
+# called to possibly manipluate the list of tests to run by building some
+sub build_tests {
+    my (@tests) = @_;
+    my @newtests;
+
+    foreach my $test (@tests) {
+	my $title;
+	
+	my $built = build_test($test);
+	if (ref($built) eq 'ARRAY') {
+	    push @newtests, @$built;
+	} elsif ($built ne "") {
+	    push @newtests, $built;
+	}
+    }
+    return @newtests;
+}
+
+#
+# Finds scripts that are used to build and run actual commands
+#
+sub find_builders {
+    $support{'build'} = {};
+    find_scripts('build', $support{'build'});
+}
+
+sub find_runners {
+    $support{'run'} = {};
+    find_scripts('run', $support{'run'});
+}
+
+sub find_support {
+    find_builders();
+    find_runners();
+}
+
+sub find_scripts {
+    my ($buildname, $hashref) = @_;
+    my $count;
+    DEBUG("looking for $buildname scripts\n");
+    foreach my $builder (glob("$opts{'srcdir'}/testing/$opts{'master-directory'}/*/*_${buildname}")) {
+	next if ($builder =~ /~$/);
+	next if ($builder =~ /.(bak|orig|rej|old)$/);
+
+	my ($group, $type) = ($builder =~ /([^\/]+)\/([^\/]*)_${buildname}/);
+	# save this as a certain group builder
+	$hashref->{$type}{$group} = $builder;
+
+	# save this as a generic builder if there isn't a better
+	# generic one, such as one that exists in the support
+	# directory.
+	if (!exists($hashref->{$type}{'generic'}) || $group eq 'support') {
+	    $hashref->{$type}{'generic'} = $builder;
+	}
+	$count++;
+    }
+    DEBUG("  found $count\n");
+}
+
+# called to build a test from a registerd builder
+sub build_test {
+    my ($testfile) = @_;
+
+    my ($dirname, $groupname, $basename, $app_extension, $file_extension) = 
+      ($testfile =~ /([^\/]+)\/([^\/]+)\/([^\/]+)_([^\/_]+)\.([^\/\.]+)$/);
+
+    # is this even a buildable type recipe?
+    if (!$dirname || !$basename || !$app_extension || !$file_extension) {
+	return $testfile;
+    }
+
+    DEBUG("found: $testfile => $dirname, $basename, $app_extension, $file_extension\n");
+
+    # choices:
+    # 1) we have a registered subroutine to build an extension from
+    # XXX
+
+    # 2) we have a BUILD_TYPE file in the same directory
+    if (exists($support{'build'}{$app_extension}{$dirname})) {
+	return
+	  call_build_script($support{'build'}{$app_extension}{$dirname}, $testfile);
+    }
+
+    # 3) return a generic build script
+    if (exists($support{'build'}{$app_extension}{'generic'})) {
+	return
+	  call_build_script($support{'build'}{$app_extension}{'generic'}, $testfile);
+    }
+
+    # 4) we assume it's fine as is
+    return $testfile;
+}
+
+sub call_build_script {
+    my ($scriptname, $filename) = @_;
+
+    my $maybenewfile = $filename;
+    $maybenewfile =~ s/.[^\.]+$/$opts{'exeext'}/;
+    $maybenewfile =~ s/T([^\/]+)$/B$1/;  # change prefix to B for 'Built'
+    $maybenewfile =~ s/^$opts{'srcdir'}\///;
+
+    my $newpath = $maybenewfile;
+    $newpath =~ s/\/[^\/]*$//;
+
+    if (! -d $newpath) {
+	DEBUG("making directory $newpath\n");
+	system("$opts{'srcdir'}/mkinstalldirs $newpath");
+    }
+
+    my $lastline;
+    DEBUG("BUILDING: $scriptname $filename $maybenewfile\n");
+    open(B,"$scriptname $filename $maybenewfile|");
+    while (<B>) {
+	$lastline = $_;
+    }
+    chomp($lastline);
+
+    DEBUG("  result: $lastline\n");
+    return undef if ($lastline eq 'fail');
+    return undef if ($lastline eq 'skip');
+    return $filename if ($lastline eq '');
+    $sources{$lastline} = $filename;        # remember where we came from
+    return $lastline;
+}
+
+sub get_sources {
+    my (@names) = @_;
+    map { if (exists($sources{$_})) { $_ = $sources{$_} } } @names;
+    return @names;
+}
+
+sub run_older_perl_tests {
+    #
+    # Older versions of perl used a different test suite called Test::Harness
+    # It is much more limited than TAP::Harness;
+    #
+    # Here we massage our older tests into something that will work under
+    # Test::Harness too.
+    #
+    my @tests = @_;
+
+    # create the temporary files
+    my @tempfiles;
+    if (! -d "$opts{'master-directory'}") {
+	mkdir("$opts{'master-directory'}", 0777);
+    }
+    if (! -d "$opts{'master-directory'}/temptests") {
+	mkdir("$opts{'master-directory'}/temptests", 0777);
+    }
+    foreach my $test (@tests) {
+	my $tempfile = "$test->[0].t";
+	$tempfile =~ s#^$opts{'srcdir'}#$opts{'builddir'}#;
+	$tempfile =~ s#$opts{'master-directory'}/default/#$opts{'master-directory'}/temptests/#;
+	open(T, ">$tempfile") || die("$tempfile: $!");
+	print T "# functionally perl\n\nsystem(\"$opts{'srcdir'}/testing/fulltests/support/simple_run $test->[0]\");\n";
+	close(T);
+	chmod(0755, $tempfile);
+	push @tempfiles, $tempfile;
+    }
+
+    $results = runtests(@tempfiles);
+
+    unlink(@tempfiles) || die("$@ $!");
+    exit;
+}
+
+# usage output
+sub usage {
+    print "$0 [OPTIONS]\n";
+
+    print "\nOPTIONS:\n";
+    print "  -v\t\t\tRuns in verbose mode; dumping all test output\n";
+    print "    --verbose\n";
+    print "  -q\t\t\tRuns in quieter mode; dumps less test output\n";
+    print "    --quiet\n";
+    print "  -g GROUP\t\tRuns the group of specified tests (default = 'default')\n";
+    print "    --group GROUP\n";
+    print "\t\t\t(use 'all' to run all tests)\n";
+    print "  -r REGEXP\t\tOnly run test files matching this regexp\n";
+    print "  -f\t\t\tRun only the failed tests from the last run\n";
+    print "  -F\t\t\tDon't create the failed_tests file\n";
+    print "  --failed-file FILE\tThe location of the failed state file\n";
+    print "  -D PATH\t\tSource directory\n";
+    print "    --srcdir PATH\n";
+    print "    (currently '$opts{'srcdir'}')\n";
+    print "  -d PATH\t\tBuild directory to be tested\n";
+    print "    --builddir PATH\n";
+    print "    (currently '$opts{'builddir'}')\n";
+    print "  --master-directory DIRNAME\n";
+    print "    (default = 'fulltests')\n";
+    print "  -h\t\t\tThis help output\n";
+    print "    --help\n";
+    print "  --debug\t\tDebugging output\n\n";
+    exit;
+}
+
+sub DEBUG {
+    return if (!$opts{'debug'});
+    print @_;
+}
+
+sub ERROR {
+    print STDERR "Error:", @_;
+}
+
+sub DIE {
+    ERROR(@_);
+    exit 1;
+}
+
+=pod
+
+=head1 NAME
+
+runfulltests - the Net-SNMP test suite coordinator
+
+=head1 SYNOPSIS
+
+runfulltests [OPTIONS]
+
+# ./RUNFULLTESTS
+
+# ./RUNFULLTESTS -g all
+
+=head1 DESCRIPTION
+
+B<RUNFULLTESTS> is a TAP (see below) output aggregator and test suite
+management program.  It runs groups of tests that it can find in the
+I<fulltests> sub-directory.  It defaults to running a basic set of
+high-level Net-SNMP tests found in the fulltests/default directory.
+To run a different set of tests see the -g flag.
+
+It is able to keep state and remember which tests failed so that
+during development you can simply re-run only the "last failed tests"
+using the -f switch.
+
+=head2 Perl Requirements
+
+Ideally it should be run under a fairly modern version of perl (eg,
+5.10) but minmial support is provided for older versions of perl as
+well.
+
+If no perl is available on the system, there is also a fall-back
+"RUNTESTS" suite which merely executes the default scripts for testing
+compliance of the high-level applications.
+
+=head2 Important Notes About Writing New Tests
+
+When designing new tests it is strongly encouraged that some
+conventions are followed:
+
+  - Design the test files so they can be build/run without them
+    needing to be build/run within a testing harness like this one
+    (B<RUNFULLTESTS>).  IE, you should be able to run them directly by
+    hand for debugging purposes without requiring them to be invoked
+    within this or any other testing harness.
+  - Name them beginning with TNNN where NNN is a 3 digit number
+
+The rational behind these rules follows in the sections below
+
+=head1 OPTIONS
+
+=over
+
+=item -g GROUP
+
+=item --group GROUP
+
+By default the "default" group of tests is run.  Which is really just
+everything that B<RUNFULLTESTS> can find from the I<fulltests/default>
+sub-directory.  The -g switch can be used to specify other
+sub-directories of tests to run.  The argument is a comma-separated
+list of subdirectories to use.
+
+The special keyword I<all> can be used to run every test in every
+subdirectory of the I<fulltests> directory.
+
+=item -r REGEXP
+
+Only run test files that match the I<REGEXP> regular expression.
+
+To run only tests of a certain file name you might combine this with
+'-g all'.  E.G., -g all -r snmpv3 will run all snmpv3 (named) tests
+that B<RUNFULLTESTS> can find.
+
+=item -f
+
+Only run the tests that failed from the last run.
+
+=item --failed-file FILE
+
+Where to store the state of which tests have failed.
+
+=item -F
+
+Don't save state to the failed-file.
+
+=item -D PATH
+
+=item --srcdir PATH
+
+If RUNFULLTESTS is being executed from a build directory other than
+where the source files are located, this flag can be used to specify
+where the Net-SNMP root source directory is found.
+
+=item -d PATH
+
+=item --builddir PATH
+
+Specifies the root of the build directory.
+
+=item --master-directory DIRNAME
+
+Specifies an alternate master directory.  The default is "fulltests"
+
+=item -v
+
+=item --verbose
+
+Turns on verbose output mode.
+
+=item -q
+
+=item --quiet
+
+Turns on quiet output mode.
+
+=item --debug
+
+Turns on debugging output (which primarily shows how B<RUNFULLTESTS>
+is collecting tests to run, etc).
+
+=item -h
+
+=item --help
+
+Command line usage help output.
+
+=back
+
+=head1 TEST ARCHITECTURE
+
+=head2 TAP output
+
+TAP stands for "Test Anything Protocol".  TAP was originally
+perl-specific but has been turning out to be a generic protocol for
+testing just about anything.  It's heavily documented at:
+
+  http://testanything.org/wiki/index.php/Main_Page
+
+We're using TAP because it's highly flexible and separates the
+invidual tests from the "collect and report" aspect.  RUNFULLTESTS is
+simply a perl-based implementation for collecting and summarizing the
+test results.  Other collection agents could be used instead of this
+one, and any sort of test or language could be used for the individual
+tests as well (in fact the default suite has some that are SH-based,
+C-based, ...).
+
+It may be that eventually the TAP protocol actually makes it into the
+IETF (http://testanything.org/wiki/index.php/TAP_at_IETF:_Draft_Standard).
+
+The syntax of TAP is very simple.  See the above web page for a
+complete description, but this will provide you a minimal "getting
+started" example and shows the output of 5 sub-tests run from a single
+test application.
+
+  1..5
+  ok 1 - Yay
+  ok 2 - Second part succeeded
+  not ok 3 - Oh no...  A problem occurred.
+  not ok 4 - The computer thought 2+2 was 5
+  ok 5 - All is well that ends well
+
+That's it.  Output from a test tool like that is auto-summarized by
+this application in success/fail reports.
+
+=head2 Testing Phases
+
+The testing process goes through the following phases:
+
+ - Test and Infrastructure Collection
+ - Test Execution
+   - Build if needed
+   - Run
+
+=head2 Test Collection
+
+B<RUNFULLTESTS> will search all the requested groups for files that
+begin with the letter 'T'.  They are executed in alphabetical order
+within their group.  Convention is to number test files with a three
+digit (zero-padded) number after the 'T' letter to ensure ordering is
+as expected.
+
+Files to be collected by B<RUNFULLTESTS> are made up of a number of
+components to support a flexible build and execution system (discussed
+in detail in the following sections).  They are structured as follows:
+
+  T<NNN><NAME>_<TYPE>.<SUFFIX>
+
+Where:
+
+  NNN:      Is the 3 digit number mentioned above.
+  NAME:     The filename of the test describing what it's about
+  TYPE:     The internal "type" of the test, which is used later in building
+            and execution (see below).
+  .SUFFIX:  An optional file-type suffix
+
+Examples:
+
+  fulltests/default/T001snmpv1get_simple
+  fulltests/snmpv3/T040keymanagetest_capp.c
+
+Any other files are ignored in terms of tests and may be supplimental
+to the above build systems.  (Supporting files, by convention, begin
+with a capital 'S').
+
+=head3 Full Title
+
+Within the file there may be a line containing "HEADER ..." that will
+be examined for a better title of the test.  Anything before "HEADER"
+will be ignored, and the special "*/" will be replaced as well.  For
+example, these are valid header source lines:
+
+  # HEADER A cool test
+  /* HEADER A cool test from my C-based source file */
+
+=head2 Infrastructure Collection
+
+In addition to test files, I<infrastructure> files are searched for
+and remembered for later use (again, see below).  These files will be
+of the form:
+
+  <TYPE>_<USEAGE>
+
+Where:
+
+  TYPE:      The type name matching the file to support.
+
+  USAGE:     How this file should be used.  Currently should be either
+            I<build> or I<run> as described below.
+
+Example files
+
+  fulltests/support/clib_build
+  fulltests/support/simple_run
+
+Infrastructure files may exist in the source directory of where they're
+expected to be run (ie, parallel to the test files) or they may exist
+in the special "support" directory if they're expected to be
+generically used across multilpe test group types.
+
+=head2 Test Execution
+
+Tests are run in two phases using the following pseudo-algorithm:
+
+  + for each test file
+    + if an appropriate TYPE_build file exists for a test {
+      + run "TYPE_build TESTFILE"
+      + record the last line as the new TESTFILE to run
+    }
+
+    + if an apporpriate TYPE_run file exists for a test {
+      + run "TYPE_run TESTFILE"
+      + collect it's output as the TAP output
+    } else {
+      + run "TESTFILE"
+      + collect it's output as the TAP output
+    }
+
+For example, if the following files existed:
+
+  fulltests/examplres/T001testing_examp
+  fulltests/examplres/examp_build
+  fulltests/examplres/examp_run
+
+Then the following would be the rough execution:
+
+  newfile = `fulltests/examplres/examp_build \
+             fulltests/examplres/T001testing_examp | tail -1`
+  fulltests/examplres/examp_run $newfile
+
+=head1 TEST TYPES
+
+Net-SNMP testing comes with a number of test suite "builders" and
+"runners" that are useful for developing new tests.  These are
+documented here:
+
+=over
+
+=item simple
+
+I<simple> test files are simple sh-shell-script files used to test
+high-level functionality of Net-SNMP tools.  They're easy to write and
+should generally contain the following sort of structure:
+
+  . ../support/simple_eval_tools.sh
+  HEADER my name
+  STARTAGENT
+  CAPTURE "snmpget..."
+  CHECK "for this string"
+  STOPAGENT
+  FINISHED
+
+Example file: fulltests/default/T001snmpv1get_simple
+
+=item capp
+
+I<capp> files are fundamentally full C-source-code applications that
+are built and linked against the libnetsnmp library.  Thus, a file
+named I<T001mytest_capp.c> is compiled using the same compiler used to
+compile Net-SNMP and linked against the required libraries for a basic
+Net-SNMP application.  It should, of course, produce TAP output after
+it's compiled and run.
+
+Example file: fulltests/snmpv3/T010scapitest_capp.c
+
+=item clib
+
+I<clib> files are simple C-source-code files that are wrapped into a
+main() application with appropriate #include files, etc.  I<clib>
+files are designed primarly to write quick unit-tests for the Net-SNMP
+core library.
+
+Example file: fulltests/unit-tests/T001defaultstore_clib.c
+
+=item Write your own!
+
+This test system is designed to be flexible and expandable if the
+basic architecture is followed.  The goal is to make it easy to create
+very simple test suites or complex unit-tests or anything in between.
+
+=back
+
+=head1 DEBUGGING BROKEN TESTS
+
+If the individual tests are designed well, you should be able to
+re-run individual tests outside of the B<RUNFULLTESTS> aggregation
+environment using the appropriate _build and _run scripts as needed.
+Test writers are encouraged to output comments in their TAP output to
+help users debug the results.
+
+=head1 Author
+
+Original architecture: Wes Hardaker <hardaker@users.sourceforge.net>
+
+=cut
+
diff --git a/testing/RUNTESTS b/testing/RUNTESTS
index f6dc6a6..69fbae4 100755
--- a/testing/RUNTESTS
+++ b/testing/RUNTESTS
@@ -1,399 +1,45 @@
 #!/bin/sh
-#
-# RUNTESTS [-h]...
-#
-# RETURNS:	Number of failed tests.
-#
-# CALLS: eval_oneprogram.sh [-h][-lk] <program>
-#
-#
 
-#
-# Suggested improvement(s):
-#	Run a given test against a running agent.
-#
-# Variables:  (* = exported)
-#  *SNMP_BASEDIR:  	  the source base directory for tests
-#  *SNMP_UPDIR:  	  directory above where the test binaries live (-D option)
-#  *SNMP_PATH	## yes, PATH is already setup
-#  *SNMP_VERBOSE	## 0=silent, 1=warnings, 2=more
+srcdir=`dirname $0`
+srcdir=`cd $srcdir; pwd`
+srcdir=`dirname $srcdir`
 
-# Usage mess.  (No, it works.)
-#
-
-usage() { 
-    cat << BLIK
-
-Usage: `basename $0` [-a] [-S SLEEPTIME] [-h] [-i] [-v] [-V] [-s] [-XM]
-       [-T TESTNUMS] [-D bindir] [-S seconds] [-P <udp|tcp|udp6|tcp6|unix>]
-
-  -a        run all tests.
-  -T NUMS   run particular tests (command separated list of numbers)
-  -i        run interactively
-  -v        be verbose
-  -V        be very verbose
-  -S TIME   TIME should be used as the timeout when waiting for a
-            response from the agent.
-  -A FLAGS  Extra flags to pass to the agent.
-  -t FLAGS  Extra flags to pass to the trapd.
-  -s        Don't erase the runtime data directory for successful tests
-  -XM       Don't set MIBDIRS environment unless absolutely necessary
-  -x        Turn on SH output debugging for tests.
-  -P TRANS  Specify on which transport domain to run the tests.Default is udp.
-  -p prefix Specify test case prefix. Options are [T|V]. Default is T
-
-BLIK
-    exit 0
-}
-
-trap "exit 1;" 1 2 3 9 13 15
-
-SNMP_BASEDIR=`dirname $0`
-SNMP_PREFER_NEAR_MIBS=1	## prefer MIB files found in source hierarchy
-export SNMP_PREFER_NEAR_MIBS
-SNMP_TEST_PREFIX=${SNMP_TEST_PREFIX:=T}
-export SNMP_TEST_PREFIX
-
-### Check for the configuration script.
-##if [ ! -s "${SNMP_BASEDIR}/TESTCONF.sh"  ] ; then 
-##  echo "No TESTCONF.sh in \"$SNMP_BASEDIR\" ; exiting"
-##  exit 0
-##fi
-
-ORIGDIR=`pwd`		## this script may be invoked with relative path
-SNMP_UPDIR=..		## building from the source tree
-interactive=no
-SNMP_VERBOSE=${SNMP_VERBOSE:=0}
-SNMP_SLEEP=${SNMP_SLEEP:=1} 	## default seconds to sleep
-SH_DEBUG=0
-USE_TEST_NUMS=0
-
-while [ -n "$1" ]; do
-    case "$1" in
-	-h)
-	    usage
-	    exit
-	    ;;
-
-	-i)
-	    interactive="yes"
-	    ;;
-	-v)
-	    SNMP_VERBOSE=1
-	    ;;
-	-V)
-	    SNMP_VERBOSE=2
-	    ;;
-	-s)
-	    SNMP_SAVE_TMPDIR="yes"
-	    export SNMP_SAVE_TMPDIR
-	    ;;
-	-D)
-	    shift
-	    SNMP_UPDIR="$1"
-	    ;;
-	-p)
-	    shift
-	    SNMP_TEST_PREFIX="$1"
-	    ;;
-	-P)
-		shift
-		SNMP_TRANSPORT_SPEC="$1"
-		export SNMP_TRANSPORT_SPEC
-		if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then
-			SNMP_SNMPD_PORT="/var/tmp/unixsnmpd"
-			SNMP_SNMPTRAPD_PORT="/var/tmp/unixsnmptrapd"
-			SNMP_TEST_DEST=""
-			export SNMP_SNMPD_PORT
-			export SNMP_SNMPTRAPD_PORT
-			export SNMP_TEST_DEST
-		fi
-		;;
-	-T)
-	    shift
-	    test_nums=`echo $1 | sed 's/,/ /g'`
-	    ;;
-	-a)
-	    test_nums="all"
-	    ;;
-
-	-A)
-	    shift
-	    AGENT_FLAGS="$1"
-	    export AGENT_FLAGS
-	    ;;
-	-S)
-	    shift
-	    SNMP_SLEEP="$1"
-	    ;;
-	-t)
-	    shift
-	    TRAPD_FLAGS="$1"
-	    export TRAPD_FLAGS
-	    ;;
-
-	-x)
-	    SH_DEBUG=1
-	    ;;
-
-	-XM)
-	    SNMP_PREFER_NEAR_MIBS=0
-	    ;;
-
-	-n)
-	    USE_TEST_NUMS=1
-	    ;;
-    esac
-
-    shift
-done
-
-export SNMP_SLEEP
+# set up MIBDIRS to refer to the src directory
+if [ "x$MIBDIRS" = "x" ]; then
+    MIBDIRS=${srcdir}/mibs
+    export MIBDIRS
+fi
 
 # Make sure MinGW / MSYS users have the pskill.exe program to stop the agent and
 # snmptrapd
-if [ "x$OSTYPE" = "xmsys" -a "x`which pskill.exe 2>/dev/null`" = "x" ]; then
+if [ "x$OSTYPE" = "xmsys" -a "x`type pskill.exe 2>/dev/null`" = "x" ]; then
     echo "Could not find pskill.exe. Aborting tests."
     echo "pskill.exe can be installed as follows:"
-    echo "- Download pskill.exe from http://technet.microsoft.com/en-us/sysinternals/default.aspx."
-    echo "- Copy pskill.exe to C:\\MinGW\\msys\\1.0\\bin."
+    echo " - Download pskill.exe from http://technet.microsoft.com/en-us/sysinternals/default.aspx."
+    echo " - Copy pskill.exe to C:\\MinGW\\msys\\1.0\\bin."
     exit 1
 fi 
 
-# Find executables in source first, then build, then existing PATH.
-## Add to PATH if a binary is found.
-
-cd $SNMP_UPDIR
-SNMP_UPDIR=`pwd`
-bf=snmpget
-if [ -x "$bf" ] ; then
-   PATH=$SNMP_UPDIR:$PATH
-else
-  for dd in apps bin ; do
-   bf=$dd/snmpget
-   if [ -x "$bf" ] ; then
-      PATH=$SNMP_UPDIR/$dd:$PATH
-      break
-   fi
-  done
-fi
-for dd in agent bin sbin ; do
-   bf=$dd/snmpd
-   if [ -x "$bf" ] ; then
-      PATH=$SNMP_UPDIR/$dd:$PATH
-      break
-   fi
-done
-
-bf=include/net-snmp/net-snmp-config.h
-if [ ! -s "$bf" ] ; then
-   echo "No \"$bf\" in $SNMP_UPDIR . Some tests will be skipped"
-fi
-unset bf
-
-# Run from the test scripts directory.
-cd $ORIGDIR ; cd ${SNMP_BASEDIR}
-SNMP_BASEDIR=`pwd`
-
-# Setup for the next test run.
-rm -f core tests/core
-
-PATH=${SNMP_BASEDIR}:$PATH
-SNMP_PATH=yes
-
-export PATH
-export SNMP_BASEDIR
-export SNMP_PATH
-export SNMP_UPDIR
-export SNMP_VERBOSE
-
-WHICH=which
-$WHICH $0 > /dev/null 2>&1
-if [ $? -ne 0 ] ; then
-    WHICH=type
-fi
-
-for needed in snmpd snmpget snmpgetnext; do
-    $WHICH $needed > /dev/null 2>&1
-    if [ $? -ne 0  ] ; then 
-        echo "No $needed found. Exiting"
-        exit 1
-    fi
-done
-
-#
-# Distinguished expectations.
-#
-if [ $SNMP_VERBOSE -gt 0 ]; then
-    echo ${SNMP_UPDIR}/testing
-    echo path is $PATH
-    echo top of build is $SNMP_UPDIR
-    echo source testing is $SNMP_BASEDIR
-    $WHICH snmpusm
-fi
-
-#
-# Source the testing configuration file
-#
-
-. TESTCONF.sh
-
-# Hack: the above created a directory, now we have to nuke it and
-# forget about it...  All for the convenience of the test writer.
-rm -fR $SNMP_TMPDIR
-unset SNMP_TMPDIR
-export SNMP_TMPDIR
-
-if [ "x$SNMP_PREFER_NEAR_MIBS" = "x0" ]; then
-    # try the compiled MIBDIRS directory first.
-    # if MIB files are not found, fallback to the source base
-
-    snmptranslate -On -IR sysDescr > /dev/null 2>&1
-    if [ $? -ne 0 ] ; then
-        if [ "x$MIBDIRS" = "x" ]; then
-    	MIBDIRS=${SNMP_BASEDIR}/../mibs
-    	export MIBDIRS
-        fi
-    fi
-    snmptranslate -On -IR sysDescr > /dev/null 2>&1
-    if [ $? -ne 0 ] ; then
-        echo "Could not resolve sysDescr in $MIBDIRS. Exiting"
-        exit 1
-    fi
-fi ## SNMP_PREFER_NEAR_MIBS
-
-#
-# Switch to the testing directory, for ease of the client test packages.
-#
-cd ./tests
-
-#------------------------------------ -o- 
-# Globals.
-#
-PROGRAM=
-ARGUMENTS="$*"
-
-TMPFILE=$SNMP_TMPDIR/eval_suite.sh$$
-
-testname=
-
 success_count=0
 failed_count=0
-
-if [ "x$do_tests" = "x" ]; then
-    #
-    # List the tests in question
-    #
-    num=0
-    for testfile in $SNMP_TEST_PREFIX*; do
-	case $testfile in
-	    # Skip backup files, and the like.
-	    *~)     ;;
-	    *.bak)  ;;
-	    *.orig) ;;
-	    *.rej)  ;;
-
-	    # Do the rest
-	    *)
-		num=`expr $num + 1`
-		if [ "x$interactive" != "xyes" -a "x$test_nums" = "x" ]; then
-		    eval_onescript.sh $testfile $num "yes"
-		fi
-		all_tests="$all_tests $num"
-		all_files="$all_files $testfile"
-		;;
-	esac
-    done
-
-    #
-    # TODO: allow user to interactively pick the list of tests to run.
-    #
-
-    if [ "x$interactive" != "xyes" ]; then
-	if [ "x$test_nums" = "x" ]; then
-	    ECHO "Enter test numbers [all]: "
-	    read inp
-	else
-	    if [ "x$test_nums" = "xall" ]; then
-		inp=""
-	    else
-		inp="$test_nums"
-	    fi
-	fi
-	if [ "x$inp" = "x" ]; then
-	    do_tests="$all_files"
-	else
-	    a=1
-	    set $all_files
-	    while [ $a -le $num ]; do
-		if echo " $inp " | grep " $a " > /dev/null; then
-		    do_tests="$do_tests $1"
-		    if [ "x$test_nums" = "x" ] ; then
-			test_nums=$a
-		    fi
-		fi
-		shift
-		a=`expr $a + 1`
-	    done
-	fi
-    fi
-
-    #echo Starting: Running tests $do_tests
-fi
-
-#
-# Run the tests
-#
-if [ "x$test_nums" = "xall" -o "x$test_nums" = "x" ] ; then
-    num=1
-else
-    num="$test_nums"
-fi
-cntr=0
-for testfile in $do_tests; do
-    dothisone="yes"
-    if [ $USE_TEST_NUMS = 1 ] ; then
-	num=`echo $testfile | sed -e 's/^T//;s/[a-zA-Z].*//;'`
+rm -f failed_tests
+for i in "${srcdir}"/testing/fulltests/default/T*$1*; do
+    echo "RUNNING $i"
+    ${srcdir}/testing/fulltests/support/simple_run $i
+    if [ $? = 0 ]; then
+        success_count=`expr $success_count + 1`
     else
-        id_x=0
-        for itest in $inp; do
-            if [ "$cntr" = "$id_x" ] ; then
-                num="$itest"
-            fi
-            id_x=`expr $id_x + 1`
-        done
+        failed_count=`expr $failed_count + 1`
+        echo "$i" >> failed_tests
     fi
-    if [ "x$interactive" = "xyes" ]; then
-
-        if [ $SH_DEBUG = 1 ] ; then
-	    sh -x "${SNMP_BASEDIR}/eval_onescript.sh" $testfile $num "yes"
-	else
-	    eval_onescript.sh $testfile $num "yes"
-	fi
-
-	ECHO "  Run test #$num (y/n) [y]? "
-	read inp2
-	if [ "x$inp2" = "xn" ]; then
-	    dothisone=no
-	fi
-    fi
-  
-    if [ "x$dothisone" = "xyes" ]; then
-        if [ $SH_DEBUG = 1 ] ; then
-	    sh -x "${SNMP_BASEDIR}/eval_onescript.sh" $testfile $num "no"
-	else
-	    eval_onescript.sh $testfile $num "no"
-	fi
-	if [ $? = 0 ]; then
-	    success_count=`expr $success_count + 1`
-	else
-	    failed_count=`expr $failed_count + 1`
-	fi
-    fi
-    num=`expr $num + 1`
-    cntr=`expr $cntr + 1`
 done
 
+if [ -f failed_tests ]; then
+    echo
+    echo Failed tests:
+    cat failed_tests
+fi
+echo
 echo Summary: $success_count / `expr $failed_count + $success_count` succeeded.
 
 exit $failed_count
diff --git a/testing/T.c b/testing/T.c
deleted file mode 100644
index da483a1..0000000
--- a/testing/T.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * T.c
- *
- * Expected SUCCESSes for all tests:    FIX [+ FIX ...]
- *                                      (List number of lines containing the
- *                                       string "SUCCESS" that are expected
- *                                       to be printed to stdout.)
- *
- * Returns:
- *      Number of FAILUREs.
- *
- * FIX  Short test description/table of contents.       SUCCESSes: FIX
- */
-
-#include <net-snmp/net-snmp-config.h>
-
-#include <sys/types.h>
-#include <stdio.h>
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-
-/*
- * #include ... 
- */
-
-extern char    *optarg;
-extern int      optind, optopt, opterr;
-
-
-
-/*
- * Globals, &c...
- */
-char           *local_progname;
-
-#define USAGE	"Usage: %s [-h][-aS]"
-#define OPTIONLIST	"ahS"
-
-int             doalltests = 0, dosomething = 0;
-
-#define	ALLOPTIONS	(doalltests + dosomething)
-
-
-
-#define LOCAL_MAXBUF	(1024 * 8)
-#define NL		"\n"
-
-#define OUTPUT(o)	fprintf(stdout, "\n\n%s\n\n", o);
-
-#define SUCCESS(s)					\
-{							\
-	if (!failcount)					\
-		fprintf(stdout, "\nSUCCESS: %s\n", s);	\
-}
-
-#define FAILED(e, f)					\
-{							\
-	if (e != SNMPERR_SUCCESS) {			\
-		fprintf(stdout, "\nFAILED: %s\n", f);	\
-		failcount += 1;				\
-	}						\
-}
-
-
-
-
-
-/*
- * Prototypes.
- */
-void            usage(FILE * ofp);
-
-int             test_dosomething(void);
-
-
-
-
-int
-main(int argc, char **argv)
-{
-    int             rval = SNMPERR_SUCCESS, failcount = 0;
-    char            ch;
-
-    local_progname = argv[0];
-
-    EM(-1);                     /* */
-
-    /*
-     * Parse.
-     */
-    while ((ch = getopt(argc, argv, OPTIONLIST)) != EOF) {
-        switch (ch) {
-        case 'a':
-            doalltests = 1;
-            break;
-        case 'S':
-            dosomething = 1;
-            break;
-        case 'h':
-            rval = 0;
-        default:
-            usage(stdout);
-            exit(rval);
-        }
-
-        argc -= 1;
-        argv += 1;
-        if (optarg) {
-            argc -= 1;
-            argv += 1;
-            optarg = NULL;
-        }
-        optind = 1;
-    }                           /* endwhile getopt */
-
-    if ((argc > 1)) {
-        usage(stdout);
-        exit(1000);
-
-    } else if (ALLOPTIONS != 1) {
-        usage(stdout);
-        exit(1000);
-    }
-
-
-    /*
-     * Test stuff.
-     */
-    if (dosomething || doalltests) {
-        failcount += test_dosomething();
-    }
-
-
-    /*
-     * Cleanup.
-     */
-    return failcount;
-
-}                               /* end main() */
-
-
-
-
-
-void
-usage(FILE * ofp)
-{
-    fprintf(ofp,
-            USAGE
-            "" NL
-            "	-a		All tests." NL
-            "	-S		Test something." NL
-            "	-h		Help." NL "" NL, local_progname);
-
-}                               /* end usage() */
-
-
-
-
-#ifdef EXAMPLE
-#endif                          /* EXAMPLE */
-/*******************************************************************-o-******
- * test_dosomething
- *
- * Returns:
- *	Number of failures.
- *
- *
- * Test template.
- */
-int
-test_dosomething(void)
-{
-    int             rval = SNMPERR_SUCCESS, failcount = 0;
-
-    EM0(1, "UNIMPLEMENTED");    /* EM(1); /* */
-
-  test_dosomething_quit:
-    return failcount;
-
-}                               /* end test_dosomething() */
diff --git a/testing/T2.sh b/testing/T2.sh
deleted file mode 100644
index d0a51a8..0000000
--- a/testing/T2.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-#
-# T.sh
-#
-# FIX  Short description.
-#
-
-. eval_tools.sh
-
-HEADER a short description of your test
-
-#------------------------------------ -o- 
-# Test.
-#
-
-# Start the agent if needed (make sure it stop it below)
-STARTAGENT
-
-CAPTURE "<executable_with_arguments:_stores_stdout/stderr_for_use_later>"
-
-CHECKEXACT "<string_to_look_for_an_exact_match_of_in_the_CAPTUREd_file_output>"
-[ $? -eq 1 ]
-FAILED $? "<diagnostic_label>"
-
-#------------------------------------ -o- 
-# Cleanup, exit.
-#
-
-# Stop the agent if necessary
-STOPAGENT
-
-FINISHED
diff --git a/testing/data.keychange-md5 b/testing/data.keychange-md5
deleted file mode 100644
index 2e24c4a..0000000
--- a/testing/data.keychange-md5
+++ /dev/null
@@ -1,26 +0,0 @@
-0x526f5eed9fcce26f8964c2930787d82b	# old kul
-0x87021d7bd9d101ba05ea6e3bf9d9bd4a	# new kul
-000000000000000000000000000000008805615141676cc9196174e742a32551							# keychange string -- auth/privacy
-
-
-		#		#		#		#
-
-#
-# Following data exerpted from:
-#
-#	Message-Id: <199809282003.QAA27494@relay.hq.tis.com>
-#	Date: Mon, 28 Sep 98 21:57:48 DST
-#	From: "Bert Wijnen" <WIJNEN@vnet.ibm.com>
-#	To: snmpv3@tis.com
-#	Subject: suggested new appendix section A.5 for RFC2274
-#
-maplesyrup				# old passphrase
-0x000000000000000000000002		# engineID
-
-newsyrup				# new passphrase
-01add273107c4e596b4b00f82b1d42a7	# new Ku
-87021d7bd9d101ba05ea6e3bf9d9bd4a	# new kul
-
-00000000000000000000000000000000	# random delta
-
-000000000000000000000000000000008805615141676cc9196174e742a32551							# keychange string -- auth/privacy
diff --git a/testing/data.keychange-sha1 b/testing/data.keychange-sha1
deleted file mode 100644
index 4d97749..0000000
--- a/testing/data.keychange-sha1
+++ /dev/null
@@ -1,26 +0,0 @@
-0x6695febc9288e36282235fc7151f128497b38f3f	# old kul -- for auth
-0x78e2dcce79d59403b58c1bbaa5bff46391f1cd25	# new kul -- for auth
-00000000000000000000000000000000000000009c1017f4fd483d2de8d5fadbf84392cb06457051						# keychange string -- auth
-
-
-		#		#		#		#
-
-#
-# Following data exerpted from:
-#
-#       Message-Id: <199809282003.QAA27494@relay.hq.tis.com>
-#       Date: Mon, 28 Sep 98 21:57:48 DST
-#       From: "Bert Wijnen" <WIJNEN@vnet.ibm.com>
-#       To: snmpv3@tis.com
-#       Subject: suggested new appendix section A.5 for RFC2274
-#
-maplesyrup					# old passphrase
-0x000000000000000000000002			# engineID
-
-newsyrup					# new passphrase
-3a51a6d736aa347b83dc4a87e3e55ee4d698ac71	# new Ku -- auth
-78e2dcce79d59403b58c1bbaa5bff46391f1cd25	# new kul -- auth
-
-0000000000000000000000000000000000000000	# random delta
-
-00000000000000000000000000000000000000009c1017f4fd483d2de8d5fadbf84392cb06457051						# keychange string -- auth
diff --git a/testing/data.keychange-sha1-des b/testing/data.keychange-sha1-des
deleted file mode 100644
index 67719d5..0000000
--- a/testing/data.keychange-sha1-des
+++ /dev/null
@@ -1,26 +0,0 @@
-0x6695febc9288e36282235fc7151f1284		# old kul -- privacy
-0x78e2dcce79d59403b58c1bbaa5bff463		# new kul -- privacy
-000000000000000000000000000000007ef8d8a4c9cdb26b47591cd852ff88b5								# keychange string -- privacy
-
-
-		#		#		#		#
-
-#
-# Following data exerpted from:
-#
-#       Message-Id: <199809282003.QAA27494@relay.hq.tis.com>
-#       Date: Mon, 28 Sep 98 21:57:48 DST
-#       From: "Bert Wijnen" <WIJNEN@vnet.ibm.com>
-#       To: snmpv3@tis.com
-#       Subject: suggested new appendix section A.5 for RFC2274
-#
-maplesyrup					# old passphrase
-0x000000000000000000000002			# engineID
-
-newsyrup					# new passphrase
-3a51a6d736aa347b83dc4a87e3e55ee4d698ac71	# new Ku -- privacy
-78e2dcce79d59403b58c1bbaa5bff463		# new kul -- privacy
-
-00000000000000000000000000000000		# random delta
-
-000000000000000000000000000000007ef8d8a4c9cdb26b47591cd852ff88b5								# keychange string -- privacy
diff --git a/testing/data.kul-md5 b/testing/data.kul-md5
deleted file mode 100644
index 78e1e27..0000000
--- a/testing/data.kul-md5
+++ /dev/null
@@ -1,8 +0,0 @@
-maplesyrup				# passphrase
-9faf3283884e92834ebc9847d8edd963	# Ku
-0x000000000000000000000002		# engineID
-526f5eed9fcce26f8964c2930787d82b	# kul
-
-#
-# Taken from <draft-ietf-snmpv3-usm-v2-01.txt>, Section A.3.
-#
diff --git a/testing/data.kul-sha1 b/testing/data.kul-sha1
deleted file mode 100644
index c827abd..0000000
--- a/testing/data.kul-sha1
+++ /dev/null
@@ -1,8 +0,0 @@
-maplesyrup					# passphrase
-9fb5cc0381497b3793528939ff788d5d79145211	# Ku
-0x000000000000000000000002			# engineID
-6695febc9288e36282235fc7151f128497b38f3f	# kul
-
-#
-# Taken from <draft-ietf-snmpv3-usm-v2-01.txt>, Section A.3.
-#
diff --git a/testing/eval_oneprogram.sh b/testing/eval_oneprogram.sh
deleted file mode 100755
index 45edfc0..0000000
--- a/testing/eval_oneprogram.sh
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/bin/sh
-#
-# eval_oneprogram.sh [-h][-lk] <program> [<program_args>]
-#
-# CALLED BY: eval_suite.sh
-#
-#
-# Runs <program> and reports how many instances of the strings SUCCESS
-# or FAILED occur.
-#
-#
-# FIX	Output from $PROGRAM on stderr is separated out and comes first.
-#
-#
-USAGE_LONG='
-#
-# -h	Help.
-# -k	Save the program output in "__<program_args>__<pid>o".
-# -l	Long form.  (Short form by default.)
-#
-# <program> is the executable to run and collect the output of.
-'
-
-USAGE="Usage: `basename $0` [-h][-lk] <program>"
-
-
-
-
-#------------------------------------ -o- 
-# Globals.
-#
-AWKFILE="_`basename $0`$$.awk"
-SCRIPTFILE=
-
-dolongform=0
-dokeepoutput=
-
-TOTALFAILED=0
-
-
-
-#------------------------------------ -o- 
-# Parse & setup.
-#
-while [ -n "$1" ]; do
-	case "$1" in
-	-k)	dokeepoutput=true
-		;;
-	-l)	dolongform=1
-		;;
-	-h)	echo $USAGE
-		cat <<BLIK | sed 's/^#//' | sed '1d'    1>&2
-$USAGE_LONG
-BLIK
-		exit 0
-		;;
-	*)	PROGRAM="$*"
-		shift `expr $# - 1`
-		;;
-	esac
-
-	shift
-done
-
-[ -z "$PROGRAM" ] && echo $USAGE && exit 1
-
-
-SCRIPTFILE="__`echo \`basename $PROGRAM\` | sed 's/ /_/g'`__$$o"
-
-
-
-#------------------------------------ -o- 
-# Create awk script.
-#
-
-cat <<GRONK >$AWKFILE
-
-BEGIN {
-	pass = 0
-	passlist[0] = ""
-
-	fail = 0
-	faillist[0] = ""
-
-	longform = $dolongform + 0
-}
-
-/SUCCESS/	{
-	passlist[pass] = \$0
-	pass += 1
-}
-
-/FAILED/	{
-	faillist[fail] = \$0
-	fail += 1
-}
-
-END {
-	printf "$PROGRAM SUCCESS: %d\n", pass
-	printf "$PROGRAM FAILED: %d\n", fail
-
-	if (longform) {
-		printf "\n"
-		for (i=0; i<pass; i++)
-			print passlist[i]
-
-		for (i=0; i<fail; i++)
-			print faillist[i]
-	}
-
-	exit fail
-}
-GRONK
-
-
-
-
-#------------------------------------ -o- 
-# Get and print results.
-#
-
-{ $PROGRAM $* 2>&1 ; } >$SCRIPTFILE
-
-awk -f $AWKFILE $SCRIPTFILE
-TOTALFAILED=$?
-
-rm -f $AWKFILE
-[ -z "$dokeepoutput" ] && rm -f $SCRIPTFILE
-
-
-
-
-#------------------------------------ -o- 
-# Exit, cleanup.
-#
-exit $TOTALFAILED
-
-
diff --git a/testing/eval_onescript.sh b/testing/eval_onescript.sh
deleted file mode 100755
index f2476d1..0000000
--- a/testing/eval_onescript.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-#
-# eval_onescript.sh SCRIPT  [TESTNUMBER [HEADERONLY] ]
-#
-# Evaluates one test program, and helps it out by doing a bit of setup
-# for it.  It does this by sourcing some configuration files for it
-# first, and if it exited without calling FINISHED, call it.
-#
-# Not intended to be a tool for the common user!  Called by RUNTESTS
-# directly instead.
-#
-
-testnum=1
-if [ "x$2" != "x" ]; then
-	testnum=$2
-fi
-export testnum
-
-unset SNMP_HEADERONLY
-if [ "x$3" = "xyes" ]; then
-    SNMP_HEADERONLY=yes
-fi
-export SNMP_HEADERONLY
-
-. TESTCONF.sh
-
-. eval_tools.sh
-
-ECHO "$testnum:  "
-
-. ./$1
-
-# We shouldn't get here...
-# If we do, it means they didn't exit properly.
-# So we will.
-FINISHED
diff --git a/testing/eval_suite.sh b/testing/eval_suite.sh
deleted file mode 100755
index 1c1a0f2..0000000
--- a/testing/eval_suite.sh
+++ /dev/null
@@ -1,218 +0,0 @@
-#!/bin/sh
-#
-# eval_suite.sh [-h][<args_passed_to_getresults>]
-#
-# CALLS: eval_oneprogram.sh [-h][-lk] <program>
-#
-# RETURNS:	Number of failed tests, regardless of how that failure occured
-#		or how many failures there were in a given test.
-#
-#
-
-
-								USAGE_LONG='
-#
-# HOW TO ENTER A NEW TEST
-#
-# To add a test to the testlist, add a line to the TESTLISTFILE (eval_testlist)
-# using the following format:
-#
-#	<#_of_expected_successes> [#]<program> <args>
-#
-# Any white space may be used as separator.  If <program> is immediately
-# preceeded by a pound sign (#) that test will be skipped.  (No white space
-# allowed after the pound.  Eg, "#<program>".)
-#
-#
-# HOW TESTS ARE RUN AND EVALUATED
-#
-# The harness for individual tests is the script "eval_oneprogram.sh".
-# It expects that the test print FAILED when something fails, and SUCCESS
-# when something succeeds.  If a test executes properly there should be
-# some SUCCESS strings and NO FAILED strings.  If the reason for the
-# success or failure of the test should be printed on the SAME line as the
-# SUCCESS/FAILED string to allow the dianostic to be easilly grepped from
-# the its output.
-#
-# The long form of the output (-l flag) will capture that output which may
-# help to diagnosis the problem.  For more information:
-#
-#	% eval_oneprogram.sh -h
-#
-# 
-# MISSING TESTS ARE NOTED
-#
-# If an executable is found MISSING, a note is printed to that effect
-# and TESTFAILURE is incremented by 1.
-#
-'
-
-#
-# Suggested improvement(s):
-#	Have two (or more?) arbitrary script(s) that may be associated
-#	with a given test.  One could prepare the environment, the other
-#	could clean up the environment after running the test.  This could
-#	help when testing large subsystems that might require legitimately
-#	building or changing things such that the testable item may be 
-#	accessed in the first place (eg). ...
-#
-
-
-#------------------------------------ -o- 
-# Usage mess.  (No, it works.)
-#
-USAGE="Usage: `basename $0` [-h][<args_for_getresults>]"
-
-usage() { echo; echo $USAGE; cat <<BLIK | sed 's/^#//' | sed '1d' | $PAGER
-$USAGE_LONG
-BLIK
-exit 0
-}
-
-[ "x$1" = "x-h" ] && usage
-
-
-
-#------------------------------------ -o- 
-# Globals.
-#
-PROGRAM=
-ARGUMENTS="$*"
-
-umask 0077 # just to be on the safe side
-SNMP_TMPDIR=/tmp/net-snmpd-eval-dir.$$
-rm -rf $SNMP_TMPDIR
-mkdir $SNMP_TMPDIR || exit -1
-chmod 0700 $SNMP_TMPDIR
-TMPFILE=$SNMP_TMPDIR/eval_suite.sh$$
-
-TESTLISTFILE=eval_testlist
-
-EXPECTEDSUCCESSES=
-TESTFAILURE=0
-
-testname=
-
-success_count=
-failed_count=
-
-#
-# TESTLISTFILE format:
-#  	<expected_successes>	<program> <arg(s)> ...
-#  	<expected_successes>	<program> <arg(s)> ...
-#	...
-#
-TESTLIST="`cat $TESTLISTFILE | sed 's/$/   ===/'`"
-
-
-
-
-
-#------------------------------------ -o- 
-# Run all tests in the testlist.  For each test do the following:
-#
-#	1) Note whether the test is SKIPPED or MISSING.
-#
-#	2) Run the test; collect the number of FAILED strings from the
-#		return value of eval_oneprogram.sh.
-#
-#	3) Count the number of SUCCESSes from the test output.
-#
-#	4) Print the results.  If there were no FAILED strings *and* the
-#		number of SUCCESS strings is what we expect, simply
-#		note that the test passed.  Otherwise, cat the output
-#		generated by eval_oneprogram.sh and (possibly)
-#		print other details.
-#
-set x $TESTLIST
-shift
-
-while [ -n "$1" ] ; do
-	#
-	# Parse agument stream...
-	#
-	EXPECTEDSUCCESSES=$1
-	shift
-
-	PROGRAM=
-	while [ "$1" != "===" ] ; do { PROGRAM="$PROGRAM $1" ; shift ; } done
-	shift
-
-	testname="`echo $PROGRAM | grep '^#' | sed 's/^#//'`"
-
-	echo '+==================================-o-===+'
-	echo
-
-
-
-	#
-	# Decide whether to skip the test, if it's mising, else run it.
-	#
-	[ -n "$testname" ] && {					# Skip the test?
-		echo "SKIPPING test for \"$testname\"."
-		echo
-		continue
-	}
-	[ ! -e "`echo $PROGRAM | awk '{ print $1 }'`" ] && {	# Missing test?
-		TESTFAILURE=`expr $TESTFAILURE + 1`
-
-		echo "MISSING test for \"$PROGRAM\"."
-		echo
-		continue
-	}
-
-	echo "TESTING \"$PROGRAM\"..."				# Announce test!
-
-
-
-	#
-	# Run the test and collect the failed_count and success_count.
-	#
-	eval_oneprogram.sh $ARGUMENTS $PROGRAM >$TMPFILE
-	failed_count=$?
-
-	success_count=`awk '$(NF-1) == "SUCCESS:" { print $NF; exit }' $TMPFILE`
-	[ -z "$success_count" ] && success_count=0
-
-
-	
-	#
-	# Output best-effort results of the test  -OR-  a fully successful run.
-	#
-	[ "$failed_count" -eq 0 -a \
-			"$success_count" -eq "$EXPECTEDSUCCESSES" ] &&
-	{
-		echo
-		echo $PROGRAM PASSED		# Successful, fully, completed
-		echo
-		
-		true
-	} || {
-		TESTFAILURE=`expr $TESTFAILURE + 1`
-
-		echo
-		cat $TMPFILE
-		echo
-
-		[ "$success_count" -ne $EXPECTEDSUCCESSES ] && {
-			echo "Got $success_count SUCCESSes"\
-						"out of $EXPECTEDSUCCESSES."
-			echo
-		}
-		true
-	}  # end -- evaluation of and output based upon test success.
-done  # endwhile
-
-
-
-
-#------------------------------------ -o- 
-# Cleanup, exit.
-#
-rm -f $TMPFILE
-rm -rf $SNMP_TMPDIR
-
-exit $TESTFAILURE
-
-
-
diff --git a/testing/eval_testlist b/testing/eval_testlist
deleted file mode 100644
index 6f0f1f5..0000000
--- a/testing/eval_testlist
+++ /dev/null
@@ -1,5 +0,0 @@
-7	ktest -a
-13	stest -a		
-3	#test_keychange.sh
-2	test_kul.sh
-3	etest -a
diff --git a/testing/tests/Sv1config b/testing/fulltests/default/Sv1config
similarity index 100%
rename from testing/tests/Sv1config
rename to testing/fulltests/default/Sv1config
diff --git a/testing/tests/Sv2cconfig b/testing/fulltests/default/Sv2cconfig
similarity index 100%
rename from testing/tests/Sv2cconfig
rename to testing/fulltests/default/Sv2cconfig
diff --git a/testing/tests/Sv3config b/testing/fulltests/default/Sv3config
similarity index 100%
rename from testing/tests/Sv3config
rename to testing/fulltests/default/Sv3config
diff --git a/testing/tests/Sv3usmconfigagent b/testing/fulltests/default/Sv3usmconfigagent
similarity index 100%
rename from testing/tests/Sv3usmconfigagent
rename to testing/fulltests/default/Sv3usmconfigagent
diff --git a/testing/tests/Sv3usmconfigbase b/testing/fulltests/default/Sv3usmconfigbase
similarity index 87%
rename from testing/tests/Sv3usmconfigbase
rename to testing/fulltests/default/Sv3usmconfigbase
index f241894..99bda04 100644
--- a/testing/tests/Sv3usmconfigbase
+++ b/testing/fulltests/default/Sv3usmconfigbase
@@ -28,6 +28,8 @@
 ## auto-probe best auth type
 if grep '^#define NETSNMP_USE_OPENSSL 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null ; then
   MAXAUTHTYPE=SHA
+elif grep '^#define NETSNMP_USE_INTERNAL_CRYPTO 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null ; then
+  MAXAUTHTYPE=SHA
 else
   # MD5 is always available internally
   MAXAUTHTYPE=MD5
@@ -42,6 +44,8 @@
   else
     MAXPRIVTYPE=DES
   fi
+elif grep '^#define NETSNMP_USE_INTERNAL_CRYPTO 1' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h > /dev/null; then
+    MAXPRIVTYPE=AES
 else
     MAXPRIVTYPE=""
 fi
@@ -51,8 +55,8 @@
 
 ## auth setup
 if [ "x$DEFSECURITYLEVEL" = "xauthPriv" -o "x$DEFSECURITYLEVEL" = "xauthNoPriv" ]; then
-  [ "x$MAXAUTHTYPE" = "x" ] && SKIP
-  [ "x$DEFAUTHTYPE" = "xSHA" -a "x$MAXAUTHTYPE" != "xSHA" ] && SKIP
+  [ "x$MAXAUTHTYPE" = "x" ] && SKIP MAXAUTHTYPE not set
+  [ "x$DEFAUTHTYPE" = "xSHA" -a "x$MAXAUTHTYPE" != "xSHA" ] && SKIP Cannot do SHA
   [ "x$DEFAUTHTYPE" = "x" ] && DEFAUTHTYPE=$MAXAUTHTYPE
   # user/pass setup (XXX: randomize)
   [ "x$TESTAUTHUSER" = "x" ] && TESTAUTHUSER=initial_auth
@@ -70,8 +74,8 @@
 
 ## priv setup
 if [ "x$DEFSECURITYLEVEL" = "xauthPriv" ]; then
-  [ "x$MAXPRIVTYPE" = "x" ] && SKIP
-  [ "x$DEFPRIVTYPE" = "xAES" -a "x$MAXPRIVTYPE" != "xAES" ] && SKIP
+  [ "x$MAXPRIVTYPE" = "x" ] && SKIP MAXPRIVTYPE not set
+  [ "x$DEFPRIVTYPE" = "xAES" -a "x$MAXPRIVTYPE" != "xAES" ] && SKIP Cannot do AES
   [ "x$DEFPRIVTYPE" = "x" ] && DEFPRIVTYPE=$MAXPRIVTYPE
   # user/pass setup (XXX: randomize)
   [ "x$TESTPRIVUSER" = "x" ] && TESTPRIVUSER=initial_priv
diff --git a/testing/tests/Sv3usmconfigtrapd b/testing/fulltests/default/Sv3usmconfigtrapd
similarity index 100%
rename from testing/tests/Sv3usmconfigtrapd
rename to testing/fulltests/default/Sv3usmconfigtrapd
diff --git a/testing/tests/Sv3vacmconfig b/testing/fulltests/default/Sv3vacmconfig
similarity index 100%
rename from testing/tests/Sv3vacmconfig
rename to testing/fulltests/default/Sv3vacmconfig
diff --git a/testing/tests/Svacmconfig b/testing/fulltests/default/Svacmconfig
similarity index 100%
rename from testing/tests/Svacmconfig
rename to testing/fulltests/default/Svacmconfig
diff --git a/testing/tests/Svanyconfig b/testing/fulltests/default/Svanyconfig
similarity index 81%
rename from testing/tests/Svanyconfig
rename to testing/fulltests/default/Svanyconfig
index ad4d3b5..b91eb0f 100644
--- a/testing/tests/Svanyconfig
+++ b/testing/fulltests/default/Svanyconfig
@@ -6,6 +6,9 @@
 if [ "x$snmp_version" = "x" ]; then
   snmp_version="any"
 fi
+if [ "x$snmp_write_access" = "x" ]; then
+  snmp_write_access="none"
+fi
 
 [ "x$SNMP_SMUX_SOCKET" = "x" ] && SNMP_SMUX_SOCKET=1.0.0.0
 
@@ -23,4 +26,4 @@
 
 CONFIGAGENT group   testcommunitygroup  $snmp_version     testcommunitysec
 CONFIGAGENT view    all     included .1 80
-CONFIGAGENT 'access  testcommunitygroup  "" any noauth exact all none none'
+CONFIGAGENT "access  testcommunitygroup  "'""'" any noauth exact all $snmp_write_access none"
diff --git a/testing/tests/T000configure b/testing/fulltests/default/T000configure_simple
similarity index 100%
rename from testing/tests/T000configure
rename to testing/fulltests/default/T000configure_simple
diff --git a/testing/tests/T001snmpv1get b/testing/fulltests/default/T001snmpv1get_simple
similarity index 95%
rename from testing/tests/T001snmpv1get
rename to testing/fulltests/default/T001snmpv1get_simple
index 22cb060..07d3847 100644
--- a/testing/tests/T001snmpv1get
+++ b/testing/fulltests/default/T001snmpv1get_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv1 support
 
diff --git a/testing/tests/T014snmpv2cget b/testing/fulltests/default/T014snmpv2cget_simple
similarity index 91%
rename from testing/tests/T014snmpv2cget
rename to testing/fulltests/default/T014snmpv2cget_simple
index 271f978..43dffd5 100644
--- a/testing/tests/T014snmpv2cget
+++ b/testing/fulltests/default/T014snmpv2cget_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv2c get of system.sysUpTime.0
 
diff --git a/testing/tests/T015snmpv2cgetnext b/testing/fulltests/default/T015snmpv2cgetnext_simple
similarity index 91%
rename from testing/tests/T015snmpv2cgetnext
rename to testing/fulltests/default/T015snmpv2cgetnext_simple
index 6c3fdf6..7c6eaa9 100644
--- a/testing/tests/T015snmpv2cgetnext
+++ b/testing/fulltests/default/T015snmpv2cgetnext_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv2c getnext of system.sysUpTime
 
diff --git a/testing/tests/T0160snmpv2cbulkget b/testing/fulltests/default/T0160snmpv2cbulkget_simple
similarity index 67%
rename from testing/tests/T0160snmpv2cbulkget
rename to testing/fulltests/default/T0160snmpv2cbulkget_simple
index ec2c427..38ec3b3 100755
--- a/testing/tests/T0160snmpv2cbulkget
+++ b/testing/fulltests/default/T0160snmpv2cbulkget_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv2c bulkget of system components
 
@@ -24,17 +24,8 @@
 CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:"
 CHECKORDIE ".1.3.6.1.2.1.1.2.0 = OID:"
 
-CHECK ".1.3.6.1.2.1.1.3.0"
-if [ "$snmp_last_test_result" != 0 ] ; then
-    return_value=1
-    FINISHED
-fi
+CHECKCOUNT 0 ".1.3.6.1.2.1.1.3.0"
 
-CHECK ".1.3.6.1.2.1.1.5.0"
-EXPECTRESULT 0
-if [ "$snmp_last_test_result" != 0 ] ; then
-    return_value=1
-    FINISHED
-fi
+CHECKCOUNT 0 ".1.3.6.1.2.1.1.5.0"
 
 FINISHED
diff --git a/testing/tests/T016snmpv2cgetfail b/testing/fulltests/default/T016snmpv2cgetfail_simple
similarity index 92%
rename from testing/tests/T016snmpv2cgetfail
rename to testing/fulltests/default/T016snmpv2cgetfail_simple
index 4bc2412..6e3b814 100644
--- a/testing/tests/T016snmpv2cgetfail
+++ b/testing/fulltests/default/T016snmpv2cgetfail_simple
@@ -4,7 +4,7 @@
 # test snmpv2c get support by reading a variable
 #
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER for failure of SNMPv2c get with wrong community
 
diff --git a/testing/tests/T017snmpv2ctov1getfail b/testing/fulltests/default/T017snmpv2ctov1getfail_simple
similarity index 92%
rename from testing/tests/T017snmpv2ctov1getfail
rename to testing/fulltests/default/T017snmpv2ctov1getfail_simple
index 8a97942..4c812c0 100644
--- a/testing/tests/T017snmpv2ctov1getfail
+++ b/testing/fulltests/default/T017snmpv2ctov1getfail_simple
@@ -4,7 +4,7 @@
 # test snmpv2c get support by reading a variable
 #
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER for failure of SNMPv2c get against SNMPv1 agent
 
diff --git a/testing/tests/T018snmpv1tov2cgetfail b/testing/fulltests/default/T018snmpv1tov2cgetfail_simple
similarity index 91%
rename from testing/tests/T018snmpv1tov2cgetfail
rename to testing/fulltests/default/T018snmpv1tov2cgetfail_simple
index f36cd4d..d9b8b6a 100644
--- a/testing/tests/T018snmpv1tov2cgetfail
+++ b/testing/fulltests/default/T018snmpv1tov2cgetfail_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER for failure of SNMPv1 get against SNMPv2c agent
 
diff --git a/testing/tests/T019snmpv2cnosuch b/testing/fulltests/default/T019snmpv2cnosuch_simple
similarity index 91%
rename from testing/tests/T019snmpv2cnosuch
rename to testing/fulltests/default/T019snmpv2cnosuch_simple
index e69ab9a..78a0bb1 100644
--- a/testing/tests/T019snmpv2cnosuch
+++ b/testing/fulltests/default/T019snmpv2cnosuch_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv2c get of system.sysUpTime.1
 
diff --git a/testing/tests/T020snmpv3get b/testing/fulltests/default/T020snmpv3get_simple
similarity index 91%
rename from testing/tests/T020snmpv3get
rename to testing/fulltests/default/T020snmpv3get_simple
index 58c6ce3..20b59e4 100644
--- a/testing/tests/T020snmpv3get
+++ b/testing/fulltests/default/T020snmpv3get_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv3 get using noAuthNoPriv of .1.3.6.1.2.1.1.3.0
 
diff --git a/testing/tests/T021snmpv3getnext b/testing/fulltests/default/T021snmpv3getnext_simple
similarity index 65%
rename from testing/tests/T021snmpv3getnext
rename to testing/fulltests/default/T021snmpv3getnext_simple
index 2b9f646..54c82d3 100755
--- a/testing/tests/T021snmpv3getnext
+++ b/testing/fulltests/default/T021snmpv3getnext_simple
@@ -1,8 +1,8 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
-HEADER SNMPv3 getnext using initial of .1.3.6.1.2.1.1.3.0
+HEADER SNMPv3 getnext using initial of .1.3.6.1.2.1.1.3
 
 SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
 
@@ -15,7 +15,7 @@
 
 STARTAGENT
 
-CAPTURE "snmpgetnext -On $SNMP_FLAGS $NOAUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT system.sysUpTime"
+CAPTURE "snmpgetnext -On $SNMP_FLAGS $NOAUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3"
 
 STOPAGENT
 
diff --git a/testing/tests/T0220snmpv3bulkget b/testing/fulltests/default/T0220snmpv3bulkget_simple
similarity index 64%
rename from testing/tests/T0220snmpv3bulkget
rename to testing/fulltests/default/T0220snmpv3bulkget_simple
index 8a8ecb7..7eddccf 100755
--- a/testing/tests/T0220snmpv3bulkget
+++ b/testing/fulltests/default/T0220snmpv3bulkget_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv3 bulkget of system
 
@@ -23,17 +23,8 @@
 CHECKORDIE ".1.3.6.1.2.1.1.1.0 = STRING:"
 CHECKORDIE ".1.3.6.1.2.1.1.2.0 = OID:"
 
-CHECK ".1.3.6.1.2.1.1.3.0"
-if [ "$snmp_last_test_result" != 0 ] ; then
-    return_value=1
-    FINISHED
-fi
+CHECKCOUNT 0 ".1.3.6.1.2.1.1.3.0"
 
-CHECK ".1.3.6.1.2.1.1.5.0"
-EXPECTRESULT 0
-if [ "$snmp_last_test_result" != 0 ] ; then
-    return_value=1
-    FINISHED
-fi
+CHECKCOUNT 0 ".1.3.6.1.2.1.1.5.0"
 
 FINISHED
diff --git a/testing/tests/T022snmpv3getMD5 b/testing/fulltests/default/T022snmpv3getMD5_simple
similarity index 91%
rename from testing/tests/T022snmpv3getMD5
rename to testing/fulltests/default/T022snmpv3getMD5_simple
index 9e7960d..eed4292 100755
--- a/testing/tests/T022snmpv3getMD5
+++ b/testing/fulltests/default/T022snmpv3getMD5_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv3 get using MD5/noPriv of .1.3.6.1.2.1.1.3.0
 
diff --git a/testing/tests/T023snmpv3getMD5AES b/testing/fulltests/default/T023snmpv3getMD5AES_simple
similarity index 86%
rename from testing/tests/T023snmpv3getMD5AES
rename to testing/fulltests/default/T023snmpv3getMD5AES_simple
index 773c980..985b2a4 100644
--- a/testing/tests/T023snmpv3getMD5AES
+++ b/testing/fulltests/default/T023snmpv3getMD5AES_simple
@@ -1,10 +1,10 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv3 get using MD5/AES of .1.3.6.1.2.1.1.3.0
 
-SKIPIFNOT NETSNMP_USE_OPENSSL
+SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
 SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
 SKIPIFNOT HAVE_AES_CFB128_ENCRYPT
 SKIPIF NETSNMP_DISABLE_MD5
diff --git a/testing/tests/T023snmpv3getMD5DES b/testing/fulltests/default/T023snmpv3getMD5DES_simple
similarity index 86%
rename from testing/tests/T023snmpv3getMD5DES
rename to testing/fulltests/default/T023snmpv3getMD5DES_simple
index 0689dea..000478a 100755
--- a/testing/tests/T023snmpv3getMD5DES
+++ b/testing/fulltests/default/T023snmpv3getMD5DES_simple
@@ -1,10 +1,10 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv3 get using MD5/DES of .1.3.6.1.2.1.1.3.0
 
-SKIPIFNOT NETSNMP_USE_OPENSSL
+SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
 SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
 SKIPIF NETSNMP_DISABLE_MD5
 
diff --git a/testing/tests/T024snmpv3getSHA1 b/testing/fulltests/default/T024snmpv3getSHA1_simple
similarity index 83%
rename from testing/tests/T024snmpv3getSHA1
rename to testing/fulltests/default/T024snmpv3getSHA1_simple
index 9c1474d..80b7f4f 100755
--- a/testing/tests/T024snmpv3getSHA1
+++ b/testing/fulltests/default/T024snmpv3getSHA1_simple
@@ -1,10 +1,10 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv3 get using SHA/noPriv of .1.3.6.1.2.1.1.3.0
 
-SKIPIFNOT NETSNMP_USE_OPENSSL
+SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
 
 #
 # Begin test
diff --git a/testing/tests/T025snmpv3getSHADES b/testing/fulltests/default/T025snmpv3getSHADES_simple
similarity index 86%
rename from testing/tests/T025snmpv3getSHADES
rename to testing/fulltests/default/T025snmpv3getSHADES_simple
index 94fbaca..a59b69b 100755
--- a/testing/tests/T025snmpv3getSHADES
+++ b/testing/fulltests/default/T025snmpv3getSHADES_simple
@@ -1,10 +1,10 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv3 get using SHA/DES of .1.3.6.1.2.1.1.3.0
 
-SKIPIFNOT NETSNMP_USE_OPENSSL
+SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
 SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
 SKIPIF NETSNMP_DISABLE_DES
 
diff --git a/testing/tests/T026snmpv3getSHAAES b/testing/fulltests/default/T026snmpv3getSHAAES_simple
similarity index 86%
rename from testing/tests/T026snmpv3getSHAAES
rename to testing/fulltests/default/T026snmpv3getSHAAES_simple
index 766513a..cbfcca7 100644
--- a/testing/tests/T026snmpv3getSHAAES
+++ b/testing/fulltests/default/T026snmpv3getSHAAES_simple
@@ -1,10 +1,10 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv3 get using SHA/AES of .1.3.6.1.2.1.1.3.0
 
-SKIPIFNOT NETSNMP_USE_OPENSSL
+SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
 SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
 SKIPIFNOT HAVE_AES_CFB128_ENCRYPT
 
diff --git a/testing/tests/T028snmpv3getfail b/testing/fulltests/default/T028snmpv3getfail_simple
similarity index 90%
rename from testing/tests/T028snmpv3getfail
rename to testing/fulltests/default/T028snmpv3getfail_simple
index 99095e1..ada8a13 100755
--- a/testing/tests/T028snmpv3getfail
+++ b/testing/fulltests/default/T028snmpv3getfail_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER for failure of SNMPv3 get using unknown user.
 
diff --git a/testing/tests/T030snmpv3usercreation b/testing/fulltests/default/T030snmpv3usercreation_simple
similarity index 97%
rename from testing/tests/T030snmpv3usercreation
rename to testing/fulltests/default/T030snmpv3usercreation_simple
index a1cb443..40e4cac 100644
--- a/testing/tests/T030snmpv3usercreation
+++ b/testing/fulltests/default/T030snmpv3usercreation_simple
@@ -1,12 +1,12 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv3 agent USM user management with snmpusm
 
 SKIPIF NETSNMP_DISABLE_SET_SUPPORT
 SKIPIFNOT USING_SNMPV3_USMUSER_MODULE
-SKIPIFNOT NETSNMP_USE_OPENSSL
+SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
 SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
 
 #
diff --git a/testing/tests/T035snmpv3trapdusermgmt b/testing/fulltests/default/T035snmpv3trapdusermgmt_simple
similarity index 91%
rename from testing/tests/T035snmpv3trapdusermgmt
rename to testing/fulltests/default/T035snmpv3trapdusermgmt_simple
index fa26db9..ca33dc9 100644
--- a/testing/tests/T035snmpv3trapdusermgmt
+++ b/testing/fulltests/default/T035snmpv3trapdusermgmt_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv3 snmptrapd USM user management with snmpusm
 
@@ -80,12 +80,12 @@
 CHECKORDIE "SNMPv3 Key(s) successfully changed"
 
 # test (anp)
-CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l anp -a $DEFAUTHTYPE -A $NEWAUTHPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s received_inform_anp"
+CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l anp -a $DEFAUTHTYPE -A $NEWAUTHPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_anp"
 DELAY
 CHECKTRAPDORDIE "received_inform_anp"
 
 # test (ap)
-CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s received_inform_ap"
+CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -A $NEWAUTHPASS -x $DEFPRIVTYPE -X $NEWPRIVPASS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_ap"
 DELAY
 CHECKTRAPDORDIE "received_inform_ap"
 
@@ -96,7 +96,7 @@
 CHECKORDIE "SNMPv3 Key(s) successfully changed"
 
 # test (anp)
-CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l anp -a $DEFAUTHTYPE -3k $NEWAUTHKEY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s received_inform_anp2"
+CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l anp -a $DEFAUTHTYPE -3k $NEWAUTHKEY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_anp2"
 DELAY
 CHECKTRAPDORDIE "received_inform_anp2"
 
@@ -105,7 +105,7 @@
 CHECKORDIE "SNMPv3 Key(s) successfully changed"
 
 # test (ap)
-CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -3k $NEWAUTHKEY -x $DEFPRIVTYPE -3K $NEWPRIVKEY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s received_inform_ap2"
+CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -3k $NEWAUTHKEY -x $DEFPRIVTYPE -3K $NEWPRIVKEY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_ap2"
 DELAY
 CHECKTRAPDORDIE "received_inform_ap2"
 
@@ -115,7 +115,7 @@
 HUPTRAPD
 
 # test (ap)
-CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -3k $NEWAUTHKEY -x $DEFPRIVTYPE -3K $NEWPRIVKEY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s received_inform_ap3"
+CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u $NEWUSER -l ap -a $DEFAUTHTYPE -3k $NEWAUTHKEY -x $DEFPRIVTYPE -3K $NEWPRIVKEY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_ap3"
 DELAY
 CHECKTRAPDORDIE "received_inform_ap3"
 
diff --git a/testing/tests/T049snmpv3inform b/testing/fulltests/default/T049snmpv3inform_simple
similarity index 68%
rename from testing/tests/T049snmpv3inform
rename to testing/fulltests/default/T049snmpv3inform_simple
index e762d13..3237efa 100644
--- a/testing/tests/T049snmpv3inform
+++ b/testing/fulltests/default/T049snmpv3inform_simple
@@ -1,10 +1,10 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 DEFSECURITYLEVEL=noAuthNoPriv
 
-HEADER "SNMPv3 informs ($DEFSECURITYLEVEL) received and sent by tools"
+HEADER "SNMPv3 informs (noAuthNoPriv) received and sent by tools"
 
 #
 # Begin test
@@ -16,7 +16,7 @@
 
 STARTTRAPD
 
-CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u testuser -l nanp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s received_inform_$DEFSECURITYLEVEL"
+CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 3 -u testuser -l nanp $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_$DEFSECURITYLEVEL"
 
 STOPTRAPD
 
diff --git a/testing/tests/T049snmpv3informauth b/testing/fulltests/default/T049snmpv3informauth_simple
similarity index 69%
rename from testing/tests/T049snmpv3informauth
rename to testing/fulltests/default/T049snmpv3informauth_simple
index ab67ff5..d14afba 100644
--- a/testing/tests/T049snmpv3informauth
+++ b/testing/fulltests/default/T049snmpv3informauth_simple
@@ -1,10 +1,10 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 DEFSECURITYLEVEL=authNoPriv
 
-HEADER "SNMPv3 informs ($DEFSECURITYLEVEL) received and sent by tools"
+HEADER "SNMPv3 informs (authNoPriv) received and sent by tools"
 
 #
 # Begin test
@@ -16,7 +16,7 @@
 
 STARTTRAPD
 
-CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d $TESTAUTHARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s received_inform_$DEFSECURITYLEVEL"
+CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d $TESTAUTHARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_$DEFSECURITYLEVEL"
 
 STOPTRAPD
 
diff --git a/testing/tests/T049snmpv3informpriv b/testing/fulltests/default/T049snmpv3informpriv_simple
similarity index 68%
rename from testing/tests/T049snmpv3informpriv
rename to testing/fulltests/default/T049snmpv3informpriv_simple
index cbbf2f3..e8f47de 100644
--- a/testing/tests/T049snmpv3informpriv
+++ b/testing/fulltests/default/T049snmpv3informpriv_simple
@@ -1,12 +1,12 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 DEFSECURITYLEVEL=authPriv
 
-HEADER "SNMPv3 informs ($DEFSECURITYLEVEL) received and sent by tools"
+HEADER "SNMPv3 informs (authPriv) received and sent by tools"
 
-SKIPIFNOT NETSNMP_USE_OPENSSL
+SKIPIFNOT NETSNMP_CAN_DO_CRYPTO
 SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
 
 #
@@ -19,7 +19,7 @@
 
 STARTTRAPD
 
-CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s received_inform_$DEFSECURITYLEVEL"
+CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_inform_$DEFSECURITYLEVEL"
 
 STOPTRAPD
 
diff --git a/testing/tests/T050snmpv3trap b/testing/fulltests/default/T050snmpv3trap_simple
similarity index 79%
rename from testing/tests/T050snmpv3trap
rename to testing/fulltests/default/T050snmpv3trap_simple
index 819d151..2b7a4a8 100644
--- a/testing/tests/T050snmpv3trap
+++ b/testing/fulltests/default/T050snmpv3trap_simple
@@ -1,10 +1,10 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv3 traps received and sent by tools
 
-SKIPIFNOT NETSNMP_USE_OPENSSL
+#SKIPIFNOT NETSNMP_USE_OPENSSL
 SKIPIFNOT NETSNMP_ENABLE_SCAPI_AUTHPRIV
 
 #
@@ -20,11 +20,11 @@
 
 STARTTRAPD
 
-CAPTURE "snmptrap -d -e $CREATEUSERENGINEID $TESTNOAUTHARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s received_trap_nanp"
+CAPTURE "snmptrap -d -e $CREATEUSERENGINEID $TESTNOAUTHARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_trap_nanp"
 DELAY
-CAPTURE "snmptrap -d -e $CREATEUSERENGINEID $TESTAUTHARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s received_trap_anp"
+CAPTURE "snmptrap -d -e $CREATEUSERENGINEID $TESTAUTHARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_trap_anp"
 DELAY
-CAPTURE "snmptrap -d -e $CREATEUSERENGINEID $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s received_trap_ap"
+CAPTURE "snmptrap -d -e $CREATEUSERENGINEID $TESTPRIVARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s received_trap_ap"
 DELAY
 
 STOPTRAPD
diff --git a/testing/fulltests/default/T051snmpv2ctrap_simple b/testing/fulltests/default/T051snmpv2ctrap_simple
new file mode 100644
index 0000000..743171a
--- /dev/null
+++ b/testing/fulltests/default/T051snmpv2ctrap_simple
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER SNMPv2c traps received and sent by tools
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+
+#
+# Begin test
+#
+
+CONFIGTRAPD authcommunity log testcommunity
+CONFIGTRAPD agentxsocket /dev/null
+
+TRAPD_FLAGS="$TRAPD_FLAGS -On"
+
+STARTTRAPD
+
+CAPTURE "snmptrap -d -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s blah"
+
+STOPTRAPD
+
+CHECKTRAPD ".1.3.6.1.6.3.1.1.4.1.0 = OID: .1.3.6.1.6.3.1.1.5.1"
+
+FINISHED
diff --git a/testing/tests/T052snmpv2cinform b/testing/fulltests/default/T052snmpv2cinform_simple
similarity index 82%
rename from testing/tests/T052snmpv2cinform
rename to testing/fulltests/default/T052snmpv2cinform_simple
index 2464dd2..77f3a4c 100644
--- a/testing/tests/T052snmpv2cinform
+++ b/testing/fulltests/default/T052snmpv2cinform_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv2c informs received and sent by tools
 
@@ -15,7 +15,7 @@
 
 STARTTRAPD
 
-CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s blah"
+CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s blah"
 
 STOPTRAPD
 
diff --git a/testing/tests/T053agentv1trap b/testing/fulltests/default/T053agentv1trap_simple
similarity index 81%
rename from testing/tests/T053agentv1trap
rename to testing/fulltests/default/T053agentv1trap_simple
index 9b25c52..44b219e 100644
--- a/testing/tests/T053agentv1trap
+++ b/testing/fulltests/default/T053agentv1trap_simple
@@ -1,10 +1,11 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER snmpv1 traps are sent by snmpd API
 
 SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE
+SKIPIFNOT HAVE_SIGHUP
 
 #
 # Begin test
@@ -22,7 +23,7 @@
 AGENT_FLAGS="$AGENT_FLAGS -Dexample,header_generic,add_trap"
 STARTAGENT
 
-CAPTURE "snmpset -On $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT UCD-SNMP-MIB::ucdavis.254.7.0 i 1"
+CAPTURE "snmpset -On $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.7.0 i 1"
 
 STOPAGENT
 
diff --git a/testing/tests/T054agentv2ctrap b/testing/fulltests/default/T054agentv2ctrap_simple
similarity index 82%
rename from testing/tests/T054agentv2ctrap
rename to testing/fulltests/default/T054agentv2ctrap_simple
index 3a85dc9..f5b6904 100644
--- a/testing/tests/T054agentv2ctrap
+++ b/testing/fulltests/default/T054agentv2ctrap_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER snmpv2c traps are sent by snmpd API
 
@@ -22,7 +22,7 @@
 STARTAGENT
 
 #DELAY
-CAPTURE "snmpset -On -t 3 -r 0 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT UCD-SNMP-MIB::ucdavis.254.8.0 i 1"
+CAPTURE "snmpset -On -t 3 -r 0 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.8.0 i 1"
 
 STOPAGENT
 
diff --git a/testing/tests/T055agentv1mintrap b/testing/fulltests/default/T055agentv1mintrap_simple
similarity index 86%
rename from testing/tests/T055agentv1mintrap
rename to testing/fulltests/default/T055agentv1mintrap_simple
index f5636a7..4a1c0e1 100644
--- a/testing/tests/T055agentv1mintrap
+++ b/testing/fulltests/default/T055agentv1mintrap_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER snmpv1 traps are sent by snmpd without notification mib support
 
@@ -22,7 +22,7 @@
 AGENT_FLAGS="$AGENT_FLAGS -Dexample,header_generic,add_trap,mib_init,callback -I example,usmUser,usmConf,vacm_vars"
 STARTAGENT
 
-CAPTURE "snmpset -On $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT UCD-SNMP-MIB::ucdavis.254.7.0 i 1"
+CAPTURE "snmpset -On $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.7.0 i 1"
 
 STOPAGENT
 
diff --git a/testing/tests/T056agentv2cmintrap b/testing/fulltests/default/T056agentv2cmintrap_simple
similarity index 85%
rename from testing/tests/T056agentv2cmintrap
rename to testing/fulltests/default/T056agentv2cmintrap_simple
index 8c3213f..73c7a23 100644
--- a/testing/tests/T056agentv2cmintrap
+++ b/testing/fulltests/default/T056agentv2cmintrap_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER snmpv2c traps are sent by snmpd without notification mib support
 
@@ -23,7 +23,7 @@
 STARTAGENT
 
 #DELAY
-CAPTURE "snmpset -On -t 3 -r 0 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT UCD-SNMP-MIB::ucdavis.254.8.0 i 1"
+CAPTURE "snmpset -On -t 3 -r 0 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.8.0 i 1"
 
 STOPAGENT
 
diff --git a/testing/tests/T057trapdauthtest2 b/testing/fulltests/default/T057trapdauthtest2_simple
similarity index 75%
rename from testing/tests/T057trapdauthtest2
rename to testing/fulltests/default/T057trapdauthtest2_simple
index a5a02cf..073d3c4 100644
--- a/testing/tests/T057trapdauthtest2
+++ b/testing/fulltests/default/T057trapdauthtest2_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER snmptrapd discards of unauthorized notification types 
 
@@ -18,11 +18,6 @@
 
 STOPTRAPD
 
-CHECKTRAPD "coldStart"
-EXPECTRESULT 0
-if [ "$snmp_last_test_result" != 0 ] ; then
-    return_value=1
-    FINISHED
-fi
+CHECKTRAPDCOUNT 0 "coldStart"
 
 FINISHED
diff --git a/testing/tests/T057trapdauthtest3 b/testing/fulltests/default/T057trapdauthtest3_simple
similarity index 74%
rename from testing/tests/T057trapdauthtest3
rename to testing/fulltests/default/T057trapdauthtest3_simple
index 2ccb5cb..1426b4a 100644
--- a/testing/tests/T057trapdauthtest3
+++ b/testing/fulltests/default/T057trapdauthtest3_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER snmptrapd discards of incorrect view types 
 
@@ -18,11 +18,6 @@
 
 STOPTRAPD
 
-CHECKTRAPD "coldStart"
-EXPECTRESULT 0
-if [ "$snmp_last_test_result" != 0 ] ; then
-    return_value=1
-    FINISHED
-fi
+CHECKTRAPDCOUNT 0 "coldStart"
 
 FINISHED
diff --git a/testing/tests/T057trapdauthtest b/testing/fulltests/default/T057trapdauthtest_simple
similarity index 74%
rename from testing/tests/T057trapdauthtest
rename to testing/fulltests/default/T057trapdauthtest_simple
index 3369faf..e25e39e 100644
--- a/testing/tests/T057trapdauthtest
+++ b/testing/fulltests/default/T057trapdauthtest_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER snmptrapd authorization failure of non authorized users
 
@@ -18,11 +18,6 @@
 
 STOPTRAPD
 
-CHECKTRAPD "coldStart"
-EXPECTRESULT 0
-if [ "$snmp_last_test_result" != 0 ] ; then
-    return_value=1
-    FINISHED
-fi
+CHECKTRAPDCOUNT 0 "coldStart"
 
 FINISHED
diff --git a/testing/tests/T058agentauthtrap b/testing/fulltests/default/T058agentauthtrap_simple
similarity index 94%
rename from testing/tests/T058agentauthtrap
rename to testing/fulltests/default/T058agentauthtrap_simple
index 7be3a7b..aa63639 100644
--- a/testing/tests/T058agentauthtrap
+++ b/testing/fulltests/default/T058agentauthtrap_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER authentication failure traps are sent by snmpd
 
diff --git a/testing/fulltests/default/T059trapdtraphandle_simple b/testing/fulltests/default/T059trapdtraphandle_simple
new file mode 100755
index 0000000..2c1f7a6
--- /dev/null
+++ b/testing/fulltests/default/T059trapdtraphandle_simple
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+# Testing this script is possible by running e.g. the following commands:
+# srcdir=/z/software/net-snmp/trunk builddir=/z/software/net-snmp/trunk-mingw
+# cd $builddir/testing
+# TRAPD_FLAGS="-Dsnmptrapd -Drun:shell" $srcdir/testing/fulltests/support/simple_run $srcdir/testing/fulltests/default/T059trapdtraphandle_simple
+
+# "inline" trap handler
+if [ "x$1" = "xtraphandle" ]; then
+  cat - >>"$2"
+  exit 0
+fi
+
+. ../support/simple_eval_tools.sh
+
+TRAPHANDLE_LOGFILE=${SNMP_TMPDIR}/traphandle.log
+
+HEADER snmptrapd traphandle: launching external shell script
+
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+SKIPIFNOT USING_UTILITIES_EXECUTE_MODULE
+
+#
+# Begin test
+#
+
+snmp_version=v2c
+TESTCOMMUNITY=testcommunity
+
+# Make the paths of arguments $0 and $1 absolute.
+NETSNMPDIR="`pwd`"
+NETSNMPDIR="`dirname ${NETSNMPDIR}`"
+NETSNMPDIR="`dirname ${NETSNMPDIR}`"
+NETSNMPDIR="`dirname ${NETSNMPDIR}`"
+if [ "`echo $1|cut -c1`" = "/" ]; then
+  traphandle_arg="$1"
+else
+  traphandle_arg="${NETSNMPDIR}/$1"
+fi
+
+CONFIGTRAPD [snmp] persistentDir $SNMP_TMP_PERSISTENTDIR
+CONFIGTRAPD [snmp] tempFilePattern /tmp/snmpd-tmp-XXXXXX
+CONFIGTRAPD authcommunity execute $TESTCOMMUNITY
+CONFIGTRAPD doNotLogTraps true
+if [ "x$OSTYPE" = "xmsys" ]; then
+    CONFIGTRAPD traphandle default $MSYS_SH -c "'" $traphandle_arg traphandle $TRAPHANDLE_LOGFILE "'"
+else
+    CONFIGTRAPD traphandle default $traphandle_arg traphandle $TRAPHANDLE_LOGFILE
+fi
+CONFIGTRAPD agentxsocket /dev/null
+
+STARTTRAPD
+
+## 1) test notification handler
+
+CAPTURE "snmptrap -d -Ci -t $SNMP_SLEEP -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s handled_inform_$snmp_version"
+DELAY
+CHECKORDIE "handled_inform_$snmp_version" $TRAPHANDLE_LOGFILE 
+
+## 2) persistency: reconfigure (SIGHUP), re-test
+
+HUPTRAPD
+CAPTURE "snmptrap -d -Ci -t $SNMP_SLEEP -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 .1.3.6.1.2.1.1.4.0 s handled_inform2_$snmp_version"
+DELAY
+CHECKORDIE "handled_inform2_$snmp_version" $TRAPHANDLE_LOGFILE
+
+## stop
+STOPTRAPD
+
+FINISHED
diff --git a/testing/tests/T060trapdperl b/testing/fulltests/default/T060trapdperl_simple
similarity index 71%
rename from testing/tests/T060trapdperl
rename to testing/fulltests/default/T060trapdperl_simple
index 63a6f4c..7e723bb 100755
--- a/testing/tests/T060trapdperl
+++ b/testing/fulltests/default/T060trapdperl_simple
@@ -1,11 +1,12 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER 'snmptrapd embedded perl support (NetSNMP::TrapReceiver)'
 
 SKIPIF NETSNMP_DISABLE_SNMPV2C
 SKIPIFNOT NETSNMP_EMBEDDED_PERL
+SKIPIFNOT HAVE_SIGHUP
 
 #
 # Begin test
@@ -15,30 +16,37 @@
 TESTCOMMUNITY=testcommunity
 TESTOID=.1.3.6.1.6.3.1.1.5.1
 TESTOID2=.1.3.6.1.6.3.1.1.5.2
+VAROID=.1.3.6.1.2.1.1.4.0
 EMBPERL_LOGFILE=${SNMP_TMPDIR}/embperl.log
 
+# make sure that we can fulfill all library dependencies
+_ld_lib_path="${SNMP_UPDIR}/snmplib/.libs:${SNMP_UPDIR}/agent/.libs:${SNMP_UPDIR}/agent/helpers/.libs"
+if [ x$OSTYPE = xcygwin ]; then
+  PATH="${_ld_lib_path}:$PATH"
+fi
+
 echo "use blib qw(${SNMP_UPDIR}/perl);" > ${SNMP_TMPDIR}/snmp_perl_trapd.pl
 echo "use NetSNMP::TrapReceiver;" >> ${SNMP_TMPDIR}/snmp_perl_trapd.pl
 
 CONFIGTRAPD authcommunity execute $TESTCOMMUNITY
 CONFIGTRAPD perlInitFile ${SNMP_TMPDIR}/snmp_perl_trapd.pl
-CONFIGTRAPD 'perl sub my_receiver { open LOG,">>'$EMBPERL_LOGFILE'"; print LOG "handled_by_embperl"; close LOG };'
-CONFIGTRAPD 'perl sub my_receiver2 { open LOG,">>'$EMBPERL_LOGFILE'"; print LOG "handled_again_by_embperl"; close LOG };'
+CONFIGTRAPD 'perl sub my_receiver { open LOG,">>'$EMBPERL_LOGFILE'"; print LOG "handled_by_embperl\\n"; close LOG };'
+CONFIGTRAPD 'perl sub my_receiver2 { open LOG,">>'$EMBPERL_LOGFILE'"; print LOG "handled_again_by_embperl\\n"; close LOG };'
 CONFIGTRAPD 'perl NetSNMP::TrapReceiver::register("'$TESTOID'", \&my_receiver) || warn "register_perl_handler_failed";'
 CONFIGTRAPD 'perl NetSNMP::TrapReceiver::register("'$TESTOID2'", \&my_receiver2) || warn "register_second_perl_handler_failed";'
-CONFIGTRAPD 'perl print STDERR "registered_perl_handler_ok";'
+CONFIGTRAPD 'perl print STDERR "registered_perl_handler_ok\\n";'
 CONFIGTRAPD agentxsocket /dev/null
 
 STARTTRAPD
 
 ## 1) trigger embedded perl notification handler
 
-CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 $TESTOID system.sysContact.0 s handled_trap_$snmp_version"
+CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 $TESTOID $VAROID s handled_trap_$snmp_version"
 
 ## 2) persistency: reconfigure (SIGHUP), re-trigger
 
 HUPTRAPD
-CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 $TESTOID2 system.sysContact.0 s handled_trap2_$snmp_version"
+CAPTURE "snmptrap -Ci -t $SNMP_SLEEP -d -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 $TESTOID2 $VAROID s handled_trap2_$snmp_version"
 
 ## stop
 STOPTRAPD
diff --git a/testing/tests/T061agentperl b/testing/fulltests/default/T061agentperl_simple
similarity index 75%
rename from testing/tests/T061agentperl
rename to testing/fulltests/default/T061agentperl_simple
index 27e5b31..5ebf863 100755
--- a/testing/tests/T061agentperl
+++ b/testing/fulltests/default/T061agentperl_simple
@@ -1,11 +1,12 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER 'snmpd embedded perl support (using NetSNMP::agent)'
 
 SKIPIF NETSNMP_DISABLE_SNMPV2C
 SKIPIFNOT NETSNMP_EMBEDDED_PERL
+SKIPIFNOT HAVE_SIGHUP
 
 #
 # Begin test
@@ -58,25 +59,6 @@
 CONFIGAGENT "perl do '$EMBPERL_AGENT';"
 CONFIGAGENT 'perl print STDERR "registered_perl_agent_ok";'
 
-# make sure that NetSNMP::agent's agent.so can load (uninstalled) libnetsnmp*.so
-_ld_lib_path="${SNMP_UPDIR}/snmplib/.libs:${SNMP_UPDIR}/agent/.libs:${SNMP_UPDIR}/agent/helpers/.libs"
-if [ "x$LD_LIBRARY_PATH" != "x" ]; then
-  LD_LIBRARY_PATH="${_ld_lib_path}:${LD_LIBRARY_PATH}"
-else
-  LD_LIBRARY_PATH="${_ld_lib_path}"
-fi 
-if [ "x$DYLD_LIBRARY_PATH" != "x" ]; then
-  DYLD_LIBRARY_PATH="${_ld_lib_path}:${DYLD_LIBRARY_PATH}"
-else
-  DYLD_LIBRARY_PATH="${_ld_lib_path}"
-fi 
-if [ "x$SHLIB_PATH" != "x" ]; then
-  SHLIB_PATH="${_ld_lib_path}:${SHLIB_PATH}"
-else
-  SHLIB_PATH="${_ld_lib_path}"
-fi 
-export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH
-
 STARTAGENT
 
 ## 1) SNMP GET against embedded perl mib module
diff --git a/testing/tests/T065agentextend b/testing/fulltests/default/T065agentextend_simple
similarity index 72%
rename from testing/tests/T065agentextend
rename to testing/fulltests/default/T065agentextend_simple
index 627f58f..68c38f9 100644
--- a/testing/tests/T065agentextend
+++ b/testing/fulltests/default/T065agentextend_simple
@@ -1,16 +1,17 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER "extending agent functionality with extend"
 
 [ "x$OSTYPE" = xmsys -a "x$MSYS_SH" = x ] && SKIP "\$MSYS_SH has not been set"
 SKIPIF NETSNMP_DISABLE_SNMPV2C
 SKIPIFNOT USING_AGENT_EXTEND_MODULE
+SKIPIFNOT USING_UTILITIES_EXECUTE_MODULE
 
 # make sure snmpget can be executed
 SNMPGET="${SNMP_UPDIR}/apps/snmpget"
-[ -x "$SNMPGET" ] || SKIP
+[ -x "$SNMPGET" ] || SKIP snmpget not compiled
 
 snmp_version=v2c
 TESTCOMMUNITY=testcommunity
@@ -20,28 +21,34 @@
 # Begin test
 #
 
-CONFIGAGENT extend hello /usr/bin/env echo hello_world
+if [ "x$OSTYPE" = "xmsys" ]; then
+    index='\"hello\"'
+    CONFIGAGENT extend hello $MSYS_SH -c "'" echo hello_world "'"
+else
+    index='"hello"'
+    CONFIGAGENT extend hello /usr/bin/env echo hello_world
+fi
 
 STARTAGENT
 
 # NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."hello" = STRING: "hello_world"
-CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT 1.3.6.1.4.1.8072.1.3.2.3.1.1.\"hello\""
+CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.8072.1.3.2.3.1.1.$index"
 CHECKORDIE "hello_world"
 
 #NET-SNMP-EXTEND-MIB::nsExtendOutputFull."hello" = STRING: "hello_world"
-CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.8072.1.3.2.3.1.2.\"hello\""
+CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.8072.1.3.2.3.1.2.$index"
 CHECKORDIE "hello_world"
 
 #NET-SNMP-EXTEND-MIB::nsExtendOutLine."hello".1 = STRING: "hello_world"
-CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.8072.1.3.2.4.1.2.\"hello\".1"
+CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.8072.1.3.2.4.1.2.$index.1"
 CHECKORDIE "hello_world"
 
 #NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."hello" = INTEGER: 1
-CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.8072.1.3.2.3.1.3.\"hello\""
+CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.8072.1.3.2.3.1.3.$index"
 CHECKORDIE "INTEGER: 1"
 
 #NET-SNMP-EXTEND-MIB::nsExtendResult."hello" = INTEGER: 0
-CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.8072.1.3.2.3.1.4.\"hello\""
+CAPTURE "$SNMPGET $SNMP_FLAGS -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.8072.1.3.2.3.1.4.$index"
 CHECKORDIE "INTEGER: 0"
 
 STOPAGENT
diff --git a/testing/tests/T066pass_simple b/testing/fulltests/default/T066pass_simple
similarity index 87%
rename from testing/tests/T066pass_simple
rename to testing/fulltests/default/T066pass_simple
index 61b14c0..bdee164 100644
--- a/testing/tests/T066pass_simple
+++ b/testing/fulltests/default/T066pass_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER "extending agent functionality with pass"
 
@@ -13,10 +13,10 @@
 [ "x$OSTYPE" = "xmsys" ] && SKIP "MinGW"
 
 # make sure snmpget and snmpwalk can be executed
-SNMPGET="${SNMP_UPDIR}/apps/snmpget"
-[ -x "$SNMPGET" ] || SKIP
-SNMPWALK="${SNMP_UPDIR}/apps/snmpwalk"
-[ -x "$SNMPWALK" ] || SKIP
+SNMPGET="${builddir}/apps/snmpget"
+[ -x "$SNMPGET" ] || SKIP snmpget not compiled
+SNMPWALK="${builddir}/apps/snmpwalk"
+[ -x "$SNMPWALK" ] || SKIP snmpwalk not compiled
 
 snmp_version=v2c
 TESTCOMMUNITY=testcommunity
@@ -26,7 +26,7 @@
 # Begin test
 #
 oid=.1.3.6.1.4.1.8072.2.255  # NET-SNMP-PASS-MIB::netSnmpPassExamples
-CONFIGAGENT pass $oid ${SNMP_BASEDIR}/../local/passtest
+CONFIGAGENT pass $oid ${srcdir}/local/passtest
 
 ORIG_AGENT_FLAGS="$AGENT_FLAGS"
 AGENT_FLAGS="$ORIG_AGENT_FLAGS -Ducd-snmp/pass"
diff --git a/testing/tests/T067passpersist_simple b/testing/fulltests/default/T067passpersist_simple
similarity index 87%
rename from testing/tests/T067passpersist_simple
rename to testing/fulltests/default/T067passpersist_simple
index 7c66a1d..40f1333 100644
--- a/testing/tests/T067passpersist_simple
+++ b/testing/fulltests/default/T067passpersist_simple
@@ -1,22 +1,23 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER "extending agent functionality with pass_persist"
 
 SKIPIF NETSNMP_DISABLE_SNMPV2C
 SKIPIFNOT USING_UCD_SNMP_PASS_PERSIST_MODULE
-[ -x /usr/bin/perl ] || SKIP /usr/bin/perl
 
 # Don't run this test on MinGW - local/pass_persisttest is a shell script and
 # hence passing it to the MSVCRT popen() doesn't work.
 [ "x$OSTYPE" = "xmsys" ] && SKIP "MinGW"
 
+[ -x /usr/bin/perl ] || SKIP "/usr/bin/perl not found"
+
 # make sure snmpget and snmpwalk can be executed
-SNMPGET="${SNMP_UPDIR}/apps/snmpget"
-[ -x "$SNMPGET" ] || SKIP
-SNMPWALK="${SNMP_UPDIR}/apps/snmpwalk"
-[ -x "$SNMPWALK" ] || SKIP
+SNMPGET="${builddir}/apps/snmpget"
+[ -x "$SNMPGET" ] || SKIP snmpget not compiled
+SNMPWALK="${builddir}/apps/snmpwalk"
+[ -x "$SNMPWALK" ] || SKIP snmpwalk not compiled
 
 snmp_version=v2c
 TESTCOMMUNITY=testcommunity
@@ -26,7 +27,7 @@
 # Begin test
 #
 oid=.1.3.6.1.4.1.8072.2.255  # NET-SNMP-PASS-MIB::netSnmpPassExamples
-CONFIGAGENT pass_persist $oid ${SNMP_BASEDIR}/../local/pass_persisttest
+CONFIGAGENT pass_persist $oid ${srcdir}/local/pass_persisttest
 
 ORIG_AGENT_FLAGS="$AGENT_FLAGS"
 AGENT_FLAGS="$ORIG_AGENT_FLAGS -Ducd-snmp/pass_persist"
diff --git a/testing/tests/T068execfix b/testing/fulltests/default/T068execfix_simple
similarity index 97%
rename from testing/tests/T068execfix
rename to testing/fulltests/default/T068execfix_simple
index f49206e..fa81835 100644
--- a/testing/tests/T068execfix
+++ b/testing/fulltests/default/T068execfix_simple
@@ -1,5 +1,7 @@
 #!/bin/sh
 
+. ../support/simple_eval_tools.sh
+
 HEADER "execfix configuration directive"
 
 SKIPIFNOT USING_UCD_SNMP_EXTENSIBLE_MODULE
diff --git a/testing/fulltests/default/T070com2sec_simple b/testing/fulltests/default/T070com2sec_simple
new file mode 100644
index 0000000..9f76fcd
--- /dev/null
+++ b/testing/fulltests/default/T070com2sec_simple
@@ -0,0 +1,159 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER com2sec directive
+
+SKIPIFNOT NETSNMP_TRANSPORT_UDP_DOMAIN
+SKIPIF NETSNMP_NO_DEBUGGING
+
+#
+# Begin test
+#
+
+# 401a Test missing CONTEXT
+CONFIGAGENT 'com2sec -Cn'
+# 401b Test empty CONTEXT
+CONFIGAGENT 'com2sec -Cn ""'
+# 401c Test overlong CONTEXT (34 chars)
+CONFIGAGENT 'com2sec -Cn 1234567890123456789012345678901234'
+
+# 402a Test missing secName
+CONFIGAGENT 'com2sec'
+# 402b Test empty secName
+CONFIGAGENT 'com2sec ""'
+# 402c Test overlong secName (34 chars)
+CONFIGAGENT 'com2sec 1234567890123456789012345678901234'
+# 402d Test valid context and missing secName
+CONFIGAGENT 'com2sec -Cn 123456789012345678901234567890123'
+# 402e Test valid context and empty secName
+CONFIGAGENT 'com2sec -Cn 123456789012345678901234567890123 ""'
+
+# 403a Test missing network address
+CONFIGAGENT 'com2sec t403a'
+# 403b Test empty network address
+CONFIGAGENT 'com2sec t403b ""'
+# 403c Test forbidden value (now why it is forbidden...)
+CONFIGAGENT 'com2sec t403c NETWORK'
+
+# 404a Test missing community
+CONFIGAGENT 'com2sec t404a default'
+# 404b Test empty community
+CONFIGAGENT 'com2sec t404b default ""'
+# 404c Test forbidden value (now why it is forbidden...)
+CONFIGAGENT 'com2sec t404c default COMMUNITY'
+# 404d Test overlong community (255 chars)
+CONFIGAGENT 'com2sec t404d default 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345'
+# 404e Test valid community
+CONFIGAGENT 'com2sec t404e default 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234'
+
+# 405a Test 'default' configuration
+CONFIGAGENT 'com2sec t405a default c405a'
+# 405b Test ip address configuration
+CONFIGAGENT 'com2sec t405b 10.0.0.0 c405b'
+# 405c Test valid numeric mask
+CONFIGAGENT 'com2sec t405c 10.0.0.0/8 c405c'
+# 405d Test invalid numeric mask (too big)
+CONFIGAGENT 'com2sec t405d 10.0.0.0/33 c405d'
+# 405e Test invalid numeric mask (negative)
+CONFIGAGENT 'com2sec t405e 10.0.0.0/-1 c405e'
+# 405f Test valid ip address mask
+CONFIGAGENT 'com2sec t405f 10.0.0.0/255.0.0.0 c405f'
+# 405g Test invalid ip address mask
+CONFIGAGENT 'com2sec t405g 10.0.0.0/512.0.0.0 c405g'
+# 405h Test invalid ip address mask
+CONFIGAGENT 'com2sec t405h 10.0.0.0/hh c405h'
+# 405i Test address with 1 bits not covered by the mask
+CONFIGAGENT 'com2sec t405i 10.0.0.0/3.192.0.0 c405i'
+# 405j Test that 0.0.0.0 works (alias for default)
+CONFIGAGENT 'com2sec t405j 0.0.0.0 c405j'
+# 405k Test that 0.0.0.0/0 works (alias for default)
+CONFIGAGENT 'com2sec t405k 0.0.0.0/0 c405k'
+# 405l Test that 0.0.0.0/0.0.0.0 works (alias for default)
+CONFIGAGENT 'com2sec t405l 0.0.0.0/0.0.0.0 c405l'
+
+# 406a Test maximally long address/mask
+CONFIGAGENT 'com2sec t406a 255.255.255.255/255.255.255.255 c406a'
+
+# 407a Test non existant host name
+CONFIGAGENT 'com2sec t407a no.such.address. c407a'
+# 407b Test maximally long host name/mask
+CONFIGAGENT 'com2sec t407b a23456789012345678901234567890123456789012345678901234567890123.a23456789012345678901234567890123456789012345678901234567890123.a23456789012345678901234567890123456789012345678901234567890123.a234567890123456789012345678901234567890123456789012345678901./255.255.255.255 c407b'
+
+# 408 Lookup tests, require network access
+# 408a Test lookup returning a single host
+CONFIGAGENT 'com2sec t408a www.ietf.org c408a'
+# 408a Test lookup returning multiple hosts
+CONFIGAGENT 'com2sec t408b www.google.com c408b'
+
+# Default agent setup
+CONFIGAGENT "[snmp] persistentdir $SNMP_TMP_PERSISTENTDIR"
+# Dummy config to prevent the basic_setup warning
+CONFIGAGENT 'rocommunity public 127.0.0.0/8'
+
+AGENT_FLAGS='-Dnetsnmp_udp_parse_security,netsnmp_udp6_parse_security,netsnmp_unix_parse_security'
+
+STARTAGENT
+
+SAVECHECKAGENT() {
+    CHECKAGENT "$@"
+    if [ "x$return_value" != "x0" ] ; then
+        FINISHED
+    fi
+}
+
+SAVECHECKAGENT 'line 1: Error: missing CONTEXT_NAME parameter'
+SAVECHECKAGENT 'line 2: Error: missing NAME parameter'
+SAVECHECKAGENT 'line 3: Error: context name too long'
+CHECKAGENTCOUNT atleastone 'line 4: Error: Blank line following com2sec token.'
+SAVECHECKAGENT 'line 5: Error: empty NAME parameter'
+SAVECHECKAGENT 'line 6: Error: security name too long'
+SAVECHECKAGENT 'line 7: Error: missing NAME parameter'
+SAVECHECKAGENT 'line 8: Error: empty NAME parameter'
+SAVECHECKAGENT 'line 9: Error: missing SOURCE parameter'
+SAVECHECKAGENT 'line 10: Error: empty SOURCE parameter'
+SAVECHECKAGENT 'line 11: Error: example config NETWORK not properly configured'
+SAVECHECKAGENT 'line 12: Error: missing COMMUNITY parameter'
+SAVECHECKAGENT 'line 13: Error: empty COMMUNITY parameter'
+SAVECHECKAGENT 'line 14: Error: example config COMMUNITY not properly configured'
+SAVECHECKAGENT 'line 15: Error: community name too long'
+SAVECHECKAGENT '<"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234", 0.0.0.0/0.0.0.0> => "t404e"'
+SAVECHECKAGENT '<"c405a", 0.0.0.0/0.0.0.0> => "t405a"'
+SAVECHECKAGENT '<"c405b", 10.0.0.0/255.255.255.255> => "t405b"'
+SAVECHECKAGENT '<"c405c", 10.0.0.0/255.0.0.0> => "t405c"'
+SAVECHECKAGENT 'line 20: Error: bad mask length'
+SAVECHECKAGENT 'line 21: Error: bad mask length'
+SAVECHECKAGENT '<"c405f", 10.0.0.0/255.0.0.0> => "t405f"'
+SAVECHECKAGENT 'line 23: Error: bad mask'
+SAVECHECKAGENT 'line 24: Error: bad mask'
+SAVECHECKAGENT 'line 25: Error: source/mask mismatch'
+SAVECHECKAGENT '<"c405j", 0.0.0.0/255.255.255.255> => "t405j"'
+SAVECHECKAGENT '<"c405k", 0.0.0.0/0.0.0.0> => "t405k"'
+SAVECHECKAGENT '<"c405l", 0.0.0.0/0.0.0.0> => "t405l"'
+SAVECHECKAGENT '<"c406a", 255.255.255.255/255.255.255.255> => "t406a"'
+SAVECHECKAGENT 'line 30: Error:' # msg from h_strerror so it varies
+SAVECHECKAGENT 'line 31: Error:' # msg from h_strerror so it varies
+
+CHECKAGENT '<"c408a"'
+if [ "$snmp_last_test_result" -eq 0 ] ; then
+  CHECKAGENT 'line 32: Error:'
+  if [ "$snmp_last_test_result" -ne 1 ] ; then
+    return_value=1
+    FINISHED
+  fi
+elif [ "$snmp_last_test_result" -ne 1 ] ; then
+  return_value=1
+  FINISHED
+fi
+
+CHECKAGENT '<"c408b"'
+if [ "$snmp_last_test_result" -eq 0 ] ; then
+  CHECKAGENT 'line 33: Error:'
+  if [ "$snmp_last_test_result" -ne 1 ] ; then
+    return_value=1
+  fi
+elif [ "$snmp_last_test_result" -ne 1 ] ; then
+  return_value=1
+fi
+
+FINISHED
diff --git a/testing/fulltests/default/T071com2sec6_simple b/testing/fulltests/default/T071com2sec6_simple
new file mode 100644
index 0000000..550a25b
--- /dev/null
+++ b/testing/fulltests/default/T071com2sec6_simple
@@ -0,0 +1,155 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER com2sec6 directive
+
+SKIPIFNOT NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
+SKIPIF NETSNMP_NO_DEBUGGING
+
+#
+# Begin test
+#
+
+# 601a Test missing CONTEXT
+CONFIGAGENT 'com2sec6 -Cn'
+# 601b Test empty CONTEXT
+CONFIGAGENT 'com2sec6 -Cn ""'
+# 601c Test overlong CONTEXT (34 chars)
+CONFIGAGENT 'com2sec6 -Cn 1234567890123456789012345678901234'
+
+# 602a Test missing secName
+CONFIGAGENT 'com2sec6'
+# 602b Test empty secName
+CONFIGAGENT 'com2sec6 ""'
+# 602c Test overlong secName (34 chars)
+CONFIGAGENT 'com2sec6 1234567890123456789012345678901234'
+# 602d Test valid context and missing secName
+CONFIGAGENT 'com2sec6 -Cn 123456789012345678901234567890123'
+# 602e Test valid context and empty secName
+CONFIGAGENT 'com2sec6 -Cn 123456789012345678901234567890123 ""'
+
+# 603a Test missing network address
+CONFIGAGENT 'com2sec6 t603a'
+# 603b Test empty network address
+CONFIGAGENT 'com2sec6 t603b ""'
+# 603c Test forbidden value
+CONFIGAGENT 'com2sec6 t603c NETWORK'
+
+# 604a Test missing COMMUNITY
+CONFIGAGENT 'com2sec6 t604a default'
+# 604b 'Error: empty COMMUNITY parameter'
+CONFIGAGENT 'com2sec6 t604b default ""'
+# 604c Test overlong COMMUNITY
+CONFIGAGENT 'com2sec6 t604c default 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345'
+# 604d Test barely valid community
+CONFIGAGENT 'com2sec6 t604d default 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234'
+# 604e Test forbidden value
+CONFIGAGENT 'com2sec6 t604e default COMMUNITY'
+
+# 605a Test 'default' configuration
+CONFIGAGENT 'com2sec6 t605a default c605a'
+# 605b Test ip address configuration
+CONFIGAGENT 'com2sec6 t605b aa00:: c605b'
+# 605c Test valid numeric mask
+CONFIGAGENT 'com2sec6 t605c aa00::/8 c605c'
+# 605d Test invalid numeric mask (too big)
+CONFIGAGENT 'com2sec6 t605d aa00::/129 c605d'
+# 605e Test invalid numeric mask (negative)
+CONFIGAGENT 'com2sec6 t605e aa00::/-1 c605e'
+# 605f Test valid ip address mask
+CONFIGAGENT 'com2sec6 t605f aa00::/ff00:: c605f'
+# 605g Test invalid ip address mask
+CONFIGAGENT 'com2sec6 t605g aa00::/fffff:: c605g'
+# 605h Test invalid ip address mask
+CONFIGAGENT 'com2sec6 t605h aa00::/gg00:: c605h'
+# 605i Test address with 1 bits not covered by the mask
+CONFIGAGENT 'com2sec6 t605i aa00::/0ff0:: c605i'
+
+# 606a Test maximally long address/mask
+CONFIGAGENT 'com2sec6 t606a ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff c606a'
+
+# 607a Test non existant host name
+CONFIGAGENT 'com2sec6 t607a no.such.address. c607a'
+# 607b Test maximally long host name/mask
+CONFIGAGENT 'com2sec6 t607b a23456789012345678901234567890123456789012345678901234567890123.a23456789012345678901234567890123456789012345678901234567890123.a23456789012345678901234567890123456789012345678901234567890123.a234567890123456789012345678901234567890123456789012345678901./ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff c607b'
+
+# 608 Lookup tests, require network access
+# 608a Test lookup returning a single host
+CONFIGAGENT 'com2sec6 t608a www.ietf.org c608a'
+# 608b Test lookup returning multiple hosts
+CONFIGAGENT 'com2sec6 t608b ipv6.google.com c608b'
+
+# Default agent setup
+CONFIGAGENT "[snmp] persistentdir $SNMP_TMP_PERSISTENTDIR"
+# Dummy config to prevent the basic_setup warning
+CONFIGAGENT 'rocommunity public 127.0.0.0/8'
+
+AGENT_FLAGS='-Dnetsnmp_udp_parse_security,netsnmp_udp6_parse_security,netsnmp_unix_parse_security'
+
+STARTAGENT
+
+SAVECHECKAGENT() {
+    CHECKAGENT "$@"
+    if [ "x$return_value" != "x0" ] ; then
+        FINISHED
+    fi
+}
+
+# 601
+SAVECHECKAGENT 'line 1: Error: missing CONTEXT_NAME parameter'
+SAVECHECKAGENT 'line 2: Error: missing NAME parameter'
+SAVECHECKAGENT 'line 3: Error: context name too long'
+# 602
+CHECKAGENTCOUNT atleastone 'line 4: Error: Blank line following com2sec6 token.'
+SAVECHECKAGENT 'line 5: Error: empty NAME parameter'
+SAVECHECKAGENT 'line 6: Error: security name too long'
+SAVECHECKAGENT 'line 7: Error: missing NAME parameter'
+SAVECHECKAGENT 'line 8: Error: empty NAME parameter'
+# 603
+SAVECHECKAGENT 'line 9: Error: missing SOURCE parameter'
+SAVECHECKAGENT 'line 10: Error: empty SOURCE parameter'
+SAVECHECKAGENT 'line 11: Error: example config NETWORK not properly configured'
+# 604
+SAVECHECKAGENT 'line 12: Error: missing COMMUNITY parameter'
+SAVECHECKAGENT 'line 13: Error: empty COMMUNITY parameter'
+SAVECHECKAGENT 'line 14: Error: community name too long'
+SAVECHECKAGENT '<"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234", ::/::> => "t604d"'
+SAVECHECKAGENT 'line 16: Error: example config COMMUNITY not properly configured'
+# 605
+SAVECHECKAGENT '<"c605a", ::/::> => "t605a"'
+SAVECHECKAGENT '<"c605b", aa00::/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff> => "t605b"'
+SAVECHECKAGENT '<"c605c", aa00::/ff00::> => "t605c"'
+SAVECHECKAGENT 'line 20: Error: bad mask length'
+SAVECHECKAGENT 'line 21: Error: bad mask length'
+SAVECHECKAGENT '<"c605f", aa00::/ff00::> => "t605f"'
+SAVECHECKAGENT 'line 23: Error: bad mask'
+SAVECHECKAGENT 'line 24: Error: bad mask'
+SAVECHECKAGENT 'line 25: Error: source/mask mismatch'
+# 606
+SAVECHECKAGENT '<"c606a", ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff> => "t606a"'
+# 607
+SAVECHECKAGENT 'line 27: Error:'
+SAVECHECKAGENT 'line 28: Error:'
+
+# 608
+CHECKAGENT '<"c608a"'
+if [ "$snmp_last_test_result" -eq 0 ] ; then
+  CHECKAGENT 'line 29: Error:'
+  errnum=`expr $errnum - 1`
+  if [ "$snmp_last_test_result" -ne 1 ] ; then
+    FINISHED
+  fi
+elif [ "$snmp_last_test_result" -ne 1 ] ; then
+  FINISHED
+fi
+
+CHECKAGENTCOUNT atleastone '<"c608b"'
+if [ "$snmp_last_test_result" -eq 0 ] ; then
+  CHECKAGENT 'line 30: Error:'
+  if [ "$snmp_last_test_result" -eq 1 ] ; then
+    errnum=`expr $errnum - 1`
+  fi
+fi
+
+FINISHED
diff --git a/testing/fulltests/default/T072com2secunix_simple b/testing/fulltests/default/T072com2secunix_simple
new file mode 100644
index 0000000..1f380f2
--- /dev/null
+++ b/testing/fulltests/default/T072com2secunix_simple
@@ -0,0 +1,111 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER com2secunix directive
+
+SKIPIFNOT NETSNMP_TRANSPORT_UNIX_DOMAIN
+SKIPIF NETSNMP_NO_DEBUGGING
+SKIPIFNOT SIZEOF_SOCKADDR_UN_SUN_PATH
+
+#
+# Prepare test
+#
+if [ `uname -s` = SunOS ]
+then AWK=nawk
+else AWK=awk
+fi
+
+sun_path_sized=`$AWK '/^#define SIZEOF_SOCKADDR_UN_SUN_PATH/ { res = "a"; for(n = 2; n < $3; ++n) { res = res substr("1234567890", n % 10 + 1, 1); } print res; }' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h`
+
+#
+# Begin test
+#
+
+# u01a Test missing CONTEXT
+CONFIGAGENT 'com2secunix -Cn'
+# u01a Test empty CONTEXT
+CONFIGAGENT 'com2secunix -Cn ""'
+# u01c Test overlong CONTEXT (34 chars)
+CONFIGAGENT 'com2secunix -Cn 1234567890123456789012345678901234'
+
+# u02a Test missing secName
+CONFIGAGENT 'com2secunix'
+# u02b Test empty secName
+CONFIGAGENT 'com2secunix ""'
+# u02c Test overlong secName (34 chars)
+CONFIGAGENT 'com2secunix 1234567890123456789012345678901234'
+# u02d Test valid context and missing secName
+CONFIGAGENT 'com2secunix -Cn 123456789012345678901234567890123'
+# u02e Test valid context and empty secName
+CONFIGAGENT 'com2secunix -Cn 123456789012345678901234567890123 ""'
+
+# u03a Test missing sockpath
+CONFIGAGENT 'com2secunix tu03a'
+# u03b Test empty sockpath
+CONFIGAGENT 'com2secunix tu03b ""'
+# u03c Test overlong sockpath (sizeof(sockaddr_un.sun_path) chars)
+CONFIGAGENT "com2secunix tu03c ${sun_path_sized}x"
+# u03d Test valid sockpath (sizeof(sockaddr_un.sun_path) - 1 chars)
+CONFIGAGENT "com2secunix tu03d ${sun_path_sized}"
+
+# u04a Test missing community
+CONFIGAGENT 'com2secunix tu04a default'
+# u04b Test empty community
+CONFIGAGENT 'com2secunix tu04b default ""'
+# u04c Test forbidden value (now why it is forbidden...)
+CONFIGAGENT 'com2secunix tu04c default COMMUNITY'
+# u04d Test overlong community (255 chars)
+CONFIGAGENT 'com2secunix tu04d default 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345'
+# u04e Test valid community
+CONFIGAGENT 'com2secunix tu04e default 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234'
+
+# u05a Test 'default' configuration
+CONFIGAGENT 'com2secunix tu05a default cu05a'
+
+# u07a Test non existant sockpath
+CONFIGAGENT 'com2secunix tu07a /dev/null/no/such cu07a'
+
+# Default agent setup
+CONFIGAGENT "[snmp] persistentdir $SNMP_TMP_PERSISTENTDIR"
+# Dummy config to prevent the basic_setup warning
+CONFIGAGENT 'rocommunity public 127.0.0.0/8'
+
+AGENT_FLAGS='-Dnetsnmp_udp_parse_security,netsnmp_udp6_parse_security,netsnmp_unix_parse_security'
+
+STARTAGENT
+
+SAVECHECKAGENT() {
+    CHECKAGENT "$@"
+    if [ "x$return_value" != "x0" ] ; then
+        FINISHED
+    fi
+}
+
+# u01
+SAVECHECKAGENT 'line 1: Error: missing CONTEXT_NAME parameter'
+SAVECHECKAGENT 'line 2: Error: missing NAME parameter'
+SAVECHECKAGENT 'line 3: Error: context name too long'
+# u02
+CHECKAGENTCOUNT atleastone 'line 4: Error: Blank line following com2secunix token.'
+SAVECHECKAGENT 'line 5: Error: empty NAME parameter'
+SAVECHECKAGENT 'line 6: Error: security name too long'
+SAVECHECKAGENT 'line 7: Error: missing NAME parameter'
+SAVECHECKAGENT 'line 8: Error: empty NAME parameter'
+# u03
+SAVECHECKAGENT 'line 9: Error: missing SOCKPATH parameter'
+SAVECHECKAGENT 'line 10: Error: empty SOCKPATH parameter'
+SAVECHECKAGENT 'line 11: Error: sockpath too long'
+SAVECHECKAGENT 'line 12: Error: missing COMMUNITY parameter'
+# u04
+SAVECHECKAGENT 'line 13: Error: missing COMMUNITY parameter'
+SAVECHECKAGENT 'line 14: Error: empty COMMUNITY parameter'
+SAVECHECKAGENT 'line 15: Error: example config COMMUNITY not properly configured'
+SAVECHECKAGENT 'line 16: Error: community name too long'
+SAVECHECKAGENT '<"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234", ""> => "tu04e"'
+# u05
+SAVECHECKAGENT '<"cu05a", ""> => "tu05a"'
+# u07
+SAVECHECKAGENT '<"cu07a", "/dev/null/no/such"> => "tu07a"'
+
+FINISHED
diff --git a/testing/tests/T100agenthup b/testing/fulltests/default/T100agenthup_simple
similarity index 82%
rename from testing/tests/T100agenthup
rename to testing/fulltests/default/T100agenthup_simple
index 505efb4..d4949e1 100755
--- a/testing/tests/T100agenthup
+++ b/testing/fulltests/default/T100agenthup_simple
@@ -1,12 +1,12 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER that the agent responds properly to a kill -HUP
 
 SKIPIF NETSNMP_DISABLE_SNMPV1
 
-SKIPIFNOT HAVE_SIGNAL
+SKIPIFNOT HAVE_SIGHUP
 
 #
 # Begin test
@@ -27,7 +27,7 @@
 DELAY
 
 # And see if it has the new value.
-CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT system.sysLocation.0"
+CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.6.0"
 
 STOPAGENT
 
diff --git a/testing/tests/T110agentxget b/testing/fulltests/default/T110agentxget_simple
similarity index 93%
rename from testing/tests/T110agentxget
rename to testing/fulltests/default/T110agentxget_simple
index 449280f..2f91d36 100644
--- a/testing/tests/T110agentxget
+++ b/testing/fulltests/default/T110agentxget_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER AgentX GET support
 
@@ -21,7 +21,7 @@
 else
 ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
 fi
-AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib"
+AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib,winExtDLL"
 STARTAGENT
 
 # test to see that the current agent doesn't support the system mib
diff --git a/testing/tests/T111agentxset b/testing/fulltests/default/T111agentxset_simple
similarity index 79%
rename from testing/tests/T111agentxset
rename to testing/fulltests/default/T111agentxset_simple
index 96cbb50..c767064 100644
--- a/testing/tests/T111agentxset
+++ b/testing/fulltests/default/T111agentxset_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER AgentX SET support
 
@@ -22,7 +22,7 @@
 else
 ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
 fi
-AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib -DAgentX"
+AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib,winExtDLL -DAgentX"
 STARTAGENT
 
 # test to see that the current agent doesn't support the system mib
@@ -43,23 +43,23 @@
   STARTAGENT
 
   # test to see that the agent now supports the system mib
-  CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT sysContact.0"
+  CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0"
 
-  CHECK ".1.3.6.1.2.1.1.4.0 = STRING: testcontact"
+  CHECK ".1.3.6.1.2.1.1.4.0 = STRING: \"*testcontact"
 
   if test "$snmp_last_test_result" = 1; then
 
     # test to see that the agent now supports setting the system mib
-    CAPTURE "snmpset -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT sysContact.0 s newtestcontact"
+    CAPTURE "snmpset -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0 s newtestcontact"
 
-    CHECK ".1.3.6.1.2.1.1.4.0 = STRING: newtestcontact"
+    CHECK ".1.3.6.1.2.1.1.4.0 = STRING: \"*newtestcontact"
 
     if test "$snmp_last_test_result" = 1; then
 
 	# test to see that the agent now supports the system mib
-	CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT sysContact.0"
+	CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0"
 	
-	CHECK ".1.3.6.1.2.1.1.4.0 = STRING: newtestcontact"
+	CHECK ".1.3.6.1.2.1.1.4.0 = STRING: \"*newtestcontact"
     fi
   fi
 
diff --git a/testing/tests/T112agentxsetfail b/testing/fulltests/default/T112agentxsetfail_simple
similarity index 82%
rename from testing/tests/T112agentxsetfail
rename to testing/fulltests/default/T112agentxsetfail_simple
index 4dce727..4f1f0cb 100644
--- a/testing/tests/T112agentxsetfail
+++ b/testing/fulltests/default/T112agentxsetfail_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER AgentX illegal SET handling support
 
@@ -22,11 +22,11 @@
 else
 ORIG_AGENT_FLAGS="$AGENT_FLAGS -x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
 fi
-AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib -DAgentX"
+AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib,winExtDLL -DAgentX"
 STARTAGENT
 
 # test to see that the current agent doesn't support the system mib
-CAPTURE "snmpget -On -t 3 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT system.sysContact.0"
+CAPTURE "snmpget -On -t 3 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0"
 
 CHECK ".1.3.6.1.2.1.1.4.0 = No Such Object"
 
@@ -42,16 +42,16 @@
   STARTAGENT
 
   # test to see that the agent now supports the system mib
-  CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT sysContact.0"
+  CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0"
 
   # we don't know the real value, unfortunately, so we test for what
   # we should *not* get back.
-  CHECK ".1.3.6.1.2.1.1.4.0 = No Such Object"
+  CHECKCOUNT 0 ".1.3.6.1.2.1.1.4.0 = No Such Object"
 
   if test "$snmp_last_test_result" = 0; then
 
     # test to see that the agent now supports setting the system mib
-    CAPTURE "snmpset -On -Ir $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT sysContact.0 i 4"
+    CAPTURE "snmpset -On -Ir $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0 i 4"
 
     CHECK "wrongType"
 
diff --git a/testing/tests/T113agentxtrap b/testing/fulltests/default/T113agentxtrap_simple
similarity index 87%
rename from testing/tests/T113agentxtrap
rename to testing/fulltests/default/T113agentxtrap_simple
index 25c3ee1..be2b9be 100644
--- a/testing/tests/T113agentxtrap
+++ b/testing/fulltests/default/T113agentxtrap_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER AgentX trap sending support
 
@@ -31,7 +31,7 @@
 STARTAGENT
 
 # test to see that the current agent doesn't support the example mib
-CAPTURE "snmpget -On -t 3 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT UCD-SNMP-MIB::ucdavis.254.1.0"
+CAPTURE "snmpget -On -t 3 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.1.0"
 
 CHECK "No Such Object"
 
@@ -48,14 +48,14 @@
   STARTAGENT
 
   # test to see that the agent now supports the example mib
-  CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT UCD-SNMP-MIB::ucdavis.254.1.0"
+  CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.1.0"
 
   CHECK "life the universe and everything"
 
   if test "$snmp_last_test_result" = 1; then
 
     # test to see that the agent now sends a trap from the exmaple mib
-    CAPTURE "snmpset -On -r 0 -t 3 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT UCD-SNMP-MIB::ucdavis.254.8.0 i 1"
+    CAPTURE "snmpset -On -r 0 -t 3 $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.8.0 i 1"
     DELAY
     CHECKTRAPD "life the universe and everything"
 
diff --git a/testing/fulltests/default/T114agentxagentxtrap_simple b/testing/fulltests/default/T114agentxagentxtrap_simple
new file mode 100644
index 0000000..380c0ef
--- /dev/null
+++ b/testing/fulltests/default/T114agentxagentxtrap_simple
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER AgentX trap sending support using agentxtrap
+
+SKIPIFNOT USING_AGENTX_MASTER_MODULE
+
+#
+# Begin test
+#
+
+# start the trap demon
+CONFIGTRAPD authcommunity log public
+STARTTRAPD
+
+# standard V3 configuration for initial user
+. ./Sv3config
+# configure the trap receiver.
+CONFIGAGENT trap2sink ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT} public
+
+# Start the agent
+if [ "x$SNMP_TRANSPORT_SPEC" = "xunix" ];then
+AGENTX_SERVER="-x $SNMP_TMPDIR/agentx_socket"
+else
+AGENTX_SERVER="-x tcp:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT}"
+fi
+AGENT_FLAGS="$AGENT_FLAGS $AGENTX_SERVER"
+STARTAGENT
+
+CAPTURE "agentxtrap $AGENTX_SERVER 0.0 0.0 s mostly_harmless"
+
+# stop the master agent
+STOPAGENT
+
+# stop the trap demon
+STOPTRAPD
+
+# Check that the trap was received
+CHECKTRAPD "mostly_harmless"
+
+# all done (whew)
+FINISHED
diff --git a/testing/tests/T115agentxperl b/testing/fulltests/default/T115agentxperl_simple
similarity index 81%
rename from testing/tests/T115agentxperl
rename to testing/fulltests/default/T115agentxperl_simple
index 9da24f6..bdf6471 100755
--- a/testing/tests/T115agentxperl
+++ b/testing/fulltests/default/T115agentxperl_simple
@@ -1,14 +1,15 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER 'AgentX subagent in Perl (using NetSNMP::agent)'
 
 SKIPIF NETSNMP_DISABLE_SNMPV2C
 SKIPIFNOT USING_AGENTX_MASTER_MODULE
 SKIPIFNOT USING_AGENTX_SUBAGENT_MODULE
+SKIPIFNOT HAVE_SIGHUP
 # make sure the toolkit has been configured --with-perl-modules
-[ -d ${SNMP_UPDIR}/perl/blib/arch/auto/NetSNMP/agent ] || SKIP
+[ -d ${SNMP_UPDIR}/perl/blib/arch/auto/NetSNMP/agent ] || SKIP Not --with-perl-modules
 
 #
 # Begin test
@@ -94,25 +95,6 @@
 
 STARTAGENT
 
-# make sure that we can fulfill all library dependencies
-_ld_lib_path="${SNMP_UPDIR}/snmplib/.libs:${SNMP_UPDIR}/agent/.libs:${SNMP_UPDIR}/agent/helpers/.libs"
-if [ "x$LD_LIBRARY_PATH" != "x" ]; then
-  LD_LIBRARY_PATH="${_ld_lib_path}:${LD_LIBRARY_PATH}"
-else
-  LD_LIBRARY_PATH="${_ld_lib_path}"
-fi
-if [ "x$DYLD_LIBRARY_PATH" != "x" ]; then
-  DYLD_LIBRARY_PATH="${_ld_lib_path}:${DYLD_LIBRARY_PATH}"
-else
-  DYLD_LIBRARY_PATH="${_ld_lib_path}"
-fi
-if [ "x$SHLIB_PATH" != "x" ]; then
-  SHLIB_PATH="${_ld_lib_path}:${SHLIB_PATH}"
-else
-  SHLIB_PATH="${_ld_lib_path}"
-fi
-export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH
-
 # start perl subagent
 /usr/bin/env SNMPCONFPATH="${SNMP_TMPDIR}${SNMP_ENV_SEPARATOR}${SNMP_TMP_PERSISTENTDIR}" $SNMP_PERLPROG $PERL_SUBAGENT $SNMP_AGENTX_PID_FILE >$SNMP_AGENTX_LOG_FILE 2>&1
 DELAY
diff --git a/testing/tests/T120proxyget b/testing/fulltests/default/T120proxyget_simple
similarity index 89%
rename from testing/tests/T120proxyget
rename to testing/fulltests/default/T120proxyget_simple
index 3c86e17..16e9478 100644
--- a/testing/tests/T120proxyget
+++ b/testing/fulltests/default/T120proxyget_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER Proxy GET support
 
@@ -9,7 +9,7 @@
 SKIPIF NETSNMP_DISABLE_SNMPV2C
 
 # XXX: ucd-snmp/proxy doesn't properly support TCP -- remove this once it does
-[ "x$SNMP_TRANSPORT_SPEC" = "xtcp" -o "x$SNMP_TRANSPORT_SPEC" = "xtcp6" ] && SKIP
+[ "x$SNMP_TRANSPORT_SPEC" = "xtcp" -o "x$SNMP_TRANSPORT_SPEC" = "xtcp6" ] && SKIP Test does not support TCP
 
 #
 # Begin test
@@ -18,11 +18,11 @@
 # standard V3 configuration for initial user
 . ./Sv3config
 # config the proxy
-CONFIGAGENT proxy -t 2 -r 1 -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT} system
+CONFIGAGENT proxy -t 2 -r 1 -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT} .1.3.6.1.2.1.1
 
 # Start the agent without initializing the system mib.
 ORIG_AGENT_FLAGS="$AGENT_FLAGS"
-AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib -Dproxy"
+AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib,winExtDLL -Dproxy"
 STARTAGENT
 
 # test to see that the current agent doesn't support the system mib
diff --git a/testing/tests/T121proxyset b/testing/fulltests/default/T121proxyset_simple
similarity index 79%
rename from testing/tests/T121proxyset
rename to testing/fulltests/default/T121proxyset_simple
index 3af0b4e..c87668c 100644
--- a/testing/tests/T121proxyset
+++ b/testing/fulltests/default/T121proxyset_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER Proxy SET support
 
@@ -10,7 +10,7 @@
 SKIPIF    NETSNMP_DISABLE_SET_SUPPORT
 
 # XXX: ucd-snmp/proxy doesn't properly support TCP -- remove this once it does
-[ "x$SNMP_TRANSPORT_SPEC" = "xtcp" -o "x$SNMP_TRANSPORT_SPEC" = "xtcp6" ] && SKIP
+[ "x$SNMP_TRANSPORT_SPEC" = "xtcp" -o "x$SNMP_TRANSPORT_SPEC" = "xtcp6" ] && SKIP Test does not support TCP
 
 #
 # Begin test
@@ -19,11 +19,11 @@
 # standard V3 configuration for initial user
 . ./Sv3config
 # config the proxy
-CONFIGAGENT proxy -t 2 -r 1 -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT} system
+CONFIGAGENT proxy -t 2 -r 1 -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT} .1.3.6.1.2.1.1
 
 # Start the agent without initializing the system mib.
 ORIG_AGENT_FLAGS="$AGENT_FLAGS"
-AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib -Dproxy"
+AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib,winExtDLL -Dproxy"
 STARTAGENT
 
 # test to see that the current agent doesn't support the system mib
@@ -51,23 +51,23 @@
   SNMP_SNMPD_PORT=$ORIG_SNMP_SNMPD_PORT
 
   # test to see that the agent now supports the system mib
-  CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT sysContact.0"
+  CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0"
 
-  CHECK ".1.3.6.1.2.1.1.4.0 = STRING: testcontact"
+  CHECK ".1.3.6.1.2.1.1.4.0 = STRING: \"*testcontact"
 
   if test "$snmp_last_test_result" = 1; then
 
     # test to see that the agent now supports the system mib
-    CAPTURE "snmpset -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT sysContact.0 s newtestcontact"
+    CAPTURE "snmpset -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0 s testnewcontact"
 
-    CHECK ".1.3.6.1.2.1.1.4.0 = STRING: newtestcontact"
+    CHECK ".1.3.6.1.2.1.1.4.0 = STRING: \"*testnewcontact"
 
     if test "$snmp_last_test_result" = 1; then
 
 	# test to see that the agent now supports the system mib
-	CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT sysContact.0"
+	CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0"
 	
-	CHECK ".1.3.6.1.2.1.1.4.0 = STRING: newtestcontact"
+	CHECK ".1.3.6.1.2.1.1.4.0 = STRING: \"*testnewcontact"
     fi
   fi
 
diff --git a/testing/tests/T122proxysetfail b/testing/fulltests/default/T122proxysetfail_simple
similarity index 84%
rename from testing/tests/T122proxysetfail
rename to testing/fulltests/default/T122proxysetfail_simple
index 19e20e4..7f57be9 100644
--- a/testing/tests/T122proxysetfail
+++ b/testing/fulltests/default/T122proxysetfail_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER Proxy illegal SET handling support
 
@@ -10,7 +10,7 @@
 SKIPIF    NETSNMP_DISABLE_SET_SUPPORT
 
 # XXX: ucd-snmp/proxy doesn't properly support TCP -- remove this once it does
-[ "x$SNMP_TRANSPORT_SPEC" = "xtcp" ] && SKIP
+[ "x$SNMP_TRANSPORT_SPEC" = "xtcp" ] && SKIP Test does not support TCP
 
 #
 # Begin test
@@ -19,11 +19,11 @@
 # standard V3 configuration for initial user
 . ./Sv3config
 # config the proxy
-CONFIGAGENT proxy -t 2 -r 1 -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT} system
+CONFIGAGENT proxy -t 2 -r 1 -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:${SNMP_TEST_DEST}${SNMP_AGENTX_PORT} .1.3.6.1.2.1.1
 
 # Start the agent without initializing the system mib.
 ORIG_AGENT_FLAGS="$AGENT_FLAGS"
-AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib -Dproxy"
+AGENT_FLAGS="$ORIG_AGENT_FLAGS -I -system_mib,winExtDLL -Dproxy"
 STARTAGENT
 
 # test to see that the current agent doesn't support the system mib
@@ -51,17 +51,17 @@
   SNMP_SNMPD_PORT=$ORIG_SNMP_SNMPD_PORT
 
   # test to see that the agent now supports the system mib
-  CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT sysContact.0"
+  CAPTURE "snmpget -On $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0"
 
   
   # we don't know the real value, unfortunately, so we test for what
   # we should *not* get back.
-  CHECK ".1.3.6.1.2.1.1.4.0 = No Such Object"
+  CHECKCOUNT 0 ".1.3.6.1.2.1.1.4.0 = No Such Object"
 
   if test "$snmp_last_test_result" = 0; then
 
     # test to see that the agent now supports the system mib
-    CAPTURE "snmpset -On -Ir $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT sysContact.0 i 42"
+    CAPTURE "snmpset -On -Ir $SNMP_FLAGS -t 5 $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0 i 42"
 
     # 5.0.x snmpset shows error on single line
     #CHECK ".1.3.6.1.2.1.1.4.0 = Wrong Type"
diff --git a/testing/tests/T130snmpv1vacmget b/testing/fulltests/default/T130snmpv1vacmget_simple
similarity index 94%
rename from testing/tests/T130snmpv1vacmget
rename to testing/fulltests/default/T130snmpv1vacmget_simple
index 71bdc71..1974b7f 100644
--- a/testing/tests/T130snmpv1vacmget
+++ b/testing/fulltests/default/T130snmpv1vacmget_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv1 vacm acceptance support
 SKIPIF NETSNMP_DISABLE_SNMPV1
diff --git a/testing/tests/T131snmpv2cvacmget b/testing/fulltests/default/T131snmpv2cvacmget_simple
similarity index 94%
rename from testing/tests/T131snmpv2cvacmget
rename to testing/fulltests/default/T131snmpv2cvacmget_simple
index 9d481f2..4f72370 100644
--- a/testing/tests/T131snmpv2cvacmget
+++ b/testing/fulltests/default/T131snmpv2cvacmget_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv2 vacm acceptance support
 
diff --git a/testing/tests/T132snmpv3vacmget b/testing/fulltests/default/T132snmpv3vacmget_simple
similarity index 94%
rename from testing/tests/T132snmpv3vacmget
rename to testing/fulltests/default/T132snmpv3vacmget_simple
index 8ce9364..004d0dd 100644
--- a/testing/tests/T132snmpv3vacmget
+++ b/testing/fulltests/default/T132snmpv3vacmget_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv3 vacm acceptance support
 
diff --git a/testing/tests/T140snmpv1vacmgetfail b/testing/fulltests/default/T140snmpv1vacmgetfail_simple
similarity index 95%
rename from testing/tests/T140snmpv1vacmgetfail
rename to testing/fulltests/default/T140snmpv1vacmgetfail_simple
index 0510008..a47f94d 100644
--- a/testing/tests/T140snmpv1vacmgetfail
+++ b/testing/fulltests/default/T140snmpv1vacmgetfail_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv1 vacm denial support
 
diff --git a/testing/tests/T141snmpv2cvacmgetfail b/testing/fulltests/default/T141snmpv2cvacmgetfail_simple
similarity index 93%
rename from testing/tests/T141snmpv2cvacmgetfail
rename to testing/fulltests/default/T141snmpv2cvacmgetfail_simple
index c2ed337..5f665ba 100644
--- a/testing/tests/T141snmpv2cvacmgetfail
+++ b/testing/fulltests/default/T141snmpv2cvacmgetfail_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv2 vacm denial support
 
@@ -36,7 +36,7 @@
 CHECKORDIE "Reason: noAccess"
 
 CAPTURE "snmpset -On $SNMP_FLAGS -c testrwcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.5.0 s dummy"
-CHECKORDIE ".1.3.6.1.2.1.1.5.0 = STRING: dummy"
+CHECKORDIE ".1.3.6.1.2.1.1.5.0 = STRING: \"*dummy"
 
 CAPTURE "snmpset -On $SNMP_FLAGS -c testrocommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.5.0 s dummy"
 CHECKORDIE "Reason: noAccess"
diff --git a/testing/tests/T142snmpv3vacmgetfail b/testing/fulltests/default/T142snmpv3vacmgetfail_simple
similarity index 94%
rename from testing/tests/T142snmpv3vacmgetfail
rename to testing/fulltests/default/T142snmpv3vacmgetfail_simple
index 8f7eb9c..cfc000b 100644
--- a/testing/tests/T142snmpv3vacmgetfail
+++ b/testing/fulltests/default/T142snmpv3vacmgetfail_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER SNMPv3 vacm denial support
 
diff --git a/testing/tests/T150solarishostcpu b/testing/fulltests/default/T150solarishostcpu_simple
similarity index 82%
rename from testing/tests/T150solarishostcpu
rename to testing/fulltests/default/T150solarishostcpu_simple
index a28e939..4a3ee6a 100644
--- a/testing/tests/T150solarishostcpu
+++ b/testing/fulltests/default/T150solarishostcpu_simple
@@ -1,11 +1,11 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER 1st CPU on Solaris using HOST-RESOURCES
 
 if test "x`uname -s`" != "xSunOS" ; then
-    SKIP
+    SKIP "not running solaris"
 fi
 
 SKIPIF NETSNMP_DISABLE_SNMPV1
@@ -24,7 +24,7 @@
 
 CAPTURE "snmpgetnext -On $SNMP_FLAGS -c testcommunity -v 1 $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.25.3.2.1.3.767"
 
-CHECKORDIE " = STRING: CPU "
+CHECKORDIE ' = STRING: "*CPU '
 
 STOPAGENT
   
diff --git a/testing/tests/T151solarishostdisk b/testing/fulltests/default/T151solarishostdisk_simple
similarity index 88%
rename from testing/tests/T151solarishostdisk
rename to testing/fulltests/default/T151solarishostdisk_simple
index f9811f5..77a117f 100644
--- a/testing/tests/T151solarishostdisk
+++ b/testing/fulltests/default/T151solarishostdisk_simple
@@ -1,12 +1,12 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER initial load device on Solaris using HOST-RESOURCES
 
 if test `uname -s` != "SunOS" ; then
     # a bogus skip for !suns
-    SKIPIFNOT XXXYYYZZZ
+    SKIP  "not running solaris"
 fi
 
 SKIPIFNOT USING_HOST_HR_SYSTEM_MODULE
diff --git a/testing/tests/T152hostuptime b/testing/fulltests/default/T152hostuptime_simple
similarity index 91%
rename from testing/tests/T152hostuptime
rename to testing/fulltests/default/T152hostuptime_simple
index 1e90d3f..4d62b35 100644
--- a/testing/tests/T152hostuptime
+++ b/testing/fulltests/default/T152hostuptime_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER uptime using HOST-RESOURCES
 
diff --git a/testing/tests/T153solarisswap b/testing/fulltests/default/T153solarisswap_simple
similarity index 72%
rename from testing/tests/T153solarisswap
rename to testing/fulltests/default/T153solarisswap_simple
index 04e2e3c..055dd45 100644
--- a/testing/tests/T153solarisswap
+++ b/testing/fulltests/default/T153solarisswap_simple
@@ -1,15 +1,14 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER swap on Solaris using HOST-RESOURCES
 
 if test `uname -s` != "SunOS" ; then
-    # a bogus skip for !suns
-    SKIPIFNOT XXXYYYZZZ
+    SKIP "not running solaris"
 fi
 
-SKIPIFNOT USING_HOST_HR_STORAGE_MODULE
+ISDEFINED USING_HOST_HR_STORAGE_MODULE || ISDEFINED USING_HOST_HRH_STORAGE_MODULE || SKIP "Not using hrStorage"
 
 SKIPIF NETSNMP_DISABLE_SNMPV1
 
diff --git a/testing/tests/T160snmpnetstat b/testing/fulltests/default/T160snmpnetstat_simple
similarity index 68%
rename from testing/tests/T160snmpnetstat
rename to testing/fulltests/default/T160snmpnetstat_simple
index 04b7443..e20bbbd 100644
--- a/testing/tests/T160snmpnetstat
+++ b/testing/fulltests/default/T160snmpnetstat_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 # snmpnetstat test only works with UDP or TCP
 if [ "x$SNMP_TRANSPORT_SPEC" = "x" -o "x$SNMP_TRANSPORT_SPEC" = "xudp" ]; then
@@ -13,25 +13,25 @@
   SKIPIFNOT USING_MIBII_TCPTABLE_MODULE
 else
   HEADER "if snmpnetstat finds the running agent in udpTable/tcpTable"
-  SKIP
+  SKIP Not using TCP or UDP transport
 fi
 
 # on some systems the agent needs to be run as root to access udpTable/tcpTable
 # - else force skip
 case "x`uname -s`" in
-  xAIX)     [ "x`id -u`" != "x0" ] && SKIP;;
-  xHP-UX)   [ "x`id -u`" != "x0" ] && SKIP;;
-  xIRIX*)   [ "x`id -u`" != "x0" ] && SKIP;;
-  xNetBSD)  [ "x`id -u`" != "x0" ] && SKIP;;
-  xOpenBSD) [ "x`id -u`" != "x0" ] && SKIP;;
-  xOSF1)    [ "x`id -u`" != "x0" ] && SKIP;;
+  xAIX)     [ "x`id -u`" != "x0" ] && SKIP Not running as root;;
+  xHP-UX)   [ "x`id -u`" != "x0" ] && SKIP Not running as root;;
+  xIRIX*)   [ "x`id -u`" != "x0" ] && SKIP Not running as root;;
+  xNetBSD)  [ "x`id -u`" != "x0" ] && SKIP Not running as root;;
+  xOpenBSD) [ "x`id -u`" != "x0" ] && SKIP Not running as root;;
+  xOSF1)    [ "x`id -u`" != "x0" ] && SKIP Not running as root;;
 esac
 
 SKIPIF NETSNMP_DISABLE_SNMPV2C
 
 # make sure snmpnetstat can be executed
 SNMPNETSTAT="${SNMP_UPDIR}/apps/snmpnetstat/snmpnetstat"
-[ -x "$SNMPNETSTAT" ] || SKIP
+[ -x "$SNMPNETSTAT" ] || SKIP snmpnetstat not compiled
 
 snmp_version=v2c
 . ./Sv2cconfig
diff --git a/testing/fulltests/default/T161snmpTargetAddr_simple b/testing/fulltests/default/T161snmpTargetAddr_simple
new file mode 100644
index 0000000..c7caa6a
--- /dev/null
+++ b/testing/fulltests/default/T161snmpTargetAddr_simple
@@ -0,0 +1,129 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER snmpTargetAddrTable
+
+SKIPIF NETSNMP_DISABLE_SET_SUPPORT
+SKIPIF NETSNMP_NO_WRITE_SUPPORT
+SKIPIF NETSNMP_DISABLE_SNMPV2C
+SKIPIFNOT USING_TARGET_SNMPTARGETADDRENTRY_MODULE
+
+#
+# Begin test
+#
+
+. ./Sv3config
+
+STARTAGENT
+
+# Check that the table starts out empty
+CAPTURE "snmpgetnext -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1"
+
+CHECKANDDIE "^.1.3.6.1.6.3.12.1.2.1"
+
+# Create an entry with index '' (empty)
+CAPTURE "snmpset -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.9 i 5"
+
+CHECKORDIE "noCreation"
+
+# Create an entry with index '0123456789A123456789B123456789C123' (overlong)
+CAPTURE "snmpset -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.9.30.31.32.33.34.35.36.37.38.39.65.31.32.33.34.35.36.37.38.39.66.31.32.33.34.35.36.37.38.39.67.31.32.33 i 5"
+
+CHECKORDIE "noCreation"
+
+# Create an entry with index 'A'
+CAPTURE "snmpset -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.9.65 i 5"
+
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.9.65 = INTEGER: 5"
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.9.65 ="
+
+# Check that the table contains one and only one entry
+CAPTURE "snmpwalk -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.9"
+
+CHECK "^.1.3.6.1.6.3.12.1.2.1.9"
+
+# Check that the entry is the expected one
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.9.65 = INTEGER: 3"
+
+# Check that the default values are set as expected
+CAPTURE "snmpget -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.2.65 .1.3.6.1.6.3.12.1.2.1.3.65 .1.3.6.1.6.3.12.1.2.1.4.65 .1.3.6.1.6.3.12.1.2.1.5.65 .1.3.6.1.6.3.12.1.2.1.6.65 .1.3.6.1.6.3.12.1.2.1.7.65 .1.3.6.1.6.3.12.1.2.1.8.65 .1.3.6.1.6.3.12.1.2.1.9.65"
+
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.2.65 = No Such Instance"
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.3.65 = No Such Instance"
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.4.65 = INTEGER: 1500"
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.5.65 = INTEGER: 3"
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.6.65 = STRING: "
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.7.65 = No Such Instance"
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.8.65 = INTEGER: 3"
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.9.65 = INTEGER: 3"
+
+# Try to set timeout < 0
+CAPTURE "snmpset -On -Oe -Ir $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.4.65 i -1"
+
+CHECKORDIE "wrongValue"
+
+# Try to set timeout to 2147483647
+CAPTURE "snmpset -On -Oe -Ir $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.4.65 i 2147483647"
+
+CHECKORDIE "^.1.3.6.1.6.3.12.1.2.1.4.65 = INTEGER: 2147483647"
+
+# Fetch and verify that the timeout still is 2147483647
+CAPTURE "snmpget -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.4.65"
+
+CHECKORDIE "^.1.3.6.1.6.3.12.1.2.1.4.65 = INTEGER: 2147483647"
+
+# Try to set retry count < 0
+CAPTURE "snmpset -On -Oe -Ir $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.5.65 i -1"
+
+CHECKORDIE "wrongValue"
+
+# Try to set retry count > 255
+CAPTURE "snmpset -On -Oe -Ir $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.5.65 i 256"
+
+CHECKORDIE "wrongValue"
+
+# Try to set taglist to a single value
+CAPTURE "snmpset -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.6.65 s alfa"
+
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.6.65 = STRING: alfa"
+
+# Fetch and verify that the taglist have kept it's value
+CAPTURE "snmpget -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.6.65"
+
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.6.65 = STRING: alfa"
+
+# Try to set taglist to multiple values
+CAPTURE "snmpset -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.6.65 x 616c66612062657461"
+
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.6.65 = STRING: alfa beta"
+
+# Fetch and verify that the taglist have kept it's values
+CAPTURE "snmpget -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.6.65"
+
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.6.65 = STRING: alfa beta"
+
+# Try to set taglist to a value with an embedded nul character
+CAPTURE "snmpset -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.6.65 x 616c006661"
+
+CHECKORDIE ".1.3.6.1.6.3.12.1.2.1.6.65 = STRING: al.fa"
+
+# Try to set taglist to a value with a leading space
+CAPTURE "snmpset -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.6.65 x 20616c6661"
+
+CHECKORDIE "wrongValue"
+
+# Try to set taglist to a value with a trailing space
+CAPTURE "snmpset -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.6.65 x 616c666120"
+
+CHECKORDIE "wrongValue"
+
+# Try to set taglist to multiple values separated by more than on whitespace
+# character
+CAPTURE "snmpset -On -Oe $SNMP_FLAGS $AUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.6.3.12.1.2.1.6.65 x 616c6661202062657461"
+
+CHECKORDIE "wrongValue"
+
+STOPAGENT
+
+FINISHED
diff --git a/testing/tests/T200snmpv2cwalkall b/testing/fulltests/default/T200snmpv2cwalkall_simple
similarity index 71%
rename from testing/tests/T200snmpv2cwalkall
rename to testing/fulltests/default/T200snmpv2cwalkall_simple
index 2388235..5d5f16f 100644
--- a/testing/tests/T200snmpv2cwalkall
+++ b/testing/fulltests/default/T200snmpv2cwalkall_simple
@@ -1,13 +1,13 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER "full snmpwalk (SNMPv2c) against agent (may take time)"
 
 if test `uname -s` = "HP-UX" ; then
     if test `id -u` != "0" ; then
         # The agent needs to be run as root - else force skip
-        SKIP
+        SKIP Agent must be run at root on HP-UX
     fi
 fi
 
@@ -15,7 +15,7 @@
 
 # make sure snmpwalk can be executed
 SNMPWALK="${SNMP_UPDIR}/apps/snmpwalk"
-[ -x "$SNMPWALK" ] || SKIP
+[ -x "$SNMPWALK" ] || SKIP snmpwalk not compiled
 
 snmp_version=v2c
 . ./Sv2cconfig
@@ -31,11 +31,7 @@
 STARTAGENT
 
 CAPTURE "$SNMPWALK $SNMP_FLAGS -$snmp_version -c testcommunity -t $TIMEOUT -r $RETRY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1"
-if ISDEFINED USING_WINEXTDLL_MODULE; then
-  :
-else
-  CHECKANDDIE "= Wrong Type (should be "
-fi
+ISDEFINED USING_WINEXTDLL_MODULE || ISDEFINED USING_ETHERLIKE_MIB_DOT3STATSTABLE_MODULE || CHECKANDDIE "= Wrong Type (should be "
 CHECKORDIE "No more variables left in this MIB View"
 
 STOPAGENT
diff --git a/testing/fulltests/perl/NetSNMPTestTransport.pm b/testing/fulltests/perl/NetSNMPTestTransport.pm
new file mode 100644
index 0000000..38bcfee
--- /dev/null
+++ b/testing/fulltests/perl/NetSNMPTestTransport.pm
@@ -0,0 +1,54 @@
+BEGIN {
+    if (exists($ENV{'srcdir'})) {
+	push @INC, "$ENV{'srcdir'}/testing/fulltests/support";
+    } elsif (-d "fulltests/support") {
+	push @INC, "fulltests/support";
+    } elsif (-d "../support") {
+	push @INC, "../support";
+    }
+}
+
+package NetSNMPTestTransport;
+
+use NetSNMPTest;
+use Test;
+use SNMP;
+
+our @ISA = qw(NetSNMPTest);
+
+sub run_tests {
+    my ($self) = @_;
+
+    plan(tests => 2);
+
+    # set it up with a snmpv3 USM user
+    $self->config_agent("createuser testuser MD5 notareallpassword");
+    $self->config_agent("rwuser testuser");
+    $self->config_agent("syscontact itworked");
+
+    $self->DIE("failed to start the agent") if (!$self->start_agent());
+
+    # now create a session to test things with
+    my $session = new SNMP::Session(DestHost => $self->{'agentaddress'},
+				    Version => '3',
+				    SecName => 'testuser',
+				    SecLevel => 'authNoPriv',
+				    AuthProto => 'MD5',
+				    AuthPass => 'notareallpassword');
+
+    ok(ref($session), 'SNMP::Session', "created a session");
+
+    ######################################################################
+    # GET test
+    if (ref($session) eq 'SNMP::Session') {
+	$value = $session->get('sysContact.0');
+	ok($value, 'itworked');
+    }
+
+    ######################################################################
+    # cleanup
+    $self->stop_agent();
+}
+
+
+1;
diff --git a/testing/fulltests/perl/T001basic.t b/testing/fulltests/perl/T001basic.t
new file mode 100644
index 0000000..c7af105
--- /dev/null
+++ b/testing/fulltests/perl/T001basic.t
@@ -0,0 +1,93 @@
+#!/usr/bin/perl
+
+# HEADER Basic perl functionality to a UDP agent
+
+BEGIN {
+    if (exists($ENV{'srcdir'})) {
+	push @INC, "$ENV{'srcdir'}/testing/fulltests/support";
+    } elsif (-d "fulltests/support") {
+	push @INC, "fulltests/support";
+    } elsif (-d "../support") {
+	push @INC, "../support";
+    }
+}
+
+use NetSNMPTest;
+use Test;
+use SNMP;
+
+my $value;
+
+plan(tests => 10);
+
+ok(1,1,"started up");
+
+# use a basic UDP port
+my $destination = "udp:localhost:9897";
+
+my $test = new NetSNMPTest(agentaddress => $destination);
+
+# set it up with a snmpv3 USM user
+$test->config_agent("createuser testuser MD5 notareallpassword");
+$test->config_agent("rwuser testuser");
+$test->config_agent("syscontact itworked");
+
+$test->DIE("failed to start the agent") if (!$test->start_agent());
+
+# now create a session to test things with
+my $session = new SNMP::Session(DestHost => $destination,
+                                Version => '3',
+				SecName => 'testuser',
+				SecLevel => 'authNoPriv',
+				AuthProto => 'MD5',
+				AuthPass => 'notareallpassword');
+
+ok(ref($session), 'SNMP::Session', "created a session");
+
+
+######################################################################
+# GET test
+$value = $session->get('sysContact.0');
+
+ok($value, 'itworked');
+
+######################################################################
+# GETNEXT test
+$value = $session->getnext('sysContact');
+
+ok($value, 'itworked');
+
+######################################################################
+# SET test
+$value = $session->get('sysLocation.0');
+
+ok($value ne 'yep', 1, 'Ensuring the sysLocation setting is not "yep"');
+
+my $varbind = new SNMP::Varbind(['sysLocation', '0', 'yep', 'OCTETSTR']);
+
+
+$value = $session->set($varbind);
+
+ok(($value == 0), 1, 'return value from set was a success');
+
+my $value = $session->get('sysLocation.0');
+
+ok($value, 'yep');
+
+######################################################################
+# GETBULK test
+$varbind = new SNMP::Varbind(['sysContact']);
+my @values = $session->getbulk(0, 3, $varbind);
+
+ok($#values == 2);
+ok($values[0] eq 'itworked');
+ok($values[2] eq 'yep');
+
+######################################################################
+# gettable() test
+
+
+
+######################################################################
+# cleanup
+$test->stop_agent();
diff --git a/testing/fulltests/perl/T101udp.t b/testing/fulltests/perl/T101udp.t
new file mode 100644
index 0000000..5f015d2
--- /dev/null
+++ b/testing/fulltests/perl/T101udp.t
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+
+# HEADER Perl UDP IPv4 Test
+
+BEGIN {
+    if (exists($ENV{'srcdir'})) {
+	push @INC, "$ENV{'srcdir'}/testing/fulltests/perl";
+    } elsif (-d "fulltests/perl") {
+	push @INC, "fulltests/perl";
+    } elsif (-d "../perl") {
+	push @INC, "../perl";
+    }
+}
+use NetSNMPTestTransport;
+
+my $test = new NetSNMPTestTransport(agentaddress => "udp:localhost:9875");
+$test->require_feature("NETSNMP_TRANSPORT_UDP_DOMAIN");
+$test->run_tests();
diff --git a/testing/fulltests/perl/T102tcp.t b/testing/fulltests/perl/T102tcp.t
new file mode 100644
index 0000000..2fa07ac
--- /dev/null
+++ b/testing/fulltests/perl/T102tcp.t
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+
+# HEADER Perl TCP IPv4 Test
+
+BEGIN {
+    if (exists($ENV{'srcdir'})) {
+	push @INC, "$ENV{'srcdir'}/testing/fulltests/perl";
+    } elsif (-d "fulltests/perl") {
+	push @INC, "fulltests/perl";
+    } elsif (-d "../perl") {
+	push @INC, "../perl";
+    }
+}
+use NetSNMPTestTransport;
+
+my $test = new NetSNMPTestTransport(agentaddress => "tcp:localhost:9875");
+$test->require_feature("NETSNMP_TRANSPORT_TCP_DOMAIN");
+$test->run_tests();
diff --git a/testing/fulltests/perl/T103udp6.t b/testing/fulltests/perl/T103udp6.t
new file mode 100644
index 0000000..3ecb332
--- /dev/null
+++ b/testing/fulltests/perl/T103udp6.t
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+
+# HEADER Perl UDP IPv6 Test
+
+BEGIN {
+    if (exists($ENV{'srcdir'})) {
+	push @INC, "$ENV{'srcdir'}/testing/fulltests/perl";
+    } elsif (-d "fulltests/perl") {
+	push @INC, "fulltests/perl";
+    } elsif (-d "../perl") {
+	push @INC, "../perl";
+    }
+}
+use NetSNMPTestTransport;
+
+my $test = new NetSNMPTestTransport(agentaddress => "udp6:[::1]:9875");
+$test->require_feature("NETSNMP_TRANSPORT_UDPIPV6_DOMAIN");
+$test->run_tests();
diff --git a/testing/fulltests/perl/T104tcp6.t b/testing/fulltests/perl/T104tcp6.t
new file mode 100644
index 0000000..58222d0
--- /dev/null
+++ b/testing/fulltests/perl/T104tcp6.t
@@ -0,0 +1,18 @@
+#!/usr/bin/perl
+
+# HEADER Perl TCP IPv6 Test
+
+BEGIN {
+    if (exists($ENV{'srcdir'})) {
+	push @INC, "$ENV{'srcdir'}/testing/fulltests/perl";
+    } elsif (-d "fulltests/perl") {
+	push @INC, "fulltests/perl";
+    } elsif (-d "../perl") {
+	push @INC, "../perl";
+    }
+}
+use NetSNMPTestTransport;
+
+my $test = new NetSNMPTestTransport(agentaddress => "tcp6:[::1]:9875");
+$test->require_feature("NETSNMP_TRANSPORT_TCPIPV6_DOMAIN");
+$test->run_tests();
diff --git a/testing/fulltests/perl/T105unix.t b/testing/fulltests/perl/T105unix.t
new file mode 100644
index 0000000..3c01719
--- /dev/null
+++ b/testing/fulltests/perl/T105unix.t
@@ -0,0 +1,19 @@
+#!/usr/bin/perl
+
+# HEADER Perl Unix Domain Socket Test
+
+BEGIN {
+    if (exists($ENV{'srcdir'})) {
+	push @INC, "$ENV{'srcdir'}/testing/fulltests/perl";
+    } elsif (-d "fulltests/perl") {
+	push @INC, "fulltests/perl";
+    } elsif (-d "../perl") {
+	push @INC, "../perl";
+    }
+}
+use NetSNMPTestTransport;
+
+my $test = new NetSNMPTestTransport(agentaddress => "bogus");
+$test->require_feature("NETSNMP_TRANSPORT_UNIX_DOMAIN");
+$test->{'agentaddress'} = "unix:" . $test->{'dir'} . "/unixtestsocket";
+$test->run_tests();
diff --git a/testing/scapitest.c b/testing/fulltests/snmpv3/T010scapitest_capp.c
similarity index 69%
rename from testing/scapitest.c
rename to testing/fulltests/snmpv3/T010scapitest_capp.c
index 82e9098..ee794a7 100644
--- a/testing/scapitest.c
+++ b/testing/fulltests/snmpv3/T010scapitest_capp.c
@@ -1,6 +1,8 @@
 /*
  * scapitest.c
  *
+ * HEADER Testing SCAPI API
+ *
  * Expected SUCCESSes:  2 + 10 + 1 for all tests.
  *
  * Returns:
@@ -21,9 +23,6 @@
  * Test of sc_encrypt and sc_decrypt.                           SUCCESSes: 1.
  */
 
-static char    *rcsid = "$Id$";    /* */
-
-
 #include <net-snmp/net-snmp-config.h>
 
 #include <stdio.h>
@@ -31,13 +30,15 @@
 #include <netinet/in.h>
 #endif
 
-#include "asn1.h"
-#include "snmp_api.h"
-#include "keytools.h"
-#include "tools.h"
-#include "scapi.h"
-#include "transform_oids.h"
-#include "callback.h"
+#include <net-snmp/library/asn1.h>
+#include <net-snmp/library/snmp_api.h>
+#include <net-snmp/library/keytools.h>
+#include <net-snmp/library/tools.h>
+#include <net-snmp/library/scapi.h>
+#include <net-snmp/library/transform_oids.h>
+#include <net-snmp/library/callback.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/library/snmpusm.h>
 
 #include <stdlib.h>
 
@@ -52,6 +53,8 @@
  * Globals, &c...
  */
 char           *local_progname;
+int             testcount=0;
+int             failcount=0;
 
 #define USAGE	"Usage: %s [-h][-acHr]"
 #define OPTIONLIST	"achHr"
@@ -65,24 +68,26 @@
 #define LOCAL_MAXBUF	(1024 * 8)
 #define NL		"\n"
 
-#define OUTPUT(o)	fprintf(stdout, "\n\n%s\n\n", o);
+#define OUTPUT(o)	printf("# %s\n", o);
 
 #define SUCCESS(s)					\
 {							\
-	if (!failcount)					\
-		fprintf(stdout, "\nSUCCESS: %s\n", s);	\
+    printf("# Done with %s\n", s);			\
 }
 
-#define FAILED(e, f)					\
-{							\
-	if (e != SNMPERR_SUCCESS) {			\
-		fprintf(stdout, "\nFAILED: %s\n", f);	\
-		failcount += 1;				\
-	}						\
+#define FAILED(e, f)                                                    \
+{                                                                       \
+    if (e != SNMPERR_SUCCESS) {                                         \
+                printf("not ok: %d - %s\n", ++testcount, f);            \
+		failcount += 1;                                         \
+	} else {                                                        \
+                printf("ok: %d - %s\n", ++testcount, f);                \
+        }                                                               \
+    fflush(stdout); \
 }
 
-
 #define BIGSTRING							\
+    (const u_char *)                                                    \
     "   A port may be a pleasant retreat for any mind grown weary of"	\
     "the struggle for existence.  The vast expanse of sky, the"		\
     "mobile architecture of the clouds, the chameleon coloration"	\
@@ -100,8 +105,12 @@
     "	-- Baudelaire"							\
     "	   From _The_Poems_in_Prose_, \"The Port\" (XLI)."
 
-#define BIGSECRET	"Shhhh... Don't tell *anyone* about this.  Not a soul."
-#define BKWDSECRET	".luos a toN  .siht tuoba *enoyna* llet t'noD ...hhhhS"
+#define BIGSECRET                                               \
+    (const u_char *)                                            \
+    "Shhhh... Don't tell *anyone* about this.  Not a soul."
+#define BKWDSECRET                                              \
+    (const u_char *)                                            \
+    ".luos a toN  .siht tuoba *enoyna* llet t'noD ...hhhhS"
 
 #define MLCOUNT_MAX	6       /* MAC Length Count Maximum. */
 
@@ -110,7 +119,7 @@
 /*
  * Prototypes.
  */
-void            usage(FILE * ofp);
+void            usage(void);
 
 int             test_docrypt(void);
 int             test_dokeyedhash(void);
@@ -122,7 +131,7 @@
 int
 main(int argc, char **argv)
 {
-    int             rval = SNMPERR_SUCCESS, failcount = 0;
+    int             rval = SNMPERR_SUCCESS;
     char            ch;
 
     local_progname = argv[0];
@@ -147,7 +156,7 @@
         case 'h':
             rval = 0;
         default:
-            usage(stdout);
+            usage();
             exit(rval);
         }
 
@@ -157,12 +166,11 @@
     }                           /* endwhile getopt */
 
     if ((argc > 1)) {
-        usage(stdout);
+        usage();
         exit(1000);
 
     } else if (ALLOPTIONS != 1) {
-        usage(stdout);
-        exit(1000);
+        doalltests = 1;
     }
 
 
@@ -170,29 +178,21 @@
      * Test stuff.
      */
     rval = sc_init();
-    FAILED(rval, "sc_init().");
+    FAILED(rval, "sc_init() return code");
 
 
     if (docrypt || doalltests) {
-        failcount += test_docrypt();
+        test_docrypt();
     }
     if (dokeyedhash || doalltests) {
-        failcount += test_dokeyedhash();
+        test_dokeyedhash();
     }
     if (dorandom || doalltests) {
-        failcount += test_dorandom();
+        test_dorandom();
     }
 
-
-    /*
-     * Cleanup.
-     */
-    rval = sc_shutdown(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_SHUTDOWN,
-                       NULL, NULL);
-    FAILED(rval, "sc_shutdown().");
-
-    return failcount;
-
+    printf("1..%d\n", testcount);
+    return 0;
 }                               /* end main() */
 
 
@@ -200,10 +200,9 @@
 
 
 void
-usage(FILE * ofp)
+usage(void)
 {
-    fprintf(ofp,
-            USAGE
+    printf( USAGE
             "" NL
             "	-a		All tests." NL
             "	-c		Test of sc_encrypt()/sc_decrypt()."
@@ -220,32 +219,6 @@
 
 
 
-#ifdef EXAMPLE
-/*******************************************************************-o-******
- * test_dosomething
- *
- * Test template.
- *
- * Returns:
- *	Number of failures.
- */
-int
-test_dosomething(void)
-{
-    int             rval = SNMPERR_SUCCESS, failcount = 0;
-
-    EM0(1, "UNIMPLEMENTED");    /* EM(1); /* */
-
-  test_dosomething_quit:
-    return failcount;
-
-}                               /* end test_dosomething() */
-#endif                          /* EXAMPLE */
-
-
-
-
-
 /*******************************************************************-o-******
  * test_dorandom
  *
@@ -260,15 +233,15 @@
 test_dorandom(void)
 {
     int             rval = SNMPERR_SUCCESS,
-        failcount = 0,
         origrequest = (1024 * 2),
-        origrequest_short = 19, nbytes = origrequest, shortcount = 7, i;
-    char            buf[LOCAL_MAXBUF];
+        origrequest_short = 19, shortcount = 7, i;
+    size_t          nbytes = origrequest;
+    u_char          buf[LOCAL_MAXBUF];
 
     OUTPUT("Random test -- large request:");
 
     rval = sc_random(buf, &nbytes);
-    FAILED(rval, "sc_random().");
+    FAILED(rval, "sc_random() return code");
 
     if (nbytes != origrequest) {
         FAILED(SNMPERR_GENERR,
@@ -286,7 +259,7 @@
     for (i = 0; i < shortcount; i++) {
         nbytes = origrequest_short;
         rval = sc_random(buf, &nbytes);
-        FAILED(rval, "sc_random().");
+        FAILED(rval, "sc_random() return code");
 
         if (nbytes != origrequest_short) {
             FAILED(SNMPERR_GENERR,
@@ -323,14 +296,18 @@
 int
 test_dokeyedhash(void)
 {
-    int             rval = SNMPERR_SUCCESS, failcount = 0, bigstring_len = strlen(BIGSTRING), secret_len = strlen(BIGSECRET), properlength, mlcount = 0,        /* MAC Length count.   */
-                    hblen;      /* Hash Buffer length. */
+    int rval = SNMPERR_SUCCESS,
+        bigstring_len = strlen((const char *) BIGSTRING),
+        secret_len = strlen((const char *) BIGSECRET),
+        properlength,
+        mlcount = 0;        /* MAC Length count.   */
+    size_t          hblen;      /* Hash Buffer length. */
 
     u_int           hashbuf_len[MLCOUNT_MAX] = {
         LOCAL_MAXBUF,
-        BYTESIZE(SNMP_TRANS_AUTHLEN_HMACSHA1),
-        BYTESIZE(SNMP_TRANS_AUTHLEN_HMACMD5),
-        BYTESIZE(SNMP_TRANS_AUTHLEN_HMAC96),
+        USM_MD5_AND_SHA_AUTH_LEN,
+        USM_MD5_AND_SHA_AUTH_LEN,
+        USM_MD5_AND_SHA_AUTH_LEN,
         7,
         0,
     };
@@ -340,7 +317,7 @@
 
   test_dokeyedhash_again:
 
-    OUTPUT("Keyed hash test using MD5 --");
+    OUTPUT("Starting Keyed hash test using MD5 --");
 
     memset(hashbuf, 0, LOCAL_MAXBUF);
     hblen = hashbuf_len[mlcount];
@@ -349,9 +326,10 @@
     rval =
         sc_generate_keyed_hash(usmHMACMD5AuthProtocol,
                                USM_LENGTH_OID_TRANSFORM, BIGSECRET,
-                               secret_len, BIGSTRING, bigstring_len,
+                               secret_len, BIGSTRING,
+                               bigstring_len,
                                hashbuf, &hblen);
-    FAILED(rval, "sc_generate_keyed_hash().");
+    FAILED(rval, "sc_generate_keyed_hash() return code");
 
     if (hashbuf_len[mlcount] > properlength) {
         if (hblen != properlength) {
@@ -367,18 +345,16 @@
                             USM_LENGTH_OID_TRANSFORM, BIGSECRET,
                             secret_len, BIGSTRING, bigstring_len, hashbuf,
                             hblen);
-    FAILED(rval, "sc_check_keyed_hash().");
+    FAILED(rval, "sc_check_keyed_hash() return code");
 
     binary_to_hex(hashbuf, hblen, &s);
-    fprintf(stdout, "hash buffer (len=%d, request=%d):   %s\n",
+    printf("# hash buffer (len=%" NETSNMP_PRIz "u, request=%d):   %s\n",
             hblen, hashbuf_len[mlcount], s);
     SNMP_FREE(s);
 
-    SUCCESS("Keyed hash test using MD5.");
 
 
-
-    OUTPUT("Keyed hash test using SHA1 --");
+    OUTPUT("Starting Keyed hash test using SHA1 --");
 
     memset(hashbuf, 0, LOCAL_MAXBUF);
     hblen = hashbuf_len[mlcount];
@@ -389,7 +365,7 @@
                                USM_LENGTH_OID_TRANSFORM, BIGSECRET,
                                secret_len, BIGSTRING, bigstring_len,
                                hashbuf, &hblen);
-    FAILED(rval, "sc_generate_keyed_hash().");
+    FAILED(rval, "sc_generate_keyed_hash() return code");
 
     if (hashbuf_len[mlcount] > properlength) {
         if (hblen != properlength) {
@@ -406,17 +382,15 @@
                             USM_LENGTH_OID_TRANSFORM, BIGSECRET,
                             secret_len, BIGSTRING, bigstring_len, hashbuf,
                             hblen);
-    FAILED(rval, "sc_check_keyed_hash().");
+    FAILED(rval, "sc_check_keyed_hash() return code");
 
     binary_to_hex(hashbuf, hblen, &s);
-    fprintf(stdout, "hash buffer (len=%d, request=%d):   %s\n",
+    printf("# hash buffer (len=%" NETSNMP_PRIz "u, request=%d):   %s\n",
             hblen, hashbuf_len[mlcount], s);
     SNMP_FREE(s);
 
     SUCCESS("Keyed hash test using SHA1.");
 
-
-
     /*
      * Run the basic hash tests but vary the size MAC requests.
      */
@@ -443,17 +417,17 @@
 test_docrypt(void)
 {
     int             rval = SNMPERR_SUCCESS,
-        failcount = 0,
-        bigstring_len = strlen(BIGSTRING),
+        bigstring_len = strlen((const char *) BIGSTRING),
         secret_len = BYTESIZE(SNMP_TRANS_PRIVLEN_1DES),
         iv_len = BYTESIZE(SNMP_TRANS_PRIVLEN_1DES_IV);
 
-    u_int           buf_len = LOCAL_MAXBUF, cryptbuf_len = LOCAL_MAXBUF;
+    size_t          buf_len = LOCAL_MAXBUF;
+    size_t          cryptbuf_len = LOCAL_MAXBUF;
 
-    char            buf[LOCAL_MAXBUF],
+    u_char            buf[LOCAL_MAXBUF],
         cryptbuf[LOCAL_MAXBUF], secret[LOCAL_MAXBUF], iv[LOCAL_MAXBUF];
 
-    OUTPUT("Test 1DES-CBC --");
+    OUTPUT("Starting Test 1DES-CBC --");
 
 
     memset(buf, 0, LOCAL_MAXBUF);
@@ -461,29 +435,25 @@
     memcpy(secret, BIGSECRET, secret_len);
     memcpy(iv, BKWDSECRET, iv_len);
 
-
     rval = sc_encrypt(usmDESPrivProtocol, USM_LENGTH_OID_TRANSFORM,
                       secret, secret_len,
                       iv, iv_len,
                       BIGSTRING, bigstring_len, cryptbuf, &cryptbuf_len);
-    FAILED(rval, "sc_encrypt().");
+    FAILED(rval, "sc_encrypt() return code.");
 
     rval = sc_decrypt(usmDESPrivProtocol, USM_LENGTH_OID_TRANSFORM,
                       secret, secret_len,
                       iv, iv_len, cryptbuf, cryptbuf_len, buf, &buf_len);
-    FAILED(rval, "sc_decrypt().");
+    FAILED(rval, "sc_decrypt() return code.");
 
-    if (buf_len != bigstring_len) {
-        FAILED(SNMPERR_GENERR, "Decrypted buffer is the wrong length.");
-    }
-    if (memcmp(buf, BIGSTRING, bigstring_len)) {
-        FAILED(SNMPERR_GENERR,
-               "Decrypted buffer is not equal to original plaintext.");
-    }
+    /* ignore the pad */
+    buf_len -= buf[buf_len-1];
 
+    FAILED((buf_len != bigstring_len), "Decrypted buffer is the right length.");
+    printf("# original length: %d\n", bigstring_len);
+    printf("# output   length: %" NETSNMP_PRIz "u\n", buf_len);
 
-    SUCCESS("Test 1DES-CBC --");
-
+    FAILED((memcmp(buf, BIGSTRING, bigstring_len) != 0),
+           "Decrypted buffer is the same as the original plaintext.");
     return failcount;
-
 }                               /* end test_docrypt() */
diff --git a/testing/fulltests/snmpv3/T020hashtests_capp.c b/testing/fulltests/snmpv3/T020hashtests_capp.c
new file mode 100644
index 0000000..9cb5b47
--- /dev/null
+++ b/testing/fulltests/snmpv3/T020hashtests_capp.c
@@ -0,0 +1,117 @@
+/* HEADER testing SCAPI hashing functions */
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+
+#include <stdio.h>
+
+void print_hash(const char *label, u_char *MAC, size_t MAC_LEN);
+
+
+int
+main(int argc, char **argv) {
+    u_char buf[] = "wes hardaker";
+    u_char MAC[20];
+    size_t MAC_LEN = 20;
+    u_char sha1key[20] = "55555555555555555555";
+    u_char md5key[16] = "5555555555555555";
+
+    u_char sha1proper[20] = { 0x4a, 0x55, 0x2f, 0x65, 0x79, 0x3a, 0x49, 0x35,
+                              0x37, 0x91, 0x51, 0x1d,
+                              0xa0, 0x8c, 0x7a, 0x45, 0x50, 0x34, 0xd4, 0x23};
+    u_char md5proper[16] = { 0xe5, 0x92, 0xfa, 0x4b, 0x06, 0xe6, 0x27, 0xd7,
+                             0xc8, 0x18, 0xfa, 0x7a,
+                             0xd0, 0x82, 0xeb, 0x66};
+    int result;
+    
+    printf("1..2\n");
+
+    memset(MAC, 0, MAC_LEN);
+    sc_hash(usmHMACSHA1AuthProtocol, OID_LENGTH(usmHMACSHA1AuthProtocol),
+            buf, sizeof(buf)-1,
+            MAC, &MAC_LEN);
+
+    print_hash("sha1 hash", MAC, MAC_LEN);
+
+    memset(MAC, 0, MAC_LEN);
+    sc_hash(usmHMACMD5AuthProtocol, OID_LENGTH(usmHMACMD5AuthProtocol),
+            buf, sizeof(buf)-1,
+            MAC, &MAC_LEN);
+
+    print_hash("md5 hash", MAC, MAC_LEN);
+
+    MAC_LEN = 20;
+    sc_generate_keyed_hash(usmHMACSHA1AuthProtocol,
+                           OID_LENGTH(usmHMACSHA1AuthProtocol),
+                           sha1key, sizeof(sha1key),
+                           buf, sizeof(buf)-1,
+                           MAC, &MAC_LEN);
+
+    print_hash("sha1 keyed", MAC, MAC_LEN);
+
+    result =
+        sc_check_keyed_hash(usmHMACSHA1AuthProtocol,
+                            OID_LENGTH(usmHMACSHA1AuthProtocol),
+                            sha1key, sizeof(sha1key),
+                            buf, sizeof(buf)-1,
+                            sha1proper, 12);
+    if (0 == result) {
+        printf("ok: 1 - sha1 keyed compare was equal\n");
+    } else {
+        printf("not ok: 1 - sha1 keyed compare was not equal\n");
+    }
+    
+
+    MAC_LEN = 16;
+    sc_generate_keyed_hash(usmHMACMD5AuthProtocol,
+                           OID_LENGTH(usmHMACMD5AuthProtocol),
+                           md5key, sizeof(md5key),
+                           buf, sizeof(buf)-1,
+                           MAC, &MAC_LEN);
+
+    print_hash("md5 keyed", MAC, MAC_LEN);
+
+
+    MAC_LEN = 16;
+    result =
+        sc_check_keyed_hash(usmHMACMD5AuthProtocol,
+                            OID_LENGTH(usmHMACMD5AuthProtocol),
+                            md5key, sizeof(md5key),
+                            buf, sizeof(buf)-1,
+                            md5proper, 12);
+
+    if (0 == result) {
+        printf("ok: 2 - md5 keyed compare was equal\n");
+    } else {
+        printf("not ok: 2 - md5 keyed compare was not equal\n");
+    }
+
+    MAC_LEN = 20;
+    memset(MAC, 0, MAC_LEN);
+    generate_Ku(usmHMACSHA1AuthProtocol,
+                OID_LENGTH(usmHMACSHA1AuthProtocol),
+                buf, sizeof(buf)-1,
+                MAC, &MAC_LEN);
+    print_hash("sha1 Ku", MAC, MAC_LEN);
+
+    MAC_LEN = 16;
+    memset(MAC, 0, MAC_LEN);
+    generate_Ku(usmHMACMD5AuthProtocol,
+                OID_LENGTH(usmHMACMD5AuthProtocol),
+                buf, sizeof(buf)-1,
+                MAC, &MAC_LEN);
+    print_hash("md5 Ku", MAC, MAC_LEN);
+
+    /* XXX: todo: compare results and ensure they're always the same
+       values; the algorithms aren't time-dependent. */
+    return (0);
+}
+
+void
+print_hash(const char *label, u_char *MAC, size_t MAC_LEN) {
+    int i;
+    printf("# %-10s %" NETSNMP_PRIz "u:\n", label, MAC_LEN);
+    for(i=0; i < MAC_LEN; i++) {
+        printf("# %02x ", MAC[i]);
+    }
+    printf("\n");
+}    
diff --git a/testing/keymanagetest.c b/testing/fulltests/snmpv3/T040keymanagetest_capp.c
similarity index 70%
rename from testing/keymanagetest.c
rename to testing/fulltests/snmpv3/T040keymanagetest_capp.c
index d9a1aa8..3e0fd58 100644
--- a/testing/keymanagetest.c
+++ b/testing/fulltests/snmpv3/T040keymanagetest_capp.c
@@ -1,6 +1,8 @@
 /*
  * keymanagetest.c
  *
+ * HEADER Testing key management API functionality
+ *
  * Expected SUCCESSes:  2 + 2 + 3 for all tests.
  *
  * Returns:
@@ -18,29 +20,34 @@
  * Test of {encode,decode}_keychange().         SUCCESSes: 3
  */
 
-static char    *rcsid = "$Id$";        /* */
-
 #include <net-snmp/net-snmp-config.h>
 
 #include <stdio.h>
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
 #ifdef HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
 
-#include "asn1.h"
-#include "snmp_api.h"
-#include "keytools.h"
-#include "tools.h"
-#include "scapi.h"
-#include "transform_oids.h"
-#include "callback.h"
+#include <unistd.h>
+#include <ctype.h>
+
+#include <net-snmp/library/asn1.h>
+#include <net-snmp/library/snmp_api.h>
+#include <net-snmp/library/keytools.h>
+#include <net-snmp/library/tools.h>
+#include <net-snmp/library/scapi.h>
+#include <net-snmp/library/transform_oids.h>
+#include <net-snmp/library/callback.h>
 
 #include <stdlib.h>
 
 extern char    *optarg;
 extern int      optind, optopt, opterr;
 
-
+int testcount = 0;
 
 /*
  * Globals, &c...
@@ -58,24 +65,27 @@
 #define LOCAL_MAXBUF	(1024 * 8)
 #define NL		"\n"
 
-#define OUTPUTALWAYS(o)	fprintf(stdout, "\n\n%s\n\n", o);
+#define OUTPUTALWAYS(o)	fprintf(stdout, "# %s\n", o);
 #define OUTPUT(o)	if (!bequiet) { OUTPUTALWAYS(o); }
 
 #define SUCCESS(s)					\
 {							\
-	if (!failcount && !bequiet)					\
-		fprintf(stdout, "\nSUCCESS: %s\n", s);	\
+    fprintf(stdout, "# Done with %s\n", s);             \
 }
 
-#define FAILED(e, f)					\
-{							\
-	if (e != SNMPERR_SUCCESS && !bequiet) {			\
-		fprintf(stdout, "\nFAILED: %s\n", f);	\
-		failcount += 1;				\
-	}						\
+#define FAILED(e, f)                                                    \
+{                                                                       \
+    if ((e) != SNMPERR_SUCCESS) {                                       \
+                fprintf(stdout, "not ok: %d - %s\n", ++testcount, f);	\
+		failcount += 1;                                         \
+	} else {                                                        \
+                fprintf(stdout, "ok: %d - %s\n", ++testcount, f);	\
+        }                                                               \
+    fflush(stdout); \
 }
 
-
+#define DETAILINT(s, i) \
+    fprintf(stdout, "# %s: %d\n", s, i);
 
 /*
  * Test specific globals.
@@ -86,10 +96,10 @@
 #define OLDKEY_DEFAULT		"This is a very old key."
 #define NEWKEY_DEFAULT		"This key, on the other hand, is very new."
 
-char           *engineID = NULL;
+u_char         *engineID = NULL;
 char           *passphrase = NULL;
-char           *oldkey = NULL;
-char           *newkey = NULL;
+const u_char   *oldkey = NULL;
+const u_char   *newkey = NULL;
 int             bequiet = 0;
 
 
@@ -123,7 +133,7 @@
             doalltests = 1;
             break;
         case 'E':
-            engineID = optarg;
+            engineID = (u_char *) optarg;
             break;
         case 'k':
             dokeychange = 1;
@@ -132,10 +142,10 @@
             dogenkul = 1;
             break;
         case 'N':
-            newkey = optarg;
+            newkey = (u_char *) optarg;
             break;
         case 'O':
-            oldkey = optarg;
+            oldkey = (u_char *) optarg;
             break;
         case 'P':
             passphrase = optarg;
@@ -169,8 +179,7 @@
         exit(1000);
 
     } else if (ALLOPTIONS != 1) {
-        usage(stdout);
-        exit(1000);
+        doalltests = 1;
     }
 
 
@@ -190,14 +199,7 @@
         failcount += test_keychange();
     }
 
-
-    /*
-     * Cleanup.
-     */
-    rval = sc_shutdown(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_SHUTDOWN,
-                       NULL, NULL);
-    FAILED(rval, "sc_shutdown().");
-
+    fprintf(stdout, "1..%d\n", testcount);
     return failcount;
 
 }                               /* end main() */
@@ -251,7 +253,7 @@
 {
     int             rval = SNMPERR_SUCCESS, failcount = 0;
 
-    EM0(1, "UNIMPLEMENTED");    /* EM(1); /* */
+    EM0(1, "UNIMPLEMENTED");    /* EM(1); */
 
   test_dosomething_quit:
     return failcount;
@@ -277,8 +279,10 @@
 {
     int             rval = SNMPERR_SUCCESS,
         failcount = 0,
-        properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACMD5), kulen;
-    char           *hashname = "usmHMACMD5AuthProtocol.", *s;
+        properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACMD5);
+    size_t          kulen;
+    const char     *hashname = "usmHMACMD5AuthProtocol.";
+    char           *s;
     u_char          Ku[LOCAL_MAXBUF];
     oid            *hashtype = usmHMACMD5AuthProtocol;
 
@@ -288,11 +292,11 @@
      * Set passphrase.
      */
     if (!passphrase) {
-        passphrase = PASSPHRASE_DEFAULT;
+        passphrase = strdup(PASSPHRASE_DEFAULT);
     }
     if (!bequiet)
-        fprintf(stdout, "Passphrase%s:\n\t%s\n\n",
-                (passphrase == PASSPHRASE_DEFAULT) ? " (default)" : "",
+        fprintf(stdout, "Passphrase%s: %s\n",
+                (strcmp(passphrase, PASSPHRASE_DEFAULT) == 0) ? " (default)" : "",
                 passphrase);
 
 
@@ -301,21 +305,19 @@
     kulen = LOCAL_MAXBUF;
 
     rval = generate_Ku(hashtype, USM_LENGTH_OID_TRANSFORM,
-                       passphrase, strlen(passphrase), Ku, &kulen);
+                       (const u_char *) passphrase, strlen(passphrase),
+                       Ku, &kulen);
     FAILED(rval, "generate_Ku().");
 
-    if (kulen != properlength) {
-        FAILED(SNMPERR_GENERR, "Ku length is wrong for this hashtype.");
-    }
+    FAILED((kulen != properlength),
+           "Ku length is the right length for this hashtype.");
 
     binary_to_hex(Ku, kulen, &s);
     if (!bequiet)
-        fprintf(stdout, "Ku (len=%d):  %s\n", kulen, s);
+        fprintf(stdout, "# Ku (len=%" NETSNMP_PRIz "u):  %s\n", kulen, s);
     free_zero(s, kulen);
 
-    SUCCESS(hashname);
-    if (!bequiet)
-        fprintf(stdout, "\n");
+    OUTPUT(hashname);
 
     if (hashtype == usmHMACMD5AuthProtocol) {
         hashtype = usmHMACSHA1AuthProtocol;
@@ -352,11 +354,12 @@
 {
     int             rval = SNMPERR_SUCCESS,
         failcount = 0,
-        properlength, kulen, kul_len, engineID_len, isdefault = FALSE;
+        properlength, engineID_len, isdefault = FALSE;
 
-    char           *s = NULL,
-        *testname = "Using HMACMD5 to create master key.",
-        *hashname_Ku = "usmHMACMD5AuthProtocol", *hashname_kul;
+    size_t          kulen, kul_len;
+    char           *s = NULL;
+    const char *testname = "Using HMACMD5 to create master key.";
+    const char *hashname_Ku = "usmHMACMD5AuthProtocol";
 
     u_char          Ku[LOCAL_MAXBUF], kul[LOCAL_MAXBUF];
 
@@ -364,7 +367,6 @@
 
     OUTPUT("Test of generate_kul --");
 
-
     /*
      * Set passphrase and engineID.
      *
@@ -372,34 +374,33 @@
      * hex and convert it to binary data.
      */
     if (!passphrase) {
-        passphrase = PASSPHRASE_DEFAULT;
+        passphrase = strdup(PASSPHRASE_DEFAULT);
     }
     if (!bequiet)
-        fprintf(stdout, "Passphrase%s:\n\t%s\n\n",
-                (passphrase == PASSPHRASE_DEFAULT) ? " (default)" : "",
+        fprintf(stdout, "# Passphrase%s: %s\n",
+                (strcmp(passphrase, PASSPHRASE_DEFAULT) == 0) ? " (default)" : "",
                 passphrase);
 
     if (!engineID) {
-        engineID = ENGINEID_DEFAULT;
+        engineID = (u_char *) strdup(ENGINEID_DEFAULT);
         isdefault = TRUE;
     }
 
-    engineID_len = strlen(engineID);
+    engineID_len = strlen((char *) engineID);
 
     if (tolower(*(engineID + 1)) == 'x') {
-        engineID_len = hex_to_binary2(engineID + 2, engineID_len - 2, &s);
-        if (engineID_len < 0) {
-            FAILED((rval = SNMPERR_GENERR),
-                   "Could not resolve hex engineID.");
-        }
-        engineID = s;
+        engineID_len =
+            hex_to_binary2(engineID + 2, engineID_len - 2, &s);
+        FAILED((engineID_len < 0),
+               "Could not resolve hex engineID.");
+        engineID = (u_char *) s;
         binary_to_hex(engineID, engineID_len, &s);
     }
 
     if (!bequiet)
-        fprintf(stdout, "engineID%s (len=%d):  %s\n\n",
+        fprintf(stdout, "# engineID%s (len=%d):  %s\n",
                 (isdefault) ? " (default)" : "",
-                engineID_len, (s) ? s : engineID);
+                engineID_len, ((s != 0) ? ((u_char *) s) : engineID));
     if (s) {
         SNMP_FREE(s);
     }
@@ -413,19 +414,18 @@
   test_genkul_again_master:
     memset(Ku, 0, LOCAL_MAXBUF);
     kulen = LOCAL_MAXBUF;
-    hashname_kul = "usmHMACMD5AuthProtocol";
     hashtype_kul = usmHMACMD5AuthProtocol;
     properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACMD5);
 
 
     rval = generate_Ku(hashtype_Ku, USM_LENGTH_OID_TRANSFORM,
-                       passphrase, strlen(passphrase), Ku, &kulen);
+                       (u_char *) passphrase, strlen(passphrase), Ku, &kulen);
     FAILED(rval, "generate_Ku().");
 
     binary_to_hex(Ku, kulen, &s);
     if (!bequiet)
         fprintf(stdout,
-                "\n\nMaster Ku using \"%s\":\n\t%s\n\n", hashname_Ku, s);
+                "# Master Ku using \"%s\": \t%s\n", hashname_Ku, s);
     free_zero(s, kulen);
 
 
@@ -438,22 +438,17 @@
 
     if ((hashtype_Ku == usmHMACMD5AuthProtocol)
         && (hashtype_kul == usmHMACSHA1AuthProtocol)) {
-        if (rval == SNMPERR_SUCCESS) {
-            FAILED(SNMPERR_GENERR,
-                   "generate_kul SHOULD fail when Ku length is "
-                   "less than hash transform length.");
-        }
-
+        FAILED((rval == SNMPERR_SUCCESS),
+               "generate_kul SHOULD fail when Ku length is "
+               "less than hash transform length.");
     } else {
         FAILED(rval, "generate_kul().");
 
-        if (kul_len != properlength) {
-            FAILED(SNMPERR_GENERR,
-                   "kul length is wrong for the given hashtype.");
-        }
+        FAILED(kul_len != properlength,
+               "checking if kul length is right for the given hashtype.");
 
         binary_to_hex(kul, kul_len, &s);
-        fprintf(stdout, "kul (%s) (len=%d):  %s\n",
+        fprintf(stdout, "# kul (%s) (len=%" NETSNMP_PRIz "u):  %s\n",
                 ((hashtype_Ku == usmHMACMD5AuthProtocol) ? "MD5" : "SHA"),
                 kul_len, s);
         free_zero(s, kul_len);
@@ -466,7 +461,6 @@
      */
     if (hashtype_kul == usmHMACMD5AuthProtocol) {
         hashtype_kul = usmHMACSHA1AuthProtocol;
-        hashname_kul = "usmHMACSHA1AuthProtocol";
         properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACSHA1);
         goto test_genkul_again_local;
     }
@@ -510,10 +504,11 @@
         properlength = BYTESIZE(SNMP_TRANS_AUTHLEN_HMACMD5),
         oldkey_len,
         newkey_len,
-        keychange_len,
-        temp_len, isdefault_new = FALSE, isdefault_old = FALSE;
+        isdefault_new = FALSE, isdefault_old = FALSE;
+    size_t          keychange_len, temp_len;
 
-    char           *hashname = "usmHMACMD5AuthProtocol.", *s;
+    const char     *hashname = "usmHMACMD5AuthProtocol.";
+    char           *s;
 
     u_char          oldkey_buf[LOCAL_MAXBUF],
         newkey_buf[LOCAL_MAXBUF],
@@ -528,34 +523,32 @@
      * Set newkey and oldkey.
      */
     if (!newkey) {              /* newkey */
-        newkey = NEWKEY_DEFAULT;
+        newkey = (const u_char *) NEWKEY_DEFAULT;
         isdefault_new = TRUE;
     }
-    newkey_len = strlen(newkey);
+    newkey_len = strlen((const char *) newkey);
 
     if (tolower(*(newkey + 1)) == 'x') {
-        newkey_len = hex_to_binary2(newkey + 2, newkey_len - 2, &s);
-        if (newkey_len < 0) {
-            FAILED((rval = SNMPERR_GENERR),
-                   "Could not resolve hex newkey.");
-        }
-        newkey = s;
-        binary_to_hex(newkey, newkey_len, &s);
+        newkey_len = hex_to_binary2((const u_char *) newkey + 2,
+                                    newkey_len - 2, &s);
+        FAILED(newkey_len < 0,
+               "Could not resolve hex newkey.");
+        newkey = (const u_char *) s;
+        binary_to_hex((const u_char *) newkey, newkey_len, &s);
     }
 
     if (!oldkey) {              /* oldkey */
-        oldkey = OLDKEY_DEFAULT;
+        oldkey = (const u_char *) OLDKEY_DEFAULT;
         isdefault_old = TRUE;
     }
-    oldkey_len = strlen(oldkey);
+    oldkey_len = strlen((const char *) oldkey);
 
     if (tolower(*(oldkey + 1)) == 'x') {
-        oldkey_len = hex_to_binary2(oldkey + 2, oldkey_len - 2, &s);
-        if (oldkey_len < 0) {
-            FAILED((rval = SNMPERR_GENERR),
-                   "Could not resolve hex oldkey.");
-        }
-        oldkey = s;
+        oldkey_len = hex_to_binary2((const u_char *) oldkey + 2,
+                                    oldkey_len - 2, &s);
+        FAILED(oldkey_len < 0,
+               "Could not resolve hex oldkey.");
+        oldkey = (const u_char *) s;
         binary_to_hex(oldkey, oldkey_len, &s);
     }
 
@@ -573,12 +566,12 @@
 
 
     binary_to_hex(oldkey_buf, properlength, &s);
-    fprintf(stdout, "\noldkey%s (len=%d):  %s\n",
+    fprintf(stdout, "# oldkey%s (len=%d):  %s\n",
             (isdefault_old) ? " (default)" : "", properlength, s);
     SNMP_FREE(s);
 
     binary_to_hex(newkey_buf, properlength, &s);
-    fprintf(stdout, "newkey%s (len=%d):  %s\n\n",
+    fprintf(stdout, "# newkey%s (len=%d):  %s\n",
             (isdefault_new) ? " (default)" : "", properlength, s);
     SNMP_FREE(s);
 
@@ -589,14 +582,12 @@
                             keychange_buf, &keychange_len);
     FAILED(rval, "encode_keychange().");
 
-    if (keychange_len != (properlength * 2)) {
-        FAILED(SNMPERR_GENERR,
-               "KeyChange string (encoded) is not proper length "
-               "for this hash transform.");
-    }
+    FAILED(keychange_len != (properlength * 2),
+           "KeyChange string (encoded) is not proper length "
+           "for this hash transform.");
 
     binary_to_hex(keychange_buf, keychange_len, &s);
-    fprintf(stdout, "(%s) KeyChange string:  %s\n\n",
+    fprintf(stdout, "# (%s) KeyChange string:  %s\n",
             ((hashtype == usmHMACMD5AuthProtocol) ? "MD5" : "SHA"), s);
     SNMP_FREE(s);
 
@@ -607,24 +598,20 @@
                             temp_buf, &temp_len);
     FAILED(rval, "decode_keychange().");
 
-    if (temp_len != properlength) {
-        FAILED(SNMPERR_GENERR,
-               "decoded newkey is not proper length for "
-               "this hash transform.");
-    }
+    FAILED(temp_len != properlength,
+           "decoded newkey is not proper length for "
+           "this hash transform.");
 
     binary_to_hex(temp_buf, temp_len, &s);
-    fprintf(stdout, "decoded newkey:  %s\n\n", s);
+    fprintf(stdout, "# decoded newkey:  %s\n", s);
     SNMP_FREE(s);
 
 
-    if (memcmp(newkey_buf, temp_buf, temp_len)) {
-        FAILED(SNMPERR_GENERR, "newkey did not decode properly.");
-    }
+    FAILED(memcmp(newkey_buf, temp_buf, temp_len),
+           "newkey did not decode properly.");
 
 
     SUCCESS(hashname);
-    fprintf(stdout, "\n");
 
 
     /*
diff --git a/testing/etimetest.c b/testing/fulltests/snmpv3/T050etimetest_capp.c
similarity index 68%
rename from testing/etimetest.c
rename to testing/fulltests/snmpv3/T050etimetest_capp.c
index 5e7d3d5..53951aa 100644
--- a/testing/etimetest.c
+++ b/testing/fulltests/snmpv3/T050etimetest_capp.c
@@ -1,6 +1,8 @@
 /*
  * etimetest.c
  *
+ * HEADER Testing engineID hashing and timing
+ *
  * Expected SUCCESSes for all tests:    3
  *
  * Returns:
@@ -12,9 +14,6 @@
  * FIX  Devise a test for {set,get}_enginetime(..., FALSE).
  */
 
-static char    *rcsid = "$Id$";    /* */
-
-
 #include <net-snmp/net-snmp-config.h>
 
 #include <stdio.h>
@@ -22,16 +21,23 @@
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
 #ifdef HAVE_NETINET_IN_H
 #include <netinet/in.h>
 #endif
 
-#include "asn1.h"
-#include "snmp_api.h"
-#include "tools.h"
-#include "lcd_time.h"
-#include "snmp_debug.h"
-#include "callback.h"
+#include <unistd.h>
+
+#include <net-snmp/library/asn1.h>
+#include <net-snmp/library/snmp_api.h>
+#include <net-snmp/library/scapi.h>
+#include <net-snmp/library/tools.h>
+#include <net-snmp/library/lcd_time.h>
+#include <net-snmp/library/snmp_debug.h>
+#include <net-snmp/library/callback.h>
 
 static u_int    dummy_etime, dummy_eboot;       /* For ISENGINEKNOWN(). */
 
@@ -41,7 +47,7 @@
 extern char    *optarg;
 extern int      optind, optopt, opterr;
 
-
+int             testcount=0;
 
 /*
  * Globals, &c...
@@ -60,28 +66,31 @@
 #define LOCAL_MAXBUF	(1024 * 8)
 #define NL		"\n"
 
-#define OUTPUT(o)	fprintf(stdout, "\n\n%s\n\n", o);
+#define OUTPUT(o)	fprintf(stdout, "# %s\n", o);
 
 #define SUCCESS(s)					\
 {							\
-	if (!failcount)					\
-		fprintf(stdout, "\nSUCCESS: %s\n", s);	\
+    fprintf(stdout, "# Done with %s\n", s);             \
 }
 
-#define FAILED(e, f)					\
-{							\
-	if (e != SNMPERR_SUCCESS) {			\
-		fprintf(stdout, "\nFAILED: %s\n", f);	\
-		failcount += 1;				\
-	}						\
+#define FAILED(e, f)                                                    \
+{                                                                       \
+    if (e != SNMPERR_SUCCESS) {                                         \
+                fprintf(stdout, "not ok: %d - %s\n", ++testcount, f);	\
+		failcount += 1;                                         \
+	} else {                                                        \
+                fprintf(stdout, "ok: %d - %s\n", ++testcount, f);	\
+        }                                                               \
+    fflush(stdout); \
 }
 
-
+#define DETAILINT(s, i) \
+    fprintf(stdout, "# %s: %d\n", s, i);
 
 /*
  * Global variables.
  */
-int             sleeptime = 7;
+int             sleeptime = 2;
 
 #define BLAT "alk;djf;an riu;alicenmrul;aiknglksajhe1 adcfalcenrco2"
 
@@ -151,13 +160,13 @@
         exit(1000);
 
     } else if (ALLOPTIONS != 1) {
-        usage(stdout);
-        exit(1000);
+        doalltests = 1;
     }
 
+    init_snmp("testing");
 
     /*
-     * Test stuff.
+     * test stuff.
      */
     rval = sc_init();
     FAILED(rval, "sc_init()");
@@ -171,15 +180,8 @@
     }
 
 
-    /*
-     * Cleanup.
-     */
-    rval = sc_shutdown(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_SHUTDOWN,
-                       NULL, NULL);
-    FAILED(rval, "sc_shutdown()");
-
-    return failcount;
-
+    fprintf(stdout, "1..%d\n", testcount);
+    return 0;
 }                               /* end main() */
 
 
@@ -246,28 +248,28 @@
 {
     int                         /* rval = SNMPERR_SUCCESS,  */
                     failcount = 0;
-    char           *s;
+    const u_char     *s;
 
     OUTPUT("Visual spot check of hash index outputs.  "
            "(Success or failure not noted.)");
 
-    s = "A";
-    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));
+    s = (const u_char *) " A";
+    fprintf(stdout, "# %s = %d\n", s, hash_engineID(s, strlen((const char *) s)));
 
-    s = "BB";
-    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));
+    s = (const u_char *) " BB";
+    fprintf(stdout, "# %s = %d\n", s, hash_engineID(s, strlen((const char *) s)));
 
-    s = "CCC";
-    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));
+    s = (const u_char *) " CCC";
+    fprintf(stdout, "# %s = %d\n", s, hash_engineID(s, strlen((const char *) s)));
 
-    s = "DDDD";
-    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));
+    s = (const u_char *) " DDDD";
+    fprintf(stdout, "# %s = %d\n", s, hash_engineID(s, strlen((const char *) s)));
 
-    s = "EEEEE";
-    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));
+    s = (const u_char *) " EEEEE";
+    fprintf(stdout, "# %s = %d\n", s, hash_engineID(s, strlen((const char *) s)));
 
-    s = BLAT;
-    fprintf(stdout, "%s = %d\n", s, hash_engineID(s, strlen(s)));
+    s = (const u_char *) BLAT;
+    fprintf(stdout, "# %s = %d\n", s, hash_engineID(s, strlen((const char *) s)));
 
 
     OUTPUT("Visual spot check -- DONE.");
@@ -300,17 +302,17 @@
     OUTPUT("Query of empty list, two set actions.");
 
 
-    rval = ISENGINEKNOWN("A", 1);
+    rval = ISENGINEKNOWN((const u_char *) "A", 1);
     if (rval == TRUE) {
         FAILED(SNMPERR_GENERR, "Query of empty list returned TRUE.")
     }
 
 
-    rval = set_enginetime("BB", 2, 2, 20, TRUE);
+    rval = set_enginetime((const u_char *) "BB", 2, 2, 20, TRUE);
     FAILED(rval, "set_enginetime()");
 
 
-    rval = set_enginetime("CCC", 3, 31, 90127, TRUE);
+    rval = set_enginetime((const u_char *) "CCC", 3, 31, 90127, TRUE);
     FAILED(rval, "set_enginetime()");
 
 
@@ -324,11 +326,11 @@
     OUTPUT("Add entries using macros, test for existence with macros.");
 
 
-    rval = ENSURE_ENGINE_RECORD("DDDD", 4);
+    rval = ENSURE_ENGINE_RECORD((const u_char *) "DDDD", 4);
     FAILED(rval, "ENSURE_ENGINE_RECORD()");
 
 
-    rval = MAKENEW_ENGINE_RECORD("EEEEE", 5);
+    rval = MAKENEW_ENGINE_RECORD((const u_char *) "EEEEE", 5);
     if (rval == SNMPERR_SUCCESS) {
         FAILED(rval,
                "MAKENEW_ENGINE_RECORD returned success for "
@@ -336,7 +338,7 @@
     }
 
 
-    rval = MAKENEW_ENGINE_RECORD("BB", 2);
+    rval = MAKENEW_ENGINE_RECORD((const u_char *) "BB", 2);
     FAILED(rval, "MAKENEW_ENGINE_RECORD().");
 
 
@@ -354,13 +356,10 @@
     dump_etimelist();
 #endif
 
-    fprintf(stdout, "\nSleeping for %d second%s... ",
+    fprintf(stdout, "# Sleeping for %d second%s... ",
             sleeptime, (sleeptime == 1) ? "" : "s");
-    fflush(stdout);
 
     sleep(sleeptime);
-    fprintf(stdout, "\n");
-
 
 
     /*
@@ -371,30 +370,30 @@
 
 
 
-    rval = get_enginetime("BB", 2, &eboot, &etime, TRUE);
+    rval = get_enginetime((const u_char *) "BB", 2, &eboot, &etime, TRUE);
     FAILED(rval, "get_enginetime().");
 
-    fprintf(stdout, "BB = <%d,%d>\n", eboot, etime);
+    fprintf(stdout, "# BB = <%d,%d>\n", eboot, etime);
     if ((etime < 20) || (eboot < 2)) {
         FAILED(SNMPERR_GENERR,
                "get_enginetime() returned bad values.  (1)");
     }
 
-    rval = get_enginetime("DDDD", 4, &eboot, &etime, FALSE);
+    rval = get_enginetime((const u_char *) "DDDD", 4, &eboot, &etime, FALSE);
     FAILED(rval, "get_enginetime().");
 
-    fprintf(stdout, "DDDD = <%d,%d>\n", eboot, etime);
+    fprintf(stdout, "# DDDD = <%d,%d>\n", eboot, etime);
     if ((etime < sleeptime) || (eboot != 0)) {
         FAILED(SNMPERR_GENERR,
                "get_enginetime() returned bad values.  (2)");
     }
 
 
-    rval = set_enginetime("CCC", 3, 234, 10000, TRUE);
+    rval = set_enginetime((const u_char *) "CCC", 3, 234, 10000, TRUE);
     FAILED(rval, "set_enginetime().");
 
 
-    rval = set_enginetime("EEEEE", 5, 9876, 55555, TRUE);
+    rval = set_enginetime((const u_char *) "EEEEE", 5, 9876, 55555, TRUE);
     FAILED(rval, "set_enginetime().");
 
 
@@ -407,12 +406,10 @@
      */
     OUTPUT("Sleep again, then dump the list one last time.");
 
-    fprintf(stdout, "Sleeping for %d second%s... ",
+    fprintf(stdout, "# Sleeping for %d second%s...\n",
             sleeptime, (sleeptime == 1) ? "" : "s");
-    fflush(stdout);
 
     sleep(sleeptime);
-    fprintf(stdout, "\n");
 
 #ifdef NETSNMP_ENABLE_TESTING_CODE
     dump_etimelist();
diff --git a/testing/fulltests/support/NetSNMPTest.pm b/testing/fulltests/support/NetSNMPTest.pm
new file mode 100644
index 0000000..e4ac040
--- /dev/null
+++ b/testing/fulltests/support/NetSNMPTest.pm
@@ -0,0 +1,172 @@
+package NetSNMPTest;
+
+use File::Temp qw(tempfile tempdir);
+use IO::File;
+use Data::Dumper;
+use strict;
+
+sub new {
+    my $type = shift;
+    my ($class) = ref($type) || $type;
+    my $self = {};
+    %$self = @_;
+    bless($self, $class);
+    $self->init();
+    return $self;
+}
+
+sub init {
+    my ($self) = @_;
+    $self->{'dir'} = tempdir();
+    print "# using tempdir $self->{dir}\n";
+
+    foreach my $suffix (qw(conf pid log out)) {
+	$self->{"snmpd.$suffix"} ||= $self->{'dir'} . "/snmpd.$suffix";
+    }
+    $self->{'snmp.conf'} ||= $self->{'dir'} . "/snmp.conf";
+
+    $self->{'confdir'} ||= $self->{'dir'};
+    $self->{'persistentdir'} ||= $self->{'dir'} . "/persistent";
+}
+
+sub config_file {
+    my ($self, $file, $string) = @_;
+    my $fh = new IO::File (">> $file");
+    $fh->print($string);
+    if ($string !~ /\n$/) {
+	$fh->print("\n");
+    }
+    $fh->close();
+}
+
+sub config_agent {
+    my ($self, $string) = @_;
+    $self->config_file($self->{'snmpd.conf'}, $string);
+}
+
+sub config_app {
+    my ($self, $string) = @_;
+    $self->config_file($self->{'snmp.conf'}, $string);
+}
+
+sub require_feature {
+    my ($self, $feature) = @_;
+    my $srcdir = $ENV{'srcdir'} || "..";
+    my $fh = new IO::File("$srcdir/include/net-snmp/net-snmp-config.h");
+    while (<$fh>) {
+	if (/#define $feature 1/) {
+	    $fh->close();
+	    return 1;
+	}
+    }
+    print "1..0 # SKIP missing $feature\n";
+    exit;
+}
+
+sub start_agent {
+    my ($self, $flags) = @_;
+
+    $flags ||= $self->{'snmpdflags'};
+
+    $ENV{'SNMPCONFPATH'} = $self->{'confdir'};
+    $ENV{'SNMP_PERSISTENT_DIR'} = $self->{'peristentdir'};
+
+    my $cmd = "snmpd $flags -r -U -p $self->{'snmpd.pid'} -Lf $self->{'snmpd.log'} $self->{'agentaddress'} > $self->{'snmpd.out'} 2>&1";
+    System("$cmd &");
+
+    sleep(1);
+
+    return $self->wait_for($self->{'snmpd.log'}, "NET-SNMP version");
+}
+
+sub stop_agent {
+    my ($self) = @_;
+    my $pidfile = new IO::File "$self->{'snmpd.pid'}";
+    my $pid = <$pidfile>;
+    kill("TERM", $pid);
+    $self->wait_for($self->{'snmpd.log'}, 'shutting down');
+}
+
+# returns 1 on success, 0 on failure
+sub wait_for {
+    my ($self, $filename, $regexp, $maxtime) = @_;
+    my $fh = new IO::File "$filename";
+    return 0 if (!$fh);
+
+    $maxtime = 10 if (!defined($maxtime));
+
+    my $timecount = 0;
+    # print "# reading from: $filename\n";
+    while (1) {
+	my $line = <$fh>;
+	# print "# line: $line\n";
+	if ($line eq "") {
+	    if ($timecount == $maxtime) {
+		return 0;
+	    }
+	    sleep(1);
+	    print "# sleeping ...\n";
+	    $fh->clearerr();
+	    $timecount++;
+	} else {
+	    chomp($line);
+	    if ($line =~ /$regexp/) {
+		return 1;
+	    }
+	}
+    }
+    return 0;
+}
+
+sub Debug {
+    print  "# " . join(" ",@_);
+}
+
+sub System {
+    my ($cmd) = @_;
+    Debug("running: ", $cmd, "\n");
+    system($cmd);
+}
+
+sub DIE {
+    my $self = shift;
+    $self->stop_agent();
+    die @_;
+}
+
+1;
+
+=pod
+
+=head1 NAME
+
+NetSNMPTest - simple testing module for testing perl tests
+
+=head1 USAGE
+
+use NetSNMPTest;
+use Test;
+use SNMP;
+
+my $destination = "udp:localhost:9876";
+
+my $test = new NetSNMPTest(agentaddress => $destination);
+
+$test->require_feature("SOME_IFDEF_FROM_NET_SNMP_CONFIG_H");
+
+$test->config_agent("rocommunity public");
+$test->config_agent("syscontact testvalue");
+$test->DIE("failed to start the agent") if (!$test->start_agent());
+
+my $session = new SNMP::Session(DestHost => $destination,
+                                Version => '2c',
+                                Community => 'public');
+
+my $value = $session->get('sysContact.0');
+plan(tests => 1);
+ok($value, 'testvalue');
+
+$test->stop_agent();
+
+=cut
+
diff --git a/testing/fulltests/support/cagentlib_build b/testing/fulltests/support/cagentlib_build
new file mode 100755
index 0000000..55a35ae
--- /dev/null
+++ b/testing/fulltests/support/cagentlib_build
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+# build the C test file ...
+
+rm -f "$2.c"
+cat >>"$2.c" <<EOF
+/* net-snmp standard headers */
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+
+/* testing specific header */
+#include <net-snmp/library/testing.h>
+
+/* standard headers */
+#include <stdio.h>
+#include <sys/types.h>
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+
+int
+main(int argc, char *argv[]) {
+
+EOF
+echo >>"$2.c" "#line 1 \"$1\""
+cat >>"$2.c" "$1"
+cat >>"$2.c" <<EOF
+
+   if (__did_plan == 0) {
+       PLAN(__test_counter);
+   }
+
+   return(0);
+}
+
+EOF
+
+# ... and compile it.
+${builddir}/libtool --mode=link `${builddir}/net-snmp-config --build-command` -I$builddir/include -I$srcdir/include -o $2 $2.c ${builddir}/snmplib/libnetsnmp.la ${builddir}/agent/libnetsnmpagent.la `${builddir}/net-snmp-config --external-libs`
+echo $2
diff --git a/testing/fulltests/support/cagentlib_run b/testing/fulltests/support/cagentlib_run
new file mode 100755
index 0000000..84f54e1
--- /dev/null
+++ b/testing/fulltests/support/cagentlib_run
@@ -0,0 +1,8 @@
+#!/bin/sh
+${DYNAMIC_ANALYZER} ${builddir}/libtool --mode=execute "$1" 2>&1 \
+| \
+if [ "x$SNMP_SAVE_TMPDIR" = "xyes" ]; then
+  tee "/tmp/snmp-unit-test-`basename $1`"
+else
+  cat
+fi
diff --git a/testing/fulltests/support/capp_build b/testing/fulltests/support/capp_build
new file mode 100755
index 0000000..dc038c6
--- /dev/null
+++ b/testing/fulltests/support/capp_build
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+${builddir}/libtool --mode=link `${builddir}/net-snmp-config --build-command` -I$builddir/include -I$srcdir/include -o $2 $1 ${builddir}/snmplib/libnetsnmp.la `${builddir}/net-snmp-config --external-libs`
+echo $2
diff --git a/testing/fulltests/support/capp_run b/testing/fulltests/support/capp_run
new file mode 100755
index 0000000..84f54e1
--- /dev/null
+++ b/testing/fulltests/support/capp_run
@@ -0,0 +1,8 @@
+#!/bin/sh
+${DYNAMIC_ANALYZER} ${builddir}/libtool --mode=execute "$1" 2>&1 \
+| \
+if [ "x$SNMP_SAVE_TMPDIR" = "xyes" ]; then
+  tee "/tmp/snmp-unit-test-`basename $1`"
+else
+  cat
+fi
diff --git a/testing/fulltests/support/clib_build b/testing/fulltests/support/clib_build
new file mode 100755
index 0000000..a24c8f0
--- /dev/null
+++ b/testing/fulltests/support/clib_build
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+# build the C test file ...
+
+rm -f "$2.c"
+cat >>"$2.c" <<EOF
+/* net-snmp standard headers */
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/library/large_fd_set.h>
+
+/* testing specific header */
+#include <net-snmp/library/testing.h>
+
+/* standard headers */
+#include <errno.h>
+#include <stdio.h>
+#include <sys/types.h>
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+#if HAVE_STRING_H
+#include <string.h>
+#else
+#include <strings.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#ifdef HAVE_NETINET_IP6_H
+#include <netinet/ip6.h>
+#endif
+#ifndef HAVE_INET_PTON
+#include "snmplib/inet_pton.h"
+#endif
+#ifndef HAVE_INET_NTOP
+#include "snmplib/inet_ntop.h"
+#endif
+
+int
+main(int argc, char *argv[]) {
+
+EOF
+echo >>"$2.c" "#line 1 \"$1\""
+cat >>"$2.c" "$1"
+cat >>"$2.c" <<EOF
+
+   if (__did_plan == 0) {
+       PLAN(__test_counter);
+   }
+
+   return(0);
+}
+
+EOF
+
+# ... and compile it.
+${builddir}/libtool --mode=link `${builddir}/net-snmp-config --build-command` -I$builddir/include -I$srcdir -I$srcdir/include -o $2 $2.c ${builddir}/snmplib/libnetsnmp.la `${builddir}/net-snmp-config --external-libs`
+echo $2
diff --git a/testing/fulltests/support/clib_run b/testing/fulltests/support/clib_run
new file mode 100755
index 0000000..84f54e1
--- /dev/null
+++ b/testing/fulltests/support/clib_run
@@ -0,0 +1,8 @@
+#!/bin/sh
+${DYNAMIC_ANALYZER} ${builddir}/libtool --mode=execute "$1" 2>&1 \
+| \
+if [ "x$SNMP_SAVE_TMPDIR" = "xyes" ]; then
+  tee "/tmp/snmp-unit-test-`basename $1`"
+else
+  cat
+fi
diff --git a/testing/TESTCONF.sh b/testing/fulltests/support/simple_TESTCONF.sh
similarity index 76%
rename from testing/TESTCONF.sh
rename to testing/fulltests/support/simple_TESTCONF.sh
index c8e8c99..f8f229a 100644
--- a/testing/TESTCONF.sh
+++ b/testing/fulltests/support/simple_TESTCONF.sh
@@ -50,24 +50,57 @@
 
 if [ "x$MIBDIRS" = "x" ]; then
   if [ "x$SNMP_PREFER_NEAR_MIBS" = "x1" ]; then
-    MIBDIRS=${SNMP_BASEDIR}/../mibs
+    MIBDIRS=${srcdir}/mibs
     export MIBDIRS
   fi
 fi
 
 # Set up the path to the programs we want to use.
 if [ "x$SNMP_PATH" = "x" ]; then
-    PATH=../agent:../apps:../../agent:../../apps:$PATH
+    PATH=${builddir}/agent:${builddir}/apps:$PATH
     export PATH
     SNMP_PATH=yes
     export SNMP_PATH
 fi
-    
+
+# make sure that we can fulfill all library dependencies
+_ld_lib_path="${SNMP_UPDIR}/snmplib/.libs:${SNMP_UPDIR}/agent/.libs:${SNMP_UPDIR}/agent/helpers/.libs"
+case `uname` in
+  CYGWIN*)
+    PATH="${_ld_lib_path}:$PATH"
+    export PATH
+    ;;
+  Darwin*)
+    if [ "x$DYLD_LIBRARY_PATH" != "x" ]; then
+      DYLD_LIBRARY_PATH="${_ld_lib_path}:${DYLD_LIBRARY_PATH}"
+    else
+      DYLD_LIBRARY_PATH="${_ld_lib_path}"
+    fi
+    export DYLD_LIBRARY_PATH
+    ;;
+  HP-UX*)
+    if [ "x$SHLIB_PATH" != "x" ]; then
+      SHLIB_PATH="${_ld_lib_path}:${SHLIB_PATH}"
+    else
+      SHLIB_PATH="${_ld_lib_path}"
+    fi
+    export SHLIB_PATH
+    ;;
+  *)
+    if [ "x$LD_LIBRARY_PATH" != "x" ]; then
+      LD_LIBRARY_PATH="${_ld_lib_path}:${LD_LIBRARY_PATH}"
+    else
+      LD_LIBRARY_PATH="${_ld_lib_path}"
+    fi
+    export LD_LIBRARY_PATH
+    ;;
+esac
 
 # Set up temporary directory
-if [ "x$SNMP_TMPDIR" = "x" -a "x$SNMP_HEADERONLY" != "xyes" ]; then
+if [ "x$SNMP_HEADERONLY" != "xyes" ]; then
+  if [ "x$SNMP_TMPDIR" = "x" ]; then
     if [ "x$testnum" = "x" ] ; then
-        testnum=1
+        testnum=0
     fi
     SNMP_TMPDIR="/tmp/snmp-test-$testnum-$$"
     export SNMP_TMPDIR
@@ -75,11 +108,19 @@
 	echo "$0: ERROR: $SNMP_TMPDIR already existed."
 	exit 1;
     fi
+  fi
+  if [ ! -d $SNMP_TMPDIR ]; then
+    mkdir $SNMP_TMPDIR
+    chmod 0700 $SNMP_TMPDIR
+  fi
+  if [ "x$SNMP_TMP_PERSISTENTDIR" = "x" ]; then
     SNMP_TMP_PERSISTENTDIR=$SNMP_TMPDIR/persist
     export SNMP_TMP_PERSISTENTDIR
-    mkdir $SNMP_TMPDIR
+  fi
+  if [ ! -d $SNMP_TMP_PERSISTENTDIR ]; then
     mkdir $SNMP_TMP_PERSISTENTDIR
-    chmod 0700 $SNMP_TMPDIR $SNMP_TMP_PERSISTENTDIR
+    chmod 0700 $SNMP_TMP_PERSISTENTDIR
+  fi
 fi
 
 if [ "x$SNMP_SAVE_TMPDIR" = "x" ]; then
@@ -89,8 +130,8 @@
 
 SNMP_IGNORE_WINDOWS_REGISTRY="true"
 export SNMP_IGNORE_WINDOWS_REGISTRY
-SNMP_ENV_SEPARATOR="`$SNMP_UPDIR/net-snmp-config --env-separator`"
-SNMP_PERLPROG="`$SNMP_UPDIR/net-snmp-config --perlprog`"
+SNMP_ENV_SEPARATOR="`${builddir}/net-snmp-config --env-separator`"
+SNMP_PERLPROG="`${builddir}/net-snmp-config --perlprog`"
 SNMP_TESTDIR="$SNMP_BASEDIR/tests"
 SNMP_CONFIG_FILE="$SNMP_TMPDIR/snmpd.conf"
 SNMPTRAPD_CONFIG_FILE="$SNMP_TMPDIR/snmptrapd.conf"
@@ -133,6 +174,11 @@
     NETSTAT=""
 fi
 
+if [ "x$OSTYPE" = "xmsys" ]; then
+    # To do: make configure find out the path of MSYS' sh.exe.
+    MSYS_SH="c:/msys/1.0/bin/sh.exe"
+fi
+
 PROBE_FOR_PORT() {
     BASE_PORT=$1
     MAX_RETRIES=10
@@ -171,7 +217,7 @@
 	SNMP_TRANSPORT_SPEC="udp"
 fi
 if [ "x$SNMP_TEST_DEST" = "x" -a $SNMP_TRANSPORT_SPEC != "unix" ];then
-	SNMP_TEST_DEST="localhost:"
+	SNMP_TEST_DEST="127.0.0.1:"
 fi
 export SNMP_FLAGS SNMP_SNMPD_PORT SNMP_SNMPTRAPD_PORT
 
diff --git a/testing/eval_tools.sh b/testing/fulltests/support/simple_eval_tools.sh
similarity index 65%
rename from testing/eval_tools.sh
rename to testing/fulltests/support/simple_eval_tools.sh
index 9c09cc7..2df2c95 100644
--- a/testing/eval_tools.sh
+++ b/testing/fulltests/support/simple_eval_tools.sh
@@ -22,19 +22,25 @@
 #
 if [ "x$EVAL_TOOLS_SH_EVALED" != "xyes" ]; then
     EVAL_TOOLS_SH_EVALED=yes
-    . TESTCONF.sh
 
 #
 # Variables used in global environment of calling script.
 #
 failcount=0
-junkoutputfile="$SNMP_TMPDIR/output-`basename $0`$$"
-seperator="-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
+testnum=0
+errnum=0
+junkoutputfilebase="$SNMP_TMPDIR/output-`basename $0`$$"
+junkoutputfile=$junkoutputfilebase
+outputcount=0
+separator="-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
 if [ -z "$OK_TO_SAVE_RESULT" ] ; then
 OK_TO_SAVE_RESULT=1
 export OK_TO_SAVE_RESULT
 fi
 
+if [ `uname -s` = SunOS ]
+then PATH=/usr/xpg4/bin:$PATH
+fi
 
 #
 # HEADER: returns a single line when SNMP_HEADERONLY mode and exits.
@@ -44,8 +50,7 @@
         echo test $*
 	exit 0;
     else
-	ECHO "testing $*...  "
-	headerStr="testing $*"
+	{ echo "# testing $*"; echo ""; } >> $SNMP_TMPDIR/invoked
     fi
 }
 
@@ -107,28 +112,21 @@
 #
 SKIP() {
 	REMOVETESTDATA
-	echo "SKIPPED"
+	echo "1..0 # SKIP $*"
 	exit 0
 }
 
 ISDEFINED() {
-	grep "^#define $1 " $SNMP_UPDIR/include/net-snmp/net-snmp-config.h $SNMP_UPDIR/include/net-snmp/agent/mib_module_config.h $SNMP_UPDIR/include/net-snmp/agent/agent_module_config.h >/dev/null
+	grep "^#define $1 " ${builddir}/include/net-snmp/net-snmp-config.h ${builddir}/include/net-snmp/agent/mib_module_config.h ${builddir}/include/net-snmp/agent/agent_module_config.h > /dev/null
 }
 
 SKIPIFNOT() {
-	if ISDEFINED "$1"; then
-	    :
-	else
-	    SKIP
-	fi
+	ISDEFINED "$1" || SKIP "$1 is not defined"
 }
 
 SKIPIF() {
-	if ISDEFINED "$1"; then
-	    SKIP
-	fi
+	ISDEFINED "$1" && SKIP "$1 is defined"
 }
-	
 
 #------------------------------------ -o-
 #
@@ -136,7 +134,7 @@
 	missingfiles=""
 
 	for f in $*; do
-		[ -f "$f" ] && continue
+		[ -e "$f" ] && continue
 		echo "FAILED: Cannot find file \"$f\"."
 		missingfiles=true
 	done
@@ -144,11 +142,16 @@
 	[ "$missingfiles" = true ] && exit 1000
 }
 
+NEWOUTPUTFILE() {
+        outputcount=`expr $outputcount + 1`
+        junkoutputfile="${junkoutputfilebase}-$outputcount"
+}
 
 #------------------------------------ -o-
 #
-STARTTEST() {	
-	[ ! -f "$junkoutputfile" ] && {
+STARTTEST() {
+        NEWOUTPUTFILE
+	[ ! -e "$junkoutputfile" ] && {
 		touch $junkoutputfile
 		return
 	}
@@ -171,10 +174,35 @@
 	rm -rf $SNMP_TMPDIR
 }
 
-
+#------------------------------------ -o-
+#
+OUTPUTENVVARS() {
+    echo "SNMPCONFPATH=$SNMPCONFPATH" >> $1
+    echo "SNMP_PERSISTENT_DIR=$SNMP_PERSISTENT_DIR" >> $1
+    echo "MIBDIRS=$MIBDIRS" >> $1
+    echo "PATH=$PATH" >> $1
+    echo "export SNMPCONFPATH" >> $1
+    echo "export SNMP_PERSISTENT_DIR" >> $1
+    echo "export MIBDIRS" >> $1
+    echo "export PATH" >> $1
+}
+    
 #------------------------------------ -o-
 # Captures output from command, and returns the command's exit code.
+loggedvars=0
 CAPTURE() {	# <command_with_arguments_to_execute>
+    NEWOUTPUTFILE
+
+    # track invoked command per test when verbose
+    if [ $SNMP_VERBOSE -gt 0 ]; then
+        OUTPUTENVVARS $junkoutputfile.invoked
+        echo $* >> $junkoutputfile.invoked
+    fi
+
+    if [ $loggedvars = 0 ]; then
+        OUTPUTENVVARS $SNMP_TMPDIR/invoked
+        loggedvars=1
+    fi
     echo $* >> $SNMP_TMPDIR/invoked
 
 	if [ $SNMP_VERBOSE -gt 0 ]; then
@@ -185,15 +213,16 @@
 KNORG
 
 	fi
-	( $* 2>&1 ) > $junkoutputfile 2>&1
+	echo "RUNNING: $*" > $junkoutputfile
+	( $* 2>&1 ) >> $junkoutputfile 2>&1
 	RC=$?
 
 	if [ $SNMP_VERBOSE -gt 1 ]; then
 		echo "Command Output: "
 		echo "MIBDIR $MIBDIRS $MIBS"
-		echo "$seperator"
+		echo "$separator"
 		cat $junkoutputfile | sed 's/^/  /'
-		echo "$seperator"
+		echo "$separator"
 	fi
 	return $RC
 }
@@ -224,41 +253,95 @@
   fi
 }
 
+CHECKCOUNT() {
+   CHECKFILECOUNT "$junkoutputfile" $@
+}
+
+CHECKVALUEIS() {
+    value1=$1
+    value2=$2
+    if [ "x$value1" = "x$value2" ]; then
+      GOOD "$3"
+    else
+      BAD "$3"
+    fi
+}
+
+CHECKVALUEISNT() {
+    value1=$1
+    value2=$2
+    if [ "x$value1" = "x$value2" ]; then
+      BAD "$3"
+    else
+      GOOD "$3"
+    fi
+}
+
 #------------------------------------ -o-
 # Returns: Count of matched lines.
 #
-CHECK() {	# <pattern_to_match>
+CHECKFILECOUNT() {	# <pattern_to_match>
+    chkfile=$1
+    ckfcount=$2
+    shift
+    shift
     if [ $SNMP_VERBOSE -gt 0 ]; then
 	echo -n "checking output for \"$*\"..."
     fi
 
-    rval=`grep -c "$*" "$junkoutputfile" 2>/dev/null`
+    if [ -f $chkfile ]; then
+	rval=`grep -c "$*" "$chkfile" 2>/dev/null`
+    else
+        COMMENT "Note: file $chkfile does not exist and we were asked to check it"
+	rval=0
+    fi
 
     if [ $SNMP_VERBOSE -gt 0 ]; then
 	echo "$rval matches found"
     fi
 
     snmp_last_test_result=$rval
-    EXPECTRESULT 1  # default
+    EXPECTRESULT $ckfcount  # default
+    if [ "$ckfcount" != "noerror" ]; then
+      if [ "$ckfcount" = "atleastone" ]; then
+        if [ "$rval" -ne "0" ]; then
+            GOOD "found $ckfcount copies of '$*' in output ($chkfile); needed one"
+        else
+            BAD "found $rval copies of '$*' in output ($chkfile); expected 1"
+            COMMENT "Outputfile: $chkfile"
+        fi
+      else
+        if [ "$rval" = "$ckfcount" ]; then
+           GOOD "found $ckfcount copies of '$*' in output ($chkfile)"
+        else
+           BAD "found $rval copies of '$*' in output ($chkfile); expected $ckfcount"
+           COMMENT "Outputfile: $chkfile"
+        fi
+      fi
+    fi
     return $rval
 }
 
+CHECK() {
+    CHECKCOUNT 1 $@
+}
+
 CHECKFILE() {
     file=$1
-    if [ "x$file" = "x" ] ; then
-        file=$junkoutputfile
-    fi
     shift
-    myoldjunkoutputfile="$junkoutputfile"
-    junkoutputfile="$file"
-    CHECK $*
-    junkoutputfile="$myoldjunkoutputfile"
+    CHECKFILECOUNT $file 1 $@
 }
 
 CHECKTRAPD() {
     CHECKFILE $SNMP_SNMPTRAPD_LOG_FILE $@
 }
 
+CHECKTRAPDCOUNT() {
+    count=$1
+    shift
+    CHECKFILECOUNT $SNMP_SNMPTRAPD_LOG_FILE $count $@
+}
+
 CHECKTRAPDORDIE() {
     CHECKORDIE $@ $SNMP_SNMPTRAPD_LOG_FILE
 }
@@ -267,6 +350,34 @@
     CHECKFILE $SNMP_SNMPD_LOG_FILE $@
 }
 
+CHECKAGENTCOUNT() {
+    count=$1
+    shift
+    CHECKFILECOUNT $SNMP_SNMPD_LOG_FILE $count $@
+}
+
+WAITFORAGENTSHUTTINGDOWN() {
+    if [ "x$OSTYPE" != "xmsys" ]; then
+        WAITFORAGENT "shutting down"
+    else
+	CAN_USLEEP
+	if [ $SNMP_CAN_USLEEP = 1 ] ; then
+	  sleeptime=`expr $SNMP_SLEEP '*' 50`
+	else 
+	  sleeptime=`expr $SNMP_SLEEP '*' 5`
+	fi
+        snmpd_pid=`cat $SNMP_SNMPD_PID_FILE`
+        while [ $sleeptime -gt 0 ] && kill -0 "$snmpd_pid" 2>/dev/null; do
+            if [ $SNMP_CAN_USLEEP = 1 ]; then
+                sleep .1
+            else
+                sleep 1
+            fi
+            sleeptime=`expr $sleeptime - 1`
+        done
+    fi
+}
+
 WAITFORAGENT() {
     WAITFOR "$@" $SNMP_SNMPD_LOG_FILE
 }
@@ -294,9 +405,9 @@
 	fi
         while [ $sleeptime -gt 0 ] ; do
 	  if [ "$2" = "" ] ; then
-            CHECK "$@"
+            CHECKCOUNT noerror "$@"
           else
-	    CHECKFILE "$2" "$1"
+	    CHECKFILECOUNT "$2" noerror "$1"
 	  fi
           if [ "$snmp_last_test_result" != "" ] ; then
               if [ "$snmp_last_test_result" -gt 0 ] ; then
@@ -306,6 +417,14 @@
           DELAY
           sleeptime=`expr $sleeptime - 1`
         done
+
+	# the above multi-check/sleep doesn't report errors out of TAP
+        # this final check will report only 1 
+	if [ "$2" = "" ] ; then
+          CHECKCOUNT atleastone "$@"
+        else
+	  CHECKFILECOUNT "$2" atleastone "$1"
+	fi
         SNMP_SLEEP=$oldsleeptime
     else
         if [ $SNMP_SLEEP -ne 0 ] ; then
@@ -316,34 +435,52 @@
   ## restore the previous save state and test result
     OK_TO_SAVE_RESULT=$save_state
     snmp_last_test_result=$save_test
-}    
+}
+
+GOOD() {
+    testnum=`expr $testnum + 1`
+    echo "ok $testnum - $1"
+    echo "# ok $testnum - $1" >> $SNMP_TMPDIR/invoked
+}
+
+BAD() {
+    testnum=`expr $testnum + 1`
+    errnum=`expr $errnum + 1`
+    echo "not ok $testnum - $1"
+    echo "# not ok $testnum - $1" >> $SNMP_TMPDIR/invoked
+}
+
+COMMENT() {
+    echo "# $@"
+    echo "# $@" >> $SNMP_TMPDIR/invoked
+}
 
 # WAITFORORDIE "grep string" ["file"]
 WAITFORORDIE() {
     WAITFOR "$1" "$2"
     if [ "$snmp_last_test_result" != 0 ] ; then
+        BAD
         FINISHED
     fi
-    ECHO "."
+    GOOD
 }
 
 # CHECKORDIE "grep string" ["file"] .. FAIL if "grep string" is *not* found
 CHECKORDIE() {
-    CHECKFILE "$2" "$1"
-    if [ "$snmp_last_test_result" = 0 ] ; then
-        FINISHED
+    if [ "x$2" = "x" ]; then
+      CHECKFILE "$junkoutputfile" "$1"
+    else
+      CHECKFILECOUNT "$2" 1 "$1"
     fi
-    ECHO "."
 }
 
 # CHECKANDDIE "grep string" ["file"] .. FAIL if "grep string" *is* found
 CHECKANDDIE() {
-    CHECKFILE "$2" "$1"
-    EXPECTRESULT 0 # make sure return_value gets set correctly
-    if [ "$snmp_last_test_result" != 0 ] ; then
-        FINISHED
+    if [ "x$2" = "x" ]; then
+      CHECKFILECOUNT "$junkoutputfile" 0 "$1"
+    else
+      CHECKFILECOUNT "$2" 0 "$1"
     fi
-    ECHO "."
 }
 
 #------------------------------------ -o-
@@ -400,17 +537,21 @@
     if test -f $CFG_FILE; then
 	COMMAND="$COMMAND -C -c $CFG_FILE"
     fi
-    if [ $SNMP_VERBOSE -gt 0 ]; then
-	echo "running: $COMMAND"
-    fi
     if [ "x$PORT_SPEC" != "x" ]; then
         COMMAND="$COMMAND $PORT_SPEC"
     fi
+    if [ $SNMP_VERBOSE -gt 0 ]; then
+	echo "running: $COMMAND"
+    fi
     echo $COMMAND >> $SNMP_TMPDIR/invoked
+    if [ $SNMP_VERBOSE -gt 0 ]; then
+        OUTPUTENVVARS $LOG_FILE.command
+        echo $COMMAND >> $LOG_FILE.command
+    fi
     if [ "x$OSTYPE" = "xmsys" ]; then
-      ## $COMMAND > $LOG_FILE.stdout 2>&1 &
-      COMMAND="cmd.exe //c start //min $COMMAND"
-      start $COMMAND > $LOG_FILE.stdout 2>&1
+      $COMMAND > $LOG_FILE.stdout 2>&1 &
+      ## COMMAND="cmd.exe //c start //min $COMMAND"
+      ## start $COMMAND > $LOG_FILE.stdout 2>&1
     else
       $COMMAND > $LOG_FILE.stdout 2>&1
     fi
@@ -494,16 +635,14 @@
 STOPAGENT() {
     SAVE_RESULTS
     STOPPROG $SNMP_SNMPD_PID_FILE
-    if [ "x$OSTYPE" != "xmsys" ]; then
-        WAITFORAGENT "shutting down"
-    fi
+    WAITFORAGENTSHUTTINGDOWN
     if [ $SNMP_VERBOSE -gt 1 ]; then
 	echo "Agent Output:"
-	echo "$seperator [stdout]"
+	echo "$separator [stdout]"
 	cat $SNMP_SNMPD_LOG_FILE.stdout
-	echo "$seperator [logfile]"
+	echo "$separator [logfile]"
 	cat $SNMP_SNMPD_LOG_FILE
-	echo "$seperator"
+	echo "$separator"
     fi
 }
 
@@ -517,11 +656,11 @@
     fi
     if [ $SNMP_VERBOSE -gt 1 ]; then
 	echo "snmptrapd Output:"
-	echo "$seperator [stdout]"
+	echo "$separator [stdout]"
 	cat $SNMP_SNMPTRAPD_LOG_FILE.stdout
-	echo "$seperator [logfile]"
+	echo "$separator [logfile]"
 	cat $SNMP_SNMPTRAPD_LOG_FILE
-	echo "$seperator"
+	echo "$separator"
     fi
 }
 
@@ -540,17 +679,19 @@
     fi
     for pfile in $SNMP_TMPDIR/*pid* ; do
         if [ "x$pfile" = "x$SNMP_TMPDIR/*pid*" ]; then
-            ECHO "(no pid file(s) found) "
+            BAD "(no pid file(s) found) "
             break
         fi
         if [ ! -f $pfile ]; then
-            ECHO "('$pfile' disappeared) "
+            BAD "('$pfile' disappeared) "
             continue
         fi
 	pid=`cat $pfile`
-	ps -e 2>/dev/null | egrep "^[	 ]*$pid[	 ]+" > /dev/null 2>&1
-	if [ $? = 0 ] ; then
-	    SNMP_SAVE_TMPDIR=yes
+        # When not running on MinGW, check whether snmpd is still running.
+        if [ "x$OSTYPE" = "xmsys" ] || { ps -e 2>/dev/null | egrep "^[	 ]*$pid[	 ]+" > /dev/null 2>&1; }; then
+            if [ "x$OSTYPE" != "xmsys" ]; then
+                SNMP_SAVE_TMPDIR=yes
+            fi
             if [ "x$OSTYPE" = "xmsys" ]; then
               COMMAND="pskill.exe $pid"
             else
@@ -561,24 +702,27 @@
 	    return_value=1
 	fi
     done
-    if [ "x$real_return_value" != "x0" ]; then
+
+    # report the number of tests done
+    GOOD "got to FINISHED"
+    echo "1..$testnum"
+
+    if [ "x$errnum" != "x0" ]; then
 	if [ -s core ] ; then
 	    # XX hope that only one prog cores !
 	    cp core $SNMP_TMPDIR/core.$$
 	    rm -f core
 	fi
-	echo "FAIL"
 	echo "$headerStr...FAIL" >> $SNMP_TMPDIR/invoked
-	exit $real_return_value
+	exit 1
     fi
 
-    echo "ok"
     echo "$headerStr...ok" >> $SNMP_TMPDIR/invoked
 
     if [ "x$SNMP_SAVE_TMPDIR" != "xyes" ]; then
 	REMOVETESTDATA
     fi
-    exit $real_return_value
+    exit 0
 }
 
 #------------------------------------ -o-
diff --git a/testing/fulltests/support/simple_run b/testing/fulltests/support/simple_run
new file mode 100755
index 0000000..eb37e96
--- /dev/null
+++ b/testing/fulltests/support/simple_run
@@ -0,0 +1,112 @@
+#!/bin/sh
+
+if [ $# = 0 ]; then
+    echo "Usage: $0 <testscript> [<args>]"
+    exit 1
+fi
+
+if [ "x$builddir" = "x" ]; then
+    cd ..
+    builddir=`pwd`
+    if cd testing 2>/dev/null; then
+       :
+    else
+       echo "Error: $0 must be started from inside the testing directory."
+       exit 1
+    fi
+fi
+
+if [ "x$srcdir" = "x" ]; then
+    srcdir=`dirname $0`
+    srcdir=`cd $srcdir; cd ../..; pwd`
+    srcdir=`dirname $srcdir`
+    cd $srcdir
+    if cd testing 2>/dev/null; then
+       :
+    else
+       echo "Error: $0 must be started from inside the testing directory."
+       exit 1
+    fi
+fi
+
+testscript=$1
+if [ `echo $testscript | cut -c 1-1` != '/' ]; then
+    testscript="`pwd`/$1"
+fi
+
+SNMP_BASEDIR=`dirname $0`
+
+## prefer MIB files found in source hierarchy
+SNMP_PREFER_NEAR_MIBS=1
+
+export SNMP_PREFER_NEAR_MIBS
+SNMP_TEST_PREFIX=${SNMP_TEST_PREFIX:=T}
+export SNMP_TEST_PREFIX
+
+SNMP_ORIGDIR=`pwd`	        ## this script may be invoked with relative path
+export SNMP_ORIGDIR
+
+SNMP_UPDIR=${builddir}          ## build directory
+SNMP_SLEEP=${SNMP_SLEEP:=1} 	## default seconds to sleep
+export SNMP_SLEEP
+
+# Find executables in source first, then build, then existing PATH.
+## Add to PATH if a binary is found.
+
+cd $SNMP_UPDIR
+SNMP_UPDIR=`pwd`
+bf=snmpget
+if [ -x "$bf" ] ; then
+   PATH=$SNMP_UPDIR:$PATH
+else
+  for dd in apps bin ; do
+   bf=$dd/snmpget
+   if [ -x "$bf" ] ; then
+      PATH=$SNMP_UPDIR/$dd:$PATH
+      break
+   fi
+  done
+fi
+for dd in agent bin sbin ; do
+   bf=$dd/snmpd
+   if [ -x "$bf" ] ; then
+      PATH=$SNMP_UPDIR/$dd:$PATH
+      break
+   fi
+done
+
+bf=include/net-snmp/net-snmp-config.h
+if [ ! -s "$bf" ] ; then
+   echo "No \"$bf\" in $SNMP_UPDIR . Some tests will be skipped"
+fi
+unset bf
+
+# Run from the test scripts directory.
+cd $SNMP_ORIGDIR ; cd ${SNMP_BASEDIR}
+SNMP_BASEDIR=`pwd`
+export SNMP_BASEDIR
+
+PATH=${SNMP_BASEDIR}:$PATH
+export PATH
+SNMP_PATH=yes
+export SNMP_PATH
+
+export SNMP_UPDIR
+
+#
+# Source the testing configuration file
+#
+
+testnum="`basename $testscript`"
+
+. simple_TESTCONF.sh
+
+. simple_eval_tools.sh
+
+cd `dirname $testscript`
+PATH=`pwd`:$PATH
+export PATH
+
+. `basename $testscript`
+
+FINISHED
diff --git a/testing/fulltests/tls/S300tlsperl.pl b/testing/fulltests/tls/S300tlsperl.pl
new file mode 100644
index 0000000..3ea7c0b
--- /dev/null
+++ b/testing/fulltests/tls/S300tlsperl.pl
@@ -0,0 +1,54 @@
+#!/usr/bin/perl
+
+BEGIN {
+    if (exists($ENV{'srcdir'})) {
+	push @INC, "$ENV{'srcdir'}/testing/fulltests/support";
+    } elsif (-d "fulltests/support") {
+	push @INC, "fulltests/support";
+    } elsif (-d "../support") {
+	push @INC, "../support";
+    }
+}
+use NetSNMPTest;
+use Test;
+use SNMP;
+
+my $test = new NetSNMPTest(agentaddress => $agentaddress);
+
+$test->require_feature($feature);
+
+my $netsnmpcert = "$ENV{'srcdir'}/local/net-snmp-cert -I -C $test->{'dir'}";
+
+system("$netsnmpcert gencert -I -t snmpd > /dev/null 2>&1");
+system("$netsnmpcert gencert -I -t snmpapp --cn snmpapp > /dev/null 2>&1");
+system("$netsnmpcert gencert -I -t perl --cn perl > /dev/null 2>&1");
+
+my $fp = `$netsnmpcert showcerts --fingerprint --brief perl`;
+chomp($fp);
+print "# using local fp: $fp\n";
+
+plan(tests => 2);
+$test->config_agent("syscontact itworked");
+$test->config_agent("rwuser -s tsm perl");
+$test->config_agent("certSecName 100 snmpapp --cn");
+$test->config_agent("certSecName 101 $fp --cn");
+
+$test->DIE("failed to start the agent") if (!$test->start_agent(" -Dtls,ssl,tsm,cert:map"));
+
+# now create a session to test things with
+my $session = new SNMP::Session(DestHost => $test->{'agentaddress'},
+				TheirIdentity => 'snmpd',
+			        OurIdentity => 'perl');
+
+ok(ref($session), 'SNMP::Session', "created a session");
+
+######################################################################
+# GET test
+if (ref($session) eq 'SNMP::Session') {
+    my $value = $session->get('sysContact.0');
+    ok($value, 'itworked');
+}
+
+######################################################################
+# cleanup
+$test->stop_agent();
diff --git a/testing/fulltests/tls/SCipherTests b/testing/fulltests/tls/SCipherTests
new file mode 100644
index 0000000..95af0b9
--- /dev/null
+++ b/testing/fulltests/tls/SCipherTests
@@ -0,0 +1,62 @@
+. STlsVars
+
+# create a CA
+
+CAPTURE $NSCERT genca --cn ca-net-snmp.org  $NSCERTARGS
+CAFP=`$NSCERT showcas --fingerprint --brief ca-net-snmp.org $NSCERTARGS`
+CHECKVALUEISNT "$CAFP" "" "generated fingerprint for ca-net-snmp.org certificate"
+
+# create a server certificate using the CA certificate
+CAPTURE $NSCERT gencert -t snmpd --with-ca ca-net-snmp.org $checknametype ${checknameprefix}foobar $NSCERTARGS
+SNMPDFP=`$NSCERT showcert --fingerprint --brief snmpd $NSCERTARGS`
+
+CONFIGAGENT '[snmp]' serverCert $SNMPDFP
+
+# create a user certificate
+CAPTURE $NSCERT gencert -t snmpapp --cn 'testuser'  $NSCERTARGS
+TESTUSERFP=`$NSCERT showcerts --fingerprint --brief snmpapp $NSCERTARGS`
+CHECKVALUEISNT "$TESTUSERFP" "" "generated fingerprint for testuser certificate"
+
+CONFIGAGENT  certSecName 10  $TESTUSERFP     --cn
+CONFIGAGENT  rwuser -s tsm testuser authpriv
+
+CONFIGAPP   clientCert  	  $TESTUSERFP
+CONFIGAPP   serverCert  	  $SNMPDFP
+
+CONFIGAPP   trustCert $CAFP
+
+# specify an exact list of ciphers to accept
+CONFIGAGENT '[snmp]' tlsAlgorithms DHE-RSA-AES256-SHA:AES256-SHA:DES-CBC3-SHA
+
+FLAGS="-On $SNMP_FLAGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT"
+
+# start up the agent
+STARTAGENT
+
+# ensure we can access it via standard algorithms on the client side
+DOSETTEST defaultAlgs "$FLAGS"
+
+# limit the client to the same set
+CONFIGAPP tlsAlgorithms DHE-RSA-AES256-SHA:AES256-SHA:DES-CBC3-SHA
+
+# and test
+DOSETTEST specificAlgs "$FLAGS"
+
+# drop one cipher
+CONFIGAPP tlsAlgorithms DHE-RSA-AES256-SHA:AES256-SHA
+
+# and test
+DOSETTEST onlyAes256Sha "$FLAGS"
+
+# and finally ensure we can get back to working again
+CONFIGAPP tlsAlgorithms DHE-RSA-AES256-SHA:AES256-SHA
+DOSETTEST worksAgain "$FLAGS"
+
+
+########################################
+# DONE
+
+
+STOPAGENT
+
+FINISHED
diff --git a/testing/fulltests/tls/SCrl b/testing/fulltests/tls/SCrl
new file mode 100644
index 0000000..4167403
--- /dev/null
+++ b/testing/fulltests/tls/SCrl
@@ -0,0 +1,98 @@
+#!/bin/sh
+
+. STlsVars
+
+# this file contains tests common to both tls and dtls usages
+
+TLSDIR=$SNMP_TMPDIR/tls
+
+#########################################
+# Create the certificates
+
+# create the ca
+CAPTURE $NSCERT genca --cn ca-net-snmp.org  $NSCERTARGS
+
+# snmpd
+HOSTNAME=`hostname`
+CAPTURE $NSCERT gencert --with-ca ca-net-snmp.org -t snmpd --cn $HOSTNAME $NSCERTARGS
+SERVERFP=`$NSCERT showcerts --fingerprint --brief snmpd  $NSCERTARGS`
+CHECKVALUEISNT "$SERVERFP" "" "generated fingerprint for snmpd certificate"
+
+# user
+CAPTURE $NSCERT gencert --with-ca ca-net-snmp.org -t snmpapp --cn 'testuser'  $NSCERTARGS
+TESTUSERFP=`$NSCERT showcerts --fingerprint --brief snmpapp $NSCERTARGS`
+CHECKVALUEISNT "$TESTUSERFP" "" "generated fingerprint for testuser certificate"
+
+# user2
+CAPTURE $NSCERT gencert --with-ca ca-net-snmp.org -t snmpapp2 --cn 'testuser2'  $NSCERTARGS
+TESTUSER2FP=`$NSCERT showcerts --fingerprint --brief snmpapp2 $NSCERTARGS`
+CHECKVALUEISNT "$TESTUSER2FP" "" "generated fingerprint for testuser2 certificate"
+
+########################################
+# Configure the .conf files
+
+CONFIGAPP serverCert $SERVERFP
+
+# common name mappings
+CONFIGAGENT certSecName 9  $TESTUSERFP     --cn
+CONFIGAGENT certSecName 10  $TESTUSER2FP     --cn
+CONFIGAGENT  rwuser -s tsm testuser authpriv
+CONFIGAGENT  rwuser -s tsm testuser2 authpriv
+
+CRLFILE=$SNMP_TMPDIR/crlfile.pem
+
+# configure the CRL locations
+CONFIGAGENT '[snmp]' x509crlfile $CRLFILE
+CONFIGAPP   '[snmp]' x509crlfile $CRLFILE
+
+CRLCACMD="env DIR=$TLSDIR CN=ca-net-snp.org openssl ca"
+CRLARGS="-config $TLSDIR/.openssl.conf -keyfile $TLSDIR/private/ca-net-snmp.org.key -cert $TLSDIR/ca-certs/ca-net-snmp.org.crt"
+
+# generate the initial CRL
+touch $TLSDIR/.index
+echo "01" > $TLSDIR/.crlnumber
+CAPTURE "$CRLCACMD -gencrl $CRLARGS -out $CRLFILE"
+
+#
+# put the second client into the CRL and it shouldn't work
+#
+CAPTURE "$CRLCACMD -revoke $TLSDIR/certs/snmpapp2.crt $CRLARGS -out $CRLFILE"
+CAPTURE "$CRLCACMD -gencrl $CRLARGS -out $CRLFILE"
+
+
+######################################################################
+# Run the actual list of tests
+#
+
+# start the agent up
+FLAGS="-Dtls -On $SNMP_FLAGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT"
+AGENT_FLAGS="-Dtls"
+STARTAGENT
+
+# using user 1 - a common name mapped certificate
+# (using the default "snmpapp" certificate because we don't specify another)
+CAPTURE "snmpget -Dssl $FLAGS .1.3.6.1.2.1.1.3.0"
+
+CHECK       ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+# using user 2 should now fail
+CAPTURE "snmpget -T our_identity=snmpapp2 -Dssl $FLAGS .1.3.6.1.2.1.1.3.0"
+
+CHECKCOUNT  0 ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+CHECKAGENT  "certificate revoked"
+
+#
+# now put the server's cert into the client crl file
+#
+CAPTURE "$CRLCACMD -revoke $TLSDIR/certs/snmpd.crt $CRLARGS"
+CAPTURE "$CRLCACMD -gencrl $CRLARGS -out $CRLFILE"
+
+# user 1 should now fail on the client side
+CAPTURE "snmpget -Dssl $FLAGS .1.3.6.1.2.1.1.3.0"
+
+CHECK       "certificate revoked"
+
+# cleanup
+STOPAGENT
+
+FINISHED
diff --git a/testing/fulltests/tls/STlsAgentTrap b/testing/fulltests/tls/STlsAgentTrap
new file mode 100644
index 0000000..ab0c341
--- /dev/null
+++ b/testing/fulltests/tls/STlsAgentTrap
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+. STlsVars
+
+SKIPIFNOT USING_EXAMPLES_EXAMPLE_MODULE
+
+#########################################
+# CERTIFICATE SETUP
+#
+
+# produce the certificates to use
+
+# snmptrapd
+HOSTNAME=`hostname`
+CAPTURE $NSCERT gencert -t snmptrapd   --cn $HOSTNAME $NSCERTARGS
+TRAPDFP=`$NSCERT showcerts --fingerprint --brief snmptrapd  $NSCERTARGS`
+CHECKVALUEISNT "$TRAPDFP" "" "generated fingerprint for snmptrapd certificate"
+
+# snmpd
+HOSTNAME=`hostname`
+CAPTURE $NSCERT gencert -t snmpd   --cn $HOSTNAME $NSCERTARGS
+SERVERFP=`$NSCERT showcerts --fingerprint --brief snmpd  $NSCERTARGS`
+CHECKVALUEISNT "$SERVERFP" "" "generated fingerprint for snmpd certificate"
+
+# user
+CAPTURE $NSCERT gencert -t snmpapp --cn 'testuser'  $NSCERTARGS
+TESTUSERFP=`$NSCERT showcerts --fingerprint --brief snmpapp $NSCERTARGS`
+CHECKVALUEISNT "$TESTUSERFP" "" "generated fingerprint for testuser certificate"
+
+#########################################
+# Configuration
+
+# snmpd
+CONFIGAGENT trapsess -Ci -T our_identity=$TESTUSERFP -T their_identity=$TRAPDFP  ${SNMP_TRANSPORT_SPEC}:${SNMP_TEST_DEST}${SNMP_SNMPTRAPD_PORT}
+CONFIGAGENT '[snmp]' serverCert $SERVERFP
+CONFIGAGENT 	     certSecName      9  $TESTUSERFP     --cn
+CONFIGAGENT          rwuser           -s tsm testuser
+
+# snmptrapd
+CONFIGTRAPD '[snmp]' serverCert $TRAPDFP
+CONFIGTRAPD 	     certSecName      9  $TESTUSERFP     --cn
+CONFIGTRAPD 	     authuser         log -s tsm testuser authpriv
+CONFIGTRAPD          agentxsocket     /dev/null
+
+# general
+
+#
+# Begin test
+#
+
+STARTTRAPD
+
+# initialize only the example mib, and not the notification mib stuff
+AGENT_FLAGS="$AGENT_FLAGS -Dexample,header_generic"
+STARTAGENT
+
+#DELAY
+CAPTURE "snmpset -T their_identity=snmpd -T our_identity=snmpapp -On -t 3 -r 0 $SNMP_FLAGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.4.1.2021.254.8.0 i 1"
+
+STOPAGENT
+
+STOPTRAPD
+
+CHECKTRAPD "life the universe and everything"
+
+FINISHED
diff --git a/testing/fulltests/tls/STlsCNSession b/testing/fulltests/tls/STlsCNSession
new file mode 100644
index 0000000..b9a61b8
--- /dev/null
+++ b/testing/fulltests/tls/STlsCNSession
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+checknametype="--san"
+checknameprefix="DNS:"
+
+. STlsServerSession
diff --git a/testing/fulltests/tls/STlsName b/testing/fulltests/tls/STlsName
new file mode 100644
index 0000000..e484da6
--- /dev/null
+++ b/testing/fulltests/tls/STlsName
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+checknametype="--cn"
+checknameprefix=""
+
+. STlsServer
diff --git a/testing/fulltests/tls/STlsSan b/testing/fulltests/tls/STlsSan
new file mode 100644
index 0000000..294a0b4
--- /dev/null
+++ b/testing/fulltests/tls/STlsSan
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+checknametype="--san"
+checknameprefix="DNS:"
+
+. STlsServer
diff --git a/testing/fulltests/tls/STlsSanSession b/testing/fulltests/tls/STlsSanSession
new file mode 100644
index 0000000..b9a61b8
--- /dev/null
+++ b/testing/fulltests/tls/STlsSanSession
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+checknametype="--san"
+checknameprefix="DNS:"
+
+. STlsServerSession
diff --git a/testing/fulltests/tls/STlsServer b/testing/fulltests/tls/STlsServer
new file mode 100644
index 0000000..1e8002d
--- /dev/null
+++ b/testing/fulltests/tls/STlsServer
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+. STlsVars
+
+# create a CA
+
+CAPTURE $NSCERT genca --cn ca-net-snmp.org  $NSCERTARGS
+CAFP=`$NSCERT showcas --fingerprint --brief ca-net-snmp.org $NSCERTARGS`
+CHECKVALUEISNT "$CAFP" "" "generated fingerprint for ca-net-snmp.org certificate"
+
+# create a server certificate using the CA certificate
+CAPTURE $NSCERT gencert -t snmpd --with-ca ca-net-snmp.org $checknametype ${checknameprefix}a.b.example.com $NSCERTARGS
+SNMPDFP=`$NSCERT showcert --fingerprint --brief snmpd $NSCERTARGS`
+
+CONFIGAGENT '[snmp]' serverCert $SNMPDFP
+
+# create a user certificate
+CAPTURE $NSCERT gencert -t snmpapp --cn 'testuser'  $NSCERTARGS
+TESTUSERFP=`$NSCERT showcerts --fingerprint --brief snmpapp $NSCERTARGS`
+CHECKVALUEISNT "$TESTUSERFP" "" "generated fingerprint for testuser certificate"
+
+CONFIGAGENT  certSecName 10  $TESTUSERFP     --cn
+CONFIGAGENT  rwuser -s tsm testuser authpriv
+
+CONFIGAPP   clientCert  	  $TESTUSERFP
+
+# start the agent up
+FLAGS="-On $SNMP_FLAGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT"
+
+# start up the agent
+STARTAGENT
+
+########################################
+# Positive tests
+#    (should work)
+
+# ensure we can access it via a direct FP check
+DOSETTEST fingerprintIdentity "-T their_identity=$SNMPDFP $FLAGS"
+
+# ensure we can access it via a file based identity check
+DOSETTEST filenameIdentity "-T their_identity=snmpd $FLAGS"
+
+# ensure we can access it via trusting their CA certificate and a
+# matching commoname 
+DOSETTEST hostnameIdentity "-T trust_cert=$CAFP -T their_hostname=a.b.example.com $FLAGS"
+
+########################################
+# Negative tests
+#    (should fail)
+
+# if we don't load the CA certificate we shouldn't connect
+DOFAILSETTEST noTrustCACert  "-T their_hostname=a.b.example.com $FLAGS"
+
+# if we specify a different hostname we should fail hostname test
+# ("localhos" without the "t" is intentional here)
+DOFAILSETTEST incorrectNameA.B.Example.Co  "-T their_hostname=a.b.example.co $FLAGS"
+DOFAILSETTEST incorrectNameA.B.Example.Comt  "-T their_hostname=a.b.example.comt $FLAGS"
+
+# if we specify the CA cert's but don't specify the hostname, it
+# should fail (this may change in the future if we pull the hostname
+# from the transport specifier)
+DOFAILSETTEST certWithoutHost  "-T trust_cert=$CAFP $FLAGS"
+
+########################################
+# Wildcard tests
+#
+DOSETTEST wildcardMatch "-T trust_cert=$CAFP -T their_hostname=*.b.example.com $FLAGS"
+
+DOFAILSETTEST noDoubleWildcard "-T trust_cert=$CAFP -T their_hostname=*.example.com $FLAGS"
+
+
+########################################
+# DONE
+
+STOPAGENT
+
+FINISHED
diff --git a/testing/fulltests/tls/STlsServerSession b/testing/fulltests/tls/STlsServerSession
new file mode 100644
index 0000000..acf68e5
--- /dev/null
+++ b/testing/fulltests/tls/STlsServerSession
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+. STlsVars
+
+# this is usually something like "localhost:", so we need to strip the :
+OURHOST=`echo $SNMP_TEST_DEST | sed 's/:.*//'`
+
+# create a CA
+
+CAPTURE $NSCERT genca --cn ca-net-snmp.org  $NSCERTARGS
+CAFP=`$NSCERT showcas --fingerprint --brief ca-net-snmp.org $NSCERTARGS`
+CHECKVALUEISNT "$CAFP" "" "generated fingerprint for ca-net-snmp.org certificate"
+
+# create a server certificate using the CA certificate
+CAPTURE $NSCERT gencert -t snmpd --with-ca ca-net-snmp.org $checknametype ${checknameprefix}$OURHOST $NSCERTARGS
+SNMPDFP=`$NSCERT showcert --fingerprint --brief snmpd $NSCERTARGS`
+
+CONFIGAGENT '[snmp]' serverCert $SNMPDFP
+
+# create a user certificate
+CAPTURE $NSCERT gencert -t snmpapp --cn 'testuser'  $NSCERTARGS
+TESTUSERFP=`$NSCERT showcerts --fingerprint --brief snmpapp $NSCERTARGS`
+CHECKVALUEISNT "$TESTUSERFP" "" "generated fingerprint for testuser certificate"
+
+CONFIGAGENT  certSecName 10  $TESTUSERFP     --cn
+CONFIGAGENT  rwuser -s tsm testuser authpriv
+
+CONFIGAPP   clientCert  	  $TESTUSERFP
+
+# start the agent up
+FLAGS="-On $SNMP_FLAGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT"
+
+# start up the agent
+STARTAGENT
+
+########################################
+# Positive tests
+#    (should work)
+
+# ensure we can access it via a direct FP check
+DOSETTEST fingerprintIdentity "-T their_identity=$SNMPDFP $FLAGS"
+
+# directly specify the host name
+DOSETTEST hostnameIdentity "-T trust_cert=$CAFP -T their_hostname=$OURHOST $FLAGS"
+
+# This should also work because we:
+# - trust the CA cert
+# - use a session destname that matches the certificate
+DOSETTEST sessionnameIdentity "-T trust_cert=$CAFP $FLAGS"
+
+########################################
+# DONE
+
+#sleep 500
+STOPAGENT
+
+FINISHED
diff --git a/testing/fulltests/tls/STlsTrapdUser b/testing/fulltests/tls/STlsTrapdUser
new file mode 100644
index 0000000..e14c427
--- /dev/null
+++ b/testing/fulltests/tls/STlsTrapdUser
@@ -0,0 +1,87 @@
+#!/bin/sh
+
+. STlsVars
+
+#########################################
+# CERTIFICATE SETUP
+#
+
+# produce the certificates to use
+
+# snmptrapd
+HOSTNAME=`hostname`
+CAPTURE $NSCERT gencert -t snmptrapdd   --cn $HOSTNAME $NSCERTARGS
+SERVERFP=`$NSCERT showcerts --fingerprint --brief snmptrapdd  $NSCERTARGS`
+CHECKVALUEISNT "$SERVERFP" "" "generated fingerprint for snmptrapdd certificate"
+
+# user
+CAPTURE $NSCERT gencert -t snmpapp --cn 'testuser'  $NSCERTARGS
+TESTUSERFP=`$NSCERT showcerts --fingerprint --brief snmpapp $NSCERTARGS`
+CHECKVALUEISNT "$TESTUSERFP" "" "generated fingerprint for testuser certificate"
+
+# CA certificate
+
+CAPTURE $NSCERT genca --cn ca-net-snmp.org  $NSCERTARGS
+CAFP=`$NSCERT showcas --fingerprint --brief ca-net-snmp.org $NSCERTARGS`
+CHECKVALUEISNT "$CAFP" "" "generated fingerprint for ca-net-snmp.org certificate"
+
+# user 9: CA signed user cert
+CAPTURE $NSCERT gencert -t causer --with-ca ca-net-snmp.org --san email:user9@test.net-snmp.org --email user9@test.net-snmp.org  $NSCERTARGS
+CAUSERFP=`$NSCERT showcerts --fingerprint --brief causer $NSCERTARGS`
+CHECKVALUEISNT "$CAUSERFP" "" "generated fingerprint for causer certificate"
+
+#########################################
+# AGENT CONFIGURATION
+#
+
+CONFIGTRAPD '[snmp]' debugTokens tsm
+# ,tls,ssl,cert,tsm
+CONFIGTRAPD '[snmp]' doDebugging 1
+CONFIGTRAPD '[snmp]' serverCert $SERVERFP
+
+CONFIGTRAPD '[snmp]' trustCert $CAFP
+
+# common name mappings
+CONFIGTRAPD certSecName 9  $TESTUSERFP     --cn
+
+CONFIGTRAPD certSecName 100 $CAFP        --rfc822
+
+CONFIGAPP   serverCert  	  $SERVERFP
+CONFIGAPP   defSecurityModel      tsm
+
+CONFIGTRAPD  authuser log -s tsm testuser authpriv
+
+# this file contains tests common to both tls and dtls usages
+
+# start the agent up
+FLAGS="-Dtls -On $SNMP_FLAGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT"
+
+STARTTRAPD
+
+########################################
+# POST-TRAPD-STARTUP Certificates
+# user
+CAPTURE $NSCERT gencert -t snmptrap --cn 'testuser'  $NSCERTARGS
+TESTUSERFP=`$NSCERT showcerts --fingerprint --brief snmptrap $NSCERTARGS`
+CHECKVALUEISNT "$TESTUSERFP" "" "generated fingerprint for testuser certificate"
+
+######################################################################
+# ACTUAL TESTS
+#
+# Run the actual list of tests
+#
+
+# using user 1 - a common name mapped certificate
+# (using the default "snmpapp" certificate because we don't specify another)
+DOTRAPTEST user1TrapTest "$FLAGS"
+
+# failing using the CA signed cert without
+DOFAILTRAPTEST user2UnknownUser "-T our_identity=snmptrap $FLAGS"
+
+# using user 1 - sending an INFORM
+# (using the default "snmpapp" certificate because we don't specify another)
+DOTRAPTEST user1InformTest "-Ci $FLAGS"
+
+STOPTRAPD
+
+FINISHED
diff --git a/testing/fulltests/tls/STlsUsers b/testing/fulltests/tls/STlsUsers
new file mode 100644
index 0000000..2cb03a6
--- /dev/null
+++ b/testing/fulltests/tls/STlsUsers
@@ -0,0 +1,262 @@
+#!/bin/sh
+
+. STlsVars
+
+#########################################
+# CERTIFICATE SETUP
+#
+
+# produce the certificates to use
+
+# snmpd
+HOSTNAME=`hostname`
+CAPTURE $NSCERT gencert -t snmpd   --cn $HOSTNAME $NSCERTARGS
+SERVERFP=`$NSCERT showcerts --fingerprint --brief snmpd  $NSCERTARGS`
+CHECKVALUEISNT "$SERVERFP" "" "generated fingerprint for snmpd certificate"
+
+# user
+CAPTURE $NSCERT gencert -t snmpapp --cn 'testuser'  $NSCERTARGS
+TESTUSERFP=`$NSCERT showcerts --fingerprint --brief snmpapp $NSCERTARGS`
+CHECKVALUEISNT "$TESTUSERFP" "" "generated fingerprint for testuser certificate"
+
+# user 1.5
+CAPTURE $NSCERT gencert -t snmpapp2 --cn 'testuser2'  $NSCERTARGS
+TESTUSER2FP=`$NSCERT showcerts --fingerprint --brief snmpapp2 $NSCERTARGS`
+CHECKVALUEISNT "$TESTUSER2FP" "" "generated fingerprint for testuser certificate"
+
+# user 2
+CAPTURE $NSCERT gencert -t otheruser --cn 'otheruser'  $NSCERTARGS
+OTHERUSERFP=`$NSCERT showcerts --fingerprint --brief otheruser $NSCERTARGS`
+CHECKVALUEISNT "$OTHERUSERFP" "" "generated fingerprint for otheruser certificate"
+
+# user 3
+CAPTURE $NSCERT gencert -t invaliduser --cn 'invaliduser'  $NSCERTARGS
+INVALIDUSERFP=`$NSCERT showcerts --fingerprint --brief invaliduser $NSCERTARGS`
+CHECKVALUEISNT "$INVALIDUSERFP" "" "generated fingerprint for otheruser certificate"
+
+# user 4
+CAPTURE $NSCERT gencert -t unmapped --cn 'unmapped'  $NSCERTARGS
+UNMAPPEDFP=`$NSCERT showcerts --fingerprint --brief unmapped $NSCERTARGS`
+CHECKVALUEISNT "$UNMAPPEDFP" "" "generated fingerprint for unmapped certificate"
+
+# user 5
+CAPTURE $NSCERT gencert -t mappeduser --cn 'mappeduser'  $NSCERTARGS
+MAPPEDUSERFP=`$NSCERT showcerts --fingerprint --brief mappeduser $NSCERTARGS`
+CHECKVALUEISNT "$MAPPEDUSERFP" "" "generated fingerprint for mappeduser certificate"
+
+# user 6: SAN email
+CAPTURE $NSCERT gencert -t email --san email:foobaruser@example.com  $NSCERTARGS
+EMAILUSERFP=`$NSCERT showcerts --fingerprint --brief email $NSCERTARGS`
+CHECKVALUEISNT "$EMAILUSERFP" "" "generated fingerprint for email certificate"
+
+# user 7: SAN dns
+CAPTURE $NSCERT gencert -t dns --san DNS:foobar.example.com  $NSCERTARGS
+DNSUSERFP=`$NSCERT showcerts --fingerprint --brief dns $NSCERTARGS`
+CHECKVALUEISNT "$DNSUSERFP" "" "generated fingerprint for dns certificate"
+
+# user 8: SAN IPv4
+CAPTURE $NSCERT gencert -t ipaddr --san IP:127.0.0.1  $NSCERTARGS
+IPUSERFP=`$NSCERT showcerts --fingerprint --brief ipaddr $NSCERTARGS`
+CHECKVALUEISNT "$IPUSERFP" "" "generated fingerprint for ipaddr certificate"
+
+# user 8.1:  afile
+CAPTURE $NSCERT gencert -t afile --cn afileuser $NSCERTARGS
+AFILEUSERFP=`$NSCERT showcerts --fingerprint --brief afile $NSCERTARGS`
+CHECKVALUEISNT "$AFILEUSERFP" "" "generated fingerprint for afile certificate"
+
+
+# CA certificate
+
+CAPTURE $NSCERT genca --cn ca-net-snmp.org  $NSCERTARGS
+CAFP=`$NSCERT showcas --fingerprint --brief ca-net-snmp.org $NSCERTARGS`
+CHECKVALUEISNT "$CAFP" "" "generated fingerprint for ca-net-snmp.org certificate"
+
+# user 9: CA signed user cert
+CAPTURE $NSCERT gencert -t causer --with-ca ca-net-snmp.org --san email:user9@test.net-snmp.org --email user9@test.net-snmp.org  $NSCERTARGS
+CAUSERFP=`$NSCERT showcerts --fingerprint --brief causer $NSCERTARGS`
+CHECKVALUEISNT "$CAUSERFP" "" "generated fingerprint for causer certificate"
+
+CAPTURE $NSCERT gencert -t cadirect9b --with-ca ca-net-snmp.org --san email:user9b@test.net-snmp.org --email user9b@test.net-snmp.org  $NSCERTARGS
+CADIRECTFP=`$NSCERT showcerts --fingerprint --brief cadirect9b $NSCERTARGS`
+CHECKVALUEISNT "$CADIRECTFP" "" "generated fingerprint for cadirect certificate"
+
+CAPTURE $NSCERT genca --cn ca2-net-snmp.org  $NSCERTARGS
+CA2FP=`$NSCERT showcas --fingerprint --brief ca2-net-snmp.org $NSCERTARGS`
+CHECKVALUEISNT "$CA2FP" "" "generated fingerprint for ca2-net-snmp.org certificate"
+
+CAPTURE $NSCERT gencert -t cadirect9c --with-ca ca2-net-snmp.org --san email:user9c@test.net-snmp.org --email user9c@test.net-snmp.org  $NSCERTARGS
+CADIRECT9CFP=`$NSCERT showcerts --fingerprint --brief cadirect9c $NSCERTARGS`
+CHECKVALUEISNT "$CADIRECT9CFP" "" "generated fingerprint for cadirect9c certificate"
+
+CAPTURE $NSCERT gencert -t cadirect9d --with-ca ca2-net-snmp.org --san email:user9d@test.net-snmp.org --email user9d@test.net-snmp.org  $NSCERTARGS
+CADIRECT9DFP=`$NSCERT showcerts --fingerprint --brief cadirect9d $NSCERTARGS`
+CHECKVALUEISNT "$CADIRECT9DFP" "" "generated fingerprint for cadirect9d certificate"
+
+#########################################
+# AGENT CONFIGURATION
+#
+
+CONFIGAGENT '[snmp]' debugTokens tsm
+# ,tls,ssl,cert,tsm
+CONFIGAGENT '[snmp]' doDebugging 1
+CONFIGAGENT '[snmp]' logTimestamp 1
+CONFIGAGENT '[snmp]' serverCert $SERVERFP
+
+CONFIGAGENT '[snmp]' trustCert $CAFP
+CONFIGAGENT '[snmp]' trustCert $CADIRECT9CFP
+
+# common name mappings
+CONFIGAGENT certSecName 9  $TESTUSERFP     --cn
+CONFIGAGENT certSecName 10 $TESTUSER2FP    --cn
+CONFIGAGENT certSecName 11 $OTHERUSERFP    --cn
+CONFIGAGENT certSecName 12 $INVALIDUSERFP  --cn
+
+CONFIGAGENT certSecName 20 $MAPPEDUSERFP --sn aftermapping
+CONFIGAGENT certSecName 21 $EMAILUSERFP  --rfc822
+CONFIGAGENT certSecName 22 $DNSUSERFP    --dns
+CONFIGAGENT certSecName 23 $IPUSERFP     --ip
+CONFIGAGENT certSecName 24 afile         --cn
+
+CONFIGAGENT certSecName 100 $CAFP        --rfc822
+CONFIGAGENT certSecName 101 $CADIRECTFP  --sn causerdirectmap
+CONFIGAGENT certSecName 102 $CADIRECT9CFP  --sn causerdirect9cmap
+# intentionally not mapped:
+#CONFIGAGENT certSecName 1001 $CADIRECT9DFP  --sn causerdirect9dmap
+
+# *** INTENTIONALLY NOT MAPPING AT ALL: ***
+# CONFIGAGENT certSecName 1000 $UNMAPPEDFP ....
+
+CONFIGAPP   serverCert  	  $SERVERFP
+CONFIGAPP   defSecurityModel      tsm
+CONFIGAPP   logTimestamp          1
+
+CONFIGAGENT  rwuser -s tsm testuser authpriv
+CONFIGAGENT  rwuser -s tsm testuser2 authpriv
+CONFIGAGENT  rwuser -s tsm otheruser authpriv
+CONFIGAGENT  rwuser -s tsm aftermapping authpriv
+
+CONFIGAGENT  rwuser -s tsm foobaruser@example.com authpriv
+CONFIGAGENT  rwuser -s tsm foobar.example.com authpriv
+CONFIGAGENT  rwuser -s tsm 127.0.0.1 authpriv
+CONFIGAGENT  rwuser -s tsm user8@test.net-snmp.org authpriv
+CONFIGAGENT  rwuser -s tsm user9@test.net-snmp.org authpriv
+CONFIGAGENT  rwuser -s tsm user10@test.net-snmp.org authpriv
+CONFIGAGENT  rwuser -s tsm afileuser authpriv
+CONFIGAGENT  rwuser -s tsm causerdirectmap authpriv
+CONFIGAGENT  rwuser -s tsm causerdirect9cmap authpriv
+
+
+# this file contains tests common to both tls and dtls usages
+
+# start the agent up
+FLAGS="-Dtls -v3 -On $SNMP_FLAGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT"
+
+STARTAGENT
+
+# shouldn't have config errors
+CHECKAGENTCOUNT 0 ": Error:"
+
+######################################################################
+# EXTENDED CERTIFICATE SETUP
+#
+# Perform more steps of configuration that should occur *after* the
+# agent has started in order to prevent it from having seen these
+# files ahead of time.
+
+# this user's fingerprint should not be recognized 
+CAPTURE $NSCERT gencert -t unknownuser --san email:unknownuser@example.com  $NSCERTARGS
+UNKNOWNUSER=`$NSCERT showcerts --fingerprint --brief unknownuser $NSCERTARGS`
+CHECKVALUEISNT "$UNMAPPEDFP" "" "generated fingerprint for unknownuser certificate"
+
+# this user's fingerprint should not be directly recognized, but it's
+# CA should.
+
+# user 10: CA signed cert
+CAPTURE $NSCERT gencert -D -t unknowncauser --cn unknowncauser@net-snmp.org --email unknowncauser@net-snmp.org  --with-ca ca-net-snmp.org --san email:user10@test.net-snmp.org $NSCERTARGS
+UNKNOWNCAUSERFP=`$NSCERT showcerts --fingerprint --brief unknowncauser $NSCERTARGS`
+CHECKVALUEISNT "$UNKNOWNCAUSERFP" "" "generated fingerprint for unknowncauser certificate"
+
+######################################################################
+# ACTUAL TESTS
+#
+# Run the actual list of tests
+#
+
+# using user 1 - a common name mapped certificate
+# (using the default "snmpapp" certificate because we don't specify another)
+DOSETTEST user1SnmpApp "$FLAGS"
+
+# now rerun the test after specifying our default using the (same) fingerprint
+CONFIGAPP   clientCert  	  $TESTUSER2FP
+DOSETTEST user1ClientPub "$FLAGS"
+
+# using user 2 - a common name mapped certificate with a direct -T FP request
+DOSETTEST user2DashTFPFlag "-T our_identity=$OTHERUSERFP $FLAGS"
+
+CHECKAGENTCOUNT 4  "otheruser"
+
+# using user 2, specifying the file name instead of the fingerprint
+DOSETTEST user2DashTFileFlag "-T our_identity=otheruser $FLAGS"
+
+CHECKAGENTCOUNT 8  "otheruser"
+
+# using user 3 - an invalid certificate (mapped but not authorized)
+DOFAILSETTEST "invalidUnauthorizedCert" "-T our_identity=$INVALIDUSERFP $FLAGS"
+
+CHECK "authorizationError"
+
+# using user 4 - an unmapped certificate
+DOFAILSETTEST "unmappedCertificate" "-T our_identity=$UNMAPPEDFP $FLAGS"
+
+CHECK "failed rfc5343"
+
+# Check *their* certificate with a different one than expected; should fail
+DOFAILSETTEST "incorectServerCertificate" "-r 0 -T our_identity=$OTHERUSERFP -T their_identity=$OTHERUSERFP $FLAGS"
+
+CHECK "failed to verify ssl certificate"
+
+# using user 5 - a completely remapped certificate (direct specified secname)
+DOSETTEST user5RemappedSecname "-T our_identity=$MAPPEDUSERFP $FLAGS"
+
+# using user 6 - a subjectAltName=email certificate mapping
+DOSETTEST user6SANEmail "-T our_identity=$EMAILUSERFP $FLAGS"
+
+# using user 7 - a subjectAltName=dns certificate mapping
+DOSETTEST user7SANDNS "-T our_identity=$DNSUSERFP $FLAGS"
+
+# using user 8 - a subjectAltName=ipv4 certificate mapping
+DOSETTEST user8SANIP "-T our_identity=$IPUSERFP $FLAGS"
+
+# using user 8 - test that certmapping works from a local filename
+DOSETTEST afileuser "-T our_identity=afile $FLAGS"
+
+# using user 9 - a CA signed certificate
+DOSETTEST user9CASignedCert "-T our_identity=$CAUSERFP -T trust_cert=$CAFP $FLAGS"
+
+# using user 9b - a CA signed certificate with a user-based fp mapping
+DOSETTEST user9bCASignedDirectMap "-T our_identity=$CADIRECTFP $FLAGS"
+
+# using user 9c - a CA2 signed certificate with a user-based fp mapping
+DOSETTEST user9cCASignedDirectMap "-T our_identity=$CADIRECT9CFP $FLAGS"
+
+# using user 9d - a CA2 signed certificate no user-based fp mapping
+DOFAILSETTEST user9dCASignedDirectMap "-T our_identity=$CADIRECT9DFP $FLAGS"
+
+# using user unknown - the server will not have seen this fingerprint at all
+CAPTURE "snmpget -T our_identity=$UNKNOWNUSER -T trust_cert=$CAFP $FLAGS .1.3.6.1.2.1.1.6.0"
+
+# different types of failure messaages for tls/dtls...
+if [ $SNMP_TRANSPORT_SPEC = dtlsudp ]; then
+    CHECK              "failed rfc5343 contextEngineID probing"
+    CHECKAGENTCOUNT  1 "TLS Error: no certificate returned"
+else
+    CHECK              "failed to ssl_connect"
+    CHECKAGENTCOUNT  1 "Failed SSL_accept"
+fi
+
+# using the user without a known fingerprint but with a known CA
+DOSETTEST userNewFromCA " -T trust_cert=$CAFP -T our_identity=$UNKNOWNCAUSERFP $FLAGS"
+
+STOPAGENT
+
+FINISHED
diff --git a/testing/fulltests/tls/STlsVars b/testing/fulltests/tls/STlsVars
new file mode 100644
index 0000000..bba84f9
--- /dev/null
+++ b/testing/fulltests/tls/STlsVars
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+export SNMP_TRANSPORT_SPEC
+export SNMP_SNMPTRAPD_PORT
+export SNMP_SNMPD_PORT
+export SNMP_TEST_DEST
+
+export NET_SNMP_CRT_CFGTOOL="${builddir}/net-snmp-config"
+NSCERT="perl $SNMP_BASEDIR/../../../local/net-snmp-cert -I"
+NSCERTARGS="-C $SNMP_TMPDIR"
+
+DOSETTEST() {
+  value=$1
+  args=$2
+
+  # SNMPv2-MIB::sysLocation.0
+  CAPTURE "snmpset $args .1.3.6.1.2.1.1.6.0 s '$value'"
+
+  CAPTURE "snmpget $args .1.3.6.1.2.1.1.6.0"
+
+  CHECK "STRING: '$value'"
+}
+
+
+DOFAILSETTEST() {
+  value=$1
+  args=$2
+
+  # SNMPv2-MIB::sysLocation.0
+  CAPTURE "snmpset $args .1.3.6.1.2.1.1.6.0 s '$value'"
+
+  CAPTURE "snmpget $args .1.3.6.1.2.1.1.6.0"
+
+  CHECKCOUNT 0 "$value"
+}
+
+DOTRAPTEST() {
+  value=$1
+  args=$2
+
+  # IF-MIB::linkUp
+  CAPTURE "snmptrap $args 0 .1.3.6.1.6.3.1.1.5.4 system.sysContact.0 s $value"
+
+  CHECKTRAPD "STRING: $value"
+}
+
+DOFAILTRAPTEST() {
+  value=$1
+  args=$2
+
+  # IF-MIB::linkUp
+  CAPTURE "snmptrap $args 0 .1.3.6.1.6.3.1.1.5.4 system.sysContact.0 s $value"
+
+  CHECKTRAPDCOUNT 0 "$value"
+}
+
diff --git a/testing/fulltests/tls/STsmPrefix b/testing/fulltests/tls/STsmPrefix
new file mode 100644
index 0000000..ec0f8d6
--- /dev/null
+++ b/testing/fulltests/tls/STsmPrefix
@@ -0,0 +1,86 @@
+#!/bin/sh
+
+. STlsVars
+
+# this file contains tests common to both tls and dtls usages
+
+export NET_SNMP_CRT_CFGTOOL="${builddir}/net-snmp-config"
+NSCERT="perl $SNMP_BASEDIR/../../../local/net-snmp-cert"
+NSCERTARGS="-I -C $SNMP_TMPDIR"
+
+TLSDIR=$SNMP_TMPDIR/tls
+
+#########################################
+# Create the certificates
+
+# create the ca
+CAPTURE $NSCERT genca --cn ca-net-snmp.org  $NSCERTARGS
+
+# snmpd
+HOSTNAME=`hostname`
+CAPTURE $NSCERT gencert --with-ca ca-net-snmp.org -t snmpd --cn $HOSTNAME $NSCERTARGS
+SERVERFP=`$NSCERT showcerts --fingerprint --brief snmpd  $NSCERTARGS`
+CHECKVALUEISNT "$SERVERFP" "" "generated fingerprint for snmpd certificate"
+
+# user
+CAPTURE $NSCERT gencert --with-ca ca-net-snmp.org -t snmpapp --cn 'testuser'  $NSCERTARGS
+TESTUSERFP=`$NSCERT showcerts --fingerprint --brief snmpapp $NSCERTARGS`
+CHECKVALUEISNT "$TESTUSERFP" "" "generated fingerprint for testuser certificate"
+
+# user2
+CAPTURE $NSCERT gencert --with-ca ca-net-snmp.org -t snmpapp2 --cn 'testuser2'  $NSCERTARGS
+TESTUSER2FP=`$NSCERT showcerts --fingerprint --brief snmpapp2 $NSCERTARGS`
+CHECKVALUEISNT "$TESTUSER2FP" "" "generated fingerprint for testuser2 certificate"
+
+CONFIGAPP serverCert $SERVERFP
+CONFIGAGENT certSecName 9  $TESTUSERFP     --cn
+CONFIGAGENT certSecName 10  $TESTUSER2FP     --cn
+CONFIGAGENT  rwuser -s tsm testuser authpriv
+CONFIGAGENT  rwuser -s tsm $TSM_PREFIX:testuser2 authpriv
+CONFIGAGENT rocommunity public
+
+#
+# Start the agent
+#
+AGENT_FLAGS="-Dtsm udp:9999"
+FLAGS="-On $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT"
+STARTAGENT
+
+CAPTURE "snmpget -Dssl $FLAGS .1.3.6.1.2.1.190.1.2.1.0"
+CHECK ".1.3.6.1.2.1.190.1.2.1.0 = INTEGER: false"
+
+# using user 1 - a common name mapped certificate
+# (using the default "snmpapp" certificate because we don't specify another)
+CAPTURE "snmpget -Dssl $FLAGS .1.3.6.1.2.1.1.3.0"
+
+CHECK       ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+# using user 2 should now fail because no prefix is applied
+CAPTURE "snmpget -T our_identity=snmpapp2 -Dssl $FLAGS .1.3.6.1.2.1.1.3.0"
+
+CHECKCOUNT 0 ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+CHECK "authorizationError"
+
+# set the TSM prefix scalar to 1 to turn on prefixing
+CAPTURE "snmpset -Dssl $FLAGS .1.3.6.1.2.1.190.1.2.1.0 i 1"
+
+
+# using user 2 should now work and the prefix should have been added
+# to the securityName, so the agent now accepts it
+CAPTURE "snmpget -T our_identity=snmpapp2 -Dssl $FLAGS .1.3.6.1.2.1.190.1.2.1.0"
+
+CHECK ".1.3.6.1.2.1.190.1.2.1.0 = INTEGER: true"
+
+# using user 1 should now fail because the prefix has added to the
+# securityName, so the agent now accepts it
+CAPTURE "snmpget -Dssl $FLAGS .1.3.6.1.2.1.1.3.0"
+
+CHECKCOUNT 0 ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+CHECK "authorizationError"
+
+CAPTURE "snmpget -v 1 -c public 127.0.0.1:9999 .1.3.6.1.2.1.190.1.2.1.0"
+
+# cleanup
+STOPAGENT
+
+FINISHED
diff --git a/testing/fulltests/tls/T101DtlsUser_simple b/testing/fulltests/tls/T101DtlsUser_simple
new file mode 100755
index 0000000..10caede
--- /dev/null
+++ b/testing/fulltests/tls/T101DtlsUser_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER DTLS-UDP user certificate tests
+
+SKIPIFNOT NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=dtlsudp
+
+. ./STlsUsers
diff --git a/testing/fulltests/tls/T102TlsUser_simple b/testing/fulltests/tls/T102TlsUser_simple
new file mode 100644
index 0000000..a3fe119
--- /dev/null
+++ b/testing/fulltests/tls/T102TlsUser_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER TLS-TCP user certificate tests
+
+SKIPIFNOT NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=tlstcp
+
+. ./STlsUsers
diff --git a/testing/fulltests/tls/T111DtlsServer_simple b/testing/fulltests/tls/T111DtlsServer_simple
new file mode 100644
index 0000000..6b42494
--- /dev/null
+++ b/testing/fulltests/tls/T111DtlsServer_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER DTLS-UDP server certificate tests
+
+SKIPIFNOT NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=dtlsudp
+
+. ./STlsName
diff --git a/testing/fulltests/tls/T112TlsServer_simple b/testing/fulltests/tls/T112TlsServer_simple
new file mode 100644
index 0000000..adefa94
--- /dev/null
+++ b/testing/fulltests/tls/T112TlsServer_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER TLS-TCP server certificate tests
+
+SKIPIFNOT NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=tlstcp
+
+. ./STlsName
diff --git a/testing/fulltests/tls/T113DtlsSan_simple b/testing/fulltests/tls/T113DtlsSan_simple
new file mode 100644
index 0000000..1edb3c5
--- /dev/null
+++ b/testing/fulltests/tls/T113DtlsSan_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER DTLS-UDP server SAN tests
+
+SKIPIFNOT NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=dtlsudp
+
+. ./STlsSan
diff --git a/testing/fulltests/tls/T114TlsSan_simple b/testing/fulltests/tls/T114TlsSan_simple
new file mode 100644
index 0000000..af5e8bc
--- /dev/null
+++ b/testing/fulltests/tls/T114TlsSan_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER TLS-TCP server SAN tests
+
+SKIPIFNOT NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=tlstcp
+
+. ./STlsSan
diff --git a/testing/fulltests/tls/T115DtlsSanSession_simple b/testing/fulltests/tls/T115DtlsSanSession_simple
new file mode 100644
index 0000000..b9d5fcd
--- /dev/null
+++ b/testing/fulltests/tls/T115DtlsSanSession_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER DTLS-UDP server SAN tests using session desthost
+
+SKIPIFNOT NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=dtlsudp
+
+. ./STlsSanSession
diff --git a/testing/fulltests/tls/T116TlsSanSession_simple b/testing/fulltests/tls/T116TlsSanSession_simple
new file mode 100644
index 0000000..191fcf3
--- /dev/null
+++ b/testing/fulltests/tls/T116TlsSanSession_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER TLS-TCP server SAN tests using session desthost
+
+SKIPIFNOT NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=tlstcp
+
+. ./STlsSanSession
diff --git a/testing/fulltests/tls/T117DtlsCNSession_simple b/testing/fulltests/tls/T117DtlsCNSession_simple
new file mode 100644
index 0000000..0beea55
--- /dev/null
+++ b/testing/fulltests/tls/T117DtlsCNSession_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER DTLS-UDP server commonName tests using session desthost
+
+SKIPIFNOT NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=dtlsudp
+
+. ./STlsCNSession
diff --git a/testing/fulltests/tls/T118TlsCNSession_simple b/testing/fulltests/tls/T118TlsCNSession_simple
new file mode 100644
index 0000000..305ab46
--- /dev/null
+++ b/testing/fulltests/tls/T118TlsCNSession_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER TLS-TCP server commonName tests using session desthost
+
+SKIPIFNOT NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=tlstcp
+
+. ./STlsCNSession
diff --git a/testing/fulltests/tls/T121DtlsTrap_simple b/testing/fulltests/tls/T121DtlsTrap_simple
new file mode 100644
index 0000000..5c7c7bc
--- /dev/null
+++ b/testing/fulltests/tls/T121DtlsTrap_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER DTLS-UDP trap tests
+
+SKIPIFNOT NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=dtlsudp
+
+. ./STlsTrapdUser
diff --git a/testing/fulltests/tls/T122TlsTrap_simple b/testing/fulltests/tls/T122TlsTrap_simple
new file mode 100644
index 0000000..e8aee17
--- /dev/null
+++ b/testing/fulltests/tls/T122TlsTrap_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER TLS-TCP trap tests
+
+SKIPIFNOT NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=tlstcp
+
+. ./STlsTrapdUser
diff --git a/testing/fulltests/tls/T131DtlsAgentTrap_simple b/testing/fulltests/tls/T131DtlsAgentTrap_simple
new file mode 100644
index 0000000..846faa9
--- /dev/null
+++ b/testing/fulltests/tls/T131DtlsAgentTrap_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER DTLS-UDP agent trap tests
+
+SKIPIFNOT NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=dtlsudp
+
+. ./STlsAgentTrap
diff --git a/testing/fulltests/tls/T132TlsAgentTrap_simple b/testing/fulltests/tls/T132TlsAgentTrap_simple
new file mode 100644
index 0000000..cb44013
--- /dev/null
+++ b/testing/fulltests/tls/T132TlsAgentTrap_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER TLS-TCP agent trap tests
+
+SKIPIFNOT NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=tlstcp
+
+. ./STlsAgentTrap
diff --git a/testing/fulltests/tls/T141DtlsCrl_simple b/testing/fulltests/tls/T141DtlsCrl_simple
new file mode 100644
index 0000000..92a8e4f
--- /dev/null
+++ b/testing/fulltests/tls/T141DtlsCrl_simple
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER DTLS-UDP CRL Handling
+
+SKIPIFNOT NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=dtlsudp
+export SNMP_TRANSPORT_SPEC
+export SNMP_SNMPD_PORT
+export SNMP_TEST_DEST
+
+. ./SCrl
diff --git a/testing/fulltests/tls/T142TlsCrl_simple b/testing/fulltests/tls/T142TlsCrl_simple
new file mode 100644
index 0000000..2723c13
--- /dev/null
+++ b/testing/fulltests/tls/T142TlsCrl_simple
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER TLS-TCP CRL Handling
+
+SKIPIFNOT NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=tlstcp
+export SNMP_TRANSPORT_SPEC
+export SNMP_SNMPD_PORT
+export SNMP_TEST_DEST
+
+. ./SCrl
diff --git a/testing/fulltests/tls/T151DtlsCiphers_simple b/testing/fulltests/tls/T151DtlsCiphers_simple
new file mode 100644
index 0000000..6cbbec4
--- /dev/null
+++ b/testing/fulltests/tls/T151DtlsCiphers_simple
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER DTLS-UDP Cipher Selection
+
+SKIPIFNOT NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=dtlsudp
+export SNMP_TRANSPORT_SPEC
+export SNMP_SNMPD_PORT
+export SNMP_TEST_DEST
+
+. SCipherTests
diff --git a/testing/fulltests/tls/T152TlsCiphers_simple b/testing/fulltests/tls/T152TlsCiphers_simple
new file mode 100644
index 0000000..c828dc9
--- /dev/null
+++ b/testing/fulltests/tls/T152TlsCiphers_simple
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER TLS-TCP Cipher Selection
+
+SKIPIFNOT NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=tlstcp
+export SNMP_TRANSPORT_SPEC
+export SNMP_SNMPD_PORT
+export SNMP_TEST_DEST
+
+. SCipherTests
diff --git a/testing/fulltests/tls/T200TlsIpv6_simple b/testing/fulltests/tls/T200TlsIpv6_simple
new file mode 100644
index 0000000..5e37f4c
--- /dev/null
+++ b/testing/fulltests/tls/T200TlsIpv6_simple
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER TLS-TCP over IPV6
+
+SKIPIFNOT NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+SKIPIFNOT NETSNMP_TRANSPORT_TLSIPV6_DOMAIN
+
+# ensure we have a localhost6 entry
+
+# XXX: this stems from broken issues in openssl that refuse [::1]:
+# style accept strings (it works for client connections).
+grep localhost6 /etc/hosts > /dev/null 2>&1
+if [ $? = 1 ] ; then
+    SKIP This test requires a localhost6 entry in /etc/hosts
+fi
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=tlstcp
+SNMP_TEST_DEST='localhost6:'
+export SNMP_TRANSPORT_SPEC
+export SNMP_SNMPD_PORT
+export SNMP_TEST_DEST
+
+. ../transports/Stlstests
diff --git a/testing/fulltests/tls/T300TlsPerl.t b/testing/fulltests/tls/T300TlsPerl.t
new file mode 100644
index 0000000..fb8edb9
--- /dev/null
+++ b/testing/fulltests/tls/T300TlsPerl.t
@@ -0,0 +1,8 @@
+#!/usr/bin/perl
+
+# HEADER Perl TLS/TCP Test
+
+$agentaddress = "tlstcp:localhost:9875";
+$feature = "NETSNMP_TRANSPORT_TLSTCP_DOMAIN";
+
+do "$ENV{'srcdir'}/testing/fulltests/tls/S300tlsperl.pl";
diff --git a/testing/fulltests/tls/T301DtlsPerl.t b/testing/fulltests/tls/T301DtlsPerl.t
new file mode 100644
index 0000000..3d980c7
--- /dev/null
+++ b/testing/fulltests/tls/T301DtlsPerl.t
@@ -0,0 +1,8 @@
+#!/usr/bin/perl
+
+# HEADER Perl DTLS/UDP Test
+
+$agentaddress = "dtlsudp:localhost:9875";
+$feature = "NETSNMP_TRANSPORT_TLSTCP_DOMAIN";
+
+do "$ENV{'srcdir'}/testing/fulltests/tls/S300tlsperl.pl";
diff --git a/testing/fulltests/tls/T401DtlsTsmPrefix_simple b/testing/fulltests/tls/T401DtlsTsmPrefix_simple
new file mode 100644
index 0000000..dc85ad9
--- /dev/null
+++ b/testing/fulltests/tls/T401DtlsTsmPrefix_simple
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER TSM prefixing support for DTLS/UDP
+
+SKIPIFNOT NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=dtlsudp
+export SNMP_TRANSPORT_SPEC
+export SNMP_SNMPD_PORT
+export SNMP_TEST_DEST
+TSM_PREFIX=dtls
+
+. ./STsmPrefix
diff --git a/testing/fulltests/tls/T402TlsTsmPrefix_simple b/testing/fulltests/tls/T402TlsTsmPrefix_simple
new file mode 100644
index 0000000..0c62eef
--- /dev/null
+++ b/testing/fulltests/tls/T402TlsTsmPrefix_simple
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER TSM prefixing support for TLS/TCP
+
+SKIPIFNOT NETSNMP_TRANSPORT_TLSTCP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=tlstcp
+TSM_PREFIX=tls
+
+. ./STsmPrefix
diff --git a/testing/fulltests/transports/Stlstests b/testing/fulltests/transports/Stlstests
new file mode 100644
index 0000000..21b2b82
--- /dev/null
+++ b/testing/fulltests/transports/Stlstests
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+# this file contains tests common to both tls and dtls usages
+
+export NET_SNMP_CRT_CFGTOOL="${builddir}/net-snmp-config"
+NSCERT="perl $SNMP_BASEDIR/../../../local/net-snmp-cert -I"
+NSCERTARGS="-C $SNMP_TMPDIR"
+
+#########################################
+# Create the certificates
+
+# snmpd
+HOSTNAME=`hostname`
+CAPTURE $NSCERT gencert -t snmpd   --cn $HOSTNAME $NSCERTARGS
+SERVERFP=`$NSCERT showcerts --fingerprint --brief snmpd  $NSCERTARGS`
+CHECKVALUEISNT "$SERVERFP" "" "generated fingerprint for snmpd certificate"
+
+# user
+CAPTURE $NSCERT gencert -t snmpapp --cn 'testuser'  $NSCERTARGS
+TESTUSERFP=`$NSCERT showcerts --fingerprint --brief snmpapp $NSCERTARGS`
+CHECKVALUEISNT "$TESTUSERFP" "" "generated fingerprint for testuser certificate"
+
+########################################
+# Configure the .conf files
+
+CONFIGAPP serverCert $SERVERFP
+
+# common name mappings
+CONFIGAGENT certSecName 9  $TESTUSERFP     --cn
+CONFIGAGENT  rwuser -s tsm testuser authpriv
+
+######################################################################
+# Run the actual list of tests
+#
+
+# start the agent up
+FLAGS="-On $SNMP_FLAGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT"
+
+STARTAGENT
+
+# using user 1 - a common name mapped certificate
+# (using the default "snmpapp" certificate because we don't specify another)
+CAPTURE "snmpget $FLAGS .1.3.6.1.2.1.1.3.0"
+
+CHECK       ".1.3.6.1.2.1.1.3.0 = Timeticks:"
+
+STOPAGENT
+
+FINISHED
diff --git a/testing/tests/Stransport b/testing/fulltests/transports/Stransport
similarity index 83%
rename from testing/tests/Stransport
rename to testing/fulltests/transports/Stransport
index afdb131..b33ff577 100755
--- a/testing/tests/Stransport
+++ b/testing/fulltests/transports/Stransport
@@ -1,9 +1,11 @@
+SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
+
 export SNMP_TRANSPORT_SPEC
 export SNMP_SNMPD_PORT
 export SNMP_TEST_DEST
 
 # configure the agent to accept user initial with noAuthNoPriv
-. ./Sv3config
+. ../default/Sv3config
 
 STARTAGENT
 
diff --git a/testing/fulltests/transports/T300udp_simple b/testing/fulltests/transports/T300udp_simple
new file mode 100644
index 0000000..65a67f0
--- /dev/null
+++ b/testing/fulltests/transports/T300udp_simple
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER UDP Transport
+
+SKIPIFNOT NETSNMP_TRANSPORT_UDP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=udp
+
+. ./Stransport
diff --git a/testing/tests/T310tcp b/testing/fulltests/transports/T310tcp_simple
similarity index 68%
rename from testing/tests/T310tcp
rename to testing/fulltests/transports/T310tcp_simple
index 6349bf3..50c6a8a 100644
--- a/testing/tests/T310tcp
+++ b/testing/fulltests/transports/T310tcp_simple
@@ -1,10 +1,9 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER TCP Transport
 
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
 SKIPIFNOT NETSNMP_TRANSPORT_TCP_DOMAIN
 
 #
diff --git a/testing/tests/T320udpv6 b/testing/fulltests/transports/T320udpv6_simple
similarity index 72%
rename from testing/tests/T320udpv6
rename to testing/fulltests/transports/T320udpv6_simple
index 54260b2..6a607c6 100644
--- a/testing/tests/T320udpv6
+++ b/testing/fulltests/transports/T320udpv6_simple
@@ -1,10 +1,9 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER UDP6 Transport
 
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
 SKIPIFNOT NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
 
 #
diff --git a/testing/tests/T330tcpv6 b/testing/fulltests/transports/T330tcpv6_simple
similarity index 72%
rename from testing/tests/T330tcpv6
rename to testing/fulltests/transports/T330tcpv6_simple
index bf39951..09eb350 100644
--- a/testing/tests/T330tcpv6
+++ b/testing/fulltests/transports/T330tcpv6_simple
@@ -1,10 +1,9 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER TCP6 Transport
 
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
 SKIPIFNOT NETSNMP_TRANSPORT_TCPIPV6_DOMAIN
 
 #
diff --git a/testing/tests/T350unix b/testing/fulltests/transports/T350unix_simple
similarity index 77%
rename from testing/tests/T350unix
rename to testing/fulltests/transports/T350unix_simple
index cfd96a0..053ba1f 100644
--- a/testing/tests/T350unix
+++ b/testing/fulltests/transports/T350unix_simple
@@ -1,10 +1,9 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER Unix Transport
 
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
 SKIPIFNOT NETSNMP_TRANSPORT_UNIX_DOMAIN
 
 #
diff --git a/testing/fulltests/transports/T360dtlsudp_simple b/testing/fulltests/transports/T360dtlsudp_simple
new file mode 100644
index 0000000..5899378
--- /dev/null
+++ b/testing/fulltests/transports/T360dtlsudp_simple
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER DTLS-UDP Transport
+
+SKIPIFNOT NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=dtlsudp
+export SNMP_TRANSPORT_SPEC
+export SNMP_SNMPD_PORT
+export SNMP_TEST_DEST
+
+. ./Stlstests
diff --git a/testing/fulltests/transports/T361tlstcp_simple b/testing/fulltests/transports/T361tlstcp_simple
new file mode 100644
index 0000000..7972a2e
--- /dev/null
+++ b/testing/fulltests/transports/T361tlstcp_simple
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+. ../support/simple_eval_tools.sh
+
+HEADER TLS-TCP Transport
+
+SKIPIFNOT NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
+
+#
+# Begin test
+#
+
+SNMP_TRANSPORT_SPEC=tlstcp
+export SNMP_TRANSPORT_SPEC
+export SNMP_SNMPD_PORT
+export SNMP_TEST_DEST
+
+. ./Stlstests
diff --git a/testing/tests/T399alias b/testing/fulltests/transports/T399alias_simple
similarity index 87%
rename from testing/tests/T399alias
rename to testing/fulltests/transports/T399alias_simple
index d874e35..5f48311 100644
--- a/testing/tests/T399alias
+++ b/testing/fulltests/transports/T399alias_simple
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-. ../eval_tools.sh
+. ../support/simple_eval_tools.sh
 
 HEADER ALIAS Transport
 
@@ -12,7 +12,7 @@
 #
 
 # configure the agent to accept user initial with noAuthNoPriv
-. ./Sv3config
+. ../default/Sv3config
 
 CONFIGAPP alias aliastest udp:localhost:$SNMP_SNMPD_PORT
 CONFIGAGENT '[snmp]' alias aliastest udp:localhost:$SNMP_SNMPD_PORT
diff --git a/testing/tests/test-localhost.cert b/testing/fulltests/transports/test-localhost.cert
similarity index 100%
rename from testing/tests/test-localhost.cert
rename to testing/fulltests/transports/test-localhost.cert
diff --git a/testing/tests/test-localhost.priv b/testing/fulltests/transports/test-localhost.priv
similarity index 100%
rename from testing/tests/test-localhost.priv
rename to testing/fulltests/transports/test-localhost.priv
diff --git a/testing/tests/test-user.cert b/testing/fulltests/transports/test-user.cert
similarity index 100%
rename from testing/tests/test-user.cert
rename to testing/fulltests/transports/test-user.cert
diff --git a/testing/tests/test-user.priv b/testing/fulltests/transports/test-user.priv
similarity index 100%
rename from testing/tests/test-user.priv
rename to testing/fulltests/transports/test-user.priv
diff --git a/testing/fulltests/unit-tests/T001defaultstore_clib.c b/testing/fulltests/unit-tests/T001defaultstore_clib.c
new file mode 100644
index 0000000..0144f7d
--- /dev/null
+++ b/testing/fulltests/unit-tests/T001defaultstore_clib.c
@@ -0,0 +1,35 @@
+/* HEADER Testing the default_store API */
+int i, j;
+char buf[1024];
+
+/* first we load everything up */
+
+for(i = 0; i < NETSNMP_DS_MAX_IDS; i++) {
+    /* booleans */
+    for(j = 0; j < NETSNMP_DS_MAX_SUBIDS; j++) {
+        OKF(SNMPERR_SUCCESS == netsnmp_ds_set_boolean(i, j, (i*j)%2),
+            ("default store boolean: setting %d/%d returned failure", i, j));
+        OKF(SNMPERR_SUCCESS == netsnmp_ds_set_int(i, j, i*j),
+            ("default store int: setting %d/%d returned failure", i, j));
+        sprintf(buf,"%d/%d", i, j);
+        OKF(SNMPERR_SUCCESS == netsnmp_ds_set_string(i, j, buf),
+            ("default store string: setting %d/%d returned failure", i, j));
+    }
+}
+    
+/* then we check all the values */
+
+for(i = 0; i < NETSNMP_DS_MAX_IDS; i++) {
+    /* booleans */
+    for(j = 0; j < NETSNMP_DS_MAX_SUBIDS; j++) {
+        OKF(netsnmp_ds_get_boolean(i, j) == (i*j)%2,
+            ("default store boolean %d/%d was the expected value", i, j));
+        OKF(netsnmp_ds_get_int(i, j) == (i*j),
+            ("default store int %d/%d was the expected value", i, j));
+        sprintf(buf,"%d/%d", i, j);
+        OKF(strcmp(netsnmp_ds_get_string(i, j), buf) == 0,
+            ("default store string %d/%d was the expected value", i, j));
+    }
+}
+
+netsnmp_ds_shutdown();
diff --git a/testing/fulltests/unit-tests/T002containers_clib.c b/testing/fulltests/unit-tests/T002containers_clib.c
new file mode 100644
index 0000000..99b2e94
--- /dev/null
+++ b/testing/fulltests/unit-tests/T002containers_clib.c
@@ -0,0 +1,35 @@
+/* HEADER Testing the container API */
+
+netsnmp_container *container;
+void *p;
+
+init_snmp("container-test");
+container = netsnmp_container_find("fifo");
+container->compare = (netsnmp_container_compare*) strcmp;
+
+CONTAINER_INSERT(container, "foo");
+CONTAINER_INSERT(container, "bar");
+CONTAINER_INSERT(container, "baz");
+
+OK(CONTAINER_FIND(container, "bar") != NULL,
+   "should be able to find the stored 'bar' string");
+
+OK(CONTAINER_FIND(container, "foobar") == NULL,
+   "shouldn't be able to find the (not) stored 'foobar' string");
+
+OK(CONTAINER_SIZE(container) == 3,
+   "container has the proper size for the elements we've added");
+
+CONTAINER_REMOVE(container, "bar");
+
+OK(CONTAINER_FIND(container, "bar") == NULL,
+   "should no longer be able to find the (reoved) 'bar' string");
+
+OK(CONTAINER_SIZE(container) == 2,
+   "container has the proper size for the elements after a removal");
+
+while ((p = CONTAINER_FIRST(container)))
+  CONTAINER_REMOVE(container, p);
+CONTAINER_FREE(container);
+
+snmp_shutdown("container-test");
diff --git a/testing/fulltests/unit-tests/T003copy_nword_clib.c b/testing/fulltests/unit-tests/T003copy_nword_clib.c
new file mode 100644
index 0000000..7d67ed0
--- /dev/null
+++ b/testing/fulltests/unit-tests/T003copy_nword_clib.c
@@ -0,0 +1,142 @@
+/* HEADER Testing copy_nword */
+
+#define ASSERT1(cond)                                           \
+  do {                                                          \
+    ++__test_counter;                                           \
+    if ((cond))                                                 \
+      printf("ok %d\n", __test_counter);                        \
+    else {                                                      \
+      printf("not ok %d - %d: %s failed\n",                     \
+             __test_counter, __LINE__, #cond);                  \
+    }                                                           \
+  } while (0)
+
+#define ASSERT2(cond, on_error)                                 \
+  do {                                                          \
+    ++__test_counter;                                           \
+    if ((cond))                                                 \
+      printf("ok %d\n", __test_counter);                        \
+    else {                                                      \
+      printf("not ok %d - %d: %s failed, ",                     \
+             __test_counter, __LINE__, #cond);                  \
+      printf on_error ;                                         \
+    }                                                           \
+  } while (0)
+
+{
+  /* A quoted string */
+  char input[] = "\"The red rose\"";
+  char output[sizeof(input)] = "";
+  char* run = copy_nword(input, output, sizeof(output));
+  ASSERT2(strcmp(output, "The red rose") == 0,
+          ("output = >%s<\n", output));
+  ASSERT1(run == NULL);
+}
+
+{
+  /* Escaped quotes */
+  char input[] = "\\\"The red rose\\\"";
+  char output[sizeof(input)] = "";
+  char* run = copy_nword(input, output, sizeof(output));
+  ASSERT2(strcmp(output, "\"The") == 0, ("output = >%s<\n", output));
+  ASSERT2(run == input + 6,
+          ("run = input + %" NETSNMP_PRIz "d\n", run - input));
+  run = copy_nword(run, output, sizeof(output));
+  ASSERT2(strcmp(output, "red") == 0, ("output = >%s<\n", output));
+  ASSERT2(run == input + 10,
+          ("run = input + %" NETSNMP_PRIz "d\n", run - input));
+  run = copy_nword(run, output, sizeof(output));
+  ASSERT2(strcmp(output, "rose\"") == 0, ("output = >%s<\n", output));
+  ASSERT1(run == NULL);
+}
+
+{
+  /* Unterminated "-quote */
+  char input[] = "\"The";
+  char output[sizeof(input)] = "";
+  char* run = copy_nword(input, output, sizeof(output));
+  ASSERT2(strcmp(output, "The") == 0, ("output = >%s<\n", output));
+  ASSERT1(run == NULL);
+}
+
+{
+  /* Unterminated '-quote */
+  char input[] = "\'The";
+  char output[sizeof(input)] = "";
+  char* run = copy_nword(input, output, sizeof(output));
+  ASSERT2(strcmp(output, "The") == 0, ("output = >%s<\n", output));
+  ASSERT1(run == NULL);
+}
+
+{
+  /* Extract from NULL */
+  char output[10] = "";
+  char* run = NULL;
+  run = copy_nword(run, output, sizeof(output));
+  ASSERT1(run == NULL);
+}
+
+{
+  /* Extract to NULL */
+  char input[] = "The red rose";
+  char* output = NULL;
+  char* run = copy_nword(input, output, sizeof(output));
+  ASSERT1(run == NULL);
+}
+
+{
+  /* Long token */
+  char input[] = "\"Very long token that overflows the buffer\" foo";
+  char output[10] = "";
+  char* run = copy_nword(input, output, sizeof(output));
+  ASSERT2(strcmp(output, "Very long") == 0, ("output = >%s<\n", output));
+  ASSERT2(run == input + 44,
+          ("run = input + %" NETSNMP_PRIz "d\n", run - input));
+}
+
+{
+  /* Quoted end of string / embedded \0 */
+  char input[] = "The\\\0red rose";
+  char output[sizeof(input)] = "";
+  char* run = copy_nword(input, output, sizeof(output));
+  ASSERT2(strcmp(output, "The\\") == 0, ("output = >%s<\n", output));
+  ASSERT1(run == NULL);
+}
+
+{
+  /* Empty string */
+  char input[] = "";
+  char output[sizeof(input) + 1] = "X";
+  char* run = copy_nword(input, output, sizeof(output));
+  ASSERT2(strcmp(output, "") == 0, ("output = >%s<\n", output));
+  ASSERT2(run == NULL, ("run = >%s<\n", run));
+}
+
+{
+  /* Whitespace string */
+  char input[] = "    \t   ";
+  char output[sizeof(input)] = "X";
+  char* run = copy_nword(input, output, sizeof(output));
+  ASSERT2(strcmp(output, "") == 0, ("output = >%s<\n", output));
+  ASSERT2(run == NULL, ("run = >%s<\n", run));
+}
+
+{
+  /* Quote, no whitespace after */
+  char input[] = "\"The\"red rose";
+  char output[sizeof(input)] = "";
+  char* run = copy_nword(input, output, sizeof(output));
+  ASSERT2(strcmp(output, "The") == 0, ("output = >%s<\n", output));
+  ASSERT2(run == input + 5,
+          ("run = input + %" NETSNMP_PRIz "d\n", run - input));
+}
+
+{
+  /* Quote, no whitespace before */
+  char input[] = "The\"red\" rose";
+  char output[sizeof(input)] = "";
+  char* run = copy_nword(input, output, sizeof(output));
+  ASSERT2(strcmp(output, "The\"red\"") == 0, ("output = >%s<\n", output));
+  ASSERT2(run == input + 9,
+          ("run = input + %" NETSNMP_PRIz "d\n", run - input));
+}
diff --git a/testing/fulltests/unit-tests/T004snmp_enum_clib.c b/testing/fulltests/unit-tests/T004snmp_enum_clib.c
new file mode 100644
index 0000000..72ee5c9
--- /dev/null
+++ b/testing/fulltests/unit-tests/T004snmp_enum_clib.c
@@ -0,0 +1,105 @@
+/* HEADER Testing snmp_enum */
+
+#define CONFIG_TYPE "snmp-enum-unit-test"
+#define STRING1 "life, and everything"
+#define STRING2 "restaurant at the end of the universe"
+#define STRING3 "label3"
+#define LONG_STRING "a-string-of-255-characters-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
+
+#define STORE_AND_COMPARE(maj, min, s)                                  \
+    {                                                                   \
+        FILE *fp;                                                       \
+        int read = 0;                                                   \
+        char *p, contents[4096];                                        \
+                                                                        \
+        se_store_list(maj, min, CONFIG_TYPE);                           \
+        fp = fopen(tmp_persist_file, "r");                              \
+        if (fp) {                                                       \
+            read = fread(contents, 1, sizeof(contents) - 1, fp);        \
+            fclose(fp);                                                 \
+        }                                                               \
+        contents[read > 0 ? read : 0] = '\0';                           \
+        for (p = contents; *p; ++p)                                     \
+            if (*p == '\n')                                             \
+                *p = '|';                                               \
+        OKF(strcmp(contents, (s)) == 0,                                 \
+            ("stored list %s <> %s", (s), contents));                   \
+        remove(tmp_persist_file);                                       \
+    }
+
+char tmp_persist_file[256];
+char *se_find_result;
+
+sprintf(tmp_persist_file, "/tmp/snmp-enum-unit-test-%d", getpid());
+netsnmp_setenv("SNMP_PERSISTENT_FILE", tmp_persist_file, 1);
+
+init_snmp_enum("snmp");
+
+STORE_AND_COMPARE(1, 1, "enum 1:1|");
+
+se_add_pair(1, 1, strdup("hi"), 1);
+
+STORE_AND_COMPARE(1, 1, "enum 1:1 1:hi|");
+
+se_add_pair(1, 1, strdup("there"), 2);
+
+STORE_AND_COMPARE(1, 1, "enum 1:1 1:hi 2:there|");
+
+se_add_pair(1, 1, strdup(LONG_STRING), 3);
+se_add_pair(1, 1, strdup(LONG_STRING), 4);
+se_add_pair(1, 1, strdup(LONG_STRING), 5);
+se_add_pair(1, 1, strdup(LONG_STRING), 6);
+se_add_pair(1, 1, strdup(LONG_STRING), 7);
+se_add_pair(1, 1, strdup(LONG_STRING), 8);
+se_add_pair(1, 1, strdup(LONG_STRING), 9);
+
+STORE_AND_COMPARE(1, 1, "enum 1:1 1:hi 2:there 3:" LONG_STRING " 4:" LONG_STRING
+                 " 5:" LONG_STRING " 6:" LONG_STRING " 7:" LONG_STRING
+                 " 8:" LONG_STRING " 9:" LONG_STRING "|");
+
+se_add_pair(1, 1, strdup(LONG_STRING), 10);
+
+STORE_AND_COMPARE(1, 1, "enum 1:1 1:hi 2:there 3:" LONG_STRING " 4:" LONG_STRING
+                 " 5:" LONG_STRING " 6:" LONG_STRING " 7:" LONG_STRING
+                 " 8:" LONG_STRING " 9:" LONG_STRING "|"
+                 "enum 1:1 10:" LONG_STRING "|");
+
+OK(se_find_value(1, 1, "hi") == 1,
+   "lookup by number #1 should be the proper string");
+OK(strcmp(se_find_label(1, 1, 2), "there") == 0,
+   "lookup by string #1 should be the proper number");
+
+
+se_add_pair_to_slist("testing", strdup(STRING1), 42);
+se_add_pair_to_slist("testing", strdup(STRING2), 2);
+se_add_pair_to_slist("testing", strdup(STRING3), 2);
+    
+OK(se_find_value_in_slist("testing", STRING1) == 42,
+   "lookup by number should be the proper string");
+OK(strcmp(se_find_label_in_slist("testing", 2), STRING2) == 0,
+   "lookup by string should be the proper number");
+
+se_clear_slist("testing");
+
+
+se_read_conf("enum",
+             NETSNMP_REMOVE_CONST(char *, "2:3 1:apple 2:pear 3:kiwifruit"));
+OK(se_find_list(2, 3), "list (2, 3) should be present");
+if (se_find_list(2, 3)) {
+  OK(se_find_value(2, 3, "kiwifruit") == 3,
+     "lookup by string should return the proper value")
+  se_find_result = se_find_label(2, 3, 2);
+  OK(se_find_result && strcmp(se_find_result, "pear") == 0,
+     "lookup by label should return the proper string")
+}
+
+se_read_conf("enum",
+             NETSNMP_REMOVE_CONST(char *, "fruit 1:apple 2:pear 3:kiwifruit"));
+OK(se_find_value_in_slist("fruit", "kiwifruit") == 3,
+   "lookup by string should return the proper value");
+se_find_result = se_find_label_in_slist("fruit", 2);
+OK(se_find_result && strcmp(se_find_result, "pear") == 0,
+   "lookup by value should return the proper string");
+
+clear_snmp_enum();
+unregister_all_config_handlers();
diff --git a/testing/fulltests/unit-tests/T005table_dataset_cagentlib.c b/testing/fulltests/unit-tests/T005table_dataset_cagentlib.c
new file mode 100644
index 0000000..f906c55
--- /dev/null
+++ b/testing/fulltests/unit-tests/T005table_dataset_cagentlib.c
@@ -0,0 +1,56 @@
+/* HEADER Testing table_dataset */
+
+/*
+ * Note: the primary purpose of this unit test is to verify whether all memory
+ * that is allocated for storing a table dataset is freed properly. Feel free
+ * to extend this unit test such that it tests more of the table dataset code.
+ */
+
+enum { COL3 = 2, COL4 = 3, COL5 = 4, };
+
+static const oid Oid[] = { 1, 3, 6, 1, 3, 277 };
+netsnmp_table_data_set* tds;
+netsnmp_handler_registration* th;
+netsnmp_table_row* row;
+int32_t ival;
+int32_t i, j;
+
+init_snmp("snmpd");
+
+tds = netsnmp_create_table_data_set("table_dataset unit-test");
+OK(tds, "table data set creation");
+
+netsnmp_table_dataset_add_index(tds, ASN_INTEGER);
+netsnmp_table_dataset_add_index(tds, ASN_INTEGER);
+netsnmp_table_set_add_default_row(tds, COL3, ASN_INTEGER,   FALSE, NULL, 0);
+netsnmp_table_set_add_default_row(tds, COL4, ASN_COUNTER,   FALSE, NULL, 0);
+netsnmp_table_set_add_default_row(tds, COL5, ASN_OCTET_STR, FALSE, NULL, 0);
+
+th = netsnmp_create_handler_registration("unit-test handler", NULL, Oid,
+                                         OID_LENGTH(Oid), HANDLER_CAN_RWRITE);
+OK(th, "table handler registration");
+
+OK(netsnmp_register_table_data_set(th, tds, NULL) == SNMPERR_SUCCESS,
+   "table data set registration");
+
+for (i = 1; i <= 2; i++) {
+    for (j = 1; j <= 2; j++) {
+        row = netsnmp_create_table_data_row();
+        netsnmp_table_row_add_index(row, ASN_INTEGER, &i, sizeof(i));
+        netsnmp_table_row_add_index(row, ASN_INTEGER, &j, sizeof(j));
+        netsnmp_table_dataset_add_row(tds, row);
+
+        ival = 10 * i + j;
+        OK(netsnmp_set_row_column(row, COL3, ASN_INTEGER, &ival, sizeof(ival))
+           == SNMPERR_SUCCESS, "set INTEGER column");
+        OK(netsnmp_set_row_column(row, COL5, ASN_OCTET_STR, "test",
+                                  sizeof("test") - 1)
+           == SNMPERR_SUCCESS, "set OCTET_STR column");
+    }
+}
+
+netsnmp_delete_table_data_set(tds);
+
+snmp_shutdown("snmpd");
+
+OK(TRUE, "done");
diff --git a/testing/fulltests/unit-tests/T006snmp_handler_registration_cagentlib.c b/testing/fulltests/unit-tests/T006snmp_handler_registration_cagentlib.c
new file mode 100644
index 0000000..aef42d1
--- /dev/null
+++ b/testing/fulltests/unit-tests/T006snmp_handler_registration_cagentlib.c
@@ -0,0 +1,29 @@
+/* HEADER Testing SNMP handler registration */
+
+static oid Oid[] = { 1, 3, 6, 1, 3, 327 }; /* experimental.327 */
+netsnmp_handler_registration *handler;
+netsnmp_mib_handler *dh = NULL;
+
+init_snmp("snmp");
+
+handler = netsnmp_create_handler_registration("experimental.327", NULL,
+	Oid, OID_LENGTH(Oid), HANDLER_CAN_RWRITE);
+OK(handler != NULL, "Handler creation.");
+handler->handler->myvoid = malloc(329);
+handler->handler->data_free = free;
+
+OK(netsnmp_register_instance(handler) == MIB_REGISTERED_OK,
+   "MIB registration.");
+
+#if 0
+dh = netsnmp_handler_dup(handler->handler);
+OK(dh, "Handler duplication.");
+#endif
+
+OK(netsnmp_unregister_handler(handler) == SNMPERR_SUCCESS,
+   "Handler unregistration.");
+
+netsnmp_handler_free(dh);
+OK(TRUE, "Freeing duplicate handler");
+
+snmp_shutdown("snmp");
diff --git a/testing/fulltests/unit-tests/T007inet_pton_clib.c b/testing/fulltests/unit-tests/T007inet_pton_clib.c
new file mode 100644
index 0000000..e9b00fa
--- /dev/null
+++ b/testing/fulltests/unit-tests/T007inet_pton_clib.c
@@ -0,0 +1,60 @@
+/* HEADER Testing inet_pton() and inet_ntop() */
+
+int i;
+char str[128];
+struct in_addr in_addr;
+struct in6_addr in6_addr;
+
+static const struct { const char* s; unsigned char b[4]; } in_testdata[] = {
+    { "0.0.0.0",         {   0,   0,   0,   0 } },
+    { "1.2.3.4",         {   1,   2,   3,   4 } },
+    { "255.255.255.255", { 255, 255, 255, 255 } },
+};
+
+static const struct { const char* s; unsigned char b[16]; } in6_testdata[] = {
+    { "::",   { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, },
+    { "::1",  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, },
+    { "1::",  { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, },
+    { "1::1", { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, },
+};
+
+for (i = 0; i < sizeof(in_testdata)/sizeof(in_testdata[0]); ++i) {
+    const unsigned char *const b = in_testdata[i].b;
+
+    OKF(inet_pton(AF_INET, in_testdata[i].s, &in_addr) == 1,
+	("IPv4 inet_pton(%s)", in_testdata[i].s));
+    OK(ntohl(in_addr.s_addr)
+       == ((b[0] << 24) | (b[1] << 16) | (b[2] << 8) | b[3]),
+       "inet_pton() value");
+    OK(inet_ntop(AF_INET, &in_addr, str, sizeof(str)) == str,
+       "IPv4 inet_ntop()");
+    OKF(strcmp(in_testdata[i].s, str) == 0,
+	("%s =?= %s", in_testdata[i].s, str));
+}
+
+
+for (i = 0; i < sizeof(in6_testdata)/sizeof(in6_testdata[0]); ++i) {
+    const unsigned char *const b = in6_testdata[i].b;
+    const unsigned char *const r = (void *)&in6_addr;
+    int result, j;
+
+    result = inet_pton(AF_INET6, in6_testdata[i].s, &in6_addr);
+    OKF(result == 1,
+	("IPv6 inet_pton(%s) -> %d; "
+	 " %02x%02x:%02x%02x:%02x%02x:%02x%02x"
+	 ":%02x%02x:%02x%02x:%02x%02x:%02x%02x",
+	 in6_testdata[i].s, result,
+	 r[0], r[1], r[ 2], r[ 3], r[ 4], r[ 5], r[ 6], r[ 7],
+	 r[8], r[9], r[10], r[11], r[12], r[13], r[14], r[15]
+	 ));
+    for (j = 0; j < 16; ++j)
+	printf("%02x ", b[j]);
+    printf("\n");
+    for (j = 0; j < 16; ++j)
+	OKF(r[j] == b[j],
+	    ("IPv6 inet_pton() value (%#02x =?= %#02x)", r[j], b[j]));
+    OK(inet_ntop(AF_INET6, &in6_addr, str, sizeof(str)) == str,
+       "IPv6 inet_ntop()");
+    OKF(strcmp(in6_testdata[i].s, str) == 0,
+	("%s =?= %s", in6_testdata[i].s, str));
+}
diff --git a/testing/fulltests/unit-tests/T008asn1_clib.c b/testing/fulltests/unit-tests/T008asn1_clib.c
new file mode 100644
index 0000000..73a2f73
--- /dev/null
+++ b/testing/fulltests/unit-tests/T008asn1_clib.c
@@ -0,0 +1,182 @@
+/* HEADER Testing ASN.1 encoding and decoding */
+
+int i;
+
+#if 0
+snmp_set_do_debugging(TRUE);
+debug_register_tokens("dumpv_recv,dumpv_send,asn");
+#endif
+
+{
+    const long intval[] = {
+        -0x80000000L,
+        -0x7fffffffL,
+        -0xffffL,
+        -3,
+        -1,
+        0,
+        1,
+        3,
+        0xffff,
+        0x7fffffff,
+    };
+    for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) {
+	u_char encoded[256];
+	size_t encoded_length;
+	u_char *build_result;
+	size_t decoded_length;
+	u_char decoded_type;
+	long decoded_value = 0;
+	u_char *parse_result;
+
+	encoded_length = sizeof(encoded);
+	build_result = asn_build_int(encoded, &encoded_length, ASN_INTEGER,
+				     &intval[i], sizeof(intval[i]));
+	OKF(build_result + encoded_length == encoded + sizeof(encoded),
+	    ("asn_build_int(%ld)", intval[i]));
+	decoded_length = sizeof(encoded) - encoded_length;
+	parse_result = asn_parse_int(encoded, &decoded_length, &decoded_type,
+				     &decoded_value, sizeof(decoded_value));
+	OKF(parse_result == build_result && decoded_type == ASN_INTEGER
+	    && decoded_value == intval[i],
+	    ("asn_parse_int(asn_build_int(%ld)) %s; decoded type %d <> %d;"
+	     " decoded value %ld",
+	     intval[i], parse_result == build_result ? "succeeded" : "failed",
+	     decoded_type, ASN_INTEGER, decoded_value));
+    }
+}
+
+{
+    const unsigned long intval[] = {
+	0, 1, 3, 0xffff, 0x7fffffff, 0x80000000U, 0xffffffffU
+    };
+    for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) {
+	u_char encoded[256];
+	size_t encoded_length;
+	u_char *build_result;
+	size_t decoded_length;
+	u_char decoded_type;
+	unsigned long decoded_value = 0;
+	u_char *parse_result;
+
+	encoded_length = sizeof(encoded);
+	build_result = asn_build_unsigned_int(encoded, &encoded_length,
+					      ASN_UINTEGER,
+					      &intval[i], sizeof(intval[i]));
+	OKF(build_result + encoded_length == encoded + sizeof(encoded),
+	    ("asn_build_unsigned_int(%lu)", intval[i]));
+	decoded_length = sizeof(encoded) - encoded_length;
+	parse_result = asn_parse_unsigned_int(encoded, &decoded_length,
+					      &decoded_type, &decoded_value,
+					      sizeof(decoded_value));
+	OKF(parse_result && decoded_type == ASN_UINTEGER
+	    && decoded_value == intval[i],
+	    ("asn_parse_unsigned_int(asn_build_unsigned_int(%lu)) %s;"
+	     " decoded type %d <> %d; decoded value %lu",
+	     intval[i], parse_result == build_result ? "succeeded" : "failed",
+	     decoded_type, ASN_UINTEGER, decoded_value));
+    }
+}
+
+#ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
+
+#define TOINT64(c) ((long long)(long)(c).high << 32 | (c).low)
+
+{
+    const struct counter64 intval[] = {
+	{ 0x80000000U,          0U },
+	{ 0x80000000U, 0xffffffffU },
+	{ 0xffffffffU,           0 },
+	{ 0xffffffffU, 0xffff0000U },
+	{ 0xffffffffU, 0xfffffffcU },
+	{ 0xffffffffU, 0xffffffffU },
+	{           0,           0 },
+	{           0,           1 },
+	{           0,           3 },
+	{           0,      0xffff },
+	{           0,  0x7fffffff },
+	{           1,           0 },
+	{           1,  0xffffffff },
+	{  0x7fffffff,           0 },
+	{  0x7fffffff,  0xdeadbeef },
+	{  0x7fffffff,  0xffffffff },
+    };
+    for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) {
+	u_char encoded[256];
+	size_t encoded_length;
+	u_char *build_result;
+	size_t decoded_length;
+	u_char decoded_type;
+	struct counter64 decoded_value = { };
+	u_char *parse_result;
+
+	encoded_length = sizeof(encoded);
+	build_result = asn_build_signed_int64(encoded, &encoded_length,
+					      ASN_OPAQUE_I64,
+					      &intval[i], sizeof(intval[i]));
+	OKF(build_result + encoded_length == encoded + sizeof(encoded),
+	    ("asn_build_signed_int64(%lld)", TOINT64(intval[i])));
+	decoded_length = sizeof(encoded) - encoded_length;
+	parse_result = asn_parse_signed_int64(encoded, &decoded_length,
+					      &decoded_type, &decoded_value,
+					      sizeof(decoded_value));
+	OKF(parse_result == build_result && decoded_type == ASN_OPAQUE_I64
+	    && memcmp(&decoded_value, &intval[i], sizeof(decoded_value)) == 0,
+	    ("asn_parse_signed_int64(asn_build_signed_int64(%lld)) %s;"
+	     " decoded type %d <> %d; decoded value %lld",
+	     TOINT64(intval[i]),
+	     parse_result == build_result ? "succeeded" : "failed",
+	     decoded_type, ASN_OPAQUE_I64, TOINT64(decoded_value)));
+    }
+}
+
+#endif
+
+#define TOUINT64(c) ((unsigned long long)(c).high << 32 | (c).low)
+
+{
+    const struct counter64 intval[] = {
+	{          0,          0 },
+	{          0,          1 },
+	{          0,          3 },
+	{          0,     0xffff },
+	{          0, 0x7fffffff },
+	{          0, 0x80000000 },
+	{          0, 0xffffffff },
+	{          1,          0 },
+	{          1, 0xffffffff },
+	{ 0x7fffffff,          0 },
+	{ 0x7fffffff, 0xdeadbeef },
+	{ 0x7fffffff, 0xffffffff },
+	{ 0xffffffff,          0 },
+	{ 0xffffffff, 0xdeadbeef },
+	{ 0xffffffff, 0xffffffff },
+    };
+    for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) {
+	u_char encoded[256];
+	size_t encoded_length;
+	u_char *build_result;
+	size_t decoded_length;
+	u_char decoded_type;
+	struct counter64 decoded_value = { };
+	u_char *parse_result;
+
+	encoded_length = sizeof(encoded);
+	build_result = asn_build_unsigned_int64(encoded, &encoded_length,
+						ASN_COUNTER64,
+						&intval[i], sizeof(intval[i]));
+	OKF(build_result + encoded_length == encoded + sizeof(encoded),
+	    ("asn_build_unsigned_int64(%llu)", TOUINT64(intval[i])));
+	decoded_length = sizeof(encoded) - encoded_length;
+	parse_result = asn_parse_unsigned_int64(encoded, &decoded_length,
+						&decoded_type, &decoded_value,
+						sizeof(decoded_value));
+	OKF(parse_result && decoded_type == ASN_COUNTER64
+	    && memcmp(&decoded_value, &intval[i], sizeof(decoded_value)) == 0,
+	    ("asn_parse_unsigned_int64(asn_build_unsigned_int64(%llu)) %s;"
+	     " decoded type %d <> %d; decoded value %llu",
+	     TOUINT64(intval[i]),
+	     parse_result == build_result ? "succeeded" : "failed",
+	     decoded_type, ASN_COUNTER64, TOUINT64(decoded_value)));
+    }
+}
diff --git a/testing/fulltests/unit-tests/T009large_fd_set_clib.c b/testing/fulltests/unit-tests/T009large_fd_set_clib.c
new file mode 100644
index 0000000..eee4d41
--- /dev/null
+++ b/testing/fulltests/unit-tests/T009large_fd_set_clib.c
@@ -0,0 +1,46 @@
+/* HEADER Testing netsnmp_large_fd_set */
+
+netsnmp_large_fd_set fds;
+netsnmp_large_fd_set_init(&fds, 2000);
+OKF(fds.lfs_setsize == 2000, ("initialization"));
+OKF(netsnmp_large_fd_set_resize(&fds, 2000) == 1, ("resizing to 2000"));
+NETSNMP_LARGE_FD_ZERO(&fds);
+
+{
+    int i;
+    for (i = 0; i < fds.lfs_setsize; ++i) {
+        OKF(!NETSNMP_LARGE_FD_ISSET(i, &fds), ("%d is not set", i));
+	NETSNMP_LARGE_FD_SET(i, &fds);
+	OKF(NETSNMP_LARGE_FD_ISSET(i, &fds), ("%d is set", i));
+	NETSNMP_LARGE_FD_CLR(i, &fds);
+	OKF(!NETSNMP_LARGE_FD_ISSET(i, &fds), ("%d is not set", i));
+    }
+}
+
+OKF(netsnmp_large_fd_set_resize(&fds, 3000) == 1, ("resizing to 3000"));
+
+{
+    int i;
+    for (i = 0; i < fds.lfs_setsize; ++i) {
+        OKF(!NETSNMP_LARGE_FD_ISSET(i, &fds), ("%d is not set", i));
+	NETSNMP_LARGE_FD_SET(i, &fds);
+	OKF(NETSNMP_LARGE_FD_ISSET(i, &fds), ("%d is set", i));
+	NETSNMP_LARGE_FD_CLR(i, &fds);
+	OKF(!NETSNMP_LARGE_FD_ISSET(i, &fds), ("%d is not set", i));
+    }
+}
+
+OKF(netsnmp_large_fd_set_resize(&fds, 1000) == 1, ("resizing to 1000"));
+
+{
+    int i;
+    for (i = 0; i < fds.lfs_setsize; ++i) {
+        OKF(!NETSNMP_LARGE_FD_ISSET(i, &fds), ("%d is not set", i));
+	NETSNMP_LARGE_FD_SET(i, &fds);
+	OKF(NETSNMP_LARGE_FD_ISSET(i, &fds), ("%d is set", i));
+	NETSNMP_LARGE_FD_CLR(i, &fds);
+	OKF(!NETSNMP_LARGE_FD_ISSET(i, &fds), ("%d is not set", i));
+    }
+}
+
+netsnmp_large_fd_set_cleanup(&fds);
diff --git a/testing/fulltests/unit-tests/T015int64_clib.c b/testing/fulltests/unit-tests/T015int64_clib.c
new file mode 100644
index 0000000..5f5f4b6
--- /dev/null
+++ b/testing/fulltests/unit-tests/T015int64_clib.c
@@ -0,0 +1,82 @@
+/* HEADER Testing 64-bit integer operations (U64). */
+
+int i, j;
+char buf[22];
+static const int64_t intval[] = {
+    0,
+    -1,
+    1,
+    37,
+    0x7fffffffUL,
+    0x80000000UL,
+    0x99999999UL,
+    0x7fffffffffffffffULL,
+    0x8000000000000000ULL,
+};
+
+for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) {
+    U64 a, b;
+    a.low = (uint32_t)intval[i];
+    a.high = (uint32_t)(intval[i] >> 32);
+    printI64(buf, &a);
+    read64(&b, buf);
+    OKF(memcmp(&a, &b, sizeof(a)) == 0,
+        ("[%d]: %" PRId64 " <> %s <> %" PRId64, i, intval[i], buf,
+         ((uint64_t)b.high) << 32 | b.low));
+}
+
+for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) {
+    for (j = i; j < sizeof(intval)/sizeof(intval[0]); ++j) {
+        U64 a, b;
+        uint64_t d;
+        a.low = (uint32_t)intval[i];
+        a.high = (uint32_t)(intval[i] >> 32);
+        b.low = (uint32_t)intval[j];
+        b.high = (uint32_t)(intval[j] >> 32);
+        u64Incr(&a, &b);
+        d = (uint64_t)a.high << 32 | a.low;
+        OKF(intval[i] + intval[j] == d,
+            ("%" PRId64 " + %" PRId64 " = %" PRId64 " <> %" PRId64, intval[i],
+             intval[j], intval[i] + intval[j], d));
+    }
+}
+        
+for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) {
+    for (j = i; j < sizeof(intval)/sizeof(intval[0]); ++j) {
+        U64 a, b, c;
+        uint64_t d;
+        a.low = (uint32_t)intval[i];
+        a.high = (uint32_t)(intval[i] >> 32);
+        b.low = (uint32_t)intval[j];
+        b.high = (uint32_t)(intval[j] >> 32);
+        u64Subtract(&a, &b, &c);
+        d = (uint64_t)c.high << 32 | c.low;
+        OKF(intval[i] - intval[j] == d,
+            ("%" PRId64 " - %" PRId64 " = %" PRId64 " <> %" PRId64, intval[i],
+             intval[j], intval[i] - intval[j], d));
+    }
+}
+        
+{
+    U64 old_val, new_val;
+    old_val.low = 7;
+    old_val.high = 0;
+    new_val = old_val;
+    OK(netsnmp_c64_check_for_32bit_wrap(&old_val, &new_val, 0) == 0, "cwrap1");
+    new_val.low = 8;
+    OK(netsnmp_c64_check_for_32bit_wrap(&old_val, &new_val, 0) == 0, "cwrap2");
+    new_val.low = 6;
+    OK(netsnmp_c64_check_for_32bit_wrap(&old_val, &new_val, 0) == 32, "cwrap3");
+    OK(netsnmp_c64_check_for_32bit_wrap(&old_val, &new_val, 1) == 32
+       && new_val.low == 6 && new_val.high == 1, "cwrap4");
+    old_val.low = 7;
+    old_val.high = 0xffffffffU;
+    new_val.low = 7;
+    new_val.high = old_val.high;
+    OK(netsnmp_c64_check_for_32bit_wrap(&old_val, &new_val, 0) == 0, "cwrap5");
+    new_val.low = 8;
+    OK(netsnmp_c64_check_for_32bit_wrap(&old_val, &new_val, 0) == 0, "cwrap6");
+    new_val.low = 6;
+    new_val.high = 0;
+    OK(netsnmp_c64_check_for_32bit_wrap(&old_val, &new_val, 0) == 64, "cwrap7");
+}
diff --git a/testing/fulltests/unit-tests/T016read_config_clib.c b/testing/fulltests/unit-tests/T016read_config_clib.c
new file mode 100644
index 0000000..c11a591
--- /dev/null
+++ b/testing/fulltests/unit-tests/T016read_config_clib.c
@@ -0,0 +1,82 @@
+/* HEADER Testing read_config_read_octet_string_const(). */
+
+struct read_config_testcase {
+    /*
+     * inputs 
+     */
+    const char     *(*pf) (const char * readfrom, u_char ** str,
+                           size_t * len);
+    const char     *readfrom;
+    size_t          obuf_len;
+
+    /*
+     * expected outputs 
+     */
+    size_t          expected_offset;
+    const u_char   *expected_output;
+    size_t          expected_len;
+};
+
+static const u_char obuf1[] = { 1, 0, 2 };
+static const u_char obuf2[] = { 'a', 'b', 'c', 0 };
+
+static const struct read_config_testcase test_input[] = {
+    { &read_config_read_octet_string_const, "",           1, -1, NULL,  0 },
+    { &read_config_read_octet_string_const, "0x0",        1, -1, NULL,  1 },
+    { &read_config_read_octet_string_const, "0x0 0",      1, -1, NULL,  1 },
+
+    { &read_config_read_octet_string_const, "0x010002",   1, -1, NULL,  0 },
+    { &read_config_read_octet_string_const, "0x010002",   2, -1, NULL,  0 },
+    { &read_config_read_octet_string_const, "0x010002",   3, -1, obuf1, 0 },
+    { &read_config_read_octet_string_const, "0x010002",   4, -1, obuf1, 3 },
+    { &read_config_read_octet_string_const, "0x010002 0", 4,  9, obuf1, 3 },
+    { &read_config_read_octet_string_const, "0x010002",   0, -1, obuf1, 3 },
+
+    { &read_config_read_octet_string_const, "abc",        1, -1, NULL,  0 },
+    { &read_config_read_octet_string_const, "abc z",      1,  4, NULL,  0 },
+    { &read_config_read_octet_string_const, "abc",        2, -1, NULL,  1 },
+    { &read_config_read_octet_string_const, "abc",        3, -1, obuf2, 2 },
+    { &read_config_read_octet_string_const, "abc",        4, -1, obuf2, 3 },
+    { &read_config_read_octet_string_const, "abc z",      4,  4, obuf2, 3 },
+    { &read_config_read_octet_string_const, "abc",        0, -1, obuf2, 3 },
+};
+
+unsigned int i, j, ok;
+
+for (i = 0; i < sizeof(test_input) / sizeof(test_input[0]); i++) {
+    const struct read_config_testcase *const p = &test_input[i];
+    size_t          len = p->obuf_len;
+    u_char         *str = len > 0 ? malloc(len) : NULL;
+    const char     *result;
+    size_t          offset;
+
+    fflush(stdout);
+    result = (p->pf) (p->readfrom, &str, &len);
+    offset = result ? result - p->readfrom : -1;
+    OKF(offset == p->expected_offset,
+        ("test %d: expected offset %zd, got offset %" NETSNMP_PRIz "d",
+         i, p->expected_offset, offset));
+    if (offset == p->expected_offset) {
+        OKF(len == p->expected_len,
+            ("test %d: expected length %" NETSNMP_PRIz "d, got length %"
+             NETSNMP_PRIz "d", i, p->expected_len, len));
+        if (len == p->expected_len) {
+            ok = len < 0 || !p->expected_output
+                || memcmp(str, p->expected_output, len) == 0
+                || p->expected_output[len] != 0;
+            OKF(ok, ("test %d: output buffer mismatch", i));
+            if (!ok) {
+                printf("Expected: ");
+                for (j = 0; j < p->expected_len; ++j)
+                    printf("%02x ", p->expected_output[j]);
+                printf("\nActual:   ");
+                for (j = 0; j < len; ++j)
+                    printf("%02x ", str[j]);
+                printf("\n");
+            }
+        }
+    }
+
+    if (str)
+        free(str);
+}
diff --git a/testing/fulltests/unit-tests/T017strtoull_clib.c b/testing/fulltests/unit-tests/T017strtoull_clib.c
new file mode 100644
index 0000000..4ab9cad
--- /dev/null
+++ b/testing/fulltests/unit-tests/T017strtoull_clib.c
@@ -0,0 +1,94 @@
+/* HEADER Testing strtoull(). */
+
+#ifdef HAVE_STRTOULL
+
+OK(1, "Skipping strtoull() test because using strtoull() from C library.\n");;
+
+#else
+
+/*
+ * UINT64_C: C99 macro for the suffix for uint64_t constants. 
+ */
+#ifndef UINT64_C
+#ifdef _MSC_VER
+#define UINT64_C(c) c##ui64
+#else
+#define UINT64_C(c) c##ULL
+#endif
+#endif
+
+/*
+ * According to the C99 standard, the constant ULLONG_MAX must be defined in
+ * <limits.h>. Define it here for pre-C99 compilers.
+ */
+#ifndef ULLONG_MAX
+#define ULLONG_MAX UINT64_C(0xffffffffffffffff)
+#endif
+
+#ifndef PRIu64
+#ifdef _MSC_VER
+#define PRIu64 "I64u"
+#else
+#define PRIu64 "llu"
+#endif
+#endif
+
+struct strtoull_testcase {
+    /*
+     * inputs 
+     */
+    const char     *nptr;
+    int             base;
+    /*
+     * expected outputs 
+     */
+    int             expected_errno;
+    int             expected_end;
+    uint64_t        expected_result;
+};
+
+static const struct strtoull_testcase test_input[] = {
+    {"0x0", 0, 0, 3, 0},
+    {"1", 0, 0, 1, 1},
+    {"0x1", 0, 0, 3, 1},
+    {"  -0666", 0, 0, 7, -0666},
+    {"  -0x666", 0, 0, 8, -0x666},
+    {"18446744073709551614", 0, 0, 20, UINT64_C(0xfffffffffffffffe)},
+    {"0xfffffffffffffffe", 0, 0, 18, UINT64_C(0xfffffffffffffffe)},
+    {"18446744073709551615", 0, 0, 20, UINT64_C(0xffffffffffffffff)},
+    {"0xffffffffffffffff", 0, 0, 18, UINT64_C(0xffffffffffffffff)},
+    {"18446744073709551616", 0, ERANGE, 20, UINT64_C(0xffffffffffffffff)},
+    {"0x10000000000000000", 0, ERANGE, 19, UINT64_C(0xffffffffffffffff)},
+    {"ff", 16, 0, 2, 255},
+    {"0xff", 16, 0, 4, 255},
+    {" ", 0, 0, 0, 0},
+    {"0x", 0, 0, 1, 0},
+    {"0x", 8, 0, 1, 0},
+    {"0x", 16, 0, 1, 0},
+    {"zyyy", 0, 0, 0, 0},
+    {"0xfffffffffffffffff", 0, ERANGE, 19, ULLONG_MAX},
+    {"0xfffffffffffffffffz", 0, ERANGE, 19, ULLONG_MAX}
+};
+
+unsigned int    i;
+
+for (i = 0; i < sizeof(test_input) / sizeof(test_input[0]); i++) {
+    const struct strtoull_testcase *const p = &test_input[i];
+    char           *endptr;
+    uint64_t        result;
+
+    errno = 0;
+    result = strtoull(p->nptr, &endptr, p->base);
+    OKF(errno == p->expected_errno,
+        ("test %d (input \"%s\"): expected errno %d, got errno %d",
+         i, p->nptr, p->expected_errno, errno));
+    OKF(result == p->expected_result,
+        ("test %d (input \"%s\"): expected result %" PRIu64
+         ", got result %" PRIu64,
+         i, p->nptr, p->expected_result, result));
+    OKF(endptr - p->nptr == p->expected_end,
+        ("test %d (input \"%s\"): expected end %d, got end %d",
+         i, p->nptr, p->expected_end, (int) (endptr - p->nptr)));
+}
+
+#endif
diff --git a/testing/fulltests/unit-tests/T018read_config_capp.c b/testing/fulltests/unit-tests/T018read_config_capp.c
new file mode 100644
index 0000000..d6a92c9
--- /dev/null
+++ b/testing/fulltests/unit-tests/T018read_config_capp.c
@@ -0,0 +1,129 @@
+/*
+ * etimetest.c
+ *
+ * HEADER Testing read_config.c shutdown callback
+ *
+ * Expected SUCCESSes for all tests:    8
+ *
+ * Test of snmpd_unregister_config_handler                    	SUCCESSes:  4
+ * Test of unregister_all_config_handlers	              	SUCCESSes:  4
+ *
+ */
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/library/testing.h>
+
+/* #undef TEST_INTERNAL_API */
+#define TEST_INTERNAL_API 1
+
+/*
+ * Global variables.
+ */
+int callback_called = 0;
+
+static void test_callback(void);
+static void test_callback(void) {
+	++callback_called;
+};
+
+static void parse_config(const char *token, char *cptr);
+static void parse_config(const char *token, char *cptr) {
+	/* do nothing */
+};
+
+/* each test returns 0 on success, and >0 on failure */
+int test1(void);
+int test2(void);
+int test3(void);
+
+int (*tests[])(void) = { test1, test2, test3 };
+
+int main(int argc, char *argv[])
+{
+    int i,ret=0;
+    for(i=0;i<sizeof(tests)/sizeof(*tests);++i)
+	    ret+=tests[i]();
+    if (__did_plan == 0) {
+       PLAN(__test_counter);
+    }
+    return ret;
+}
+
+int test1() {
+    int sum = 0;
+    callback_called = 0;
+    fprintf(stdout, "# snmpd_unregister_config_handler tests\n");
+    init_snmp("testing");
+    OKF(callback_called==0, ("Callback shouldn't be called before registering it - it was called %d times\n",callback_called));
+    sum += callback_called;
+
+    callback_called = 0;
+    register_app_config_handler("testing", parse_config, test_callback, "module-name module-path");
+    OKF(callback_called==0, ("Callback shouldn't be called after registering it - it was called %d times\n",callback_called));
+    sum += callback_called;
+
+    callback_called = 0;
+    unregister_app_config_handler("testing");
+    OKF(callback_called==1, ("Callback should have been called once and only once after unregistering handler - it was called %d times\n",callback_called));
+    sum += callback_called;
+
+    callback_called = 0;
+    snmp_shutdown("testing");
+    OKF(callback_called==0, ("Callback should have been called once and only once after shutdown - it was called %d times\n",callback_called));
+    sum += callback_called;
+
+    return (sum==1)?0:1;
+}
+
+int test2(void) {
+    int sum = 0;
+    callback_called = 0;
+    fprintf(stdout, "# unregister_all_config_handlers tests\n");
+    init_snmp("testing");
+    OKF(callback_called==0, ("Callback shouldn't be called before registering it - it was called %d times\n",callback_called));
+    sum += callback_called;
+
+    callback_called = 0;
+    register_app_config_handler("testing", parse_config, test_callback, "module-name module-path");
+    OKF(callback_called==0, ("Callback shouldn't be called after registering it - it was called %d times\n",callback_called));
+    sum += callback_called;
+
+    callback_called = 0;
+    snmp_shutdown("testing");
+    OKF(callback_called==1, ("Callback should have been called once and only once during shutdown - it was called %d times\n",callback_called));
+    sum += callback_called;
+
+    return (sum==1)?0:1;
+}
+
+int test3(void) {
+#ifdef TEST_INTERNAL_API
+    int sum = 0;
+    callback_called = 0;
+    fprintf(stdout, "# unregister_all_config_handlers internal api tests\n");
+    init_snmp("testing");
+    OKF(callback_called==0, ("Callback shouldn't be called before registering it - it was called %d times\n",callback_called));
+    sum += callback_called;
+
+    callback_called = 0;
+    register_app_config_handler("testing", parse_config, test_callback, "module-name module-path");
+    OKF(callback_called==0, ("Callback shouldn't be called after registering it - it was called %d times\n",callback_called));
+    sum += callback_called;
+
+    callback_called = 0;
+    unregister_all_config_handlers();
+    OKF(callback_called==1, ("Callback should have been called once and only once after unregistering handler - it was called %d times\n",callback_called));
+    sum += callback_called;
+
+    callback_called = 0;
+    snmp_shutdown("testing");
+    OKF(callback_called==0, ("Callback should not have been called during shutdown after unregistering handler - it was called %d times\n",callback_called));
+    sum += callback_called;
+
+    return (sum==1)?0:1;
+#else
+    return 0;
+#endif
+}
diff --git a/testing/fulltests/unit-tests/T019_snmp_service_clib.c b/testing/fulltests/unit-tests/T019_snmp_service_clib.c
new file mode 100644
index 0000000..42ec8d3
--- /dev/null
+++ b/testing/fulltests/unit-tests/T019_snmp_service_clib.c
@@ -0,0 +1,253 @@
+/* HEADER Testing domain and target registrations from snmp_service. */
+
+/* Setup configuration reading */
+netsnmp_ds_set_string(NETSNMP_DS_LIBRARY_ID,
+                      NETSNMP_DS_LIB_APPTYPE, "testprog");
+
+netsnmp_register_service_handlers();
+
+netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID,
+                       NETSNMP_DS_LIB_HAVE_READ_CONFIG, 1);
+
+/* Clear all default values */
+netsnmp_clear_default_domain();
+netsnmp_clear_default_target();
+
+/* Test domain lookup */
+
+OK(netsnmp_register_default_domain("a", "") == 0,
+   "register an empty token in domain 'a'");
+
+OK(netsnmp_register_default_domain("b", "alfa") == 0,
+    "register a single token in domain 'b'");
+
+OK(netsnmp_register_default_domain("c", "alfa beta") == 0,
+   "register two tokens in domain 'c'");
+
+#define OK_STRCMP(name, value, expected)                                \
+  OKF(value != NULL && strcmp(expected, value) == 0,                    \
+      ("Lookup of '" #name "' expected '" expected "', got %s%s%s",     \
+       value ? "'" : "", value ? value : "NULL", value ? "'" : ""))
+
+#define OK_STR_IS_NULL(name, value)                                     \
+  OKF(value == NULL,                                                    \
+      ("Lookup of '" #name "' expected NULL, got %s%s%s",               \
+       value ? "'" : "", value ? value : "NULL", value ? "'" : ""))
+
+#define OK_IS_NULL(name, value)                                         \
+  OKF(value == NULL, ("Lookup of '" #name "' expected NULL, got %p", value))
+
+#define OK_IS_NOT_NULL(name, value)                                     \
+  OKF(value != NULL, ("Lookup of '" #name "' expected non-NULL, got %p", value))
+
+{
+  const char *t;
+
+  t = netsnmp_lookup_default_domain("a");
+  OK_STRCMP(a, t, "");
+
+  t = netsnmp_lookup_default_domain("b");
+  OK_STRCMP(b, t, "alfa");
+
+  t = netsnmp_lookup_default_domain("c");
+  OK_STRCMP(c, t, "alfa");
+
+  t = netsnmp_lookup_default_domain("d");
+  OK_STR_IS_NULL(d, t);
+}
+
+{
+  const char *const *t;
+
+  t = netsnmp_lookup_default_domains("a");
+  OK_IS_NOT_NULL(a, t);
+  OK_STRCMP(a[0], t[0], "");
+  OK_STR_IS_NULL(a[1], t[1]);
+
+  t = netsnmp_lookup_default_domains("b");
+  OK_IS_NOT_NULL(b, t);
+  OK_STRCMP(b[0], t[0], "alfa");
+  OK_STR_IS_NULL(b[1], t[1]);
+
+  t = netsnmp_lookup_default_domains("c");
+  OK_IS_NOT_NULL(c, t);
+  OK_STRCMP(c[0], t[0], "alfa");
+  OK_STRCMP(c[1], t[1], "beta");
+  OK_STR_IS_NULL(c[2], t[2]);
+
+  t = netsnmp_lookup_default_domains("d");
+  OK_IS_NULL(d, t);
+}
+
+{
+  char cfg[] = "defDomain=b gamma";
+  OK(netsnmp_config(cfg) == SNMPERR_SUCCESS, "register user domain for 'b'");
+}
+
+{
+  char cfg[] = "defDomain=c gamma delta";
+  OK(netsnmp_config(cfg) == SNMPERR_SUCCESS, "register user domains for 'c'");
+}
+
+{
+  char cfg[] = "defDomain=b2 gamma";
+  OK(netsnmp_config(cfg) == SNMPERR_SUCCESS, "register user domain for 'b2'");
+}
+
+{
+  char cfg[] = "defDomain=c2 gamma delta";
+  OK(netsnmp_config(cfg) == SNMPERR_SUCCESS, "register user domains for 'c2'");
+}
+
+{
+  const char *t;
+
+  t = netsnmp_lookup_default_domain("b");
+  OK_STRCMP(b, t, "gamma");
+
+  t = netsnmp_lookup_default_domain("b2");
+  OK_STRCMP(b2, t, "gamma");
+
+  t = netsnmp_lookup_default_domain("c");
+  OK_STRCMP(c, t, "gamma");
+
+  t = netsnmp_lookup_default_domain("c2");
+  OK_STRCMP(c2, t, "gamma");
+}
+
+{
+  const char *const *t;
+
+  t = netsnmp_lookup_default_domains("b");
+  OK_IS_NOT_NULL(b, t);
+  OK_STRCMP(b[0], t[0], "gamma");
+  OK_STR_IS_NULL(b[1], t[1]);
+
+  t = netsnmp_lookup_default_domains("b2");
+  OK_IS_NOT_NULL(b2, t);
+  OK_STRCMP(b2[0], t[0], "gamma");
+  OK_STR_IS_NULL(b2[1], t[1]);
+
+  t = netsnmp_lookup_default_domains("c");
+  OK_IS_NOT_NULL(c, t);
+  OK_STRCMP(c[0], t[0], "gamma");
+  OK_STRCMP(c[1], t[1], "delta");
+  OK_STR_IS_NULL(c[2], t[2]);
+
+  t = netsnmp_lookup_default_domains("c2");
+  OK_IS_NOT_NULL(c2, t);
+  OK_STRCMP(c2[0], t[0], "gamma");
+  OK_STRCMP(c2[1], t[1], "delta");
+  OK_STR_IS_NULL(c2[2], t[2]);
+}
+
+{
+  char cfg[] = "defDomain=";
+  OK(netsnmp_config(cfg) == SNMPERR_SUCCESS, "Empty config line");
+}
+
+{
+  const char* t;
+  char cfg[] = "defDomain=e";
+  OK(netsnmp_config(cfg) == SNMPERR_SUCCESS, "Incomplete config line");
+  t = netsnmp_lookup_default_domain("e");
+  OK_STR_IS_NULL(e, t);
+}
+
+/* Test target lookup */
+
+OK(netsnmp_register_default_target("b", "alfa", "alfa-domain:b") == 0,
+   "register a 'alfa:alfa-domain:b' for application 'b'");
+
+OK(netsnmp_register_default_target("b", "beta", "beta-domain:b") == 0,
+   "register a 'beta:beta-domain:b' for application 'b'");
+
+OK(netsnmp_register_default_target("c", "alfa", "alfa-domain:c") == 0,
+   "register a 'alfa:alfa-domain:c' for application 'c'");
+
+{
+  const char *t;
+
+  t = netsnmp_lookup_default_target("b", "alfa");
+  OK_STRCMP(b:alfa, t, "alfa-domain:b");
+
+  t = netsnmp_lookup_default_target("b", "beta");
+  OK_STRCMP(b:beta, t, "beta-domain:b");
+
+  t = netsnmp_lookup_default_target("c", "alfa");
+  OK_STRCMP(c:alfa, t, "alfa-domain:c");
+
+  t = netsnmp_lookup_default_target("a", "alfa");
+  OK_STR_IS_NULL(a:alfa, t);
+
+  t = netsnmp_lookup_default_target("b", "gamma");
+  OK_STR_IS_NULL(b:gamma, t);
+
+  t = netsnmp_lookup_default_target("c", "beta");
+  OK_STR_IS_NULL(c:beta, t);
+}
+
+{
+  char cfg[] = "defTarget=b alfa user-alfa:b";
+  OK(netsnmp_config(cfg) == SNMPERR_SUCCESS,
+     "register user target 'alfa:user-alfa:b' for application 'b'");
+}
+
+{
+  char cfg[] = "defTarget=b gamma user-gamma:b";
+  OK(netsnmp_config(cfg) == SNMPERR_SUCCESS,
+     "register user target 'gamma:user-gamma:b' for application 'b'");
+}
+
+{
+  char cfg[] = "defTarget=c alfa user-alfa:c";
+  OK(netsnmp_config(cfg) == SNMPERR_SUCCESS,
+     "register user target 'alfa:user-alfa:c' for application 'c'");
+}
+
+
+{
+  const char *t;
+
+  t = netsnmp_lookup_default_target("b", "alfa");
+  OK_STRCMP(b:alfa, t, "user-alfa:b");
+
+  t = netsnmp_lookup_default_target("b", "beta");
+  OK_STRCMP(b:beta, t, "beta-domain:b");
+
+  t = netsnmp_lookup_default_target("c", "alfa");
+  OK_STRCMP(c:alfa, t, "user-alfa:c");
+
+  t = netsnmp_lookup_default_target("a", "alfa");
+  OK_STR_IS_NULL(a:alfa, t);
+
+  t = netsnmp_lookup_default_target("b", "gamma");
+  OK_STRCMP(b:gamma, t, "user-gamma:b");
+
+  t = netsnmp_lookup_default_target("b", "delta");
+  OK_STR_IS_NULL(b:delta, t);
+
+  t = netsnmp_lookup_default_target("c", "beta");
+  OK_STR_IS_NULL(c:beta, t);
+}
+
+{
+  char cfg[] = "defTarget=";
+  OK(netsnmp_config(cfg) == SNMPERR_SUCCESS, "Empty config line");
+}
+
+{
+  const char* t;
+  char cfg[] = "defTarget=e1";
+  OK(netsnmp_config(cfg) == SNMPERR_SUCCESS, "Incomplete config line #1");
+  t = netsnmp_lookup_default_target("e1", "");
+  OK_STR_IS_NULL(e1:, t);
+}
+
+{
+  const char* t;
+  char cfg[] = "defTarget=e2 omega";
+  OK(netsnmp_config(cfg) == SNMPERR_SUCCESS, "Incomplete config line #2");
+  t = netsnmp_lookup_default_target("e2", "omega");
+  OK_STR_IS_NULL(e2:omega, t);
+}
diff --git a/testing/misctest.c b/testing/misctest.c
deleted file mode 100644
index 79f0465..0000000
--- a/testing/misctest.c
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * misctest.c
- *
- * Expected SUCCESSes for all tests:    0
- *
- * Returns:
- *      Number of FAILUREs.
- *
- * Test of dump_snmpEngineID().                 SUCCESSes:  0
- */
-
-static char    *rcsid = "$Id$";     /* */
-
-#include <net-snmp/net-snmp-config.h>
-
-#include <stdio.h>
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#include "asn1.h"
-#include "snmp_api.h"
-#include "tools.h"
-#include "transform_oids.h"
-#include "callback.h"
-
-#include <stdlib.h>
-
-extern char    *optarg;
-extern int      optind, optopt, opterr;
-
-
-
-/*
- * Globals, &c...
- */
-char           *local_progname;
-
-#define USAGE	"Usage: %s [-h][-1a]"
-#define OPTIONLIST	"1ah"
-
-int             doalltests = 0, dodumpseid = 0;
-
-#define	ALLOPTIONS	(doalltests + dodumpseid)
-
-
-
-#define LOCAL_MAXBUF	(1024 * 8)
-#define NL		"\n"
-
-#define OUTPUT(o)	fprintf(stdout, "\n\n%s\n\n", o);
-
-#define SUCCESS(s)					\
-{							\
-	if (!failcount)					\
-		fprintf(stdout, "\nSUCCESS: %s\n", s);	\
-}
-
-#define FAILED(e, f)					\
-{							\
-	if (e != SNMPERR_SUCCESS) {			\
-		fprintf(stdout, "\nFAILED: %s\n", f);	\
-		failcount += 1;				\
-	}						\
-}
-
-
-
-
-#define IDBLAT_4	"00010203"
-
-#define IDVIOLATE1	"8000000300deedcafe"
-
-#define IDIPv4		"80000003010a090807"
-#define IDIPv6		"8000000302100f0e0d0c0b0a090807060504030201"
-#define IDMAC		"8000000303ffeeddccbbaa"
-
-#define IDTEXT		"8000000304"
-#define PRINTABLE	"Let this be printable."
-
-#define IDOCTETS_7	"80000003050001020304050607"
-
-#define IDLOCAL_11	"8000000306000102030405060708090a0b"
-
-#define IDIPv4_EXTRA3	"80000003010a090807010203"
-
-#define ID_NUMSTRINGS		10
-
-
-
-
-/*
- * Prototypes.
- */
-void            usage(FILE * ofp);
-
-int             test_dumpseid(void);
-
-
-
-
-
-int
-main(int argc, char **argv)
-{
-    int             rval = SNMPERR_SUCCESS, failcount = 0;
-    char            ch;
-
-    local_progname = argv[0];
-
-    /*
-     * Parse.
-     */
-    while ((ch = getopt(argc, argv, OPTIONLIST)) != EOF) {
-        switch (ch) {
-        case '1':
-            dodumpseid = 1;
-            break;
-        case 'a':
-            doalltests = 1;
-            break;
-        case 'h':
-            rval = 0;
-        default:
-            usage(stdout);
-            exit(rval);
-        }
-
-        argc -= 1;
-        argv += 1;
-        if (optarg) {
-            argc -= 1;
-            argv += 1;
-            optarg = NULL;
-        }
-        optind = 1;
-    }                           /* endwhile getopt */
-
-    if ((argc > 1)) {
-        usage(stdout);
-        exit(1000);
-
-    } else if (ALLOPTIONS != 1) {
-        usage(stdout);
-        exit(1000);
-    }
-
-
-    /*
-     * Test stuff.
-     */
-    if (dodumpseid || doalltests) {
-        failcount += test_dumpseid();
-    }
-
-
-    /*
-     * Cleanup.
-     */
-    return failcount;
-
-}                               /* end main() */
-
-
-
-
-
-void
-usage(FILE * ofp)
-{
-    fprintf(ofp,
-            USAGE
-            "" NL
-            "	-1		Test dump_snmpEngineID()." NL
-            "	-a		All tests." NL
-            "	-h		Help." NL "" NL, local_progname);
-
-}                               /* end usage() */
-
-
-
-
-#ifdef EXAMPLE
-/*******************************************************************-o-******
- * test_dosomething
- *
- * Returns:
- *	Number of failures.
- *
- *
- * Test template.
- */
-int
-test_dosomething(void)
-{
-    int             rval = SNMPERR_SUCCESS, failcount = 0;
-
-    EM0(1, "UNIMPLEMENTED");    /* EM(1); /* */
-
-  test_dosomething_quit:
-    return failcount;
-
-}                               /* end test_dosomething() */
-#endif                          /* EXAMPLE */
-
-
-
-
-/*******************************************************************-o-******
- * test_dumpseid
- *
- * Returns:
- *	Number of failures.
- *
- * Test dump_snmpEngineID().
- */
-int
-test_dumpseid(void)
-{
-    int                         /* rval = SNMPERR_SUCCESS, */
-                    failcount = 0, tlen, count = 0;
-
-    char            buf[SNMP_MAXBUF],
-        *s, *t, *ris, *rawid_set[ID_NUMSTRINGS + 1] = {
-        IDBLAT_4,
-        IDVIOLATE1,
-        IDIPv4,
-        IDIPv6,
-        IDMAC,
-        IDTEXT,
-        IDOCTETS_7,
-        IDLOCAL_11,
-        IDIPv4_EXTRA3,
-        NULL
-    };
-
-    OUTPUT("Test of dump_snmpEngineID.  "
-           "(Does not report failure or success.)");
-
-
-    while ((ris = rawid_set[count++])) {
-        tlen = hex_to_binary2(ris, strlen(ris), &t);
-
-        if (ris == IDTEXT) {
-            memset(buf, 0, SNMP_MAXBUF);
-            memcpy(buf, t, tlen);
-            tlen += sprintf(buf + tlen, "%s", PRINTABLE);
-
-            SNMP_FREE(t);
-            t = buf;
-        }
-#ifdef NETSNMP_ENABLE_TESTING_CODE
-        s = dump_snmpEngineID(t, &tlen);
-        printf("%s    (len=%d)\n", s, tlen);
-#endif
-
-        SNMP_FREE(s);
-        if (t != buf) {
-            SNMP_FREE(t);
-        }
-    }
-
-
-    return failcount;
-
-}                               /* end test_dumpseid() */
diff --git a/testing/test_keychange.sh b/testing/test_keychange.sh
deleted file mode 100755
index 9259fe5..0000000
--- a/testing/test_keychange.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/sh
-#
-# test_keychange.sh
-#
-# Number of SUCCESSes:  3
-#
-#
-# Run test of KeyChange TC against data given by Bert Wijnen in email.
-#
-# NOTE	The snmp_debug flag bit DEBUG_RANDOMZEROS in file snmplib/debug.h
-#	MUST be set before compiling and linking libsnmp.a to testing/ktest
-#	for this to succeed.
-#
-
-
-. eval_tools.sh
-
-VERIFY ktest
-
-STARTTEST
-
-
-#------------------------------------ -o- 
-# Declarations.
-#
-DATAFILE_PREFIX=data.keychange-
-DATAFILE_SUFFIXES="md5 sha1 sha1-des"
-
-oldkul=
-newkul=
-keychangestring=
-
-
-
-#------------------------------------ -o- 
-# Test.
-#
-for dfs in $DATAFILE_SUFFIXES; do
-	OUTPUT "== Test of KeyChange TC correctness for \"$dfs\"."
-
-	set x `awk '{ print $1 }' ${DATAFILE_PREFIX}$dfs`
-	shift
-
-	[ $# -lt 3 ] && FAILED 1 \
-	    "Wrong number of lines ($#) in datafile \"$DATAFILE_PREFIX}$dfs\"."
-
-	oldkey=$1
-	newkey=$2
-	keychangestring=$3
-
-	CAPTURE "ktest -k -O $oldkey -N $newkey"
-	FAILED $? "ktest"
-
-	CHECKEXACT $keychangestring
-	[ $? -eq 1 ]
-	FAILED $? "Proper KeyChange string was not generated."
-
-
-	SUCCESS "KeyChange TC correctness test for \"$dfs\"."
-done
-
-
-
-
-#------------------------------------ -o- 
-# Cleanup, exit.
-#
-STOPTEST
-
-exit $failcount
-
diff --git a/testing/test_kul.sh b/testing/test_kul.sh
deleted file mode 100755
index 70b7b76..0000000
--- a/testing/test_kul.sh
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/bin/sh
-#
-# test_kul.sh
-#
-# Number of SUCCESSes:	2
-#
-# Run key localization tests and compare with data given in the USM
-# documentation.
-#
-# FIX	CHECKEXACT() will produce 2 lines when SCAPI is built with
-#	SNMP_TESTING_CODE, but only 1 line without the #define.  The script
-#	assumes SNMP_TESTING_CODE is defined.
-#
-#
-
-
-. eval_tools.sh
-
-VERIFY ktest
-
-STARTTEST
-
-
-#------------------------------------ -o- 
-# Declarations.
-#
-DATAFILE_PREFIX=data.kul-
-DATAFILE_SUFFIXES="md5 sha1"
-
-P=
-Ku=
-engineID=
-kul=
-
-
-
-#------------------------------------ -o- 
-# Test.
-#
-for dfs in $DATAFILE_SUFFIXES; do
-	OUTPUT "== Test of key localization correctness with transform \"$dfs\"."
-
-	set x `awk '{ print $1 }' ${DATAFILE_PREFIX}$dfs`
-	shift
-
-	[ $# -lt 4 ] && FAILED 1 \
-	    "Wrong number of lines ($#) in datafile \"$DATAFILE_PREFIX}$dfs\"."
-
-	P=$1
-	Ku=$2
-	engineID=$3
-	kul=$4
-
-	CAPTURE "ktest -l -P $P -E $engineID "
-	FAILED $? "ktest"
-
-	CHECKEXACT $Ku
-	[ $? -eq 2 ]
-	FAILED $? "Master key was not generated."
-
-	CHECKEXACT $kul
-	[ $? -eq 2 ]
-	FAILED $? "Localized key was not generated."
-
-
-	SUCCESS "Key localization correctness test with transform \"$dfs\"."
-done
-
-
-
-
-#------------------------------------ -o- 
-# Cleanup, exit.
-#
-STOPTEST
-
-exit $failcount
-
diff --git a/testing/tests/T051snmpv2ctrap b/testing/tests/T051snmpv2ctrap
deleted file mode 100644
index ac4a312..0000000
--- a/testing/tests/T051snmpv2ctrap
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-. ../eval_tools.sh
-
-HEADER SNMPv2c traps received and sent by tools
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-
-#
-# Begin test
-#
-
-CONFIGTRAPD authcommunity log testcommunity
-CONFIGTRAPD agentxsocket /dev/null
-
-STARTTRAPD
-
-CAPTURE "snmptrap -d -v 2c -c testcommunity $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s blah"
-
-STOPTRAPD
-
-CHECKTRAPD "coldStart"
-
-FINISHED
diff --git a/testing/tests/T059trapdtraphandle b/testing/tests/T059trapdtraphandle
deleted file mode 100755
index 3657494..0000000
--- a/testing/tests/T059trapdtraphandle
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/sh
-
-. ../eval_tools.sh
-
-TRAPHANDLE_LOGFILE=${SNMP_TMPDIR}/traphandle.log
-
-# "inline" trap handler
-if [ "x$2" = "xtraphandle" ]; then
-  cat - >>$TRAPHANDLE_LOGFILE
-  exit 0
-fi
-
-HEADER snmptrapd traphandle: launching external shell script
-
-SKIPIF NETSNMP_DISABLE_SNMPV2C
-
-#
-# Begin test
-#
-
-snmp_version=v2c
-TESTCOMMUNITY=testcommunity
-
-CONFIGTRAPD [snmp] persistentDir $SNMP_TMP_PERSISTENTDIR
-CONFIGTRAPD [snmp] tempFilePattern /tmp/snmpd-tmp-XXXXXX
-CONFIGTRAPD authcommunity execute $TESTCOMMUNITY
-CONFIGTRAPD doNotLogTraps true
-CONFIGTRAPD traphandle default $0 $1 traphandle
-CONFIGTRAPD agentxsocket /dev/null
-
-STARTTRAPD
-
-## 1) test notification handler
-
-CAPTURE "snmptrap -d -Ci -t $SNMP_SLEEP -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s handled_inform_$snmp_version"
-DELAY
-CHECKORDIE "handled_inform_$snmp_version" $TRAPHANDLE_LOGFILE 
-
-## 2) persistency: reconfigure (SIGHUP), re-test
-
-HUPTRAPD
-CAPTURE "snmptrap -d -Ci -t $SNMP_SLEEP -$snmp_version -c $TESTCOMMUNITY $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPTRAPD_PORT 0 .1.3.6.1.6.3.1.1.5.1 system.sysContact.0 s handled_inform2_$snmp_version"
-DELAY
-CHECKORDIE "handled_inform2_$snmp_version" $TRAPHANDLE_LOGFILE
-
-## stop
-STOPTRAPD
-
-FINISHED
diff --git a/testing/tests/T300udp b/testing/tests/T300udp
deleted file mode 100644
index 1a75747..0000000
--- a/testing/tests/T300udp
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-. ../eval_tools.sh
-
-HEADER UDP Transport
-
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-
-#
-# Begin test
-#
-
-SNMP_TRANSPORT_SPEC=udp
-
-. ./Stransport
diff --git a/testing/tests/T360dtlsudp b/testing/tests/T360dtlsudp
deleted file mode 100644
index 74a7af1..0000000
--- a/testing/tests/T360dtlsudp
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh
-
-. ../eval_tools.sh
-
-HEADER DTLS-UDP Transport
-
-SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
-SKIPIFNOT NETSNMP_TRANSPORT_DTLSUDP_DOMAIN
-
-#
-# Begin test
-#
-
-SNMP_TRANSPORT_SPEC=dtlsudp
-export SNMP_TRANSPORT_SPEC
-
-CONFIGAGENT '[snmp]' defX509ServerPub  	`pwd`/test-localhost.cert
-CONFIGAGENT '[snmp]' defX509ServerPriv 	`pwd`/test-localhost.priv
-CONFIGAGENT '[snmp]' defX509ClientCerts `pwd`/test-user.cert
-
-CONFIGAGENT '[snmp]' defX509ClientPub  	`pwd`/test-user.cert
-CONFIGAGENT '[snmp]' defX509ClientPriv 	`pwd`/test-user.priv
-CONFIGAGENT '[snmp]' defX509ServerCerts `pwd`/test-localhost.cert
-
-CONFIGAGENT '[snmp]' AllowSelfSignedX509 1
-
-CONFIGAPP   defX509ClientPub  	`pwd`/test-user.cert
-CONFIGAPP   defX509ClientPriv 	`pwd`/test-user.priv
-CONFIGAPP   defX509ServerCerts  `pwd`/test-localhost.cert
-
-CONFIGAPP   '[snmp]' defX509ServerPub  	`pwd`/test-localhost.cert
-CONFIGAPP   '[snmp]' defX509ServerPriv 	`pwd`/test-localhost.priv
-CONFIGAPP   '[snmp]' defX509ClientCerts `pwd`/test-user.cert
-
-CONFIGAPP   AllowSelfSignedX509 1
-
-export SNMP_TRANSPORT_SPEC
-export SNMP_SNMPD_PORT
-export SNMP_TEST_DEST
-
-CONFIGAGENT  rwuser -s tsm dtlstestuser authpriv
-
-STARTAGENT
-
-CAPTURE "snmpget -l ap -u bogus --defSecurityModel=tsm -On $SNMP_FLAGS $NOAUTHTESTARGS $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.3.0"
-
-STOPAGENT
-
-CHECK ".1.3.6.1.2.1.1.3.0 = Timeticks:"
-
-FINISHED
-
diff --git a/win32/Configure b/win32/Configure
index be3ee84..bc68afe 100644
--- a/win32/Configure
+++ b/win32/Configure
@@ -239,7 +239,6 @@
 ###############################################
 my @programs = qw
 /libagent
-libhelpers
 libnetsnmptrapd
 netsnmpmibs
 /;
@@ -280,10 +279,6 @@
     s/^OUTDIR=/OUTDIR=.\\$outdir/;
     s/^INTDIR=/INTDIR=.\\$intdir/;
     s/^SSL=.*/SSL=$openssl/;
-    if ($b_winextdll == 1) {
-      s/#(.*?)\s+# uncomment for winExtDLL.*/$1/;
-      s/^LIB32_FLAGS=(.*)/LIB32_FLAGS=MgmtAPI.lib snmpapi.lib $1/;
-    }
     print MAKE_OUT $_ . "\n";
   }
 }
diff --git a/win32/Makefile.in b/win32/Makefile.in
index 864a85f..bba5464 100644
--- a/win32/Makefile.in
+++ b/win32/Makefile.in
@@ -23,8 +23,8 @@
 libsnmp_clean : libsnmp_dll_clean_
 !ENDIF
 
-libs : libagent libhelpers libsnmp libnetsnmptrapd netsnmpmibs 
-libs_clean : libagent_clean libhelpers_clean libsnmp_clean libnetsnmptrapd_clean netsnmpmibs_clean
+libs : libagent libsnmp libnetsnmptrapd netsnmpmibs 
+libs_clean : libagent_clean libsnmp_clean libnetsnmptrapd_clean netsnmpmibs_clean
 
 apps : snmpdf snmpset snmpusm snmptest snmptrap snmpvacm snmpwalk snmpdelta snmptable snmpstatus snmpbulkget snmpget snmpgetnext snmpbulkwalk snmptranslate encode_keychange snmpnetstat
 
@@ -106,11 +106,6 @@
 	$(NMAKE) all
 	cd ..
 
-libhelpers ::
-	cd libhelpers
-	$(NMAKE) all
-	cd ..
-
 libsnmp_ ::
 	cd libsnmp
 	$(NMAKE) all
@@ -250,11 +245,6 @@
 	$(NMAKE) clean
 	cd ..
 
-libhelpers_clean ::
-	cd libhelpers
-	$(NMAKE) clean
-	cd ..
-
 libsnmp_clean_ ::
 	cd libsnmp
 	$(NMAKE) clean
@@ -394,11 +384,9 @@
         @-echo "all             libs apps snmptrapd snmpd                     "
         @-echo "clean           libs_clean apps_clean snmptrapd_clean         "
         @-echo "                snmpd_clean                                   "
-        @-echo "libs            libagent libhelpers libsnmp libnetsnmptrapd   "
-        @-echo "                netsnmpmibs                                   "
-        @-echo "libs_clean      libagent_clean libhelpers_clean               "
-        @-echo "                libnetsnmptrapd_clean libsnmp_clean           "
-        @-echo "                netsnmpmibs_clean                             "
+        @-echo "libs            libagent libsnmp libnetsnmptrapd netsnmpmibs  "
+        @-echo "libs_clean      libagent_clean libnetsnmptrapd_clean          "
+        @-echo "                libsnmp_clean netsnmpmibs_clean               "
         @-echo "                                                              "
         @-echo "apps            encode_keychange snmpbulkget snmpbulkwalk     "
         @-echo "                snmpdelta snmpdf snmpget snmpgetnext          "
diff --git a/win32/build.pl b/win32/build.pl
index a7f9338..c191f28 100644
--- a/win32/build.pl
+++ b/win32/build.pl
@@ -218,6 +218,7 @@
 
   # Delete net-snmp-config.h from main include folder just in case it was created by a Cygwin or MinGW build
   system("del ..\\include\\net-snmp\\net-snmp-config.h > NUL: 2>&1");
+  unlink "../snmplib/transports/snmp_transport_inits.h";
 
   print "Running Configure...\n";
   system("perl Configure $configOpts --linktype=$linktype --prefix=\"$install_base\" > configure.out 2>&1") == 0 || die "Build error (see configure.out)";
diff --git a/win32/config.h.borland b/win32/config.h.borland
index 629085c..47e1b07 100644
--- a/win32/config.h.borland
+++ b/win32/config.h.borland
@@ -164,9 +164,6 @@
 /* If you don't have root access don't exit upon kmem errors */
 #undef NETSNMP_NO_ROOT_ACCESS
 
-/* Define if you have the bcopy function.  */
-#undef HAVE_BCOPY
-
 /* Define if you have the gethostbyname function.  */
 #define HAVE_GETHOSTBYNAME 1
 
@@ -185,21 +182,12 @@
 /* Define if you have the vsnprintf function.  */
 #define HAVE_VSNPRINTF 1
 
-/* Define if you have the index function.  */
-#undef HAVE_INDEX
-
 /* Define if you have the kvm_openfiles function.  */
 #undef HAVE_KVM_OPENFILES
 
 /* Define if you have the lrand48 function.  */
 #undef HAVE_LRAND48
 
-/* Define if you have the memcpy function.  */
-#define HAVE_MEMCPY 1
-
-/* Define if you have the memmove function.  */
-#define HAVE_MEMMOVE 1
-
 /* Define if you have the rand function.  */
 #define HAVE_RAND 1
 
@@ -239,9 +227,6 @@
 /* Define if you have the statvfs function.  */
 #undef HAVE_STATVFS
 
-/* Define if you have the strchr function.  */
-#define HAVE_STRCHR 1
-
 /* Define if you have the strcasecmp function */
 #define HAVE_STRCASECMP 1
 
@@ -726,43 +711,6 @@
 /* Define if you have the strerror function.  */
 #define HAVE_STRERROR 1
 
-#ifndef HAVE_STRCHR
-#ifdef HAVE_INDEX
-# define strchr index
-# define strrchr rindex
-#endif
-#endif
-
-#ifndef HAVE_INDEX
-#ifdef HAVE_STRCHR
-# define index strchr
-# define rindex strrchr
-#endif
-#endif
-
-#ifndef HAVE_MEMCPY
-#ifdef HAVE_BCOPY
-# define memcpy(d, s, n) bcopy ((s), (d), (n))
-# define memmove(d, s, n) bcopy ((s), (d), (n))
-# define memcmp bcmp
-#endif
-#endif
-
-#ifndef HAVE_MEMMOVE
-#ifdef HAVE_MEMCPY
-# define memmove memcpy
-#endif
-#endif
-
-#ifndef HAVE_BCOPY
-#ifdef HAVE_MEMCPY
-# define bcopy(s, d, n) memcpy ((d), (s), (n))
-# define bzero(p,n) memset((p),(0),(n))
-# define bcmp memcmp
-#endif
-#endif
-
-
 /* define random functions */
 
 #ifndef HAVE_RANDOM
diff --git a/win32/dist/README.build.win32.txt b/win32/dist/README.build.win32.txt
index ab5439c..1925fb7 100644
--- a/win32/dist/README.build.win32.txt
+++ b/win32/dist/README.build.win32.txt
@@ -2,7 +2,7 @@
 *
 * README.build.win32
 *
-* Authors: Alex Burger <alex_b@users.sourceforge.net>
+* Author: Alex Burger <alex_b@users.sourceforge.net>
 *          
 *
 ***************************************************************************
@@ -23,8 +23,6 @@
 
   Bulding a NullSoft installer package
 
-  Bulding an OpenSSL version
-
 
 Compiling binaries
 ==================
@@ -32,13 +30,25 @@
 Requirements
 ------------
 
- -Windows NT/2000/XP
- -MSVC++ 6.0 SP5
- -ActivePerl 5.8.2 build 808
- -gnu_regex.exe (0.12) - http://people.delphiforums.com/gjc/gnu_regex.html
- -Platform SDK
+32-bit binary:
+
+ -Windows XP 32-bit SP2 or higher
+ -Microsoft Visual Studio 2008 SP1 with Platform SDK and latest updates from Microsoft
+  including updates to the redistributable components
+ -ActivePerl 5.10
  -MSYS / MinGW -or- tar.exe and gzip.exe
  -win32/dist folder from MAIN in CVS
+ -OpenSSL binary and library files from http://www.slproweb.com/products/Win32OpenSSL.html
+
+64-bit binary:
+
+ -Windows 7 64-bit
+ -Microsoft Visual Studio 2008 SP1 with Platform SDK and latest updates from Microsoft
+  including updates to the redistributable components.  Also need are the 64-bit compiler options.
+ -ActivePerl 5.10 (64-bit)
+ -MSYS / MinGW -or- tar.exe and gzip.exe
+ -win32/dist folder from MAIN in CVS
+ -OpenSSL 64-bit binary and library files from http://www.slproweb.com/products/Win32OpenSSL.html
 
 
 Building the main binaries
@@ -49,160 +59,80 @@
 Part 1
 ------
 
-1.  Extract source.  The location will be referenced as (source dir)
+1.  Install pre-requisites:
 
-2.  Delete c:\usr if it exists and rename Net-SNMP.dll in your %windir% if you 
-    have it already (to ensure Perl tests are using the compiled DLL)
+    MSVC 2008:
+      Include the Platform SDK and for 64-bit, make sure the 64-bit compiler is installed
+      (not included by default).
 
-3.  Apply any required patches
+      Latest updates from Microsoft to ensure the redistributable DLLs have the latest
+      security fixes.
 
-4.  Remove the example MIB files:  
+    ActivePerl:
+      For 64-bit, make sure you install the 64-bit version otherwise compiling will fail.
 
-    Edit win32\net-snmp\agent\mib_module_config.h and change the following lines:
+    MSYS / MinGW:
+      Needed for tar command in build-binary.bat/pl.  
 
-      #define USING_EXAMPLES_UCDDEMOPUBLIC_MODULE 1
-      #define USING_EXAMPLES_EXAMPLE_MODULE 1
+    OpenSSL:
+      Install the OpenSSL binary, header and library files as explained in 
+      'Using a pre-compiled version' of the 'Microsoft Visual C++ - Building with 
+      OpenSSL' section of README.win32.  For 64-bit, make sure you install the 64-bit 
+      version otherwise compiling will fail.
 
-    to:
+2.  Extract source.  The location will be referenced as (source dir)
 
-      #undef USING_EXAMPLES_UCDDEMOPUBLIC_MODULE
-      #undef USING_EXAMPLES_EXAMPLE_MODULE
+3.  Delete c:\usr if it exists.
 
-5.  cd (source dir)\win32
+4.  Apply any required patches
 
-6.  Run build.bat
+5.  cd (source dir)\win32\dist
 
-7.  Set to the following:
+6.  Run build-binary.bat.  
 
-    Net-SNMP build and install options
-    ==================================
+    If c:\usr already exists, it will stop with an error.
+
+    If %windir%\system32\netsnmp.dll exists, it will ask if it can be deleted.  Answer yes.
+
+7.  At a high level, the following will be completed:
+
+    a)  Get package version from Unix configure script for use in the Perl module and NSIS
+        installer package.
+    b)  Build the applications and Perl modules with OpenSSL enabled and winExtDLL disabled
+    c)  Build the applications and Perl modules with OpenSSL enabled and winExtDLL enabled
+    d)  Build the applications and Perl modules with OpenSSL disabled and winExtDLL disabled
+    e)  Build the applications and Perl modules with OpenSSL disabled and winExtDLL enabled
+    f)  Copy distribution files (readme, batch files etc)
+    g)  Copy NSIS installer script and update the version stamp
+
+8.  Copy the following to c:\usr\bin:
+
+    64-bit:
+
+    C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\amd64\Microsoft.VC90.CRT\*.*
+
+    32-bit:
+
+    C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\*.*   
+
+    Note:  Copy the files directly to the folder.  If you copy the folder, the binaries won't
+           run on Windows 2000.
+
+9.  Verify that the binaries created are linked to the correct MSVC 2008 redistribution that was
+    copied in the previous step.
+
+    Right-click msvcr90.dll, properties, Details.  Check the product version.  
+    Example: 9.00.30729.4148
+
+    cd \usr\bin
+    mt.exe -inputresource:snmpget.exe;#1 -out:extracted.manifest
+    type extracted.manifest
     
-    1.  OpenSSL support:      		disabled
-    2.  Platform SDK support: 		enabled         ***
-    
-    3.  Install path:         		c:/usr
-    4.  Install after build:  		enabled
-    
-    5.  Perl modules:         		enabled         ***
-    6.  Install perl modules: 		disabled
-    
-    7.  Quiet build (logged): 		enabled
-    8.  Debug mode:           		disabled
+    Example:
 
-    9.  IPv6 transports:      		disabled
-    10. winExtDLL agent (requires SDK): disabled
-
-    11. Link type:                      dynamic		***
-
-    12. Install development files   	enabled         ***
-    
-    F.  Finished - start build
-    Q.  Quit - abort build
-    
-    Select option to set / toggle:
-
-8.  F to start the build and verify everything was built ok
-
-9.  Delete any generated config files from c:\usr\snmp\persist
-
-Part 2 - Compiling winExtDLL
-----------------------------
-
-10. Run build.bat and set to the following:
-
-    Net-SNMP build and install options
-    ==================================
-    
-    1. OpenSSL support:      		disabled
-    2. Platform SDK support: 		enabled         ***
-    
-    3. Install path:         		c:/usr
-    4. Install after build:  		disabled        ***
-    
-    5. Perl modules:         		disabled
-    6. Install perl modules: 		disabled
-    
-    7. Quiet build (logged): 		enabled
-    8. Debug mode:           		disabled
-
-    9. IPv6 transports:      		disabled
-    10. winExtDLL agent (requires SDK): enabled         ***
-
-    11. Link type:                      dynamic		***
-
-    12. Install development files   	disabled
-    
-    F.  Finished - start build
-    Q.  Quit - abort build
-    
-    Select option to set / toggle:
-
-11. F to start the build and verify everything was built ok
-
-12. Copy the new binary:
-
-    copy bin\release\snmpd.exe c:\usr\bin\snmpd-winExtDLL.exe
-
-13. Test each binary by running each one with -DwinExtDLL.  Make sure only the
-    winExtDLL version has debug output.
-
-14. Delete any generated config files from c:\usr\snmp\persist
-
-
-Part 3 - Creating the Perl package
-----------------------------------
-
-1.  cd (source dir)
-    cd perl
-
-2.  nmake ppd
-
-3.  Open an MSYS shell (unless you have tar.exe and gzip.exe)
-
-4.  cd (source dir)
-    cd perl
-
-5.  tar cvf NetSNMP.tar blib; gzip --best NetSNMP.tar
-
-6.  Open a Windows command prompt (CMD) and cd (source dir)\perl
-
-7.  ren Bundle-NetSNMP.ppd NetSNMP.ppd
-
-8.  Modify NetSNMP.ppd to look like the following.  Change the 
-    VERSION="x,x,x,x" line to the correct values.  Do NOT change 
-    * lines in the original file.
-
-<SOFTPKG NAME="NetSNMP" VERSION="5,4,1,0">
-    <TITLE>Net-SNMP</TITLE>
-    <ABSTRACT>Object Oriented Interface to Net-SNMP</ABSTRACT>
-    <AUTHOR></AUTHOR>
-    <IMPLEMENTATION>
-*        <OS NAME="MSWin32" />
-*        <ARCHITECTURE NAME="MSWin32-x86-multi-thread-5.8" />
-        <CODEBASE HREF="x86/NetSNMP.tar.gz" />
-    </IMPLEMENTATION>
-</SOFTPKG>
-
-9.  Copy the win32\dist folder from trunk to the win32 folder of the extracted source.
-
-10. Create base directories:
-
-    md "c:\usr\docs"
-    md "c:\usr\perl"
-    md "c:\usr\perl\x86"
-    md "c:\usr\temp"
-
-12. Copy files:
-
-    cd (source dir)
-    copy COPYING "c:\usr\docs"
-    copy win32\dist\README.txt "c:\usr"
-    copy win32\dist\scripts\net-snmp-perl-test.pl "c:\usr\bin"
-
-    copy perl\NetSNMP.ppd "c:\usr\Perl"
-    copy perl\NetSNMP.tar.gz "c:\usr\Perl\x86"
-
-12. Update the BUILD INFORMATION section of c:\usr\README.txt
+    <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.30729.1"
+   
+10. Update the BUILD INFORMATION section of c:\usr\README.txt
 
 
 Compiling HTMLHelp file
@@ -336,7 +266,7 @@
     snmptrapd -H 2> c:\temp\net-snmp\html\snmptrapd.options
     snmpd -H 2> c:\temp\net-snmp\html\snmpd.options
 
-    Update these files using an HTML editor (Mozilla etc):
+    Update these files using an HTML editor (Nvu etc):
 
     c:\temp\net-snmp\html\snmp.conf.win32.html
     c:\temp\net-snmp\html\snmpd.conf.win32.html
@@ -387,137 +317,43 @@
  -Windows
  -Nullsoft Scriptable Install System 2.0 - http://nsis.sourceforge.net/home/
 
-1.  Complete the three sections above:  'Compiling binaries', 'Compiling 
-    HTMLHelp file' and 'Combining the binaries and HTMLHelp files'.  Net-SNMP
-    should be located in c:\usr.
+1.  Complete the sections above.
 
-2.  Copy the following files to c:\usr:
+2.  Launch the 'Nullsoft Install System (NSIS 2.0)'
 
-    cd (source dir)
-    copy win32\dist\installer\SetEnVar.nsi c:\usr\
-    copy win32\dist\installer\net-snmp.nsi c:\usr\
-    copy win32\dist\installer\Add2Path.nsi c:\usr\
-    copy win32\dist\installer\net-snmp-header1.bmp c:\usr\
+3.  Select 'MakeNSISW (compiler interface)'
 
-3.  Create the following empty files:
+4.  Click File - Load Script
 
-    echo . > c:\usr\registeragent.bat
-    echo . > c:\usr\unregisteragent.bat
-    echo . > c:\usr\registertrapd.bat
-    echo . > c:\usr\unregistertrapd.bat
-    echo . > c:\usr\etc\snmp\snmp.conf
+5.  Select c:\usr\net-snmp.nsi
 
-4.  Edit the following variables in c:\usr\net-snmp.nsi:
-
-    PRODUCT_MAJ_VERSION
-    PRODUCT_MIN_VERSION
-    PRODUCT_REVISION
-    PRODUCT_EXE_VERSION
-
-    For example, for 5.1.2:
-
-    PRODUCT_MAJ_VERSION "5"
-    PRODUCT_MIN_VERSION "1"
-    PRODUCT_REVISION "2"
-    PRODUCT_EXE_VERSION "1"
-
-    The generated filename would be: net-snmp-5.1.2-1.win32.exe
-
-    PRODUCT_EXE_VERSION is usually 1 unless the binary package is re-released
-    due to packaging issues.  For pre releases, include the pre-release version 
-    in PRODUCT_REVISION.   For example, for 5.1.2 pre2 use:
-
-    PRODUCT_MAJ_VERSION "5"
-    PRODUCT_MIN_VERSION "1"
-    PRODUCT_REVISION "2.pre2"
-    PRODUCT_EXE_VERSION "1"
-
-    This will ensure the version number is visible during installation.
-
-    The generated filename would be: net-snmp-5.1.2.pre2-1.win32.exe
-
-5.  Launch the 'Nullsoft Install System (NSIS 2.0)'
-
-6.  Select 'MakeNSISW (compiler interface)'
-
-7.  Click File - Load Script
-
-8.  Select c:\usr\net-snmp.nsi
-
-9.  You should now have a c:\usr\Net-SNMP-x.x.x-x.exe binary installer 
+6.  You should now have a c:\usr\Net-SNMP-x.x.x-x.exe binary installer 
     package
 
-10. Test the package
+7.  Test the package:
 
-11. Compare the directory contents of the compiled folder with the installed
-    folder to ensure there are no missing MIB files etc.  Modify net-snmp.nsi
-    and rebuild if required.
+    Perform the basic tests below on the following platforms:
 
-12. Create a .zip file of c:\usr for archive purposes.
+      32-bit package:
+        Windows 2000
+        Windows XP 32-bit
+      64-bit package:
+        Windows 7 64-bit
 
+    Tests:
 
-Bulding an OpenSSL version
-==========================
+    a) Installation with WinExtDLL and SSL
+    b) Configure snmpd to allow a query
+    c) Install snmpd and snmptrapd services
+    d) Stop the Microsoft SNMP service and start both Net-SNMP services
+    e) snmpwalk -v 1 -c public localhost system
+    f) Install Perl modules
+    g) Launch net-snmp-perl-test.pl
 
-Requirements
-------------
+8.  Compare the directory contents of the compiled folder with the installed
+    folder to ensure there are no missing MIB files etc.  If there are missing
+    files, modify net-snmp.nsi and rebuild if required and update net-snmp.nsi
+    etc in SVN.
 
- -OpenSSL binary from http://www.slproweb.com/products/Win32OpenSSL.html
-
-1.  Install the OpenSSL binary, header and library files as explained in 
-    'Using a pre-compiled version' of the 'Microsoft Visual C++ - Building with 
-    OpenSSL' section of README.win32.
-
-2.  Move c:\usr c:\usr.temp
-
-3.  Re-build the binary by following the steps in the section 'Building the 
-    main binaries' except enable OpenSSL (both regular and WinExtDLL).  Also 
-    follow the Perl steps to create a new tar file etc.
-
-4.  Copy contents of c:\usr to c:\usr.temp
-
-5.  Delete c:\usr
-
-6.  Move c:\usr.temp c:\usr
-
-7.  Update the BUILD INFORMATION section of c:\usr\README.txt to include the SSL 
-    info and the filename.
-
-8.  Update the version stamp in c:\usr\net-snmp.nsi to include -ssl.  Example:
-
-    For example, for 5.3.0:
-
-    PRODUCT_MAJ_VERSION "5"
-    PRODUCT_MIN_VERSION "3"
-    PRODUCT_REVISION "0-ssl"
-    PRODUCT_EXE_VERSION "1"
-
-    The generated filename would be: net-snmp-5.3.0-ssl-1.win32.exe
-
-9.  Also in c:\usr\net-snmp.nsi, change:
-
-    !define OPENSSL_REQUIRED "0"
-
-    to
-
-    !define OPENSSL_REQUIRED "1"
-
-10. Launch the 'Nullsoft Install System (NSIS 2.0)'
-
-11. Select 'MakeNSISW (compiler interface)'
-
-12. Click File - Load Script
-
-13. Select c:\usr\net-snmp.nsi
-
-14. You should now have a c:\usr\Net-SNMP-x.x.x-x.exe binary installer 
-    package
-
-15. Test the package
-
-16. Compare the directory contents of the compiled folder with the installed
-    folder to ensure there are no missing MIB files etc.  Modify net-snmp.nsi
-    and rebuild if required.
-
-17. Create a .zip file of c:\usr for archive purposes.
+9.  Create a .zip file of c:\usr for archive purposes.
 
diff --git a/win32/dist/build-binary.pl b/win32/dist/build-binary.pl
index 9632a92..d102dfb 100755
--- a/win32/dist/build-binary.pl
+++ b/win32/dist/build-binary.pl
@@ -411,12 +411,15 @@
       s/!define PRODUCT_REVISION.*/!define PRODUCT_REVISION \"$version_rev\"/;
       s/!define PRODUCT_EXE_VERSION.*/!define PRODUCT_EXE_VERSION \"$installer_exe_version\"/;
 	  if ($ENV{LIB} =~ /\\x64/) {
-	    s/!define PRODUCT_EXE_SUFFIX.*/!define PRODUCT_EXE_SUFFIX \".x64.exe\"/;
-	    s/!define WIN32_PLATFORM.*/!define PRODUCT_EXE_SUFFIX \"x64\"/;
+            s/!define INSTALLER_PLATFORM.*/!define INSTALLER_PLATFORM \"x64\"/;
+            s/!define PRODUCT_EXE_SUFFIX.*/!define PRODUCT_EXE_SUFFIX \".x64.exe\"/;
+            s/!define WIN32_PLATFORM.*/!define PRODUCT_EXE_SUFFIX \"x64\"/;
 	  }
 	  else {
-	    s/!define PRODUCT_EXE_SUFFIX.*/!define PRODUCT_EXE_SUFFIX \".x86.exe"/;
-	    s/!define WIN32_PLATFORM.*/!define PRODUCT_EXE_SUFFIX \"x86\"/;
+            s/!define INSTALLER_PLATFORM.*/!define INSTALLER_PLATFORM \"x86\"/;
+            s/!define PRODUCT_EXE_SUFFIX.*/!define PRODUCT_EXE_SUFFIX \".x86.exe"/;
+            s/!define PRODUCT_EXE_SUFFIX.*/!define PRODUCT_EXE_SUFFIX \".x86.exe"/;
+            s/!define WIN32_PLATFORM.*/!define PRODUCT_EXE_SUFFIX \"x86\"/;
 	  }
   
       print FILE_OUT $_ . "\n";
diff --git a/win32/dist/scripts/mandir2html b/win32/dist/scripts/mandir2html
index 08a6630..5435daf 100644
--- a/win32/dist/scripts/mandir2html
+++ b/win32/dist/scripts/mandir2html
@@ -35,7 +35,7 @@
 
 # Location of man pages to parse
 # Below this directory should be the folders man1 to man9.
-$man_dir = "/tmp/net-snmp/man/";
+$man_dir = "/tmp/net-snmp/share/man/";
 
 # Output folder to create the HTML files
 $man_dir_html = "/tmp/net-snmp/html/";
diff --git a/win32/libagent/Makefile.in b/win32/libagent/Makefile.in
index 69b2771..30a6cf6 100644
--- a/win32/libagent/Makefile.in
+++ b/win32/libagent/Makefile.in
@@ -19,8 +19,33 @@
 	"$(INTDIR)\agent_registry.obj" \
 	"$(INTDIR)\agent_sysORTable.obj" \
 	"$(INTDIR)\agent_trap.obj" \
+	"$(INTDIR)\all_helpers.obj" \
+	"$(INTDIR)\baby_steps.obj" \
+	"$(INTDIR)\bulk_to_next.obj" \
+	"$(INTDIR)\cache_handler.obj" \
+	"$(INTDIR)\debug_handler.obj" \
+	"$(INTDIR)\instance.obj" \
+	"$(INTDIR)\mode_end_call.obj" \
+	"$(INTDIR)\multiplexer.obj" \
+	"$(INTDIR)\null.obj" \
+	"$(INTDIR)\old_api.obj" \
+	"$(INTDIR)\read_only.obj" \
+	"$(INTDIR)\row_merge.obj" \
+	"$(INTDIR)\scalar.obj" \
+	"$(INTDIR)\scalar_group.obj" \
+	"$(INTDIR)\serialize.obj" \
 	"$(INTDIR)\snmp_agent.obj" \
-	"$(INTDIR)\snmp_vars.obj"
+	"$(INTDIR)\snmp_vars.obj" \
+	"$(INTDIR)\stash_cache.obj" \
+	"$(INTDIR)\stash_to_next.obj" \
+	"$(INTDIR)\table.obj" \
+	"$(INTDIR)\table_array.obj" \
+	"$(INTDIR)\table_container.obj" \
+	"$(INTDIR)\table_data.obj" \
+	"$(INTDIR)\table_dataset.obj" \
+	"$(INTDIR)\table_iterator.obj" \
+	"$(INTDIR)\table_tdata.obj" \
+	"$(INTDIR)\watcher.obj"
 
 CLEAN :
 	-@for %f in ($(LIB32_OBJS)) do erase %%f
@@ -121,3 +146,152 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\agent\helpers\all_helpers.c
+
+"$(INTDIR)\all_helpers.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\baby_steps.c
+
+"$(INTDIR)\baby_steps.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\bulk_to_next.c
+
+"$(INTDIR)\bulk_to_next.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\cache_handler.c
+
+"$(INTDIR)\cache_handler.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\debug_handler.c
+
+"$(INTDIR)\debug_handler.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\instance.c
+
+"$(INTDIR)\instance.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\mode_end_call.c
+
+"$(INTDIR)\mode_end_call.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\multiplexer.c
+
+"$(INTDIR)\multiplexer.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\null.c
+
+"$(INTDIR)\null.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\old_api.c
+
+"$(INTDIR)\old_api.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\read_only.c
+
+"$(INTDIR)\read_only.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\row_merge.c
+
+"$(INTDIR)\row_merge.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\scalar.c
+
+"$(INTDIR)\scalar.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\scalar_group.c
+
+"$(INTDIR)\scalar_group.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\serialize.c
+
+"$(INTDIR)\serialize.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\stash_cache.c
+
+"$(INTDIR)\stash_cache.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\stash_to_next.c
+
+"$(INTDIR)\stash_to_next.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\table.c
+
+"$(INTDIR)\table.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\table_array.c
+
+"$(INTDIR)\table_array.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\table_container.c
+
+"$(INTDIR)\table_container.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\table_data.c
+
+"$(INTDIR)\table_data.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\table_tdata.c
+
+"$(INTDIR)\table_tdata.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\table_dataset.c
+
+"$(INTDIR)\table_dataset.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\table_iterator.c
+
+"$(INTDIR)\table_iterator.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\helpers\watcher.c
+
+"$(INTDIR)\watcher.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
diff --git a/win32/libagent/libagent.def b/win32/libagent/libagent.def
deleted file mode 100644
index 686a50e..0000000
--- a/win32/libagent/libagent.def
+++ /dev/null
@@ -1,17 +0,0 @@
-;       @(#)libagent.def    1.0 10/26/97 (gmarzot@baynetworks.com)
-
-DESCRIPTION     'UCD SNMP Agent Library'
-;CODE            SHARED READ EXECUTE
-;DATA            SHARED READ WRITE
-EXPORTS
-	send_easy_trap
-	init_master_agent
-	init_mib_modules
-	init_agent
-	argvrestartname
-	argvrestart
-	argvrestartp
-	update_config
-	dump_idx_registry
-	netsnmp_clear_handler_list
-
diff --git a/win32/libagent/libagent.dsp b/win32/libagent/libagent.dsp
index de92f0e..892e8d3 100644
--- a/win32/libagent/libagent.dsp
+++ b/win32/libagent/libagent.dsp
@@ -109,12 +109,112 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\agent\helpers\all_helpers.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\baby_steps.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\bulk_to_next.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\cache_handler.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\debug_handler.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\instance.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\mode_end_call.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\multiplexer.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\null.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\old_api.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\read_only.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\row_merge.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\scalar.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\scalar_group.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\serialize.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\agent\snmp_agent.c
 # End Source File
 # Begin Source File
 
 SOURCE=..\..\agent\snmp_vars.c
 # End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\stash_cache.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\stash_to_next.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\table.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\table_array.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\table_container.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\table_data.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\table_dataset.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\table_iterator.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\table_tdata.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\helpers\watcher.c
+# End Source File
 # End Group
 # Begin Group "Header Files"
 
@@ -145,12 +245,72 @@
 # End Source File
 # Begin Source File
 
+SOURCE="..\..\include\net-snmp\agent\all_helpers.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\net-snmp\agent\bulk_to_next.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\net-snmp\agent\debug_handler.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\net-snmp\agent\instance.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\net-snmp\agent\multiplexer.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\net-snmp\agent\null.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\net-snmp\agent\old_api.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\net-snmp\agent\read_only.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\net-snmp\agent\serialize.h"
+# End Source File
+# Begin Source File
+
 SOURCE="..\..\include\net-snmp\agent\snmp_agent.h"
 # End Source File
 # Begin Source File
 
 SOURCE="..\..\include\net-snmp\agent\snmp_vars.h"
 # End Source File
+# Begin Source File
+
+SOURCE="..\..\include\net-snmp\agent\table.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\net-snmp\agent\table_array.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\net-snmp\agent\table_data.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\net-snmp\agent\table_dataset.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\net-snmp\agent\table_iterator.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\include\net-snmp\agent\table_tdata.h"
+# End Source File
 # End Group
 # End Target
 # End Project
diff --git a/win32/libhelpers/Makefile.in b/win32/libhelpers/Makefile.in
deleted file mode 100644
index bbc80e8..0000000
--- a/win32/libhelpers/Makefile.in
+++ /dev/null
@@ -1,405 +0,0 @@
-PROGNAME=
-CFG=
-OUTDIR=
-INTDIR=
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE 
-NULL=nul
-!ENDIF 
-
-!IF  "$(CFG)" == "release"
-
-ALL : "..\lib\$(OUTDIR)\netsnmphelpers.lib"
-
-
-CLEAN :
-	-@erase "$(INTDIR)\all_helpers.obj"
-	-@erase "$(INTDIR)\baby_steps.obj"
-	-@erase "$(INTDIR)\bulk_to_next.obj"
-	-@erase "$(INTDIR)\cache_handler.obj"
-	-@erase "$(INTDIR)\debug_handler.obj"
-	-@erase "$(INTDIR)\instance.obj"
-	-@erase "$(INTDIR)\mode_end_call.obj"
-	-@erase "$(INTDIR)\multiplexer.obj"
-	-@erase "$(INTDIR)\null.obj"
-	-@erase "$(INTDIR)\old_api.obj"
-	-@erase "$(INTDIR)\read_only.obj"
-	-@erase "$(INTDIR)\row_merge.obj"
-	-@erase "$(INTDIR)\scalar.obj"
-	-@erase "$(INTDIR)\scalar_group.obj"
-	-@erase "$(INTDIR)\serialize.obj"
-	-@erase "$(INTDIR)\stash_cache.obj"
-	-@erase "$(INTDIR)\stash_to_next.obj"
-	-@erase "$(INTDIR)\table.obj"
-	-@erase "$(INTDIR)\table_array.obj"
-	-@erase "$(INTDIR)\table_container.obj"
-	-@erase "$(INTDIR)\table_data.obj"
-	-@erase "$(INTDIR)\table_tdata.obj"
-	-@erase "$(INTDIR)\table_dataset.obj"
-	-@erase "$(INTDIR)\table_iterator.obj"
-	-@erase "$(INTDIR)\vc??.idb"
-	-@erase "$(INTDIR)\watcher.obj"
-	-@erase "$(INTDIR)\$(PROGNAME).pch"
-	-@erase "..\lib\$(OUTDIR)\netsnmphelpers.lib"
-
-"..\lib\$(OUTDIR)" :
-    if not exist "..\lib\$(OUTDIR)/$(NULL)" mkdir "..\lib\$(OUTDIR)"
-
-"$(INTDIR)" :
-    if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /EHsc /Zi /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent" /I "..\..\agent\mibgroup" /D "WIN32" /D "_BIND_TO_CURRENT_VCLIBS_VERSION" /D "NDEBUG" /D "_CONSOLE" /D "_CRT_SECURE_NO_WARNINGS" /D "_CRT_NONSTDC_NO_WARNINGS" /D "_MBCS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\$(PROGNAME).pdb" /FD /c 
-
-.c{$(INTDIR)}.obj::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.cpp{$(INTDIR)}.obj::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.cxx{$(INTDIR)}.obj::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.c{$(INTDIR)}.sbr::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.cpp{$(INTDIR)}.sbr::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.cxx{$(INTDIR)}.sbr::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(INTDIR)\libhelpers.bsc" 
-BSC32_SBRS= \
-
-LIB32=link.exe -lib
-LIB32_FLAGS=/nologo /out:"..\lib\$(OUTDIR)\netsnmphelpers.lib" 
-LIB32_OBJS= \
-	"$(INTDIR)\all_helpers.obj" \
-	"$(INTDIR)\baby_steps.obj" \
-	"$(INTDIR)\bulk_to_next.obj" \
-	"$(INTDIR)\cache_handler.obj" \
-	"$(INTDIR)\debug_handler.obj" \
-	"$(INTDIR)\instance.obj" \
-	"$(INTDIR)\mode_end_call.obj" \
-	"$(INTDIR)\multiplexer.obj" \
-	"$(INTDIR)\null.obj" \
-	"$(INTDIR)\old_api.obj" \
-	"$(INTDIR)\read_only.obj" \
-	"$(INTDIR)\row_merge.obj" \
-	"$(INTDIR)\scalar.obj" \
-	"$(INTDIR)\scalar_group.obj" \
-	"$(INTDIR)\serialize.obj" \
-	"$(INTDIR)\stash_cache.obj" \
-	"$(INTDIR)\stash_to_next.obj" \
-	"$(INTDIR)\table.obj" \
-	"$(INTDIR)\table_array.obj" \
-	"$(INTDIR)\table_container.obj" \
-	"$(INTDIR)\table_data.obj" \
-	"$(INTDIR)\table_tdata.obj" \
-	"$(INTDIR)\table_dataset.obj" \
-	"$(INTDIR)\table_iterator.obj" \
-	"$(INTDIR)\watcher.obj"
-
-"..\lib\$(OUTDIR)\netsnmphelpers.lib" : "..\lib\$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
-    $(LIB32) @<<
-  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
-<<
-
-!ELSEIF  "$(CFG)" == "debug"
-
-ALL : "..\lib\$(OUTDIR)\netsnmphelpers.lib"
-
-
-CLEAN :
-	-@erase "$(INTDIR)\all_helpers.obj"
-	-@erase "$(INTDIR)\baby_steps.obj"
-	-@erase "$(INTDIR)\bulk_to_next.obj"
-	-@erase "$(INTDIR)\cache_handler.obj"
-	-@erase "$(INTDIR)\debug_handler.obj"
-	-@erase "$(INTDIR)\instance.obj"
-	-@erase "$(INTDIR)\mode_end_call.obj"
-	-@erase "$(INTDIR)\multiplexer.obj"
-	-@erase "$(INTDIR)\null.obj"
-	-@erase "$(INTDIR)\old_api.obj"
-	-@erase "$(INTDIR)\read_only.obj"
-	-@erase "$(INTDIR)\row_merge.obj"
-	-@erase "$(INTDIR)\scalar.obj"
-	-@erase "$(INTDIR)\scalar_group.obj"
-	-@erase "$(INTDIR)\serialize.obj"
-	-@erase "$(INTDIR)\stash_cache.obj"
-	-@erase "$(INTDIR)\stash_to_next.obj"
-	-@erase "$(INTDIR)\table.obj"
-	-@erase "$(INTDIR)\table_array.obj"
-	-@erase "$(INTDIR)\table_container.obj"
-	-@erase "$(INTDIR)\table_data.obj"
-	-@erase "$(INTDIR)\table_tdata.obj"
-	-@erase "$(INTDIR)\table_dataset.obj"
-	-@erase "$(INTDIR)\table_iterator.obj"
-	-@erase "$(INTDIR)\vc??.idb"
-	-@erase "$(INTDIR)\vc??.pdb"
-	-@erase "$(INTDIR)\watcher.obj"
-	-@erase "$(INTDIR)\$(PROGNAME).pch"
-	-@erase "..\lib\$(OUTDIR)\netsnmphelpers.lib"
-
-"..\lib\$(OUTDIR)" :
-    if not exist "..\lib\$(OUTDIR)/$(NULL)" mkdir "..\lib\$(OUTDIR)"
-
-"$(INTDIR)" :
-    if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent" /I "..\..\agent\mibgroup" /D "WIN32" /D "_BIND_TO_CURRENT_VCLIBS_VERSION" /D "_DEBUG" /D "_CONSOLE" /D "_CRT_SECURE_NO_WARNINGS" /D "_CRT_NONSTDC_NO_WARNINGS" /D "_MBCS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\$(PROGNAME).pdb" /FD /c 
-
-.c{$(INTDIR)}.obj::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.cpp{$(INTDIR)}.obj::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.cxx{$(INTDIR)}.obj::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.c{$(INTDIR)}.sbr::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.cpp{$(INTDIR)}.sbr::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.cxx{$(INTDIR)}.sbr::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(INTDIR)\libhelpers.bsc" 
-BSC32_SBRS= \
-
-LIB32=link.exe -lib
-LIB32_FLAGS=/nologo /out:"..\lib\$(OUTDIR)\netsnmphelpers.lib" 
-LIB32_OBJS= \
-	"$(INTDIR)\all_helpers.obj" \
-	"$(INTDIR)\baby_steps.obj" \
-	"$(INTDIR)\bulk_to_next.obj" \
-	"$(INTDIR)\cache_handler.obj" \
-	"$(INTDIR)\debug_handler.obj" \
-	"$(INTDIR)\instance.obj" \
-	"$(INTDIR)\mode_end_call.obj" \
-	"$(INTDIR)\multiplexer.obj" \
-	"$(INTDIR)\null.obj" \
-	"$(INTDIR)\old_api.obj" \
-	"$(INTDIR)\read_only.obj" \
-	"$(INTDIR)\row_merge.obj" \
-	"$(INTDIR)\scalar.obj" \
-	"$(INTDIR)\scalar_group.obj" \
-	"$(INTDIR)\serialize.obj" \
-	"$(INTDIR)\stash_cache.obj" \
-	"$(INTDIR)\stash_to_next.obj" \
-	"$(INTDIR)\table.obj" \
-	"$(INTDIR)\table_array.obj" \
-	"$(INTDIR)\table_container.obj" \
-	"$(INTDIR)\table_data.obj" \
-	"$(INTDIR)\table_tdata.obj" \
-	"$(INTDIR)\table_dataset.obj" \
-	"$(INTDIR)\table_iterator.obj" \
-	"$(INTDIR)\watcher.obj"
-
-"..\lib\$(OUTDIR)\netsnmphelpers.lib" : "..\lib\$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
-    $(LIB32) @<<
-  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
-<<
-
-!ENDIF 
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("libhelpers.dep")
-!INCLUDE "libhelpers.dep"
-!ELSE 
-!MESSAGE Warning: cannot find "libhelpers.dep"
-!ENDIF 
-!ENDIF 
-
-
-!IF "$(CFG)" == "release" || "$(CFG)" == "debug"
-SOURCE=..\..\agent\helpers\all_helpers.c
-
-"$(INTDIR)\all_helpers.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\baby_steps.c
-
-"$(INTDIR)\baby_steps.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\bulk_to_next.c
-
-"$(INTDIR)\bulk_to_next.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\cache_handler.c
-
-"$(INTDIR)\cache_handler.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\debug_handler.c
-
-"$(INTDIR)\debug_handler.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\instance.c
-
-"$(INTDIR)\instance.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\mode_end_call.c
-
-"$(INTDIR)\mode_end_call.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\multiplexer.c
-
-"$(INTDIR)\multiplexer.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\null.c
-
-"$(INTDIR)\null.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\old_api.c
-
-"$(INTDIR)\old_api.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\read_only.c
-
-"$(INTDIR)\read_only.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\row_merge.c
-
-"$(INTDIR)\row_merge.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\scalar.c
-
-"$(INTDIR)\scalar.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\scalar_group.c
-
-"$(INTDIR)\scalar_group.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\serialize.c
-
-"$(INTDIR)\serialize.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\stash_cache.c
-
-"$(INTDIR)\stash_cache.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\stash_to_next.c
-
-"$(INTDIR)\stash_to_next.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\table.c
-
-"$(INTDIR)\table.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\table_array.c
-
-"$(INTDIR)\table_array.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\table_container.c
-
-"$(INTDIR)\table_container.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\table_data.c
-
-"$(INTDIR)\table_data.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\table_tdata.c
-
-"$(INTDIR)\table_tdata.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\table_dataset.c
-
-"$(INTDIR)\table_dataset.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\table_iterator.c
-
-"$(INTDIR)\table_iterator.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\helpers\watcher.c
-
-"$(INTDIR)\watcher.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF 
-
-
diff --git a/win32/libhelpers/libhelpers.dsp b/win32/libhelpers/libhelpers.dsp
deleted file mode 100644
index e90c56d..0000000
--- a/win32/libhelpers/libhelpers.dsp
+++ /dev/null
@@ -1,252 +0,0 @@
-# Microsoft Developer Studio Project File - Name="libhelpers" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=libhelpers - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "libhelpers.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "libhelpers.mak" CFG="libhelpers - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "libhelpers - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "libhelpers - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "libhelpers - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "../lib/release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_CRT_SECURE_NO_WARNINGS" /D "_CRT_NONSTDC_NO_WARNINGS" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent" /I "..\..\agent\mibgroup" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_CRT_SECURE_NO_WARNINGS" /D "_CRT_NONSTDC_NO_WARNINGS" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409
-# ADD RSC /l 0x409
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"../lib/release/netsnmphelpers.lib"
-
-!ELSEIF  "$(CFG)" == "libhelpers - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "../lib/debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_CRT_SECURE_NO_WARNINGS" /D "_CRT_NONSTDC_NO_WARNINGS" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /I "..\..\agent" /I "..\..\agent\mibgroup" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_CRT_SECURE_NO_WARNINGS" /D "_CRT_NONSTDC_NO_WARNINGS" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x409
-# ADD RSC /l 0x409
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo /out:"../lib/debug/netsnmphelpers.lib"
-
-!ENDIF 
-
-# Begin Target
-
-# Name "libhelpers - Win32 Release"
-# Name "libhelpers - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\all_helpers.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\baby_steps.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\bulk_to_next.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\cache_handler.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\debug_handler.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\instance.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\mode_end_call.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\multiplexer.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\null.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\old_api.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\read_only.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\row_merge.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\scalar.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\scalar_group.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\serialize.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\stash_cache.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\stash_to_next.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\table.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\table_array.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\table_container.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\table_data.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\table_tdata.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\table_dataset.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\table_iterator.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\helpers\watcher.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\all_helpers.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\bulk_to_next.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\debug_handler.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\instance.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\multiplexer.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\null.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\old_api.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\read_only.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\serialize.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\table.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\table_array.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\table_data.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\table_tdata.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\table_dataset.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\agent\table_iterator.h"
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/win32/libnetsnmptrapd/libnetsnmptrapd.dsp b/win32/libnetsnmptrapd/libnetsnmptrapd.dsp
index d54743b..08b41ff 100644
--- a/win32/libnetsnmptrapd/libnetsnmptrapd.dsp
+++ b/win32/libnetsnmptrapd/libnetsnmptrapd.dsp
@@ -89,37 +89,36 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\apps\snmptrapd_auth.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\apps\snmptrapd_handlers.c
 # End Source File
 # Begin Source File
 
 SOURCE=..\..\apps\snmptrapd_log.c
 # End Source File
-# Begin Source File
-
-SOURCE=..\..\apps\snmptrapd_auth.c
-# End Source File
 # End Group
 # Begin Group "Header Files"
 
 # PROP Default_Filter ""
 # Begin Source File
 
+SOURCE="..\..\agent\mibgroup\notification-log-mib\notification_log.h"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\apps\snmptrapd_auth.h"
+# End Source File
+# Begin Source File
+
 SOURCE="..\..\apps\snmptrapd_handlers.h"
 # End Source File
 # Begin Source File
 
 SOURCE="..\..\apps\snmptrapd_log.h"
 # End Source File
-# Begin Source File
-
-SOURCE="..\..\apps\snmptrapd_auth.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\agent\mibgroup\notification-log-mib\notification_log.h"
-# End Source File
 # End Group
 # End Target
 # End Project
-
diff --git a/win32/libsnmp/Makefile.in b/win32/libsnmp/Makefile.in
index a55f510..51f5d4f 100644
--- a/win32/libsnmp/Makefile.in
+++ b/win32/libsnmp/Makefile.in
@@ -2,6 +2,7 @@
 CFG=
 OUTDIR=
 INTDIR=
+SDK=
 
 !IF "$(OS)" == "Windows_NT"
 NULL=
@@ -9,257 +10,95 @@
 NULL=nul
 !ENDIF 
 
+ALL : "..\lib\$(OUTDIR)\netsnmp.lib"
+
+LIB32_OBJS= \
+	"$(INTDIR)\asn1.obj" \
+	"$(INTDIR)\callback.obj" \
+	"$(INTDIR)\check_varbind.obj" \
+	"$(INTDIR)\closedir.obj" \
+	"$(INTDIR)\cmu_compat.obj" \
+	"$(INTDIR)\container.obj" \
+	"$(INTDIR)\container_binary_array.obj" \
+	"$(INTDIR)\container_iterator.obj" \
+	"$(INTDIR)\container_list_ssll.obj" \
+	"$(INTDIR)\container_null.obj" \
+	"$(INTDIR)\data_list.obj" \
+	"$(INTDIR)\default_store.obj" \
+	"$(INTDIR)\fd_event_manager.obj" \
+	"$(INTDIR)\getopt.obj" \
+	"$(INTDIR)\gettimeofday.obj" \
+	"$(INTDIR)\inet_ntop.obj" \
+	"$(INTDIR)\inet_pton.obj" \
+	"$(INTDIR)\int64.obj" \
+	"$(INTDIR)\keytools.obj" \
+	"$(INTDIR)\large_fd_set.obj" \
+	"$(INTDIR)\lcd_time.obj" \
+	"$(INTDIR)\md5.obj" \
+	"$(INTDIR)\mib.obj" \
+	"$(INTDIR)\mt_support.obj" \
+	"$(INTDIR)\oid_stash.obj" \
+	"$(INTDIR)\opendir.obj" \
+	"$(INTDIR)\parse.obj" \
+	"$(INTDIR)\read_config.obj" \
+	"$(INTDIR)\readdir.obj" \
+	"$(INTDIR)\scapi.obj" \
+	"$(INTDIR)\snmp-tc.obj" \
+	"$(INTDIR)\snmp.obj" \
+	"$(INTDIR)\snmpCallbackDomain.obj" \
+	"$(INTDIR)\snmpIPv4BaseDomain.obj" \
+	"$(INTDIR)\snmpSocketBaseDomain.obj" \
+	"$(INTDIR)\snmpTCPBaseDomain.obj" \
+	"$(INTDIR)\snmpTCPDomain.obj" \
+	"$(INTDIR)\snmpUDPBaseDomain.obj" \
+	"$(INTDIR)\snmpUDPDomain.obj" \
+	"$(INTDIR)\snmpUDPIPv4BaseDomain.obj" \
+	"$(INTDIR)\snmp_alarm.obj" \
+	"$(INTDIR)\snmp_api.obj" \
+	"$(INTDIR)\snmp_auth.obj" \
+	"$(INTDIR)\snmp_client.obj" \
+	"$(INTDIR)\snmp_debug.obj" \
+	"$(INTDIR)\snmp_enum.obj" \
+	"$(INTDIR)\snmp_logging.obj" \
+	"$(INTDIR)\snmp_parse_args.obj" \
+	"$(INTDIR)\snmp_secmod.obj" \
+	"$(INTDIR)\snmp_service.obj" \
+	"$(INTDIR)\snmp_transport.obj" \
+	"$(INTDIR)\snmp_version.obj" \
+	"$(INTDIR)\snmpusm.obj" \
+	"$(INTDIR)\snmpv3.obj" \
+	"$(INTDIR)\strlcat.obj" \
+	"$(INTDIR)\strlcpy.obj" \
+	"$(INTDIR)\strtok_r.obj" \
+	"$(INTDIR)\strtoull.obj" \
+	"$(INTDIR)\system.obj" \
+	"$(INTDIR)\tools.obj" \
+	"$(INTDIR)\ucd_compat.obj" \
+	"$(INTDIR)\vacm.obj" \
+	"$(INTDIR)\winpipe.obj"
+!IF "$(SDK)" == "true"
+LIB32_OBJS=$(LIB32_OBJS)\
+	"$(INTDIR)\snmpIPv6BaseDomain.obj" \
+	"$(INTDIR)\snmpTCPIPv6Domain.obj" \
+	"$(INTDIR)\snmpUDPIPv6Domain.obj"
+!ENDIF
+
+CLEAN :
+	-@for %f in $(LIB32_OBJS) do erase %%f
+	-@erase "..\lib\$(OUTDIR)\netsnmp.lib"
+
+"..\lib\$(OUTDIR)" :
+    if not exist "..\lib\$(OUTDIR)/$(NULL)" mkdir "..\lib\$(OUTDIR)"
+
+"$(INTDIR)" :
+    if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+CPP=cl.exe
 !IF  "$(CFG)" == "release"
-
-ALL : "..\lib\$(OUTDIR)\netsnmp.lib"
-
-
-CLEAN :
-	-@erase "$(INTDIR)\asn1.obj"
-	-@erase "$(INTDIR)\callback.obj"
-	-@erase "$(INTDIR)\check_varbind.obj"
-	-@erase "$(INTDIR)\cmu_compat.obj"
-	-@erase "$(INTDIR)\container.obj"
-	-@erase "$(INTDIR)\container_binary_array.obj"
-	-@erase "$(INTDIR)\container_iterator.obj"
-	-@erase "$(INTDIR)\container_list_ssll.obj"
-	-@erase "$(INTDIR)\container_null.obj"
-	-@erase "$(INTDIR)\data_list.obj"
-	-@erase "$(INTDIR)\default_store.obj"
-	-@erase "$(INTDIR)\getopt.obj"
-	-@erase "$(INTDIR)\int64.obj"
-	-@erase "$(INTDIR)\inet_ntop.obj"
-	-@erase "$(INTDIR)\inet_pton.obj"
-	-@erase "$(INTDIR)\keytools.obj"
-	-@erase "$(INTDIR)\lcd_time.obj"
-	-@erase "$(INTDIR)\md5.obj"
-	-@erase "$(INTDIR)\mib.obj"
-	-@erase "$(INTDIR)\mt_support.obj"
-	-@erase "$(INTDIR)\oid_stash.obj"
-	-@erase "$(INTDIR)\parse.obj"
-	-@erase "$(INTDIR)\read_config.obj"
-	-@erase "$(INTDIR)\scapi.obj"
-	-@erase "$(INTDIR)\snmp-tc.obj"
-	-@erase "$(INTDIR)\snmp.obj"
-	-@erase "$(INTDIR)\snmp_alarm.obj"
-	-@erase "$(INTDIR)\snmp_api.obj"
-	-@erase "$(INTDIR)\snmp_auth.obj"
-	-@erase "$(INTDIR)\snmp_client.obj"
-	-@erase "$(INTDIR)\snmp_debug.obj"
-	-@erase "$(INTDIR)\snmp_enum.obj"
-	-@erase "$(INTDIR)\snmp_logging.obj"
-	-@erase "$(INTDIR)\snmp_parse_args.obj"
-	-@erase "$(INTDIR)\snmp_secmod.obj"
-	-@erase "$(INTDIR)\snmp_transport.obj"
-	-@erase "$(INTDIR)\snmp_version.obj"
-	-@erase "$(INTDIR)\snmp_service.obj"
-	-@erase "$(INTDIR)\snmpCallbackDomain.obj"
-	-@erase "$(INTDIR)\snmpTCPDomain.obj"
-	-@erase "$(INTDIR)\snmpTCPIPv6Domain.obj"
-	-@erase "$(INTDIR)\snmpUDPDomain.obj"
-	-@erase "$(INTDIR)\snmpUDPIPv6Domain.obj"
-	-@erase "$(INTDIR)\snmpusm.obj"
-	-@erase "$(INTDIR)\snmpv3.obj"
-	-@erase "$(INTDIR)\strlcat.obj"
-	-@erase "$(INTDIR)\strlcpy.obj"
-	-@erase "$(INTDIR)\system.obj"
-	-@erase "$(INTDIR)\tools.obj"
-	-@erase "$(INTDIR)\strtok_r.obj"
-	-@erase "$(INTDIR)\strtoull.obj"
-	-@erase "$(INTDIR)\ucd_compat.obj"
-	-@erase "$(INTDIR)\vacm.obj"
-	-@erase "$(INTDIR)\vc??.idb"
-	-@erase "$(INTDIR)\winpipe.obj"
-	-@erase "$(INTDIR)\fd_event_manager.obj"
-	-@erase "$(INTDIR)\large_fd_set.obj"
-	-@erase "$(INTDIR)\$(PROGNAME).pch"
-	-@erase "..\lib\$(OUTDIR)\netsnmp.lib"
-
-"..\lib\$(OUTDIR)" :
-    if not exist "..\lib\$(OUTDIR)/$(NULL)" mkdir "..\lib\$(OUTDIR)"
-
-"$(INTDIR)" :
-    if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
 CPP_PROJ=/nologo /MD /W3 /EHsc /Zi /O2 /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /D "WIN32" /D "_BIND_TO_CURRENT_VCLIBS_VERSION" /D "NDEBUG" /D "_CONSOLE" /D "_CRT_SECURE_NO_WARNINGS" /D "_CRT_NONSTDC_NO_WARNINGS" /D "_MBCS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\$(PROGNAME).pdb" /FD /c 
-
-.c{$(INTDIR)}.obj::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.cpp{$(INTDIR)}.obj::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.cxx{$(INTDIR)}.obj::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.c{$(INTDIR)}.sbr::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.cpp{$(INTDIR)}.sbr::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.cxx{$(INTDIR)}.sbr::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(INTDIR)\$(PROGNAME).bsc" 
-BSC32_SBRS= \
-
-LIB32=link.exe -lib
-LIB32_FLAGS=/nologo /out:"..\lib\$(OUTDIR)\netsnmp.lib" 
-LIB32_OBJS= \
-	"$(INTDIR)\asn1.obj" \
-	"$(INTDIR)\callback.obj" \
-	"$(INTDIR)\check_varbind.obj" \
-	"$(INTDIR)\cmu_compat.obj" \
-	"$(INTDIR)\container.obj" \
-	"$(INTDIR)\container_binary_array.obj" \
-	"$(INTDIR)\container_iterator.obj" \
-	"$(INTDIR)\container_list_ssll.obj" \
-	"$(INTDIR)\container_null.obj" \
-	"$(INTDIR)\data_list.obj" \
-	"$(INTDIR)\default_store.obj" \
-	"$(INTDIR)\getopt.obj" \
-	"$(INTDIR)\int64.obj" \
-	"$(INTDIR)\inet_ntop.obj" \
-	"$(INTDIR)\inet_pton.obj" \
-	"$(INTDIR)\keytools.obj" \
-	"$(INTDIR)\lcd_time.obj" \
-	"$(INTDIR)\md5.obj" \
-	"$(INTDIR)\mib.obj" \
-	"$(INTDIR)\mt_support.obj" \
-	"$(INTDIR)\oid_stash.obj" \
-	"$(INTDIR)\parse.obj" \
-	"$(INTDIR)\read_config.obj" \
-	"$(INTDIR)\scapi.obj" \
-	"$(INTDIR)\snmp-tc.obj" \
-	"$(INTDIR)\snmp.obj" \
-	"$(INTDIR)\snmp_alarm.obj" \
-	"$(INTDIR)\snmp_api.obj" \
-	"$(INTDIR)\snmp_auth.obj" \
-	"$(INTDIR)\snmp_client.obj" \
-	"$(INTDIR)\snmp_debug.obj" \
-	"$(INTDIR)\snmp_enum.obj" \
-	"$(INTDIR)\snmp_logging.obj" \
-	"$(INTDIR)\snmp_parse_args.obj" \
-	"$(INTDIR)\snmp_secmod.obj" \
-	"$(INTDIR)\snmp_transport.obj" \
-	"$(INTDIR)\snmp_version.obj" \
-	"$(INTDIR)\snmp_service.obj" \
-	"$(INTDIR)\snmpCallbackDomain.obj" \
-	"$(INTDIR)\snmpTCPDomain.obj" \
-	"$(INTDIR)\snmpTCPIPv6Domain.obj" \
-	"$(INTDIR)\snmpUDPDomain.obj" \
-	"$(INTDIR)\snmpUDPIPv6Domain.obj" \
-	"$(INTDIR)\snmpusm.obj" \
-	"$(INTDIR)\snmpv3.obj" \
-	"$(INTDIR)\strlcat.obj" \
-	"$(INTDIR)\strlcpy.obj" \
-	"$(INTDIR)\system.obj" \
-	"$(INTDIR)\tools.obj" \
-	"$(INTDIR)\strtok_r.obj" \
-	"$(INTDIR)\strtoull.obj" \
-	"$(INTDIR)\ucd_compat.obj" \
-	"$(INTDIR)\vacm.obj" \
-	"$(INTDIR)\winpipe.obj" \
-	"$(INTDIR)\fd_event_manager.obj" \
-	"$(INTDIR)\large_fd_set.obj"
-
-"..\lib\$(OUTDIR)\netsnmp.lib" : "..\lib\$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
-    $(LIB32) @<<
-  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
-<<
-
 !ELSEIF  "$(CFG)" == "debug"
-
-ALL : "..\lib\$(OUTDIR)\netsnmp.lib"
-
-
-CLEAN :
-	-@erase "$(INTDIR)\asn1.obj"
-	-@erase "$(INTDIR)\callback.obj"
-	-@erase "$(INTDIR)\check_varbind.obj"
-	-@erase "$(INTDIR)\cmu_compat.obj"
-	-@erase "$(INTDIR)\container.obj"
-	-@erase "$(INTDIR)\container_binary_array.obj"
-	-@erase "$(INTDIR)\container_iterator.obj"
-	-@erase "$(INTDIR)\container_list_ssll.obj"
-	-@erase "$(INTDIR)\container_null.obj"
-	-@erase "$(INTDIR)\data_list.obj"
-	-@erase "$(INTDIR)\default_store.obj"
-	-@erase "$(INTDIR)\getopt.obj"
-	-@erase "$(INTDIR)\int64.obj"
-	-@erase "$(INTDIR)\inet_ntop.obj"
-	-@erase "$(INTDIR)\inet_pton.obj"
-	-@erase "$(INTDIR)\keytools.obj"
-	-@erase "$(INTDIR)\lcd_time.obj"
-	-@erase "$(INTDIR)\md5.obj"
-	-@erase "$(INTDIR)\mib.obj"
-	-@erase "$(INTDIR)\mt_support.obj"
-	-@erase "$(INTDIR)\oid_stash.obj"
-	-@erase "$(INTDIR)\parse.obj"
-	-@erase "$(INTDIR)\read_config.obj"
-	-@erase "$(INTDIR)\scapi.obj"
-	-@erase "$(INTDIR)\snmp-tc.obj"
-	-@erase "$(INTDIR)\snmp.obj"
-	-@erase "$(INTDIR)\snmp_alarm.obj"
-	-@erase "$(INTDIR)\snmp_api.obj"
-	-@erase "$(INTDIR)\snmp_auth.obj"
-	-@erase "$(INTDIR)\snmp_client.obj"
-	-@erase "$(INTDIR)\snmp_debug.obj"
-	-@erase "$(INTDIR)\snmp_enum.obj"
-	-@erase "$(INTDIR)\snmp_logging.obj"
-	-@erase "$(INTDIR)\snmp_parse_args.obj"
-	-@erase "$(INTDIR)\snmp_secmod.obj"
-	-@erase "$(INTDIR)\snmp_transport.obj"
-	-@erase "$(INTDIR)\snmp_version.obj"
-	-@erase "$(INTDIR)\snmp_service.obj"
-	-@erase "$(INTDIR)\snmpCallbackDomain.obj"
-	-@erase "$(INTDIR)\snmpTCPDomain.obj"
-	-@erase "$(INTDIR)\snmpTCPIPv6Domain.obj"
-	-@erase "$(INTDIR)\snmpUDPDomain.obj"
-	-@erase "$(INTDIR)\snmpUDPIPv6Domain.obj"
-	-@erase "$(INTDIR)\snmpusm.obj"
-	-@erase "$(INTDIR)\snmpv3.obj"
-	-@erase "$(INTDIR)\strlcat.obj"
-	-@erase "$(INTDIR)\strlcpy.obj"
-	-@erase "$(INTDIR)\system.obj"
-	-@erase "$(INTDIR)\tools.obj"
-	-@erase "$(INTDIR)\strtok_r.obj"
-	-@erase "$(INTDIR)\strtoull.obj"
-	-@erase "$(INTDIR)\strtoull.obj"
-	-@erase "$(INTDIR)\ucd_compat.obj"
-	-@erase "$(INTDIR)\vacm.obj"
-	-@erase "$(INTDIR)\vc??.idb"
-	-@erase "$(INTDIR)\vc??.pdb"
-	-@erase "$(INTDIR)\winpipe.obj"
-	-@erase "$(INTDIR)\fd_event_manager.obj"
-	-@erase "$(INTDIR)\large_fd_set.obj"
-	-@erase "$(INTDIR)\$(PROGNAME).pch"
-	-@erase "..\lib\$(OUTDIR)\netsnmp.lib"
-
-"..\lib\$(OUTDIR)" :
-    if not exist "..\lib\$(OUTDIR)/$(NULL)" mkdir "..\lib\$(OUTDIR)"
-
-"$(INTDIR)" :
-    if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
-
-CPP=cl.exe
 CPP_PROJ=/nologo /MDd /W3 /Gm /EHsc /Zi /Od /I "." /I ".." /I "..\..\snmplib" /I "..\.." /I "..\..\include" /D "WIN32" /D "_BIND_TO_CURRENT_VCLIBS_VERSION" /D "_DEBUG" /D "_CONSOLE" /D "_CRT_SECURE_NO_WARNINGS" /D "_CRT_NONSTDC_NO_WARNINGS" /D "_MBCS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\$(PROGNAME).pdb" /FD /c 
+!ENDIF
 
 .c{$(INTDIR)}.obj::
    $(CPP) @<<
@@ -276,94 +115,15 @@
    $(CPP_PROJ) $< 
 <<
 
-.c{$(INTDIR)}.sbr::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.cpp{$(INTDIR)}.sbr::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
-
-.cxx{$(INTDIR)}.sbr::
-   $(CPP) @<<
-   $(CPP_PROJ) $< 
-<<
 
 RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(INTDIR)\$(PROGNAME).bsc" 
-BSC32_SBRS= \
-
 LIB32=link.exe -lib
 LIB32_FLAGS=/nologo /out:"..\lib\$(OUTDIR)\netsnmp.lib" 
-LIB32_OBJS= \
-	"$(INTDIR)\asn1.obj" \
-	"$(INTDIR)\callback.obj" \
-	"$(INTDIR)\check_varbind.obj" \
-	"$(INTDIR)\cmu_compat.obj" \
-	"$(INTDIR)\container.obj" \
-	"$(INTDIR)\container_binary_array.obj" \
-	"$(INTDIR)\container_iterator.obj" \
-	"$(INTDIR)\container_list_ssll.obj" \
-	"$(INTDIR)\container_null.obj" \
-	"$(INTDIR)\data_list.obj" \
-	"$(INTDIR)\default_store.obj" \
-	"$(INTDIR)\getopt.obj" \
-	"$(INTDIR)\int64.obj" \
-	"$(INTDIR)\inet_ntop.obj" \
-	"$(INTDIR)\inet_pton.obj" \
-	"$(INTDIR)\keytools.obj" \
-	"$(INTDIR)\lcd_time.obj" \
-	"$(INTDIR)\md5.obj" \
-	"$(INTDIR)\mib.obj" \
-	"$(INTDIR)\mt_support.obj" \
-	"$(INTDIR)\oid_stash.obj" \
-	"$(INTDIR)\parse.obj" \
-	"$(INTDIR)\read_config.obj" \
-	"$(INTDIR)\scapi.obj" \
-	"$(INTDIR)\snmp-tc.obj" \
-	"$(INTDIR)\snmp.obj" \
-	"$(INTDIR)\snmp_alarm.obj" \
-	"$(INTDIR)\snmp_api.obj" \
-	"$(INTDIR)\snmp_auth.obj" \
-	"$(INTDIR)\snmp_client.obj" \
-	"$(INTDIR)\snmp_debug.obj" \
-	"$(INTDIR)\snmp_enum.obj" \
-	"$(INTDIR)\snmp_logging.obj" \
-	"$(INTDIR)\snmp_parse_args.obj" \
-	"$(INTDIR)\snmp_secmod.obj" \
-	"$(INTDIR)\snmp_transport.obj" \
-	"$(INTDIR)\snmp_version.obj" \
-	"$(INTDIR)\snmp_service.obj" \
-	"$(INTDIR)\snmpCallbackDomain.obj" \
-	"$(INTDIR)\snmpTCPDomain.obj" \
-	"$(INTDIR)\snmpTCPIPv6Domain.obj" \
-	"$(INTDIR)\snmpUDPDomain.obj" \
-	"$(INTDIR)\snmpUDPIPv6Domain.obj" \
-	"$(INTDIR)\snmpusm.obj" \
-	"$(INTDIR)\snmpv3.obj" \
-	"$(INTDIR)\strlcat.obj" \
-	"$(INTDIR)\strlcpy.obj" \
-	"$(INTDIR)\system.obj" \
-	"$(INTDIR)\tools.obj" \
-	"$(INTDIR)\strtok_r.obj" \
-	"$(INTDIR)\strtoull.obj" \
-	"$(INTDIR)\strtoull.obj" \
-	"$(INTDIR)\ucd_compat.obj" \
-	"$(INTDIR)\vacm.obj" \
-	"$(INTDIR)\winpipe.obj" \
-	"$(INTDIR)\fd_event_manager.obj" \
-	"$(INTDIR)\large_fd_set.obj"
-
 "..\lib\$(OUTDIR)\netsnmp.lib" : "..\lib\$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
     $(LIB32) @<<
   $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
 <<
 
-!ENDIF 
-
 
 !IF "$(NO_EXTERNAL_DEPS)" != "1"
 !IF EXISTS("$(PROGNAME).dep")
@@ -374,7 +134,6 @@
 !ENDIF 
 
 
-!IF "$(CFG)" == "release" || "$(CFG)" == "debug"
 SOURCE=..\..\snmplib\asn1.c
 
 "$(INTDIR)\asn1.obj" : $(SOURCE) "$(INTDIR)"
@@ -393,6 +152,12 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\closedir.c
+
+"$(INTDIR)\closedir.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\cmu_compat.c
 
 "$(INTDIR)\cmu_compat.obj" : $(SOURCE) "$(INTDIR)"
@@ -441,15 +206,21 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\fd_event_manager.c
+
+"$(INTDIR)\fd_event_manager.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\getopt.c
 
 "$(INTDIR)\getopt.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\int64.c
+SOURCE=..\..\snmplib\gettimeofday.c
 
-"$(INTDIR)\int64.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\gettimeofday.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
@@ -465,12 +236,24 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\int64.c
+
+"$(INTDIR)\int64.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\keytools.c
 
 "$(INTDIR)\keytools.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\large_fd_set.c
+
+"$(INTDIR)\large_fd_set.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\lcd_time.c
 
 "$(INTDIR)\lcd_time.obj" : $(SOURCE) "$(INTDIR)"
@@ -501,6 +284,12 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\opendir.c
+
+"$(INTDIR)\opendir.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\parse.c
 
 "$(INTDIR)\parse.obj" : $(SOURCE) "$(INTDIR)"
@@ -513,6 +302,12 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\readdir.c
+
+"$(INTDIR)\readdir.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\scapi.c
 
 "$(INTDIR)\scapi.obj" : $(SOURCE) "$(INTDIR)"
@@ -531,6 +326,72 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\transports\snmpCallbackDomain.c
+
+"$(INTDIR)\snmpCallbackDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpIPv4BaseDomain.c
+
+"$(INTDIR)\snmpIPv4BaseDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpIPv6BaseDomain.c
+
+"$(INTDIR)\snmpIPv6BaseDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpSocketBaseDomain.c
+
+"$(INTDIR)\snmpSocketBaseDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpTCPBaseDomain.c
+
+"$(INTDIR)\snmpTCPBaseDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpTCPDomain.c
+
+"$(INTDIR)\snmpTCPDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpTCPIPv6Domain.c
+
+"$(INTDIR)\snmpTCPIPv6Domain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpUDPBaseDomain.c
+
+"$(INTDIR)\snmpUDPBaseDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpUDPDomain.c
+
+"$(INTDIR)\snmpUDPDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpUDPIPv4BaseDomain.c
+
+"$(INTDIR)\snmpUDPIPv4BaseDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpUDPIPv6Domain.c
+
+"$(INTDIR)\snmpUDPIPv6Domain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\snmp_alarm.c
 
 "$(INTDIR)\snmp_alarm.obj" : $(SOURCE) "$(INTDIR)"
@@ -585,6 +446,12 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\snmp_service.c
+
+"$(INTDIR)\snmp_service.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\snmp_transport.c
 
 "$(INTDIR)\snmp_transport.obj" : $(SOURCE) "$(INTDIR)"
@@ -597,42 +464,6 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\snmp_service.c
-
-"$(INTDIR)\snmp_service.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\snmplib\snmpCallbackDomain.c
-
-"$(INTDIR)\snmpCallbackDomain.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\snmplib\snmpTCPDomain.c
-
-"$(INTDIR)\snmpTCPDomain.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\snmplib\snmpTCPIPv6Domain.c
-
-"$(INTDIR)\snmpTCPIPv6Domain.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\snmplib\snmpUDPDomain.c
-
-"$(INTDIR)\snmpUDPDomain.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\snmplib\snmpUDPIPv6Domain.c
-
-"$(INTDIR)\snmpUDPIPv6Domain.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
 SOURCE=..\..\snmplib\snmpusm.c
 
 "$(INTDIR)\snmpusm.obj" : $(SOURCE) "$(INTDIR)"
@@ -657,18 +488,6 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\system.c
-
-"$(INTDIR)\system.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\snmplib\tools.c
-
-"$(INTDIR)\tools.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
 SOURCE=..\..\snmplib\strtok_r.c
 
 "$(INTDIR)\strtok_r.obj" : $(SOURCE) "$(INTDIR)"
@@ -681,6 +500,18 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\system.c
+
+"$(INTDIR)\system.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\tools.c
+
+"$(INTDIR)\tools.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\ucd_compat.c
 
 "$(INTDIR)\ucd_compat.obj" : $(SOURCE) "$(INTDIR)"
@@ -699,17 +530,3 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\fd_event_manager.c
-
-"$(INTDIR)\fd_event_manager.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\snmplib\large_fd_set.c
-
-"$(INTDIR)\large_fd_set.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF 
-
diff --git a/win32/libsnmp/libsnmp.dsp b/win32/libsnmp/libsnmp.dsp
index cbcda12..6448802 100644
--- a/win32/libsnmp/libsnmp.dsp
+++ b/win32/libsnmp/libsnmp.dsp
@@ -97,6 +97,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\closedir.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\cmu_compat.c
 # End Source File
 # Begin Source File
@@ -129,10 +133,18 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\fd_event_manager.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\getopt.c
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\gettimeofday.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\inet_ntop.c
 # End Source File
 # Begin Source File
@@ -149,6 +161,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\large_fd_set.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\lcd_time.c
 # End Source File
 # Begin Source File
@@ -169,6 +185,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\opendir.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\parse.c
 # End Source File
 # Begin Source File
@@ -177,6 +197,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\readdir.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\scapi.c
 # End Source File
 # Begin Source File
@@ -225,6 +249,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\snmp_service.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\snmp_transport.c
 # End Source File
 # Begin Source File
@@ -233,27 +261,51 @@
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\snmp_service.c
+SOURCE=..\..\snmplib\transports\snmpAliasDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\snmpCallbackDomain.c
+SOURCE=..\..\snmplib\transports\snmpCallbackDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\snmpTCPDomain.c
+SOURCE=..\..\snmplib\transports\snmpIPv4BaseDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\snmpTCPIPv6Domain.c
+SOURCE=..\..\snmplib\transports\snmpIPv6BaseDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\snmpUDPDomain.c
+SOURCE=..\..\snmplib\transports\snmpSocketBaseDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\snmpUDPIPv6Domain.c
+SOURCE=..\..\snmplib\transports\snmpTCPBaseDomain.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\transports\snmpTCPDomain.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\transports\snmpTCPIPv6Domain.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\transports\snmpUDPBaseDomain.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\transports\snmpUDPDomain.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\transports\snmpUDPIPv4BaseDomain.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\transports\snmpUDPIPv6Domain.c
 # End Source File
 # Begin Source File
 
@@ -273,14 +325,6 @@
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\system.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\tools.c
-# End Source File
-# Begin Source File
-
 SOURCE=..\..\snmplib\strtok_r.c
 # End Source File
 # Begin Source File
@@ -289,6 +333,14 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\system.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\tools.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\ucd_compat.c
 # End Source File
 # Begin Source File
@@ -299,14 +351,6 @@
 
 SOURCE=..\..\snmplib\winpipe.c
 # End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\fd_event_manager.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\large_fd_set.c
-# End Source File
 # End Group
 # Begin Group "Header Files"
 
@@ -341,6 +385,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE="..\..\include\net-snmp\library\fd_event_manager.h"
+# End Source File
+# Begin Source File
+
 SOURCE="..\..\include\net-snmp\library\getopt.h"
 # End Source File
 # Begin Source File
@@ -353,6 +401,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE="..\..\include\net-snmp\library\large_fd_set.h"
+# End Source File
+# Begin Source File
+
 SOURCE="..\..\include\net-snmp\library\lcd_time.h"
 # End Source File
 # Begin Source File
@@ -445,6 +497,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE="..\..\include\net-snmp\library\strtok_r.h"
+# End Source File
+# Begin Source File
+
 SOURCE="..\..\include\net-snmp\library\system.h"
 # End Source File
 # Begin Source File
@@ -453,24 +509,12 @@
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\strtok_r.h"
-# End Source File
-# Begin Source File
-
 SOURCE="..\..\include\net-snmp\library\ucd_compat.h"
 # End Source File
 # Begin Source File
 
 SOURCE="..\..\include\net-snmp\library\vacm.h"
 # End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\library\fd_event_manager.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\library\large_fd_set.h"
-# End Source File
 # End Group
 # End Target
 # End Project
diff --git a/win32/libsnmp_dll/Makefile.in b/win32/libsnmp_dll/Makefile.in
index e81e1eb..31ae1bd 100644
--- a/win32/libsnmp_dll/Makefile.in
+++ b/win32/libsnmp_dll/Makefile.in
@@ -3,6 +3,7 @@
 OUTDIR=
 INTDIR=
 SSL=
+SDK=
 
 !IF "$(OS)" == "Windows_NT"
 NULL=
@@ -16,6 +17,7 @@
 	"$(INTDIR)\asn1.obj" \
 	"$(INTDIR)\callback.obj" \
 	"$(INTDIR)\check_varbind.obj" \
+	"$(INTDIR)\closedir.obj" \
 	"$(INTDIR)\cmu_compat.obj" \
 	"$(INTDIR)\container.obj" \
 	"$(INTDIR)\container_binary_array.obj" \
@@ -24,21 +26,34 @@
 	"$(INTDIR)\container_null.obj" \
 	"$(INTDIR)\data_list.obj" \
 	"$(INTDIR)\default_store.obj" \
+	"$(INTDIR)\fd_event_manager.obj" \
 	"$(INTDIR)\getopt.obj" \
-	"$(INTDIR)\int64.obj" \
+	"$(INTDIR)\gettimeofday.obj" \
 	"$(INTDIR)\inet_ntop.obj" \
 	"$(INTDIR)\inet_pton.obj" \
+	"$(INTDIR)\int64.obj" \
 	"$(INTDIR)\keytools.obj" \
+	"$(INTDIR)\large_fd_set.obj" \
 	"$(INTDIR)\lcd_time.obj" \
 	"$(INTDIR)\md5.obj" \
 	"$(INTDIR)\mib.obj" \
 	"$(INTDIR)\mt_support.obj" \
 	"$(INTDIR)\oid_stash.obj" \
+	"$(INTDIR)\opendir.obj" \
 	"$(INTDIR)\parse.obj" \
 	"$(INTDIR)\read_config.obj" \
+	"$(INTDIR)\readdir.obj" \
 	"$(INTDIR)\scapi.obj" \
 	"$(INTDIR)\snmp-tc.obj" \
 	"$(INTDIR)\snmp.obj" \
+	"$(INTDIR)\snmpCallbackDomain.obj" \
+	"$(INTDIR)\snmpIPv4BaseDomain.obj" \
+	"$(INTDIR)\snmpSocketBaseDomain.obj" \
+	"$(INTDIR)\snmpTCPBaseDomain.obj" \
+	"$(INTDIR)\snmpTCPDomain.obj" \
+	"$(INTDIR)\snmpUDPBaseDomain.obj" \
+	"$(INTDIR)\snmpUDPDomain.obj" \
+	"$(INTDIR)\snmpUDPIPv4BaseDomain.obj" \
 	"$(INTDIR)\snmp_alarm.obj" \
 	"$(INTDIR)\snmp_api.obj" \
 	"$(INTDIR)\snmp_auth.obj" \
@@ -48,27 +63,26 @@
 	"$(INTDIR)\snmp_logging.obj" \
 	"$(INTDIR)\snmp_parse_args.obj" \
 	"$(INTDIR)\snmp_secmod.obj" \
+	"$(INTDIR)\snmp_service.obj" \
 	"$(INTDIR)\snmp_transport.obj" \
 	"$(INTDIR)\snmp_version.obj" \
-	"$(INTDIR)\snmp_service.obj" \
-	"$(INTDIR)\snmpCallbackDomain.obj" \
-	"$(INTDIR)\snmpTCPDomain.obj" \
-	"$(INTDIR)\snmpTCPIPv6Domain.obj" \
-	"$(INTDIR)\snmpUDPDomain.obj" \
-	"$(INTDIR)\snmpUDPIPv6Domain.obj" \
 	"$(INTDIR)\snmpusm.obj" \
 	"$(INTDIR)\snmpv3.obj" \
 	"$(INTDIR)\strlcat.obj" \
 	"$(INTDIR)\strlcpy.obj" \
-	"$(INTDIR)\system.obj" \
-	"$(INTDIR)\tools.obj" \
 	"$(INTDIR)\strtok_r.obj" \
 	"$(INTDIR)\strtoull.obj" \
+	"$(INTDIR)\system.obj" \
+	"$(INTDIR)\tools.obj" \
 	"$(INTDIR)\ucd_compat.obj" \
 	"$(INTDIR)\vacm.obj" \
-	"$(INTDIR)\winpipe.obj" \
-	"$(INTDIR)\fd_event_manager.obj" \
-	"$(INTDIR)\large_fd_set.obj"
+	"$(INTDIR)\winpipe.obj"
+!IF "$(SDK)" == "true"
+LINK32_OBJS=$(LINK32_OBJS)\
+	"$(INTDIR)\snmpIPv6BaseDomain.obj" \
+	"$(INTDIR)\snmpTCPIPv6Domain.obj" \
+	"$(INTDIR)\snmpUDPIPv6Domain.obj"
+!ENDIF
 
 CLEAN :
 	-@for %f in ($(LINK32_OBJS)) do erase %%f
@@ -154,6 +168,12 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\closedir.c
+
+"$(INTDIR)\closedir.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\cmu_compat.c
 
 "$(INTDIR)\cmu_compat.obj" : $(SOURCE) "$(INTDIR)"
@@ -202,15 +222,21 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\fd_event_manager.c
+
+"$(INTDIR)\fd_event_manager.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\getopt.c
 
 "$(INTDIR)\getopt.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\int64.c
+SOURCE=..\..\snmplib\gettimeofday.c
 
-"$(INTDIR)\int64.obj" : $(SOURCE) "$(INTDIR)"
+"$(INTDIR)\gettimeofday.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
@@ -226,12 +252,24 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\int64.c
+
+"$(INTDIR)\int64.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\keytools.c
 
 "$(INTDIR)\keytools.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\large_fd_set.c
+
+"$(INTDIR)\large_fd_set.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\lcd_time.c
 
 "$(INTDIR)\lcd_time.obj" : $(SOURCE) "$(INTDIR)"
@@ -262,6 +300,12 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\opendir.c
+
+"$(INTDIR)\opendir.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\parse.c
 
 "$(INTDIR)\parse.obj" : $(SOURCE) "$(INTDIR)"
@@ -274,6 +318,12 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\readdir.c
+
+"$(INTDIR)\readdir.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\scapi.c
 
 "$(INTDIR)\scapi.obj" : $(SOURCE) "$(INTDIR)"
@@ -292,6 +342,72 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\transports\snmpCallbackDomain.c
+
+"$(INTDIR)\snmpCallbackDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpIPv4BaseDomain.c
+
+"$(INTDIR)\snmpIPv4BaseDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpIPv6BaseDomain.c
+
+"$(INTDIR)\snmpIPv6BaseDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpSocketBaseDomain.c
+
+"$(INTDIR)\snmpSocketBaseDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpTCPBaseDomain.c
+
+"$(INTDIR)\snmpTCPBaseDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpTCPDomain.c
+
+"$(INTDIR)\snmpTCPDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpTCPIPv6Domain.c
+
+"$(INTDIR)\snmpTCPIPv6Domain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpUDPBaseDomain.c
+
+"$(INTDIR)\snmpUDPBaseDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpUDPDomain.c
+
+"$(INTDIR)\snmpUDPDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpUDPIPv4BaseDomain.c
+
+"$(INTDIR)\snmpUDPIPv4BaseDomain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\transports\snmpUDPIPv6Domain.c
+
+"$(INTDIR)\snmpUDPIPv6Domain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\snmp_alarm.c
 
 "$(INTDIR)\snmp_alarm.obj" : $(SOURCE) "$(INTDIR)"
@@ -346,6 +462,12 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\snmp_service.c
+
+"$(INTDIR)\snmp_service.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\snmp_transport.c
 
 "$(INTDIR)\snmp_transport.obj" : $(SOURCE) "$(INTDIR)"
@@ -358,42 +480,6 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\snmp_service.c
-
-"$(INTDIR)\snmp_service.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\snmplib\snmpCallbackDomain.c
-
-"$(INTDIR)\snmpCallbackDomain.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\snmplib\snmpTCPDomain.c
-
-"$(INTDIR)\snmpTCPDomain.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\snmplib\snmpTCPIPv6Domain.c
-
-"$(INTDIR)\snmpTCPIPv6Domain.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\snmplib\snmpUDPDomain.c
-
-"$(INTDIR)\snmpUDPDomain.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\snmplib\snmpUDPIPv6Domain.c
-
-"$(INTDIR)\snmpUDPIPv6Domain.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
 SOURCE=..\..\snmplib\snmpusm.c
 
 "$(INTDIR)\snmpusm.obj" : $(SOURCE) "$(INTDIR)"
@@ -418,18 +504,6 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\system.c
-
-"$(INTDIR)\system.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\snmplib\tools.c
-
-"$(INTDIR)\tools.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
 SOURCE=..\..\snmplib\strtok_r.c
 
 "$(INTDIR)\strtok_r.obj" : $(SOURCE) "$(INTDIR)"
@@ -442,6 +516,18 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\snmplib\system.c
+
+"$(INTDIR)\system.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\snmplib\tools.c
+
+"$(INTDIR)\tools.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\snmplib\ucd_compat.c
 
 "$(INTDIR)\ucd_compat.obj" : $(SOURCE) "$(INTDIR)"
@@ -460,15 +546,3 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\snmplib\fd_event_manager.c
-
-"$(INTDIR)\fd_event_manager.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\snmplib\large_fd_set.c
-
-"$(INTDIR)\large_fd_set.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
diff --git a/win32/libsnmp_dll/libsnmp.def b/win32/libsnmp_dll/libsnmp.def
index 875caa9..45dd356 100644
--- a/win32/libsnmp_dll/libsnmp.def
+++ b/win32/libsnmp_dll/libsnmp.def
@@ -1,477 +1,2 @@
-;       @(#)snmp.def    1.0 10/26/97 (gmarzot@baynetworks.com)
-;       Single session API mods by M. Slifcak, Internet Security Systems, Inc.
-
-DESCRIPTION     'UCD SNMP Library'
-;CODE            SHARED READ EXECUTE
-;DATA            SHARED READ WRITE
-EXPORTS
-	asn_parse_int
-	asn_build_int
-	asn_parse_unsigned_int
-	asn_build_unsigned_int
-	asn_parse_string
-	asn_build_string
-	asn_parse_header
-	asn_build_header
-	asn_build_sequence
-	asn_parse_length
-	asn_build_length
-	asn_parse_objid
-	asn_build_objid
-	asn_parse_null
-	asn_build_null
-	asn_parse_bitstring
-	asn_build_bitstring
-	asn_parse_unsigned_int64
-	asn_build_unsigned_int64
-	mib_to_asn_type
-	MDbegin
-	MDupdate
-	print_mib
-	print_mib_tree
-	print_ascii_dump
-	read_objid
-	get_tree_head
-	netsnmp_init_mib
-	init_mib
-	init_mib_internals
-	print_variable
-	print_value
-	printI64
-	print_objid
-	fprint_objid
-	print_description
-	fprint_description
-	get_module_node
-	get_node
-	snmp_parse_oid
-	find_node
-	find_best_tree_node
-	get_wild_node
-	find_tree_node
-	clear_tree_flags
-	get_tree
-	read_module
-	netsnmp_read_module
-	read_mib
-	read_all_mibs
-	add_mibdir
-	snmp_get_token
-	snmp_set_mib_warnings
-	snmp_set_save_descriptions
-	add_module_replacement
-	print_subtree
-	print_ascii_dump_tree
-	xdump
-	snmp_parse_var_op
-	snmp_build_var_op
-	printU64
-	u64Subtract
-	zeroU64
-	opendir
-	readdir
-	closedir
-	gettimeofday
-	mkdirhier
-	winsock_startup
-	winsock_cleanup
-	get_myaddr
-	get_uptime
-	snmp_open
-	snmp_open_ex
-	snmp_close
-	snmp_send
-	snmp_read
-	snmp_free_pdu
-	snmp_free_var
-	snmp_select_info
-	snmp_timeout
-	snmp_set_do_debugging
-	snmp_get_do_debugging
-	snmp_get_do_logging
-	snmp_disable_stderrlog
-	snmp_enable_syslog
-	snmp_enable_stderrlog
-	snmp_enable_filelog
-	snmp_log
-	snmp_log_perror
-	snmp_perror
-	snmp_sess_perror
-	snmp_add_null_var
-	snmp_pdu_create
-	snmp_fix_pdu
-	snmp_clone_pdu
-	snmp_clone_mem
-	snmp_set_var_value
-	snmp_set_var_typed_value
-	snmp_set_var_objid
-	snmp_replace_var_types
-	snmp_api_errstring
-	snmp_errstring
-	snmp_set_detail
-	snmp_synch_setup
-	snmp_synch_response
-	snmp_duplicate_objid
-	snmp_get_next_sessid
-	snmp_get_next_transid
-	snmp_increment_statistic
-	snmp_increment_statistic_by
-	snmp_get_statistic
-	init_snmp
-	snmp_shutdown
-	snmp_add_var
-	run_alarms
-	snmp_clone_var
-	print_oid_report
-	print_oid_report_enable_suffix
-	print_oid_report_enable_symbolic
-	print_oid_report_enable_oid
-	print_oid_report_enable_labeledoid
-;	ascii_to_binary
-;	hex_to_binary
-	get_tc_descriptor
-	get_tc_description
-	setenv
-	find_module
-	snmp_async_send
-	snmp_error
-	snmp_sess_init
-	snmp_sess_open
-	snmp_sess_session
-	snmp_sess_send
-	snmp_sess_async_send
-	snmp_sess_select_info
-	snmp_sess_read
-	snmp_sess_timeout
-	snmp_sess_close
-	snmp_sess_error
-	snmp_sess_synch_response
-	snmp_mib_toggle_options
-	snmp_mib_toggle_options_usage
-	read_config_read_data
-	read_config_store_data
-	read_config_print_usage
-	read_config_with_type
-	read_config_store
-	read_config_read_octet_string
-	read_config_save_octet_string
-	read_config_read_memory
-	read_config_read_objid
-	free_config
-	skip_white
-	skip_not_white
-	register_app_config_handler
-	unregister_app_config_handler
-	read_app_config_store
-	unregister_config_handler
-	snmp_set_do_debugging
-	snmp_get_do_debugging
-	debug_indent
-	debug_indent_add
-        debug_indent_get
-        debug_config_register_tokens
-        debug_config_turn_on_debugging
-	debug_is_token_registered
-	debugmsg
-	debugmsg_hex
-	debugmsg_hextli
-	debugmsgtoken
-	debugmsg_var
-	debugmsg_oidrange
-	debug_register_tokens
-	generate_Ku
-	uptime_string
-	memdup
-	dump_chunk
-	init_callbacks
-	snmp_register_callback
-	snmp_unregister_callback
-	snmp_call_callbacks
-	snmp_count_callbacks
-	snmp_callback_available
-	strncasecmp
-	strcasecmp
-	init_snmp_alarm
-	netsnmp_ds_register_premib
-	netsnmp_ds_register_config
-	netsnmp_ds_set_boolean
-	netsnmp_ds_get_boolean
-	netsnmp_ds_toggle_boolean
-	netsnmp_ds_set_int
-	netsnmp_ds_get_int
-	netsnmp_ds_set_string
-	netsnmp_ds_get_string
-	snmp_pdu_add_variable
-	snmp_varlist_add_variable
-	encode_keychange
-	decode_keychange
-	generate_kul
-	sc_init
-	setup_engineID
-	binary_to_hex
-	hex_to_binary2
-	snmp_res_init
-	snmp_res_lock
-	snmp_res_unlock
-	snmp_res_destroy_mutex
-	snmp_mib_toggle_options
-	snmp_mib_toggle_options_usage
-	snmp_in_toggle_options
-	snmp_in_toggle_options_usage
-	snmp_out_toggle_options
-	snmp_out_toggle_options_usage
-	snmp_oid_compare
-	snmp_oidtree_compare
-	netsnmp_oid_equals
-	usm_free_user
-	usm_add_user
-	usm_create_initial_user
-	usm_parse_create_usmUser
-	usm_save_users
-	usm_parse_config_usmUser
-	usm_get_user
-	usm_get_userList
-	usm_cloneFrom_user
-	usm_create_user
-	usm_remove_user
-	usm_set_user_password
-	read_premib_configs
-	init_snmpv3
-	snmpv3_local_snmpEngineTime
-	snmpv3_local_snmpEngineBoots
-	snmpv3_get_engineID
-	snmpv3_generate_engineID
-	get_default_authtype
-	get_default_privtype
-	register_config_handler
-	read_configs
-	debugmsg_oid
-	config_perror
-	config_pwarn
-	copy_word
-	copy_nword
-	calculate_time_diff
-	vacm_is_configured
-	get_configuration_directory
-	vacm_createGroupEntry
-	vacm_destroyGroupEntry
-	vacm_destroyAllGroupEntries
-	vacm_createAccessEntry
-	vacm_destroyAccessEntry
-	vacm_destroyAllAccessEntries
-	vacm_createViewEntry
-	vacm_destroyViewEntry
-	vacm_destroyAllViewEntries
-	vacm_getViewEntry
-	vacm_getGroupEntry
-	vacm_getAccessEntry
-	vacm_parse_config_access
-	vacm_parse_config_group
-	vacm_parse_config_view
-	vacm_parse_config_auth_access
-	store_vacm
-	vacm_scanGroupInit
-	vacm_scanGroupNext
-	vacm_scanAccessInit
-	vacm_scanAccessNext
-	vacm_scanViewInit
-	vacm_scanViewNext
-	vacm_checkSubtree
-	snmp_synch_response_cb
-	snmp_clone_varbind
-	snmp_free_varbind
-	snmp_get_dump_packet
-	snmp_get_quick_print
-	snmp_get_random_access
-	snmp_get_suffix_only
-	snmp_set_dump_packet
-	snmp_set_full_objid
-	snmp_set_quick_print
-	snmp_set_random_access
-	snmp_set_suffix_only
-	snmp_clean_persistent
-	snmp_save_persistent
-	usm_store_users
-	snmp_store
-	atime_diff
-	uatime_hdiff
-	atime_newMarker
-	atime_setMarker
-	atime_ready
-	snmp_strcat
-	fprint_variable
-	sprint_realloc_objid
-	sprint_realloc_asciistring
-	sprint_realloc_variable
-	sprint_realloc_value
-	sprint_realloc_by_type
-	snmp_realloc
-      netsnmp_config
-      netsnmp_config_remember
-      netsnmp_config_error
-      snmp_hex_to_binary
-      snmpv3_options
-      netsnmp_get_version
-      snmp_sess_transport
-      snmp_sess_pointer
-      snmp_decimal_to_binary
-	snmp_alarm_register
-	snmp_alarm_unregister
-      date_n_time
-	snmp_disable_log
-	snmp_enable_syslog_ident
-	netsnmp_sess_log_error
-	snmp_add
-	handle_long_opt
-	netsnmp_transport_free
-	netsnmp_tdomain_transport
-	netsnmp_tdomain_transport_oid
-	netsnmp_tdomain_support
-	netsnmpUDPDomain
-	netsnmp_snmpTCPDomain
-	netsnmp_create_data_list
-	netsnmp_add_list_data
-	netsnmp_get_list_data
-	netsnmp_free_list_data
-	netsnmp_free_all_list_data
-	netsnmp_oid_stash_add_data
-	netsnmp_oid_stash_get_data
-	netsnmp_oid_find_prefix
-	netsnmp_container_init_list
-	netsnmp_container_null_init
-	netsnmp_container_ssll_init
-	netsnmp_strdup_and_null
-	build_oid
-	build_oid_noalloc
-	parse_one_oid_index
-	parse_oid_indexes
-	count_varbinds
-	count_varbinds_of_type
-	se_find_label_in_slist
-	se_find_value_in_slist
-	se_add_pair_to_slist
-	snmp_parse_args
-	snmp_parse_args_descriptions
-	snmp_parse_args_usage
-	netsnmp_callback_open
-	netsnmp_udp_agent_config_tokens_register
-	netsnmp_udp_parse_security
-	netsnmp_udp_getSecName
-	find_sec_mod
-	strlcat
-	strlcpy
-	getopt
-	optarg                  DATA
-	opterr                  DATA
-	optind                  DATA
-	optopt                  DATA
-	optreset                DATA
-	usmNoAuthProtocol       DATA
-	usmHMACMD5AuthProtocol  DATA
-	usmHMACSHA1AuthProtocol DATA
-	usmNoPrivProtocol       DATA
-	usmDESPrivProtocol      DATA
-	usmAESPrivProtocol      DATA
-	snprint_bitstring
-	snprint_value
-	snprint_objid
-	snprint_variable
-	snmp_synch_reset
-	snmp_log_options
-	snmp_log_syslogname
-	netsnmp_clear_callback_list
-	netsnmp_clear_tdomain_list
-	clear_sec_mod
-	clear_snmp_enum
-	clear_callback
-	clear_user_list
-	netsnmp_ds_get_void
-	netsnmp_ds_set_void
-	netsnmp_ds_shutdown
-	netsnmp_sprint_realloc_objid
-	netsnmp_sprint_realloc_objid_tree
-	module_name
-	Mib                     DATA
-	tree_head               DATA
-	snmp_errno              DATA
-	netsnmp_daemonize
-	snmp_log_options_usage
-	netsnmp_container_free_list
-	netsnmp_container_simple_free
-	netsnmp_oid_stash_getnext_node
-	netsnmp_oid_stash_free
-	netsnmp_get_list_node
-	netsnmp_remove_list_node
-	netsnmp_remove_loghandler
-	netsnmp_register_loghandler
-	get_logh_head
-	dbg_tokens
-	debug_num_tokens
-	create_winpipe_transport
-	get_temp_file_pattern
-	netsnmp_strdup
-	netsnmp_calloc
-	netsnmp_malloc
-	netsnmp_realloc
-	netsnmp_free
-	netsnmp_udp6_agent_config_tokens_register
-	init_usm_conf
-	strtok_r
-        strtoull
-        snmp_reset_var_buffers
-        netsnmp_container_add_index
-        netsnmp_container_find
-        netsnmp_c64_check32_and_update
-        netsnmp_oid_compare_ll
-        netsnmp_ncompare_netsnmp_index
-        netsnmp_compare_netsnmp_index
-        find_varbind_in_list
-        netsnmp_dispatch_external_events
-        netsnmp_external_event_info
-        netsnmp_logging_restart
-        skip_token
-        parse_secLevel_conf
-        netsnmp_query_get_default_session
-        netsnmp_query_get_default_session_unchecked
-        netsnmp_query_set_default_session
-        netsnmp_ds_parse_boolean
-        netsnmp_register_default_target
-        netsnmp_register_default_domain
-        netsnmp_register_service_handlers
-        netsnmp_transport_open_server
-        netsnmp_tdomain_transport_full
-        snmp_add_full
-        netsnmp_transport_open_client
-        snmp_oidsubtree_compare
-        snmp_disable_syslog
-        snmp_stderrlog_status
-        sa_find_specific
-        check_rowstatus_transition
-        check_storage_transition
-        netsnmp_view_get
-        netsnmp_check_vb_rowstatus_value
-        netsnmp_check_vb_type_and_size
-        netsnmp_check_vb_type_and_max_size
-        read_config_save_objid
-        print_oid_report_enable_mibchildoid
-        netsnmp_query_walk
-        netsnmp_query_getnext
-        netsnmp_query_get
-        netsnmp_gethostbyname_v4
-        netsnmp_str_to_gid
-        netsnmp_mktemp
-        netsnmp_str_to_uid
-        netsnmp_check_vb_truthvalue
-        snmp_set_var_typed_integer
-        netsnmp_large_fd_set_cleanup
-        netsnmp_large_fd_set_init
-        netsnmp_large_fd_is_set
-        netsnmp_large_fd_setfd
-        netsnmp_large_fd_clr
-        snmp_read2
-        netsnmp_dispatch_external_events2
-        netsnmp_external_event_info2
-        snmp_select_info2
-        sprint_realloc_hexstring
-        netsnmp_set_line_buffering
-        debugmsg_suboid
+; This .def file is obsolete. Do not add any names of exported functions here
+; but add NETSNMP_IMPORT to function declarations instead.
diff --git a/win32/libsnmp_dll/libsnmp_dll.dsp b/win32/libsnmp_dll/libsnmp_dll.dsp
index cb0403a..6407d42 100644
--- a/win32/libsnmp_dll/libsnmp_dll.dsp
+++ b/win32/libsnmp_dll/libsnmp_dll.dsp
@@ -104,6 +104,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\closedir.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\cmu_compat.c
 # End Source File
 # Begin Source File
@@ -136,10 +140,18 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\fd_event_manager.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\getopt.c
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\gettimeofday.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\inet_ntop.c
 # End Source File
 # Begin Source File
@@ -156,6 +168,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\large_fd_set.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\lcd_time.c
 # End Source File
 # Begin Source File
@@ -176,6 +192,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\opendir.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\parse.c
 # End Source File
 # Begin Source File
@@ -184,6 +204,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\readdir.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\scapi.c
 # End Source File
 # Begin Source File
@@ -232,6 +256,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\snmp_service.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\snmp_transport.c
 # End Source File
 # Begin Source File
@@ -240,27 +268,51 @@
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\snmp_service.c
+SOURCE=..\..\snmplib\transports\snmpAliasDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\snmpCallbackDomain.c
+SOURCE=..\..\snmplib\transports\snmpCallbackDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\snmpTCPDomain.c
+SOURCE=..\..\snmplib\transports\snmpIPv4BaseDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\snmpTCPIPv6Domain.c
+SOURCE=..\..\snmplib\transports\snmpIPv6BaseDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\snmpUDPDomain.c
+SOURCE=..\..\snmplib\transports\snmpSocketBaseDomain.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\snmpUDPIPv6Domain.c
+SOURCE=..\..\snmplib\transports\snmpTCPBaseDomain.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\transports\snmpTCPDomain.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\transports\snmpTCPIPv6Domain.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\transports\snmpUDPBaseDomain.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\transports\snmpUDPDomain.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\transports\snmpUDPIPv4BaseDomain.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\transports\snmpUDPIPv6Domain.c
 # End Source File
 # Begin Source File
 
@@ -280,14 +332,6 @@
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\snmplib\system.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\tools.c
-# End Source File
-# Begin Source File
-
 SOURCE=..\..\snmplib\strtok_r.c
 # End Source File
 # Begin Source File
@@ -296,6 +340,14 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\snmplib\system.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\snmplib\tools.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\ucd_compat.c
 # End Source File
 # Begin Source File
@@ -306,14 +358,6 @@
 
 SOURCE=..\..\snmplib\winpipe.c
 # End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\fd_event_manager.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\snmplib\large_fd_set.c
-# End Source File
 # End Group
 # Begin Group "Header Files"
 
@@ -348,6 +392,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE="..\..\include\net-snmp\library\fd_event_manager.h"
+# End Source File
+# Begin Source File
+
 SOURCE="..\..\include\net-snmp\library\getopt.h"
 # End Source File
 # Begin Source File
@@ -360,6 +408,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE="..\..\include\net-snmp\library\large_fd_set.h"
+# End Source File
+# Begin Source File
+
 SOURCE="..\..\include\net-snmp\library\lcd_time.h"
 # End Source File
 # Begin Source File
@@ -452,6 +504,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE="..\..\include\net-snmp\library\strtok_r.h"
+# End Source File
+# Begin Source File
+
 SOURCE="..\..\include\net-snmp\library\system.h"
 # End Source File
 # Begin Source File
@@ -460,24 +516,12 @@
 # End Source File
 # Begin Source File
 
-SOURCE="..\..\include\net-snmp\library\strtok_r.h"
-# End Source File
-# Begin Source File
-
 SOURCE="..\..\include\net-snmp\library\ucd_compat.h"
 # End Source File
 # Begin Source File
 
 SOURCE="..\..\include\net-snmp\library\vacm.h"
 # End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\library\fd_event_manager.h"
-# End Source File
-# Begin Source File
-
-SOURCE="..\..\include\net-snmp\library\large_fd_set.h"
-# End Source File
 # End Group
 # Begin Source File
 
diff --git a/win32/libucdmibs/libucdmibs.def b/win32/libucdmibs/libucdmibs.def
deleted file mode 100644
index 5f473d9..0000000
--- a/win32/libucdmibs/libucdmibs.def
+++ /dev/null
@@ -1,17 +0,0 @@
-;       @(#)libucdmibs.def    1.0 10/26/97 (gmarzot@baynetworks.com)
-
-DESCRIPTION     'UCD SNMP MIBS Library'
-;CODE
-            SHARED READ EXECUTE
-;DATA            SHARED READ WRITE
-EXPORTS
-	send_easy_trap
-	init_master_agent
-	init_mib_modules
-	init_agent
-	argvrestartname
-	argvrestart
-	argvrestartp
-	update_config
-	get_target_sessions
-
diff --git a/win32/mib_module_includes.h b/win32/mib_module_includes.h
index 3bfdf6a..9cb750c 100644
--- a/win32/mib_module_includes.h
+++ b/win32/mib_module_includes.h
@@ -28,8 +28,8 @@
 #include "mibgroup/Rmon.h"
 #endif
 
-#ifdef USING_DISMAN_EVENT_MIB_MODULE
-#include "mibgroup/disman/event-mib.h"
+#ifdef USING_DISMAN_EVENT_MODULE
+#include "mibgroup/disman/event.h"
 #endif
 
 #ifdef USING_SMUX_MODULE
@@ -88,8 +88,9 @@
 #include "mibgroup/snmpv3/usmStats.h"
 #include "mibgroup/snmpv3/usmUser.h"
 #include "mibgroup/notification/snmpNotifyTable.h"
-#include "mibgroup/snmp-notification-mib/snmpNotifyFilterTable.h"
 #include "mibgroup/notification/snmpNotifyFilterProfileTable.h"
+#include "mibgroup/snmp-notification-mib/snmpNotifyFilterTable.h"
+#include "mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable.h"
 #include "mibgroup/target/snmpTargetAddrEntry.h"
 #include "mibgroup/target/snmpTargetParamsEntry.h"
 #include "mibgroup/target/target.h"
@@ -99,6 +100,7 @@
 #include "mibgroup/agent/nsDebug.h"
 #include "mibgroup/agent/nsCache.h"
 #include "mibgroup/agent/nsLogging.h"
+#include "mibgroup/utilities/iquery.h"
 #include "mibgroup/utilities/override.h"
 
 #ifdef USING_HOST_MODULE
@@ -125,15 +127,23 @@
 #include "mibgroup/Rmon/event.h"
 #endif
 
-#ifdef USING_DISMAN_EVENT_MIB_MODULE
-#include "mibgroup/disman/mteTriggerTable.h"
-#include "mibgroup/disman/mteTriggerDeltaTable.h"
-#include "mibgroup/disman/mteTriggerExistenceTable.h"
-#include "mibgroup/disman/mteTriggerBooleanTable.h"
-#include "mibgroup/disman/mteTriggerThresholdTable.h"
-#include "mibgroup/disman/mteObjectsTable.h"
-#include "mibgroup/disman/mteEventTable.h"
-#include "mibgroup/disman/mteEventNotificationTable.h"
+#ifdef USING_DISMAN_EVENT_MODULE
+#include "mibgroup/disman/event/mteEventConf.h"
+#include "mibgroup/disman/event/mteEvent.h"
+#include "mibgroup/disman/event/mteEventNotificationTable.h"
+#include "mibgroup/disman/event/mteEventSetTable.h"
+#include "mibgroup/disman/event/mteEventTable.h"
+#include "mibgroup/disman/event/mteObjectsConf.h"
+#include "mibgroup/disman/event/mteObjects.h"
+#include "mibgroup/disman/event/mteObjectsTable.h"
+#include "mibgroup/disman/event/mteScalars.h"
+#include "mibgroup/disman/event/mteTriggerBooleanTable.h"
+#include "mibgroup/disman/event/mteTriggerConf.h"
+#include "mibgroup/disman/event/mteTriggerDeltaTable.h"
+#include "mibgroup/disman/event/mteTriggerExistenceTable.h"
+#include "mibgroup/disman/event/mteTrigger.h"
+#include "mibgroup/disman/event/mteTriggerTable.h"
+#include "mibgroup/disman/event/mteTriggerThresholdTable.h"
 #endif
 
 #ifdef USING_SMUX_MODULE
diff --git a/win32/mib_module_inits.h b/win32/mib_module_inits.h
index fd0a7b2..f78d893 100644
--- a/win32/mib_module_inits.h
+++ b/win32/mib_module_inits.h
@@ -29,6 +29,9 @@
 #ifndef _MSC_VER
   if (should_init("disk")) init_disk();
 #endif
+#ifdef USING_UCD_SNMP_DLMOD_MODULE
+  if (should_init("dlmod")) init_dlmod();
+#endif
   if (should_init("loadave")) init_loadave();
   if (should_init("extensible")) init_extensible();
   if (should_init("extend")) init_extend();
@@ -78,17 +81,22 @@
 
   if (should_init("override")) init_override();
 
-#ifdef USING_DISMAN_EVENT_MIB_MODULE
-#ifdef NETSNMP_TRANSPORT_CALLBACK_DOMAIN
+#ifdef USING_DISMAN_EVENT_MODULE
+  if (should_init("mteTrigger")) init_mteTrigger();
+  if (should_init("mteTriggerConf")) init_mteTriggerConf();
   if (should_init("mteTriggerTable")) init_mteTriggerTable();
-#endif
   if (should_init("mteTriggerDeltaTable")) init_mteTriggerDeltaTable();
   if (should_init("mteTriggerExistenceTable")) init_mteTriggerExistenceTable();
   if (should_init("mteTriggerBooleanTable")) init_mteTriggerBooleanTable();
   if (should_init("mteTriggerThresholdTable")) init_mteTriggerThresholdTable();
+  if (should_init("mteObjects")) init_mteObjects();
+  if (should_init("mteObjectsConf")) init_mteObjectsConf();
   if (should_init("mteObjectsTable")) init_mteObjectsTable();
+  if (should_init("mteEvent")) init_mteEvent();
+  if (should_init("mteEventConf")) init_mteEventConf();
   if (should_init("mteEventTable")) init_mteEventTable();
   if (should_init("mteEventNotificationTable")) init_mteEventNotificationTable();
+  if (should_init("mteEventSetTable")) init_mteEventSetTable();
 #endif
 
   if (should_init("vacm_context")) init_vacm_context();
diff --git a/win32/mib_module_shutdown.h b/win32/mib_module_shutdown.h
index 0432265..caedf60 100644
--- a/win32/mib_module_shutdown.h
+++ b/win32/mib_module_shutdown.h
@@ -1,6 +1,15 @@
 /* This file is automatically generated by configure.  Do not modify by hand. */
   if (should_init("proxy")) shutdown_proxy();
+  if (should_init("snmpNotifyFilterTable")) shutdown_snmpNotifyFilterTable();
  
 #ifdef USING_UCD_SNMP_MODULE
   if (should_init("pass_persist")) shutdown_pass_persist();
 #endif
+
+#ifdef USING_UCD_SNMP_DLMOD_MODULE
+  if (should_init("dlmod")) shutdown_dlmod();
+#endif
+
+#ifdef USING_WINEXTDLL_MODULE
+   if (should_init("winExtDLL")) shutdown_winExtDLL();
+#endif
diff --git a/win32/net-snmp/agent/mib_module_config.h b/win32/net-snmp/agent/mib_module_config.h
index d981c80..4978dc8 100644
--- a/win32/net-snmp/agent/mib_module_config.h
+++ b/win32/net-snmp/agent/mib_module_config.h
@@ -15,6 +15,9 @@
 /* Define if compiling with the notification module files.  */
 #define USING_NOTIFICATION_MODULE 1
  
+/* Define if compiling with the disman/event module files.  */
+#define USING_DISMAN_EVENT_MODULE 1
+ 
 /* Define if compiling with the notification-log-mib module files. */
 #ifdef HAVE_WIN32_PLATFORM_SDK
 #define USING_NOTIFICATION_LOG_MIB_NOTIFICATION_LOG_MODULE 1
@@ -243,33 +246,57 @@
 #endif /* USING_RMON_MODULE */
 
 
-#ifdef USING_DISMAN_EVENT_MIB_MODULE 
+#ifdef USING_DISMAN_EVENT_MODULE 
  
-/* Define if compiling with the disman/mteTriggerTable module files.  */
-#define USING_DISMAN_MTETRIGGERTABLE_MODULE 1
+/* Define if compiling with the disman/event/mteScalars module files.  */
+#define USING_DISMAN_EVENT_MTESCALARS_MODULE 1
  
-/* Define if compiling with the disman/mteTriggerDeltaTable module files.  */
-#define USING_DISMAN_MTETRIGGERDELTATABLE_MODULE 1
+/* Define if compiling with the disman/event/mteTrigger module files.  */
+#define USING_DISMAN_EVENT_MTETRIGGER_MODULE 1
  
-/* Define if compiling with the disman/mteTriggerExistenceTable module files.  */
-#define USING_DISMAN_MTETRIGGEREXISTENCETABLE_MODULE 1
+/* Define if compiling with the disman/event/mteTriggerTable module files.  */
+#define USING_DISMAN_EVENT_MTETRIGGERTABLE_MODULE 1
  
-/* Define if compiling with the disman/mteTriggerBooleanTable module files.  */
-#define USING_DISMAN_MTETRIGGERBOOLEANTABLE_MODULE 1
+/* Define if compiling with the disman/event/mteTriggerDeltaTable module files.  */
+#define USING_DISMAN_EVENT_MTETRIGGERDELTATABLE_MODULE 1
  
-/* Define if compiling with the disman/mteTriggerThresholdTable module files.  */
-#define USING_DISMAN_MTETRIGGERTHRESHOLDTABLE_MODULE 1
+/* Define if compiling with the disman/event/mteTriggerExistenceTable module files.  */
+#define USING_DISMAN_EVENT_MTETRIGGEREXISTENCETABLE_MODULE 1
  
-/* Define if compiling with the disman/mteObjectsTable module files.  */
-#define USING_DISMAN_MTEOBJECTSTABLE_MODULE 1
+/* Define if compiling with the disman/event/mteTriggerBooleanTable module files.  */
+#define USING_DISMAN_EVENT_MTETRIGGERBOOLEANTABLE_MODULE 1
  
-/* Define if compiling with the disman/mteEventTable module files.  */
-#define USING_DISMAN_MTEEVENTTABLE_MODULE 1
+/* Define if compiling with the disman/event/mteTriggerThresholdTable module files.  */
+#define USING_DISMAN_EVENT_MTETRIGGERTHRESHOLDTABLE_MODULE 1
  
-/* Define if compiling with the disman/mteEventNotificationTable module files.  */
-#define USING_DISMAN_MTEEVENTNOTIFICATIONTABLE_MODULE 1
+/* Define if compiling with the disman/event/mteTriggerConf module files.  */
+#define USING_DISMAN_EVENT_MTETRIGGERCONF_MODULE 1
  
-#endif /* USING_DISMAN_EVENT_MIB_MODULE */
+/* Define if compiling with the disman/event/mteEvent module files.  */
+#define USING_DISMAN_EVENT_MTEEVENT_MODULE 1
+ 
+/* Define if compiling with the disman/event/mteEventTable module files.  */
+#define USING_DISMAN_EVENT_MTEEVENTTABLE_MODULE 1
+ 
+/* Define if compiling with the disman/event/mteEventSetTable module files.  */
+#define USING_DISMAN_EVENT_MTEEVENTSETTABLE_MODULE 1
+ 
+/* Define if compiling with the disman/event/mteEventNotificationTable module files.  */
+#define USING_DISMAN_EVENT_MTEEVENTNOTIFICATIONTABLE_MODULE 1
+ 
+/* Define if compiling with the disman/event/mteEventConf module files.  */
+#define USING_DISMAN_EVENT_MTEEVENTCONF_MODULE 1
+ 
+/* Define if compiling with the disman/event/mteObjects module files.  */
+#define USING_DISMAN_EVENT_MTEOBJECTS_MODULE 1
+ 
+/* Define if compiling with the disman/event/mteObjectsTable module files.  */
+#define USING_DISMAN_EVENT_MTEOBJECTSTABLE_MODULE 1
+ 
+/* Define if compiling with the disman/event/mteObjectsConf module files.  */
+#define USING_DISMAN_EVENT_MTEOBJECTSCONF_MODULE 1
+ 
+#endif /* USING_DISMAN_EVENT_MODULE */
 
 #ifdef USING_SMUX_MODULE
  
diff --git a/win32/net-snmp/net-snmp-config.h b/win32/net-snmp/net-snmp-config.h
index 7523402..7d6e3b7 100644
--- a/win32/net-snmp/net-snmp-config.h
+++ b/win32/net-snmp/net-snmp-config.h
@@ -30,23 +30,18 @@
  * Microsoft Visual Studio MSVC 6.0 and the Platform SDK (PSDK)
  * Microsoft Visual Studio.Net 2002
  * Microsoft Visual Studio.Net 2003
- * Cygwin
- * MinGW 
  */
-#define HAVE_WIN32_PLATFORM_SDK
+#define HAVE_WIN32_PLATFORM_SDK 1
 
 /* Define NETSNMP_ENABLE_IPV6 to enable IPv6.  IPv6 is only available on
  * Windows XP and higher.  */
 /* #undef NETSNMP_ENABLE_IPV6 */
 
 /* Only use Windows API functions available on Windows 2000 SP4 or later.  
- * We need at least SP1 for some IPv6 defines in ws2ipdef.h.
- * Only define _WIN32_WINNT when not being compiled with MSVC 6 without PSDK
- * because there is a bug in the MSVC 6 header <winsock.h> that causes
- * inclusion of <winsock2.h>.
+ * We need at least SP1 for some IPv6 defines in ws2ipdef.h
  */
 #ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x501 /*_WIN32_WINNT_WIN2K*/
+#define _WIN32_WINNT 0x600 /*_WIN32_WINNT_WIN6*/
 #else
 #if _WIN32_WINNT < 0x501
 #error _WIN32_WINNT is too low - it should be set to at least 0x501.
@@ -244,9 +239,6 @@
 /* Define to 1 if you have the <asm/page.h> header file. */
 /* #undef HAVE_ASM_PAGE_H */
 
-/* Define to 1 if you have the `bcopy' function. */
-/* #undef HAVE_BCOPY */
-
 /* Define to 1 if you have the `cgetnext' function. */
 /* #undef HAVE_CGETNEXT */
 
@@ -332,12 +324,14 @@
 /* Define to 1 if you have the `if_nameindex' function. */
 /* #undef HAVE_IF_NAMEINDEX */
 
-/* Define to 1 if you have the `index' function. */
-/* #undef HAVE_INDEX */
-
 /* Define to 1 if you have the <inet/mib2.h> header file. */
 /* #undef HAVE_INET_MIB2_H */
 
+#ifdef HAVE_WIN32_PLATFORM_SDK
+/* Define to 1 if you have the <iphlpapi.h> header file. */
+#define HAVE_IPHLPAPI_H
+#endif
+
 /* Define to 1 if the system has the type `int32_t'. */
 #define HAVE_INT32_T 1
 
@@ -443,12 +437,6 @@
 /* Define to 1 if you have the <malloc.h> header file. */
 #define HAVE_MALLOC_H 1
 
-/* Define to 1 if you have the `memcpy' function. */
-#define HAVE_MEMCPY 1
-
-/* Define to 1 if you have the `memmove' function. */
-#define HAVE_MEMMOVE 1
-
 /* Define to 1 if you have the <memory.h> header file. */
 #define HAVE_MEMORY_H 1
 
@@ -706,9 +694,6 @@
 /* Define to 1 if you have the `strcasestr' function. */
 /* #undef HAVE_STRCASESTR */
 
-/* Define to 1 if you have the `strchr' function. */
-#define HAVE_STRCHR 1
-
 /* Define to 1 if you have the `strdup' function. */
 #define HAVE_STRDUP 1
 
@@ -852,6 +837,9 @@
 /* Define to 1 if you have the <sys/time.h> header file. */
 /* #undef HAVE_SYS_TIME_H */
 
+/* Define to 1 if you have the <sys/timeb.h> header file. */
+#define HAVE_SYS_TIMEB_H 1
+
 /* Define to 1 if you have the <sys/types.h> header file. */
 #define HAVE_SYS_TYPES_H 1
 
@@ -945,6 +933,15 @@
 /* Define to 1 if you have the <winsock.h> header file. */
 #define HAVE_WINSOCK_H 1
 
+/* Define to 1 if you have the <winsock2.h> header file. */
+#define HAVE_WINSOCK2_H 1
+
+/* Define to 1 if you have the <ws2tcpip.h> header file. */
+#define HAVE_WS2TCPIP_H 1
+
+/* Set if IP_PKTINFO is usable */
+#define HAVE_IP_PKTINFO 1
+
 /* Define to 1 if you have the <xti.h> header file. */
 /* #undef HAVE_XTI_H */
 
@@ -994,7 +991,7 @@
 #define STDC_HEADERS 1
 
 /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#define TIME_WITH_SYS_TIME 1
+/* #undef TIME_WITH_SYS_TIME */
 
 /* Define to 1 if your processor stores words with the most significant byte
    first (like Motorola and SPARC, unlike Intel and VAX). */
@@ -1054,10 +1051,10 @@
 /* Does struct in6_addr have a s6_un.sa6_ladd field? */
 /* #undef HAVE_STRUCT_IN6_ADDR_S6_UN_SA6_LADDR */
 
-/* mshhdr.msg_control */
+/* msghdr.msg_control */
 /* #undef HAVE_STRUCT_MSGHDR_MSG_CONTROL */
 
-/* mshhdr.msg_flags */
+/* msghdr.msg_flags */
 /* #undef HAVE_STRUCT_MSGHDR_MSG_FLAGS */
 
 /* rtentry structure tests */
@@ -1356,44 +1353,6 @@
 #define HAVE_SSIZE_T
 #endif
 
-#ifndef HAVE_STRCHR
-#ifdef HAVE_INDEX
-# define strchr(a,b) index(a,b)
-# define strrchr(a,b) rindex(a,b)
-#endif
-#endif
-
-#ifndef HAVE_INDEX
-#ifdef HAVE_STRCHR
-# define index(a,b) strchr(a,b)
-# define rindex(a,b) strrchr(a,b)
-#endif
-#endif
-
-#ifndef HAVE_MEMCPY
-#ifdef HAVE_BCOPY
-# define memcpy(d, s, n) bcopy ((s), (d), (n))
-# define memmove(d, s, n) bcopy ((s), (d), (n))
-# define memcmp bcmp
-#endif
-#endif
-
-#ifndef HAVE_MEMMOVE
-#ifdef HAVE_MEMCPY
-# define memmove memcpy
-#endif
-#endif
-
-#if notused /* dont step on other defns of bcopy,bzero, and bcmp */
-#ifndef HAVE_BCOPY
-#ifdef HAVE_MEMCPY
-# define bcopy(s, d, n) memcpy ((d), (s), (n))
-# define bzero(p,n) memset((p),(0),(n))
-# define bcmp memcmp
-#endif
-#endif
-#endif
-
 /* If you have openssl 0.9.7 or above, you likely have AES support. */
 /* #undef NETSNMP_USE_OPENSSL */
 
@@ -1502,6 +1461,32 @@
     available.  */
 /* #undef NETSNMP_TRANSPORT_TCPIPV6_DOMAIN */
 
+/*  This is defined if support for the TLS transport domain is
+    available.   */
+/* #undef NETSNMP_TRANSPORT_TLSBASE_DOMAIN */
+
+/*  This is defined if support for the Alias transport domain is
+    available.   */
+/* #undef NETSNMP_TRANSPORT_ALIAS_DOMAIN */
+
+/*  This is defined if support for the SSH transport domain is
+    available.   */
+/* #undef NETSNMP_TRANSPORT_SSH_DOMAIN */
+
+/*  This is defined if support for the DTLS/UDP transport domain is
+    available.   */
+/* #undef NETSNMP_TRANSPORT_DTLSUDP_DOMAIN */
+
+/*  This is defined if support for the TLS/TCP transport domain is
+    available.   */
+/* #undef NETSNMP_TRANSPORT_TLSTCP_DOMAIN */
+
+/*  This is defined if support for stdin/out transport domain is available.   */
+/* #undef NETSNMP_TRANSPORT_STD_DOMAIN */
+
+/*  This is defined if support for the IPv4Base transport domain is available.   */
+#define NETSNMP_TRANSPORT_IPV4BASE_DOMAIN 1
+
 /* define this if the USM security module is available */
 #define NETSNMP_SECMOD_USM 1
 
@@ -1521,13 +1506,14 @@
 #define config_require(x)
 #define config_version_require(x)
 #define config_warning(x)
+#define config_error(x)
 #define config_exclude(x)
 #define config_arch_require(x,y)
 #define config_parse_dot_conf(w,x,y,z)
 #define config_add_mib(x)
 #define config_belongs_in(x)
 
-#if defined (WIN32) || defined (mingw32) || defined (cygwin)
+#if defined (WIN32)
 #define ENV_SEPARATOR ";"
 #define ENV_SEPARATOR_CHAR ';'
 #else
@@ -1708,44 +1694,6 @@
 #  endif
 #endif
 
-#if defined(NETSNMP_USE_DLL) && !defined(NETSNMP_TOOLS_C) && !defined(MSVC_PERL)
-
-#include <malloc.h>
-#include <stdlib.h> /* malloc(), calloc(), realloc() and free() */
-#include <string.h> /* strdup() */
-#include <ws2tcpip.h> /* socklen_t */
-#include <wspiapi.h> /* has inline function definitions referencing calloc(). */
-
-/* wrap alloc functions to use DLL's memory heap */
-
-#define strdup    netsnmp_strdup
-#define calloc    netsnmp_calloc
-#define malloc    netsnmp_malloc
-#define realloc   netsnmp_realloc
-#define free      netsnmp_free
-
-#endif /* defined(NETSNMP_USE_DLL) && !defined(NETSNMP_TOOLS_C) && !defined(MSVC_PERL) */
-
-/* MSVC OpenSSL linker settings. */
-#if defined(WIN32) && !defined(mingw32)
-#  if defined(NETSNMP_USE_OPENSSL)
-#    ifdef NETSNMP_USE_DLL
-#      ifdef _DEBUG
-#        pragma comment(lib, "libeay32MDd.lib")
-#      else
-#        pragma comment(lib, "libeay32MD.lib")
-#      endif
-#    else
-#      ifdef _DEBUG
-#        pragma comment(lib, "libeay32MTd.lib")
-#      else
-#        pragma comment(lib, "libeay32MT.lib")
-#      endif
-#    endif
-#    pragma comment(lib, "gdi32.lib")
-#  endif
-#endif
-
 #endif       /* WIN32 */
 
 #ifndef NETSNMP_IMPORT
@@ -1784,6 +1732,7 @@
 #ifdef NETSNMP_ENABLE_IPV6
   #define NETSNMP_TRANSPORT_TCPIPV6_DOMAIN 1
   #define NETSNMP_TRANSPORT_UDPIPV6_DOMAIN 1
+  #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
 #else
   #undef NETSNMP_TRANSPORT_TCPIPV6_DOMAIN
   #undef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
@@ -1850,6 +1799,9 @@
 #define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
 #endif
 
+/* Size prefix to use to printf a uint32_t */
+#define NETSNMP_PRI32 ""
+
 #ifdef _MSC_VER
 #ifdef _WIN64
 #define NETSNMP_PRIz "I64"
diff --git a/win32/net-snmp/net-snmp-config.h.in b/win32/net-snmp/net-snmp-config.h.in
index 2e93dcd..04aa99c 100644
--- a/win32/net-snmp/net-snmp-config.h.in
+++ b/win32/net-snmp/net-snmp-config.h.in
@@ -30,8 +30,6 @@
  * Microsoft Visual Studio MSVC 6.0 and the Platform SDK (PSDK)
  * Microsoft Visual Studio.Net 2002
  * Microsoft Visual Studio.Net 2003
- * Cygwin
- * MinGW 
  */
 /* #undef HAVE_WIN32_PLATFORM_SDK */
 
@@ -40,13 +38,10 @@
 /* #undef NETSNMP_ENABLE_IPV6 */
 
 /* Only use Windows API functions available on Windows 2000 SP4 or later.  
- * We need at least SP1 for some IPv6 defines in ws2ipdef.h.
- * Only define _WIN32_WINNT when not being compiled with MSVC 6 without PSDK
- * because there is a bug in the MSVC 6 header <winsock.h> that causes
- * inclusion of <winsock2.h>.
+ * We need at least SP1 for some IPv6 defines in ws2ipdef.h
  */
 #ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x501 /*_WIN32_WINNT_WIN2K*/
+#define _WIN32_WINNT 0x600 /*_WIN32_WINNT_WIN6*/
 #else
 #if _WIN32_WINNT < 0x501
 #error _WIN32_WINNT is too low - it should be set to at least 0x501.
@@ -244,9 +239,6 @@
 /* Define to 1 if you have the <asm/page.h> header file. */
 /* #undef HAVE_ASM_PAGE_H */
 
-/* Define to 1 if you have the `bcopy' function. */
-/* #undef HAVE_BCOPY */
-
 /* Define to 1 if you have the `cgetnext' function. */
 /* #undef HAVE_CGETNEXT */
 
@@ -332,12 +324,14 @@
 /* Define to 1 if you have the `if_nameindex' function. */
 /* #undef HAVE_IF_NAMEINDEX */
 
-/* Define to 1 if you have the `index' function. */
-/* #undef HAVE_INDEX */
-
 /* Define to 1 if you have the <inet/mib2.h> header file. */
 /* #undef HAVE_INET_MIB2_H */
 
+#ifdef HAVE_WIN32_PLATFORM_SDK
+/* Define to 1 if you have the <iphlpapi.h> header file. */
+#define HAVE_IPHLPAPI_H
+#endif
+
 /* Define to 1 if the system has the type `int32_t'. */
 #define HAVE_INT32_T 1
 
@@ -443,12 +437,6 @@
 /* Define to 1 if you have the <malloc.h> header file. */
 #define HAVE_MALLOC_H 1
 
-/* Define to 1 if you have the `memcpy' function. */
-#define HAVE_MEMCPY 1
-
-/* Define to 1 if you have the `memmove' function. */
-#define HAVE_MEMMOVE 1
-
 /* Define to 1 if you have the <memory.h> header file. */
 #define HAVE_MEMORY_H 1
 
@@ -706,9 +694,6 @@
 /* Define to 1 if you have the `strcasestr' function. */
 /* #undef HAVE_STRCASESTR */
 
-/* Define to 1 if you have the `strchr' function. */
-#define HAVE_STRCHR 1
-
 /* Define to 1 if you have the `strdup' function. */
 #define HAVE_STRDUP 1
 
@@ -852,6 +837,9 @@
 /* Define to 1 if you have the <sys/time.h> header file. */
 /* #undef HAVE_SYS_TIME_H */
 
+/* Define to 1 if you have the <sys/timeb.h> header file. */
+#define HAVE_SYS_TIMEB_H 1
+
 /* Define to 1 if you have the <sys/types.h> header file. */
 #define HAVE_SYS_TYPES_H 1
 
@@ -945,6 +933,15 @@
 /* Define to 1 if you have the <winsock.h> header file. */
 #define HAVE_WINSOCK_H 1
 
+/* Define to 1 if you have the <winsock2.h> header file. */
+#define HAVE_WINSOCK2_H 1
+
+/* Define to 1 if you have the <ws2tcpip.h> header file. */
+#define HAVE_WS2TCPIP_H 1
+
+/* Set if IP_PKTINFO is usable */
+#define HAVE_IP_PKTINFO 1
+
 /* Define to 1 if you have the <xti.h> header file. */
 /* #undef HAVE_XTI_H */
 
@@ -994,7 +991,7 @@
 #define STDC_HEADERS 1
 
 /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#define TIME_WITH_SYS_TIME 1
+/* #undef TIME_WITH_SYS_TIME */
 
 /* Define to 1 if your processor stores words with the most significant byte
    first (like Motorola and SPARC, unlike Intel and VAX). */
@@ -1054,10 +1051,10 @@
 /* Does struct in6_addr have a s6_un.sa6_ladd field? */
 /* #undef HAVE_STRUCT_IN6_ADDR_S6_UN_SA6_LADDR */
 
-/* mshhdr.msg_control */
+/* msghdr.msg_control */
 /* #undef HAVE_STRUCT_MSGHDR_MSG_CONTROL */
 
-/* mshhdr.msg_flags */
+/* msghdr.msg_flags */
 /* #undef HAVE_STRUCT_MSGHDR_MSG_FLAGS */
 
 /* rtentry structure tests */
@@ -1356,44 +1353,6 @@
 #define HAVE_SSIZE_T
 #endif
 
-#ifndef HAVE_STRCHR
-#ifdef HAVE_INDEX
-# define strchr(a,b) index(a,b)
-# define strrchr(a,b) rindex(a,b)
-#endif
-#endif
-
-#ifndef HAVE_INDEX
-#ifdef HAVE_STRCHR
-# define index(a,b) strchr(a,b)
-# define rindex(a,b) strrchr(a,b)
-#endif
-#endif
-
-#ifndef HAVE_MEMCPY
-#ifdef HAVE_BCOPY
-# define memcpy(d, s, n) bcopy ((s), (d), (n))
-# define memmove(d, s, n) bcopy ((s), (d), (n))
-# define memcmp bcmp
-#endif
-#endif
-
-#ifndef HAVE_MEMMOVE
-#ifdef HAVE_MEMCPY
-# define memmove memcpy
-#endif
-#endif
-
-#if notused /* dont step on other defns of bcopy,bzero, and bcmp */
-#ifndef HAVE_BCOPY
-#ifdef HAVE_MEMCPY
-# define bcopy(s, d, n) memcpy ((d), (s), (n))
-# define bzero(p,n) memset((p),(0),(n))
-# define bcmp memcmp
-#endif
-#endif
-#endif
-
 /* If you have openssl 0.9.7 or above, you likely have AES support. */
 /* #undef NETSNMP_USE_OPENSSL */
 
@@ -1502,6 +1461,32 @@
     available.  */
 /* #undef NETSNMP_TRANSPORT_TCPIPV6_DOMAIN */
 
+/*  This is defined if support for the TLS transport domain is
+    available.   */
+/* #undef NETSNMP_TRANSPORT_TLSBASE_DOMAIN */
+
+/*  This is defined if support for the Alias transport domain is
+    available.   */
+/* #undef NETSNMP_TRANSPORT_ALIAS_DOMAIN */
+
+/*  This is defined if support for the SSH transport domain is
+    available.   */
+/* #undef NETSNMP_TRANSPORT_SSH_DOMAIN */
+
+/*  This is defined if support for the DTLS/UDP transport domain is
+    available.   */
+/* #undef NETSNMP_TRANSPORT_DTLSUDP_DOMAIN */
+
+/*  This is defined if support for the TLS/TCP transport domain is
+    available.   */
+/* #undef NETSNMP_TRANSPORT_TLSTCP_DOMAIN */
+
+/*  This is defined if support for stdin/out transport domain is available.   */
+/* #undef NETSNMP_TRANSPORT_STD_DOMAIN */
+
+/*  This is defined if support for the IPv4Base transport domain is available.   */
+#define NETSNMP_TRANSPORT_IPV4BASE_DOMAIN 1
+
 /* define this if the USM security module is available */
 #define NETSNMP_SECMOD_USM 1
 
@@ -1521,13 +1506,14 @@
 #define config_require(x)
 #define config_version_require(x)
 #define config_warning(x)
+#define config_error(x)
 #define config_exclude(x)
 #define config_arch_require(x,y)
 #define config_parse_dot_conf(w,x,y,z)
 #define config_add_mib(x)
 #define config_belongs_in(x)
 
-#if defined (WIN32) || defined (mingw32) || defined (cygwin)
+#if defined (WIN32)
 #define ENV_SEPARATOR ";"
 #define ENV_SEPARATOR_CHAR ';'
 #else
@@ -1708,44 +1694,6 @@
 #  endif
 #endif
 
-#if defined(NETSNMP_USE_DLL) && !defined(NETSNMP_TOOLS_C) && !defined(MSVC_PERL)
-
-#include <malloc.h>
-#include <stdlib.h> /* malloc(), calloc(), realloc() and free() */
-#include <string.h> /* strdup() */
-#include <ws2tcpip.h> /* socklen_t */
-#include <wspiapi.h> /* has inline function definitions referencing calloc(). */
-
-/* wrap alloc functions to use DLL's memory heap */
-
-#define strdup    netsnmp_strdup
-#define calloc    netsnmp_calloc
-#define malloc    netsnmp_malloc
-#define realloc   netsnmp_realloc
-#define free      netsnmp_free
-
-#endif /* defined(NETSNMP_USE_DLL) && !defined(NETSNMP_TOOLS_C) && !defined(MSVC_PERL) */
-
-/* MSVC OpenSSL linker settings. */
-#if defined(WIN32) && !defined(mingw32)
-#  if defined(NETSNMP_USE_OPENSSL)
-#    ifdef NETSNMP_USE_DLL
-#      ifdef _DEBUG
-#        pragma comment(lib, "libeay32MDd.lib")
-#      else
-#        pragma comment(lib, "libeay32MD.lib")
-#      endif
-#    else
-#      ifdef _DEBUG
-#        pragma comment(lib, "libeay32MTd.lib")
-#      else
-#        pragma comment(lib, "libeay32MT.lib")
-#      endif
-#    endif
-#    pragma comment(lib, "gdi32.lib")
-#  endif
-#endif
-
 #endif       /* WIN32 */
 
 #ifndef NETSNMP_IMPORT
@@ -1784,6 +1732,7 @@
 #ifdef NETSNMP_ENABLE_IPV6
   #define NETSNMP_TRANSPORT_TCPIPV6_DOMAIN 1
   #define NETSNMP_TRANSPORT_UDPIPV6_DOMAIN 1
+  #define HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID 1
 #else
   #undef NETSNMP_TRANSPORT_TCPIPV6_DOMAIN
   #undef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
@@ -1850,6 +1799,9 @@
 #define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
 #endif
 
+/* Size prefix to use to printf a uint32_t */
+#define NETSNMP_PRI32 ""
+
 #ifdef _MSC_VER
 #ifdef _WIN64
 #define NETSNMP_PRIz "I64"
diff --git a/win32/netsnmpmibs/Makefile.in b/win32/netsnmpmibs/Makefile.in
old mode 100644
new mode 100755
index f28700b..b6bacbc
--- a/win32/netsnmpmibs/Makefile.in
+++ b/win32/netsnmpmibs/Makefile.in
@@ -58,7 +58,7 @@
 RSC=rc.exe
 LIB32=link.exe -lib
 LIB32_FLAGS=/nologo /out:"..\lib\$(OUTDIR)\$(PROGNAME).lib" 
-LIB32_OBJS= \
+LIB32_OBJS1= \
 	"$(INTDIR)\setSerialNo.obj" \
 	"$(INTDIR)\snmp_mib.obj" \
 	"$(INTDIR)\sysORTable.obj" \
@@ -67,19 +67,29 @@
 	"$(INTDIR)\vacm_context.obj" \
 	"$(INTDIR)\vacm_conf.obj" \
 	"$(INTDIR)\vacm_vars.obj" \
+	"$(INTDIR)\mteEvent.obj" \
+	"$(INTDIR)\mteEventConf.obj" \
 	"$(INTDIR)\mteEventNotificationTable.obj" \
+	"$(INTDIR)\mteEventSetTable.obj" \
 	"$(INTDIR)\mteEventTable.obj" \
+	"$(INTDIR)\mteObjects.obj" \
+	"$(INTDIR)\mteObjectsConf.obj" \
 	"$(INTDIR)\mteObjectsTable.obj" \
+	"$(INTDIR)\mteScalars.obj" \
 	"$(INTDIR)\mteTriggerBooleanTable.obj" \
+	"$(INTDIR)\mteTrigger.obj" \
+	"$(INTDIR)\mteTriggerConf.obj" \
 	"$(INTDIR)\mteTriggerDeltaTable.obj" \
 	"$(INTDIR)\mteTriggerExistenceTable.obj" \
 	"$(INTDIR)\mteTriggerTable.obj" \
 	"$(INTDIR)\mteTriggerThresholdTable.obj" \
 	"$(INTDIR)\example.obj" \
 	"$(INTDIR)\ucdDemoPublic.obj" \
+	"$(INTDIR)\dlmod.obj" \
 	"$(INTDIR)\errormib.obj" \
 	"$(INTDIR)\extensible.obj" \
-	"$(INTDIR)\file.obj" \
+	"$(INTDIR)\file.obj"
+LIB32_OBJS2= \
 	"$(INTDIR)\loadave.obj" \
 	"$(INTDIR)\pass.obj" \
 	"$(INTDIR)\pass_common.obj" \
@@ -121,9 +131,11 @@
 	"$(INTDIR)\header_complex.obj" \
 	"$(INTDIR)\mib_modules.obj" \
 	"$(INTDIR)\util_funcs.obj" \
+	"$(INTDIR)\Exit.obj" \
+	"$(INTDIR)\restart.obj" \
 	"$(INTDIR)\smux.obj"
 !IF "$(SDK)" == "true"
-LIB32_OBJS= $(LIB32_OBJS) \
+LIB32_OBJS3= \
 	"$(INTDIR)\at.obj" \
 	"$(INTDIR)\icmp.obj" \
 	"$(INTDIR)\interfaces.obj" \
@@ -138,9 +150,12 @@
 	"$(INTDIR)\var_route.obj" \
 	"$(INTDIR)\winExtDLL.obj"
 !ENDIF
+LIB32_OBJS=$(LIB32_OBJS1) $(LIB32_OBJS2) $(LIB32_OBJS3)
 
 CLEAN :
-	-@for %f in ($(LIB32_OBJS)) do erase %%f
+	-@for %f in ($(LIB32_OBJS1)) do erase %%f
+	-@for %f in ($(LIB32_OBJS2)) do erase %%f
+	-@for %f in ($(LIB32_OBJS3)) do erase %%f
 	-@erase "..\lib\$(OUTDIR)\$(PROGNAME).lib"
 
 "..\lib\$(OUTDIR)\$(PROGNAME).lib" : "..\lib\$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
@@ -207,49 +222,82 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\agent\mibgroup\disman\mteEventNotificationTable.c
+SOURCE=..\..\agent\mibgroup\disman\event\mteEvent.c
+
+"$(INTDIR)\mteEvent.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteEventConf.c
+
+"$(INTDIR)\mteEventConf.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteEventNotificationTable.c
 
 "$(INTDIR)\mteEventNotificationTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
+SOURCE=..\..\agent\mibgroup\disman\event\mteEventSetTable.c
 
-SOURCE=..\..\agent\mibgroup\disman\mteEventTable.c
+"$(INTDIR)\mteEventSetTable.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteEventTable.c
 
 "$(INTDIR)\mteEventTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
+SOURCE=..\..\agent\mibgroup\disman\event\mteObjects.c
 
-SOURCE=..\..\agent\mibgroup\disman\mteObjectsTable.c
+"$(INTDIR)\mteObjects.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteObjectsConf.c
+
+"$(INTDIR)\mteObjectsConf.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteObjectsTable.c
 
 "$(INTDIR)\mteObjectsTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
+SOURCE=..\..\agent\mibgroup\disman\event\mteScalars.c
 
-SOURCE=..\..\agent\mibgroup\disman\mteTriggerBooleanTable.c
+"$(INTDIR)\mteScalars.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerBooleanTable.c
 
 "$(INTDIR)\mteTriggerBooleanTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
+SOURCE=..\..\agent\mibgroup\disman\event\mteTrigger.c
 
-SOURCE=..\..\agent\mibgroup\disman\mteTriggerDeltaTable.c
+"$(INTDIR)\mteTrigger.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerConf.c
+
+"$(INTDIR)\mteTriggerConf.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerDeltaTable.c
 
 "$(INTDIR)\mteTriggerDeltaTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
-
-SOURCE=..\..\agent\mibgroup\disman\mteTriggerExistenceTable.c
+SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerExistenceTable.c
 
 "$(INTDIR)\mteTriggerExistenceTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
-
-SOURCE=..\..\agent\mibgroup\disman\mteTriggerTable.c
+SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerTable.c
 
 "$(INTDIR)\mteTriggerTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
-
-SOURCE=..\..\agent\mibgroup\disman\mteTriggerThresholdTable.c
+SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerThresholdTable.c
 
 "$(INTDIR)\mteTriggerThresholdTable.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
@@ -267,6 +315,12 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE="..\..\agent\mibgroup\ucd-snmp\dlmod.c"
+
+"$(INTDIR)\dlmod.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE="..\..\agent\mibgroup\ucd-snmp\errormib.c"
 
 "$(INTDIR)\errormib.obj" : $(SOURCE) "$(INTDIR)"
@@ -531,74 +585,30 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\agent\mibgroup\utilities\override.c
-
-"$(INTDIR)\override.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
 SOURCE=..\..\agent\mibgroup\util_funcs.c
 
 "$(INTDIR)\util_funcs.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\..\agent\mibgroup\util_funcs\Exit.c
+
+"$(INTDIR)\Exit.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\agent\mibgroup\util_funcs\restart.c
+
+"$(INTDIR)\restart.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\..\agent\mibgroup\smux\smux.c
 
 "$(INTDIR)\smux.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
-SOURCE=..\..\agent\mibgroup\ucd-snmp\dlmod.c
-"$(INTDIR)\dlmod.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\ucd-snmp\errormib.c
-"$(INTDIR)\errormib.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\ucd-snmp\extensible.c
-"$(INTDIR)\extensible.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\ucd-snmp\file.c
-"$(INTDIR)\file.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\ucd-snmp\loadave.c
-"$(INTDIR)\loadave.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\ucd-snmp\pass.c
-"$(INTDIR)\pass.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\ucd-snmp\pass_persist.c
-"$(INTDIR)\pass_persist.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\ucd-snmp\proc.c
-"$(INTDIR)\proc.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\ucd-snmp\proxy.c
-"$(INTDIR)\proxy.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\agent\mibgroup\ucd-snmp\versioninfo.c
-"$(INTDIR)\versioninfo.obj" : $(SOURCE) "$(INTDIR)"
-	$(CPP) $(CPP_PROJ) $(SOURCE)
-
-
 SOURCE=..\..\agent\mibgroup\winExtDLL.c
 "$(INTDIR)\winExtDLL.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
@@ -660,6 +670,3 @@
 
 
 !ENDIF 
-
-
-
diff --git a/win32/netsnmpmibs/netsnmpmibs.dsp b/win32/netsnmpmibs/netsnmpmibs.dsp
index 45d5744..cde496c 100644
--- a/win32/netsnmpmibs/netsnmpmibs.dsp
+++ b/win32/netsnmpmibs/netsnmpmibs.dsp
@@ -165,35 +165,67 @@
 # PROP Default_Filter ""
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\mteEventNotificationTable.c
+SOURCE=..\..\agent\mibgroup\disman\event\mteEvent.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\mteEventTable.c
+SOURCE=..\..\agent\mibgroup\disman\event\mteEventConf.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\mteObjectsTable.c
+SOURCE=..\..\agent\mibgroup\disman\event\mteEventNotificationTable.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\mteTriggerBooleanTable.c
+SOURCE=..\..\agent\mibgroup\disman\event\mteEventSetTable.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\mteTriggerDeltaTable.c
+SOURCE=..\..\agent\mibgroup\disman\event\mteEventTable.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\mteTriggerExistenceTable.c
+SOURCE=..\..\agent\mibgroup\disman\event\mteObjects.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\mteTriggerTable.c
+SOURCE=..\..\agent\mibgroup\disman\event\mteObjectsConf.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\disman\mteTriggerThresholdTable.c
+SOURCE=..\..\agent\mibgroup\disman\event\mteObjectsTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteScalars.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerBooleanTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteTrigger.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerConf.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerDeltaTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerExistenceTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerTable.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\disman\event\mteTriggerThresholdTable.c
 # End Source File
 # End Group
 # Begin Group "examples"
@@ -285,23 +317,23 @@
 # PROP Default_Filter ""
 # Begin Source File
 
+SOURCE="..\..\agent\mibgroup\notification-log-mib\notification_log.c"
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\agent\mibgroup\notification\snmpNotifyFilterProfileTable.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\notification-log-mib\notification_log.c
+SOURCE="..\..\agent\mibgroup\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable.c"
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable.c
+SOURCE="..\..\agent\mibgroup\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable_data_access.c"
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable_data_access.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\agent\mibgroup\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable_interface.c
+SOURCE="..\..\agent\mibgroup\snmp-notification-mib\snmpNotifyFilterTable\snmpNotifyFilterTable_interface.c"
 # End Source File
 # Begin Source File
 
@@ -393,7 +425,11 @@
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\utilities\iquery.c
+SOURCE=..\..\agent\mibgroup\util_funcs\Exit.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\agent\mibgroup\header_complex.c
 # End Source File
 # Begin Source File
 
@@ -405,7 +441,7 @@
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\agent\mibgroup\header_complex.c
+SOURCE=..\..\agent\mibgroup\utilities\iquery.c
 # End Source File
 # Begin Source File
 
@@ -417,6 +453,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\agent\mibgroup\util_funcs\restart.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\agent\mibgroup\util_funcs.c
 # End Source File
 # End Group
diff --git a/win32/snmpd/Makefile.in b/win32/snmpd/Makefile.in
index 9e34674..652dd80 100644
--- a/win32/snmpd/Makefile.in
+++ b/win32/snmpd/Makefile.in
@@ -54,7 +54,7 @@
 
 RSC=rc.exe
 LINK32=link.exe
-LINK32_FLAGS=netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmphelpers.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /out:"..\bin\$(OUTDIR)/snmpd.exe" /libpath:"../lib/$(OUTDIR)"
+LINK32_FLAGS=netsnmp.lib netsnmpagent.lib netsnmpmibs.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /out:"..\bin\$(OUTDIR)/snmpd.exe" /libpath:"../lib/$(OUTDIR)"
 !IF  "$(CFG)" == "release"
 LINK32_FLAGS=$(LINK32_FLAGS) /debug /pdb:"../bin/$(OUTDIR)/snmpd.pdb"
 !ELSE
diff --git a/win32/snmpd/snmpd.dsp b/win32/snmpd/snmpd.dsp
index 4269aa4..5534306 100644
--- a/win32/snmpd/snmpd.dsp
+++ b/win32/snmpd/snmpd.dsp
@@ -50,7 +50,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmphelpers.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpd.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib netsnmpagent.lib netsnmpmibs.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmpd.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmpd - Win32 Debug"
 
@@ -74,7 +74,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmphelpers.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpd.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib netsnmpagent.lib netsnmpmibs.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmpd.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
diff --git a/win32/snmptrapd/Makefile.in b/win32/snmptrapd/Makefile.in
index 8ed668f..dc4fe50 100644
--- a/win32/snmptrapd/Makefile.in
+++ b/win32/snmptrapd/Makefile.in
@@ -78,7 +78,7 @@
 BSC32_SBRS= \
 
 LINK32=link.exe
-LINK32_FLAGS=netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmphelpers.lib netsnmptrapd.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:"../bin/$(OUTDIR)/$(PROGNAME).pdb" /debug /out:"../bin/$(OUTDIR)/$(PROGNAME).exe" /libpath:"../lib/release" 
+LINK32_FLAGS=netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmptrapd.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:"../bin/$(OUTDIR)/$(PROGNAME).pdb" /debug /out:"..\bin\$(OUTDIR)/$(PROGNAME).exe" /libpath:"../lib/release" 
 LINK32_OBJS= \
 	"$(INTDIR)\$(PROGNAME).obj" \
 	"$(INTDIR)\winservice.obj" \
@@ -173,7 +173,7 @@
 <<
 
 LINK32=link.exe
-LINK32_FLAGS=netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmphelpers.lib netsnmptrapd.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /pdb:"../bin/$(OUTDIR)/$(PROGNAME).pdb" /debug /out:"../bin/$(OUTDIR)/$(PROGNAME).exe" /pdbtype:sept /libpath:"../lib/debug" 
+LINK32_FLAGS=netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmptrapd.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /pdb:"../bin/$(OUTDIR)/$(PROGNAME).pdb" /debug /out:"..\bin\$(OUTDIR)/$(PROGNAME).exe" /pdbtype:sept /libpath:"../lib/debug" 
 LINK32_OBJS= \
 	"$(INTDIR)\$(PROGNAME).obj" \
 	"$(INTDIR)\winservice.obj" \
diff --git a/win32/snmptrapd/snmptrapd.dsp b/win32/snmptrapd/snmptrapd.dsp
index de44737..503918a 100644
--- a/win32/snmptrapd/snmptrapd.dsp
+++ b/win32/snmptrapd/snmptrapd.dsp
@@ -50,7 +50,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmphelpers.lib netsnmptrapd.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmptrapd.exe" /libpath:"../lib/release"
+# ADD LINK32 netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmptrapd.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /pdb:none /machine:I386 /out:"../bin/release/snmptrapd.exe" /libpath:"../lib/release"
 
 !ELSEIF  "$(CFG)" == "snmptrapd - Win32 Debug"
 
@@ -74,7 +74,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmphelpers.lib netsnmptrapd.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmptrapd.exe" /pdbtype:sept /libpath:"../lib/debug"
+# ADD LINK32 netsnmp.lib netsnmpagent.lib netsnmpmibs.lib netsnmptrapd.lib advapi32.lib ws2_32.lib kernel32.lib user32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../bin/debug/snmptrapd.exe" /pdbtype:sept /libpath:"../lib/debug"
 
 !ENDIF 
 
@@ -88,6 +88,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\apps\snmptrapd_handlers.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\snmplib\winservice.c
 # End Source File
 # Begin Source File
diff --git a/win32/transports/snmp_transport_inits.h b/win32/transports/snmp_transport_inits.h
new file mode 100644
index 0000000..1bf1409
--- /dev/null
+++ b/win32/transports/snmp_transport_inits.h
@@ -0,0 +1,16 @@
+#ifdef NETSNMP_TRANSPORT_UDP_DOMAIN
+netsnmp_udp_base_ctor();
+netsnmp_udp_ctor();
+#endif
+#ifdef NETSNMP_TRANSPORT_TCP_DOMAIN
+netsnmp_tcp_ctor();
+#endif
+#ifdef NETSNMP_TRANSPORT_ALIAS_DOMAIN
+netsnmp_alias_ctor();
+#endif
+#ifdef NETSNMP_TRANSPORT_UDPIPV6_DOMAIN
+netsnmp_udpipv6_ctor();
+#endif
+#ifdef NETSNMP_TRANSPORT_TCPIPV6_DOMAIN
+netsnmp_tcpipv6_ctor();
+#endif
diff --git a/win32/win32.dsw b/win32/win32.dsw
index b18b9a6..5ad1ab0 100644
--- a/win32/win32.dsw
+++ b/win32/win32.dsw
@@ -11,42 +11,9 @@
 
 Package=<4>
 {{{
-}}}
-
-###############################################################################
-
-Project: "libhelpers"=".\libhelpers\libhelpers.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Project: "libsnmp"=".\libsnmp\libsnmp.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-  Begin Project Dependency
-  Project_Dep_Name libsnmp
-  End Project Dependency
-  Begin Project Dependency
-  Project_Dep_Name libsnmp
-  End Project Dependency
-  Begin Project Dependency
-  Project_Dep_Name libsnmp
-  End Project Dependency
-  Begin Project Dependency
-  Project_Dep_Name libsnmp
-  End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name libsnmp
+    End Project Dependency
 }}}
 
 ###############################################################################
@@ -59,6 +26,21 @@
 
 Package=<4>
 {{{
+    Begin Project Dependency
+    Project_Dep_Name libsnmp
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "libsnmp"=".\libsnmp\libsnmp.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
 }}}
 
 ###############################################################################
@@ -71,6 +53,9 @@
 
 Package=<4>
 {{{
+    Begin Project Dependency
+    Project_Dep_Name libsnmp
+    End Project Dependency
 }}}
 
 ###############################################################################
@@ -129,13 +114,10 @@
 Package=<4>
 {{{
     Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
-    Begin Project Dependency
     Project_Dep_Name libagent
     End Project Dependency
     Begin Project Dependency
-    Project_Dep_Name libhelpers
+    Project_Dep_Name libsnmp
     End Project Dependency
     Begin Project Dependency
     Project_Dep_Name netsnmpmibs
@@ -318,20 +300,17 @@
 Package=<4>
 {{{
     Begin Project Dependency
-    Project_Dep_Name libsnmp
-    End Project Dependency
-    Begin Project Dependency
     Project_Dep_Name libagent
     End Project Dependency
     Begin Project Dependency
-    Project_Dep_Name libhelpers
+    Project_Dep_Name libnetsnmptrapd
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name libsnmp
     End Project Dependency
     Begin Project Dependency
     Project_Dep_Name netsnmpmibs
     End Project Dependency
-    Begin Project Dependency
-    Project_Dep_Name libnetsnmptrapd
-    End Project Dependency
 }}}
 
 ###############################################################################
diff --git a/win32/win32dll.dsw b/win32/win32dll.dsw
old mode 100644
new mode 100755
index 1010914..fc24f5a
--- a/win32/win32dll.dsw
+++ b/win32/win32dll.dsw
@@ -33,21 +33,6 @@
 
 ###############################################################################
 
-Project: "libhelpers"=".\libhelpers\libhelpers.dsp" - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name libsnmp_dll
-    End Project Dependency
-}}}
-
-###############################################################################
-
 Project: "libnetsnmptrapd"=".\libnetsnmptrapd\libnetsnmptrapd.dsp" - Package Owner=<4>
 
 Package=<5>
@@ -132,9 +117,6 @@
     Project_Dep_Name libagent
     End Project Dependency
     Begin Project Dependency
-    Project_Dep_Name libhelpers
-    End Project Dependency
-    Begin Project Dependency
     Project_Dep_Name netsnmpmibs
     End Project Dependency
     Begin Project Dependency
@@ -321,9 +303,6 @@
     Project_Dep_Name libagent
     End Project Dependency
     Begin Project Dependency
-    Project_Dep_Name libhelpers
-    End Project Dependency
-    Begin Project Dependency
     Project_Dep_Name libnetsnmptrapd
     End Project Dependency
     Begin Project Dependency
